@react-ui-org/react-ui 0.52.1 → 0.54.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 (261) hide show
  1. package/README.md +10 -7
  2. package/dist/react-ui.css +5 -3
  3. package/dist/react-ui.development.css +11302 -0
  4. package/dist/react-ui.development.js +1588 -0
  5. package/dist/react-ui.js +1 -1
  6. package/package.json +66 -77
  7. package/src/{lib/components → components}/Alert/Alert.jsx +1 -1
  8. package/src/{lib/components/Alert/README.mdx → components/Alert/README.md} +84 -100
  9. package/src/{lib/components → components}/Badge/Badge.jsx +1 -1
  10. package/src/{lib/components → components}/Badge/Badge.scss +1 -1
  11. package/src/components/Badge/README.md +103 -0
  12. package/src/{lib/components → components}/Button/Button.jsx +1 -1
  13. package/src/components/Button/README.md +580 -0
  14. package/src/{lib/components → components}/ButtonGroup/ButtonGroup.jsx +11 -9
  15. package/src/{lib/components/ButtonGroup/README.mdx → components/ButtonGroup/README.md} +128 -134
  16. package/src/{lib/components → components}/Card/Card.jsx +1 -1
  17. package/src/components/Card/README.md +314 -0
  18. package/src/{lib/components/CheckboxField/README.mdx → components/CheckboxField/README.md} +96 -108
  19. package/src/{lib/components/FileInputField/README.mdx → components/FileInputField/README.md} +83 -95
  20. package/src/{lib/components → components}/FormLayout/FormLayout.jsx +4 -4
  21. package/src/components/FormLayout/README.md +462 -0
  22. package/src/{lib/components → components}/Grid/Grid.jsx +2 -2
  23. package/src/components/Grid/README.md +281 -0
  24. package/src/{lib/components → components}/InputGroup/InputGroup.jsx +28 -19
  25. package/src/{lib/components → components}/InputGroup/InputGroup.scss +4 -5
  26. package/src/{lib/components/InputGroup/README.mdx → components/InputGroup/README.md} +162 -165
  27. package/src/{lib/components → components}/Modal/Modal.jsx +6 -6
  28. package/src/components/Modal/README.md +1090 -0
  29. package/src/components/Modal/_hooks/useModalScrollPrevention.js +37 -0
  30. package/src/{lib/components/Paper/README.mdx → components/Paper/README.md} +18 -30
  31. package/src/{lib/components/Popover/README.mdx → components/Popover/README.md} +102 -132
  32. package/src/{lib/components/Radio/README.mdx → components/Radio/README.md} +122 -134
  33. package/src/{lib/components → components}/Radio/Radio.jsx +11 -12
  34. package/src/{lib/components → components}/Radio/Radio.scss +0 -5
  35. package/src/components/ScrollView/README.md +503 -0
  36. package/src/{lib/components → components}/ScrollView/ScrollView.jsx +12 -3
  37. package/src/components/SelectField/README.md +681 -0
  38. package/src/components/Table/README.md +259 -0
  39. package/src/{lib/components → components}/Table/Table.jsx +4 -1
  40. package/src/{lib/components → components}/Table/_components/TableHeaderCell/TableHeaderCell.jsx +1 -1
  41. package/src/{lib/components/Tabs/README.mdx → components/Tabs/README.md} +117 -134
  42. package/src/{lib/components → components}/Tabs/TabsItem.jsx +3 -3
  43. package/src/components/Text/README.md +220 -0
  44. package/src/components/TextArea/README.md +359 -0
  45. package/src/{lib/components/TextField/README.mdx → components/TextField/README.md} +336 -342
  46. package/src/{lib/components/TextLink/README.mdx → components/TextLink/README.md} +19 -31
  47. package/src/{lib/components/Toggle/README.mdx → components/Toggle/README.md} +98 -110
  48. package/src/components/Toolbar/README.md +359 -0
  49. package/src/{lib/components → components}/Toolbar/_helpers/getAlignClassName.js +12 -4
  50. package/src/components/_helpers/getRootPriorityClassName.js +15 -0
  51. package/src/{lib/index.js → index.js} +6 -0
  52. package/src/{lib/provider → provider}/RUIProvider.jsx +17 -11
  53. package/src/{lib/styles → styles}/tools/_caret.scss +1 -1
  54. package/src/{lib/styles → styles}/tools/form-fields/_box-field-elements.scss +1 -1
  55. package/src/{lib/styles → styles}/tools/form-fields/_inline-field-elements.scss +2 -2
  56. package/src/{lib/theme.scss → theme.scss} +4 -3
  57. package/CONTRIBUTING.md +0 -137
  58. package/dist/lib.development.js +0 -3179
  59. package/dist/lib.js +0 -1
  60. package/public/racom.svg +0 -11
  61. package/src/lib/components/Badge/README.mdx +0 -126
  62. package/src/lib/components/Button/README.mdx +0 -581
  63. package/src/lib/components/Card/README.mdx +0 -326
  64. package/src/lib/components/FormLayout/README.mdx +0 -501
  65. package/src/lib/components/Grid/README.mdx +0 -299
  66. package/src/lib/components/Modal/README.mdx +0 -1360
  67. package/src/lib/components/Modal/_hooks/useModalScrollPrevention.js +0 -35
  68. package/src/lib/components/ScrollView/README.mdx +0 -521
  69. package/src/lib/components/SelectField/README.mdx +0 -693
  70. package/src/lib/components/Table/README.mdx +0 -275
  71. package/src/lib/components/Text/README.mdx +0 -241
  72. package/src/lib/components/TextArea/README.mdx +0 -366
  73. package/src/lib/components/Toolbar/README.mdx +0 -386
  74. package/src/{lib/components → components}/Alert/Alert.scss +0 -0
  75. package/src/{lib/components → components}/Alert/_settings.scss +0 -0
  76. package/src/{lib/components → components}/Alert/_theme.scss +0 -0
  77. package/src/{lib/components → components}/Alert/_tools.scss +0 -0
  78. package/src/{lib/components → components}/Alert/index.js +0 -0
  79. package/src/{lib/components → components}/Badge/index.js +0 -0
  80. package/src/{lib/components → components}/Button/Button.scss +0 -0
  81. package/src/{lib/components → components}/Button/_base.scss +0 -0
  82. package/src/{lib/components → components}/Button/_priorities.scss +0 -0
  83. package/src/{lib/components → components}/Button/_settings.scss +0 -0
  84. package/src/{lib/components → components}/Button/_theme.scss +0 -0
  85. package/src/{lib/components → components}/Button/_tools.scss +0 -0
  86. package/src/{lib/components → components}/Button/helpers/getRootLabelVisibilityClassName.js +0 -0
  87. package/src/{lib/components/_helpers → components/Button/helpers}/getRootPriorityClassName.js +0 -0
  88. package/src/{lib/components → components}/Button/index.js +0 -0
  89. package/src/{lib/components → components}/ButtonGroup/ButtonGroup.scss +0 -0
  90. package/src/{lib/components → components}/ButtonGroup/ButtonGroupContext.js +0 -0
  91. package/src/{lib/components → components}/ButtonGroup/_theme.scss +0 -0
  92. package/src/{lib/components → components}/ButtonGroup/index.js +0 -0
  93. package/src/{lib/components → components}/Card/Card.scss +0 -0
  94. package/src/{lib/components → components}/Card/CardBody.jsx +0 -0
  95. package/src/{lib/components → components}/Card/CardFooter.jsx +0 -0
  96. package/src/{lib/components → components}/Card/_theme.scss +0 -0
  97. package/src/{lib/components → components}/Card/_tools.scss +0 -0
  98. package/src/{lib/components → components}/Card/index.js +0 -0
  99. package/src/{lib/components → components}/CheckboxField/CheckboxField.jsx +0 -0
  100. package/src/{lib/components → components}/CheckboxField/CheckboxField.scss +0 -0
  101. package/src/{lib/components → components}/CheckboxField/index.js +0 -0
  102. package/src/{lib/components → components}/FileInputField/FileInputField.jsx +0 -0
  103. package/src/{lib/components → components}/FileInputField/FileInputField.scss +0 -0
  104. package/src/{lib/components → components}/FileInputField/index.js +0 -0
  105. package/src/{lib/components → components}/FormLayout/FormLayout.scss +0 -0
  106. package/src/{lib/components → components}/FormLayout/FormLayoutContext.js +0 -0
  107. package/src/{lib/components → components}/FormLayout/FormLayoutCustomField.jsx +4 -4
  108. package/src/{lib/components → components}/FormLayout/FormLayoutCustomField.scss +0 -0
  109. package/src/{lib/components → components}/FormLayout/_theme.scss +0 -0
  110. package/src/{lib/components → components}/FormLayout/index.js +0 -0
  111. package/src/{lib/components → components}/Grid/Grid.scss +0 -0
  112. package/src/{lib/components → components}/Grid/GridSpan.jsx +0 -0
  113. package/src/{lib/components → components}/Grid/_helpers/generateResponsiveCustomProperties.js +0 -0
  114. package/src/{lib/components → components}/Grid/_settings.scss +0 -0
  115. package/src/{lib/components → components}/Grid/_tools.scss +0 -0
  116. package/src/{lib/components → components}/Grid/index.js +0 -0
  117. package/src/{lib/components → components}/InputGroup/InputGroupContext.js +0 -0
  118. package/src/{lib/components → components}/InputGroup/_theme.scss +0 -0
  119. package/src/{lib/components → components}/InputGroup/index.js +0 -0
  120. package/src/{lib/components → components}/Modal/Modal.scss +0 -0
  121. package/src/{lib/components → components}/Modal/ModalBody.jsx +0 -0
  122. package/src/{lib/components → components}/Modal/ModalBody.scss +0 -0
  123. package/src/{lib/components → components}/Modal/ModalCloseButton.jsx +1 -1
  124. package/src/{lib/components → components}/Modal/ModalCloseButton.scss +0 -0
  125. package/src/{lib/components → components}/Modal/ModalContent.jsx +0 -0
  126. package/src/{lib/components → components}/Modal/ModalContent.scss +0 -0
  127. package/src/{lib/components → components}/Modal/ModalFooter.jsx +0 -0
  128. package/src/{lib/components → components}/Modal/ModalFooter.scss +0 -0
  129. package/src/{lib/components → components}/Modal/ModalHeader.jsx +0 -0
  130. package/src/{lib/components → components}/Modal/ModalHeader.scss +0 -0
  131. package/src/{lib/components → components}/Modal/ModalTitle.jsx +0 -0
  132. package/src/{lib/components → components}/Modal/ModalTitle.scss +0 -0
  133. package/src/{lib/components → components}/Modal/_helpers/getJustifyClassName.js +0 -0
  134. package/src/{lib/components → components}/Modal/_helpers/getPositionClassName.js +0 -0
  135. package/src/{lib/components → components}/Modal/_helpers/getScrollingClassName.js +0 -0
  136. package/src/{lib/components → components}/Modal/_helpers/getSizeClassName.js +0 -0
  137. package/src/{lib/components → components}/Modal/_hooks/useModalFocus.js +0 -0
  138. package/src/{lib/components → components}/Modal/_settings.scss +0 -0
  139. package/src/{lib/components → components}/Modal/_theme.scss +0 -0
  140. package/src/{lib/components → components}/Modal/index.js +0 -0
  141. package/src/{lib/components → components}/Paper/Paper.jsx +0 -0
  142. package/src/{lib/components → components}/Paper/Paper.scss +0 -0
  143. package/src/{lib/components → components}/Paper/_theme.scss +0 -0
  144. package/src/{lib/components → components}/Paper/index.js +0 -0
  145. package/src/{lib/components → components}/Popover/Popover.jsx +0 -0
  146. package/src/{lib/components → components}/Popover/Popover.scss +0 -0
  147. package/src/{lib/components → components}/Popover/PopoverWrapper.jsx +0 -0
  148. package/src/{lib/components → components}/Popover/PopoverWrapper.scss +0 -0
  149. package/src/{lib/components → components}/Popover/_helpers/getRootAlignmentClassName.js +0 -0
  150. package/src/{lib/components → components}/Popover/_helpers/getRootSideClassName.js +0 -0
  151. package/src/{lib/components → components}/Popover/_theme.scss +0 -0
  152. package/src/{lib/components → components}/Popover/index.js +0 -0
  153. package/src/{lib/components → components}/Radio/index.js +0 -0
  154. package/src/{lib/components → components}/ScrollView/ScrollView.scss +0 -0
  155. package/src/{lib/components → components}/ScrollView/_helpers/getElementsPositionDifference.js +0 -0
  156. package/src/{lib/components → components}/ScrollView/_hooks/useLoadResizeHook.js +0 -0
  157. package/src/{lib/components → components}/ScrollView/_hooks/useScrollPositionHook.js +0 -0
  158. package/src/{lib/components → components}/ScrollView/index.js +0 -0
  159. package/src/{lib/components → components}/SelectField/SelectField.jsx +0 -0
  160. package/src/{lib/components → components}/SelectField/SelectField.scss +0 -0
  161. package/src/{lib/components → components}/SelectField/_components/Option/Option.jsx +0 -0
  162. package/src/{lib/components → components}/SelectField/_components/Option/index.js +0 -0
  163. package/src/{lib/components → components}/SelectField/index.js +0 -0
  164. package/src/{lib/components → components}/Table/Table.scss +0 -0
  165. package/src/{lib/components → components}/Table/_components/TableBodyCell/TableBodyCell.jsx +0 -0
  166. package/src/{lib/components → components}/Table/_components/TableBodyCell/index.js +0 -0
  167. package/src/{lib/components → components}/Table/_components/TableCell.scss +0 -0
  168. package/src/{lib/components → components}/Table/_components/TableHeaderCell/index.js +0 -0
  169. package/src/{lib/components → components}/Table/_settings.scss +0 -0
  170. package/src/{lib/components → components}/Table/index.js +0 -0
  171. package/src/{lib/components → components}/Tabs/Tabs.jsx +0 -0
  172. package/src/{lib/components → components}/Tabs/Tabs.scss +0 -0
  173. package/src/{lib/components → components}/Tabs/TabsItem.scss +0 -0
  174. package/src/{lib/components → components}/Tabs/_theme.scss +0 -0
  175. package/src/{lib/components → components}/Tabs/index.js +0 -0
  176. package/src/{lib/components → components}/Text/Text.jsx +0 -0
  177. package/src/{lib/components → components}/Text/Text.scss +0 -0
  178. package/src/{lib/components → components}/Text/_helpers/getRootClampClassName.js +0 -0
  179. package/src/{lib/components → components}/Text/_helpers/getRootHyphensClassName.js +0 -0
  180. package/src/{lib/components → components}/Text/_helpers/getRootWordWrappingClassName.js +0 -0
  181. package/src/{lib/components → components}/Text/index.js +0 -0
  182. package/src/{lib/components → components}/TextArea/TextArea.jsx +0 -0
  183. package/src/{lib/components → components}/TextArea/TextArea.scss +0 -0
  184. package/src/{lib/components → components}/TextArea/index.js +0 -0
  185. package/src/{lib/components → components}/TextField/TextField.jsx +0 -0
  186. package/src/{lib/components → components}/TextField/TextField.scss +0 -0
  187. package/src/{lib/components → components}/TextField/index.js +0 -0
  188. package/src/{lib/components → components}/TextLink/TextLink.jsx +1 -1
  189. /package/src/{lib/components → components}/TextLink/TextLink.scss +0 -0
  190. /package/src/{lib/components → components}/TextLink/_theme.scss +0 -0
  191. /package/src/{lib/components → components}/TextLink/index.js +0 -0
  192. /package/src/{lib/components → components}/Toggle/Toggle.jsx +0 -0
  193. /package/src/{lib/components → components}/Toggle/Toggle.scss +0 -0
  194. /package/src/{lib/components → components}/Toggle/index.js +0 -0
  195. /package/src/{lib/components → components}/Toolbar/Toolbar.jsx +0 -0
  196. /package/src/{lib/components → components}/Toolbar/Toolbar.scss +0 -0
  197. /package/src/{lib/components → components}/Toolbar/ToolbarGroup.jsx +0 -0
  198. /package/src/{lib/components → components}/Toolbar/ToolbarItem.jsx +0 -0
  199. /package/src/{lib/components → components}/Toolbar/_helpers/getJustifyClassName.js +0 -0
  200. /package/src/{lib/components → components}/Toolbar/_theme.scss +0 -0
  201. /package/src/{lib/components → components}/Toolbar/index.js +0 -0
  202. /package/src/{lib/components → components}/_helpers/getRootColorClassName.js +0 -0
  203. /package/src/{lib/components → components}/_helpers/getRootSizeClassName.js +0 -0
  204. /package/src/{lib/components → components}/_helpers/getRootValidationStateClassName.js +0 -0
  205. /package/src/{lib/components → components}/_helpers/isChildrenEmpty.js +0 -0
  206. /package/src/{lib/components → components}/_helpers/resolveContextOrProp.js +0 -0
  207. /package/src/{lib/components → components}/_helpers/transferProps.js +0 -0
  208. /package/src/{lib/foundation.scss → foundation.scss} +0 -0
  209. /package/src/{lib/helpers.scss → helpers.scss} +0 -0
  210. /package/src/{lib/provider → provider}/RUIContext.jsx +0 -0
  211. /package/src/{lib/provider → provider}/index.js +0 -0
  212. /package/src/{lib/provider → provider}/withGlobalProps.jsx +0 -0
  213. /package/src/{lib/styles → styles}/_utilities.scss +0 -0
  214. /package/src/{lib/styles → styles}/elements/_code.scss +0 -0
  215. /package/src/{lib/styles → styles}/elements/_links.scss +0 -0
  216. /package/src/{lib/styles → styles}/elements/_lists.scss +0 -0
  217. /package/src/{lib/styles → styles}/elements/_page.scss +0 -0
  218. /package/src/{lib/styles → styles}/elements/_rulers.scss +0 -0
  219. /package/src/{lib/styles → styles}/elements/_small.scss +0 -0
  220. /package/src/{lib/styles → styles}/generic/_box-sizing.scss +0 -0
  221. /package/src/{lib/styles → styles}/generic/_focus.scss +0 -0
  222. /package/src/{lib/styles → styles}/generic/_forms.scss +0 -0
  223. /package/src/{lib/styles → styles}/generic/_reset.scss +0 -0
  224. /package/src/{lib/styles → styles}/generic/_shared.scss +0 -0
  225. /package/src/{lib/styles → styles}/helpers/_animation.scss +0 -0
  226. /package/src/{lib/styles → styles}/settings/_animations.scss +0 -0
  227. /package/src/{lib/styles → styles}/settings/_breakpoints.scss +0 -0
  228. /package/src/{lib/styles → styles}/settings/_escaped-characters.scss +0 -0
  229. /package/src/{lib/styles → styles}/settings/_form-fields.scss +0 -0
  230. /package/src/{lib/styles → styles}/settings/_forms.scss +0 -0
  231. /package/src/{lib/styles → styles}/settings/_utilities.scss +0 -0
  232. /package/src/{lib/styles → styles}/settings/_z-indexes.scss +0 -0
  233. /package/src/{lib/styles → styles}/theme/_accessibility.scss +0 -0
  234. /package/src/{lib/styles → styles}/theme/_borders.scss +0 -0
  235. /package/src/{lib/styles → styles}/theme/_code.scss +0 -0
  236. /package/src/{lib/styles → styles}/theme/_form-fields.scss +0 -0
  237. /package/src/{lib/styles → styles}/theme/_links.scss +0 -0
  238. /package/src/{lib/styles → styles}/theme/_lists.scss +0 -0
  239. /package/src/{lib/styles → styles}/theme/_page.scss +0 -0
  240. /package/src/{lib/styles → styles}/theme/_spacing.scss +0 -0
  241. /package/src/{lib/styles → styles}/theme/_typography.scss +0 -0
  242. /package/src/{lib/styles → styles}/theme-constants/_breakpoints.scss +0 -0
  243. /package/src/{lib/styles → styles}/theme-constants/_colors.scss +0 -0
  244. /package/src/{lib/styles → styles}/theme-constants/_svg.scss +0 -0
  245. /package/src/{lib/styles → styles}/tools/_accessibility.scss +0 -0
  246. /package/src/{lib/styles → styles}/tools/_breakpoint.scss +0 -0
  247. /package/src/{lib/styles → styles}/tools/_colors.scss +0 -0
  248. /package/src/{lib/styles → styles}/tools/_reset.scss +0 -0
  249. /package/src/{lib/styles → styles}/tools/_scrollbar.scss +0 -0
  250. /package/src/{lib/styles → styles}/tools/_spacing.scss +0 -0
  251. /package/src/{lib/styles → styles}/tools/_string.scss +0 -0
  252. /package/src/{lib/styles → styles}/tools/_svg.scss +0 -0
  253. /package/src/{lib/styles → styles}/tools/_transition.scss +0 -0
  254. /package/src/{lib/styles → styles}/tools/_utilities.scss +0 -0
  255. /package/src/{lib/styles → styles}/tools/form-fields/_box-field-layout.scss +0 -0
  256. /package/src/{lib/styles → styles}/tools/form-fields/_box-field-sizes.scss +0 -0
  257. /package/src/{lib/styles → styles}/tools/form-fields/_foundation.scss +0 -0
  258. /package/src/{lib/styles → styles}/tools/form-fields/_inline-field-layout.scss +0 -0
  259. /package/src/{lib/styles → styles}/tools/form-fields/_variants.scss +0 -0
  260. /package/src/{lib/translations → translations}/en.js +0 -0
  261. /package/src/{lib/utils → utils}/classNames.js +0 -0
