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