Installation Lynx 프로젝트에서 SEED를 설치하고 사용하는 방법을 알아봅니다.
필요한 의존성들을 설치해요.
npm install @seed-design/lynx-react @seed-design/lynx-css @seed-design/tailwind3-plugin tailwindcss@3 pnpm add @seed-design/lynx-react @seed-design/lynx-css @seed-design/tailwind3-plugin tailwindcss@3 yarn add @seed-design/lynx-react @seed-design/lynx-css @seed-design/tailwind3-plugin tailwindcss@3 bun add @seed-design/lynx-react @seed-design/lynx-css @seed-design/tailwind3-plugin tailwindcss@3 Lynx는 현재 Tailwind CSS v3만 지원합니다. Tailwind v4는 Rsbuild에서 아직
미지원이므로 반드시 tailwindcss@3을 설치하세요.
Lynx에서 SEED 디자인 토큰을 사용하려면 Tailwind CSS v3와 @seed-design/tailwind3-plugin을 설정해야 해요.
자세한 내용은 @seed-design/tailwind3-plugin README 를 참고하세요.
import type { Config } from "tailwindcss" ;
import seedDesignPlugin from "@seed-design/tailwind3-plugin" ;
export default {
content: [ "./src/**/*.{jsx,tsx}" ],
corePlugins: { preflight: false },
plugins: [seedDesignPlugin],
} satisfies Config ;
export default {
plugins: {
tailwindcss: {},
},
}; 앱 entry에서는 전역 CSS 파일을 import하고, CSS 파일 안에서 SEED base.css와 Tailwind 디렉티브를 함께 불러와요.
import "./styles/global.css" ;
@import "@seed-design/lynx-css/base.css" ;
@tailwind components;
@tailwind utilities;
npx @seed-design/cli init pnpm dlx @seed-design/cli init yarn dlx @seed-design/cli init bun x @seed-design/cli init @lynx-js/react가 설치되어 있으면 프레임워크가 자동으로 Lynx로 감지돼요.
◇ TypeScript를 사용중이신가요?
│ Yes
│
◇ 어떤 프레임워크를 사용하시나요?
│ Lynx
│
◇ seed-design 폴더 경로를 입력해주세요. (기본값은 프로젝트 루트에 생성됩니다. )
│ ./seed-design
│
◇ 개선을 위해 익명 사용 데이터를 수집할까요?
│ Yes 아래 파일을 프로젝트 루트에 생성해주세요.
{
"tsx" : true ,
"framework" : "lynx" ,
"path" : "./seed-design"
} TypeScript가 snippet import를 해석할 수 있도록 루트 tsconfig.json에 path alias를 추가해요.
{
"compilerOptions" : {
// ... your options
"baseUrl" : "." ,
"paths" : {
"seed-design/*" : [
"./seed-design/*"
]
}
}
} Lynx 템플릿처럼 src/tsconfig.json이 별도로 있고 composite 프로젝트를 사용하는 경우, 생성된 snippet 경로도 include에 추가해야 해요.
{
"include" : [
"./**/*.ts" ,
"./**/*.tsx" ,
"../seed-design/**/*.ts" ,
"../seed-design/**/*.tsx"
]
} Rspeedy/Rspack도 같은 alias를 알아야 런타임 빌드에서 seed-design/* import를 해석할 수 있어요.
import { defineConfig } from "@lynx-js/rspeedy" ;
import { fileURLToPath } from "node:url" ;
const seedDesignDir = fileURLToPath ( new URL ( "./seed-design" , import . meta .url));
export default defineConfig ({
resolve: {
alias: {
"seed-design" : seedDesignDir,
},
},
}); SEED 컴포넌트가 Lynx에서 정상 동작하려면 pluginLynxConfig로 피쳐 플래그를 설정해야 해요.
npm install @lynx-js/config-rsbuild-plugin pnpm add @lynx-js/config-rsbuild-plugin yarn add @lynx-js/config-rsbuild-plugin bun add @lynx-js/config-rsbuild-plugin
import { defineConfig } from "@lynx-js/rspeedy" ;
import { pluginLynxConfig } from "@lynx-js/config-rsbuild-plugin" ;
export default defineConfig ({
plugins: [
// ... 기존 플러그인들
pluginLynxConfig ({
enableCSSSelector: true ,
enableCSSInvalidation: true ,
enableCSSInheritance: true ,
enableCSSInlineVariables: true ,
enableCSSStrictMode: false ,
enableTextRefactor: true ,
fontScaleEffectiveOnlyOnSp: true ,
enableFixedNew: true ,
}),
],
});
npx @seed-design/cli add ui:switch pnpm dlx @seed-design/cli add ui:switch yarn dlx @seed-design/cli add ui:switch bun x @seed-design/cli add ui:switch lynx-console 은 Lynx 앱 안에서 콘솔 로그, 네트워크, 성능 지표를 확인할 수 있는 개발자 도구예요.
앱 entry에서 초기화하고 컴포넌트를 추가해주세요.
import {
initLogMonitor,
initMainThreadConsole,
initNetworkMonitor,
initPerformanceMonitor,
} from "lynx-console/setup" ;
import LynxConsole from "lynx-console" ;
initLogMonitor ();
initMainThreadConsole ();
initNetworkMonitor ();
initPerformanceMonitor ();
function App () {
return (
< view >
{ /* your app */ }
< LynxConsole />
</ view >
);
} 자세한 사용법은 lynx-console GitHub 을 참고하세요.