Text Field
Text Field
버튼과 아이콘을 위한 선택적 슬롯(slot)을 가진 입력 컴포넌트예요.
출처: 문서
본문
단일 행 텍스트를 입력받는 필드로, 앞뒤에 아이콘이나 버튼을 배치할 수 있어요.
<TextField.Root placeholder="Search the docs…">
<TextField.Slot>
<MagnifyingGlassIcon height="16" width="16" />
</TextField.Slot>
</TextField.Root>
Root
Slot과 Input 부분을 묶어요. 이 컴포넌트는 div 요소를 기반으로 하며, 공통 margin props를 지원해요.
| Prop | Type | Default |
|---|---|---|
size |
Responsive<"1" | "2" | "3"> |
"2" |
variant |
"classic" | "surface" | "soft" |
"surface" |
color |
enum |
No default value |
radius |
"none" | "small" | "medium" | "large" | "full" |
No default value |
Slot
Input과 연결된 아이콘이나 버튼을 담아요.
| Prop | Type | Default |
|---|---|---|
side |
"left" | "right" |
No default value |
color |
enum |
No default value |
gap |
Responsive<enum | string> |
No default value |
px |
Responsive<enum | string> |
No default value |
pl |
Responsive<enum | string> |
No default value |
pr |
Responsive<enum | string> |
No default value |
예시 (Examples)
Size
size prop으로 크기를 제어할 수 있어요.
<Flex direction="column" gap="3">
<Box maxWidth="200px">
<TextField.Root size="1" placeholder="Search the docs…" />
</Box>
<Box maxWidth="250px">
<TextField.Root size="2" placeholder="Search the docs…" />
</Box>
<Box maxWidth="300px">
<TextField.Root size="3" placeholder="Search the docs…" />
</Box>
</Flex>
TextField를 버튼과 조합할 때는 서로 일치하는 컴포넌트 크기를 사용해 주세요. 다만 size 1 입력은 버튼과 함께 쓰지 않는 게 좋아요. 이 크기에서는 다른 상호작용 요소를 중첩할 세로 공간이 충분하지 않거든요.
<Flex direction="column" gap="3" maxWidth="400px">
<Box maxWidth="200px">
<TextField.Root placeholder="Search the docs…" size="1">
<TextField.Slot>
<MagnifyingGlassIcon height="16" width="16" />
</TextField.Slot>
</TextField.Root>
</Box>
<Box maxWidth="250px">
<TextField.Root placeholder="Search the docs…" size="2">
<TextField.Slot>
<MagnifyingGlassIcon height="16" width="16" />
</TextField.Slot>
<TextField.Slot>
<IconButton size="1" variant="ghost">
<DotsHorizontalIcon height="14" width="14" />
</IconButton>
</TextField.Slot>
</TextField.Root>
</Box>
<Box maxWidth="300px">
<TextField.Root placeholder="Search the docs…" size="3">
<TextField.Slot>
<MagnifyingGlassIcon height="16" width="16" />
</TextField.Slot>
<TextField.Slot pr="3">
<IconButton size="2" variant="ghost">
<DotsHorizontalIcon height="16" width="16" />
</IconButton>
</TextField.Slot>
</TextField.Root>
</Box>
</Flex>
Variant
variant prop으로 시각적 스타일을 제어할 수 있어요.
<Flex direction="column" gap="3" maxWidth="250px">
<TextField.Root variant="surface" placeholder="Search the docs…" />
<TextField.Root variant="classic" placeholder="Search the docs…" />
<TextField.Root variant="soft" placeholder="Search the docs…" />
</Flex>
Color
color prop으로 특정 색상을 지정할 수 있어요.
<Flex direction="column" gap="3" maxWidth="250px">
<TextField.Root color="indigo" variant="soft" placeholder="Search the docs…" />
<TextField.Root color="green" variant="soft" placeholder="Search the docs…" />
<TextField.Root color="red" variant="soft" placeholder="Search the docs…" />
</Flex>
Radius
radius prop으로 특정 둥근 모서리 값을 지정할 수 있어요.
<Flex direction="column" gap="3" maxWidth="250px">
<TextField.Root radius="none" placeholder="Search the docs…" />
<TextField.Root radius="large" placeholder="Search the docs…" />
<TextField.Root radius="full" placeholder="Search the docs…" />
</Flex>
더 알아보기 (Learn more)
TextField.Slot를 사용해 검색 아이콘 같은 요소를 필드 안에 자연스럽게 배치할 수 있어요.