@@ -1,299 +0,0 @@
1
- ---
2
- name: Grid
3
- menu: 'Layouts'
4
- route: /components/grid
5
- ---
6
-
7
- # Grid
8
-
9
- import {
10
- Playground,
11
- Props,
12
- } from 'docz'
13
- import { Placeholder } from '../../../docs/_components/Placeholder/Placeholder'
14
- import {
15
- Grid,
16
- GridSpan,
17
- } from '../..'
18
-
19
- The responsive Grid layout aligns content into an organized grid.
20
-
21
- ## Basic Usage
22
-
23
- To implement the Grid component, you need to import it first:
24
-
25
- ```js
26
- import { Grid } from '@react-ui-org/react-ui';
27
- ```
28
-
29
- And use it:
30
-
31
- <Playground>
32
- <Grid>
33
- <Placeholder bordered>Grid item</Placeholder>
34
- <Placeholder bordered>Grid item</Placeholder>
35
- <Placeholder bordered>Grid item</Placeholder>
36
- </Grid>
37
- </Playground>
38
-
39
- See [API](#api) for all available options.
40
-
41
- ## General Guidelines
42
-
43
- - This component implements the native [CSS grid layout][grid-layout], a
44
- powerful tool for two-dimensional layouts. You may use any value accepted by
45
- [grid-template-columns], [grid-template-rows], [grid-auto-flow],
46
- [align-content], [align-items], [justify-content], [justify-items], and CSS
47
- properties in corresponding API options of the component.
48
-
49
- - To align your items in the grid, **simply wrap** them with the Grid
50
- component. Unlike other grid frameworks and UI libraries, **no additional
51
- markup** like GridItem or Cell is necessary for your items. But it's there
52
- when you really need it—see [Advanced Layouts](#advanced-layouts).
53
-
54
- - For forms, use rather the [FormLayout](/components/form-layout) component
55
- which is designed specifically for that purpose.
56
-
57
- - The Grid component is so powerful that it enables you to build even very
58
- advanced layouts **without** having to write **a single line of custom CSS.**
59
- See [Advanced Layouts](#advanced-layouts) for more.
60
-
61
- 👉 Vertical margin of items inside Grid is reset to zero.
62
-
63
- ## Columns
64
-
65
- Stack is the default outcome of Grid. Use the `columns` option to organize your
66
- items into a grid.
67
-
68
- <Playground>
69
- <Grid columns="1fr 1fr 1fr">
70
- <Placeholder bordered>Grid item</Placeholder>
71
- <Placeholder bordered>Grid item</Placeholder>
72
- <Placeholder bordered>Grid item</Placeholder>
73
- <Placeholder bordered>Grid item</Placeholder>
74
- <Placeholder bordered>Grid item</Placeholder>
75
- <Placeholder bordered>Grid item</Placeholder>
76
- </Grid>
77
- </Playground>
78
-
79
- You can use the [`repeat()`][repeat] function to specify a recurring pattern.
80
-
81
- <Playground>
82
- <Grid columns="repeat(3, 1fr)">
83
- <Placeholder bordered>Grid item</Placeholder>
84
- <Placeholder bordered>Grid item</Placeholder>
85
- <Placeholder bordered>Grid item</Placeholder>
86
- <Placeholder bordered>Grid item</Placeholder>
87
- <Placeholder bordered>Grid item</Placeholder>
88
- <Placeholder bordered>Grid item</Placeholder>
89
- </Grid>
90
- </Playground>
91
-
92
- Combine `repeat()` with `auto-fit` and [`minmax()`][minmax] to build automatic
93
- responsive layouts.
94
-
95
- 📐 Try resizing the playground to see it in action.
96
-
97
- <Playground>
98
- <Grid columns="repeat(auto-fit, minmax(200px, auto))">
99
- <Placeholder bordered>Grid item</Placeholder>
100
- <Placeholder bordered>Grid item</Placeholder>
101
- <Placeholder bordered>Grid item</Placeholder>
102
- <Placeholder bordered>Grid item</Placeholder>
103
- <Placeholder bordered>Grid item</Placeholder>
104
- <Placeholder bordered>Grid item</Placeholder>
105
- </Grid>
106
- </Playground>
107
-
108
- 👉 If you need your items to have **equal height** even with the content of
109
- varying lengths, it may be necessary to set `height: 100%` on them.
110
-
111
- ## Rows
112
-
113
- Use `columns` and `rows` to specify a more complicated grid layout.
114
-
115
- <Playground>
116
- <Grid columns="1fr 2fr" rows="auto 200px auto">
117
- <Placeholder bordered>Grid item</Placeholder>
118
- <Placeholder bordered>Grid item</Placeholder>
119
- <Placeholder bordered>Grid item</Placeholder>
120
- <Placeholder bordered>Grid item</Placeholder>
121
- <Placeholder bordered>Grid item</Placeholder>
122
- <Placeholder bordered>Grid item</Placeholder>
123
- </Grid>
124
- </Playground>
125
-
126
- ## Gaps
127
-
128
- Both column and row gaps can be customized. The value must correspond to any of
129
- [available spacings](/foundation/spacing).
130
-
131
- <Playground>
132
- <Grid columns="repeat(3, 1fr)" columnGap={2} rowGap={6}>
133
- <Placeholder bordered>Grid item</Placeholder>
134
- <Placeholder bordered>Grid item</Placeholder>
135
- <Placeholder bordered>Grid item</Placeholder>
136
- <Placeholder bordered>Grid item</Placeholder>
137
- <Placeholder bordered>Grid item</Placeholder>
138
- <Placeholder bordered>Grid item</Placeholder>
139
- </Grid>
140
- </Playground>
141
-
142
- ## Alignment
143
-
144
- Individual items and the entire grid content can be aligned along both axes.
145
-
146
- <Playground>
147
- <Grid
148
- columns="repeat(3, 10em)"
149
- alignItems="center"
150
- justifyItems="center"
151
- justifyContent="center"
152
- >
153
- <Placeholder bordered>Grid item</Placeholder>
154
- <Placeholder bordered>Grid item<br /> with two lines</Placeholder>
155
- <Placeholder bordered>Grid item</Placeholder>
156
- <Placeholder bordered>Grid item</Placeholder>
157
- <Placeholder bordered>Grid item</Placeholder>
158
- <Placeholder bordered>Grid item</Placeholder>
159
- </Grid>
160
- </Playground>
161
-
162
- ## Custom HTML Tag
163
-
164
- To render as a list, for example, just change the output `tag` to `ul` or `ol`
165
- and wrap your items with `<li>`.
166
-
167
- <Playground>
168
- <Grid tag="ul">
169
- <li>
170
- <Placeholder bordered>List item</Placeholder>
171
- </li>
172
- <li>
173
- <Placeholder bordered>List item</Placeholder>
174
- </li>
175
- <li>
176
- <Placeholder bordered>List item</Placeholder>
177
- </li>
178
- </Grid>
179
- </Playground>
180
-
181
- ## Media Queries
182
-
183
- If you need to build more complicated layouts, you have full control over the
184
- grid definition. Just specify your grid layout for
185
- [breakpoints](/foundation/breakpoints) where a change of layout is needed.
186
- The Grid component is written with the mobile-first approach so values for small
187
- breakpoints are used until they're overridden by a bigger breakpoint.
188
-
189
- 👉 With this syntax there are no defaults for individual breakpoints.
190
-
191
- 📐 Try resizing your browser to see how it works.
192
-
193
- <Playground>
194
- <Grid
195
- columns={{
196
- xs: '1fr',
197
- md: '1fr 2fr',
198
- }}
199
- columnGap={{
200
- xs: 4,
201
- md: 2,
202
- lg: 4,
203
- }}
204
- rows={{
205
- xs: 'auto auto 200px 200px',
206
- md: 'auto 200px auto',
207
- }}
208
- rowGap={{
209
- xs: 3,
210
- md: 4,
211
- }}
212
- >
213
- <Placeholder bordered>Grid item</Placeholder>
214
- <Placeholder bordered>Grid item</Placeholder>
215
- <Placeholder bordered>Grid item</Placeholder>
216
- <Placeholder bordered>Grid item</Placeholder>
217
- <Placeholder bordered>Grid item</Placeholder>
218
- <Placeholder bordered>Grid item</Placeholder>
219
- </Grid>
220
- </Playground>
221
-
222
- ## Advanced Layouts
223
-
224
- Wrap your content with the GridSpan component to span it over multiple
225
- columns or rows. Use the `autoFlow` option to control the layout when combined
226
- with responsive columns and rows.
227
-
228
- <Playground>
229
- <Grid
230
- autoFlow={{
231
- xs: 'row dense',
232
- sm: 'column',
233
- }}
234
- columns={{
235
- xs: 'repeat(2, 1fr)',
236
- sm: 'repeat(4, 1fr)',
237
- }}
238
- rows={{
239
- xs: 'repeat(8, 50px)',
240
- sm: 'auto 100px auto auto',
241
- }}
242
- >
243
- <Placeholder bordered>Grid item 1</Placeholder>
244
- <Placeholder bordered>Grid item 2</Placeholder>
245
- <Placeholder bordered>Grid item 3</Placeholder>
246
- <Placeholder bordered>Grid item 4</Placeholder>
247
- <Placeholder bordered>Grid item 5</Placeholder>
248
- <GridSpan columns={2} rows={2}>
249
- <Placeholder bordered height="100%">
250
- Grid item spanning over two lines and two rows
251
- </Placeholder>
252
- </GridSpan>
253
- <Placeholder bordered>Grid item 6</Placeholder>
254
- <Placeholder bordered>Grid item 7</Placeholder>
255
- <Placeholder bordered>Grid item 8</Placeholder>
256
- <Placeholder bordered>Grid item 9</Placeholder>
257
- <Placeholder bordered>Grid item 10</Placeholder>
258
- <Placeholder bordered>Grid item 11</Placeholder>
259
- <Placeholder bordered>Grid item 12</Placeholder>
260
- </Grid>
261
- </Playground>
262
-
263
- 👉 `autoFlow` (used in the example above) implements the `grid-auto-flow` CSS
264
- property. Check [MDN][grid-auto-flow] to fully understand available options.
265
-
266
- ## Forwarding HTML Attributes
267
-
268
- In addition to the options below in the [component's API](#api) section, you
269
- can specify [React synthetic events] or **any HTML attribute you like.** All
270
- attributes that don't interfere with the API are forwarded to the HTML element
271
- of your choice provided by `tag`, which is `<div>` by default. It enables making
272
- the component interactive and helps to improve its accessibility.
273
-
274
- 👉 Refer to the MDN reference for the full list of supported attributes of the
275
- [div] element or [any other][all-html-elements] element of your choice.
276
-
277
- ## API
278
-
279
- <Props table of={Grid} />
280
-
281
- ### GridSpan API
282
-
283
- Wrapper for content that should span multiple rows or columns.
284
-
285
- <Props table of={GridSpan} />
286
-
287
- [grid-layout]: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout
288
- [grid-template-columns]: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns
289
- [grid-template-rows]: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows
290
- [grid-auto-flow]: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow
291
- [align-content]: https://developer.mozilla.org/en-US/docs/Web/CSS/align-content
292
- [align-items]: https://developer.mozilla.org/en-US/docs/Web/CSS/align-items
293
- [justify-content]: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content
294
- [justify-items]: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items
295
- [repeat]: https://developer.mozilla.org/en-US/docs/Web/CSS/repeat
296
- [minmax]: https://developer.mozilla.org/en-US/docs/Web/CSS/minmax
297
- [React synthetic events]: https://reactjs.org/docs/events.html
298
- [div]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/div#attributes
299
- [all-html-elements]: https://developer.mozilla.org/en-US/docs/Web/HTML/Element