@ceed/ads 1.13.4 → 1.15.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Overview.md +11 -0
- package/dist/components/Menu/Menu.d.ts +2 -5
- package/dist/components/Stepper/Stepper.d.ts +6 -0
- package/dist/components/data-display/Avatar.md +428 -0
- package/dist/components/data-display/Badge.md +315 -0
- package/dist/components/data-display/Chip.md +301 -0
- package/dist/components/data-display/DataTable.md +452 -0
- package/dist/components/data-display/InfoSign.md +160 -0
- package/dist/components/data-display/Markdown.md +17 -0
- package/dist/components/data-display/Table.md +1330 -0
- package/dist/components/data-display/Tooltip.md +444 -0
- package/dist/components/data-display/Typography.md +271 -0
- package/dist/components/data-display/llms.txt +17 -0
- package/dist/components/feedback/Alert.md +663 -0
- package/dist/components/feedback/Dialog.md +33 -0
- package/dist/components/feedback/Modal.md +39 -0
- package/dist/components/feedback/llms.txt +11 -0
- package/dist/components/inputs/Autocomplete.md +103 -0
- package/dist/components/inputs/Button.md +334 -0
- package/dist/components/inputs/ButtonGroup.md +382 -0
- package/dist/components/inputs/Calendar.md +19 -0
- package/dist/components/inputs/Checkbox.md +649 -0
- package/dist/components/inputs/CurrencyInput.md +91 -0
- package/dist/components/inputs/DatePicker.md +67 -0
- package/dist/components/inputs/DateRangePicker.md +55 -0
- package/dist/components/inputs/FilterMenu.md +210 -0
- package/dist/components/inputs/IconButton.md +361 -0
- package/dist/components/inputs/Input.md +283 -0
- package/dist/components/inputs/MonthPicker.md +72 -0
- package/dist/components/inputs/MonthRangePicker.md +70 -0
- package/dist/components/inputs/PercentageInput.md +116 -0
- package/dist/components/inputs/RadioButton.md +350 -0
- package/dist/components/inputs/RadioTileGroup.md +418 -0
- package/dist/components/inputs/Select.md +56 -0
- package/dist/components/inputs/Switch.md +577 -0
- package/dist/components/inputs/Textarea.md +64 -0
- package/dist/components/inputs/Uploader/Uploader.md +238 -0
- package/dist/components/inputs/Uploader/llms.txt +9 -0
- package/dist/components/inputs/llms.txt +31 -0
- package/dist/components/layout/Box.md +997 -0
- package/dist/components/layout/Container.md +23 -0
- package/dist/components/layout/Grid.md +728 -0
- package/dist/components/layout/Stack.md +937 -0
- package/dist/components/layout/llms.txt +12 -0
- package/dist/components/llms.txt +14 -0
- package/dist/components/navigation/Breadcrumbs.md +51 -0
- package/dist/components/navigation/Dropdown.md +768 -0
- package/dist/components/navigation/IconMenuButton.md +35 -0
- package/dist/components/navigation/InsetDrawer.md +133 -0
- package/dist/components/navigation/Link.md +24 -0
- package/dist/components/navigation/Menu.md +957 -0
- package/dist/components/navigation/MenuButton.md +39 -0
- package/dist/components/navigation/NavigationGroup.md +17 -0
- package/dist/components/navigation/NavigationItem.md +17 -0
- package/dist/components/navigation/Navigator.md +17 -0
- package/dist/components/navigation/Pagination.md +17 -0
- package/dist/components/navigation/ProfileMenu.md +34 -0
- package/dist/components/navigation/Stepper.md +108 -0
- package/dist/components/navigation/Tabs.md +34 -0
- package/dist/components/navigation/llms.txt +22 -0
- package/dist/components/surfaces/Accordions.md +96 -0
- package/dist/components/surfaces/Card.md +786 -0
- package/dist/components/surfaces/Divider.md +762 -0
- package/dist/components/surfaces/Sheet.md +900 -0
- package/dist/components/surfaces/llms.txt +12 -0
- package/dist/index.cjs +22 -10
- package/dist/index.js +22 -10
- package/dist/llms.txt +75 -0
- package/framer/index.js +36 -36
- package/package.json +8 -4
|
@@ -0,0 +1,997 @@
|
|
|
1
|
+
# Box
|
|
2
|
+
|
|
3
|
+
## Introduction
|
|
4
|
+
|
|
5
|
+
Box는 가장 기본적이고 중요한 레이아웃 컴포넌트입니다. 다른 컴포넌트들을 감싸는 범용 컨테이너 역할을 하며, CSS-in-JS를 통해 스타일을 직접 적용할 수 있습니다. Framer Motion이 내장되어 있어 애니메이션 효과도 쉽게 추가할 수 있습니다. 모든 HTML 요소로 변환 가능한 다형성(polymorphic) 컴포넌트이기도 합니다.
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
<Box {...args} sx={{
|
|
9
|
+
width: 200,
|
|
10
|
+
height: 200,
|
|
11
|
+
backgroundColor: 'primary.50',
|
|
12
|
+
border: '2px solid',
|
|
13
|
+
borderColor: 'primary.200',
|
|
14
|
+
borderRadius: 'md',
|
|
15
|
+
display: 'flex',
|
|
16
|
+
alignItems: 'center',
|
|
17
|
+
justifyContent: 'center'
|
|
18
|
+
}}>
|
|
19
|
+
<Typography>Box 컴포넌트</Typography>
|
|
20
|
+
</Box>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
| Field | Description | Default |
|
|
24
|
+
| --------- | ----------- | ------- |
|
|
25
|
+
| component | HTML 요소 타입 | "div" |
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
```tsx
|
|
30
|
+
import { Box } from '@ceed/ads';
|
|
31
|
+
|
|
32
|
+
function MyComponent() {
|
|
33
|
+
return (
|
|
34
|
+
<Box
|
|
35
|
+
sx={{
|
|
36
|
+
p: 2,
|
|
37
|
+
bgcolor: 'primary.50',
|
|
38
|
+
borderRadius: 'md',
|
|
39
|
+
}}
|
|
40
|
+
>
|
|
41
|
+
콘텐츠가 들어갑니다
|
|
42
|
+
</Box>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
|
|
49
|
+
### Basic Usage
|
|
50
|
+
|
|
51
|
+
가장 기본적인 Box 사용법입니다.
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
<div style={{
|
|
55
|
+
display: 'flex',
|
|
56
|
+
gap: '1rem',
|
|
57
|
+
flexWrap: 'wrap'
|
|
58
|
+
}}>
|
|
59
|
+
<Box sx={{
|
|
60
|
+
p: 2,
|
|
61
|
+
bgcolor: 'background.body',
|
|
62
|
+
border: '1px solid',
|
|
63
|
+
borderColor: 'divider'
|
|
64
|
+
}}>
|
|
65
|
+
<Typography>기본 Box</Typography>
|
|
66
|
+
</Box>
|
|
67
|
+
|
|
68
|
+
<Box sx={{
|
|
69
|
+
p: 2,
|
|
70
|
+
bgcolor: 'primary.50',
|
|
71
|
+
borderRadius: 'sm'
|
|
72
|
+
}}>
|
|
73
|
+
<Typography>배경색과 둥근 모서리</Typography>
|
|
74
|
+
</Box>
|
|
75
|
+
|
|
76
|
+
<Box sx={{
|
|
77
|
+
p: 2,
|
|
78
|
+
border: '2px solid',
|
|
79
|
+
borderColor: 'primary.main',
|
|
80
|
+
borderRadius: 'md'
|
|
81
|
+
}}>
|
|
82
|
+
<Typography>테두리가 있는 Box</Typography>
|
|
83
|
+
</Box>
|
|
84
|
+
</div>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Colors
|
|
88
|
+
|
|
89
|
+
다양한 배경색을 적용할 수 있습니다.
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
<div style={{
|
|
93
|
+
display: 'flex',
|
|
94
|
+
gap: '1rem',
|
|
95
|
+
flexWrap: 'wrap'
|
|
96
|
+
}}>
|
|
97
|
+
<Box sx={{
|
|
98
|
+
p: 2,
|
|
99
|
+
bgcolor: 'primary.50',
|
|
100
|
+
borderRadius: 'sm'
|
|
101
|
+
}}>
|
|
102
|
+
<Typography level="body-sm">Primary</Typography>
|
|
103
|
+
</Box>
|
|
104
|
+
|
|
105
|
+
<Box sx={{
|
|
106
|
+
p: 2,
|
|
107
|
+
bgcolor: 'neutral.50',
|
|
108
|
+
borderRadius: 'sm'
|
|
109
|
+
}}>
|
|
110
|
+
<Typography level="body-sm">Neutral</Typography>
|
|
111
|
+
</Box>
|
|
112
|
+
|
|
113
|
+
<Box sx={{
|
|
114
|
+
p: 2,
|
|
115
|
+
bgcolor: 'danger.50',
|
|
116
|
+
borderRadius: 'sm'
|
|
117
|
+
}}>
|
|
118
|
+
<Typography level="body-sm">Danger</Typography>
|
|
119
|
+
</Box>
|
|
120
|
+
|
|
121
|
+
<Box sx={{
|
|
122
|
+
p: 2,
|
|
123
|
+
bgcolor: 'success.50',
|
|
124
|
+
borderRadius: 'sm'
|
|
125
|
+
}}>
|
|
126
|
+
<Typography level="body-sm">Success</Typography>
|
|
127
|
+
</Box>
|
|
128
|
+
|
|
129
|
+
<Box sx={{
|
|
130
|
+
p: 2,
|
|
131
|
+
bgcolor: 'warning.50',
|
|
132
|
+
borderRadius: 'sm'
|
|
133
|
+
}}>
|
|
134
|
+
<Typography level="body-sm">Warning</Typography>
|
|
135
|
+
</Box>
|
|
136
|
+
</div>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Spacing
|
|
140
|
+
|
|
141
|
+
패딩과 마진을 조절할 수 있습니다.
|
|
142
|
+
|
|
143
|
+
```tsx
|
|
144
|
+
<div style={{
|
|
145
|
+
display: 'flex',
|
|
146
|
+
flexDirection: 'column',
|
|
147
|
+
gap: '1rem'
|
|
148
|
+
}}>
|
|
149
|
+
<Box sx={{
|
|
150
|
+
p: 1,
|
|
151
|
+
bgcolor: 'neutral.100',
|
|
152
|
+
borderRadius: 'sm'
|
|
153
|
+
}}>
|
|
154
|
+
<Typography level="body-sm">패딩 1 (8px)</Typography>
|
|
155
|
+
</Box>
|
|
156
|
+
|
|
157
|
+
<Box sx={{
|
|
158
|
+
p: 2,
|
|
159
|
+
bgcolor: 'neutral.100',
|
|
160
|
+
borderRadius: 'sm'
|
|
161
|
+
}}>
|
|
162
|
+
<Typography level="body-sm">패딩 2 (16px)</Typography>
|
|
163
|
+
</Box>
|
|
164
|
+
|
|
165
|
+
<Box sx={{
|
|
166
|
+
p: 3,
|
|
167
|
+
bgcolor: 'neutral.100',
|
|
168
|
+
borderRadius: 'sm'
|
|
169
|
+
}}>
|
|
170
|
+
<Typography level="body-sm">패딩 3 (24px)</Typography>
|
|
171
|
+
</Box>
|
|
172
|
+
|
|
173
|
+
<Box sx={{
|
|
174
|
+
p: 4,
|
|
175
|
+
bgcolor: 'neutral.100',
|
|
176
|
+
borderRadius: 'sm'
|
|
177
|
+
}}>
|
|
178
|
+
<Typography level="body-sm">패딩 4 (32px)</Typography>
|
|
179
|
+
</Box>
|
|
180
|
+
|
|
181
|
+
<div style={{
|
|
182
|
+
display: 'flex',
|
|
183
|
+
gap: '1rem',
|
|
184
|
+
marginTop: '2rem'
|
|
185
|
+
}}>
|
|
186
|
+
<Box sx={{
|
|
187
|
+
m: 1,
|
|
188
|
+
p: 2,
|
|
189
|
+
bgcolor: 'primary.50',
|
|
190
|
+
borderRadius: 'sm'
|
|
191
|
+
}}>
|
|
192
|
+
<Typography level="body-sm">마진 1</Typography>
|
|
193
|
+
</Box>
|
|
194
|
+
|
|
195
|
+
<Box sx={{
|
|
196
|
+
m: 2,
|
|
197
|
+
p: 2,
|
|
198
|
+
bgcolor: 'primary.50',
|
|
199
|
+
borderRadius: 'sm'
|
|
200
|
+
}}>
|
|
201
|
+
<Typography level="body-sm">마진 2</Typography>
|
|
202
|
+
</Box>
|
|
203
|
+
|
|
204
|
+
<Box sx={{
|
|
205
|
+
m: 3,
|
|
206
|
+
p: 2,
|
|
207
|
+
bgcolor: 'primary.50',
|
|
208
|
+
borderRadius: 'sm'
|
|
209
|
+
}}>
|
|
210
|
+
<Typography level="body-sm">마진 3</Typography>
|
|
211
|
+
</Box>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Border Radius
|
|
217
|
+
|
|
218
|
+
모서리 둥글기를 다양하게 설정할 수 있습니다.
|
|
219
|
+
|
|
220
|
+
```tsx
|
|
221
|
+
<div style={{
|
|
222
|
+
display: 'flex',
|
|
223
|
+
gap: '1rem',
|
|
224
|
+
flexWrap: 'wrap',
|
|
225
|
+
alignItems: 'center'
|
|
226
|
+
}}>
|
|
227
|
+
<Box sx={{
|
|
228
|
+
width: 100,
|
|
229
|
+
height: 100,
|
|
230
|
+
bgcolor: 'primary.100',
|
|
231
|
+
display: 'flex',
|
|
232
|
+
alignItems: 'center',
|
|
233
|
+
justifyContent: 'center'
|
|
234
|
+
}}>
|
|
235
|
+
<Typography level="body-xs">None</Typography>
|
|
236
|
+
</Box>
|
|
237
|
+
|
|
238
|
+
<Box sx={{
|
|
239
|
+
width: 100,
|
|
240
|
+
height: 100,
|
|
241
|
+
bgcolor: 'primary.100',
|
|
242
|
+
borderRadius: 'xs',
|
|
243
|
+
display: 'flex',
|
|
244
|
+
alignItems: 'center',
|
|
245
|
+
justifyContent: 'center'
|
|
246
|
+
}}>
|
|
247
|
+
<Typography level="body-xs">XS</Typography>
|
|
248
|
+
</Box>
|
|
249
|
+
|
|
250
|
+
<Box sx={{
|
|
251
|
+
width: 100,
|
|
252
|
+
height: 100,
|
|
253
|
+
bgcolor: 'primary.100',
|
|
254
|
+
borderRadius: 'sm',
|
|
255
|
+
display: 'flex',
|
|
256
|
+
alignItems: 'center',
|
|
257
|
+
justifyContent: 'center'
|
|
258
|
+
}}>
|
|
259
|
+
<Typography level="body-xs">SM</Typography>
|
|
260
|
+
</Box>
|
|
261
|
+
|
|
262
|
+
<Box sx={{
|
|
263
|
+
width: 100,
|
|
264
|
+
height: 100,
|
|
265
|
+
bgcolor: 'primary.100',
|
|
266
|
+
borderRadius: 'md',
|
|
267
|
+
display: 'flex',
|
|
268
|
+
alignItems: 'center',
|
|
269
|
+
justifyContent: 'center'
|
|
270
|
+
}}>
|
|
271
|
+
<Typography level="body-xs">MD</Typography>
|
|
272
|
+
</Box>
|
|
273
|
+
|
|
274
|
+
<Box sx={{
|
|
275
|
+
width: 100,
|
|
276
|
+
height: 100,
|
|
277
|
+
bgcolor: 'primary.100',
|
|
278
|
+
borderRadius: 'lg',
|
|
279
|
+
display: 'flex',
|
|
280
|
+
alignItems: 'center',
|
|
281
|
+
justifyContent: 'center'
|
|
282
|
+
}}>
|
|
283
|
+
<Typography level="body-xs">LG</Typography>
|
|
284
|
+
</Box>
|
|
285
|
+
|
|
286
|
+
<Box sx={{
|
|
287
|
+
width: 100,
|
|
288
|
+
height: 100,
|
|
289
|
+
bgcolor: 'primary.100',
|
|
290
|
+
borderRadius: 'xl',
|
|
291
|
+
display: 'flex',
|
|
292
|
+
alignItems: 'center',
|
|
293
|
+
justifyContent: 'center'
|
|
294
|
+
}}>
|
|
295
|
+
<Typography level="body-xs">XL</Typography>
|
|
296
|
+
</Box>
|
|
297
|
+
</div>
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Shadows
|
|
301
|
+
|
|
302
|
+
그림자 효과를 추가할 수 있습니다.
|
|
303
|
+
|
|
304
|
+
```tsx
|
|
305
|
+
<div style={{
|
|
306
|
+
display: 'flex',
|
|
307
|
+
gap: '2rem',
|
|
308
|
+
flexWrap: 'wrap',
|
|
309
|
+
alignItems: 'center',
|
|
310
|
+
padding: '2rem'
|
|
311
|
+
}}>
|
|
312
|
+
<Box sx={{
|
|
313
|
+
width: 120,
|
|
314
|
+
height: 80,
|
|
315
|
+
bgcolor: 'background.body',
|
|
316
|
+
borderRadius: 'md',
|
|
317
|
+
display: 'flex',
|
|
318
|
+
alignItems: 'center',
|
|
319
|
+
justifyContent: 'center'
|
|
320
|
+
}}>
|
|
321
|
+
<Typography level="body-sm">No Shadow</Typography>
|
|
322
|
+
</Box>
|
|
323
|
+
|
|
324
|
+
<Box sx={{
|
|
325
|
+
width: 120,
|
|
326
|
+
height: 80,
|
|
327
|
+
bgcolor: 'background.body',
|
|
328
|
+
borderRadius: 'md',
|
|
329
|
+
boxShadow: 'xs',
|
|
330
|
+
display: 'flex',
|
|
331
|
+
alignItems: 'center',
|
|
332
|
+
justifyContent: 'center'
|
|
333
|
+
}}>
|
|
334
|
+
<Typography level="body-sm">XS Shadow</Typography>
|
|
335
|
+
</Box>
|
|
336
|
+
|
|
337
|
+
<Box sx={{
|
|
338
|
+
width: 120,
|
|
339
|
+
height: 80,
|
|
340
|
+
bgcolor: 'background.body',
|
|
341
|
+
borderRadius: 'md',
|
|
342
|
+
boxShadow: 'sm',
|
|
343
|
+
display: 'flex',
|
|
344
|
+
alignItems: 'center',
|
|
345
|
+
justifyContent: 'center'
|
|
346
|
+
}}>
|
|
347
|
+
<Typography level="body-sm">SM Shadow</Typography>
|
|
348
|
+
</Box>
|
|
349
|
+
|
|
350
|
+
<Box sx={{
|
|
351
|
+
width: 120,
|
|
352
|
+
height: 80,
|
|
353
|
+
bgcolor: 'background.body',
|
|
354
|
+
borderRadius: 'md',
|
|
355
|
+
boxShadow: 'md',
|
|
356
|
+
display: 'flex',
|
|
357
|
+
alignItems: 'center',
|
|
358
|
+
justifyContent: 'center'
|
|
359
|
+
}}>
|
|
360
|
+
<Typography level="body-sm">MD Shadow</Typography>
|
|
361
|
+
</Box>
|
|
362
|
+
|
|
363
|
+
<Box sx={{
|
|
364
|
+
width: 120,
|
|
365
|
+
height: 80,
|
|
366
|
+
bgcolor: 'background.body',
|
|
367
|
+
borderRadius: 'md',
|
|
368
|
+
boxShadow: 'lg',
|
|
369
|
+
display: 'flex',
|
|
370
|
+
alignItems: 'center',
|
|
371
|
+
justifyContent: 'center'
|
|
372
|
+
}}>
|
|
373
|
+
<Typography level="body-sm">LG Shadow</Typography>
|
|
374
|
+
</Box>
|
|
375
|
+
|
|
376
|
+
<Box sx={{
|
|
377
|
+
width: 120,
|
|
378
|
+
height: 80,
|
|
379
|
+
bgcolor: 'background.body',
|
|
380
|
+
borderRadius: 'md',
|
|
381
|
+
boxShadow: 'xl',
|
|
382
|
+
display: 'flex',
|
|
383
|
+
alignItems: 'center',
|
|
384
|
+
justifyContent: 'center'
|
|
385
|
+
}}>
|
|
386
|
+
<Typography level="body-sm">XL Shadow</Typography>
|
|
387
|
+
</Box>
|
|
388
|
+
</div>
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
### Flex Layouts
|
|
392
|
+
|
|
393
|
+
Flexbox를 사용한 레이아웃을 쉽게 만들 수 있습니다.
|
|
394
|
+
|
|
395
|
+
```tsx
|
|
396
|
+
<div style={{
|
|
397
|
+
display: 'flex',
|
|
398
|
+
flexDirection: 'column',
|
|
399
|
+
gap: '2rem'
|
|
400
|
+
}}>
|
|
401
|
+
<div>
|
|
402
|
+
<Typography level="title-md" sx={{
|
|
403
|
+
mb: 1
|
|
404
|
+
}}>
|
|
405
|
+
Flex Row (수평 배치)
|
|
406
|
+
</Typography>
|
|
407
|
+
<Box sx={{
|
|
408
|
+
display: 'flex',
|
|
409
|
+
gap: 1,
|
|
410
|
+
p: 2,
|
|
411
|
+
bgcolor: 'neutral.50',
|
|
412
|
+
borderRadius: 'md'
|
|
413
|
+
}}>
|
|
414
|
+
<Box sx={{
|
|
415
|
+
p: 2,
|
|
416
|
+
bgcolor: 'primary.100',
|
|
417
|
+
borderRadius: 'sm',
|
|
418
|
+
flex: 1
|
|
419
|
+
}}>
|
|
420
|
+
<Typography level="body-sm">Item 1</Typography>
|
|
421
|
+
</Box>
|
|
422
|
+
<Box sx={{
|
|
423
|
+
p: 2,
|
|
424
|
+
bgcolor: 'primary.100',
|
|
425
|
+
borderRadius: 'sm',
|
|
426
|
+
flex: 1
|
|
427
|
+
}}>
|
|
428
|
+
<Typography level="body-sm">Item 2</Typography>
|
|
429
|
+
</Box>
|
|
430
|
+
<Box sx={{
|
|
431
|
+
p: 2,
|
|
432
|
+
bgcolor: 'primary.100',
|
|
433
|
+
borderRadius: 'sm',
|
|
434
|
+
flex: 1
|
|
435
|
+
}}>
|
|
436
|
+
<Typography level="body-sm">Item 3</Typography>
|
|
437
|
+
</Box>
|
|
438
|
+
</Box>
|
|
439
|
+
</div>
|
|
440
|
+
|
|
441
|
+
<div>
|
|
442
|
+
<Typography level="title-md" sx={{
|
|
443
|
+
mb: 1
|
|
444
|
+
}}>
|
|
445
|
+
Flex Column (수직 배치)
|
|
446
|
+
</Typography>
|
|
447
|
+
<Box sx={{
|
|
448
|
+
display: 'flex',
|
|
449
|
+
flexDirection: 'column',
|
|
450
|
+
gap: 1,
|
|
451
|
+
p: 2,
|
|
452
|
+
bgcolor: 'neutral.50',
|
|
453
|
+
borderRadius: 'md',
|
|
454
|
+
width: 200
|
|
455
|
+
}}>
|
|
456
|
+
<Box sx={{
|
|
457
|
+
p: 2,
|
|
458
|
+
bgcolor: 'success.100',
|
|
459
|
+
borderRadius: 'sm'
|
|
460
|
+
}}>
|
|
461
|
+
<Typography level="body-sm">Item 1</Typography>
|
|
462
|
+
</Box>
|
|
463
|
+
<Box sx={{
|
|
464
|
+
p: 2,
|
|
465
|
+
bgcolor: 'success.100',
|
|
466
|
+
borderRadius: 'sm'
|
|
467
|
+
}}>
|
|
468
|
+
<Typography level="body-sm">Item 2</Typography>
|
|
469
|
+
</Box>
|
|
470
|
+
<Box sx={{
|
|
471
|
+
p: 2,
|
|
472
|
+
bgcolor: 'success.100',
|
|
473
|
+
borderRadius: 'sm'
|
|
474
|
+
}}>
|
|
475
|
+
<Typography level="body-sm">Item 3</Typography>
|
|
476
|
+
</Box>
|
|
477
|
+
</Box>
|
|
478
|
+
</div>
|
|
479
|
+
|
|
480
|
+
<div>
|
|
481
|
+
<Typography level="title-md" sx={{
|
|
482
|
+
mb: 1
|
|
483
|
+
}}>
|
|
484
|
+
Center Alignment
|
|
485
|
+
</Typography>
|
|
486
|
+
<Box sx={{
|
|
487
|
+
display: 'flex',
|
|
488
|
+
alignItems: 'center',
|
|
489
|
+
justifyContent: 'center',
|
|
490
|
+
height: 150,
|
|
491
|
+
bgcolor: 'warning.50',
|
|
492
|
+
borderRadius: 'md'
|
|
493
|
+
}}>
|
|
494
|
+
<Typography level="title-lg">중앙 정렬된 콘텐츠</Typography>
|
|
495
|
+
</Box>
|
|
496
|
+
</div>
|
|
497
|
+
</div>
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
### Responsive Layout
|
|
501
|
+
|
|
502
|
+
반응형 레이아웃을 구현할 수 있습니다.
|
|
503
|
+
|
|
504
|
+
```tsx
|
|
505
|
+
<div style={{
|
|
506
|
+
display: 'flex',
|
|
507
|
+
flexDirection: 'column',
|
|
508
|
+
gap: '2rem'
|
|
509
|
+
}}>
|
|
510
|
+
<Typography level="title-md">반응형 레이아웃 (브라우저 크기를 조절해보세요)</Typography>
|
|
511
|
+
|
|
512
|
+
<Box sx={{
|
|
513
|
+
display: 'grid',
|
|
514
|
+
gridTemplateColumns: {
|
|
515
|
+
xs: '1fr',
|
|
516
|
+
sm: 'repeat(2, 1fr)',
|
|
517
|
+
md: 'repeat(3, 1fr)'
|
|
518
|
+
},
|
|
519
|
+
gap: 2,
|
|
520
|
+
p: 2,
|
|
521
|
+
bgcolor: 'neutral.50',
|
|
522
|
+
borderRadius: 'md'
|
|
523
|
+
}}>
|
|
524
|
+
{[1, 2, 3, 4, 5, 6].map(item => <Box key={item} sx={{
|
|
525
|
+
p: 2,
|
|
526
|
+
bgcolor: 'primary.100',
|
|
527
|
+
borderRadius: 'sm',
|
|
528
|
+
textAlign: 'center'
|
|
529
|
+
}}>
|
|
530
|
+
<Typography level="body-md">Item {item}</Typography>
|
|
531
|
+
</Box>)}
|
|
532
|
+
</Box>
|
|
533
|
+
|
|
534
|
+
<Box sx={{
|
|
535
|
+
p: {
|
|
536
|
+
xs: 2,
|
|
537
|
+
md: 4
|
|
538
|
+
},
|
|
539
|
+
fontSize: {
|
|
540
|
+
xs: 'sm',
|
|
541
|
+
md: 'lg'
|
|
542
|
+
},
|
|
543
|
+
bgcolor: 'success.50',
|
|
544
|
+
borderRadius: 'md',
|
|
545
|
+
textAlign: 'center'
|
|
546
|
+
}}>
|
|
547
|
+
<Typography>패딩과 폰트 크기가 화면 크기에 따라 달라집니다</Typography>
|
|
548
|
+
</Box>
|
|
549
|
+
</div>
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
### Polymorphic Components
|
|
553
|
+
|
|
554
|
+
component prop을 사용하여 다양한 HTML 요소로 렌더링할 수 있습니다.
|
|
555
|
+
|
|
556
|
+
```tsx
|
|
557
|
+
<div style={{
|
|
558
|
+
display: 'flex',
|
|
559
|
+
flexDirection: 'column',
|
|
560
|
+
gap: '2rem'
|
|
561
|
+
}}>
|
|
562
|
+
<Box component="div" sx={{
|
|
563
|
+
p: 2,
|
|
564
|
+
bgcolor: 'neutral.100',
|
|
565
|
+
borderRadius: 'sm'
|
|
566
|
+
}}>
|
|
567
|
+
<Typography level="body-sm">component="div" (기본값)</Typography>
|
|
568
|
+
</Box>
|
|
569
|
+
|
|
570
|
+
<Box component="section" sx={{
|
|
571
|
+
p: 2,
|
|
572
|
+
bgcolor: 'primary.100',
|
|
573
|
+
borderRadius: 'sm'
|
|
574
|
+
}}>
|
|
575
|
+
<Typography level="body-sm">component="section"</Typography>
|
|
576
|
+
</Box>
|
|
577
|
+
|
|
578
|
+
<Box component="article" sx={{
|
|
579
|
+
p: 2,
|
|
580
|
+
bgcolor: 'success.100',
|
|
581
|
+
borderRadius: 'sm'
|
|
582
|
+
}}>
|
|
583
|
+
<Typography level="body-sm">component="article"</Typography>
|
|
584
|
+
</Box>
|
|
585
|
+
|
|
586
|
+
<Box component="nav" sx={{
|
|
587
|
+
p: 2,
|
|
588
|
+
bgcolor: 'warning.100',
|
|
589
|
+
borderRadius: 'sm'
|
|
590
|
+
}}>
|
|
591
|
+
<Typography level="body-sm">component="nav"</Typography>
|
|
592
|
+
</Box>
|
|
593
|
+
|
|
594
|
+
<Box component="main" sx={{
|
|
595
|
+
p: 2,
|
|
596
|
+
bgcolor: 'danger.100',
|
|
597
|
+
borderRadius: 'sm'
|
|
598
|
+
}}>
|
|
599
|
+
<Typography level="body-sm">component="main"</Typography>
|
|
600
|
+
</Box>
|
|
601
|
+
</div>
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
### Motion Animations
|
|
605
|
+
|
|
606
|
+
내장된 Framer Motion을 사용한 애니메이션 효과입니다.
|
|
607
|
+
|
|
608
|
+
```tsx
|
|
609
|
+
<div style={{
|
|
610
|
+
display: 'flex',
|
|
611
|
+
flexDirection: 'column',
|
|
612
|
+
gap: '2rem',
|
|
613
|
+
alignItems: 'center'
|
|
614
|
+
}}>
|
|
615
|
+
<button onClick={() => setIsVisible(!isVisible)}>{isVisible ? '숨기기' : '보이기'}</button>
|
|
616
|
+
|
|
617
|
+
{isVisible && <Box sx={{
|
|
618
|
+
width: 200,
|
|
619
|
+
height: 200,
|
|
620
|
+
bgcolor: 'primary.100',
|
|
621
|
+
borderRadius: 'md',
|
|
622
|
+
display: 'flex',
|
|
623
|
+
alignItems: 'center',
|
|
624
|
+
justifyContent: 'center'
|
|
625
|
+
}} initial={{
|
|
626
|
+
opacity: 0,
|
|
627
|
+
scale: 0.8
|
|
628
|
+
}} animate={{
|
|
629
|
+
opacity: 1,
|
|
630
|
+
scale: 1
|
|
631
|
+
}} exit={{
|
|
632
|
+
opacity: 0,
|
|
633
|
+
scale: 0.8
|
|
634
|
+
}} transition={{
|
|
635
|
+
duration: 0.3
|
|
636
|
+
}}>
|
|
637
|
+
<Typography level="title-md">애니메이션 Box</Typography>
|
|
638
|
+
</Box>}
|
|
639
|
+
|
|
640
|
+
<Box sx={{
|
|
641
|
+
width: 100,
|
|
642
|
+
height: 100,
|
|
643
|
+
bgcolor: 'success.200',
|
|
644
|
+
borderRadius: 'sm',
|
|
645
|
+
cursor: 'pointer'
|
|
646
|
+
}} whileHover={{
|
|
647
|
+
scale: 1.1,
|
|
648
|
+
rotate: 5
|
|
649
|
+
}} whileTap={{
|
|
650
|
+
scale: 0.95
|
|
651
|
+
}} />
|
|
652
|
+
<Typography level="body-sm">위의 박스에 마우스를 올려보거나 클릭해보세요</Typography>
|
|
653
|
+
</div>
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
### Complex Layouts
|
|
657
|
+
|
|
658
|
+
Box를 조합하여 복잡한 레이아웃을 만들 수 있습니다.
|
|
659
|
+
|
|
660
|
+
```tsx
|
|
661
|
+
<div style={{
|
|
662
|
+
display: 'flex',
|
|
663
|
+
flexDirection: 'column',
|
|
664
|
+
gap: '2rem'
|
|
665
|
+
}}>
|
|
666
|
+
<Typography level="title-lg">복잡한 레이아웃 예제</Typography>
|
|
667
|
+
|
|
668
|
+
{/* Header */}
|
|
669
|
+
<Box sx={{
|
|
670
|
+
display: 'flex',
|
|
671
|
+
justifyContent: 'space-between',
|
|
672
|
+
alignItems: 'center',
|
|
673
|
+
p: 3,
|
|
674
|
+
bgcolor: 'primary.50',
|
|
675
|
+
borderRadius: 'lg'
|
|
676
|
+
}}>
|
|
677
|
+
<Typography level="title-lg">헤더</Typography>
|
|
678
|
+
<Box sx={{
|
|
679
|
+
display: 'flex',
|
|
680
|
+
gap: 1
|
|
681
|
+
}}>
|
|
682
|
+
<Box sx={{
|
|
683
|
+
px: 2,
|
|
684
|
+
py: 1,
|
|
685
|
+
bgcolor: 'primary.200',
|
|
686
|
+
borderRadius: 'sm'
|
|
687
|
+
}}>
|
|
688
|
+
<Typography level="body-sm">메뉴 1</Typography>
|
|
689
|
+
</Box>
|
|
690
|
+
<Box sx={{
|
|
691
|
+
px: 2,
|
|
692
|
+
py: 1,
|
|
693
|
+
bgcolor: 'primary.200',
|
|
694
|
+
borderRadius: 'sm'
|
|
695
|
+
}}>
|
|
696
|
+
<Typography level="body-sm">메뉴 2</Typography>
|
|
697
|
+
</Box>
|
|
698
|
+
</Box>
|
|
699
|
+
</Box>
|
|
700
|
+
|
|
701
|
+
{/* Main content area */}
|
|
702
|
+
<Box sx={{
|
|
703
|
+
display: 'flex',
|
|
704
|
+
gap: 3,
|
|
705
|
+
minHeight: 300
|
|
706
|
+
}}>
|
|
707
|
+
{/* Sidebar */}
|
|
708
|
+
<Box sx={{
|
|
709
|
+
flex: '0 0 200px',
|
|
710
|
+
p: 2,
|
|
711
|
+
bgcolor: 'neutral.50',
|
|
712
|
+
borderRadius: 'md',
|
|
713
|
+
display: 'flex',
|
|
714
|
+
flexDirection: 'column',
|
|
715
|
+
gap: 1
|
|
716
|
+
}}>
|
|
717
|
+
<Typography level="title-sm" sx={{
|
|
718
|
+
mb: 1
|
|
719
|
+
}}>
|
|
720
|
+
사이드바
|
|
721
|
+
</Typography>
|
|
722
|
+
{['Item 1', 'Item 2', 'Item 3'].map(item => <Box key={item} sx={{
|
|
723
|
+
p: 1.5,
|
|
724
|
+
bgcolor: 'background.body',
|
|
725
|
+
borderRadius: 'sm'
|
|
726
|
+
}}>
|
|
727
|
+
<Typography level="body-sm">{item}</Typography>
|
|
728
|
+
</Box>)}
|
|
729
|
+
</Box>
|
|
730
|
+
|
|
731
|
+
{/* Content */}
|
|
732
|
+
<Box sx={{
|
|
733
|
+
flex: 1,
|
|
734
|
+
display: 'flex',
|
|
735
|
+
flexDirection: 'column',
|
|
736
|
+
gap: 2
|
|
737
|
+
}}>
|
|
738
|
+
<Box sx={{
|
|
739
|
+
p: 3,
|
|
740
|
+
bgcolor: 'success.50',
|
|
741
|
+
borderRadius: 'md'
|
|
742
|
+
}}>
|
|
743
|
+
<Typography level="title-md" sx={{
|
|
744
|
+
mb: 1
|
|
745
|
+
}}>
|
|
746
|
+
메인 콘텐츠
|
|
747
|
+
</Typography>
|
|
748
|
+
<Typography level="body-md">
|
|
749
|
+
여기에 주요 콘텐츠가 들어갑니다. Box 컴포넌트를 사용하여 복잡한 레이아웃을 쉽게 만들 수 있습니다.
|
|
750
|
+
</Typography>
|
|
751
|
+
</Box>
|
|
752
|
+
|
|
753
|
+
<Box sx={{
|
|
754
|
+
display: 'flex',
|
|
755
|
+
gap: 2
|
|
756
|
+
}}>
|
|
757
|
+
<Box sx={{
|
|
758
|
+
flex: 1,
|
|
759
|
+
p: 2,
|
|
760
|
+
bgcolor: 'warning.50',
|
|
761
|
+
borderRadius: 'md'
|
|
762
|
+
}}>
|
|
763
|
+
<Typography level="body-sm">카드 1</Typography>
|
|
764
|
+
</Box>
|
|
765
|
+
<Box sx={{
|
|
766
|
+
flex: 1,
|
|
767
|
+
p: 2,
|
|
768
|
+
bgcolor: 'warning.50',
|
|
769
|
+
borderRadius: 'md'
|
|
770
|
+
}}>
|
|
771
|
+
<Typography level="body-sm">카드 2</Typography>
|
|
772
|
+
</Box>
|
|
773
|
+
</Box>
|
|
774
|
+
</Box>
|
|
775
|
+
</Box>
|
|
776
|
+
|
|
777
|
+
{/* Footer */}
|
|
778
|
+
<Box sx={{
|
|
779
|
+
p: 2,
|
|
780
|
+
textAlign: 'center',
|
|
781
|
+
bgcolor: 'neutral.100',
|
|
782
|
+
borderRadius: 'md'
|
|
783
|
+
}}>
|
|
784
|
+
<Typography level="body-sm">푸터 영역</Typography>
|
|
785
|
+
</Box>
|
|
786
|
+
</div>
|
|
787
|
+
```
|
|
788
|
+
|
|
789
|
+
## Key Features
|
|
790
|
+
|
|
791
|
+
### SX Prop
|
|
792
|
+
|
|
793
|
+
Box의 가장 강력한 기능은 `sx` prop입니다. 이를 통해 CSS 스타일을 객체 형태로 직접 적용할 수 있습니다.
|
|
794
|
+
|
|
795
|
+
```tsx
|
|
796
|
+
<Box
|
|
797
|
+
sx={{
|
|
798
|
+
p: 2, // padding: 16px
|
|
799
|
+
m: { xs: 1, md: 2 }, // 반응형 마진
|
|
800
|
+
bgcolor: 'primary.50', // 테마 색상
|
|
801
|
+
borderRadius: 'md', // 테마 border-radius
|
|
802
|
+
'&:hover': { // hover 상태
|
|
803
|
+
bgcolor: 'primary.100',
|
|
804
|
+
},
|
|
805
|
+
}}
|
|
806
|
+
>
|
|
807
|
+
콘텐츠
|
|
808
|
+
</Box>
|
|
809
|
+
```
|
|
810
|
+
|
|
811
|
+
### Responsive Design
|
|
812
|
+
|
|
813
|
+
객체 구문을 사용해 브레이크포인트별 스타일을 지정할 수 있습니다.
|
|
814
|
+
|
|
815
|
+
```tsx
|
|
816
|
+
<Box
|
|
817
|
+
sx={{
|
|
818
|
+
width: { xs: '100%', md: '50%' },
|
|
819
|
+
p: { xs: 2, md: 4 },
|
|
820
|
+
display: { xs: 'block', md: 'flex' },
|
|
821
|
+
}}
|
|
822
|
+
>
|
|
823
|
+
반응형 박스
|
|
824
|
+
</Box>
|
|
825
|
+
```
|
|
826
|
+
|
|
827
|
+
### Theme Integration
|
|
828
|
+
|
|
829
|
+
디자인 시스템의 토큰을 직접 사용할 수 있습니다.
|
|
830
|
+
|
|
831
|
+
```tsx
|
|
832
|
+
<Box
|
|
833
|
+
sx={{
|
|
834
|
+
bgcolor: 'background.level1',
|
|
835
|
+
color: 'text.primary',
|
|
836
|
+
borderRadius: 'sm',
|
|
837
|
+
boxShadow: 'md',
|
|
838
|
+
}}
|
|
839
|
+
>
|
|
840
|
+
테마 통합 박스
|
|
841
|
+
</Box>
|
|
842
|
+
```
|
|
843
|
+
|
|
844
|
+
### Framer Motion
|
|
845
|
+
|
|
846
|
+
애니메이션 props를 직접 사용할 수 있습니다.
|
|
847
|
+
|
|
848
|
+
```tsx
|
|
849
|
+
<Box
|
|
850
|
+
initial={{ opacity: 0, y: 20 }}
|
|
851
|
+
animate={{ opacity: 1, y: 0 }}
|
|
852
|
+
transition={{ duration: 0.3 }}
|
|
853
|
+
whileHover={{ scale: 1.05 }}
|
|
854
|
+
>
|
|
855
|
+
애니메이션 박스
|
|
856
|
+
</Box>
|
|
857
|
+
```
|
|
858
|
+
|
|
859
|
+
## Common Use Cases
|
|
860
|
+
|
|
861
|
+
### Layout Container
|
|
862
|
+
|
|
863
|
+
```tsx
|
|
864
|
+
<Box sx={{ maxWidth: 1200, mx: 'auto', p: 3 }}>
|
|
865
|
+
<Typography level="h1">페이지 제목</Typography>
|
|
866
|
+
{/* 페이지 콘텐츠 */}
|
|
867
|
+
</Box>
|
|
868
|
+
```
|
|
869
|
+
|
|
870
|
+
### Card-like Components
|
|
871
|
+
|
|
872
|
+
```tsx
|
|
873
|
+
<Box
|
|
874
|
+
sx={{
|
|
875
|
+
p: 3,
|
|
876
|
+
bgcolor: 'background.body',
|
|
877
|
+
borderRadius: 'lg',
|
|
878
|
+
boxShadow: 'sm',
|
|
879
|
+
border: '1px solid',
|
|
880
|
+
borderColor: 'divider',
|
|
881
|
+
}}
|
|
882
|
+
>
|
|
883
|
+
<Typography level="title-md">카드 제목</Typography>
|
|
884
|
+
<Typography level="body-md">카드 내용</Typography>
|
|
885
|
+
</Box>
|
|
886
|
+
```
|
|
887
|
+
|
|
888
|
+
### Flexbox Layouts
|
|
889
|
+
|
|
890
|
+
```tsx
|
|
891
|
+
<Box sx={{ display: 'flex', gap: 2, alignItems: 'center' }}>
|
|
892
|
+
<Avatar />
|
|
893
|
+
<Box sx={{ flex: 1 }}>
|
|
894
|
+
<Typography level="title-sm">사용자 이름</Typography>
|
|
895
|
+
<Typography level="body-xs">부가 정보</Typography>
|
|
896
|
+
</Box>
|
|
897
|
+
</Box>
|
|
898
|
+
```
|
|
899
|
+
|
|
900
|
+
### Grid Layouts
|
|
901
|
+
|
|
902
|
+
```tsx
|
|
903
|
+
<Box
|
|
904
|
+
sx={{
|
|
905
|
+
display: 'grid',
|
|
906
|
+
gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))',
|
|
907
|
+
gap: 2,
|
|
908
|
+
}}
|
|
909
|
+
>
|
|
910
|
+
{items.map(item => (
|
|
911
|
+
<Box key={item.id} sx={{ p: 2, bgcolor: 'background.surface' }}>
|
|
912
|
+
{item.content}
|
|
913
|
+
</Box>
|
|
914
|
+
))}
|
|
915
|
+
</Box>
|
|
916
|
+
```
|
|
917
|
+
|
|
918
|
+
### Centered Content
|
|
919
|
+
|
|
920
|
+
```tsx
|
|
921
|
+
<Box
|
|
922
|
+
sx={{
|
|
923
|
+
display: 'flex',
|
|
924
|
+
alignItems: 'center',
|
|
925
|
+
justifyContent: 'center',
|
|
926
|
+
minHeight: '100vh',
|
|
927
|
+
}}
|
|
928
|
+
>
|
|
929
|
+
<Typography level="h1">중앙 정렬된 콘텐츠</Typography>
|
|
930
|
+
</Box>
|
|
931
|
+
```
|
|
932
|
+
|
|
933
|
+
### Sticky/Fixed Positioning
|
|
934
|
+
|
|
935
|
+
```tsx
|
|
936
|
+
<Box
|
|
937
|
+
sx={{
|
|
938
|
+
position: 'sticky',
|
|
939
|
+
top: 0,
|
|
940
|
+
zIndex: 1000,
|
|
941
|
+
bgcolor: 'background.body',
|
|
942
|
+
borderBottom: '1px solid',
|
|
943
|
+
borderColor: 'divider',
|
|
944
|
+
}}
|
|
945
|
+
>
|
|
946
|
+
<Typography>고정된 헤더</Typography>
|
|
947
|
+
</Box>
|
|
948
|
+
```
|
|
949
|
+
|
|
950
|
+
## Best Practices
|
|
951
|
+
|
|
952
|
+
1. **의미 있는 HTML 요소 사용**: `component` prop을 활용해 의미론적으로 올바른 HTML 요소를 선택하세요.
|
|
953
|
+
|
|
954
|
+
2. **테마 토큰 활용**: 하드코딩된 값 대신 테마의 spacing, color, border-radius 등을 사용하세요.
|
|
955
|
+
|
|
956
|
+
3. **반응형 고려**: 다양한 화면 크기에서 잘 동작하도록 반응형 값을 사용하세요.
|
|
957
|
+
|
|
958
|
+
4. **성능 최적화**:
|
|
959
|
+
- 인라인 객체 생성을 피하고 가능하면 객체를 메모화하세요
|
|
960
|
+
- 복잡한 애니메이션은 필요할 때만 사용하세요
|
|
961
|
+
|
|
962
|
+
5. **접근성**:
|
|
963
|
+
- 적절한 semantic HTML 요소를 선택하세요
|
|
964
|
+
- 필요시 ARIA 속성을 추가하세요
|
|
965
|
+
- 충분한 색상 대비를 유지하세요
|
|
966
|
+
|
|
967
|
+
6. **재사용성**:
|
|
968
|
+
- 자주 사용하는 스타일 조합은 별도 컴포넌트로 분리하세요
|
|
969
|
+
- 공통 스타일은 테마에 정의하세요
|
|
970
|
+
|
|
971
|
+
7. **일관성**:
|
|
972
|
+
- 팀 내에서 일관된 spacing과 naming convention을 사용하세요
|
|
973
|
+
- 디자인 시스템의 가이드라인을 따르세요
|
|
974
|
+
|
|
975
|
+
## Spacing Scale
|
|
976
|
+
|
|
977
|
+
Box에서 사용할 수 있는 spacing 값들:
|
|
978
|
+
|
|
979
|
+
- `0.5` = 4px
|
|
980
|
+
- `1` = 8px
|
|
981
|
+
- `1.5` = 12px
|
|
982
|
+
- `2` = 16px
|
|
983
|
+
- `3` = 24px
|
|
984
|
+
- `4` = 32px
|
|
985
|
+
- `5` = 40px
|
|
986
|
+
- `6` = 48px
|
|
987
|
+
|
|
988
|
+
## Color Tokens
|
|
989
|
+
|
|
990
|
+
주요 색상 토큰들:
|
|
991
|
+
|
|
992
|
+
- **Background**: `background.body`, `background.surface`, `background.level1`
|
|
993
|
+
- **Primary**: `primary.50`, `primary.100`, `primary.500`, `primary.main`
|
|
994
|
+
- **Neutral**: `neutral.50`, `neutral.100`, `neutral.500`, `neutral.main`
|
|
995
|
+
- **Text**: `text.primary`, `text.secondary`, `text.tertiary`
|
|
996
|
+
|
|
997
|
+
Box는 ADS의 모든 레이아웃과 스타일링의 기초가 되는 컴포넌트입니다. 강력한 sx prop과 내장된 애니메이션 기능을 활용해 다양한 UI 요구사항을 충족할 수 있습니다.
|