@hyphen/hyphen-components 2.9.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/LICENSE +21 -0
- package/README.md +70 -0
- package/package.json +138 -0
- package/src/components/Alert/Alert.constants.ts +19 -0
- package/src/components/Alert/Alert.mdx +29 -0
- package/src/components/Alert/Alert.module.scss +74 -0
- package/src/components/Alert/Alert.stories.tsx +102 -0
- package/src/components/Alert/Alert.test.tsx +187 -0
- package/src/components/Alert/Alert.tsx +157 -0
- package/src/components/Alert/Alert.types.ts +14 -0
- package/src/components/Badge/Badge.mdx +28 -0
- package/src/components/Badge/Badge.module.scss +155 -0
- package/src/components/Badge/Badge.stories.tsx +52 -0
- package/src/components/Badge/Badge.test.tsx +74 -0
- package/src/components/Badge/Badge.tsx +70 -0
- package/src/components/Box/Box.mdx +259 -0
- package/src/components/Box/Box.module.scss +16 -0
- package/src/components/Box/Box.stories.tsx +1679 -0
- package/src/components/Box/Box.test.tsx +478 -0
- package/src/components/Box/Box.tsx +636 -0
- package/src/components/Button/Button.constants.ts +10 -0
- package/src/components/Button/Button.mdx +71 -0
- package/src/components/Button/Button.module.scss +312 -0
- package/src/components/Button/Button.stories.tsx +117 -0
- package/src/components/Button/Button.test.tsx +460 -0
- package/src/components/Button/Button.tsx +241 -0
- package/src/components/Card/Card.mdx +46 -0
- package/src/components/Card/Card.module.scss +6 -0
- package/src/components/Card/Card.stories.tsx +101 -0
- package/src/components/Card/Card.test.tsx +11 -0
- package/src/components/Card/Card.tsx +61 -0
- package/src/components/Card/components/CardFooter/CardFooter.test.tsx +11 -0
- package/src/components/Card/components/CardFooter/CardFooter.tsx +35 -0
- package/src/components/Card/components/CardHeader/CardHeader.test.tsx +23 -0
- package/src/components/Card/components/CardHeader/CardHeader.tsx +54 -0
- package/src/components/Card/components/CardSection/CardSection.test.tsx +28 -0
- package/src/components/Card/components/CardSection/CardSection.tsx +102 -0
- package/src/components/Card/components/index.ts +3 -0
- package/src/components/CheckboxInput/CheckboxInput.mdx +98 -0
- package/src/components/CheckboxInput/CheckboxInput.stories.tsx +254 -0
- package/src/components/CheckboxInput/CheckboxInput.test.tsx +436 -0
- package/src/components/CheckboxInput/CheckboxInput.tsx +171 -0
- package/src/components/CheckboxInput/components/Checkbox.module.scss +174 -0
- package/src/components/CheckboxInput/components/Checkbox.test.tsx +201 -0
- package/src/components/CheckboxInput/components/Checkbox.tsx +176 -0
- package/src/components/CheckboxInput/components/CheckboxIcon.tsx +71 -0
- package/src/components/DateInput/DateInput.mdx +61 -0
- package/src/components/DateInput/DateInput.stories.tsx +168 -0
- package/src/components/DateInput/DateInput.test.tsx +258 -0
- package/src/components/DateInput/DateInput.tsx +189 -0
- package/src/components/DatePicker/DatePicker.mdx +52 -0
- package/src/components/DatePicker/DatePicker.module.scss +603 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +199 -0
- package/src/components/DatePicker/DatePicker.test.tsx +26 -0
- package/src/components/DatePicker/DatePicker.tsx +138 -0
- package/src/components/Details/Details.mdx +30 -0
- package/src/components/Details/Details.module.scss +32 -0
- package/src/components/Details/Details.stories.tsx +38 -0
- package/src/components/Details/Details.test.tsx +189 -0
- package/src/components/Details/Details.tsx +51 -0
- package/src/components/Details/DetailsSummary.tsx +65 -0
- package/src/components/Drawer/Drawer.mdx +117 -0
- package/src/components/Drawer/Drawer.module.scss +96 -0
- package/src/components/Drawer/Drawer.stories.tsx +380 -0
- package/src/components/Drawer/Drawer.test.tsx +90 -0
- package/src/components/Drawer/Drawer.tsx +249 -0
- package/src/components/FormControl/FormControl.tsx +78 -0
- package/src/components/FormLabel/FormLabel.mdx +24 -0
- package/src/components/FormLabel/FormLabel.module.scss +19 -0
- package/src/components/FormLabel/FormLabel.stories.tsx +20 -0
- package/src/components/FormLabel/FormLabel.test.tsx +35 -0
- package/src/components/FormLabel/FormLabel.tsx +96 -0
- package/src/components/Formik/Formik.mdx +10 -0
- package/src/components/Formik/Formik.stories.tsx +307 -0
- package/src/components/Formik/FormikCheckboxInput/FormikCheckboxInput.test.tsx +172 -0
- package/src/components/Formik/FormikCheckboxInput/FormikCheckboxInput.tsx +41 -0
- package/src/components/Formik/FormikRadioGroup/FormikRadioGroup.test.tsx +205 -0
- package/src/components/Formik/FormikRadioGroup/FormikRadioGroup.tsx +37 -0
- package/src/components/Formik/FormikSelectInput/FormikSelectInput.test.tsx +210 -0
- package/src/components/Formik/FormikSelectInput/FormikSelectInput.tsx +41 -0
- package/src/components/Formik/FormikSelectInputInset/FormikSelectInputInset.test.tsx +153 -0
- package/src/components/Formik/FormikSelectInputInset/FormikSelectInputInset.tsx +44 -0
- package/src/components/Formik/FormikSelectInputNative/FormikSelectInputNative.test.tsx +161 -0
- package/src/components/Formik/FormikSelectInputNative/FormikSelectInputNative.tsx +46 -0
- package/src/components/Formik/FormikTextInput/FormikTextInput.test.tsx +176 -0
- package/src/components/Formik/FormikTextInput/FormikTextInput.tsx +38 -0
- package/src/components/Formik/FormikTextInputInset/FormikTextInputInset.test.tsx +170 -0
- package/src/components/Formik/FormikTextInputInset/FormikTextInputInset.tsx +42 -0
- package/src/components/Formik/FormikTextareaInput/FormikTextareaInput.test.tsx +186 -0
- package/src/components/Formik/FormikTextareaInput/FormikTextareaInput.tsx +42 -0
- package/src/components/Formik/FormikTextareaInputInset/FormikTextareaInputInset.test.tsx +179 -0
- package/src/components/Formik/FormikTextareaInputInset/FormikTextareaInputInset.tsx +42 -0
- package/src/components/Formik/FormikTimePicker/FormikTimePicker.test.tsx +224 -0
- package/src/components/Formik/FormikTimePicker/FormikTimePicker.tsx +37 -0
- package/src/components/Formik/FormikTimePickerNative/FormikTimePickerNative.test.tsx +175 -0
- package/src/components/Formik/FormikTimePickerNative/FormikTimePickerNative.tsx +38 -0
- package/src/components/Formik/FormikToggle/FormikToggle.test.tsx +172 -0
- package/src/components/Formik/FormikToggle/FormikToggle.tsx +38 -0
- package/src/components/Heading/Heading.constants.ts +19 -0
- package/src/components/Heading/Heading.mdx +35 -0
- package/src/components/Heading/Heading.module.scss +5 -0
- package/src/components/Heading/Heading.stories.tsx +90 -0
- package/src/components/Heading/Heading.test.tsx +67 -0
- package/src/components/Heading/Heading.tsx +67 -0
- package/src/components/HelpText/HelpText.module.scss +14 -0
- package/src/components/HelpText/HelpText.tsx +33 -0
- package/src/components/Icon/Icon.mdx +40 -0
- package/src/components/Icon/Icon.stories.tsx +72 -0
- package/src/components/Icon/Icon.test.tsx +30 -0
- package/src/components/Icon/Icon.tsx +61 -0
- package/src/components/InputValidationMessage/InputValidationMessage.module.scss +3 -0
- package/src/components/InputValidationMessage/InputValidationMessage.tsx +27 -0
- package/src/components/Modal/Modal.mdx +60 -0
- package/src/components/Modal/Modal.module.scss +135 -0
- package/src/components/Modal/Modal.stories.tsx +194 -0
- package/src/components/Modal/Modal.test.tsx +81 -0
- package/src/components/Modal/Modal.tsx +174 -0
- package/src/components/Modal/components/ModalBody/ModalBody.test.tsx +20 -0
- package/src/components/Modal/components/ModalBody/ModalBody.tsx +24 -0
- package/src/components/Modal/components/ModalFooter/ModalFooter.test.tsx +32 -0
- package/src/components/Modal/components/ModalFooter/ModalFooter.tsx +37 -0
- package/src/components/Modal/components/ModalHeader/ModalHeader.test.tsx +29 -0
- package/src/components/Modal/components/ModalHeader/ModalHeader.tsx +58 -0
- package/src/components/Modal/components/index.ts +5 -0
- package/src/components/Pagination/Pagination.mdx +26 -0
- package/src/components/Pagination/Pagination.stories.tsx +55 -0
- package/src/components/Pagination/Pagination.test.tsx +225 -0
- package/src/components/Pagination/Pagination.tsx +162 -0
- package/src/components/Pagination/Pagination.utilities.test.ts +133 -0
- package/src/components/Pagination/Pagination.utilities.ts +101 -0
- package/src/components/Popover/Popover.mdx +104 -0
- package/src/components/Popover/Popover.module.scss +74 -0
- package/src/components/Popover/Popover.stories.tsx +471 -0
- package/src/components/Popover/Popover.test.tsx +128 -0
- package/src/components/Popover/Popover.tsx +277 -0
- package/src/components/RadioGroup/RadioGroup.mdx +81 -0
- package/src/components/RadioGroup/RadioGroup.module.scss +23 -0
- package/src/components/RadioGroup/RadioGroup.stories.tsx +375 -0
- package/src/components/RadioGroup/RadioGroup.test.tsx +282 -0
- package/src/components/RadioGroup/RadioGroup.tsx +145 -0
- package/src/components/RadioGroup/RadioInput/RadioInput.module.scss +114 -0
- package/src/components/RadioGroup/RadioInput/RadioInput.test.tsx +156 -0
- package/src/components/RadioGroup/RadioInput/RadioInput.tsx +148 -0
- package/src/components/RadioGroup/RadioInput/RadioInputIcon.tsx +59 -0
- package/src/components/ResponsiveProvider/ResponsiveProvider.mdx +36 -0
- package/src/components/ResponsiveProvider/ResponsiveProvider.stories.tsx +54 -0
- package/src/components/ResponsiveProvider/ResponsiveProvider.test.tsx +70 -0
- package/src/components/ResponsiveProvider/ResponsiveProvider.tsx +73 -0
- package/src/components/SelectInput/SelectInput.mdx +115 -0
- package/src/components/SelectInput/SelectInput.module.scss +357 -0
- package/src/components/SelectInput/SelectInput.stories.tsx +373 -0
- package/src/components/SelectInput/SelectInput.test.tsx +403 -0
- package/src/components/SelectInput/SelectInput.tsx +245 -0
- package/src/components/SelectInputInset/SelectInputInset.mdx +56 -0
- package/src/components/SelectInputInset/SelectInputInset.module.scss +397 -0
- package/src/components/SelectInputInset/SelectInputInset.stories.tsx +189 -0
- package/src/components/SelectInputInset/SelectInputInset.test.tsx +305 -0
- package/src/components/SelectInputInset/SelectInputInset.tsx +235 -0
- package/src/components/SelectInputNative/SelectInputNative.mdx +87 -0
- package/src/components/SelectInputNative/SelectInputNative.module.scss +356 -0
- package/src/components/SelectInputNative/SelectInputNative.stories.tsx +282 -0
- package/src/components/SelectInputNative/SelectInputNative.test.tsx +341 -0
- package/src/components/SelectInputNative/SelectInputNative.tsx +121 -0
- package/src/components/Spinner/Spinner.mdx +29 -0
- package/src/components/Spinner/Spinner.module.scss +16 -0
- package/src/components/Spinner/Spinner.stories.tsx +48 -0
- package/src/components/Spinner/Spinner.test.tsx +47 -0
- package/src/components/Spinner/Spinner.tsx +116 -0
- package/src/components/Table/Table.mdx +216 -0
- package/src/components/Table/Table.module.scss +61 -0
- package/src/components/Table/Table.stories.tsx +884 -0
- package/src/components/Table/Table.test.tsx +437 -0
- package/src/components/Table/Table.tsx +171 -0
- package/src/components/Table/TableBody/TableBody.module.scss +19 -0
- package/src/components/Table/TableBody/TableBody.test.tsx +38 -0
- package/src/components/Table/TableBody/TableBody.tsx +96 -0
- package/src/components/Table/TableBody/TableBodyCell/TableBodyCell.module.scss +47 -0
- package/src/components/Table/TableBody/TableBodyCell/TableBodyCell.test.tsx +81 -0
- package/src/components/Table/TableBody/TableBodyCell/TableBodyCell.tsx +94 -0
- package/src/components/Table/TableHead/TableHead.test.tsx +20 -0
- package/src/components/Table/TableHead/TableHead.tsx +78 -0
- package/src/components/Table/TableHead/TableHeaderCell/TableHeaderCell.module.scss +72 -0
- package/src/components/Table/TableHead/TableHeaderCell/TableHeaderCell.test.tsx +187 -0
- package/src/components/Table/TableHead/TableHeaderCell/TableHeaderCell.tsx +192 -0
- package/src/components/Table/common/TableRow/TableRow.module.scss +5 -0
- package/src/components/Table/common/TableRow/TableRow.test.tsx +52 -0
- package/src/components/Table/common/TableRow/TableRow.tsx +155 -0
- package/src/components/TextInput/TextInput.mdx +96 -0
- package/src/components/TextInput/TextInput.module.scss +405 -0
- package/src/components/TextInput/TextInput.stories.tsx +268 -0
- package/src/components/TextInput/TextInput.test.tsx +231 -0
- package/src/components/TextInput/TextInput.tsx +263 -0
- package/src/components/TextInputInset/TextInputInset.mdx +62 -0
- package/src/components/TextInputInset/TextInputInset.module.scss +418 -0
- package/src/components/TextInputInset/TextInputInset.stories.tsx +213 -0
- package/src/components/TextInputInset/TextInputInset.test.tsx +222 -0
- package/src/components/TextInputInset/TextInputInset.tsx +261 -0
- package/src/components/TextareaInput/TextareaInput.mdx +117 -0
- package/src/components/TextareaInput/TextareaInput.module.scss +275 -0
- package/src/components/TextareaInput/TextareaInput.stories.tsx +293 -0
- package/src/components/TextareaInput/TextareaInput.test.tsx +195 -0
- package/src/components/TextareaInput/TextareaInput.tsx +182 -0
- package/src/components/TextareaInputInset/TextareaInputInset.mdx +55 -0
- package/src/components/TextareaInputInset/TextareaInputInset.module.scss +337 -0
- package/src/components/TextareaInputInset/TextareaInputInset.stories.tsx +160 -0
- package/src/components/TextareaInputInset/TextareaInputInset.test.tsx +199 -0
- package/src/components/TextareaInputInset/TextareaInputInset.tsx +213 -0
- package/src/components/ThemeProvider/ThemeProvider.mdx +11 -0
- package/src/components/ThemeProvider/ThemeProvider.stories.tsx +56 -0
- package/src/components/ThemeProvider/ThemeProvider.tsx +75 -0
- package/src/components/TimePicker/TimePicker.mdx +75 -0
- package/src/components/TimePicker/TimePicker.stories.tsx +149 -0
- package/src/components/TimePicker/TimePicker.test.tsx +97 -0
- package/src/components/TimePicker/TimePicker.tsx +83 -0
- package/src/components/TimePickerNative/TimePickerNative.mdx +67 -0
- package/src/components/TimePickerNative/TimePickerNative.stories.tsx +151 -0
- package/src/components/TimePickerNative/TimePickerNative.test.tsx +117 -0
- package/src/components/TimePickerNative/TimePickerNative.tsx +93 -0
- package/src/components/Toast/Toast.mdx +134 -0
- package/src/components/Toast/Toast.store.ts +280 -0
- package/src/components/Toast/Toast.stories.tsx +283 -0
- package/src/components/Toast/Toast.test.tsx +784 -0
- package/src/components/Toast/Toast.types.ts +98 -0
- package/src/components/Toast/ToastContainer.tsx +170 -0
- package/src/components/Toast/ToastNotification.module.scss +63 -0
- package/src/components/Toast/ToastNotification.tsx +176 -0
- package/src/components/Toast/index.ts +4 -0
- package/src/components/Toast/toast.ts +102 -0
- package/src/components/Toast/useToasts.ts +102 -0
- package/src/components/Toggle/Toggle.mdx +51 -0
- package/src/components/Toggle/Toggle.module.scss +294 -0
- package/src/components/Toggle/Toggle.stories.tsx +128 -0
- package/src/components/Toggle/Toggle.test.tsx +308 -0
- package/src/components/Toggle/Toggle.tsx +184 -0
- package/src/constants/keyCodes.ts +2 -0
- package/src/docs/Brands.mdx +153 -0
- package/src/docs/Colors.mdx +158 -0
- package/src/docs/DesignTokens.mdx +415 -0
- package/src/docs/GetStarted.mdx +47 -0
- package/src/docs/intro.mdx +12 -0
- package/src/fonts/AvenirBold.otf +0 -0
- package/src/fonts/AvenirBold.woff +0 -0
- package/src/fonts/AvenirBold.woff2 +0 -0
- package/src/fonts/AvenirLight.otf +0 -0
- package/src/fonts/AvenirLight.woff +0 -0
- package/src/fonts/AvenirLight.woff2 +0 -0
- package/src/fonts/AvenirRegular.otf +0 -0
- package/src/fonts/AvenirRegular.woff +0 -0
- package/src/fonts/AvenirRegular.woff2 +0 -0
- package/src/fonts/Geist-Bold.otf +0 -0
- package/src/fonts/Geist-Bold.woff +0 -0
- package/src/fonts/Geist-Bold.woff2 +0 -0
- package/src/fonts/Geist-Medium.otf +0 -0
- package/src/fonts/Geist-Medium.woff +0 -0
- package/src/fonts/Geist-Medium.woff2 +0 -0
- package/src/fonts/Geist-Regular.otf +0 -0
- package/src/fonts/Geist-Regular.woff +0 -0
- package/src/fonts/Geist-Regular.woff2 +0 -0
- package/src/fonts/Geist-SemiBold.otf +0 -0
- package/src/fonts/Geist-SemiBold.woff +0 -0
- package/src/fonts/Geist-SemiBold.woff2 +0 -0
- package/src/fonts/GeistMono-Regular.otf +0 -0
- package/src/fonts/GeistMono-Regular.woff +0 -0
- package/src/fonts/GeistMono-Regular.woff2 +0 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/useBreakpoint/useBreakpoint.mdx +26 -0
- package/src/hooks/useBreakpoint/useBreakpoint.stories.tsx +30 -0
- package/src/hooks/useBreakpoint/useBreakpoint.test.tsx +19 -0
- package/src/hooks/useBreakpoint/useBreakpoint.ts +50 -0
- package/src/hooks/useIsomorphicLayoutEffect/useIsomorphicLayouEffect.ts +5 -0
- package/src/hooks/useOpenClose/useOpenClose.mdx +15 -0
- package/src/hooks/useOpenClose/useOpenClose.stories.tsx +41 -0
- package/src/hooks/useOpenClose/useOpenClose.test.tsx +119 -0
- package/src/hooks/useOpenClose/useOpenClose.tsx +95 -0
- package/src/hooks/useWindowSize/useWindowSize.mdx +25 -0
- package/src/hooks/useWindowSize/useWindowSize.stories.tsx +35 -0
- package/src/hooks/useWindowSize/useWindowSize.ts +24 -0
- package/src/index.ts +48 -0
- package/src/lib/cssShorthandToClasses.test.ts +149 -0
- package/src/lib/cssShorthandToClasses.ts +133 -0
- package/src/lib/doesStringIncludeCssUnit.ts +6 -0
- package/src/lib/generateResponsiveClasses.test.ts +24 -0
- package/src/lib/generateResponsiveClasses.ts +30 -0
- package/src/lib/getAutoCompleteValue.test.ts +27 -0
- package/src/lib/getAutoCompleteValue.ts +12 -0
- package/src/lib/getColumnKeys.ts +27 -0
- package/src/lib/getDimensionCss.test.ts +148 -0
- package/src/lib/getDimensionCss.ts +73 -0
- package/src/lib/getElementType.test.tsx +42 -0
- package/src/lib/getElementType.ts +42 -0
- package/src/lib/getFlexCss.test.ts +122 -0
- package/src/lib/getFlexCss.ts +67 -0
- package/src/lib/index.ts +15 -0
- package/src/lib/isFunction.ts +6 -0
- package/src/lib/mergeRefs.ts +15 -0
- package/src/lib/prefersReducedMotion.ts +12 -0
- package/src/lib/react-children-utilities/filter.ts +12 -0
- package/src/lib/react-children-utilities/index.ts +1 -0
- package/src/lib/reactRouterClickHandler.ts +37 -0
- package/src/lib/resolveValue.ts +7 -0
- package/src/lib/tokens.ts +139 -0
- package/src/modes.ts +8 -0
- package/src/styles/animation.scss +152 -0
- package/src/styles/cursor.scss +43 -0
- package/src/styles/display.scss +119 -0
- package/src/styles/flex.scss +453 -0
- package/src/styles/fonts.scss +44 -0
- package/src/styles/globals/utilities.scss +4 -0
- package/src/styles/mixins.scss +14 -0
- package/src/styles/overflow.scss +41 -0
- package/src/styles/position.scss +45 -0
- package/src/styles/reset.scss +108 -0
- package/src/styles/text-align.scss +21 -0
- package/src/styles/utilities.scss +9 -0
- package/src/styles/variables/forms.scss +71 -0
- package/src/styles/variables/index.scss +3 -0
- package/src/styles/white-space.scss +21 -0
- package/src/types/index.ts +201 -0
- package/src/types/lib.types.ts +3 -0
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { Canvas, Meta, ArgTypes } from '@storybook/blocks';
|
|
2
|
+
import { Box } from './Box';
|
|
3
|
+
import * as Stories from './Box.stories';
|
|
4
|
+
|
|
5
|
+
<Meta of={Stories} />
|
|
6
|
+
|
|
7
|
+
# Overview
|
|
8
|
+
|
|
9
|
+
A `<Box>` is a layout component to build UIs with consistent padding and spacing between elements.
|
|
10
|
+
|
|
11
|
+
- Its content is arranged in a specified `direction`, with 'column' being the default
|
|
12
|
+
- Renders a `<div />` element by default, but can be changed using `as`
|
|
13
|
+
- Allows you to specify the spacing between child elements using `gap`
|
|
14
|
+
- Many props accept `ResponsiveProp` that take an object with keys that correspond to [breakpoint tokens](?path=/docs/foundation-design-tokens--docs#breakpoints).
|
|
15
|
+
|
|
16
|
+
<Canvas of={Stories.Overview} />
|
|
17
|
+
|
|
18
|
+
## Props
|
|
19
|
+
|
|
20
|
+
<ArgTypes of={Box} />
|
|
21
|
+
|
|
22
|
+
## Background Color
|
|
23
|
+
|
|
24
|
+
Use the `background` prop to set the color of the background
|
|
25
|
+
|
|
26
|
+
<Canvas of={Stories.Background} />
|
|
27
|
+
|
|
28
|
+
## Border
|
|
29
|
+
|
|
30
|
+
Use the `borderColor` prop to set the color of the border and the borderWidth to set the width. `borderWidth` also accepts css shorthand values that correspond to top, right, bottom, left.
|
|
31
|
+
|
|
32
|
+
<Canvas of={Stories.Border} />
|
|
33
|
+
|
|
34
|
+
## Gap
|
|
35
|
+
|
|
36
|
+
Use `gap` to set the spacing between children of a Box (for display grid and flex).
|
|
37
|
+
|
|
38
|
+
Use `rowGap` and `columnGap` to set the spacing between children of a Box (for display grid and flex) in the row and column directions independently. You can also use shorthand `gap` to set both at once (e.g. `gap="row col"`).
|
|
39
|
+
|
|
40
|
+
<Canvas of={Stories.Gap} />
|
|
41
|
+
|
|
42
|
+
### Child Gap
|
|
43
|
+
|
|
44
|
+
For block layouts, you can use `childGap` to set the spacing between children of a Box. For flex or grid layouts, use `gap` instead.
|
|
45
|
+
|
|
46
|
+
<Canvas of={Stories.ChildGap} />
|
|
47
|
+
|
|
48
|
+
## Flex Properties
|
|
49
|
+
|
|
50
|
+
### Flex
|
|
51
|
+
|
|
52
|
+
The most common use case is to set children of a `<Box />` to `flex="auto"`.
|
|
53
|
+
The item is sized according to its width and height properties, but grows to absorb any extra free space in the parent, and shrinks to its minimum size to fit the container.
|
|
54
|
+
This is equivalent to setting "flex: 1 1 auto".
|
|
55
|
+
|
|
56
|
+
If you need more granular flex control for properties such as `flex-grow`, `flex-shrink`, `flex-basis`, we recommend
|
|
57
|
+
passing using a standard `style` object with the `flex` shorthand you need.
|
|
58
|
+
|
|
59
|
+
<Canvas of={Stories.FlexAuto} />
|
|
60
|
+
|
|
61
|
+
### Flex Direction
|
|
62
|
+
|
|
63
|
+
Set direction of child elements in a flex container.
|
|
64
|
+
|
|
65
|
+
<Canvas of={Stories.FlexDirection} />
|
|
66
|
+
|
|
67
|
+
<Canvas of={Stories.FlexShrinkGrow} />
|
|
68
|
+
|
|
69
|
+
### Justify Content
|
|
70
|
+
|
|
71
|
+
Set content alignment along the main axis
|
|
72
|
+
|
|
73
|
+
<Canvas of={Stories.FlexJustify} />
|
|
74
|
+
|
|
75
|
+
### Align Items
|
|
76
|
+
|
|
77
|
+
Set content alignment along the cross axis.
|
|
78
|
+
|
|
79
|
+
<Canvas of={Stories.FlexAlign} />
|
|
80
|
+
|
|
81
|
+
### Align Content
|
|
82
|
+
|
|
83
|
+
Set the Box's lines within where there is extra space in the cross-axis.
|
|
84
|
+
This property has no effect when there is only one line of flex items.
|
|
85
|
+
|
|
86
|
+
<Canvas of={Stories.FlexAlignContent} />
|
|
87
|
+
|
|
88
|
+
## Font Color
|
|
89
|
+
|
|
90
|
+
Use the `color` prop to set the color of the text
|
|
91
|
+
|
|
92
|
+
<Canvas of={Stories.FontColor} />
|
|
93
|
+
|
|
94
|
+
## Font Size
|
|
95
|
+
|
|
96
|
+
Set the `fontSize` prop with a [font size](?path=/docs/foundation-design-tokens--docs#font-size) token to set the size of the text in the Box.
|
|
97
|
+
|
|
98
|
+
<Canvas of={Stories.FontSizes} />
|
|
99
|
+
|
|
100
|
+
### Font Family
|
|
101
|
+
|
|
102
|
+
<Canvas of={Stories.FontFamily} />
|
|
103
|
+
|
|
104
|
+
## Font Weight
|
|
105
|
+
|
|
106
|
+
Set the `fontWeight` prop with a [font weight](?path=/docs/foundation-design-tokens--docs#font-weight) token to set the size of the text in the Box.
|
|
107
|
+
|
|
108
|
+
<Canvas of={Stories.FontWeights} />
|
|
109
|
+
|
|
110
|
+
## Text Align
|
|
111
|
+
|
|
112
|
+
Set the `textAlign` prop to set the alignment of the text in the Box.
|
|
113
|
+
|
|
114
|
+
<Canvas of={Stories.TextAlign} />
|
|
115
|
+
|
|
116
|
+
## Margin
|
|
117
|
+
|
|
118
|
+
The `margin` prop accepts a single [spacing](?path=/docs/foundation-design-tokens--docs#spacing) value or a set of spacing values that correspond with css shorthand syntax. Margin values can be set on the horizontal or vertical axis, or the top, right, bottom and left sides of a Box.
|
|
119
|
+
|
|
120
|
+
<Canvas of={Stories.Margin} />
|
|
121
|
+
|
|
122
|
+
## Padding
|
|
123
|
+
|
|
124
|
+
The `padding` prop accepts a single [spacing](?path=/docs/foundation-design-tokens--docs#spacing) value or a set of spacing values that correspond with css shorthand syntax. Padding values can be set on the horizontal or vertical axis, or the top, right, bottom and left sides of a Box.
|
|
125
|
+
|
|
126
|
+
<Canvas of={Stories.Padding} />
|
|
127
|
+
|
|
128
|
+
## Radius
|
|
129
|
+
|
|
130
|
+
Set the `radius` prop with a [radius token](?path=/docs/foundation-design-tokens--docs#border-radius) to set the corner radius of the box.
|
|
131
|
+
|
|
132
|
+
<Canvas of={Stories.Radius} />
|
|
133
|
+
|
|
134
|
+
## Shadow
|
|
135
|
+
|
|
136
|
+
Set the `shadow` prop with a [shadow token](?path=/docs/foundation-design-tokens--docs#box-shadow) to set the outer shadow of the box.
|
|
137
|
+
|
|
138
|
+
<Canvas of={Stories.Shadow} />
|
|
139
|
+
|
|
140
|
+
## Width
|
|
141
|
+
|
|
142
|
+
Width can be set to any CSS unit value (px, rem, em, %).
|
|
143
|
+
|
|
144
|
+
<Canvas of={Stories.Width} />
|
|
145
|
+
|
|
146
|
+
[Width tokens](?path=/docs/foundation-design-tokens--docs#width) may be used to set widths as well.
|
|
147
|
+
|
|
148
|
+
<Canvas of={Stories.WidthTokens} />
|
|
149
|
+
|
|
150
|
+
Set the width to a common percentage of the Box's parent.
|
|
151
|
+
|
|
152
|
+
<Canvas of={Stories.WidthPercentages} />
|
|
153
|
+
|
|
154
|
+
## Height
|
|
155
|
+
|
|
156
|
+
Height can be set to any CSS unit value (px, rem, em, %).
|
|
157
|
+
|
|
158
|
+
<Canvas of={Stories.Height} />
|
|
159
|
+
|
|
160
|
+
[Height tokens](?path=/docs/foundation-design-tokens--docs#height) may be used to set height as well.
|
|
161
|
+
|
|
162
|
+
<Canvas of={Stories.HeightTokens} />
|
|
163
|
+
|
|
164
|
+
Set the height to a common percentage of the Box's parent.
|
|
165
|
+
|
|
166
|
+
<Canvas of={Stories.HeightPercentages} />
|
|
167
|
+
|
|
168
|
+
## Overflow
|
|
169
|
+
|
|
170
|
+
Set the overflow behavior of the Box with `overflow`
|
|
171
|
+
|
|
172
|
+
<Canvas of={Stories.Overflow} />
|
|
173
|
+
|
|
174
|
+
## Cursor
|
|
175
|
+
|
|
176
|
+
Set the cursor for value for the element in question. Use any valid [CSS cursor value](https://developer.mozilla.org/en-US/docs/Web/CSS/cursor#values).
|
|
177
|
+
|
|
178
|
+
<Canvas of={Stories.Cursor} />
|
|
179
|
+
|
|
180
|
+
## Position
|
|
181
|
+
|
|
182
|
+
Set the CSS position for the element in question. Use any valid [CSS position value](https://developer.mozilla.org/en-US/docs/Web/CSS/position#values) or a
|
|
183
|
+
responsive object prop with said values. Example with `fixed` position not included. Scroll the container to see these in action.
|
|
184
|
+
|
|
185
|
+
<Canvas of={Stories.Position} />
|
|
186
|
+
|
|
187
|
+
## Hover States
|
|
188
|
+
|
|
189
|
+
You can control the styles for the box on hover using the `hover` prop and passing token values for the relevant property.
|
|
190
|
+
Hover on the elements below to see these in action.
|
|
191
|
+
|
|
192
|
+
Currently our library supports hover states for:
|
|
193
|
+
|
|
194
|
+
- `background`
|
|
195
|
+
- `borderColor`
|
|
196
|
+
- `borderWidth`
|
|
197
|
+
- `color`
|
|
198
|
+
- `fontSize`
|
|
199
|
+
- `shadow`
|
|
200
|
+
|
|
201
|
+
<Canvas of={Stories.Hover} />
|
|
202
|
+
|
|
203
|
+
## Focus States
|
|
204
|
+
|
|
205
|
+
You can control the styles for the box on hover using the `focus` prop and passing token values for the relevant property.
|
|
206
|
+
Focus on the elements below to the these in action.
|
|
207
|
+
|
|
208
|
+
Currently our library supports hover states for:
|
|
209
|
+
|
|
210
|
+
- `background`
|
|
211
|
+
- `borderColor`
|
|
212
|
+
- `borderWidth`
|
|
213
|
+
- `color`
|
|
214
|
+
- `shadow`
|
|
215
|
+
|
|
216
|
+
<Canvas of={Stories.Focus} />
|
|
217
|
+
|
|
218
|
+
## Responsive Props
|
|
219
|
+
|
|
220
|
+
Any props that accept a `ResponsiveProp` will take an object with the following shape:
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
{
|
|
224
|
+
base?: prop, // breakpoint starting at 0 pixels, not scoped by media query.
|
|
225
|
+
tablet?: prop, // 608px and higher.
|
|
226
|
+
desktop?: prop, // 992px and higher.
|
|
227
|
+
hd?: prop, // 1280px and higher.
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
These props will create classes that are scoped to the specific breakpoint they are assigned to. Not all breakpoints
|
|
232
|
+
are required in this shape, you can pick and choose which breakpoints require different layout attributes based on a
|
|
233
|
+
mobile first approach.
|
|
234
|
+
|
|
235
|
+
Props that are responsive-enabled follow a mobile-first approach, which means that styles are applied first to smaller viewports (i.e. mobile devices).
|
|
236
|
+
As the viewport size increases, new styles may be applied (styles are overridden for larger viewports).
|
|
237
|
+
Responsive enabled props take a keyed object that specifies at which [breakpoints](?path=/docs/foundation-design-tokens--docs#breakpoints) to apply certain properties.
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
<Box
|
|
241
|
+
width={{
|
|
242
|
+
base: '100px' // box width is 100px
|
|
243
|
+
tablet: '200px' // box width is 200px when viewport width is greater than size-breakpoint-tablet
|
|
244
|
+
desktop: '300px' // box width is 600px when viewport width is greater than size-breakpoint-desktop
|
|
245
|
+
hd: '600px' // box width is 600px when viewport width is greater than size-breakpoint-hd
|
|
246
|
+
}}
|
|
247
|
+
>
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
Try resizing the browser to see the responsive properties in action.
|
|
251
|
+
|
|
252
|
+
<Canvas of={Stories.Responsive} />
|
|
253
|
+
|
|
254
|
+
#### Omitting Keys
|
|
255
|
+
|
|
256
|
+
When passing an object, omitting a key is the same as not applying any styles.
|
|
257
|
+
For example the following has padding at the `desktop` breakpoint and wider.
|
|
258
|
+
|
|
259
|
+
<Canvas of={Stories.Omit} />
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
.box-transition {
|
|
2
|
+
transition-duration: 0.2s;
|
|
3
|
+
transition-property:
|
|
4
|
+
background-color,
|
|
5
|
+
border,
|
|
6
|
+
box-shadow,
|
|
7
|
+
color,
|
|
8
|
+
font-size,
|
|
9
|
+
border-width,
|
|
10
|
+
border-color,
|
|
11
|
+
border-top-width,
|
|
12
|
+
border-right-width,
|
|
13
|
+
border-bottom-width,
|
|
14
|
+
border-left-width;
|
|
15
|
+
transition-timing-function: cubic-bezier(0.67, 0.83, 0.67);
|
|
16
|
+
}
|