@ceed/ads 1.35.1 → 1.36.0

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