@ceed/cds 1.34.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.
- package/dist/components/Accordions/Accordions.d.ts +1 -0
- package/dist/components/Alert/Alert.d.ts +5 -5
- package/dist/components/Autocomplete/Autocomplete.d.ts +2 -2
- package/dist/components/Avatar/Avatar.d.ts +7 -17
- package/dist/components/Box/Box.d.ts +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +6 -5
- package/dist/components/Button/Button.d.ts +3 -2
- package/dist/components/Calendar/Calendar.d.ts +1 -0
- package/dist/components/Card/Card.d.ts +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +1 -0
- package/dist/components/Chip/Chip.d.ts +1 -0
- package/dist/components/Container/Container.d.ts +6 -1
- package/dist/components/CurrencyInput/CurrencyInput.d.ts +1 -1
- package/dist/components/DialogActions/DialogActions.d.ts +1 -0
- package/dist/components/DialogContent/DialogContent.d.ts +1 -0
- package/dist/components/DialogFrame/DialogFrame.d.ts +1 -1
- package/dist/components/DialogTitle/DialogTitle.d.ts +1 -0
- package/dist/components/Divider/Divider.d.ts +1 -0
- package/dist/components/Drawer/Drawer.d.ts +1 -0
- package/dist/components/Dropdown/Dropdown.d.ts +28 -1
- package/dist/components/FormControl/FormControl.d.ts +1 -0
- package/dist/components/FormHelperText/FormHelperText.d.ts +1 -0
- package/dist/components/FormLabel/FormLabel.d.ts +1 -0
- package/dist/components/Grid/Grid.d.ts +1 -0
- package/dist/components/IconButton/IconButton.d.ts +3 -2
- package/dist/components/IconMenuButton/IconMenuButton.d.ts +7 -6
- package/dist/components/InfoSign/InfoSign.d.ts +3 -2
- package/dist/components/Input/Input.d.ts +8 -22
- package/dist/components/InsetDrawer/InsetDrawer.d.ts +1 -0
- package/dist/components/Markdown/Markdown.d.ts +9 -24
- package/dist/components/Menu/Menu.d.ts +2 -1
- package/dist/components/MenuButton/MenuButton.d.ts +10 -8
- package/dist/components/Modal/Modal.d.ts +4 -2
- package/dist/components/NavigationGroup/NavigationGroup.d.ts +3 -2
- package/dist/components/NavigationItem/NavigationItem.d.ts +3 -2
- package/dist/components/Navigator/Navigator.d.ts +5 -4
- package/dist/components/Pagination/Pagination.d.ts +1 -1
- package/dist/components/Radio/Radio.d.ts +1 -0
- package/dist/components/RadioList/RadioList.d.ts +3 -2
- package/dist/components/Select/Select.d.ts +20 -10
- package/dist/components/Sheet/Sheet.d.ts +1 -0
- package/dist/components/Stack/Stack.d.ts +1 -0
- package/dist/components/Stepper/Stepper.d.ts +2 -1
- package/dist/components/Switch/Switch.d.ts +1 -0
- package/dist/components/Table/Table.d.ts +7 -5
- package/dist/components/Tabs/Tabs.d.ts +1 -0
- package/dist/components/Textarea/Textarea.d.ts +8 -20
- package/dist/components/Tooltip/Tooltip.d.ts +1 -0
- package/dist/components/Typography/Typography.d.ts +1 -0
- package/dist/components/Uploader/Uploader.d.ts +18 -17
- package/dist/components/data-display/Avatar.md +60 -72
- package/dist/components/data-display/Badge.md +197 -181
- package/dist/components/data-display/Chip.md +164 -142
- package/dist/components/data-display/DataTable.md +843 -338
- package/dist/components/data-display/InfoSign.md +1 -3
- package/dist/components/data-display/Markdown.md +93 -125
- package/dist/components/data-display/Table.md +1453 -1007
- package/dist/components/data-display/Typography.md +113 -116
- package/dist/components/feedback/Alert.md +80 -86
- package/dist/components/feedback/CircularProgress.md +32 -36
- package/dist/components/feedback/Dialog.md +25 -17
- package/dist/components/feedback/Modal.md +296 -264
- package/dist/components/feedback/Skeleton.md +125 -89
- package/dist/components/index.d.ts +62 -2
- package/dist/components/inputs/Autocomplete.md +191 -95
- package/dist/components/inputs/Button.md +83 -83
- package/dist/components/inputs/ButtonGroup.md +195 -185
- package/dist/components/inputs/Calendar.md +25 -28
- package/dist/components/inputs/Checkbox.md +11 -29
- package/dist/components/inputs/CurrencyInput.md +4 -4
- package/dist/components/inputs/DatePicker.md +229 -110
- package/dist/components/inputs/DateRangePicker.md +248 -137
- package/dist/components/inputs/FilterableCheckboxGroup.md +115 -55
- package/dist/components/inputs/FormControl.md +75 -69
- package/dist/components/inputs/IconButton.md +229 -205
- package/dist/components/inputs/Input.md +131 -98
- package/dist/components/inputs/MonthPicker.md +186 -84
- package/dist/components/inputs/MonthRangePicker.md +73 -49
- package/dist/components/inputs/PercentageInput.md +15 -31
- package/dist/components/inputs/RadioButton.md +320 -256
- package/dist/components/inputs/RadioList.md +66 -50
- package/dist/components/inputs/RadioTileGroup.md +287 -170
- package/dist/components/inputs/SearchBar.md +82 -60
- package/dist/components/inputs/Select.md +184 -120
- package/dist/components/inputs/Slider.md +153 -102
- package/dist/components/inputs/Switch.md +193 -138
- package/dist/components/inputs/Textarea.md +15 -20
- package/dist/components/inputs/Uploader/Uploader.md +68 -39
- package/dist/components/layout/Box.md +841 -662
- package/dist/components/layout/Container.md +3 -11
- package/dist/components/layout/Grid.md +480 -394
- package/dist/components/layout/Stack.md +739 -566
- package/dist/components/navigation/Breadcrumbs.md +4 -4
- package/dist/components/navigation/Drawer.md +34 -25
- package/dist/components/navigation/Dropdown.md +745 -408
- package/dist/components/navigation/IconMenuButton.md +14 -6
- package/dist/components/navigation/InsetDrawer.md +8 -13
- package/dist/components/navigation/Link.md +1 -2
- package/dist/components/navigation/Menu.md +623 -502
- package/dist/components/navigation/MenuButton.md +18 -10
- package/dist/components/navigation/NavigationGroup.md +19 -50
- package/dist/components/navigation/NavigationItem.md +6 -6
- package/dist/components/navigation/Navigator.md +26 -28
- package/dist/components/navigation/Pagination.md +86 -75
- package/dist/components/navigation/Stepper.md +2 -12
- package/dist/components/navigation/Tabs.md +48 -36
- package/dist/components/surfaces/Accordions.md +89 -172
- package/dist/components/surfaces/Card.md +1094 -709
- package/dist/components/surfaces/Divider.md +562 -412
- package/dist/components/surfaces/Sheet.md +700 -518
- package/dist/guides/ThemeProvider.md +8 -8
- package/dist/index.browser.js +4 -4
- package/dist/index.browser.js.map +4 -4
- package/dist/index.cjs +1074 -1033
- package/dist/index.d.ts +2 -1
- package/dist/index.js +720 -671
- package/framer/index.js +1 -1
- package/package.json +32 -35
|
@@ -6,10 +6,10 @@ The Stack component is a layout component that arranges child elements in one di
|
|
|
6
6
|
|
|
7
7
|
```tsx
|
|
8
8
|
<Stack {...args}>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</Stack>
|
|
9
|
+
<StackItem>첫 번째 아이템</StackItem>
|
|
10
|
+
<StackItem>두 번째 아이템</StackItem>
|
|
11
|
+
<StackItem>세 번째 아이템</StackItem>
|
|
12
|
+
</Stack>
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
| Field | Description | Default |
|
|
@@ -42,37 +42,45 @@ function MyComponent() {
|
|
|
42
42
|
The basic usage for vertical (`column`) and horizontal (`row`) layouts.
|
|
43
43
|
|
|
44
44
|
```tsx
|
|
45
|
-
<div
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
</
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
<
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
45
|
+
<div
|
|
46
|
+
style={{
|
|
47
|
+
display: "flex",
|
|
48
|
+
gap: "3rem",
|
|
49
|
+
flexWrap: "wrap"
|
|
50
|
+
}}
|
|
51
|
+
>
|
|
52
|
+
<div>
|
|
53
|
+
<Typography
|
|
54
|
+
level="title-md"
|
|
55
|
+
sx={{
|
|
56
|
+
mb: 2
|
|
57
|
+
}}
|
|
58
|
+
>
|
|
59
|
+
세로 스택 (Column)
|
|
60
|
+
</Typography>
|
|
61
|
+
<Stack spacing={2}>
|
|
62
|
+
<StackItem>Item 1</StackItem>
|
|
63
|
+
<StackItem>Item 2</StackItem>
|
|
64
|
+
<StackItem>Item 3</StackItem>
|
|
65
|
+
</Stack>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<div>
|
|
69
|
+
<Typography
|
|
70
|
+
level="title-md"
|
|
71
|
+
sx={{
|
|
72
|
+
mb: 2
|
|
73
|
+
}}
|
|
74
|
+
>
|
|
75
|
+
가로 스택 (Row)
|
|
76
|
+
</Typography>
|
|
77
|
+
<Stack direction="row" spacing={2}>
|
|
78
|
+
<StackItem>Item 1</StackItem>
|
|
79
|
+
<StackItem>Item 2</StackItem>
|
|
80
|
+
<StackItem>Item 3</StackItem>
|
|
81
|
+
</Stack>
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
76
84
|
```
|
|
77
85
|
|
|
78
86
|
### Directions
|
|
@@ -80,68 +88,84 @@ The basic usage for vertical (`column`) and horizontal (`row`) layouts.
|
|
|
80
88
|
You can use different layout directions.
|
|
81
89
|
|
|
82
90
|
```tsx
|
|
83
|
-
<div
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
</
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
<
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
<
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
<
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
}}>
|
|
122
|
-
Column (세로)
|
|
123
|
-
</Typography>
|
|
124
|
-
<Stack direction="column" spacing={2}>
|
|
125
|
-
<StackItem>1</StackItem>
|
|
126
|
-
<StackItem>2</StackItem>
|
|
127
|
-
<StackItem>3</StackItem>
|
|
128
|
-
</Stack>
|
|
129
|
-
</div>
|
|
91
|
+
<div
|
|
92
|
+
style={{
|
|
93
|
+
display: "flex",
|
|
94
|
+
flexDirection: "column",
|
|
95
|
+
gap: "3rem"
|
|
96
|
+
}}
|
|
97
|
+
>
|
|
98
|
+
<div>
|
|
99
|
+
<Typography
|
|
100
|
+
level="title-sm"
|
|
101
|
+
sx={{
|
|
102
|
+
mb: 1
|
|
103
|
+
}}
|
|
104
|
+
>
|
|
105
|
+
Row (가로)
|
|
106
|
+
</Typography>
|
|
107
|
+
<Stack direction="row" spacing={2}>
|
|
108
|
+
<StackItem>1</StackItem>
|
|
109
|
+
<StackItem>2</StackItem>
|
|
110
|
+
<StackItem>3</StackItem>
|
|
111
|
+
</Stack>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<div>
|
|
115
|
+
<Typography
|
|
116
|
+
level="title-sm"
|
|
117
|
+
sx={{
|
|
118
|
+
mb: 1
|
|
119
|
+
}}
|
|
120
|
+
>
|
|
121
|
+
Row Reverse (가로 역순)
|
|
122
|
+
</Typography>
|
|
123
|
+
<Stack direction="row-reverse" spacing={2}>
|
|
124
|
+
<StackItem>1</StackItem>
|
|
125
|
+
<StackItem>2</StackItem>
|
|
126
|
+
<StackItem>3</StackItem>
|
|
127
|
+
</Stack>
|
|
128
|
+
</div>
|
|
130
129
|
|
|
131
|
-
<div
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
<
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
130
|
+
<div
|
|
131
|
+
style={{
|
|
132
|
+
display: "flex",
|
|
133
|
+
gap: "3rem"
|
|
134
|
+
}}
|
|
135
|
+
>
|
|
136
|
+
<div>
|
|
137
|
+
<Typography
|
|
138
|
+
level="title-sm"
|
|
139
|
+
sx={{
|
|
140
|
+
mb: 1
|
|
141
|
+
}}
|
|
142
|
+
>
|
|
143
|
+
Column (세로)
|
|
144
|
+
</Typography>
|
|
145
|
+
<Stack direction="column" spacing={2}>
|
|
146
|
+
<StackItem>1</StackItem>
|
|
147
|
+
<StackItem>2</StackItem>
|
|
148
|
+
<StackItem>3</StackItem>
|
|
149
|
+
</Stack>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
152
|
+
<div>
|
|
153
|
+
<Typography
|
|
154
|
+
level="title-sm"
|
|
155
|
+
sx={{
|
|
156
|
+
mb: 1
|
|
157
|
+
}}
|
|
158
|
+
>
|
|
159
|
+
Column Reverse (세로 역순)
|
|
160
|
+
</Typography>
|
|
161
|
+
<Stack direction="column-reverse" spacing={2}>
|
|
162
|
+
<StackItem>1</StackItem>
|
|
163
|
+
<StackItem>2</StackItem>
|
|
164
|
+
<StackItem>3</StackItem>
|
|
165
|
+
</Stack>
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
145
169
|
```
|
|
146
170
|
|
|
147
171
|
### Different Spacing
|
|
@@ -149,63 +173,77 @@ You can use different layout directions.
|
|
|
149
173
|
You can apply different spacing values.
|
|
150
174
|
|
|
151
175
|
```tsx
|
|
152
|
-
<div
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
</
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
<
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
<
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
</
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
</
|
|
202
|
-
<
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
176
|
+
<div
|
|
177
|
+
style={{
|
|
178
|
+
display: "flex",
|
|
179
|
+
flexDirection: "column",
|
|
180
|
+
gap: "3rem"
|
|
181
|
+
}}
|
|
182
|
+
>
|
|
183
|
+
<div>
|
|
184
|
+
<Typography
|
|
185
|
+
level="title-sm"
|
|
186
|
+
sx={{
|
|
187
|
+
mb: 1
|
|
188
|
+
}}
|
|
189
|
+
>
|
|
190
|
+
간격 없음 (spacing=0)
|
|
191
|
+
</Typography>
|
|
192
|
+
<Stack direction="row" spacing={0}>
|
|
193
|
+
<StackItem>Item 1</StackItem>
|
|
194
|
+
<StackItem>Item 2</StackItem>
|
|
195
|
+
<StackItem>Item 3</StackItem>
|
|
196
|
+
</Stack>
|
|
197
|
+
</div>
|
|
198
|
+
|
|
199
|
+
<div>
|
|
200
|
+
<Typography
|
|
201
|
+
level="title-sm"
|
|
202
|
+
sx={{
|
|
203
|
+
mb: 1
|
|
204
|
+
}}
|
|
205
|
+
>
|
|
206
|
+
작은 간격 (spacing=1)
|
|
207
|
+
</Typography>
|
|
208
|
+
<Stack direction="row" spacing={1}>
|
|
209
|
+
<StackItem>Item 1</StackItem>
|
|
210
|
+
<StackItem>Item 2</StackItem>
|
|
211
|
+
<StackItem>Item 3</StackItem>
|
|
212
|
+
</Stack>
|
|
213
|
+
</div>
|
|
214
|
+
|
|
215
|
+
<div>
|
|
216
|
+
<Typography
|
|
217
|
+
level="title-sm"
|
|
218
|
+
sx={{
|
|
219
|
+
mb: 1
|
|
220
|
+
}}
|
|
221
|
+
>
|
|
222
|
+
중간 간격 (spacing=2)
|
|
223
|
+
</Typography>
|
|
224
|
+
<Stack direction="row" spacing={2}>
|
|
225
|
+
<StackItem>Item 1</StackItem>
|
|
226
|
+
<StackItem>Item 2</StackItem>
|
|
227
|
+
<StackItem>Item 3</StackItem>
|
|
228
|
+
</Stack>
|
|
229
|
+
</div>
|
|
230
|
+
|
|
231
|
+
<div>
|
|
232
|
+
<Typography
|
|
233
|
+
level="title-sm"
|
|
234
|
+
sx={{
|
|
235
|
+
mb: 1
|
|
236
|
+
}}
|
|
237
|
+
>
|
|
238
|
+
큰 간격 (spacing=4)
|
|
239
|
+
</Typography>
|
|
240
|
+
<Stack direction="row" spacing={4}>
|
|
241
|
+
<StackItem>Item 1</StackItem>
|
|
242
|
+
<StackItem>Item 2</StackItem>
|
|
243
|
+
<StackItem>Item 3</StackItem>
|
|
244
|
+
</Stack>
|
|
245
|
+
</div>
|
|
246
|
+
</div>
|
|
209
247
|
```
|
|
210
248
|
|
|
211
249
|
### Alignment
|
|
@@ -213,68 +251,107 @@ You can apply different spacing values.
|
|
|
213
251
|
You can control element alignment in different ways.
|
|
214
252
|
|
|
215
253
|
```tsx
|
|
216
|
-
<div
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
</
|
|
251
|
-
<
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
<StackItem
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
<
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
</
|
|
277
|
-
|
|
254
|
+
<div
|
|
255
|
+
style={{
|
|
256
|
+
display: "flex",
|
|
257
|
+
flexDirection: "column",
|
|
258
|
+
gap: "3rem"
|
|
259
|
+
}}
|
|
260
|
+
>
|
|
261
|
+
<div>
|
|
262
|
+
<Typography
|
|
263
|
+
level="title-sm"
|
|
264
|
+
sx={{
|
|
265
|
+
mb: 1
|
|
266
|
+
}}
|
|
267
|
+
>
|
|
268
|
+
Center Alignment
|
|
269
|
+
</Typography>
|
|
270
|
+
<Stack
|
|
271
|
+
direction="row"
|
|
272
|
+
spacing={2}
|
|
273
|
+
alignItems="center"
|
|
274
|
+
justifyContent="center"
|
|
275
|
+
sx={{
|
|
276
|
+
minHeight: 120,
|
|
277
|
+
bgcolor: "neutral.50",
|
|
278
|
+
borderRadius: "md",
|
|
279
|
+
p: 2
|
|
280
|
+
}}
|
|
281
|
+
>
|
|
282
|
+
<StackItem
|
|
283
|
+
sx={{
|
|
284
|
+
height: 40
|
|
285
|
+
}}
|
|
286
|
+
>
|
|
287
|
+
짧은 아이템
|
|
288
|
+
</StackItem>
|
|
289
|
+
<StackItem
|
|
290
|
+
sx={{
|
|
291
|
+
height: 80
|
|
292
|
+
}}
|
|
293
|
+
>
|
|
294
|
+
중간 아이템
|
|
295
|
+
</StackItem>
|
|
296
|
+
<StackItem
|
|
297
|
+
sx={{
|
|
298
|
+
height: 60
|
|
299
|
+
}}
|
|
300
|
+
>
|
|
301
|
+
다른 아이템
|
|
302
|
+
</StackItem>
|
|
303
|
+
</Stack>
|
|
304
|
+
</div>
|
|
305
|
+
|
|
306
|
+
<div>
|
|
307
|
+
<Typography
|
|
308
|
+
level="title-sm"
|
|
309
|
+
sx={{
|
|
310
|
+
mb: 1
|
|
311
|
+
}}
|
|
312
|
+
>
|
|
313
|
+
Space Between
|
|
314
|
+
</Typography>
|
|
315
|
+
<Stack
|
|
316
|
+
direction="row"
|
|
317
|
+
spacing={0}
|
|
318
|
+
justifyContent="space-between"
|
|
319
|
+
sx={{
|
|
320
|
+
bgcolor: "neutral.50",
|
|
321
|
+
borderRadius: "md",
|
|
322
|
+
p: 2
|
|
323
|
+
}}
|
|
324
|
+
>
|
|
325
|
+
<StackItem>왼쪽</StackItem>
|
|
326
|
+
<StackItem>가운데</StackItem>
|
|
327
|
+
<StackItem>오른쪽</StackItem>
|
|
328
|
+
</Stack>
|
|
329
|
+
</div>
|
|
330
|
+
|
|
331
|
+
<div>
|
|
332
|
+
<Typography
|
|
333
|
+
level="title-sm"
|
|
334
|
+
sx={{
|
|
335
|
+
mb: 1
|
|
336
|
+
}}
|
|
337
|
+
>
|
|
338
|
+
Flex End
|
|
339
|
+
</Typography>
|
|
340
|
+
<Stack
|
|
341
|
+
direction="row"
|
|
342
|
+
spacing={2}
|
|
343
|
+
justifyContent="flex-end"
|
|
344
|
+
sx={{
|
|
345
|
+
bgcolor: "neutral.50",
|
|
346
|
+
borderRadius: "md",
|
|
347
|
+
p: 2
|
|
348
|
+
}}
|
|
349
|
+
>
|
|
350
|
+
<StackItem>Item 1</StackItem>
|
|
351
|
+
<StackItem>Item 2</StackItem>
|
|
352
|
+
</Stack>
|
|
353
|
+
</div>
|
|
354
|
+
</div>
|
|
278
355
|
```
|
|
279
356
|
|
|
280
357
|
### Responsive Direction
|
|
@@ -283,56 +360,69 @@ You can change the layout direction based on screen size.
|
|
|
283
360
|
|
|
284
361
|
```tsx
|
|
285
362
|
<div>
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
}}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
}}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
<
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
</
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
363
|
+
<Typography
|
|
364
|
+
level="title-md"
|
|
365
|
+
sx={{
|
|
366
|
+
mb: 2
|
|
367
|
+
}}
|
|
368
|
+
>
|
|
369
|
+
반응형 방향 (화면 크기에 따라 세로↔가로 전환)
|
|
370
|
+
</Typography>
|
|
371
|
+
<Stack
|
|
372
|
+
direction={{
|
|
373
|
+
xs: "column",
|
|
374
|
+
sm: "row"
|
|
375
|
+
}}
|
|
376
|
+
spacing={2}
|
|
377
|
+
sx={{
|
|
378
|
+
p: 2,
|
|
379
|
+
bgcolor: "background.level1",
|
|
380
|
+
borderRadius: "md"
|
|
381
|
+
}}
|
|
382
|
+
>
|
|
383
|
+
<Box
|
|
384
|
+
sx={{
|
|
385
|
+
flex: 1,
|
|
386
|
+
p: 2,
|
|
387
|
+
bgcolor: "primary.100",
|
|
388
|
+
borderRadius: "sm"
|
|
389
|
+
}}
|
|
390
|
+
>
|
|
391
|
+
<Typography level="body-sm">
|
|
392
|
+
작은 화면: 세로 배치
|
|
393
|
+
<br />큰 화면: 가로 배치
|
|
394
|
+
</Typography>
|
|
395
|
+
</Box>
|
|
396
|
+
<Box
|
|
397
|
+
sx={{
|
|
398
|
+
flex: 1,
|
|
399
|
+
p: 2,
|
|
400
|
+
bgcolor: "success.100",
|
|
401
|
+
borderRadius: "sm"
|
|
402
|
+
}}
|
|
403
|
+
>
|
|
404
|
+
<Typography level="body-sm">
|
|
405
|
+
반응형 레이아웃으로
|
|
406
|
+
<br />
|
|
407
|
+
자동 조정됩니다
|
|
408
|
+
</Typography>
|
|
409
|
+
</Box>
|
|
410
|
+
<Box
|
|
411
|
+
sx={{
|
|
412
|
+
flex: 1,
|
|
413
|
+
p: 2,
|
|
414
|
+
bgcolor: "warning.100",
|
|
415
|
+
borderRadius: "sm"
|
|
416
|
+
}}
|
|
417
|
+
>
|
|
418
|
+
<Typography level="body-sm">
|
|
419
|
+
브라우저 크기를
|
|
420
|
+
<br />
|
|
421
|
+
조절해보세요
|
|
422
|
+
</Typography>
|
|
423
|
+
</Box>
|
|
424
|
+
</Stack>
|
|
425
|
+
</div>
|
|
336
426
|
```
|
|
337
427
|
|
|
338
428
|
### Nested Stacks
|
|
@@ -341,56 +431,89 @@ You can nest Stack components to build more complex layouts.
|
|
|
341
431
|
|
|
342
432
|
```tsx
|
|
343
433
|
<div>
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
<
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
</
|
|
383
|
-
<
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
</Stack>
|
|
391
|
-
</Box>
|
|
392
|
-
|
|
393
|
-
|
|
434
|
+
<Typography
|
|
435
|
+
level="title-md"
|
|
436
|
+
sx={{
|
|
437
|
+
mb: 2
|
|
438
|
+
}}
|
|
439
|
+
>
|
|
440
|
+
중첩된 스택
|
|
441
|
+
</Typography>
|
|
442
|
+
<Stack spacing={3}>
|
|
443
|
+
<Box
|
|
444
|
+
sx={{
|
|
445
|
+
p: 2,
|
|
446
|
+
bgcolor: "primary.50",
|
|
447
|
+
borderRadius: "md"
|
|
448
|
+
}}
|
|
449
|
+
>
|
|
450
|
+
<Typography
|
|
451
|
+
level="title-sm"
|
|
452
|
+
sx={{
|
|
453
|
+
mb: 2
|
|
454
|
+
}}
|
|
455
|
+
>
|
|
456
|
+
세로 스택 안의 가로 스택
|
|
457
|
+
</Typography>
|
|
458
|
+
<Stack direction="row" spacing={2}>
|
|
459
|
+
<StackItem
|
|
460
|
+
sx={{
|
|
461
|
+
bgcolor: "primary.200"
|
|
462
|
+
}}
|
|
463
|
+
>
|
|
464
|
+
Item 1
|
|
465
|
+
</StackItem>
|
|
466
|
+
<StackItem
|
|
467
|
+
sx={{
|
|
468
|
+
bgcolor: "primary.200"
|
|
469
|
+
}}
|
|
470
|
+
>
|
|
471
|
+
Item 2
|
|
472
|
+
</StackItem>
|
|
473
|
+
<StackItem
|
|
474
|
+
sx={{
|
|
475
|
+
bgcolor: "primary.200"
|
|
476
|
+
}}
|
|
477
|
+
>
|
|
478
|
+
Item 3
|
|
479
|
+
</StackItem>
|
|
480
|
+
</Stack>
|
|
481
|
+
</Box>
|
|
482
|
+
|
|
483
|
+
<Box
|
|
484
|
+
sx={{
|
|
485
|
+
p: 2,
|
|
486
|
+
bgcolor: "success.50",
|
|
487
|
+
borderRadius: "md"
|
|
488
|
+
}}
|
|
489
|
+
>
|
|
490
|
+
<Typography
|
|
491
|
+
level="title-sm"
|
|
492
|
+
sx={{
|
|
493
|
+
mb: 2
|
|
494
|
+
}}
|
|
495
|
+
>
|
|
496
|
+
또 다른 가로 스택
|
|
497
|
+
</Typography>
|
|
498
|
+
<Stack direction="row" spacing={2} justifyContent="center">
|
|
499
|
+
<StackItem
|
|
500
|
+
sx={{
|
|
501
|
+
bgcolor: "success.200"
|
|
502
|
+
}}
|
|
503
|
+
>
|
|
504
|
+
중앙
|
|
505
|
+
</StackItem>
|
|
506
|
+
<StackItem
|
|
507
|
+
sx={{
|
|
508
|
+
bgcolor: "success.200"
|
|
509
|
+
}}
|
|
510
|
+
>
|
|
511
|
+
정렬
|
|
512
|
+
</StackItem>
|
|
513
|
+
</Stack>
|
|
514
|
+
</Box>
|
|
515
|
+
</Stack>
|
|
516
|
+
</div>
|
|
394
517
|
```
|
|
395
518
|
|
|
396
519
|
### Real World Examples
|
|
@@ -398,242 +521,293 @@ You can nest Stack components to build more complex layouts.
|
|
|
398
521
|
Examples that demonstrate real-world use cases.
|
|
399
522
|
|
|
400
523
|
```tsx
|
|
401
|
-
<div
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
borderColor: 'divider',
|
|
419
|
-
borderRadius: 'md'
|
|
420
|
-
}}>
|
|
421
|
-
<Typography level="title-md">로고</Typography>
|
|
422
|
-
<Stack direction="row" spacing={2}>
|
|
423
|
-
<Button variant="plain" size="sm">
|
|
424
|
-
홈
|
|
425
|
-
</Button>
|
|
426
|
-
<Button variant="plain" size="sm">
|
|
427
|
-
소개
|
|
428
|
-
</Button>
|
|
429
|
-
<Button variant="plain" size="sm">
|
|
430
|
-
연락처
|
|
431
|
-
</Button>
|
|
432
|
-
</Stack>
|
|
433
|
-
<Button size="sm">로그인</Button>
|
|
434
|
-
</Stack>
|
|
435
|
-
</div>
|
|
436
|
-
|
|
437
|
-
{/* Profile Card */}
|
|
438
|
-
<div>
|
|
439
|
-
<Typography level="title-sm" sx={{
|
|
440
|
-
mb: 2
|
|
441
|
-
}}>
|
|
442
|
-
프로필 카드
|
|
443
|
-
</Typography>
|
|
444
|
-
<Box sx={{
|
|
445
|
-
p: 3,
|
|
446
|
-
bgcolor: 'background.body',
|
|
447
|
-
border: '1px solid',
|
|
448
|
-
borderColor: 'divider',
|
|
449
|
-
borderRadius: 'lg'
|
|
450
|
-
}}>
|
|
451
|
-
<Stack spacing={2}>
|
|
452
|
-
<Stack direction="row" spacing={2} alignItems="center">
|
|
453
|
-
<Avatar size="lg" />
|
|
454
|
-
<Stack spacing={0.5}>
|
|
455
|
-
<Typography level="title-md">홍길동</Typography>
|
|
456
|
-
<Typography level="body-sm" sx={{
|
|
457
|
-
color: 'text.secondary'
|
|
458
|
-
}}>
|
|
459
|
-
프론트엔드 개발자
|
|
460
|
-
</Typography>
|
|
461
|
-
</Stack>
|
|
462
|
-
</Stack>
|
|
463
|
-
|
|
464
|
-
<Typography level="body-md">
|
|
465
|
-
사용자 경험을 중시하는 프론트엔드 개발자입니다. React와 TypeScript를 주로 사용합니다.
|
|
466
|
-
</Typography>
|
|
467
|
-
|
|
468
|
-
<Stack direction="row" spacing={1}>
|
|
469
|
-
<Chip size="sm" variant="soft">
|
|
470
|
-
React
|
|
471
|
-
</Chip>
|
|
472
|
-
<Chip size="sm" variant="soft">
|
|
473
|
-
TypeScript
|
|
474
|
-
</Chip>
|
|
475
|
-
<Chip size="sm" variant="soft">
|
|
476
|
-
Next.js
|
|
477
|
-
</Chip>
|
|
478
|
-
</Stack>
|
|
479
|
-
|
|
480
|
-
<Stack direction="row" spacing={1} justifyContent="flex-end">
|
|
481
|
-
<Button size="sm" variant="outlined" startDecorator={<BookmarkIcon />}>
|
|
482
|
-
저장
|
|
483
|
-
</Button>
|
|
484
|
-
<Button size="sm" variant="outlined" startDecorator={<ShareIcon />}>
|
|
485
|
-
공유
|
|
486
|
-
</Button>
|
|
487
|
-
</Stack>
|
|
488
|
-
</Stack>
|
|
489
|
-
</Box>
|
|
490
|
-
</div>
|
|
491
|
-
|
|
492
|
-
{/* Article Card */}
|
|
493
|
-
<div>
|
|
494
|
-
<Typography level="title-sm" sx={{
|
|
495
|
-
mb: 2
|
|
496
|
-
}}>
|
|
497
|
-
아티클 카드
|
|
498
|
-
</Typography>
|
|
499
|
-
<Box sx={{
|
|
500
|
-
p: 3,
|
|
501
|
-
bgcolor: 'background.body',
|
|
502
|
-
border: '1px solid',
|
|
503
|
-
borderColor: 'divider',
|
|
504
|
-
borderRadius: 'lg'
|
|
505
|
-
}}>
|
|
506
|
-
<Stack spacing={2}>
|
|
507
|
-
<Stack direction="row" justifyContent="space-between" alignItems="flex-start">
|
|
508
|
-
<Stack spacing={1}>
|
|
509
|
-
<Typography level="title-lg">React 18의 새로운 기능들</Typography>
|
|
510
|
-
<Typography level="body-sm" sx={{
|
|
511
|
-
color: 'text.secondary'
|
|
512
|
-
}}>
|
|
513
|
-
2024년 1월 15일 • 5분 읽기
|
|
514
|
-
</Typography>
|
|
515
|
-
</Stack>
|
|
516
|
-
<Button variant="plain" size="sm" sx={{
|
|
517
|
-
color: 'warning.500'
|
|
518
|
-
}}>
|
|
519
|
-
<StarIcon />
|
|
520
|
-
</Button>
|
|
521
|
-
</Stack>
|
|
522
|
-
|
|
523
|
-
<Typography level="body-md">
|
|
524
|
-
React 18에서 도입된 Concurrent Features와 새로운 Hooks에 대해 자세히 알아보겠습니다. Suspense,
|
|
525
|
-
useTransition, useDeferredValue 등...
|
|
526
|
-
</Typography>
|
|
527
|
-
|
|
528
|
-
<Stack direction="row" spacing={1}>
|
|
529
|
-
<Chip size="sm" variant="outlined">
|
|
530
|
-
React
|
|
531
|
-
</Chip>
|
|
532
|
-
<Chip size="sm" variant="outlined">
|
|
533
|
-
JavaScript
|
|
534
|
-
</Chip>
|
|
535
|
-
<Chip size="sm" variant="outlined">
|
|
536
|
-
개발
|
|
537
|
-
</Chip>
|
|
538
|
-
</Stack>
|
|
539
|
-
|
|
540
|
-
<Stack direction="row" justifyContent="space-between" alignItems="center">
|
|
541
|
-
<Stack direction="row" spacing={1} alignItems="center">
|
|
542
|
-
<Avatar size="sm" />
|
|
543
|
-
<Typography level="body-sm">김개발</Typography>
|
|
544
|
-
</Stack>
|
|
545
|
-
<Stack direction="row" spacing={1}>
|
|
546
|
-
<Button size="sm" variant="plain">
|
|
547
|
-
좋아요 24
|
|
548
|
-
</Button>
|
|
549
|
-
<Button size="sm" variant="plain">
|
|
550
|
-
댓글 5
|
|
551
|
-
</Button>
|
|
552
|
-
</Stack>
|
|
553
|
-
</Stack>
|
|
554
|
-
</Stack>
|
|
555
|
-
</Box>
|
|
556
|
-
</div>
|
|
557
|
-
|
|
558
|
-
{/* Form Layout */}
|
|
559
|
-
<div>
|
|
560
|
-
<Typography level="title-sm" sx={{
|
|
561
|
-
mb: 2
|
|
562
|
-
}}>
|
|
563
|
-
폼 레이아웃
|
|
564
|
-
</Typography>
|
|
565
|
-
<Box sx={{
|
|
566
|
-
p: 3,
|
|
567
|
-
bgcolor: 'background.body',
|
|
568
|
-
border: '1px solid',
|
|
569
|
-
borderColor: 'divider',
|
|
570
|
-
borderRadius: 'lg'
|
|
571
|
-
}}>
|
|
572
|
-
<Stack spacing={3}>
|
|
573
|
-
<Typography level="title-md">문의하기</Typography>
|
|
574
|
-
|
|
575
|
-
<Stack spacing={2}>
|
|
576
|
-
<Stack spacing={1}>
|
|
577
|
-
<Typography level="body-sm" fontWeight="500">
|
|
578
|
-
이름
|
|
524
|
+
<div
|
|
525
|
+
style={{
|
|
526
|
+
display: "flex",
|
|
527
|
+
flexDirection: "column",
|
|
528
|
+
gap: "3rem",
|
|
529
|
+
maxWidth: 600
|
|
530
|
+
}}
|
|
531
|
+
>
|
|
532
|
+
{/* Navigation Bar */}
|
|
533
|
+
<div>
|
|
534
|
+
<Typography
|
|
535
|
+
level="title-sm"
|
|
536
|
+
sx={{
|
|
537
|
+
mb: 2
|
|
538
|
+
}}
|
|
539
|
+
>
|
|
540
|
+
내비게이션 바
|
|
579
541
|
</Typography>
|
|
580
|
-
<
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
<
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
</
|
|
607
|
-
</
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
<
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
<Stack direction="row" spacing={2}
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
542
|
+
<Stack
|
|
543
|
+
direction="row"
|
|
544
|
+
spacing={0}
|
|
545
|
+
justifyContent="space-between"
|
|
546
|
+
alignItems="center"
|
|
547
|
+
sx={{
|
|
548
|
+
p: 2,
|
|
549
|
+
bgcolor: "background.body",
|
|
550
|
+
border: "1px solid",
|
|
551
|
+
borderColor: "divider",
|
|
552
|
+
borderRadius: "md"
|
|
553
|
+
}}
|
|
554
|
+
>
|
|
555
|
+
<Typography level="title-md">로고</Typography>
|
|
556
|
+
<Stack direction="row" spacing={2}>
|
|
557
|
+
<Button variant="plain" size="sm">
|
|
558
|
+
홈
|
|
559
|
+
</Button>
|
|
560
|
+
<Button variant="plain" size="sm">
|
|
561
|
+
소개
|
|
562
|
+
</Button>
|
|
563
|
+
<Button variant="plain" size="sm">
|
|
564
|
+
연락처
|
|
565
|
+
</Button>
|
|
566
|
+
</Stack>
|
|
567
|
+
<Button size="sm">로그인</Button>
|
|
568
|
+
</Stack>
|
|
569
|
+
</div>
|
|
570
|
+
|
|
571
|
+
{/* Profile Card */}
|
|
572
|
+
<div>
|
|
573
|
+
<Typography
|
|
574
|
+
level="title-sm"
|
|
575
|
+
sx={{
|
|
576
|
+
mb: 2
|
|
577
|
+
}}
|
|
578
|
+
>
|
|
579
|
+
프로필 카드
|
|
580
|
+
</Typography>
|
|
581
|
+
<Box
|
|
582
|
+
sx={{
|
|
583
|
+
p: 3,
|
|
584
|
+
bgcolor: "background.body",
|
|
585
|
+
border: "1px solid",
|
|
586
|
+
borderColor: "divider",
|
|
587
|
+
borderRadius: "lg"
|
|
588
|
+
}}
|
|
589
|
+
>
|
|
590
|
+
<Stack spacing={2}>
|
|
591
|
+
<Stack direction="row" spacing={2} alignItems="center">
|
|
592
|
+
<Avatar size="lg" />
|
|
593
|
+
<Stack spacing={0.5}>
|
|
594
|
+
<Typography level="title-md">홍길동</Typography>
|
|
595
|
+
<Typography
|
|
596
|
+
level="body-sm"
|
|
597
|
+
sx={{
|
|
598
|
+
color: "text.secondary"
|
|
599
|
+
}}
|
|
600
|
+
>
|
|
601
|
+
프론트엔드 개발자
|
|
602
|
+
</Typography>
|
|
603
|
+
</Stack>
|
|
604
|
+
</Stack>
|
|
605
|
+
|
|
606
|
+
<Typography level="body-md">
|
|
607
|
+
사용자 경험을 중시하는 프론트엔드 개발자입니다. React와 TypeScript를 주로 사용합니다.
|
|
608
|
+
</Typography>
|
|
609
|
+
|
|
610
|
+
<Stack direction="row" spacing={1}>
|
|
611
|
+
<Chip size="sm" variant="soft">
|
|
612
|
+
React
|
|
613
|
+
</Chip>
|
|
614
|
+
<Chip size="sm" variant="soft">
|
|
615
|
+
TypeScript
|
|
616
|
+
</Chip>
|
|
617
|
+
<Chip size="sm" variant="soft">
|
|
618
|
+
Next.js
|
|
619
|
+
</Chip>
|
|
620
|
+
</Stack>
|
|
621
|
+
|
|
622
|
+
<Stack direction="row" spacing={1} justifyContent="flex-end">
|
|
623
|
+
<Button size="sm" variant="outlined" startDecorator={<BookmarkIcon />}>
|
|
624
|
+
저장
|
|
625
|
+
</Button>
|
|
626
|
+
<Button size="sm" variant="outlined" startDecorator={<ShareIcon />}>
|
|
627
|
+
공유
|
|
628
|
+
</Button>
|
|
629
|
+
</Stack>
|
|
630
|
+
</Stack>
|
|
631
|
+
</Box>
|
|
632
|
+
</div>
|
|
633
|
+
|
|
634
|
+
{/* Article Card */}
|
|
635
|
+
<div>
|
|
636
|
+
<Typography
|
|
637
|
+
level="title-sm"
|
|
638
|
+
sx={{
|
|
639
|
+
mb: 2
|
|
640
|
+
}}
|
|
641
|
+
>
|
|
642
|
+
아티클 카드
|
|
643
|
+
</Typography>
|
|
644
|
+
<Box
|
|
645
|
+
sx={{
|
|
646
|
+
p: 3,
|
|
647
|
+
bgcolor: "background.body",
|
|
648
|
+
border: "1px solid",
|
|
649
|
+
borderColor: "divider",
|
|
650
|
+
borderRadius: "lg"
|
|
651
|
+
}}
|
|
652
|
+
>
|
|
653
|
+
<Stack spacing={2}>
|
|
654
|
+
<Stack direction="row" justifyContent="space-between" alignItems="flex-start">
|
|
655
|
+
<Stack spacing={1}>
|
|
656
|
+
<Typography level="title-lg">React 18의 새로운 기능들</Typography>
|
|
657
|
+
<Typography
|
|
658
|
+
level="body-sm"
|
|
659
|
+
sx={{
|
|
660
|
+
color: "text.secondary"
|
|
661
|
+
}}
|
|
662
|
+
>
|
|
663
|
+
2024년 1월 15일 • 5분 읽기
|
|
664
|
+
</Typography>
|
|
665
|
+
</Stack>
|
|
666
|
+
<Button
|
|
667
|
+
variant="plain"
|
|
668
|
+
size="sm"
|
|
669
|
+
sx={{
|
|
670
|
+
color: "warning.500"
|
|
671
|
+
}}
|
|
672
|
+
>
|
|
673
|
+
<StarIcon />
|
|
674
|
+
</Button>
|
|
675
|
+
</Stack>
|
|
676
|
+
|
|
677
|
+
<Typography level="body-md">
|
|
678
|
+
React 18에서 도입된 Concurrent Features와 새로운 Hooks에 대해 자세히 알아보겠습니다.
|
|
679
|
+
Suspense, useTransition, useDeferredValue 등...
|
|
680
|
+
</Typography>
|
|
681
|
+
|
|
682
|
+
<Stack direction="row" spacing={1}>
|
|
683
|
+
<Chip size="sm" variant="outlined">
|
|
684
|
+
React
|
|
685
|
+
</Chip>
|
|
686
|
+
<Chip size="sm" variant="outlined">
|
|
687
|
+
JavaScript
|
|
688
|
+
</Chip>
|
|
689
|
+
<Chip size="sm" variant="outlined">
|
|
690
|
+
개발
|
|
691
|
+
</Chip>
|
|
692
|
+
</Stack>
|
|
693
|
+
|
|
694
|
+
<Stack direction="row" justifyContent="space-between" alignItems="center">
|
|
695
|
+
<Stack direction="row" spacing={1} alignItems="center">
|
|
696
|
+
<Avatar size="sm" />
|
|
697
|
+
<Typography level="body-sm">김개발</Typography>
|
|
698
|
+
</Stack>
|
|
699
|
+
<Stack direction="row" spacing={1}>
|
|
700
|
+
<Button size="sm" variant="plain">
|
|
701
|
+
좋아요 24
|
|
702
|
+
</Button>
|
|
703
|
+
<Button size="sm" variant="plain">
|
|
704
|
+
댓글 5
|
|
705
|
+
</Button>
|
|
706
|
+
</Stack>
|
|
707
|
+
</Stack>
|
|
708
|
+
</Stack>
|
|
709
|
+
</Box>
|
|
710
|
+
</div>
|
|
711
|
+
|
|
712
|
+
{/* Form Layout */}
|
|
713
|
+
<div>
|
|
714
|
+
<Typography
|
|
715
|
+
level="title-sm"
|
|
716
|
+
sx={{
|
|
717
|
+
mb: 2
|
|
718
|
+
}}
|
|
719
|
+
>
|
|
720
|
+
폼 레이아웃
|
|
721
|
+
</Typography>
|
|
722
|
+
<Box
|
|
723
|
+
sx={{
|
|
724
|
+
p: 3,
|
|
725
|
+
bgcolor: "background.body",
|
|
726
|
+
border: "1px solid",
|
|
727
|
+
borderColor: "divider",
|
|
728
|
+
borderRadius: "lg"
|
|
729
|
+
}}
|
|
730
|
+
>
|
|
731
|
+
<Stack spacing={3}>
|
|
732
|
+
<Typography level="title-md">문의하기</Typography>
|
|
733
|
+
|
|
734
|
+
<Stack spacing={2}>
|
|
735
|
+
<Stack spacing={1}>
|
|
736
|
+
<Typography level="body-sm" fontWeight="500">
|
|
737
|
+
이름
|
|
738
|
+
</Typography>
|
|
739
|
+
<Box
|
|
740
|
+
sx={{
|
|
741
|
+
p: 1.5,
|
|
742
|
+
bgcolor: "background.level1",
|
|
743
|
+
borderRadius: "sm"
|
|
744
|
+
}}
|
|
745
|
+
>
|
|
746
|
+
<Typography
|
|
747
|
+
level="body-sm"
|
|
748
|
+
sx={{
|
|
749
|
+
color: "text.secondary"
|
|
750
|
+
}}
|
|
751
|
+
>
|
|
752
|
+
이름을 입력하세요
|
|
753
|
+
</Typography>
|
|
754
|
+
</Box>
|
|
755
|
+
</Stack>
|
|
756
|
+
|
|
757
|
+
<Stack spacing={1}>
|
|
758
|
+
<Typography level="body-sm" fontWeight="500">
|
|
759
|
+
이메일
|
|
760
|
+
</Typography>
|
|
761
|
+
<Box
|
|
762
|
+
sx={{
|
|
763
|
+
p: 1.5,
|
|
764
|
+
bgcolor: "background.level1",
|
|
765
|
+
borderRadius: "sm"
|
|
766
|
+
}}
|
|
767
|
+
>
|
|
768
|
+
<Typography
|
|
769
|
+
level="body-sm"
|
|
770
|
+
sx={{
|
|
771
|
+
color: "text.secondary"
|
|
772
|
+
}}
|
|
773
|
+
>
|
|
774
|
+
이메일을 입력하세요
|
|
775
|
+
</Typography>
|
|
776
|
+
</Box>
|
|
777
|
+
</Stack>
|
|
778
|
+
|
|
779
|
+
<Stack spacing={1}>
|
|
780
|
+
<Typography level="body-sm" fontWeight="500">
|
|
781
|
+
메시지
|
|
782
|
+
</Typography>
|
|
783
|
+
<Box
|
|
784
|
+
sx={{
|
|
785
|
+
p: 1.5,
|
|
786
|
+
minHeight: 80,
|
|
787
|
+
bgcolor: "background.level1",
|
|
788
|
+
borderRadius: "sm"
|
|
789
|
+
}}
|
|
790
|
+
>
|
|
791
|
+
<Typography
|
|
792
|
+
level="body-sm"
|
|
793
|
+
sx={{
|
|
794
|
+
color: "text.secondary"
|
|
795
|
+
}}
|
|
796
|
+
>
|
|
797
|
+
메시지를 입력하세요
|
|
798
|
+
</Typography>
|
|
799
|
+
</Box>
|
|
800
|
+
</Stack>
|
|
801
|
+
</Stack>
|
|
802
|
+
|
|
803
|
+
<Stack direction="row" spacing={2} justifyContent="flex-end">
|
|
804
|
+
<Button variant="outlined">취소</Button>
|
|
805
|
+
<Button>전송</Button>
|
|
806
|
+
</Stack>
|
|
807
|
+
</Stack>
|
|
808
|
+
</Box>
|
|
809
|
+
</div>
|
|
810
|
+
</div>
|
|
637
811
|
```
|
|
638
812
|
|
|
639
813
|
## Key Props
|
|
@@ -724,12 +898,7 @@ Stack supports responsive values for all props:
|
|
|
724
898
|
### Navigation Bar
|
|
725
899
|
|
|
726
900
|
```tsx
|
|
727
|
-
<Stack
|
|
728
|
-
direction="row"
|
|
729
|
-
justifyContent="space-between"
|
|
730
|
-
alignItems="center"
|
|
731
|
-
sx={{ p: 2 }}
|
|
732
|
-
>
|
|
901
|
+
<Stack direction="row" justifyContent="space-between" alignItems="center" sx={{ p: 2 }}>
|
|
733
902
|
<Typography level="title-lg">Logo</Typography>
|
|
734
903
|
<Stack direction="row" spacing={2}>
|
|
735
904
|
<Button variant="plain">Home</Button>
|
|
@@ -781,17 +950,21 @@ Stack supports responsive values for all props:
|
|
|
781
950
|
<Chip variant="soft">New</Chip>
|
|
782
951
|
</Stack>
|
|
783
952
|
|
|
784
|
-
<Typography level="body-md">
|
|
785
|
-
Product description goes here...
|
|
786
|
-
</Typography>
|
|
953
|
+
<Typography level="body-md">Product description goes here...</Typography>
|
|
787
954
|
|
|
788
955
|
<Stack direction="row" spacing={1}>
|
|
789
|
-
<Chip size="sm" variant="outlined">
|
|
790
|
-
|
|
956
|
+
<Chip size="sm" variant="outlined">
|
|
957
|
+
Tag 1
|
|
958
|
+
</Chip>
|
|
959
|
+
<Chip size="sm" variant="outlined">
|
|
960
|
+
Tag 2
|
|
961
|
+
</Chip>
|
|
791
962
|
</Stack>
|
|
792
963
|
|
|
793
964
|
<Stack direction="row" justifyContent="space-between" alignItems="center">
|
|
794
|
-
<Typography level="title-lg" color="primary"
|
|
965
|
+
<Typography level="title-lg" color="primary">
|
|
966
|
+
$99.99
|
|
967
|
+
</Typography>
|
|
795
968
|
<Button>Add to Cart</Button>
|
|
796
969
|
</Stack>
|
|
797
970
|
</Stack>
|
|
@@ -813,9 +986,7 @@ Stack supports responsive values for all props:
|
|
|
813
986
|
</Stack>
|
|
814
987
|
</Stack>
|
|
815
988
|
|
|
816
|
-
<Typography level="body-md">
|
|
817
|
-
Passionate about creating great user experiences...
|
|
818
|
-
</Typography>
|
|
989
|
+
<Typography level="body-md">Passionate about creating great user experiences...</Typography>
|
|
819
990
|
|
|
820
991
|
<Stack direction="row" spacing={1}>
|
|
821
992
|
<Chip variant="soft">React</Chip>
|
|
@@ -824,7 +995,9 @@ Stack supports responsive values for all props:
|
|
|
824
995
|
</Stack>
|
|
825
996
|
|
|
826
997
|
<Stack direction="row" spacing={2}>
|
|
827
|
-
<Button variant="outlined" fullWidth>
|
|
998
|
+
<Button variant="outlined" fullWidth>
|
|
999
|
+
Follow
|
|
1000
|
+
</Button>
|
|
828
1001
|
<Button fullWidth>Message</Button>
|
|
829
1002
|
</Stack>
|
|
830
1003
|
</Stack>
|