@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.
- package/README.md +10 -7
- package/dist/react-ui.css +5 -3
- package/dist/react-ui.development.css +11302 -0
- package/dist/react-ui.development.js +1588 -0
- package/dist/react-ui.js +1 -1
- package/package.json +66 -77
- package/src/{lib/components → components}/Alert/Alert.jsx +1 -1
- package/src/{lib/components/Alert/README.mdx → components/Alert/README.md} +84 -100
- package/src/{lib/components → components}/Badge/Badge.jsx +1 -1
- package/src/{lib/components → components}/Badge/Badge.scss +1 -1
- package/src/components/Badge/README.md +103 -0
- package/src/{lib/components → components}/Button/Button.jsx +1 -1
- package/src/components/Button/README.md +580 -0
- package/src/{lib/components → components}/ButtonGroup/ButtonGroup.jsx +11 -9
- package/src/{lib/components/ButtonGroup/README.mdx → components/ButtonGroup/README.md} +128 -134
- package/src/{lib/components → components}/Card/Card.jsx +1 -1
- package/src/components/Card/README.md +314 -0
- package/src/{lib/components/CheckboxField/README.mdx → components/CheckboxField/README.md} +96 -108
- package/src/{lib/components/FileInputField/README.mdx → components/FileInputField/README.md} +83 -95
- package/src/{lib/components → components}/FormLayout/FormLayout.jsx +4 -4
- package/src/components/FormLayout/README.md +462 -0
- package/src/{lib/components → components}/Grid/Grid.jsx +2 -2
- package/src/components/Grid/README.md +281 -0
- package/src/{lib/components → components}/InputGroup/InputGroup.jsx +28 -19
- package/src/{lib/components → components}/InputGroup/InputGroup.scss +4 -5
- package/src/{lib/components/InputGroup/README.mdx → components/InputGroup/README.md} +162 -165
- package/src/{lib/components → components}/Modal/Modal.jsx +6 -6
- package/src/components/Modal/README.md +1090 -0
- package/src/components/Modal/_hooks/useModalScrollPrevention.js +37 -0
- package/src/{lib/components/Paper/README.mdx → components/Paper/README.md} +18 -30
- package/src/{lib/components/Popover/README.mdx → components/Popover/README.md} +102 -132
- package/src/{lib/components/Radio/README.mdx → components/Radio/README.md} +122 -134
- package/src/{lib/components → components}/Radio/Radio.jsx +11 -12
- package/src/{lib/components → components}/Radio/Radio.scss +0 -5
- package/src/components/ScrollView/README.md +503 -0
- package/src/{lib/components → components}/ScrollView/ScrollView.jsx +12 -3
- package/src/components/SelectField/README.md +681 -0
- package/src/components/Table/README.md +259 -0
- package/src/{lib/components → components}/Table/Table.jsx +4 -1
- package/src/{lib/components → components}/Table/_components/TableHeaderCell/TableHeaderCell.jsx +1 -1
- package/src/{lib/components/Tabs/README.mdx → components/Tabs/README.md} +117 -134
- package/src/{lib/components → components}/Tabs/TabsItem.jsx +3 -3
- package/src/components/Text/README.md +220 -0
- package/src/components/TextArea/README.md +359 -0
- package/src/{lib/components/TextField/README.mdx → components/TextField/README.md} +336 -342
- package/src/{lib/components/TextLink/README.mdx → components/TextLink/README.md} +19 -31
- package/src/{lib/components/Toggle/README.mdx → components/Toggle/README.md} +98 -110
- package/src/components/Toolbar/README.md +359 -0
- package/src/{lib/components → components}/Toolbar/_helpers/getAlignClassName.js +12 -4
- package/src/components/_helpers/getRootPriorityClassName.js +15 -0
- package/src/{lib/index.js → index.js} +6 -0
- package/src/{lib/provider → provider}/RUIProvider.jsx +17 -11
- package/src/{lib/styles → styles}/tools/_caret.scss +1 -1
- package/src/{lib/styles → styles}/tools/form-fields/_box-field-elements.scss +1 -1
- package/src/{lib/styles → styles}/tools/form-fields/_inline-field-elements.scss +2 -2
- package/src/{lib/theme.scss → theme.scss} +4 -3
- package/CONTRIBUTING.md +0 -137
- package/dist/lib.development.js +0 -3179
- package/dist/lib.js +0 -1
- package/public/racom.svg +0 -11
- package/src/lib/components/Badge/README.mdx +0 -126
- package/src/lib/components/Button/README.mdx +0 -581
- package/src/lib/components/Card/README.mdx +0 -326
- package/src/lib/components/FormLayout/README.mdx +0 -501
- package/src/lib/components/Grid/README.mdx +0 -299
- package/src/lib/components/Modal/README.mdx +0 -1360
- package/src/lib/components/Modal/_hooks/useModalScrollPrevention.js +0 -35
- package/src/lib/components/ScrollView/README.mdx +0 -521
- package/src/lib/components/SelectField/README.mdx +0 -693
- package/src/lib/components/Table/README.mdx +0 -275
- package/src/lib/components/Text/README.mdx +0 -241
- package/src/lib/components/TextArea/README.mdx +0 -366
- package/src/lib/components/Toolbar/README.mdx +0 -386
- package/src/{lib/components → components}/Alert/Alert.scss +0 -0
- package/src/{lib/components → components}/Alert/_settings.scss +0 -0
- package/src/{lib/components → components}/Alert/_theme.scss +0 -0
- package/src/{lib/components → components}/Alert/_tools.scss +0 -0
- package/src/{lib/components → components}/Alert/index.js +0 -0
- package/src/{lib/components → components}/Badge/index.js +0 -0
- package/src/{lib/components → components}/Button/Button.scss +0 -0
- package/src/{lib/components → components}/Button/_base.scss +0 -0
- package/src/{lib/components → components}/Button/_priorities.scss +0 -0
- package/src/{lib/components → components}/Button/_settings.scss +0 -0
- package/src/{lib/components → components}/Button/_theme.scss +0 -0
- package/src/{lib/components → components}/Button/_tools.scss +0 -0
- package/src/{lib/components → components}/Button/helpers/getRootLabelVisibilityClassName.js +0 -0
- package/src/{lib/components/_helpers → components/Button/helpers}/getRootPriorityClassName.js +0 -0
- package/src/{lib/components → components}/Button/index.js +0 -0
- package/src/{lib/components → components}/ButtonGroup/ButtonGroup.scss +0 -0
- package/src/{lib/components → components}/ButtonGroup/ButtonGroupContext.js +0 -0
- package/src/{lib/components → components}/ButtonGroup/_theme.scss +0 -0
- package/src/{lib/components → components}/ButtonGroup/index.js +0 -0
- package/src/{lib/components → components}/Card/Card.scss +0 -0
- package/src/{lib/components → components}/Card/CardBody.jsx +0 -0
- package/src/{lib/components → components}/Card/CardFooter.jsx +0 -0
- package/src/{lib/components → components}/Card/_theme.scss +0 -0
- package/src/{lib/components → components}/Card/_tools.scss +0 -0
- package/src/{lib/components → components}/Card/index.js +0 -0
- package/src/{lib/components → components}/CheckboxField/CheckboxField.jsx +0 -0
- package/src/{lib/components → components}/CheckboxField/CheckboxField.scss +0 -0
- package/src/{lib/components → components}/CheckboxField/index.js +0 -0
- package/src/{lib/components → components}/FileInputField/FileInputField.jsx +0 -0
- package/src/{lib/components → components}/FileInputField/FileInputField.scss +0 -0
- package/src/{lib/components → components}/FileInputField/index.js +0 -0
- package/src/{lib/components → components}/FormLayout/FormLayout.scss +0 -0
- package/src/{lib/components → components}/FormLayout/FormLayoutContext.js +0 -0
- package/src/{lib/components → components}/FormLayout/FormLayoutCustomField.jsx +4 -4
- package/src/{lib/components → components}/FormLayout/FormLayoutCustomField.scss +0 -0
- package/src/{lib/components → components}/FormLayout/_theme.scss +0 -0
- package/src/{lib/components → components}/FormLayout/index.js +0 -0
- package/src/{lib/components → components}/Grid/Grid.scss +0 -0
- package/src/{lib/components → components}/Grid/GridSpan.jsx +0 -0
- package/src/{lib/components → components}/Grid/_helpers/generateResponsiveCustomProperties.js +0 -0
- package/src/{lib/components → components}/Grid/_settings.scss +0 -0
- package/src/{lib/components → components}/Grid/_tools.scss +0 -0
- package/src/{lib/components → components}/Grid/index.js +0 -0
- package/src/{lib/components → components}/InputGroup/InputGroupContext.js +0 -0
- package/src/{lib/components → components}/InputGroup/_theme.scss +0 -0
- package/src/{lib/components → components}/InputGroup/index.js +0 -0
- package/src/{lib/components → components}/Modal/Modal.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalBody.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalBody.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalCloseButton.jsx +1 -1
- package/src/{lib/components → components}/Modal/ModalCloseButton.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalContent.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalContent.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalFooter.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalFooter.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalHeader.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalHeader.scss +0 -0
- package/src/{lib/components → components}/Modal/ModalTitle.jsx +0 -0
- package/src/{lib/components → components}/Modal/ModalTitle.scss +0 -0
- package/src/{lib/components → components}/Modal/_helpers/getJustifyClassName.js +0 -0
- package/src/{lib/components → components}/Modal/_helpers/getPositionClassName.js +0 -0
- package/src/{lib/components → components}/Modal/_helpers/getScrollingClassName.js +0 -0
- package/src/{lib/components → components}/Modal/_helpers/getSizeClassName.js +0 -0
- package/src/{lib/components → components}/Modal/_hooks/useModalFocus.js +0 -0
- package/src/{lib/components → components}/Modal/_settings.scss +0 -0
- package/src/{lib/components → components}/Modal/_theme.scss +0 -0
- package/src/{lib/components → components}/Modal/index.js +0 -0
- package/src/{lib/components → components}/Paper/Paper.jsx +0 -0
- package/src/{lib/components → components}/Paper/Paper.scss +0 -0
- package/src/{lib/components → components}/Paper/_theme.scss +0 -0
- package/src/{lib/components → components}/Paper/index.js +0 -0
- package/src/{lib/components → components}/Popover/Popover.jsx +0 -0
- package/src/{lib/components → components}/Popover/Popover.scss +0 -0
- package/src/{lib/components → components}/Popover/PopoverWrapper.jsx +0 -0
- package/src/{lib/components → components}/Popover/PopoverWrapper.scss +0 -0
- package/src/{lib/components → components}/Popover/_helpers/getRootAlignmentClassName.js +0 -0
- package/src/{lib/components → components}/Popover/_helpers/getRootSideClassName.js +0 -0
- package/src/{lib/components → components}/Popover/_theme.scss +0 -0
- package/src/{lib/components → components}/Popover/index.js +0 -0
- package/src/{lib/components → components}/Radio/index.js +0 -0
- package/src/{lib/components → components}/ScrollView/ScrollView.scss +0 -0
- package/src/{lib/components → components}/ScrollView/_helpers/getElementsPositionDifference.js +0 -0
- package/src/{lib/components → components}/ScrollView/_hooks/useLoadResizeHook.js +0 -0
- package/src/{lib/components → components}/ScrollView/_hooks/useScrollPositionHook.js +0 -0
- package/src/{lib/components → components}/ScrollView/index.js +0 -0
- package/src/{lib/components → components}/SelectField/SelectField.jsx +0 -0
- package/src/{lib/components → components}/SelectField/SelectField.scss +0 -0
- package/src/{lib/components → components}/SelectField/_components/Option/Option.jsx +0 -0
- package/src/{lib/components → components}/SelectField/_components/Option/index.js +0 -0
- package/src/{lib/components → components}/SelectField/index.js +0 -0
- package/src/{lib/components → components}/Table/Table.scss +0 -0
- package/src/{lib/components → components}/Table/_components/TableBodyCell/TableBodyCell.jsx +0 -0
- package/src/{lib/components → components}/Table/_components/TableBodyCell/index.js +0 -0
- package/src/{lib/components → components}/Table/_components/TableCell.scss +0 -0
- package/src/{lib/components → components}/Table/_components/TableHeaderCell/index.js +0 -0
- package/src/{lib/components → components}/Table/_settings.scss +0 -0
- package/src/{lib/components → components}/Table/index.js +0 -0
- package/src/{lib/components → components}/Tabs/Tabs.jsx +0 -0
- package/src/{lib/components → components}/Tabs/Tabs.scss +0 -0
- package/src/{lib/components → components}/Tabs/TabsItem.scss +0 -0
- package/src/{lib/components → components}/Tabs/_theme.scss +0 -0
- package/src/{lib/components → components}/Tabs/index.js +0 -0
- package/src/{lib/components → components}/Text/Text.jsx +0 -0
- package/src/{lib/components → components}/Text/Text.scss +0 -0
- package/src/{lib/components → components}/Text/_helpers/getRootClampClassName.js +0 -0
- package/src/{lib/components → components}/Text/_helpers/getRootHyphensClassName.js +0 -0
- package/src/{lib/components → components}/Text/_helpers/getRootWordWrappingClassName.js +0 -0
- package/src/{lib/components → components}/Text/index.js +0 -0
- package/src/{lib/components → components}/TextArea/TextArea.jsx +0 -0
- package/src/{lib/components → components}/TextArea/TextArea.scss +0 -0
- package/src/{lib/components → components}/TextArea/index.js +0 -0
- package/src/{lib/components → components}/TextField/TextField.jsx +0 -0
- package/src/{lib/components → components}/TextField/TextField.scss +0 -0
- package/src/{lib/components → components}/TextField/index.js +0 -0
- package/src/{lib/components → components}/TextLink/TextLink.jsx +1 -1
- /package/src/{lib/components → components}/TextLink/TextLink.scss +0 -0
- /package/src/{lib/components → components}/TextLink/_theme.scss +0 -0
- /package/src/{lib/components → components}/TextLink/index.js +0 -0
- /package/src/{lib/components → components}/Toggle/Toggle.jsx +0 -0
- /package/src/{lib/components → components}/Toggle/Toggle.scss +0 -0
- /package/src/{lib/components → components}/Toggle/index.js +0 -0
- /package/src/{lib/components → components}/Toolbar/Toolbar.jsx +0 -0
- /package/src/{lib/components → components}/Toolbar/Toolbar.scss +0 -0
- /package/src/{lib/components → components}/Toolbar/ToolbarGroup.jsx +0 -0
- /package/src/{lib/components → components}/Toolbar/ToolbarItem.jsx +0 -0
- /package/src/{lib/components → components}/Toolbar/_helpers/getJustifyClassName.js +0 -0
- /package/src/{lib/components → components}/Toolbar/_theme.scss +0 -0
- /package/src/{lib/components → components}/Toolbar/index.js +0 -0
- /package/src/{lib/components → components}/_helpers/getRootColorClassName.js +0 -0
- /package/src/{lib/components → components}/_helpers/getRootSizeClassName.js +0 -0
- /package/src/{lib/components → components}/_helpers/getRootValidationStateClassName.js +0 -0
- /package/src/{lib/components → components}/_helpers/isChildrenEmpty.js +0 -0
- /package/src/{lib/components → components}/_helpers/resolveContextOrProp.js +0 -0
- /package/src/{lib/components → components}/_helpers/transferProps.js +0 -0
- /package/src/{lib/foundation.scss → foundation.scss} +0 -0
- /package/src/{lib/helpers.scss → helpers.scss} +0 -0
- /package/src/{lib/provider → provider}/RUIContext.jsx +0 -0
- /package/src/{lib/provider → provider}/index.js +0 -0
- /package/src/{lib/provider → provider}/withGlobalProps.jsx +0 -0
- /package/src/{lib/styles → styles}/_utilities.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_code.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_links.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_lists.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_page.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_rulers.scss +0 -0
- /package/src/{lib/styles → styles}/elements/_small.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_box-sizing.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_focus.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_forms.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_reset.scss +0 -0
- /package/src/{lib/styles → styles}/generic/_shared.scss +0 -0
- /package/src/{lib/styles → styles}/helpers/_animation.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_animations.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_breakpoints.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_escaped-characters.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_form-fields.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_forms.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_utilities.scss +0 -0
- /package/src/{lib/styles → styles}/settings/_z-indexes.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_accessibility.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_borders.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_code.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_form-fields.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_links.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_lists.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_page.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_spacing.scss +0 -0
- /package/src/{lib/styles → styles}/theme/_typography.scss +0 -0
- /package/src/{lib/styles → styles}/theme-constants/_breakpoints.scss +0 -0
- /package/src/{lib/styles → styles}/theme-constants/_colors.scss +0 -0
- /package/src/{lib/styles → styles}/theme-constants/_svg.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_accessibility.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_breakpoint.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_colors.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_reset.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_scrollbar.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_spacing.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_string.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_svg.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_transition.scss +0 -0
- /package/src/{lib/styles → styles}/tools/_utilities.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_box-field-layout.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_box-field-sizes.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_foundation.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_inline-field-layout.scss +0 -0
- /package/src/{lib/styles → styles}/tools/form-fields/_variants.scss +0 -0
- /package/src/{lib/translations → translations}/en.js +0 -0
- /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
|