# Installation URL: /lynx/getting-started/installation Source: https://github.com/daangn/seed-design/blob/dev/docs/content/lynx/getting-started/installation.mdx Lynx 프로젝트에서 SEED를 설치하고 사용하는 방법을 알아봅니다. ### 의존성 설치 필요한 의존성들을 설치해요. - npm: npm install @seed-design/lynx-react @seed-design/lynx-css @seed-design/tailwind3-plugin tailwindcss@3 - pnpm: pnpm add @seed-design/lynx-react @seed-design/lynx-css @seed-design/tailwind3-plugin tailwindcss@3 - yarn: yarn add @seed-design/lynx-react @seed-design/lynx-css @seed-design/tailwind3-plugin tailwindcss@3 - bun: 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`을 설치하세요. ### Tailwind CSS 설정하기 Lynx에서 SEED 디자인 토큰을 사용하려면 Tailwind CSS v3와 `@seed-design/tailwind3-plugin`을 설정해야 해요. 자세한 내용은 [`@seed-design/tailwind3-plugin` README](https://github.com/daangn/seed-design/tree/dev/packages/tailwind3-plugin)를 참고하세요. ```ts title="tailwind.config.ts" 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; ``` ```js title="postcss.config.js" export default { plugins: { tailwindcss: {}, }, }; ``` ### base.css와 Tailwind import하기 앱 entry에서는 전역 CSS 파일을 import하고, CSS 파일 안에서 SEED `base.css`와 Tailwind 디렉티브를 함께 불러와요. ```ts title="src/index.tsx" import "./styles/global.css"; ``` ```css title="src/styles/global.css" @import "@seed-design/lynx-css/base.css"; @tailwind components; @tailwind utilities; ``` ### seed-design.json 생성하기 ### init 명령어 입력하기 - npm: npx @seed-design/cli init - pnpm: pnpm dlx @seed-design/cli init - yarn: yarn dlx @seed-design/cli init - bun: bun x @seed-design/cli init ### seed-design 설정 `@lynx-js/react`가 설치되어 있으면 프레임워크가 자동으로 Lynx로 감지돼요. ```sh ◇ TypeScript를 사용중이신가요? │ Yes │ ◇ 어떤 프레임워크를 사용하시나요? │ Lynx │ ◇ seed-design 폴더 경로를 입력해주세요. (기본값은 프로젝트 루트에 생성됩니다.) │ ./seed-design │ ◇ 개선을 위해 익명 사용 데이터를 수집할까요? │ Yes ``` 아래 파일을 프로젝트 루트에 생성해주세요. ```json title="seed-design.json" { "tsx": true, "framework": "lynx", "path": "./seed-design" } ``` ### seed-design path alias 설정하기 위에서 설정한 [seed-design.json path](/react/getting-started/cli/configuration#path)의 경로와 동일해야 해요. TypeScript가 snippet import를 해석할 수 있도록 루트 `tsconfig.json`에 path alias를 추가해요. ```json title="tsconfig.json" { "compilerOptions": { // ... your options "baseUrl": ".", "paths": { // [!code highlight] "seed-design/*": [ // [!code highlight] "./seed-design/*" ] } } } ``` Lynx 템플릿처럼 `src/tsconfig.json`이 별도로 있고 `composite` 프로젝트를 사용하는 경우, 생성된 snippet 경로도 include에 추가해야 해요. ```json title="src/tsconfig.json" { "include": [ "./**/*.ts", "./**/*.tsx", "../seed-design/**/*.ts", "../seed-design/**/*.tsx" ] } ``` Rspeedy/Rspack도 같은 alias를 알아야 런타임 빌드에서 `seed-design/*` import를 해석할 수 있어요. ```ts title="lynx.config.ts" 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, }, }, }); ``` `@karrotmarket/lynx-*-icon` 아이콘 패키지를 사용하는 경우 SVG asset을 Lynx에서 표시할 수 있도록 `@seed-design/rsbuild-plugin-lynx-icon`도 설정해야 해요. 자세한 설정은 [Iconography](/lynx/foundation/iconography#rsbuild-plugin-configuration)에서 확인하세요. ### Lynx 피쳐 플래그 설정하기 SEED 컴포넌트가 Lynx에서 정상 동작하려면 `pluginLynxConfig`로 피쳐 플래그를 설정해야 해요. - npm: npm install @lynx-js/config-rsbuild-plugin - pnpm: pnpm add @lynx-js/config-rsbuild-plugin - yarn: yarn add @lynx-js/config-rsbuild-plugin - bun: bun add @lynx-js/config-rsbuild-plugin ```ts title="lynx.config.ts" 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, }), ], }); ``` 각 플래그의 역할과 상황별 추가 설정은 [Feature Flags](/lynx/getting-started/feature-flags)에서 확인하세요. ### 컴포넌트를 한번 사용해볼까요? - npm: npx @seed-design/cli add ui:switch - pnpm: pnpm dlx @seed-design/cli add ui:switch - yarn: yarn dlx @seed-design/cli add ui:switch - bun: bun x @seed-design/cli add ui:switch ### (선택) lynx-console 설치하기 [lynx-console](https://github.com/daangn/lynx-console)은 Lynx 앱 안에서 콘솔 로그, 네트워크, 성능 지표를 확인할 수 있는 개발자 도구예요. - npm: npm install lynx-console - pnpm: pnpm add lynx-console - yarn: yarn add lynx-console - bun: bun add lynx-console 앱 entry에서 초기화하고 컴포넌트를 추가해주세요. ```tsx title="src/App.tsx" import { initLogMonitor, initMainThreadConsole, initNetworkMonitor, initPerformanceMonitor, } from "lynx-console/setup"; import LynxConsole from "lynx-console"; initLogMonitor(); initMainThreadConsole(); initNetworkMonitor(); initPerformanceMonitor(); function App() { return ( {/* your app */} ); } ``` 자세한 사용법은 [lynx-console GitHub](https://github.com/daangn/lynx-console)을 참고하세요.