@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,158 @@
|
|
|
1
|
+
import { ColorPalette, ColorItem, Meta } from '@storybook/addon-docs';
|
|
2
|
+
import designTokens from '@hyphen/hyphen-design-tokens/build/json/variables.json';
|
|
3
|
+
|
|
4
|
+
<Meta title="Foundation/Colors" />
|
|
5
|
+
|
|
6
|
+
## Base Colors
|
|
7
|
+
|
|
8
|
+
<ColorPalette>
|
|
9
|
+
<ColorItem
|
|
10
|
+
title="color-base-white"
|
|
11
|
+
subtitle="White"
|
|
12
|
+
colors={[designTokens.color.base.white.value]}
|
|
13
|
+
/>
|
|
14
|
+
<ColorItem
|
|
15
|
+
title="color-base-black"
|
|
16
|
+
subtitle="Black"
|
|
17
|
+
colors={[designTokens.color.base.black.value]}
|
|
18
|
+
/>
|
|
19
|
+
<ColorItem
|
|
20
|
+
title="color-base-magenta"
|
|
21
|
+
subtitle="Black"
|
|
22
|
+
colors={[designTokens.color.base.magenta.value]}
|
|
23
|
+
/>
|
|
24
|
+
<ColorItem
|
|
25
|
+
title="color-base-grey"
|
|
26
|
+
subtitle="Grey"
|
|
27
|
+
colors={Object.keys(designTokens.color.base.grey).reduce((acc, item, i) => {
|
|
28
|
+
acc[item] = Object.keys(designTokens.color.base.grey).map(
|
|
29
|
+
(g) => designTokens.color.base.grey[g].value
|
|
30
|
+
)[i];
|
|
31
|
+
return acc;
|
|
32
|
+
}, {})}
|
|
33
|
+
/>
|
|
34
|
+
<ColorItem
|
|
35
|
+
title="color-base-primary"
|
|
36
|
+
subtitle="Primary"
|
|
37
|
+
colors={Object.keys(designTokens.color.base.primary).reduce(
|
|
38
|
+
(acc, item, i) => {
|
|
39
|
+
acc[item] = Object.keys(designTokens.color.base.primary).map(
|
|
40
|
+
(g) => designTokens.color.base.primary[g].value
|
|
41
|
+
)[i];
|
|
42
|
+
return acc;
|
|
43
|
+
},
|
|
44
|
+
{}
|
|
45
|
+
)}
|
|
46
|
+
/>
|
|
47
|
+
<ColorItem
|
|
48
|
+
title="color-base-red"
|
|
49
|
+
subtitle="Red"
|
|
50
|
+
colors={Object.keys(designTokens.color.base.red).reduce((acc, item, i) => {
|
|
51
|
+
acc[item] = Object.keys(designTokens.color.base.red).map(
|
|
52
|
+
(g) => designTokens.color.base.red[g].value
|
|
53
|
+
)[i];
|
|
54
|
+
return acc;
|
|
55
|
+
}, {})}
|
|
56
|
+
/>
|
|
57
|
+
<ColorItem
|
|
58
|
+
title="color-base-yellow"
|
|
59
|
+
subtitle="Primary"
|
|
60
|
+
colors={Object.keys(designTokens.color.base.yellow).reduce(
|
|
61
|
+
(acc, item, i) => {
|
|
62
|
+
acc[item] = Object.keys(designTokens.color.base.yellow).map(
|
|
63
|
+
(g) => designTokens.color.base.yellow[g].value
|
|
64
|
+
)[i];
|
|
65
|
+
return acc;
|
|
66
|
+
},
|
|
67
|
+
{}
|
|
68
|
+
)}
|
|
69
|
+
/>
|
|
70
|
+
<ColorItem
|
|
71
|
+
title="color-base-green"
|
|
72
|
+
subtitle="Green"
|
|
73
|
+
colors={Object.keys(designTokens.color.base.green).reduce(
|
|
74
|
+
(acc, item, i) => {
|
|
75
|
+
acc[item] = Object.keys(designTokens.color.base.green).map(
|
|
76
|
+
(g) => designTokens.color.base.green[g].value
|
|
77
|
+
)[i];
|
|
78
|
+
return acc;
|
|
79
|
+
},
|
|
80
|
+
{}
|
|
81
|
+
)}
|
|
82
|
+
/>
|
|
83
|
+
<ColorItem
|
|
84
|
+
title="color-base-blue"
|
|
85
|
+
subtitle="Blue"
|
|
86
|
+
colors={Object.keys(designTokens.color.base.blue).reduce(
|
|
87
|
+
(acc, item, i) => {
|
|
88
|
+
acc[item] = Object.keys(designTokens.color.base.blue).map(
|
|
89
|
+
(g) => designTokens.color.base.blue[g].value
|
|
90
|
+
)[i];
|
|
91
|
+
return acc;
|
|
92
|
+
},
|
|
93
|
+
{}
|
|
94
|
+
)}
|
|
95
|
+
/>
|
|
96
|
+
<ColorItem
|
|
97
|
+
title="color-base-purple"
|
|
98
|
+
subtitle="Purple"
|
|
99
|
+
colors={Object.keys(designTokens.color.base.purple).reduce(
|
|
100
|
+
(acc, item, i) => {
|
|
101
|
+
acc[item] = Object.keys(designTokens.color.base.purple).map(
|
|
102
|
+
(g) => designTokens.color.base.purple[g].value
|
|
103
|
+
)[i];
|
|
104
|
+
return acc;
|
|
105
|
+
},
|
|
106
|
+
{}
|
|
107
|
+
)}
|
|
108
|
+
/>
|
|
109
|
+
|
|
110
|
+
</ColorPalette>
|
|
111
|
+
|
|
112
|
+
## Backgrounds
|
|
113
|
+
|
|
114
|
+
<ColorPalette>
|
|
115
|
+
<ColorItem
|
|
116
|
+
title="Backgrounds"
|
|
117
|
+
subtitle="used for backgrounds"
|
|
118
|
+
colors={Object.keys(designTokens.color.background).reduce(
|
|
119
|
+
(acc, item, i) => {
|
|
120
|
+
acc[item] = Object.keys(designTokens.color.background).map(
|
|
121
|
+
(g) => designTokens.color.background[g].value
|
|
122
|
+
)[i];
|
|
123
|
+
return acc;
|
|
124
|
+
},
|
|
125
|
+
{}
|
|
126
|
+
)}
|
|
127
|
+
/>
|
|
128
|
+
</ColorPalette>
|
|
129
|
+
|
|
130
|
+
## Borders
|
|
131
|
+
|
|
132
|
+
<ColorPalette>
|
|
133
|
+
<ColorItem
|
|
134
|
+
title="Backgrounds"
|
|
135
|
+
subtitle="used for borders"
|
|
136
|
+
colors={Object.keys(designTokens.color.border).reduce((acc, item, i) => {
|
|
137
|
+
acc[item] = Object.keys(designTokens.color.border).map(
|
|
138
|
+
(g) => designTokens.color.border[g].value
|
|
139
|
+
)[i];
|
|
140
|
+
return acc;
|
|
141
|
+
}, {})}
|
|
142
|
+
/>
|
|
143
|
+
</ColorPalette>
|
|
144
|
+
|
|
145
|
+
## Text
|
|
146
|
+
|
|
147
|
+
<ColorPalette>
|
|
148
|
+
<ColorItem
|
|
149
|
+
title="Text"
|
|
150
|
+
subtitle="used for text"
|
|
151
|
+
colors={Object.keys(designTokens.color.font).reduce((acc, item, i) => {
|
|
152
|
+
acc[item] = Object.keys(designTokens.color.font).map(
|
|
153
|
+
(g) => designTokens.color.font[g].value
|
|
154
|
+
)[i];
|
|
155
|
+
return acc;
|
|
156
|
+
}, {})}
|
|
157
|
+
/>
|
|
158
|
+
</ColorPalette>
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
import designTokens from '@hyphen/hyphen-design-tokens/build/json/variables.json';
|
|
3
|
+
|
|
4
|
+
<Meta title="Foundation/Design Tokens" />
|
|
5
|
+
|
|
6
|
+
# Design Tokens
|
|
7
|
+
|
|
8
|
+
Design tokens are an abstraction of design decisions made to construct and maintain an application design system. Spacing, color, typography, styles and animation are represented as data, in our case json. They’re used in place of hard-coded values in order to ensure flexibility and unity across all our product experiences.
|
|
9
|
+
|
|
10
|
+
Design tokens are directly integrated into our component library and cover properties like spacing, color and component state.
|
|
11
|
+
|
|
12
|
+
We use [Style Dictionary](https://amzn.github.io/style-dictionary/) to generate style definitions across all platforms from a single source - removing roadblocks, errors, and inefficiencies across our workflow.
|
|
13
|
+
|
|
14
|
+
## Source on Github
|
|
15
|
+
|
|
16
|
+
[Hyphen Design Tokens](https://github.com/hyphen/hyphen-design-tokens) are available as an [npm package](https://www.npmjs.com/package/@hyphen/hyphen-design-tokens) so that you can create a Hyphen unified product experience for your platform of choice.
|
|
17
|
+
|
|
18
|
+
## Border Radius
|
|
19
|
+
|
|
20
|
+
Use these tokens for `border-radius`. They are defined in `rem`, which means they will scale when adjusting the root font size. Pixel values are calculated with a root font size of `16px`.
|
|
21
|
+
|
|
22
|
+
<table width="100%">
|
|
23
|
+
<thead>
|
|
24
|
+
<tr>
|
|
25
|
+
<th>token name</th>
|
|
26
|
+
<th>prop value</th>
|
|
27
|
+
<th>value</th>
|
|
28
|
+
<th>px</th>
|
|
29
|
+
</tr>
|
|
30
|
+
</thead>
|
|
31
|
+
<tbody>
|
|
32
|
+
{Object.entries(designTokens.size['border-radius']).map(
|
|
33
|
+
([name, entry], i) => (
|
|
34
|
+
<tr key={i}>
|
|
35
|
+
<td>
|
|
36
|
+
<code>{`size-border-radius-${name}`}</code>
|
|
37
|
+
</td>
|
|
38
|
+
<td>
|
|
39
|
+
<code>{name}</code>
|
|
40
|
+
</td>
|
|
41
|
+
<td>{entry.value}</td>
|
|
42
|
+
<td>{name !== 'circle' ? entry.original.value * 16 : ''}</td>
|
|
43
|
+
</tr>
|
|
44
|
+
)
|
|
45
|
+
)}
|
|
46
|
+
</tbody>
|
|
47
|
+
</table>
|
|
48
|
+
|
|
49
|
+
## Border Width
|
|
50
|
+
|
|
51
|
+
Use these tokens for `border-width`.
|
|
52
|
+
|
|
53
|
+
<table width="100%">
|
|
54
|
+
<thead>
|
|
55
|
+
<tr>
|
|
56
|
+
<th>token name</th>
|
|
57
|
+
<th>prop value</th>
|
|
58
|
+
<th>value</th>
|
|
59
|
+
</tr>
|
|
60
|
+
</thead>
|
|
61
|
+
<tbody>
|
|
62
|
+
{Object.entries(designTokens.size['border-width']).map(
|
|
63
|
+
([name, entry], i) => (
|
|
64
|
+
<tr key={i}>
|
|
65
|
+
<td>
|
|
66
|
+
<code>{`size-border-width-${name}`}</code>
|
|
67
|
+
</td>
|
|
68
|
+
<td>
|
|
69
|
+
<code>{name}</code>
|
|
70
|
+
</td>
|
|
71
|
+
<td>{entry.value}</td>
|
|
72
|
+
</tr>
|
|
73
|
+
)
|
|
74
|
+
)}
|
|
75
|
+
</tbody>
|
|
76
|
+
</table>
|
|
77
|
+
|
|
78
|
+
## Box Shadow
|
|
79
|
+
|
|
80
|
+
Used these tokens to set the outer shadow of an element.
|
|
81
|
+
|
|
82
|
+
<table width="100%">
|
|
83
|
+
<thead>
|
|
84
|
+
<tr>
|
|
85
|
+
<th>token name</th>
|
|
86
|
+
<th>prop value</th>
|
|
87
|
+
<th>value</th>
|
|
88
|
+
</tr>
|
|
89
|
+
</thead>
|
|
90
|
+
<tbody>
|
|
91
|
+
{Object.entries(designTokens.size['box-shadow']).map(([name, entry], i) => (
|
|
92
|
+
<tr key={i}>
|
|
93
|
+
<td>
|
|
94
|
+
<code>{`size-box-shadow-${name}`}</code>
|
|
95
|
+
</td>
|
|
96
|
+
<td>
|
|
97
|
+
<code>{name}</code>
|
|
98
|
+
</td>
|
|
99
|
+
<td>{entry.original.value}</td>
|
|
100
|
+
</tr>
|
|
101
|
+
))}
|
|
102
|
+
</tbody>
|
|
103
|
+
</table>
|
|
104
|
+
|
|
105
|
+
## Breakpoints
|
|
106
|
+
|
|
107
|
+
Hyphen components follow a "mobile-first" approach, where styles are set with mobile devices considered first. Then styling adjustments are made as each minimum viewport width — the breakpoint — is reached.
|
|
108
|
+
|
|
109
|
+
The following breakpoints are used in utility classes, but you can use them to modify your application depending on the user's viewport size.
|
|
110
|
+
|
|
111
|
+
<table width="100%">
|
|
112
|
+
<thead>
|
|
113
|
+
<tr>
|
|
114
|
+
<th>token name</th>
|
|
115
|
+
<th>value</th>
|
|
116
|
+
</tr>
|
|
117
|
+
</thead>
|
|
118
|
+
<tbody>
|
|
119
|
+
{Object.entries(designTokens.size.breakpoint).map(([name, entry], i) => (
|
|
120
|
+
<tr key={i}>
|
|
121
|
+
<td>
|
|
122
|
+
<code>{`size-breakpoint-${name}`}</code>
|
|
123
|
+
</td>
|
|
124
|
+
<td>{entry.original.value}px</td>
|
|
125
|
+
</tr>
|
|
126
|
+
))}
|
|
127
|
+
</tbody>
|
|
128
|
+
</table>
|
|
129
|
+
|
|
130
|
+
## Dimension
|
|
131
|
+
|
|
132
|
+
Dimension tokens are intended for use with `width` and `height` properties. They are defined in `rem`, which means they will scale when adjusting the root font size. Pixel values are calculated with a root font size of `16px`.
|
|
133
|
+
|
|
134
|
+
<table width="100%">
|
|
135
|
+
<thead>
|
|
136
|
+
<tr>
|
|
137
|
+
<th>token name</th>
|
|
138
|
+
<th>prop value</th>
|
|
139
|
+
<th>value</th>
|
|
140
|
+
<th>px</th>
|
|
141
|
+
</tr>
|
|
142
|
+
</thead>
|
|
143
|
+
<tbody>
|
|
144
|
+
{Object.entries(designTokens.size.dimension).map(([name, entry], i) => {
|
|
145
|
+
return (
|
|
146
|
+
<tr key={i}>
|
|
147
|
+
<td>
|
|
148
|
+
<code>{`size-dimension-${name}`}</code>
|
|
149
|
+
</td>
|
|
150
|
+
<td>
|
|
151
|
+
<code>{name}</code>
|
|
152
|
+
</td>
|
|
153
|
+
<td>{entry.value}</td>
|
|
154
|
+
<td>
|
|
155
|
+
{name === 'base'
|
|
156
|
+
? '16'
|
|
157
|
+
: ['inherit', 'auto'].includes(name)
|
|
158
|
+
? ''
|
|
159
|
+
: entry.original.value * 16}
|
|
160
|
+
</td>
|
|
161
|
+
</tr>
|
|
162
|
+
);
|
|
163
|
+
})}
|
|
164
|
+
</tbody>
|
|
165
|
+
</table>
|
|
166
|
+
|
|
167
|
+
<table width="100%">
|
|
168
|
+
<thead>
|
|
169
|
+
<tr>
|
|
170
|
+
<th>token name</th>
|
|
171
|
+
<th>prop value</th>
|
|
172
|
+
<th>value</th>
|
|
173
|
+
<th>px</th>
|
|
174
|
+
</tr>
|
|
175
|
+
</thead>
|
|
176
|
+
<tbody>
|
|
177
|
+
{Object.entries(designTokens.size.percentage).map(([name, entry], i) => {
|
|
178
|
+
return (
|
|
179
|
+
<tr key={i}>
|
|
180
|
+
<td>
|
|
181
|
+
<code>{`size-percentage-${name}`}</code>
|
|
182
|
+
</td>
|
|
183
|
+
<td>
|
|
184
|
+
<code>{name}</code>
|
|
185
|
+
</td>
|
|
186
|
+
<td>{entry.original.value}%</td>
|
|
187
|
+
<td>
|
|
188
|
+
{name === 'base'
|
|
189
|
+
? '16'
|
|
190
|
+
: ['inherit', 'auto'].includes(name)
|
|
191
|
+
? ''
|
|
192
|
+
: entry.original.value * 16}
|
|
193
|
+
</td>
|
|
194
|
+
</tr>
|
|
195
|
+
);
|
|
196
|
+
})}
|
|
197
|
+
</tbody>
|
|
198
|
+
</table>
|
|
199
|
+
|
|
200
|
+
## Font Family
|
|
201
|
+
|
|
202
|
+
Use these tokens for `font-family`.
|
|
203
|
+
|
|
204
|
+
<table>
|
|
205
|
+
<thead>
|
|
206
|
+
<tr>
|
|
207
|
+
<th>token name</th>
|
|
208
|
+
<th>prop value</th>
|
|
209
|
+
<th>value</th>
|
|
210
|
+
</tr>
|
|
211
|
+
</thead>
|
|
212
|
+
<tbody>
|
|
213
|
+
{Object.entries(designTokens.assets['font-family']).map(
|
|
214
|
+
([name, entry], i) => (
|
|
215
|
+
<tr key={i}>
|
|
216
|
+
<td>
|
|
217
|
+
<code>{`asset-font-family-${name}`}</code>
|
|
218
|
+
</td>
|
|
219
|
+
<td>
|
|
220
|
+
<code>{name}</code>
|
|
221
|
+
</td>
|
|
222
|
+
<td>{entry.value}</td>
|
|
223
|
+
</tr>
|
|
224
|
+
)
|
|
225
|
+
)}
|
|
226
|
+
</tbody>
|
|
227
|
+
</table>
|
|
228
|
+
|
|
229
|
+
## Font Size
|
|
230
|
+
|
|
231
|
+
Use these tokens for `font-size`. They are defined in `rem`, which means they will scale when adjusting the root font size. Pixel values are calculated with a root font size of `16px`.
|
|
232
|
+
|
|
233
|
+
<table width="100%">
|
|
234
|
+
<thead>
|
|
235
|
+
<tr>
|
|
236
|
+
<th>token name</th>
|
|
237
|
+
<th>prop value</th>
|
|
238
|
+
<th>value</th>
|
|
239
|
+
<th>px</th>
|
|
240
|
+
</tr>
|
|
241
|
+
</thead>
|
|
242
|
+
<tbody>
|
|
243
|
+
{Object.entries(designTokens.size['font-size']).map(([name, entry], i) => (
|
|
244
|
+
<tr key={i}>
|
|
245
|
+
<td>
|
|
246
|
+
<code>{`size-font-size-${name}`}</code>
|
|
247
|
+
</td>
|
|
248
|
+
<td>
|
|
249
|
+
<code>{name}</code>
|
|
250
|
+
</td>
|
|
251
|
+
<td>{entry.value}</td>
|
|
252
|
+
<td>
|
|
253
|
+
{name === 'base'
|
|
254
|
+
? '16'
|
|
255
|
+
: name === 'inherit'
|
|
256
|
+
? ''
|
|
257
|
+
: entry.original.value * 16}
|
|
258
|
+
</td>
|
|
259
|
+
</tr>
|
|
260
|
+
))}
|
|
261
|
+
</tbody>
|
|
262
|
+
</table>
|
|
263
|
+
|
|
264
|
+
## Font Weight
|
|
265
|
+
|
|
266
|
+
Use these tokens for `font-weight`.
|
|
267
|
+
|
|
268
|
+
<table width="100%">
|
|
269
|
+
<thead>
|
|
270
|
+
<tr>
|
|
271
|
+
<th>token name</th>
|
|
272
|
+
<th>prop value</th>
|
|
273
|
+
<th>value</th>
|
|
274
|
+
</tr>
|
|
275
|
+
</thead>
|
|
276
|
+
<tbody>
|
|
277
|
+
{Object.entries(designTokens.size['font-weight']).map(
|
|
278
|
+
([name, entry], i) => (
|
|
279
|
+
<tr key={i}>
|
|
280
|
+
<td>
|
|
281
|
+
<code>{`size-font-weight-${name}`}</code>
|
|
282
|
+
</td>
|
|
283
|
+
<td>
|
|
284
|
+
<code>{name}</code>
|
|
285
|
+
</td>
|
|
286
|
+
<td>{entry.original.value}</td>
|
|
287
|
+
</tr>
|
|
288
|
+
)
|
|
289
|
+
)}
|
|
290
|
+
</tbody>
|
|
291
|
+
</table>
|
|
292
|
+
|
|
293
|
+
## Heading Size
|
|
294
|
+
|
|
295
|
+
Use these tokens for the `font-size` of Headings. They are defined in `rem`, which means they will scale when adjusting the root font size. Pixel values are calculated with a root font size of `16px`.
|
|
296
|
+
|
|
297
|
+
<table width="100%">
|
|
298
|
+
<thead>
|
|
299
|
+
<tr>
|
|
300
|
+
<th>token name</th>
|
|
301
|
+
<th>prop value</th>
|
|
302
|
+
<th>value</th>
|
|
303
|
+
<th>px</th>
|
|
304
|
+
</tr>
|
|
305
|
+
</thead>
|
|
306
|
+
<tbody>
|
|
307
|
+
{Object.entries(designTokens.size.heading).map(([name, entry], i) => (
|
|
308
|
+
<tr key={i}>
|
|
309
|
+
<td>
|
|
310
|
+
<code>{`size-heading-${name}`}</code>
|
|
311
|
+
</td>
|
|
312
|
+
<td>
|
|
313
|
+
<code>{name}</code>
|
|
314
|
+
</td>
|
|
315
|
+
<td>{entry.value}</td>
|
|
316
|
+
<td>
|
|
317
|
+
{name === 'base'
|
|
318
|
+
? '16'
|
|
319
|
+
: name === 'inherit'
|
|
320
|
+
? ''
|
|
321
|
+
: entry.original.value * 16}
|
|
322
|
+
</td>
|
|
323
|
+
</tr>
|
|
324
|
+
))}
|
|
325
|
+
</tbody>
|
|
326
|
+
</table>
|
|
327
|
+
|
|
328
|
+
## Line Height
|
|
329
|
+
|
|
330
|
+
Used these tokens to set the line-heights of elements.
|
|
331
|
+
|
|
332
|
+
<table width="100%">
|
|
333
|
+
<thead>
|
|
334
|
+
<tr>
|
|
335
|
+
<th>token name</th>
|
|
336
|
+
<th>prop value</th>
|
|
337
|
+
<th>value</th>
|
|
338
|
+
</tr>
|
|
339
|
+
</thead>
|
|
340
|
+
<tbody>
|
|
341
|
+
{Object.entries(designTokens.size['line-height']).map(
|
|
342
|
+
([name, entry], i) => (
|
|
343
|
+
<tr key={i}>
|
|
344
|
+
<td>
|
|
345
|
+
<code>{`size-line-height-${name}`}</code>
|
|
346
|
+
</td>
|
|
347
|
+
<td>
|
|
348
|
+
<code>{name}</code>
|
|
349
|
+
</td>
|
|
350
|
+
<td>{entry.original.value}</td>
|
|
351
|
+
</tr>
|
|
352
|
+
)
|
|
353
|
+
)}
|
|
354
|
+
</tbody>
|
|
355
|
+
</table>
|
|
356
|
+
|
|
357
|
+
## Spacing
|
|
358
|
+
|
|
359
|
+
Spacing tokens are intended for use with `margin` and `padding` properties. They are defined in `rem`, which means they will scale when adjusting the root font size. Pixel values are calculated with a root font size of `16px`.
|
|
360
|
+
|
|
361
|
+
<table width="100%">
|
|
362
|
+
<thead>
|
|
363
|
+
<tr>
|
|
364
|
+
<th>token name</th>
|
|
365
|
+
<th>prop value</th>
|
|
366
|
+
<th>value</th>
|
|
367
|
+
<th>px</th>
|
|
368
|
+
</tr>
|
|
369
|
+
</thead>
|
|
370
|
+
<tbody>
|
|
371
|
+
{Object.entries(designTokens.size.spacing).map(([name, entry], i) => {
|
|
372
|
+
return (
|
|
373
|
+
<tr key={i}>
|
|
374
|
+
<td>
|
|
375
|
+
<code>{`size-spacing-${name}`}</code>
|
|
376
|
+
</td>
|
|
377
|
+
<td>
|
|
378
|
+
<code>{name}</code>
|
|
379
|
+
</td>
|
|
380
|
+
<td>{entry.value}</td>
|
|
381
|
+
<td>
|
|
382
|
+
{name === 'base'
|
|
383
|
+
? '16'
|
|
384
|
+
: ['inherit', 'auto'].includes(name)
|
|
385
|
+
? ''
|
|
386
|
+
: entry.original.value * 16}
|
|
387
|
+
</td>
|
|
388
|
+
</tr>
|
|
389
|
+
);
|
|
390
|
+
})}
|
|
391
|
+
</tbody>
|
|
392
|
+
</table>
|
|
393
|
+
|
|
394
|
+
## Z-Index
|
|
395
|
+
|
|
396
|
+
Used these tokens to set the z-index order of layering elements.
|
|
397
|
+
|
|
398
|
+
<table width="100%">
|
|
399
|
+
<thead>
|
|
400
|
+
<tr>
|
|
401
|
+
<th>token name</th>
|
|
402
|
+
<th>value</th>
|
|
403
|
+
</tr>
|
|
404
|
+
</thead>
|
|
405
|
+
<tbody>
|
|
406
|
+
{Object.entries(designTokens.size['z-index']).map(([name, entry], i) => (
|
|
407
|
+
<tr key={i}>
|
|
408
|
+
<td>
|
|
409
|
+
<code>{`size-z-index-${name}`}</code>
|
|
410
|
+
</td>
|
|
411
|
+
<td>{entry.original.value}</td>
|
|
412
|
+
</tr>
|
|
413
|
+
))}
|
|
414
|
+
</tbody>
|
|
415
|
+
</table>
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="About/Get Started" />
|
|
4
|
+
|
|
5
|
+
# Get Started
|
|
6
|
+
|
|
7
|
+
### 1. Install
|
|
8
|
+
|
|
9
|
+
`yarn add @hyphen/hyphen-components`
|
|
10
|
+
|
|
11
|
+
or
|
|
12
|
+
|
|
13
|
+
`npm install @hyphen/hyphen-components`
|
|
14
|
+
|
|
15
|
+
### 2. Import Global CSS
|
|
16
|
+
|
|
17
|
+
```jsx
|
|
18
|
+
import '@hyphen/hyphen-components/dist/css/utilities.css';
|
|
19
|
+
import '@hyphen/hyphen-components/dist/css/variables.css';
|
|
20
|
+
import '@hyphen/hyphen-components/dist/css/index.css';
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### 3. Import Global CSS Reset (Optional)
|
|
24
|
+
|
|
25
|
+
```jsx
|
|
26
|
+
import '@hyphen/hyphen-components/dist/css/reset.css';
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 4. Import Font (Optional)
|
|
30
|
+
|
|
31
|
+
```jsx
|
|
32
|
+
import '@hyphen/hyphen-components/dist/css/fonts';
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 5. Basic Usage
|
|
36
|
+
|
|
37
|
+
```jsx
|
|
38
|
+
import React from 'react';
|
|
39
|
+
import ReactDOM from 'react-dom';
|
|
40
|
+
import { Box } from '@hyphen/hyphen-components';
|
|
41
|
+
|
|
42
|
+
function App() {
|
|
43
|
+
return <Box>Hello World</Box>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
ReactDOM.render(<App />, document.querySelector('#app'));
|
|
47
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Meta } from '@storybook/blocks';
|
|
2
|
+
|
|
3
|
+
<Meta title="About/Introduction" />
|
|
4
|
+
|
|
5
|
+
# Hyphen Design System
|
|
6
|
+
|
|
7
|
+
Welcome to the Hyphen Design System, whose purpose is to help us deliver high quality Hyphen branded applications, faster and better. It consists of the following:
|
|
8
|
+
|
|
9
|
+
- [Hyphen Components](https://github.com/hyphen/hyphen-components) - an open source, react-based, component library for Hyphen applications and websites.
|
|
10
|
+
- [Hyphen Design Tokens](https://github.com/hyphen/hyphen-design-tokens) - A central location to store shared attributes of the Hyphen Design System. These include things like color, fonts, spacing, and more.
|
|
11
|
+
|
|
12
|
+
❤️ The Hyphen Team
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|