@abraracs/better-shopify-wc-mcp 1.0.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/README.md +110 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +325 -0
- package/docs/avatar.md +481 -0
- package/docs/badge.md +266 -0
- package/docs/banner.md +350 -0
- package/docs/box.md +618 -0
- package/docs/button.md +604 -0
- package/docs/buttongroup.md +251 -0
- package/docs/checkbox.md +346 -0
- package/docs/chip.md +261 -0
- package/docs/choicelist.md +416 -0
- package/docs/clickable.md +703 -0
- package/docs/clickablechip.md +377 -0
- package/docs/colorfield.md +416 -0
- package/docs/colorpicker.md +152 -0
- package/docs/datefield.md +706 -0
- package/docs/datepicker.md +443 -0
- package/docs/divider.md +263 -0
- package/docs/dropzone.md +331 -0
- package/docs/emailfield.md +377 -0
- package/docs/grid.md +1246 -0
- package/docs/heading.md +201 -0
- package/docs/icon.md +295 -0
- package/docs/image.md +517 -0
- package/docs/link.md +456 -0
- package/docs/menu.md +331 -0
- package/docs/modal.md +640 -0
- package/docs/moneyfield.md +385 -0
- package/docs/numberfield.md +393 -0
- package/docs/orderedlist.md +224 -0
- package/docs/page.md +319 -0
- package/docs/paragraph.md +333 -0
- package/docs/passwordfield.md +381 -0
- package/docs/popover.md +419 -0
- package/docs/querycontainer.md +121 -0
- package/docs/searchfield.md +319 -0
- package/docs/section.md +267 -0
- package/docs/select.md +449 -0
- package/docs/spinner.md +121 -0
- package/docs/stack.md +748 -0
- package/docs/switch.md +365 -0
- package/docs/table.md +805 -0
- package/docs/text.md +339 -0
- package/docs/textarea.md +328 -0
- package/docs/textfield.md +425 -0
- package/docs/thumbnail.md +245 -0
- package/docs/tooltip.md +130 -0
- package/docs/unorderedlist.md +135 -0
- package/docs/urlfield.md +314 -0
- package/package.json +43 -0
package/docs/stack.md
ADDED
|
@@ -0,0 +1,748 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Stack
|
|
3
|
+
description: >-
|
|
4
|
+
Organizes elements horizontally or vertically along the block or inline axis.
|
|
5
|
+
Use to structure layouts, group related components, or control spacing between
|
|
6
|
+
elements.
|
|
7
|
+
api_name: app-home
|
|
8
|
+
source_url:
|
|
9
|
+
html: 'https://shopify.dev/docs/api/app-home/polaris-web-components/structure/stack'
|
|
10
|
+
md: >-
|
|
11
|
+
https://shopify.dev/docs/api/app-home/polaris-web-components/structure/stack.md
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Stack
|
|
15
|
+
|
|
16
|
+
Organizes elements horizontally or vertically along the block or inline axis. Use to structure layouts, group related components, or control spacing between elements.
|
|
17
|
+
|
|
18
|
+
## Properties
|
|
19
|
+
|
|
20
|
+
* accessibilityLabel
|
|
21
|
+
|
|
22
|
+
string
|
|
23
|
+
|
|
24
|
+
A label that describes the purpose or contents of the element. When set, it will be announced to users using assistive technologies and will provide them with more context.
|
|
25
|
+
|
|
26
|
+
Only use this when the element's content is not enough context for users using assistive technologies.
|
|
27
|
+
|
|
28
|
+
* accessibilityRole
|
|
29
|
+
|
|
30
|
+
AccessibilityRole
|
|
31
|
+
|
|
32
|
+
Default: 'generic'
|
|
33
|
+
|
|
34
|
+
Sets the semantic meaning of the component’s content. When set, the role will be used by assistive technologies to help users navigate the page.
|
|
35
|
+
|
|
36
|
+
* accessibilityVisibility
|
|
37
|
+
|
|
38
|
+
"visible" | "hidden" | "exclusive"
|
|
39
|
+
|
|
40
|
+
Default: 'visible'
|
|
41
|
+
|
|
42
|
+
Changes the visibility of the element.
|
|
43
|
+
|
|
44
|
+
* `visible`: the element is visible to all users.
|
|
45
|
+
* `hidden`: the element is removed from the accessibility tree but remains visible.
|
|
46
|
+
* `exclusive`: the element is visually hidden but remains in the accessibility tree.
|
|
47
|
+
|
|
48
|
+
* alignContent
|
|
49
|
+
|
|
50
|
+
AlignContentKeyword
|
|
51
|
+
|
|
52
|
+
Default: 'normal'
|
|
53
|
+
|
|
54
|
+
Aligns the Stack's children along the block axis.
|
|
55
|
+
|
|
56
|
+
This overrides the block value of `alignContent`.
|
|
57
|
+
|
|
58
|
+
* alignItems
|
|
59
|
+
|
|
60
|
+
AlignItemsKeyword
|
|
61
|
+
|
|
62
|
+
Default: 'normal'
|
|
63
|
+
|
|
64
|
+
Aligns the Stack's children along the block axis.
|
|
65
|
+
|
|
66
|
+
* background
|
|
67
|
+
|
|
68
|
+
BackgroundColorKeyword
|
|
69
|
+
|
|
70
|
+
Default: 'transparent'
|
|
71
|
+
|
|
72
|
+
Adjust the background of the component.
|
|
73
|
+
|
|
74
|
+
* blockSize
|
|
75
|
+
|
|
76
|
+
SizeUnitsOrAuto
|
|
77
|
+
|
|
78
|
+
Default: 'auto'
|
|
79
|
+
|
|
80
|
+
Adjust the [block size](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).
|
|
81
|
+
|
|
82
|
+
* border
|
|
83
|
+
|
|
84
|
+
BorderShorthand
|
|
85
|
+
|
|
86
|
+
Default: 'none' - equivalent to \`none base auto\`.
|
|
87
|
+
|
|
88
|
+
Set the border via the shorthand property.
|
|
89
|
+
|
|
90
|
+
This can be a size, optionally followed by a color, optionally followed by a style.
|
|
91
|
+
|
|
92
|
+
If the color is not specified, it will be `base`.
|
|
93
|
+
|
|
94
|
+
If the style is not specified, it will be `auto`.
|
|
95
|
+
|
|
96
|
+
Values can be overridden by `borderWidth`, `borderStyle`, and `borderColor`.
|
|
97
|
+
|
|
98
|
+
* borderColor
|
|
99
|
+
|
|
100
|
+
"" | ColorKeyword
|
|
101
|
+
|
|
102
|
+
Default: '' - meaning no override
|
|
103
|
+
|
|
104
|
+
Adjust the color of the border.
|
|
105
|
+
|
|
106
|
+
* borderRadius
|
|
107
|
+
|
|
108
|
+
MaybeAllValuesShorthandProperty\<BoxBorderRadii>
|
|
109
|
+
|
|
110
|
+
Default: 'none'
|
|
111
|
+
|
|
112
|
+
Adjust the radius of the border.
|
|
113
|
+
|
|
114
|
+
* borderStyle
|
|
115
|
+
|
|
116
|
+
"" | MaybeAllValuesShorthandProperty\<BoxBorderStyles>
|
|
117
|
+
|
|
118
|
+
Default: '' - meaning no override
|
|
119
|
+
|
|
120
|
+
Adjust the style of the border.
|
|
121
|
+
|
|
122
|
+
* borderWidth
|
|
123
|
+
|
|
124
|
+
"" | MaybeAllValuesShorthandProperty<"small" | "small-100" | "base" | "large" | "large-100" | "none">
|
|
125
|
+
|
|
126
|
+
Default: '' - meaning no override
|
|
127
|
+
|
|
128
|
+
Adjust the width of the border.
|
|
129
|
+
|
|
130
|
+
* columnGap
|
|
131
|
+
|
|
132
|
+
MaybeResponsive<"" | SpacingKeyword>
|
|
133
|
+
|
|
134
|
+
Default: '' - meaning no override
|
|
135
|
+
|
|
136
|
+
Adjust spacing between elements in the inline axis.
|
|
137
|
+
|
|
138
|
+
This overrides the column value of `gap`. `columnGap` either accepts:
|
|
139
|
+
|
|
140
|
+
* a single [SpacingKeyword](https://shopify.dev/docs/api/app-home/using-polaris-components#scale) value (e.g. `large-100`)
|
|
141
|
+
* OR a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported SpacingKeyword as a query value.
|
|
142
|
+
|
|
143
|
+
* direction
|
|
144
|
+
|
|
145
|
+
MaybeResponsive<"inline" | "block">
|
|
146
|
+
|
|
147
|
+
Default: 'block'
|
|
148
|
+
|
|
149
|
+
Sets how the Stack's children are placed within the Stack.
|
|
150
|
+
|
|
151
|
+
`direction` either accepts:
|
|
152
|
+
|
|
153
|
+
* a single value either `inline` or `block`
|
|
154
|
+
* OR a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported SpacingKeyword as a query value.
|
|
155
|
+
|
|
156
|
+
* display
|
|
157
|
+
|
|
158
|
+
MaybeResponsive<"auto" | "none">
|
|
159
|
+
|
|
160
|
+
Default: 'auto'
|
|
161
|
+
|
|
162
|
+
Sets the outer [display](https://developer.mozilla.org/en-US/docs/Web/CSS/display) type of the component. The outer type sets a component's participation in [flow layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flow_layout).
|
|
163
|
+
|
|
164
|
+
* `auto` the component's initial value. The actual value depends on the component and context.
|
|
165
|
+
* `none` hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.
|
|
166
|
+
|
|
167
|
+
* gap
|
|
168
|
+
|
|
169
|
+
MaybeResponsive\<MaybeTwoValuesShorthandProperty\<SpacingKeyword>>
|
|
170
|
+
|
|
171
|
+
Default: 'none'
|
|
172
|
+
|
|
173
|
+
Adjust spacing between elements.
|
|
174
|
+
|
|
175
|
+
`gap` can either accept:
|
|
176
|
+
|
|
177
|
+
* a single [SpacingKeyword](https://shopify.dev/docs/api/app-home/using-polaris-components#scale) value applied to both axes (e.g. `large-100`)
|
|
178
|
+
* OR a pair of values (eg `large-100 large-500`) can be used to set the inline and block axes respectively
|
|
179
|
+
* OR a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported SpacingKeyword as a query value.
|
|
180
|
+
|
|
181
|
+
* inlineSize
|
|
182
|
+
|
|
183
|
+
SizeUnitsOrAuto
|
|
184
|
+
|
|
185
|
+
Default: 'auto'
|
|
186
|
+
|
|
187
|
+
Adjust the [inline size](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).
|
|
188
|
+
|
|
189
|
+
* justifyContent
|
|
190
|
+
|
|
191
|
+
JustifyContentKeyword
|
|
192
|
+
|
|
193
|
+
Default: 'normal'
|
|
194
|
+
|
|
195
|
+
Aligns the Stack's children along the inline axis.
|
|
196
|
+
|
|
197
|
+
* maxBlockSize
|
|
198
|
+
|
|
199
|
+
SizeUnitsOrNone
|
|
200
|
+
|
|
201
|
+
Default: 'none'
|
|
202
|
+
|
|
203
|
+
Adjust the [maximum block size](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).
|
|
204
|
+
|
|
205
|
+
* maxInlineSize
|
|
206
|
+
|
|
207
|
+
SizeUnitsOrNone
|
|
208
|
+
|
|
209
|
+
Default: 'none'
|
|
210
|
+
|
|
211
|
+
Adjust the [maximum inline size](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).
|
|
212
|
+
|
|
213
|
+
* minBlockSize
|
|
214
|
+
|
|
215
|
+
SizeUnits
|
|
216
|
+
|
|
217
|
+
Default: '0'
|
|
218
|
+
|
|
219
|
+
Adjust the [minimum block size](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).
|
|
220
|
+
|
|
221
|
+
* minInlineSize
|
|
222
|
+
|
|
223
|
+
SizeUnits
|
|
224
|
+
|
|
225
|
+
Default: '0'
|
|
226
|
+
|
|
227
|
+
Adjust the [minimum inline size](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).
|
|
228
|
+
|
|
229
|
+
* overflow
|
|
230
|
+
|
|
231
|
+
"visible" | "hidden"
|
|
232
|
+
|
|
233
|
+
Default: 'visible'
|
|
234
|
+
|
|
235
|
+
Sets the overflow behavior of the element.
|
|
236
|
+
|
|
237
|
+
* `hidden`: clips the content when it is larger than the element’s container. The element will not be scrollable and the users will not be able to access the clipped content by dragging or using a scroll wheel on a mouse.
|
|
238
|
+
* `visible`: the content that extends beyond the element’s container is visible.
|
|
239
|
+
|
|
240
|
+
* padding
|
|
241
|
+
|
|
242
|
+
MaybeResponsive\<MaybeAllValuesShorthandProperty\<PaddingKeyword>>
|
|
243
|
+
|
|
244
|
+
Default: 'none'
|
|
245
|
+
|
|
246
|
+
Adjust the padding of all edges.
|
|
247
|
+
|
|
248
|
+
[1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) is supported. Note that, contrary to the CSS, it uses flow-relative values and the order is:
|
|
249
|
+
|
|
250
|
+
* 4 values: `block-start inline-end block-end inline-start`
|
|
251
|
+
* 3 values: `block-start inline block-end`
|
|
252
|
+
* 2 values: `block inline`
|
|
253
|
+
|
|
254
|
+
For example:
|
|
255
|
+
|
|
256
|
+
* `large` means block-start, inline-end, block-end and inline-start paddings are `large`.
|
|
257
|
+
* `large none` means block-start and block-end paddings are `large`, inline-start and inline-end paddings are `none`.
|
|
258
|
+
* `large none large` means block-start padding is `large`, inline-end padding is `none`, block-end padding is `large` and inline-start padding is `none`.
|
|
259
|
+
* `large none large small` means block-start padding is `large`, inline-end padding is `none`, block-end padding is `large` and inline-start padding is `small`.
|
|
260
|
+
|
|
261
|
+
A padding value of `auto` will use the default padding for the closest container that has had its usual padding removed.
|
|
262
|
+
|
|
263
|
+
`padding` also accepts a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported PaddingKeyword as a query value.
|
|
264
|
+
|
|
265
|
+
* paddingBlock
|
|
266
|
+
|
|
267
|
+
MaybeResponsive<"" | MaybeTwoValuesShorthandProperty\<PaddingKeyword>>
|
|
268
|
+
|
|
269
|
+
Default: '' - meaning no override
|
|
270
|
+
|
|
271
|
+
Adjust the block-padding.
|
|
272
|
+
|
|
273
|
+
* `large none` means block-start padding is `large`, block-end padding is `none`.
|
|
274
|
+
|
|
275
|
+
This overrides the block value of `padding`.
|
|
276
|
+
|
|
277
|
+
`paddingBlock` also accepts a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported PaddingKeyword as a query value.
|
|
278
|
+
|
|
279
|
+
* paddingBlockEnd
|
|
280
|
+
|
|
281
|
+
MaybeResponsive<"" | PaddingKeyword>
|
|
282
|
+
|
|
283
|
+
Default: '' - meaning no override
|
|
284
|
+
|
|
285
|
+
Adjust the block-end padding.
|
|
286
|
+
|
|
287
|
+
This overrides the block-end value of `paddingBlock`.
|
|
288
|
+
|
|
289
|
+
`paddingBlockEnd` also accepts a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported PaddingKeyword as a query value.
|
|
290
|
+
|
|
291
|
+
* paddingBlockStart
|
|
292
|
+
|
|
293
|
+
MaybeResponsive<"" | PaddingKeyword>
|
|
294
|
+
|
|
295
|
+
Default: '' - meaning no override
|
|
296
|
+
|
|
297
|
+
Adjust the block-start padding.
|
|
298
|
+
|
|
299
|
+
This overrides the block-start value of `paddingBlock`.
|
|
300
|
+
|
|
301
|
+
`paddingBlockStart` also accepts a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported PaddingKeyword as a query value.
|
|
302
|
+
|
|
303
|
+
* paddingInline
|
|
304
|
+
|
|
305
|
+
MaybeResponsive<"" | MaybeTwoValuesShorthandProperty\<PaddingKeyword>>
|
|
306
|
+
|
|
307
|
+
Default: '' - meaning no override
|
|
308
|
+
|
|
309
|
+
Adjust the inline padding.
|
|
310
|
+
|
|
311
|
+
* `large none` means inline-start padding is `large`, inline-end padding is `none`.
|
|
312
|
+
|
|
313
|
+
This overrides the inline value of `padding`.
|
|
314
|
+
|
|
315
|
+
`paddingInline` also accepts a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported PaddingKeyword as a query value.
|
|
316
|
+
|
|
317
|
+
* paddingInlineEnd
|
|
318
|
+
|
|
319
|
+
MaybeResponsive<"" | PaddingKeyword>
|
|
320
|
+
|
|
321
|
+
Default: '' - meaning no override
|
|
322
|
+
|
|
323
|
+
Adjust the inline-end padding.
|
|
324
|
+
|
|
325
|
+
This overrides the inline-end value of `paddingInline`.
|
|
326
|
+
|
|
327
|
+
`paddingInlineEnd` also accepts a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported PaddingKeyword as a query value.
|
|
328
|
+
|
|
329
|
+
* paddingInlineStart
|
|
330
|
+
|
|
331
|
+
MaybeResponsive<"" | PaddingKeyword>
|
|
332
|
+
|
|
333
|
+
Default: '' - meaning no override
|
|
334
|
+
|
|
335
|
+
Adjust the inline-start padding.
|
|
336
|
+
|
|
337
|
+
This overrides the inline-start value of `paddingInline`.
|
|
338
|
+
|
|
339
|
+
`paddingInlineStart` also accepts a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported PaddingKeyword as a query value.
|
|
340
|
+
|
|
341
|
+
* rowGap
|
|
342
|
+
|
|
343
|
+
MaybeResponsive<"" | SpacingKeyword>
|
|
344
|
+
|
|
345
|
+
Default: '' - meaning no override
|
|
346
|
+
|
|
347
|
+
Adjust spacing between elements in the block axis.
|
|
348
|
+
|
|
349
|
+
This overrides the row value of `gap`. `rowGap` either accepts:
|
|
350
|
+
|
|
351
|
+
* a single [SpacingKeyword](https://shopify.dev/docs/api/app-home/using-polaris-components#scale) value (e.g. `large-100`)
|
|
352
|
+
* OR a [responsive value](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported SpacingKeyword as a query value.
|
|
353
|
+
|
|
354
|
+
### AccessibilityRole
|
|
355
|
+
|
|
356
|
+
```ts
|
|
357
|
+
'main' | 'header' | 'footer' | 'section' | 'aside' | 'navigation' | 'ordered-list' | 'list-item' | 'list-item-separator' | 'unordered-list' | 'separator' | 'status' | 'alert' | 'generic' | 'presentation' | 'none'
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### AlignContentKeyword
|
|
361
|
+
|
|
362
|
+
Align content sets the distribution of space between and around content items along a flexbox's cross axis, or a grid or block-level element's block axis.
|
|
363
|
+
|
|
364
|
+
```ts
|
|
365
|
+
'normal' | BaselinePosition | ContentDistribution | OverflowPosition | ContentPosition
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### BaselinePosition
|
|
369
|
+
|
|
370
|
+
```ts
|
|
371
|
+
'baseline' | 'first baseline' | 'last baseline'
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
### ContentDistribution
|
|
375
|
+
|
|
376
|
+
```ts
|
|
377
|
+
'space-between' | 'space-around' | 'space-evenly' | 'stretch'
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
### OverflowPosition
|
|
381
|
+
|
|
382
|
+
```ts
|
|
383
|
+
`unsafe ${ContentPosition}` | `safe ${ContentPosition}`
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### ContentPosition
|
|
387
|
+
|
|
388
|
+
```ts
|
|
389
|
+
'center' | 'start' | 'end'
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
### AlignItemsKeyword
|
|
393
|
+
|
|
394
|
+
Align items sets the align-self value on all direct children as a group.
|
|
395
|
+
|
|
396
|
+
```ts
|
|
397
|
+
'normal' | 'stretch' | BaselinePosition | OverflowPosition | ContentPosition
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### BackgroundColorKeyword
|
|
401
|
+
|
|
402
|
+
```ts
|
|
403
|
+
'transparent' | ColorKeyword
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### ColorKeyword
|
|
407
|
+
|
|
408
|
+
```ts
|
|
409
|
+
'subdued' | 'base' | 'strong'
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### SizeUnitsOrAuto
|
|
413
|
+
|
|
414
|
+
```ts
|
|
415
|
+
SizeUnits | 'auto'
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### SizeUnits
|
|
419
|
+
|
|
420
|
+
```ts
|
|
421
|
+
`${number}px` | `${number}%` | `0`
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### BorderShorthand
|
|
425
|
+
|
|
426
|
+
Represents a shorthand for defining a border. It can be a combination of size, optionally followed by color, optionally followed by style.
|
|
427
|
+
|
|
428
|
+
```ts
|
|
429
|
+
BorderSizeKeyword | `${BorderSizeKeyword} ${ColorKeyword}` | `${BorderSizeKeyword} ${ColorKeyword} ${BorderStyleKeyword}`
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### BorderSizeKeyword
|
|
433
|
+
|
|
434
|
+
```ts
|
|
435
|
+
SizeKeyword | 'none'
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
### SizeKeyword
|
|
439
|
+
|
|
440
|
+
```ts
|
|
441
|
+
'small-500' | 'small-400' | 'small-300' | 'small-200' | 'small-100' | 'small' | 'base' | 'large' | 'large-100' | 'large-200' | 'large-300' | 'large-400' | 'large-500'
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
### BorderStyleKeyword
|
|
445
|
+
|
|
446
|
+
```ts
|
|
447
|
+
'none' | 'solid' | 'dashed' | 'dotted' | 'auto'
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
### MaybeAllValuesShorthandProperty
|
|
451
|
+
|
|
452
|
+
```ts
|
|
453
|
+
T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
### BoxBorderRadii
|
|
457
|
+
|
|
458
|
+
```ts
|
|
459
|
+
'small' | 'small-200' | 'small-100' | 'base' | 'large' | 'large-100' | 'large-200' | 'none'
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
### BoxBorderStyles
|
|
463
|
+
|
|
464
|
+
```ts
|
|
465
|
+
'auto' | 'none' | 'solid' | 'dashed'
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
### MaybeResponsive
|
|
469
|
+
|
|
470
|
+
```ts
|
|
471
|
+
T | `@container${string}`
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
### SpacingKeyword
|
|
475
|
+
|
|
476
|
+
```ts
|
|
477
|
+
SizeKeyword | 'none'
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
### MaybeTwoValuesShorthandProperty
|
|
481
|
+
|
|
482
|
+
```ts
|
|
483
|
+
T | `${T} ${T}`
|
|
484
|
+
```
|
|
485
|
+
|
|
486
|
+
### JustifyContentKeyword
|
|
487
|
+
|
|
488
|
+
Justify content defines how the browser distributes space between and around content items along the main-axis of a flex container, and the inline axis of a grid container.
|
|
489
|
+
|
|
490
|
+
```ts
|
|
491
|
+
'normal' | ContentDistribution | OverflowPosition | ContentPosition
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
### SizeUnitsOrNone
|
|
495
|
+
|
|
496
|
+
```ts
|
|
497
|
+
SizeUnits | 'none'
|
|
498
|
+
```
|
|
499
|
+
|
|
500
|
+
### PaddingKeyword
|
|
501
|
+
|
|
502
|
+
```ts
|
|
503
|
+
SizeKeyword | 'none'
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
## Slots
|
|
507
|
+
|
|
508
|
+
* children
|
|
509
|
+
|
|
510
|
+
HTMLElement
|
|
511
|
+
|
|
512
|
+
The content of the Stack.
|
|
513
|
+
|
|
514
|
+
Examples
|
|
515
|
+
|
|
516
|
+
### Examples
|
|
517
|
+
|
|
518
|
+
* #### Code
|
|
519
|
+
|
|
520
|
+
##### jsx
|
|
521
|
+
|
|
522
|
+
```jsx
|
|
523
|
+
<s-stack gap="base">
|
|
524
|
+
<s-badge>Paid</s-badge>
|
|
525
|
+
<s-badge>Processing</s-badge>
|
|
526
|
+
<s-badge>Filled</s-badge>
|
|
527
|
+
<s-badge>Completed</s-badge>
|
|
528
|
+
</s-stack>
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
##### html
|
|
532
|
+
|
|
533
|
+
```html
|
|
534
|
+
<s-stack gap="base">
|
|
535
|
+
<s-badge>Paid</s-badge>
|
|
536
|
+
<s-badge>Processing</s-badge>
|
|
537
|
+
<s-badge>Filled</s-badge>
|
|
538
|
+
<s-badge>Completed</s-badge>
|
|
539
|
+
</s-stack>
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
* #### Basic block stack (vertical)
|
|
543
|
+
|
|
544
|
+
##### Description
|
|
545
|
+
|
|
546
|
+
Default vertical stacking layout with consistent spacing between text elements.
|
|
547
|
+
|
|
548
|
+
##### jsx
|
|
549
|
+
|
|
550
|
+
```jsx
|
|
551
|
+
<s-stack gap="base">
|
|
552
|
+
<s-text>First item</s-text>
|
|
553
|
+
<s-text>Second item</s-text>
|
|
554
|
+
<s-text>Third item</s-text>
|
|
555
|
+
</s-stack>
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
##### html
|
|
559
|
+
|
|
560
|
+
```html
|
|
561
|
+
<s-stack gap="base">
|
|
562
|
+
<s-text>First item</s-text>
|
|
563
|
+
<s-text>Second item</s-text>
|
|
564
|
+
<s-text>Third item</s-text>
|
|
565
|
+
</s-stack>
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
* #### Inline stack (horizontal)
|
|
569
|
+
|
|
570
|
+
##### Description
|
|
571
|
+
|
|
572
|
+
Horizontal layout for arranging badges or similar elements side by side.
|
|
573
|
+
|
|
574
|
+
##### jsx
|
|
575
|
+
|
|
576
|
+
```jsx
|
|
577
|
+
<s-stack direction="inline" gap="large-100">
|
|
578
|
+
<s-badge>Item 1</s-badge>
|
|
579
|
+
<s-badge>Item 2</s-badge>
|
|
580
|
+
<s-badge>Item 3</s-badge>
|
|
581
|
+
</s-stack>
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
##### html
|
|
585
|
+
|
|
586
|
+
```html
|
|
587
|
+
<s-stack direction="inline" gap="large-100">
|
|
588
|
+
<s-badge>Item 1</s-badge>
|
|
589
|
+
<s-badge>Item 2</s-badge>
|
|
590
|
+
<s-badge>Item 3</s-badge>
|
|
591
|
+
</s-stack>
|
|
592
|
+
```
|
|
593
|
+
|
|
594
|
+
* #### Responsive stack with container queries
|
|
595
|
+
|
|
596
|
+
##### Description
|
|
597
|
+
|
|
598
|
+
Advanced responsive layout that changes direction and spacing based on container size.
|
|
599
|
+
|
|
600
|
+
##### jsx
|
|
601
|
+
|
|
602
|
+
```jsx
|
|
603
|
+
<s-query-container>
|
|
604
|
+
<s-stack
|
|
605
|
+
direction="@container (inline-size > 500px) inline, block"
|
|
606
|
+
gap="@container (inline-size > 500px) base, small-300"
|
|
607
|
+
>
|
|
608
|
+
<s-box
|
|
609
|
+
padding="large-100"
|
|
610
|
+
borderColor="base"
|
|
611
|
+
borderWidth="small"
|
|
612
|
+
borderRadius="large-100"
|
|
613
|
+
>
|
|
614
|
+
Content 1
|
|
615
|
+
</s-box>
|
|
616
|
+
<s-box
|
|
617
|
+
padding="large-100"
|
|
618
|
+
borderColor="base"
|
|
619
|
+
borderWidth="small"
|
|
620
|
+
borderRadius="large-100"
|
|
621
|
+
>
|
|
622
|
+
Content 2
|
|
623
|
+
</s-box>
|
|
624
|
+
</s-stack>
|
|
625
|
+
</s-query-container>
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
##### html
|
|
629
|
+
|
|
630
|
+
```html
|
|
631
|
+
<s-query-container>
|
|
632
|
+
<s-stack
|
|
633
|
+
direction="@container (inline-size > 500px) inline, block"
|
|
634
|
+
gap="@container (inline-size > 500px) base, small-300"
|
|
635
|
+
>
|
|
636
|
+
<s-box
|
|
637
|
+
padding="large-100"
|
|
638
|
+
borderColor="base"
|
|
639
|
+
borderWidth="small"
|
|
640
|
+
borderRadius="large-100"
|
|
641
|
+
>
|
|
642
|
+
Content 1
|
|
643
|
+
</s-box>
|
|
644
|
+
<s-box
|
|
645
|
+
padding="large-100"
|
|
646
|
+
borderColor="base"
|
|
647
|
+
borderWidth="small"
|
|
648
|
+
borderRadius="large-100"
|
|
649
|
+
>
|
|
650
|
+
Content 2
|
|
651
|
+
</s-box>
|
|
652
|
+
</s-stack>
|
|
653
|
+
</s-query-container>
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
* #### Custom alignment
|
|
657
|
+
|
|
658
|
+
##### Description
|
|
659
|
+
|
|
660
|
+
Horizontal stack with space-between justification and center alignment for balanced layouts.
|
|
661
|
+
|
|
662
|
+
##### jsx
|
|
663
|
+
|
|
664
|
+
```jsx
|
|
665
|
+
<s-stack direction="inline" justifyContent="space-between" alignItems="center">
|
|
666
|
+
<s-text>Left aligned</s-text>
|
|
667
|
+
<s-text>Centered text</s-text>
|
|
668
|
+
<s-text>Right aligned</s-text>
|
|
669
|
+
</s-stack>
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
##### html
|
|
673
|
+
|
|
674
|
+
```html
|
|
675
|
+
<s-stack direction="inline" justifyContent="space-between" alignItems="center">
|
|
676
|
+
<s-text>Left aligned</s-text>
|
|
677
|
+
<s-text>Centered text</s-text>
|
|
678
|
+
<s-text>Right aligned</s-text>
|
|
679
|
+
</s-stack>
|
|
680
|
+
```
|
|
681
|
+
|
|
682
|
+
* #### Custom spacing
|
|
683
|
+
|
|
684
|
+
##### Description
|
|
685
|
+
|
|
686
|
+
Stack with custom gap values and separate row/column gap controls for precise spacing.
|
|
687
|
+
|
|
688
|
+
##### jsx
|
|
689
|
+
|
|
690
|
+
```jsx
|
|
691
|
+
<s-stack gap="large-100 large-500" rowGap="large-300" columnGap="large-200">
|
|
692
|
+
<s-box
|
|
693
|
+
padding="large-100"
|
|
694
|
+
borderColor="base"
|
|
695
|
+
borderWidth="small"
|
|
696
|
+
borderRadius="large-100"
|
|
697
|
+
>
|
|
698
|
+
Box with custom spacing
|
|
699
|
+
</s-box>
|
|
700
|
+
<s-box
|
|
701
|
+
padding="large-100"
|
|
702
|
+
borderColor="base"
|
|
703
|
+
borderWidth="small"
|
|
704
|
+
borderRadius="large-100"
|
|
705
|
+
>
|
|
706
|
+
Another box
|
|
707
|
+
</s-box>
|
|
708
|
+
</s-stack>
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
##### html
|
|
712
|
+
|
|
713
|
+
```html
|
|
714
|
+
<s-stack gap="large-100 large-500" rowGap="large-300" columnGap="large-200">
|
|
715
|
+
<s-box
|
|
716
|
+
padding="large-100"
|
|
717
|
+
borderColor="base"
|
|
718
|
+
borderWidth="small"
|
|
719
|
+
borderRadius="large-100"
|
|
720
|
+
>
|
|
721
|
+
Box with custom spacing
|
|
722
|
+
</s-box>
|
|
723
|
+
<s-box
|
|
724
|
+
padding="large-100"
|
|
725
|
+
borderColor="base"
|
|
726
|
+
borderWidth="small"
|
|
727
|
+
borderRadius="large-100"
|
|
728
|
+
>
|
|
729
|
+
Another box
|
|
730
|
+
</s-box>
|
|
731
|
+
</s-stack>
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
## Useful for
|
|
735
|
+
|
|
736
|
+
* Placing non-form items in rows or columns when sections don't work for your layout.
|
|
737
|
+
* Controlling the spacing between elements.
|
|
738
|
+
* For form layouts where you need multiple input fields on the same row, use `s-grid` instead.
|
|
739
|
+
|
|
740
|
+
## Considerations
|
|
741
|
+
|
|
742
|
+
* Stack doesn't add any padding by default. If you want padding around your stacked elements, use `base` to apply the default padding.
|
|
743
|
+
* When spacing becomes limited, Stack will always wrap children to a new line.
|
|
744
|
+
|
|
745
|
+
## Best practices
|
|
746
|
+
|
|
747
|
+
* Use smaller gaps between small elements and larger gaps between big ones.
|
|
748
|
+
* Maintain consistent spacing in stacks across all pages of your app.
|