@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.
Files changed (51) hide show
  1. package/README.md +110 -0
  2. package/dist/index.d.ts +10 -0
  3. package/dist/index.js +325 -0
  4. package/docs/avatar.md +481 -0
  5. package/docs/badge.md +266 -0
  6. package/docs/banner.md +350 -0
  7. package/docs/box.md +618 -0
  8. package/docs/button.md +604 -0
  9. package/docs/buttongroup.md +251 -0
  10. package/docs/checkbox.md +346 -0
  11. package/docs/chip.md +261 -0
  12. package/docs/choicelist.md +416 -0
  13. package/docs/clickable.md +703 -0
  14. package/docs/clickablechip.md +377 -0
  15. package/docs/colorfield.md +416 -0
  16. package/docs/colorpicker.md +152 -0
  17. package/docs/datefield.md +706 -0
  18. package/docs/datepicker.md +443 -0
  19. package/docs/divider.md +263 -0
  20. package/docs/dropzone.md +331 -0
  21. package/docs/emailfield.md +377 -0
  22. package/docs/grid.md +1246 -0
  23. package/docs/heading.md +201 -0
  24. package/docs/icon.md +295 -0
  25. package/docs/image.md +517 -0
  26. package/docs/link.md +456 -0
  27. package/docs/menu.md +331 -0
  28. package/docs/modal.md +640 -0
  29. package/docs/moneyfield.md +385 -0
  30. package/docs/numberfield.md +393 -0
  31. package/docs/orderedlist.md +224 -0
  32. package/docs/page.md +319 -0
  33. package/docs/paragraph.md +333 -0
  34. package/docs/passwordfield.md +381 -0
  35. package/docs/popover.md +419 -0
  36. package/docs/querycontainer.md +121 -0
  37. package/docs/searchfield.md +319 -0
  38. package/docs/section.md +267 -0
  39. package/docs/select.md +449 -0
  40. package/docs/spinner.md +121 -0
  41. package/docs/stack.md +748 -0
  42. package/docs/switch.md +365 -0
  43. package/docs/table.md +805 -0
  44. package/docs/text.md +339 -0
  45. package/docs/textarea.md +328 -0
  46. package/docs/textfield.md +425 -0
  47. package/docs/thumbnail.md +245 -0
  48. package/docs/tooltip.md +130 -0
  49. package/docs/unorderedlist.md +135 -0
  50. package/docs/urlfield.md +314 -0
  51. package/package.json +43 -0
