@nypl/design-system-react-components 0.25.1 → 0.25.5
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/CHANGELOG.md +118 -1
- package/README.md +98 -50
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/dist/components/Button/Button.d.ts +13 -8
- package/dist/components/Button/ButtonTypes.d.ts +2 -1
- package/dist/components/Card/Card.d.ts +36 -52
- package/dist/components/Card/CardTypes.d.ts +0 -15
- package/dist/components/Checkbox/Checkbox.d.ts +17 -13
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +4 -2
- package/dist/components/ComponentWrapper/ComponentWrapper.d.ts +15 -0
- package/dist/components/DatePicker/DatePicker.d.ts +36 -34
- package/dist/components/Fieldset/Fieldset.d.ts +25 -0
- package/dist/components/Heading/Heading.d.ts +4 -4
- package/dist/components/HelperErrorText/HelperErrorText.d.ts +17 -14
- package/dist/components/HorizontalRule/HorizontalRule.d.ts +10 -9
- package/dist/components/Icons/Icon.d.ts +8 -0
- package/dist/components/Icons/IconSvgs.d.ts +11 -0
- package/dist/components/Icons/IconTypes.d.ts +11 -0
- package/dist/components/Image/Image.d.ts +19 -9
- package/dist/components/Image/ImageTypes.d.ts +20 -0
- package/dist/components/Link/Link.d.ts +4 -0
- package/dist/components/List/List.d.ts +19 -14
- package/dist/components/Notification/Notification.d.ts +37 -16
- package/dist/components/Pagination/Pagination.d.ts +16 -13
- package/dist/components/Pagination/Pagination.stories.d.ts +2 -0
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +29 -0
- package/dist/components/ProgressIndicator/ProgressIndicatorTypes.d.ts +8 -0
- package/dist/components/Radio/Radio.d.ts +2 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +4 -2
- package/dist/components/SearchBar/SearchBar.d.ts +3 -3
- package/dist/components/Select/Select.d.ts +2 -0
- package/dist/components/SkeletonLoader/SkeletonLoader.d.ts +18 -14
- package/dist/components/Slider/Slider.d.ts +57 -0
- package/dist/components/StyleGuide/ColorCard.d.ts +12 -0
- package/dist/components/Tabs/Tabs.d.ts +1 -1
- package/dist/components/TextInput/TextInput.d.ts +12 -0
- package/dist/components/VideoPlayer/VideoPlayer.d.ts +6 -8
- package/dist/components/VideoPlayer/VideoPlayerTypes.d.ts +2 -2
- package/dist/design-system-react-components.cjs.development.js +6131 -3715
- package/dist/design-system-react-components.cjs.development.js.map +1 -1
- package/dist/design-system-react-components.cjs.production.min.js +1 -1
- package/dist/design-system-react-components.cjs.production.min.js.map +1 -1
- package/dist/design-system-react-components.esm.js +6124 -3699
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/tests/useCarouselStyles.test.d.ts +1 -0
- package/dist/hooks/useCarouselStyles.d.ts +16 -0
- package/dist/hooks/useNYPLTheme.d.ts +54 -0
- package/dist/hooks/useWindowSize.d.ts +10 -0
- package/dist/index.d.ts +13 -8
- package/dist/resources.scss +180 -170
- package/dist/styles.css +1 -1
- package/dist/theme/components/button.d.ts +22 -8
- package/dist/theme/components/card.d.ts +168 -0
- package/dist/theme/components/checkbox.d.ts +5 -1
- package/dist/theme/components/checkboxGroup.d.ts +12 -0
- package/dist/theme/components/componentWrapper.d.ts +11 -0
- package/dist/theme/components/datePicker.d.ts +16 -0
- package/dist/theme/components/fieldset.d.ts +27 -0
- package/dist/theme/components/global.d.ts +23 -13
- package/dist/theme/components/globalMixins.d.ts +9 -1
- package/dist/theme/components/heading.d.ts +5 -0
- package/dist/theme/components/helperErrorText.d.ts +10 -0
- package/dist/theme/components/hero.d.ts +1 -0
- package/dist/theme/components/horizontalRule.d.ts +14 -0
- package/dist/theme/components/image.d.ts +31 -0
- package/dist/theme/components/label.d.ts +5 -3
- package/dist/theme/components/link.d.ts +4 -0
- package/dist/theme/components/list.d.ts +89 -0
- package/dist/theme/components/notification.d.ts +75 -0
- package/dist/theme/components/pagination.d.ts +19 -0
- package/dist/theme/components/progressIndicator.d.ts +50 -0
- package/dist/theme/components/radioGroup.d.ts +12 -0
- package/dist/theme/components/select.d.ts +11 -2
- package/dist/theme/components/skeletonLoader.d.ts +98 -0
- package/dist/theme/components/slider.d.ts +51 -0
- package/dist/theme/components/tabs.d.ts +54 -3
- package/dist/theme/components/textInput.d.ts +8 -1
- package/dist/theme/components/videoPlayer.d.ts +40 -0
- package/dist/theme/foundations/breakpoints.d.ts +8 -8
- package/dist/theme/foundations/global.d.ts +6 -1
- package/dist/theme/foundations/radii.d.ts +5 -0
- package/dist/theme/foundations/spacing.d.ts +16 -16
- package/package.json +72 -83
- package/src/__tests__/setup.ts +2 -2
- package/src/components/Accordion/Accordion.stories.mdx +39 -44
- package/src/components/Autosuggest/Autosuggest.stories.mdx +3 -3
- package/src/components/Autosuggest/Autosuggest.stories.tsx +2 -1
- package/src/components/Autosuggest/_Autosuggest.scss +5 -5
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +14 -10
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +23 -0
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +5 -1
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +199 -1
- package/src/components/Button/Button.stories.mdx +15 -10
- package/src/components/Button/Button.test.tsx +21 -7
- package/src/components/Button/Button.tsx +22 -34
- package/src/components/Button/ButtonTypes.tsx +1 -0
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +41 -10
- package/src/components/Card/Card.stories.mdx +296 -259
- package/src/components/Card/Card.test.tsx +156 -84
- package/src/components/Card/Card.tsx +195 -145
- package/src/components/Card/CardTypes.tsx +0 -17
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +410 -0
- package/src/components/CardEdition/CardEdition.stories.tsx +15 -47
- package/src/components/CardEdition/_CardEdition.scss +22 -23
- package/src/components/Chakra/Box.stories.mdx +15 -16
- package/src/components/Chakra/Center.stories.mdx +31 -16
- package/src/components/Chakra/Grid.stories.mdx +28 -15
- package/src/components/Chakra/Stack.stories.mdx +35 -18
- package/src/components/Checkbox/Checkbox.stories.mdx +33 -11
- package/src/components/Checkbox/Checkbox.test.tsx +47 -2
- package/src/components/Checkbox/Checkbox.tsx +39 -33
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +90 -2
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +82 -2
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +29 -2
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +22 -18
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +47 -81
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +63 -0
- package/src/components/DatePicker/DatePicker.stories.mdx +163 -62
- package/src/components/DatePicker/DatePicker.test.tsx +264 -64
- package/src/components/DatePicker/DatePicker.tsx +159 -128
- package/src/components/DatePicker/_DatePicker.scss +33 -67
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +818 -0
- package/src/components/Fieldset/Fieldset.stories.mdx +55 -0
- package/src/components/Fieldset/Fieldset.test.tsx +125 -0
- package/src/components/Fieldset/Fieldset.tsx +52 -0
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +68 -0
- package/src/components/Form/Form.stories.mdx +24 -6
- package/src/components/Form/Form.test.tsx +1 -1
- package/src/components/Form/Form.tsx +1 -0
- package/src/components/Grid/SimpleGrid.stories.mdx +32 -39
- package/src/components/Grid/SimpleGrid.test.tsx +4 -4
- package/src/components/Heading/Heading.stories.mdx +3 -4
- package/src/components/Heading/Heading.tsx +5 -5
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +124 -0
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +39 -44
- package/src/components/HelperErrorText/HelperErrorText.tsx +37 -39
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +25 -0
- package/src/components/Hero/Hero.stories.mdx +12 -2
- package/src/components/Hero/Hero.tsx +1 -1
- package/src/components/Hero/HeroTypes.tsx +1 -0
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +7 -7
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +8 -6
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +33 -28
- package/src/components/HorizontalRule/HorizontalRule.tsx +27 -29
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +27 -9
- package/src/components/Icons/Icon.stories.mdx +12 -4
- package/src/components/Icons/Icon.test.tsx +18 -0
- package/src/components/Icons/Icon.tsx +16 -1
- package/src/components/Icons/IconSvgs.tsx +22 -0
- package/src/components/Icons/IconTypes.tsx +11 -0
- package/src/components/Image/Image.stories.mdx +220 -0
- package/src/components/Image/Image.test.tsx +131 -29
- package/src/components/Image/Image.tsx +84 -56
- package/src/components/Image/ImageTypes.ts +22 -0
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +190 -0
- package/src/components/Input/Input.stories.tsx +23 -67
- package/src/components/Input/Input.test.tsx +4 -4
- package/src/components/Input/_Input.scss +23 -14
- package/src/components/Link/Link.tsx +4 -1
- package/src/components/List/List.stories.mdx +124 -49
- package/src/components/List/List.test.tsx +142 -63
- package/src/components/List/List.tsx +89 -93
- package/src/components/List/__snapshots__/List.test.tsx.snap +109 -0
- package/src/components/Modal/Modal.stories.mdx +3 -3
- package/src/components/Modal/_Modal.scss +2 -2
- package/src/components/Notification/Notification.stories.mdx +109 -112
- package/src/components/Notification/Notification.test.tsx +99 -110
- package/src/components/Notification/Notification.tsx +156 -159
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +159 -8
- package/src/components/Pagination/Pagination.stories.mdx +26 -27
- package/src/components/Pagination/Pagination.stories.tsx +11 -16
- package/src/components/Pagination/Pagination.test.tsx +276 -146
- package/src/components/Pagination/Pagination.tsx +174 -154
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +285 -0
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +292 -0
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +225 -0
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +126 -0
- package/src/components/ProgressIndicator/ProgressIndicatorTypes.ts +8 -0
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +357 -0
- package/src/components/Radio/Radio.test.tsx +20 -4
- package/src/components/Radio/Radio.tsx +6 -3
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +3 -0
- package/src/components/RadioGroup/RadioGroup.stories.mdx +3 -4
- package/src/components/RadioGroup/RadioGroup.test.tsx +24 -1
- package/src/components/RadioGroup/RadioGroup.tsx +19 -19
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +42 -72
- package/src/components/SearchBar/SearchBar.Test.tsx +20 -1
- package/src/components/SearchBar/SearchBar.stories.mdx +113 -8
- package/src/components/SearchBar/SearchBar.tsx +20 -10
- package/src/components/Select/Select.test.tsx +12 -0
- package/src/components/Select/Select.tsx +5 -2
- package/src/components/Select/SelectTypes.tsx +1 -0
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +28 -59
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +97 -177
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +74 -71
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +739 -0
- package/src/components/Slider/Slider.stories.mdx +529 -0
- package/src/components/Slider/Slider.test.tsx +653 -0
- package/src/components/Slider/Slider.tsx +303 -0
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +1946 -0
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +1 -1
- package/src/components/StyleGuide/Breakpoints.stories.mdx +34 -10
- package/src/components/StyleGuide/Buttons.stories.mdx +89 -73
- package/src/components/StyleGuide/ColorCard.tsx +46 -0
- package/src/components/StyleGuide/Colors.stories.mdx +171 -311
- package/src/components/StyleGuide/DesignTokens.stories.mdx +170 -0
- package/src/components/StyleGuide/Forms.stories.mdx +9 -7
- package/src/components/StyleGuide/Iconography.stories.mdx +85 -91
- package/src/components/StyleGuide/Spacing.stories.mdx +31 -23
- package/src/components/StyleGuide/Typography.stories.mdx +202 -189
- package/src/components/StyleGuide/UIDocCard.tsx +1 -1
- package/src/components/Tabs/Tabs.stories.mdx +73 -11
- package/src/components/Tabs/Tabs.tsx +87 -64
- package/src/components/Template/Template.stories.mdx +25 -27
- package/src/components/TextInput/TextInput.stories.mdx +1 -1
- package/src/components/TextInput/TextInput.test.tsx +22 -2
- package/src/components/TextInput/TextInput.tsx +28 -8
- package/src/components/TextInput/TextInputTypes.tsx +2 -0
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +17 -4
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +54 -53
- package/src/components/VideoPlayer/VideoPlayer.tsx +50 -51
- package/src/components/VideoPlayer/VideoPlayerTypes.tsx +2 -2
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +91 -0
- package/src/docs/Chakra.stories.mdx +244 -63
- package/src/docs/Intro.stories.mdx +5 -2
- package/src/hooks/tests/useCarouselStyles.test.ts +140 -0
- package/src/hooks/tests/useNYPLTheme.test.tsx +36 -0
- package/src/hooks/useCarouselStyles.ts +34 -0
- package/src/hooks/useNYPLTheme.ts +67 -0
- package/src/hooks/useWindowSize.ts +40 -0
- package/src/index.ts +22 -19
- package/src/resources.scss +5 -5
- package/src/styles/base/{_02-breakpoints.scss → _01-breakpoints.scss} +9 -10
- package/src/styles/base/{_03-mixins.scss → _02-mixins.scss} +16 -5
- package/src/styles/base/{_04-base.scss → _03-base.scss} +7 -2
- package/src/styles/base/{_05-focus.scss → _04-focus.scss} +0 -15
- package/src/styles/base/_place-holder.scss +14 -3
- package/src/styles/{03-space → space}/_space-inline.scss +14 -14
- package/src/styles/{03-space → space}/_space-inset.scss +10 -10
- package/src/styles/space/_space-stack.scss +116 -0
- package/src/styles.scss +13 -60
- package/src/theme/components/button.ts +21 -15
- package/src/theme/components/card.ts +174 -0
- package/src/theme/components/checkbox.ts +8 -3
- package/src/theme/components/checkboxGroup.ts +8 -0
- package/src/theme/components/componentWrapper.ts +10 -0
- package/src/theme/components/datePicker.ts +17 -0
- package/src/theme/components/fieldset.ts +18 -0
- package/src/theme/components/global.ts +26 -15
- package/src/theme/components/globalMixins.ts +9 -1
- package/src/theme/components/heading.ts +10 -5
- package/src/theme/components/helperErrorText.ts +9 -0
- package/src/theme/components/hero.ts +4 -3
- package/src/theme/components/horizontalRule.ts +13 -0
- package/src/theme/components/icon.ts +9 -9
- package/src/theme/components/image.ts +116 -0
- package/src/theme/components/label.ts +3 -10
- package/src/theme/components/link.ts +5 -1
- package/src/theme/components/list.ts +73 -0
- package/src/theme/components/notification.ts +93 -0
- package/src/theme/components/pagination.ts +20 -0
- package/src/theme/components/progressIndicator.ts +62 -0
- package/src/theme/components/radio.ts +2 -2
- package/src/theme/components/radioGroup.ts +8 -0
- package/src/theme/components/select.ts +6 -3
- package/src/theme/components/skeletonLoader.ts +107 -0
- package/src/theme/components/slider.ts +79 -0
- package/src/theme/components/statusBadge.ts +1 -2
- package/src/theme/components/tabs.ts +49 -19
- package/src/theme/components/template.ts +8 -8
- package/src/theme/components/textInput.ts +5 -4
- package/src/theme/components/videoPlayer.ts +49 -0
- package/src/theme/foundations/breakpoints.ts +8 -8
- package/src/theme/foundations/global.ts +6 -1
- package/src/theme/foundations/radii.ts +6 -0
- package/src/theme/foundations/spacing.ts +24 -24
- package/src/theme/index.ts +41 -10
- package/src/utils/componentCategories.ts +4 -3
- package/dist/components/HelperErrorText/HelperErrorText.stories.d.ts +0 -16
- package/dist/components/Image/Image.stories.d.ts +0 -18
- package/dist/components/List/List.stories.d.ts +0 -7
- package/dist/theme/components/customCheckboxGroup.d.ts +0 -18
- package/dist/theme/components/customRadioGroup.d.ts +0 -18
- package/src/components/Button/_Button.scss +0 -32
- package/src/components/Card/_Card.scss +0 -308
- package/src/components/HelperErrorText/HelperErrorText.stories.tsx +0 -48
- package/src/components/HelperErrorText/_HelperErrorText.scss +0 -9
- package/src/components/HorizontalRule/_HorizontalRule.scss +0 -15
- package/src/components/Image/Image.stories.tsx +0 -54
- package/src/components/Image/_Image.scss +0 -38
- package/src/components/List/List.stories.tsx +0 -139
- package/src/components/List/_List.scss +0 -76
- package/src/components/Notification/_Notification.scss +0 -110
- package/src/components/Pagination/_Pagination.scss +0 -40
- package/src/components/SkeletonLoader/_SkeletonLoader.scss +0 -142
- package/src/components/VideoPlayer/_VideoPlayer.scss +0 -38
- package/src/styles/01-colors/_colors-brand.scss +0 -62
- package/src/styles/01-colors/_colors-utility.scss +0 -67
- package/src/styles/02-typography/_type-scale.css +0 -11
- package/src/styles/02-typography/_type-weight.css +0 -7
- package/src/styles/02-typography/_typefaces.css +0 -4
- package/src/styles/03-space/_space-stack.scss +0 -116
- package/src/styles/03-space/_space.css +0 -30
- package/src/styles/base/_card-grid.scss +0 -78
- package/src/styles/base/_typography.scss +0 -11
- package/src/theme/components/customCheckboxGroup.ts +0 -12
- package/src/theme/components/customRadioGroup.ts +0 -12
|
@@ -237,7 +237,7 @@ help reduce any visual mistakes.
|
|
|
237
237
|
|
|
238
238
|
<Canvas>
|
|
239
239
|
<DSProvider>
|
|
240
|
-
<div style={{ display: "flex",
|
|
240
|
+
<div style={{ display: "flex", flexDirection: "column" }}>
|
|
241
241
|
<div style={{ width: "300px" }}>
|
|
242
242
|
A regular button:
|
|
243
243
|
<Button buttonType={ButtonTypes.Primary} id="button-ex4" type="submit">
|
|
@@ -18,24 +18,48 @@ import { getCategory } from "../../utils/componentCategories";
|
|
|
18
18
|
|
|
19
19
|
# Breakpoints
|
|
20
20
|
|
|
21
|
+
| Table of Contents |
|
|
22
|
+
| ---------------------------------------------- |
|
|
23
|
+
| 1. [General Information](#general-information) |
|
|
24
|
+
| 2. [CSS Variables](#css-variables) |
|
|
25
|
+
| 3. [Figma Reference](#figma-reference) |
|
|
26
|
+
|
|
27
|
+
## General Information
|
|
28
|
+
|
|
21
29
|
The DS adheres to four global breakpoints for responsive layouts and typography.
|
|
22
30
|
|
|
23
|
-
- Desktop: 1280px
|
|
24
|
-
- Tablet Landscape: 960px
|
|
25
|
-
- Tablet Portrait: 600px
|
|
26
31
|
- Mobile: 320px
|
|
32
|
+
- Tablet Portrait: 600px
|
|
33
|
+
- Tablet Landscape: 960px
|
|
34
|
+
- Desktop: 1280px
|
|
27
35
|
|
|
28
|
-
|
|
36
|
+
## CSS Variables
|
|
29
37
|
|
|
30
38
|
The following CSS variables are available through the DS.
|
|
31
39
|
|
|
40
|
+
```scss
|
|
41
|
+
--nypl-breakpoint-small: 320px;
|
|
42
|
+
--nypl-breakpoint-medium: 600px;
|
|
43
|
+
--nypl-breakpoint-large: 960px;
|
|
44
|
+
--nypl-breakpoint-xl: 1280px;
|
|
32
45
|
```
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
46
|
+
|
|
47
|
+
## SCSS Variables
|
|
48
|
+
|
|
49
|
+
If you are using SCSS and imported the NYPL Design System `/dist/resources.scss`
|
|
50
|
+
file, then you can use the following SCSS variables in your media queries or
|
|
51
|
+
SCSS `breakpoint` function (if used).
|
|
52
|
+
|
|
53
|
+
```scss
|
|
54
|
+
$nypl-breakpoint-small: 320px;
|
|
55
|
+
$nypl-breakpoint-medium: 600px;
|
|
56
|
+
$nypl-breakpoint-large: 960px;
|
|
57
|
+
$nypl-breakpoint-xl: 1280px;
|
|
58
|
+
$nypl-max-width: $nypl-breakpoint-xl;
|
|
37
59
|
```
|
|
38
60
|
|
|
39
|
-
|
|
61
|
+
## Figma Reference
|
|
62
|
+
|
|
63
|
+
For additional spacing information, please refer to the Figma Main file.
|
|
40
64
|
|
|
41
|
-
https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=17983%3A60146
|
|
65
|
+
- https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=17983%3A60146
|
|
@@ -6,18 +6,19 @@ import {
|
|
|
6
6
|
Description,
|
|
7
7
|
} from "@storybook/addon-docs/blocks";
|
|
8
8
|
import { withDesign } from "storybook-addon-designs";
|
|
9
|
+
import { ButtonGroup } from "@chakra-ui/react";
|
|
9
10
|
|
|
10
|
-
import
|
|
11
|
-
import Button, { ButtonGroup } from "../Button/Button";
|
|
11
|
+
import Button from "../Button/Button";
|
|
12
12
|
import { ButtonTypes } from "../Button/ButtonTypes";
|
|
13
13
|
import Icon from "../Icons/Icon";
|
|
14
14
|
import {
|
|
15
|
+
IconAlign,
|
|
15
16
|
IconNames,
|
|
16
17
|
IconRotationTypes,
|
|
17
18
|
IconSizes,
|
|
18
|
-
IconAlign,
|
|
19
19
|
} from "../Icons/IconTypes";
|
|
20
20
|
import getCSSVariable from "../../helpers/getCSSVariable";
|
|
21
|
+
import { getCategory } from "../../utils/componentCategories";
|
|
21
22
|
import DSProvider from "../../theme/provider";
|
|
22
23
|
|
|
23
24
|
<Meta
|
|
@@ -26,15 +27,26 @@ import DSProvider from "../../theme/provider";
|
|
|
26
27
|
parameters={{
|
|
27
28
|
design: {
|
|
28
29
|
type: "figma",
|
|
29
|
-
url:
|
|
30
|
-
"https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298",
|
|
30
|
+
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298",
|
|
31
31
|
},
|
|
32
32
|
}}
|
|
33
33
|
/>
|
|
34
34
|
|
|
35
35
|
# Buttons
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
| Table of Contents |
|
|
38
|
+
| ---------------------------------------------- |
|
|
39
|
+
| 1. [General Information](#general-information) |
|
|
40
|
+
| 2. [Guidelines](#guidelines) |
|
|
41
|
+
| 3. [Button Groups](#button-groups) |
|
|
42
|
+
| 4. [Button Types](#button-types) |
|
|
43
|
+
| 5. [Patterns](#patterns) |
|
|
44
|
+
| 6. [Figma Reference](#figma-reference) |
|
|
45
|
+
|
|
46
|
+
## General Information
|
|
47
|
+
|
|
48
|
+
Use the NYPL Design System [Button](https://nypl.github.io/nypl-design-system/storybook-static/?path=/docs/form-elements-button--basic)
|
|
49
|
+
component to render form buttons.
|
|
38
50
|
|
|
39
51
|
```jsx
|
|
40
52
|
import { Button, ButtonTypes } from "@nypl/design-system-react-components";
|
|
@@ -42,51 +54,35 @@ import { Button, ButtonTypes } from "@nypl/design-system-react-components";
|
|
|
42
54
|
<Button buttonType={ButtonTypes.Primary}>Button Text</Button>;
|
|
43
55
|
```
|
|
44
56
|
|
|
45
|
-
##
|
|
46
|
-
|
|
47
|
-
For information about using the `Button` component, please see below.
|
|
48
|
-
|
|
49
|
-
- [General Guidelines](#general-guidelines)
|
|
50
|
-
- [Spacing](#spacing)
|
|
51
|
-
- [Button Types](#button-types)
|
|
52
|
-
- [Patterns](#patterns)
|
|
53
|
-
- [Figma Reference](#figma-reference)
|
|
54
|
-
|
|
55
|
-
## General Guidelines
|
|
57
|
+
## Guidelines
|
|
56
58
|
|
|
57
59
|
- Button text is optional.
|
|
58
60
|
- Button text should be title case.
|
|
59
61
|
- Button icon is optional.
|
|
60
62
|
- Buttons may have an icon on either the left or the right.
|
|
61
|
-
- Buttons by default are blue. However, Donation buttons are red.
|
|
62
|
-
- Buttons used for Back to Top actions have a Secondary button style with an
|
|
63
|
-
|
|
63
|
+
- Buttons by default are blue. However, Donation callout buttons are red.
|
|
64
|
+
- Buttons used for Back to Top actions have a Secondary button style with an
|
|
65
|
+
arrow icon pointing up.
|
|
66
|
+
- When buttons are used in a group, they should be wrapped in a `ButtonGroup`.
|
|
67
|
+
- When buttons are used in a group where the user can move forward or backward,
|
|
68
|
+
the `Primary` button is on the right and the `Secondary` button on the left
|
|
69
|
+
(i.e. cancel = secondary, submit = primary).
|
|
64
70
|
|
|
65
|
-
##
|
|
71
|
+
## Button Groups
|
|
66
72
|
|
|
67
|
-
|
|
73
|
+
When `Button` components are displayed in a group, use the `ButtonGroup`
|
|
74
|
+
component to handle the spacing and layout. The `ButtonGroup` component will use
|
|
75
|
+
`--nypl-space-xs` (0.5rem) for spacing in horizontal group layouts.
|
|
76
|
+
|
|
77
|
+
Standalone `Button` components and the `ButtonGroup` component should use
|
|
78
|
+
`--nypl-space-l` (2rem) for spacing between all other UI elements. This spacing
|
|
79
|
+
can be achieved by using the `Form` component to wrap the `Button`s.
|
|
68
80
|
|
|
69
81
|
<Canvas>
|
|
70
82
|
<DSProvider>
|
|
71
83
|
<ButtonGroup>
|
|
72
|
-
<Button
|
|
73
|
-
|
|
74
|
-
attributes={{
|
|
75
|
-
style: {
|
|
76
|
-
marginRight: getCSSVariable("--space-xs"),
|
|
77
|
-
},
|
|
78
|
-
}}
|
|
79
|
-
>
|
|
80
|
-
Button Text
|
|
81
|
-
</Button>
|
|
82
|
-
<Button
|
|
83
|
-
buttonType={ButtonTypes.Primary}
|
|
84
|
-
attributes={{
|
|
85
|
-
style: {
|
|
86
|
-
marginRight: getCSSVariable("--space-xs"),
|
|
87
|
-
},
|
|
88
|
-
}}
|
|
89
|
-
>
|
|
84
|
+
<Button buttonType={ButtonTypes.Primary}>Button Text</Button>
|
|
85
|
+
<Button buttonType={ButtonTypes.Primary}>
|
|
90
86
|
<Icon
|
|
91
87
|
name={IconNames.Search}
|
|
92
88
|
size={IconSizes.Small}
|
|
@@ -94,27 +90,10 @@ Buttons should use `--space-xs` (0.5rem) for spacing in situations where multipl
|
|
|
94
90
|
/>
|
|
95
91
|
Button Text
|
|
96
92
|
</Button>
|
|
97
|
-
<Button
|
|
98
|
-
buttonType={ButtonTypes.Primary}
|
|
99
|
-
attributes={{
|
|
100
|
-
style: {
|
|
101
|
-
marginRight: getCSSVariable("--space-xs"),
|
|
102
|
-
},
|
|
103
|
-
}}
|
|
104
|
-
>
|
|
93
|
+
<Button buttonType={ButtonTypes.Primary}>
|
|
105
94
|
<Icon name={IconNames.Close} size={IconSizes.Medium} />
|
|
106
95
|
</Button>
|
|
107
|
-
<Button
|
|
108
|
-
buttonType={ButtonTypes.Primary}
|
|
109
|
-
attributes={{
|
|
110
|
-
style: {
|
|
111
|
-
backgroundColor: getCSSVariable("--section-books-and-more-primary"),
|
|
112
|
-
marginRight: getCSSVariable("--space-xs"),
|
|
113
|
-
},
|
|
114
|
-
}}
|
|
115
|
-
>
|
|
116
|
-
Button Text
|
|
117
|
-
</Button>
|
|
96
|
+
<Button buttonType={ButtonTypes.Callout}>Donate</Button>
|
|
118
97
|
<Button buttonType={ButtonTypes.Secondary}>
|
|
119
98
|
Back to Top
|
|
120
99
|
<Icon
|
|
@@ -130,15 +109,20 @@ Buttons should use `--space-xs` (0.5rem) for spacing in situations where multipl
|
|
|
130
109
|
|
|
131
110
|
## Button Types
|
|
132
111
|
|
|
133
|
-
The `buttonType` prop should be used to render various forms of the button
|
|
112
|
+
The `buttonType` prop should be used to render various forms of the button
|
|
113
|
+
component. Note that the `SearchBar` type is only used internally in the
|
|
114
|
+
`SearchBar` component.
|
|
134
115
|
|
|
135
116
|
<Canvas>
|
|
136
117
|
<DSProvider>
|
|
137
118
|
<ButtonGroup>
|
|
138
119
|
<Button buttonType={ButtonTypes.Primary}>Primary Button</Button>
|
|
139
120
|
<Button buttonType={ButtonTypes.Secondary}>Secondary Button</Button>
|
|
121
|
+
<Button buttonType={ButtonTypes.Callout}>Callout Button</Button>
|
|
140
122
|
<Button buttonType={ButtonTypes.Pill}>Pill Button</Button>
|
|
141
123
|
<Button buttonType={ButtonTypes.Link}>Link Button</Button>
|
|
124
|
+
<Button buttonType={ButtonTypes.SearchBar}>SearchBar Button</Button>
|
|
125
|
+
<Button buttonType={ButtonTypes.NoBrand}>NoBrand Button</Button>
|
|
142
126
|
</ButtonGroup>
|
|
143
127
|
</DSProvider>
|
|
144
128
|
</Canvas>
|
|
@@ -154,6 +138,11 @@ The `buttonType` prop should be used to render various forms of the button compo
|
|
|
154
138
|
- often paired with a Primary button
|
|
155
139
|
- Visual Treatment: rectangular, outlined
|
|
156
140
|
|
|
141
|
+
### ButtonTypes.Callout
|
|
142
|
+
|
|
143
|
+
- used for call to actions such as donation buttons
|
|
144
|
+
- Visual Treatment: rectangular, NYPL red background
|
|
145
|
+
|
|
157
146
|
### ButtonTypes.Pill
|
|
158
147
|
|
|
159
148
|
- used for equally weighted actions
|
|
@@ -165,24 +154,33 @@ The `buttonType` prop should be used to render various forms of the button compo
|
|
|
165
154
|
- used for equally weighted actions
|
|
166
155
|
- Visual Treatment: text link with underline
|
|
167
156
|
|
|
157
|
+
### ButtonTypes.SearchBar
|
|
158
|
+
|
|
159
|
+
- used internally in the `SearchBar` component for visual flow when it is next
|
|
160
|
+
to the `TextInput` component
|
|
161
|
+
- Visual Treatment: rectangular, filled, no border radius on the left side
|
|
162
|
+
|
|
163
|
+
### ButtonTypes.NoBrand
|
|
164
|
+
|
|
165
|
+
- used in cases where there is no brand color
|
|
166
|
+
- Visual Treatment: rectangular, filled with a black background
|
|
167
|
+
|
|
168
168
|
## Patterns
|
|
169
169
|
|
|
170
|
-
Buttons are blue by default
|
|
171
|
-
|
|
170
|
+
- Buttons are blue by default.
|
|
171
|
+
- Buttons that are intended as a call out (i.e. Donation buttons) should be set
|
|
172
|
+
as `ButtonTypes.Callout`.
|
|
173
|
+
- The "Back to Top" button must be set as `ButtonTypes.Secondary` and must
|
|
174
|
+
include an up arrow icon.
|
|
175
|
+
- Previous and Next buttons should be set as `ButtonTypes.Secondary` and be
|
|
176
|
+
wrapped in a `ButtonGroup`.
|
|
177
|
+
- Only use the `ButtonTypes.NoBrand` style where there is no brand color. _This
|
|
178
|
+
should be rarely used._
|
|
172
179
|
|
|
173
180
|
<Canvas>
|
|
174
181
|
<DSProvider>
|
|
175
182
|
<ButtonGroup>
|
|
176
|
-
<Button
|
|
177
|
-
buttonType={ButtonTypes.Primary}
|
|
178
|
-
attributes={{
|
|
179
|
-
style: {
|
|
180
|
-
backgroundColor: getCSSVariable("--section-books-and-more-primary"),
|
|
181
|
-
},
|
|
182
|
-
}}
|
|
183
|
-
>
|
|
184
|
-
Donate to this library
|
|
185
|
-
</Button>
|
|
183
|
+
<Button buttonType={ButtonTypes.Callout}>Donate to this library</Button>
|
|
186
184
|
<Button buttonType={ButtonTypes.Secondary}>
|
|
187
185
|
Back to Top
|
|
188
186
|
<Icon
|
|
@@ -192,6 +190,24 @@ The "Back to Top" button must be of `ButtonTypes` `Secondary` and must include a
|
|
|
192
190
|
align={IconAlign.Right}
|
|
193
191
|
/>
|
|
194
192
|
</Button>
|
|
193
|
+
<Button buttonType={ButtonTypes.Secondary}>
|
|
194
|
+
<Icon
|
|
195
|
+
name={IconNames.Arrow}
|
|
196
|
+
iconRotation={IconRotationTypes.Rotate90}
|
|
197
|
+
align={IconAlign.Left}
|
|
198
|
+
size={IconSizes.Small}
|
|
199
|
+
/>
|
|
200
|
+
Previous
|
|
201
|
+
</Button>
|
|
202
|
+
<Button buttonType={ButtonTypes.Secondary}>
|
|
203
|
+
Next
|
|
204
|
+
<Icon
|
|
205
|
+
name={IconNames.Arrow}
|
|
206
|
+
iconRotation={IconRotationTypes.Rotate270}
|
|
207
|
+
align={IconAlign.Right}
|
|
208
|
+
size={IconSizes.Small}
|
|
209
|
+
/>
|
|
210
|
+
</Button>
|
|
195
211
|
</ButtonGroup>
|
|
196
212
|
</DSProvider>
|
|
197
213
|
</Canvas>
|
|
@@ -200,4 +216,4 @@ The "Back to Top" button must be of `ButtonTypes` `Secondary` and must include a
|
|
|
200
216
|
|
|
201
217
|
For more styling information, please refer to the Figma Main file.
|
|
202
218
|
|
|
203
|
-
https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298
|
|
219
|
+
- https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Master?node-id=11477%3A2298
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import Card from "../Card/Card";
|
|
3
|
+
import { CardLayouts } from "../Card/CardTypes";
|
|
4
|
+
import Heading from "../Heading/Heading";
|
|
5
|
+
import { HeadingLevels } from "../Heading/HeadingTypes";
|
|
6
|
+
// import Text from "../Text/Text";
|
|
7
|
+
// import { TextDisplaySizes } from "../Text/TextTypes";
|
|
8
|
+
|
|
9
|
+
export interface ColorCardProps {
|
|
10
|
+
/** backgroundColor of the color card */
|
|
11
|
+
backgroundColor: string;
|
|
12
|
+
/** name of the CSS var */
|
|
13
|
+
colorName: string;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* ColorCard
|
|
18
|
+
* Component only used for Storybook.
|
|
19
|
+
*/
|
|
20
|
+
export default function ColorCard(
|
|
21
|
+
props: React.PropsWithChildren<ColorCardProps>
|
|
22
|
+
) {
|
|
23
|
+
const { backgroundColor, colorName = "" } = props;
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<div style={{ display: "flex", alignItems: "center" }}>
|
|
27
|
+
<Card
|
|
28
|
+
backgroundColor={backgroundColor}
|
|
29
|
+
center
|
|
30
|
+
layout={CardLayouts.Column}
|
|
31
|
+
border
|
|
32
|
+
/>
|
|
33
|
+
<div style={{ marginLeft: "1rem" }}>
|
|
34
|
+
<Heading level={HeadingLevels.Four}>{colorName}</Heading>
|
|
35
|
+
{/*
|
|
36
|
+
TODO:
|
|
37
|
+
This code is returning the CSS variable name. This is not what we
|
|
38
|
+
want. Rather, we want to see the variable's hex value. This is
|
|
39
|
+
somethign we will need to come back to.
|
|
40
|
+
|
|
41
|
+
<Text noSpace>{backgroundColor}</Text>
|
|
42
|
+
*/}
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
);
|
|
46
|
+
}
|