# Box URL: /lynx/foundation/layout/box Source: https://github.com/daangn/seed-design/blob/dev/docs/content/lynx/foundation/layout/box.mdx Box 컴포넌트는 Lynx에서 가장 기초적인 레이아웃 표면을 구성하는 컴포넌트입니다. ## Installation - npm: npm install @seed-design/lynx-react @seed-design/lynx-css - pnpm: pnpm add @seed-design/lynx-react @seed-design/lynx-css - yarn: yarn add @seed-design/lynx-react @seed-design/lynx-css - bun: bun add @seed-design/lynx-react @seed-design/lynx-css ## Usage ```tsx import { Box, Text } from "@seed-design/lynx-react"; export function App() { return ( Box ); } ``` `Box`는 Lynx 네이티브 ``를 렌더링합니다. `bg`, `p`, `borderRadius` 같은 스타일 prop은 SEED 토큰을 직접 object style 값으로 변환해 적용합니다. Lynx에서는 웹 `Box`처럼 CSS variable을 클래스에 주입하는 방식이 아니라, 지원 가능한 스타일 prop만 직접 계산해 ``에 적용합니다. `Box`는 편의를 위한 primitive입니다. 많은 항목을 반복 렌더링하는 화면에서는 primitive 컴포넌트와 object style 계산 비용이 누적될 수 있으므로, 앱 코드에서는 native ``/``에 Tailwind utility className을 직접 사용하는 방식을 우선 고려하세요. 패키지 컴포넌트 내부에서는 native tag와 recipe className을 사용하고, inline style은 safe area처럼 런타임 값이 필요한 경우에만 제한적으로 사용합니다. ## Props ## Style Props 현재 `Box`에서 여는 스타일 prop은 Lynx에서 안정적으로 검증한 범위로 제한합니다. | 분류 | Props | | ---- | -------------------------------------------------------------------------------------------------------------------------------- | | 색상 | `bg`, `background`, `color`, `borderColor` | | 테두리 | `borderWidth`, `borderTopWidth`, `borderRightWidth`, `borderBottomWidth`, `borderLeftWidth`, `borderRadius`와 corner radius props | | 크기 | `width`, `minWidth`, `maxWidth`, `height`, `minHeight`, `maxHeight` | | 패딩 | `p`, `px`, `py`, `pt`, `pr`, `pb`, `pl`과 longhand padding props | | Flex | `display`, `flexDirection`, `flexWrap`, `flexGrow`, `flexShrink`, `alignItems`, `justifyContent`, `gap` | | 배치 | `position`, `top`, `right`, `bottom`, `left`, `zIndex`, `overflowX`, `overflowY` | 명시적인 `style` prop은 마지막에 merge되므로, 필요한 경우 계산된 스타일을 덮어쓸 수 있습니다. ```tsx paddingLeft만 직접 override ``` ## 웹 버전과의 차이 Lynx `Box`는 React `Box`와 다음과 같은 차이가 있습니다. - `as`, `asChild`를 지원하지 않습니다. Lynx 컴파일러 제약 때문에 네이티브 ``를 컴포넌트 파일 안에서 직접 렌더링합니다. - `bgGradient`, `boxShadow`, `bleedX`, `bleedY`, `unstable_transform`처럼 아직 Lynx에서 검증하지 않은 StyleProps는 열지 않습니다. - margin 계열 shorthand는 제공하지 않습니다. 레이아웃 간격은 `VStack` / `HStack`의 `gap` 또는 명시적인 `style`을 사용합니다. - 이벤트는 웹의 `onClick` 대신 Lynx의 `bindtap` 계열 prop을 사용합니다.