package/docs/grid.md ADDED
@@ -0,0 +1,1246 @@
1
+ ---
2
+ title: Grid
3
+ description: >-
4
+ Use `s-grid` to organize your content in a matrix of rows and columns and make
5
+ responsive layouts for pages. Grid follows the same pattern as the [CSS grid
6
+ layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout).
7
+ api_name: app-home
8
+ source_url:
9
+ html: 'https://shopify.dev/docs/api/app-home/polaris-web-components/structure/grid'
10
+ md: >-
11
+ https://shopify.dev/docs/api/app-home/polaris-web-components/structure/grid.md
12
+ ---
13
+
14
+ # Grid
15
+
16
+ Use `s-grid` to organize your content in a matrix of rows and columns and make responsive layouts for pages. Grid follows the same pattern as the [CSS grid layout](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout).
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: '' - meaning no override
53
+
54
+ Aligns the grid along the block axis.
55
+
56
+ This overrides the block value of `placeContent`.
57
+
58
+ * alignItems
59
+
60
+ "" | AlignItemsKeyword
61
+
62
+ Default: '' - meaning no override
63
+
64
+ Aligns the grid items 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
+ * display
144
+
145
+ MaybeResponsive<"auto" | "none">
146
+
147
+ Default: 'auto'
148
+
149
+ 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).
150
+
151
+ * `auto` the component's initial value. The actual value depends on the component and context.
152
+ * `none` hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.
153
+
154
+ * gap
155
+
156
+ MaybeResponsive\<MaybeTwoValuesShorthandProperty\<SpacingKeyword>>
157
+
158
+ Default: 'none'
159
+
160
+ Adjust spacing between elements.
161
+
162
+ `gap` can either accept:
163
+
164
+ * a single [SpacingKeyword](https://shopify.dev/docs/api/app-home/using-polaris-components#scale) value applied to both axes (e.g. `large-100`)
165
+ * OR a pair of values (eg `large-100 large-500`) can be used to set the inline and block axes respectively
166
+ * 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.
167
+
168
+ * gridTemplateColumns
169
+
170
+ string
171
+
172
+ Default: 'none'
173
+
174
+ Define columns and specify their size. `gridTemplateColumns` either accepts:
175
+
176
+ * [track sizing values](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout/Basic_concepts_of_grid_layout#fixed_and_flexible_track_sizes) (e.g. `1fr auto`)
177
+ * OR [responsive values](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported track sizing values as a query value.
178
+
179
+ * gridTemplateRows
180
+
181
+ string
182
+
183
+ Default: 'none'
184
+
185
+ Define rows and specify their size. `gridTemplateRows` either accepts:
186
+
187
+ * [track sizing values](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layout/Basic_concepts_of_grid_layout#fixed_and_flexible_track_sizes) (e.g. `1fr auto`)
188
+ * OR [responsive values](https://shopify.dev/docs/api/app-home/using-polaris-components#responsive-values) string with the supported track sizing values as a query value.
189
+
190
+ * inlineSize
191
+
192
+ SizeUnitsOrAuto
193
+
194
+ Default: 'auto'
195
+
196
+ Adjust the [inline size](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).
197
+
198
+ * justifyContent
199
+
200
+ "" | JustifyContentKeyword
201
+
202
+ Default: '' - meaning no override
203
+
204
+ Aligns the grid along the inline axis.
205
+
206
+ This overrides the inline value of `placeContent`.
207
+
208
+ * justifyItems
209
+
210
+ "" | JustifyItemsKeyword
211
+
212
+ Default: '' - meaning no override
213
+
214
+ Aligns the grid items along the inline axis.
215
+
216
+ * maxBlockSize
217
+
218
+ SizeUnitsOrNone
219
+
220
+ Default: 'none'
221
+
222
+ Adjust the [maximum block size](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).
223
+
224
+ * maxInlineSize
225
+
226
+ SizeUnitsOrNone
227
+
228
+ Default: 'none'
229
+
230
+ Adjust the [maximum inline size](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).
231
+
232
+ * minBlockSize
233
+
234
+ SizeUnits
235
+
236
+ Default: '0'
237
+
238
+ Adjust the [minimum block size](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).
239
+
240
+ * minInlineSize
241
+
242
+ SizeUnits
243
+
244
+ Default: '0'
245
+
246
+ Adjust the [minimum inline size](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).
247
+
248
+ * overflow
249
+
250
+ "visible" | "hidden"
251
+
252
+ Default: 'visible'
253
+
254
+ Sets the overflow behavior of the element.
255
+
256
+ * `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.
257
+ * `visible`: the content that extends beyond the element’s container is visible.
258
+
259
+ * padding
260
+
261
+ MaybeResponsive\<MaybeAllValuesShorthandProperty\<PaddingKeyword>>
262
+
263
+ Default: 'none'
264
+
265
+ Adjust the padding of all edges.
266
+
267
+ [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:
268
+
269
+ * 4 values: `block-start inline-end block-end inline-start`
270
+ * 3 values: `block-start inline block-end`
271
+ * 2 values: `block inline`
272
+
273
+ For example:
274
+
275
+ * `large` means block-start, inline-end, block-end and inline-start paddings are `large`.
276
+ * `large none` means block-start and block-end paddings are `large`, inline-start and inline-end paddings are `none`.
277
+ * `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`.
278
+ * `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`.
279
+
280
+ A padding value of `auto` will use the default padding for the closest container that has had its usual padding removed.
281
+
282
+ `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.
283
+
284
+ * paddingBlock
285
+
286
+ MaybeResponsive<"" | MaybeTwoValuesShorthandProperty\<PaddingKeyword>>
287
+
288
+ Default: '' - meaning no override
289
+
290
+ Adjust the block-padding.
291
+
292
+ * `large none` means block-start padding is `large`, block-end padding is `none`.
293
+
294
+ This overrides the block value of `padding`.
295
+
296
+ `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.
297
+
298
+ * paddingBlockEnd
299
+
300
+ MaybeResponsive<"" | PaddingKeyword>
301
+
302
+ Default: '' - meaning no override
303
+
304
+ Adjust the block-end padding.
305
+
306
+ This overrides the block-end value of `paddingBlock`.
307
+
308
+ `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.
309
+
310
+ * paddingBlockStart
311
+
312
+ MaybeResponsive<"" | PaddingKeyword>
313
+
314
+ Default: '' - meaning no override
315
+
316
+ Adjust the block-start padding.
317
+
318
+ This overrides the block-start value of `paddingBlock`.
319
+
320
+ `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.
321
+
322
+ * paddingInline
323
+
324
+ MaybeResponsive<"" | MaybeTwoValuesShorthandProperty\<PaddingKeyword>>
325
+
326
+ Default: '' - meaning no override
327
+
328
+ Adjust the inline padding.
329
+
330
+ * `large none` means inline-start padding is `large`, inline-end padding is `none`.
331
+
332
+ This overrides the inline value of `padding`.
333
+
334
+ `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.
335
+
336
+ * paddingInlineEnd
337
+
338
+ MaybeResponsive<"" | PaddingKeyword>
339
+
340
+ Default: '' - meaning no override
341
+
342
+ Adjust the inline-end padding.
343
+
344
+ This overrides the inline-end value of `paddingInline`.
345
+
346
+ `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.
347
+
348
+ * paddingInlineStart
349
+
350
+ MaybeResponsive<"" | PaddingKeyword>
351
+
352
+ Default: '' - meaning no override
353
+
354
+ Adjust the inline-start padding.
355
+
356
+ This overrides the inline-start value of `paddingInline`.
357
+
358
+ `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.
359
+
360
+ * placeContent
361
+
362
+ "normal normal" | "normal stretch" | "normal start" | "normal end" | "normal center" | "normal unsafe start" | "normal unsafe end" | "normal unsafe center" | "normal safe start" | "normal safe end" | "normal safe center" | "stretch normal" | "stretch stretch" | "stretch start" | "stretch end" | "stretch center" | "stretch unsafe start" | "stretch unsafe end" | "stretch unsafe center" | "stretch safe start" | "stretch safe end" | "stretch safe center" | "baseline normal" | "baseline stretch" | "baseline start" | "baseline end" | "baseline center" | "baseline unsafe start" | "baseline unsafe end" | "baseline unsafe center" | "baseline safe start" | "baseline safe end" | "baseline safe center" | "first baseline normal" | "first baseline stretch" | "first baseline start" | "first baseline end" | "first baseline center" | "first baseline unsafe start" | "first baseline unsafe end" | "first baseline unsafe center" | "first baseline safe start" | "first baseline safe end" | "first baseline safe center" | "last baseline normal" | "last baseline stretch" | "last baseline start" | "last baseline end" | "last baseline center" | "last baseline unsafe start" | "last baseline unsafe end" | "last baseline unsafe center" | "last baseline safe start" | "last baseline safe end" | "last baseline safe center" | "start normal" | "start stretch" | "start start" | "start end" | "start center" | "start unsafe start" | "start unsafe end" | "start unsafe center" | "start safe start" | "start safe end" | "start safe center" | "end normal" | "end stretch" | "end start" | "end end" | "end center" | "end unsafe start" | "end unsafe end" | "end unsafe center" | "end safe start" | "end safe end" | "end safe center" | "center normal" | "center stretch" | "center start" | "center end" | "center center" | "center unsafe start" | "center unsafe end" | "center unsafe center" | "center safe start" | "center safe end" | "center safe center" | "unsafe start normal" | "unsafe start stretch" | "unsafe start start" | "unsafe start end" | "unsafe start center" | "unsafe start unsafe start" | "unsafe start unsafe end" | "unsafe start unsafe center" | "unsafe start safe start" | "unsafe start safe end" | "unsafe start safe center" | "unsafe end normal" | "unsafe end stretch" | "unsafe end start" | "unsafe end end" | "unsafe end center" | "unsafe end unsafe start" | "unsafe end unsafe end" | "unsafe end unsafe center" | "unsafe end safe start" | "unsafe end safe end" | "unsafe end safe center" | "unsafe center normal" | "unsafe center stretch" | "unsafe center start" | "unsafe center end" | "unsafe center center" | "unsafe center unsafe start" | "unsafe center unsafe end" | "unsafe center unsafe center" | "unsafe center safe start" | "unsafe center safe end" | "unsafe center safe center" | "safe start normal" | "safe start stretch" | "safe start start" | "safe start end" | "safe start center" | "safe start unsafe start" | "safe start unsafe end" | "safe start unsafe center" | "safe start safe start" | "safe start safe end" | "safe start safe center" | "safe end normal" | "safe end stretch" | "safe end start" | "safe end end" | "safe end center" | "safe end unsafe start" | "safe end unsafe end" | "safe end unsafe center" | "safe end safe start" | "safe end safe end" | "safe end safe center" | "safe center normal" | "safe center stretch" | "safe center start" | "safe center end" | "safe center center" | "safe center unsafe start" | "safe center unsafe end" | "safe center unsafe center" | "safe center safe start" | "safe center safe end" | "safe center safe center" | AlignContentKeyword | "normal space-between" | "normal space-around" | "normal space-evenly" | "baseline space-between" | "baseline space-around" | "baseline space-evenly" | "first baseline space-between" | "first baseline space-around" | "first baseline space-evenly" | "last baseline space-between" | "last baseline space-around" | "last baseline space-evenly" | "start space-between" | "start space-around" | "start space-evenly" | "end space-between" | "end space-around" | "end space-evenly" | "center space-between" | "center space-around" | "center space-evenly" | "unsafe start space-between" | "unsafe start space-around" | "unsafe start space-evenly" | "unsafe end space-between" | "unsafe end space-around" | "unsafe end space-evenly" | "unsafe center space-between" | "unsafe center space-around" | "unsafe center space-evenly" | "safe start space-between" | "safe start space-around" | "safe start space-evenly" | "safe end space-between" | "safe end space-around" | "safe end space-evenly" | "safe center space-between" | "safe center space-around" | "safe center space-evenly" | "stretch space-between" | "stretch space-around" | "stretch space-evenly" | "space-between normal" | "space-between start" | "space-between end" | "space-between center" | "space-between unsafe start" | "space-between unsafe end" | "space-between unsafe center" | "space-between safe start" | "space-between safe end" | "space-between safe center" | "space-between stretch" | "space-between space-between" | "space-between space-around" | "space-between space-evenly" | "space-around normal" | "space-around start" | "space-around end" | "space-around center" | "space-around unsafe start" | "space-around unsafe end" | "space-around unsafe center" | "space-around safe start" | "space-around safe end" | "space-around safe center" | "space-around stretch" | "space-around space-between" | "space-around space-around" | "space-around space-evenly" | "space-evenly normal" | "space-evenly start" | "space-evenly end" | "space-evenly center" | "space-evenly unsafe start" | "space-evenly unsafe end" | "space-evenly unsafe center" | "space-evenly safe start" | "space-evenly safe end" | "space-evenly safe center" | "space-evenly stretch" | "space-evenly space-between" | "space-evenly space-around" | "space-evenly space-evenly"
363
+
364
+ Default: 'normal normal'
365
+
366
+ A shorthand property for `justify-content` and `align-content`.
367
+
368
+ * placeItems
369
+
370
+ AlignItemsKeyword | "normal normal" | "normal stretch" | "normal baseline" | "normal first baseline" | "normal last baseline" | "normal start" | "normal end" | "normal center" | "normal unsafe start" | "normal unsafe end" | "normal unsafe center" | "normal safe start" | "normal safe end" | "normal safe center" | "stretch normal" | "stretch stretch" | "stretch baseline" | "stretch first baseline" | "stretch last baseline" | "stretch start" | "stretch end" | "stretch center" | "stretch unsafe start" | "stretch unsafe end" | "stretch unsafe center" | "stretch safe start" | "stretch safe end" | "stretch safe center" | "baseline normal" | "baseline stretch" | "baseline baseline" | "baseline first baseline" | "baseline last baseline" | "baseline start" | "baseline end" | "baseline center" | "baseline unsafe start" | "baseline unsafe end" | "baseline unsafe center" | "baseline safe start" | "baseline safe end" | "baseline safe center" | "first baseline normal" | "first baseline stretch" | "first baseline baseline" | "first baseline first baseline" | "first baseline last baseline" | "first baseline start" | "first baseline end" | "first baseline center" | "first baseline unsafe start" | "first baseline unsafe end" | "first baseline unsafe center" | "first baseline safe start" | "first baseline safe end" | "first baseline safe center" | "last baseline normal" | "last baseline stretch" | "last baseline baseline" | "last baseline first baseline" | "last baseline last baseline" | "last baseline start" | "last baseline end" | "last baseline center" | "last baseline unsafe start" | "last baseline unsafe end" | "last baseline unsafe center" | "last baseline safe start" | "last baseline safe end" | "last baseline safe center" | "start normal" | "start stretch" | "start baseline" | "start first baseline" | "start last baseline" | "start start" | "start end" | "start center" | "start unsafe start" | "start unsafe end" | "start unsafe center" | "start safe start" | "start safe end" | "start safe center" | "end normal" | "end stretch" | "end baseline" | "end first baseline" | "end last baseline" | "end start" | "end end" | "end center" | "end unsafe start" | "end unsafe end" | "end unsafe center" | "end safe start" | "end safe end" | "end safe center" | "center normal" | "center stretch" | "center baseline" | "center first baseline" | "center last baseline" | "center start" | "center end" | "center center" | "center unsafe start" | "center unsafe end" | "center unsafe center" | "center safe start" | "center safe end" | "center safe center" | "unsafe start normal" | "unsafe start stretch" | "unsafe start baseline" | "unsafe start first baseline" | "unsafe start last baseline" | "unsafe start start" | "unsafe start end" | "unsafe start center" | "unsafe start unsafe start" | "unsafe start unsafe end" | "unsafe start unsafe center" | "unsafe start safe start" | "unsafe start safe end" | "unsafe start safe center" | "unsafe end normal" | "unsafe end stretch" | "unsafe end baseline" | "unsafe end first baseline" | "unsafe end last baseline" | "unsafe end start" | "unsafe end end" | "unsafe end center" | "unsafe end unsafe start" | "unsafe end unsafe end" | "unsafe end unsafe center" | "unsafe end safe start" | "unsafe end safe end" | "unsafe end safe center" | "unsafe center normal" | "unsafe center stretch" | "unsafe center baseline" | "unsafe center first baseline" | "unsafe center last baseline" | "unsafe center start" | "unsafe center end" | "unsafe center center" | "unsafe center unsafe start" | "unsafe center unsafe end" | "unsafe center unsafe center" | "unsafe center safe start" | "unsafe center safe end" | "unsafe center safe center" | "safe start normal" | "safe start stretch" | "safe start baseline" | "safe start first baseline" | "safe start last baseline" | "safe start start" | "safe start end" | "safe start center" | "safe start unsafe start" | "safe start unsafe end" | "safe start unsafe center" | "safe start safe start" | "safe start safe end" | "safe start safe center" | "safe end normal" | "safe end stretch" | "safe end baseline" | "safe end first baseline" | "safe end last baseline" | "safe end start" | "safe end end" | "safe end center" | "safe end unsafe start" | "safe end unsafe end" | "safe end unsafe center" | "safe end safe start" | "safe end safe end" | "safe end safe center" | "safe center normal" | "safe center stretch" | "safe center baseline" | "safe center first baseline" | "safe center last baseline" | "safe center start" | "safe center end" | "safe center center" | "safe center unsafe start" | "safe center unsafe end" | "safe center unsafe center" | "safe center safe start" | "safe center safe end" | "safe center safe center"
371
+
372
+ Default: 'normal normal'
373
+
374
+ A shorthand property for `justify-items` and `align-items`.
375
+
376
+ * rowGap
377
+
378
+ MaybeResponsive<"" | SpacingKeyword>
379
+
380
+ Default: '' - meaning no override
381
+
382
+ Adjust spacing between elements in the block axis.
383
+
384
+ This overrides the row value of `gap`. `rowGap` either accepts:
385
+
386
+ * a single [SpacingKeyword](https://shopify.dev/docs/api/app-home/using-polaris-components#scale) value (e.g. `large-100`)
387
+ * 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.
388
+
389
+ ### AccessibilityRole
390
+
391
+ ```ts
392
+ 'main' | 'header' | 'footer' | 'section' | 'aside' | 'navigation' | 'ordered-list' | 'list-item' | 'list-item-separator' | 'unordered-list' | 'separator' | 'status' | 'alert' | 'generic' | 'presentation' | 'none'
393
+ ```
394
+
395
+ ### AlignContentKeyword
396
+
397
+ 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.
398
+
399
+ ```ts
400
+ 'normal' | BaselinePosition | ContentDistribution | OverflowPosition | ContentPosition
401
+ ```
402
+
403
+ ### BaselinePosition
404
+
405
+ ```ts
406
+ 'baseline' | 'first baseline' | 'last baseline'
407
+ ```
408
+
409
+ ### ContentDistribution
410
+
411
+ ```ts
412
+ 'space-between' | 'space-around' | 'space-evenly' | 'stretch'
413
+ ```
414
+
415
+ ### OverflowPosition
416
+
417
+ ```ts
418
+ `unsafe ${ContentPosition}` | `safe ${ContentPosition}`
419
+ ```
420
+
421
+ ### ContentPosition
422
+
423
+ ```ts
424
+ 'center' | 'start' | 'end'
425
+ ```
426
+
427
+ ### AlignItemsKeyword
428
+
429
+ Align items sets the align-self value on all direct children as a group.
430
+
431
+ ```ts
432
+ 'normal' | 'stretch' | BaselinePosition | OverflowPosition | ContentPosition
433
+ ```
434
+
435
+ ### BackgroundColorKeyword
436
+
437
+ ```ts
438
+ 'transparent' | ColorKeyword
439
+ ```
440
+
441
+ ### ColorKeyword
442
+
443
+ ```ts
444
+ 'subdued' | 'base' | 'strong'
445
+ ```
446
+
447
+ ### SizeUnitsOrAuto
448
+
449
+ ```ts
450
+ SizeUnits | 'auto'
451
+ ```
452
+
453
+ ### SizeUnits
454
+
455
+ ```ts
456
+ `${number}px` | `${number}%` | `0`
457
+ ```
458
+
459
+ ### BorderShorthand
460
+
461
+ Represents a shorthand for defining a border. It can be a combination of size, optionally followed by color, optionally followed by style.
462
+
463
+ ```ts
464
+ BorderSizeKeyword | `${BorderSizeKeyword} ${ColorKeyword}` | `${BorderSizeKeyword} ${ColorKeyword} ${BorderStyleKeyword}`
465
+ ```
466
+
467
+ ### BorderSizeKeyword
468
+
469
+ ```ts
470
+ SizeKeyword | 'none'
471
+ ```
472
+
473
+ ### SizeKeyword
474
+
475
+ ```ts
476
+ 'small-500' | 'small-400' | 'small-300' | 'small-200' | 'small-100' | 'small' | 'base' | 'large' | 'large-100' | 'large-200' | 'large-300' | 'large-400' | 'large-500'
477
+ ```
478
+
479
+ ### BorderStyleKeyword
480
+
481
+ ```ts
482
+ 'none' | 'solid' | 'dashed' | 'dotted' | 'auto'
483
+ ```
484
+
485
+ ### MaybeAllValuesShorthandProperty
486
+
487
+ ```ts
488
+ T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`
489
+ ```
490
+
491
+ ### BoxBorderRadii
492
+
493
+ ```ts
494
+ 'small' | 'small-200' | 'small-100' | 'base' | 'large' | 'large-100' | 'large-200' | 'none'
495
+ ```
496
+
497
+ ### BoxBorderStyles
498
+
499
+ ```ts
500
+ 'auto' | 'none' | 'solid' | 'dashed'
501
+ ```
502
+
503
+ ### MaybeResponsive
504
+
505
+ ```ts
506
+ T | `@container${string}`
507
+ ```
508
+
509
+ ### SpacingKeyword
510
+
511
+ ```ts
512
+ SizeKeyword | 'none'
513
+ ```
514
+
515
+ ### MaybeTwoValuesShorthandProperty
516
+
517
+ ```ts
518
+ T | `${T} ${T}`
519
+ ```
520
+
521
+ ### JustifyContentKeyword
522
+
523
+ 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.
524
+
525
+ ```ts
526
+ 'normal' | ContentDistribution | OverflowPosition | ContentPosition
527
+ ```
528
+
529
+ ### JustifyItemsKeyword
530
+
531
+ Justify items defines the default justify-self for all items of the box, giving them all a default way of justifying each box along the appropriate axis.
532
+
533
+ ```ts
534
+ 'normal' | 'stretch' | BaselinePosition | OverflowPosition | ContentPosition
535
+ ```
536
+
537
+ ### SizeUnitsOrNone
538
+
539
+ ```ts
540
+ SizeUnits | 'none'
541
+ ```
542
+
543
+ ### PaddingKeyword
544
+
545
+ ```ts
546
+ SizeKeyword | 'none'
547
+ ```
548
+
549
+ ## Slots
550
+
551
+ * children
552
+
553
+ HTMLElement
554
+
555
+ The content of the Grid.
556
+
557
+ ## GridItem
558
+
559
+ Display content within a single item of a grid layout.
560
+
561
+ * accessibilityLabel
562
+
563
+ string
564
+
565
+ 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.
566
+
567
+ Only use this when the element's content is not enough context for users using assistive technologies.
568
+
569
+ * accessibilityRole
570
+
571
+ AccessibilityRole
572
+
573
+ Default: 'generic'
574
+
575
+ 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.
576
+
577
+ * accessibilityVisibility
578
+
579
+ "visible" | "hidden" | "exclusive"
580
+
581
+ Default: 'visible'
582
+
583
+ Changes the visibility of the element.
584
+
585
+ * `visible`: the element is visible to all users.
586
+ * `hidden`: the element is removed from the accessibility tree but remains visible.
587
+ * `exclusive`: the element is visually hidden but remains in the accessibility tree.
588
+
589
+ * background
590
+
591
+ BackgroundColorKeyword
592
+
593
+ Default: 'transparent'
594
+
595
+ Adjust the background of the component.
596
+
597
+ * blockSize
598
+
599
+ SizeUnitsOrAuto
600
+
601
+ Default: 'auto'
602
+
603
+ Adjust the [block size](https://developer.mozilla.org/en-US/docs/Web/CSS/block-size).
604
+
605
+ * border
606
+
607
+ BorderShorthand
608
+
609
+ Default: 'none' - equivalent to \`none base auto\`.
610
+
611
+ Set the border via the shorthand property.
612
+
613
+ This can be a size, optionally followed by a color, optionally followed by a style.
614
+
615
+ If the color is not specified, it will be `base`.
616
+
617
+ If the style is not specified, it will be `auto`.
618
+
619
+ Values can be overridden by `borderWidth`, `borderStyle`, and `borderColor`.
620
+
621
+ * borderColor
622
+
623
+ "" | ColorKeyword
624
+
625
+ Default: '' - meaning no override
626
+
627
+ Adjust the color of the border.
628
+
629
+ * borderRadius
630
+
631
+ MaybeAllValuesShorthandProperty\<BoxBorderRadii>
632
+
633
+ Default: 'none'
634
+
635
+ Adjust the radius of the border.
636
+
637
+ * borderStyle
638
+
639
+ "" | MaybeAllValuesShorthandProperty\<BoxBorderStyles>
640
+
641
+ Default: '' - meaning no override
642
+
643
+ Adjust the style of the border.
644
+
645
+ * borderWidth
646
+
647
+ "" | MaybeAllValuesShorthandProperty<"small" | "small-100" | "base" | "large" | "large-100" | "none">
648
+
649
+ Default: '' - meaning no override
650
+
651
+ Adjust the width of the border.
652
+
653
+ * display
654
+
655
+ MaybeResponsive<"auto" | "none">
656
+
657
+ Default: 'auto'
658
+
659
+ 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).
660
+
661
+ * `auto` the component's initial value. The actual value depends on the component and context.
662
+ * `none` hides the component from display and removes it from the accessibility tree, making it invisible to screen readers.
663
+
664
+ * gridColumn
665
+
666
+ "auto" | \`span ${number}\`
667
+
668
+ Default: 'auto'
669
+
670
+ Number of columns the item will span across
671
+
672
+ * gridRow
673
+
674
+ "auto" | \`span ${number}\`
675
+
676
+ Default: 'auto'
677
+
678
+ Number of rows the item will span across
679
+
680
+ * inlineSize
681
+
682
+ SizeUnitsOrAuto
683
+
684
+ Default: 'auto'
685
+
686
+ Adjust the [inline size](https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size).
687
+
688
+ * maxBlockSize
689
+
690
+ SizeUnitsOrNone
691
+
692
+ Default: 'none'
693
+
694
+ Adjust the [maximum block size](https://developer.mozilla.org/en-US/docs/Web/CSS/max-block-size).
695
+
696
+ * maxInlineSize
697
+
698
+ SizeUnitsOrNone
699
+
700
+ Default: 'none'
701
+
702
+ Adjust the [maximum inline size](https://developer.mozilla.org/en-US/docs/Web/CSS/max-inline-size).
703
+
704
+ * minBlockSize
705
+
706
+ SizeUnits
707
+
708
+ Default: '0'
709
+
710
+ Adjust the [minimum block size](https://developer.mozilla.org/en-US/docs/Web/CSS/min-block-size).
711
+
712
+ * minInlineSize
713
+
714
+ SizeUnits
715
+
716
+ Default: '0'
717
+
718
+ Adjust the [minimum inline size](https://developer.mozilla.org/en-US/docs/Web/CSS/min-inline-size).
719
+
720
+ * overflow
721
+
722
+ "visible" | "hidden"
723
+
724
+ Default: 'visible'
725
+
726
+ Sets the overflow behavior of the element.
727
+
728
+ * `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.
729
+ * `visible`: the content that extends beyond the element’s container is visible.
730
+
731
+ * padding
732
+
733
+ MaybeResponsive\<MaybeAllValuesShorthandProperty\<PaddingKeyword>>
734
+
735
+ Default: 'none'
736
+
737
+ Adjust the padding of all edges.
738
+
739
+ [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:
740
+
741
+ * 4 values: `block-start inline-end block-end inline-start`
742
+ * 3 values: `block-start inline block-end`
743
+ * 2 values: `block inline`
744
+
745
+ For example:
746
+
747
+ * `large` means block-start, inline-end, block-end and inline-start paddings are `large`.
748
+ * `large none` means block-start and block-end paddings are `large`, inline-start and inline-end paddings are `none`.
749
+ * `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`.
750
+ * `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`.
751
+
752
+ A padding value of `auto` will use the default padding for the closest container that has had its usual padding removed.
753
+
754
+ `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.
755
+
756
+ * paddingBlock
757
+
758
+ MaybeResponsive<"" | MaybeTwoValuesShorthandProperty\<PaddingKeyword>>
759
+
760
+ Default: '' - meaning no override
761
+
762
+ Adjust the block-padding.
763
+
764
+ * `large none` means block-start padding is `large`, block-end padding is `none`.
765
+
766
+ This overrides the block value of `padding`.
767
+
768
+ `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.
769
+
770
+ * paddingBlockEnd
771
+
772
+ MaybeResponsive<"" | PaddingKeyword>
773
+
774
+ Default: '' - meaning no override
775
+
776
+ Adjust the block-end padding.
777
+
778
+ This overrides the block-end value of `paddingBlock`.
779
+
780
+ `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.
781
+
782
+ * paddingBlockStart
783
+
784
+ MaybeResponsive<"" | PaddingKeyword>
785
+
786
+ Default: '' - meaning no override
787
+
788
+ Adjust the block-start padding.
789
+
790
+ This overrides the block-start value of `paddingBlock`.
791
+
792
+ `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.
793
+
794
+ * paddingInline
795
+
796
+ MaybeResponsive<"" | MaybeTwoValuesShorthandProperty\<PaddingKeyword>>
797
+
798
+ Default: '' - meaning no override
799
+
800
+ Adjust the inline padding.
801
+
802
+ * `large none` means inline-start padding is `large`, inline-end padding is `none`.
803
+
804
+ This overrides the inline value of `padding`.
805
+
806
+ `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.
807
+
808
+ * paddingInlineEnd
809
+
810
+ MaybeResponsive<"" | PaddingKeyword>
811
+
812
+ Default: '' - meaning no override
813
+
814
+ Adjust the inline-end padding.
815
+
816
+ This overrides the inline-end value of `paddingInline`.
817
+
818
+ `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.
819
+
820
+ * paddingInlineStart
821
+
822
+ MaybeResponsive<"" | PaddingKeyword>
823
+
824
+ Default: '' - meaning no override
825
+
826
+ Adjust the inline-start padding.
827
+
828
+ This overrides the inline-start value of `paddingInline`.
829
+
830
+ `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.
831
+
832
+ ### AccessibilityRole
833
+
834
+ ```ts
835
+ 'main' | 'header' | 'footer' | 'section' | 'aside' | 'navigation' | 'ordered-list' | 'list-item' | 'list-item-separator' | 'unordered-list' | 'separator' | 'status' | 'alert' | 'generic' | 'presentation' | 'none'
836
+ ```
837
+
838
+ ### BackgroundColorKeyword
839
+
840
+ ```ts
841
+ 'transparent' | ColorKeyword
842
+ ```
843
+
844
+ ### ColorKeyword
845
+
846
+ ```ts
847
+ 'subdued' | 'base' | 'strong'
848
+ ```
849
+
850
+ ### SizeUnitsOrAuto
851
+
852
+ ```ts
853
+ SizeUnits | 'auto'
854
+ ```
855
+
856
+ ### SizeUnits
857
+
858
+ ```ts
859
+ `${number}px` | `${number}%` | `0`
860
+ ```
861
+
862
+ ### BorderShorthand
863
+
864
+ Represents a shorthand for defining a border. It can be a combination of size, optionally followed by color, optionally followed by style.
865
+
866
+ ```ts
867
+ BorderSizeKeyword | `${BorderSizeKeyword} ${ColorKeyword}` | `${BorderSizeKeyword} ${ColorKeyword} ${BorderStyleKeyword}`
868
+ ```
869
+
870
+ ### BorderSizeKeyword
871
+
872
+ ```ts
873
+ SizeKeyword | 'none'
874
+ ```
875
+
876
+ ### SizeKeyword
877
+
878
+ ```ts
879
+ 'small-500' | 'small-400' | 'small-300' | 'small-200' | 'small-100' | 'small' | 'base' | 'large' | 'large-100' | 'large-200' | 'large-300' | 'large-400' | 'large-500'
880
+ ```
881
+
882
+ ### BorderStyleKeyword
883
+
884
+ ```ts
885
+ 'none' | 'solid' | 'dashed' | 'dotted' | 'auto'
886
+ ```
887
+
888
+ ### MaybeAllValuesShorthandProperty
889
+
890
+ ```ts
891
+ T | `${T} ${T}` | `${T} ${T} ${T}` | `${T} ${T} ${T} ${T}`
892
+ ```
893
+
894
+ ### BoxBorderRadii
895
+
896
+ ```ts
897
+ 'small' | 'small-200' | 'small-100' | 'base' | 'large' | 'large-100' | 'large-200' | 'none'
898
+ ```
899
+
900
+ ### BoxBorderStyles
901
+
902
+ ```ts
903
+ 'auto' | 'none' | 'solid' | 'dashed'
904
+ ```
905
+
906
+ ### MaybeResponsive
907
+
908
+ ```ts
909
+ T | `@container${string}`
910
+ ```
911
+
912
+ ### SizeUnitsOrNone
913
+
914
+ ```ts
915
+ SizeUnits | 'none'
916
+ ```
917
+
918
+ ### PaddingKeyword
919
+
920
+ ```ts
921
+ SizeKeyword | 'none'
922
+ ```
923
+
924
+ ### MaybeTwoValuesShorthandProperty
925
+
926
+ ```ts
927
+ T | `${T} ${T}`
928
+ ```
929
+
930
+ ## Slots
931
+
932
+ * children
933
+
934
+ HTMLElement
935
+
936
+ The content of the GridItem.
937
+
938
+ Examples
939
+
940
+ ### Examples
941
+
942
+ * #### Code
943
+
944
+ ##### jsx
945
+
946
+ ```jsx
947
+ <s-grid
948
+ gridTemplateColumns="repeat(2, 1fr)"
949
+ gap="small"
950
+ justifyContent="center"
951
+ >
952
+ <s-grid-item gridColumn="span 2" border="base" borderStyle="dashed">
953
+ Summary of sales
954
+ </s-grid-item>
955
+ <s-grid-item gridColumn="span 1" border="base" borderStyle="dashed">
956
+ Orders
957
+ </s-grid-item>
958
+ <s-grid-item gridColumn="auto" border="base" borderStyle="dashed">
959
+ Customers
960
+ </s-grid-item>
961
+ </s-grid>
962
+ ```
963
+
964
+ ##### html
965
+
966
+ ```html
967
+ <s-grid
968
+ gridTemplateColumns="repeat(2, 1fr)"
969
+ gap="small"
970
+ justifyContent="center"
971
+ >
972
+ <s-grid-item gridColumn="span 2" border="base" borderStyle="dashed">
973
+ Summary of sales
974
+ </s-grid-item>
975
+ <s-grid-item gridColumn="span 1" border="base" borderStyle="dashed">
976
+ Orders
977
+ </s-grid-item>
978
+ <s-grid-item gridColumn="auto" border="base" borderStyle="dashed">
979
+ Customers
980
+ </s-grid-item>
981
+ </s-grid>
982
+ ```
983
+
984
+ * #### Basic two-column layout
985
+
986
+ ##### Description
987
+
988
+ Simple 12-column grid system with equal-width left and right columns.
989
+
990
+ ##### jsx
991
+
992
+ ```jsx
993
+ <s-grid gridTemplateColumns="repeat(12, 1fr)" gap="base">
994
+ <s-grid-item gridColumn="span 6" gridRow="span 1">
995
+ <s-section>
996
+ <s-text>Left column</s-text>
997
+ </s-section>
998
+ </s-grid-item>
999
+ <s-grid-item gridColumn="span 6" gridRow="span 1">
1000
+ <s-section>
1001
+ <s-text>Right column</s-text>
1002
+ </s-section>
1003
+ </s-grid-item>
1004
+ </s-grid>
1005
+ ```
1006
+
1007
+ ##### html
1008
+
1009
+ ```html
1010
+ <s-grid gridTemplateColumns="repeat(12, 1fr)" gap="base">
1011
+ <s-grid-item gridColumn="span 6" gridRow="span 1">
1012
+ <s-section>
1013
+ <s-text>Left column</s-text>
1014
+ </s-section>
1015
+ </s-grid-item>
1016
+ <s-grid-item gridColumn="span 6" gridRow="span 1">
1017
+ <s-section>
1018
+ <s-text>Right column</s-text>
1019
+ </s-section>
1020
+ </s-grid-item>
1021
+ </s-grid>
1022
+ ```
1023
+
1024
+ * #### Layout with spans
1025
+
1026
+ ##### Description
1027
+
1028
+ Grid layout with full-width, half-width, and third-width column arrangements.
1029
+
1030
+ ##### jsx
1031
+
1032
+ ```jsx
1033
+ <s-stack gap="base">
1034
+ <s-grid gridTemplateColumns="repeat(12, 1fr)" gap="base">
1035
+ <s-grid-item gridColumn="span 12" gridRow="span 1">
1036
+ <s-section>
1037
+ <s-text>Full width field</s-text>
1038
+ </s-section>
1039
+ </s-grid-item>
1040
+ <s-grid-item gridColumn="span 6" gridRow="span 2">
1041
+ <s-section>
1042
+ <s-text>Half width field</s-text>
1043
+ </s-section>
1044
+ </s-grid-item>
1045
+ <s-grid-item gridColumn="span 6" gridRow="span 2">
1046
+ <s-section>
1047
+ <s-text>Half width field</s-text>
1048
+ </s-section>
1049
+ </s-grid-item>
1050
+ <s-grid-item gridColumn="span 4" gridRow="span 3">
1051
+ <s-section>
1052
+ <s-text>Third width field</s-text>
1053
+ </s-section>
1054
+ </s-grid-item>
1055
+ <s-grid-item gridColumn="span 4" gridRow="span 3">
1056
+ <s-section>
1057
+ <s-text>Third width field</s-text>
1058
+ </s-section>
1059
+ </s-grid-item>
1060
+ <s-grid-item gridColumn="span 4" gridRow="span 3">
1061
+ <s-section>
1062
+ <s-text>Third width field</s-text>
1063
+ </s-section>
1064
+ </s-grid-item>
1065
+ </s-grid>
1066
+ </s-stack>
1067
+ ```
1068
+
1069
+ ##### html
1070
+
1071
+ ```html
1072
+ <s-stack gap="base">
1073
+ <s-grid gridTemplateColumns="repeat(12, 1fr)" gap="base">
1074
+ <s-grid-item gridColumn="span 12" gridRow="span 1">
1075
+ <s-section>
1076
+ <s-text>Full width field</s-text>
1077
+ </s-section>
1078
+ </s-grid-item>
1079
+ <s-grid-item gridColumn="span 6" gridRow="span 2">
1080
+ <s-section>
1081
+ <s-text>Half width field</s-text>
1082
+ </s-section>
1083
+ </s-grid-item>
1084
+ <s-grid-item gridColumn="span 6" gridRow="span 2">
1085
+ <s-section>
1086
+ <s-text>Half width field</s-text>
1087
+ </s-section>
1088
+ </s-grid-item>
1089
+ <s-grid-item gridColumn="span 4" gridRow="span 3">
1090
+ <s-section>
1091
+ <s-text>Third width field</s-text>
1092
+ </s-section>
1093
+ </s-grid-item>
1094
+ <s-grid-item gridColumn="span 4" gridRow="span 3">
1095
+ <s-section>
1096
+ <s-text>Third width field</s-text>
1097
+ </s-section>
1098
+ </s-grid-item>
1099
+ <s-grid-item gridColumn="span 4" gridRow="span 3">
1100
+ <s-section>
1101
+ <s-text>Third width field</s-text>
1102
+ </s-section>
1103
+ </s-grid-item>
1104
+ </s-grid>
1105
+ </s-stack>
1106
+ ```
1107
+
1108
+ * #### Responsive grid
1109
+
1110
+ ##### Description
1111
+
1112
+ Adaptive grid that automatically adjusts column count based on screen size.
1113
+
1114
+ ##### jsx
1115
+
1116
+ ```jsx
1117
+ <s-stack gap="base">
1118
+ <s-text type="strong">Narrow container (375px)</s-text>
1119
+ <s-box inlineSize="375px">
1120
+ <s-query-container>
1121
+ <s-grid
1122
+ gridTemplateColumns="@container (inline-size > 400px) 1fr 1fr 1fr, 1fr"
1123
+ gap="base"
1124
+ >
1125
+ <s-grid-item>
1126
+ <s-box padding="small" background="subdued">
1127
+ <s-text>Item 1</s-text>
1128
+ </s-box>
1129
+ </s-grid-item>
1130
+ <s-grid-item>
1131
+ <s-box padding="small" background="subdued">
1132
+ <s-text>Item 2</s-text>
1133
+ </s-box>
1134
+ </s-grid-item>
1135
+ <s-grid-item>
1136
+ <s-box padding="small" background="subdued">
1137
+ <s-text>Item 3</s-text>
1138
+ </s-box>
1139
+ </s-grid-item>
1140
+ </s-grid>
1141
+ </s-query-container>
1142
+ </s-box>
1143
+
1144
+ <s-text type="strong">Wide container (450px)</s-text>
1145
+ <s-box inlineSize="450px">
1146
+ <s-query-container>
1147
+ <s-grid
1148
+ gridTemplateColumns="@container (inline-size > 400px) 1fr 1fr 1fr, 1fr"
1149
+ gap="base"
1150
+ >
1151
+ <s-grid-item>
1152
+ <s-box padding="small" background="subdued">
1153
+ <s-text>Item 1</s-text>
1154
+ </s-box>
1155
+ </s-grid-item>
1156
+ <s-grid-item>
1157
+ <s-box padding="small" background="subdued">
1158
+ <s-text>Item 2</s-text>
1159
+ </s-box>
1160
+ </s-grid-item>
1161
+ <s-grid-item>
1162
+ <s-box padding="small" background="subdued">
1163
+ <s-text>Item 3</s-text>
1164
+ </s-box>
1165
+ </s-grid-item>
1166
+ </s-grid>
1167
+ </s-query-container>
1168
+ </s-box>
1169
+ </s-stack>
1170
+ ```
1171
+
1172
+ ##### html
1173
+
1174
+ ```html
1175
+ <s-stack gap="base">
1176
+ <s-text type="strong">Narrow container (375px)</s-text>
1177
+ <s-box inlineSize="375px">
1178
+ <s-query-container>
1179
+ <s-grid
1180
+ gridTemplateColumns="@container (inline-size > 400px) 1fr 1fr 1fr, 1fr"
1181
+ gap="base"
1182
+ >
1183
+ <s-grid-item>
1184
+ <s-box padding="small" background="subdued">
1185
+ <s-text>Item 1</s-text>
1186
+ </s-box>
1187
+ </s-grid-item>
1188
+ <s-grid-item>
1189
+ <s-box padding="small" background="subdued">
1190
+ <s-text>Item 2</s-text>
1191
+ </s-box>
1192
+ </s-grid-item>
1193
+ <s-grid-item>
1194
+ <s-box padding="small" background="subdued">
1195
+ <s-text>Item 3</s-text>
1196
+ </s-box>
1197
+ </s-grid-item>
1198
+ </s-grid>
1199
+ </s-query-container>
1200
+ </s-box>
1201
+
1202
+ <s-text type="strong">Wide container (450px)</s-text>
1203
+ <s-box inlineSize="450px">
1204
+ <s-query-container>
1205
+ <s-grid
1206
+ gridTemplateColumns="@container (inline-size > 400px) 1fr 1fr 1fr, 1fr"
1207
+ gap="base"
1208
+ >
1209
+ <s-grid-item>
1210
+ <s-box padding="small" background="subdued">
1211
+ <s-text>Item 1</s-text>
1212
+ </s-box>
1213
+ </s-grid-item>
1214
+ <s-grid-item>
1215
+ <s-box padding="small" background="subdued">
1216
+ <s-text>Item 2</s-text>
1217
+ </s-box>
1218
+ </s-grid-item>
1219
+ <s-grid-item>
1220
+ <s-box padding="small" background="subdued">
1221
+ <s-text>Item 3</s-text>
1222
+ </s-box>
1223
+ </s-grid-item>
1224
+ </s-grid>
1225
+ </s-query-container>
1226
+ </s-box>
1227
+ </s-stack>
1228
+ ```
1229
+
1230
+ ## Best practices
1231
+
1232
+ * Always configure layout properties when using Grid. At minimum, set gridTemplateColumns to define your column structure (e.g., repeat(12, 1fr) for a 12-column grid)
1233
+ * Use gap to add spacing between grid items rather than adding margins to individual items
1234
+ * Combine gridTemplateColumns with gridColumn on GridItem components to control how items span across columns
1235
+
1236
+ ## Useful for
1237
+
1238
+ * Building form layouts where you want more than one field on the same row.
1239
+ * Organizing content into a grid-like layout with columns and rows with consistent alignment and spacing.
1240
+ * Creating responsive layouts with consistent spacing.
1241
+
1242
+ ## Considerations
1243
+
1244
+ * Grid doesn't include any padding by default. If you need padding around your grid, use `base` to apply the default padding.
1245
+ * Grid will allow children to overflow unless template rows/columns are properly set.
1246
+ * Grid will always wrap children to a new line. If you need to control the wrapping behavior, use `s-stack` or `s-box`.