본문으로 건너뛰기

Box

콘텐츠를 올려 두는 기본 표면입니다. 라이브러리에서 가장 단순한 sheet로, 내용을 묶어 배경에서 분리하는 일만 합니다.

tsx
import { Box } from 'neba';

<Box>내용</Box>;

Props

Prop타입기본값설명
variant공통'solid' | 'outline' | 'text''outline'표면의 무게. 시트는 염색되지 않으며, solid와 outline은 불투명도와 하이라인으로 갈립니다
size공통'xs' | 'sm' | 'md' | 'lg' | 'xl''md'모서리 반경과 안쪽 여백. 높이도 글자 크기도 건드리지 않습니다
color공통'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info''primary'의미론적 색 역할. 표면은 흰색이므로 하이라인에만 나타납니다 (solid에는 테두리가 없어 보이지 않습니다)
density공통'default' | 'compact''default'여백만 바꿉니다. 높이와 글자 크기는 그대로
elevation공통0 | 1 | 2 | 30그림자 깊이. variant가 text면 무시됩니다
paddedbooleantrue안쪽 여백. 이미지·표처럼 가장자리까지 채우는 콘텐츠는 끄세요
renderuseRender.RenderPropdiv 대신 다른 요소로 렌더링합니다. Base UI의 render prop 그대로
childrenReactNode박스에 담기는 내용
transition공통NebaTransitionmount 시 한 번 실행되는 등장 애니메이션 (transition="fade"). 트리거나 반복이 필요하면 Animate* 컴포넌트로 감싸세요

color를 제외한 <div>의 native 속성이 그대로 전달됩니다.

제목이나 푸터, 구분선처럼 구조가 필요하면 Card를 쓰세요. Card는 그 섹션들이 배치된 Box입니다.

예시

variant

세 무게 모두 sheet를 색으로 채우지 않습니다. Box가 담는 것은 본문과 링크, 버튼처럼 저마다 색을 가진 콘텐츠이기 때문입니다. solidoutline을 가르는 것은 색이 아니라 sheet의 불투명도와 테두리 유무입니다. 자세한 내용은 에 있습니다.

text는 표면이 없으므로 elevation도 무시됩니다.

color

표면이 흰색이므로 color테두리에만 나타납니다. 아래 예시가 outline인 것은 그 때문입니다. 테두리가 없는 solid Box에서는 color가 보이는 변화를 만들지 않습니다.

size

Box의 size는 높이나 타입 스케일이 아니라 sheet의 크기, 즉 모서리 반경과 여백을 정합니다. Box의 높이는 담긴 내용이 정하고, 타이포그래피도 담긴 내용이 가져옵니다.

elevation

padded와 render

padded={false}는 이미지나 표처럼 가장자리까지 채우는 콘텐츠를 위한 것입니다. render<div> 대신 다른 요소로 렌더링할 수 있습니다.

Released under the MIT License