@nypl/design-system-react-components 1.0.2 → 1.0.3-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/components/Slider/Slider.d.ts +1 -2
- package/dist/components/TextInput/TextInput.d.ts +2 -1
- package/dist/design-system-react-components.cjs.development.js +33 -10
- 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 +33 -10
- package/dist/design-system-react-components.esm.js.map +1 -1
- package/dist/hooks/{tests → __tests__}/useCarouselStyles.test.d.ts +0 -0
- package/dist/theme/components/global.d.ts +1 -1
- package/dist/theme/components/radio.d.ts +8 -0
- package/dist/theme/components/template.d.ts +4 -1
- package/package.json +2 -3
- package/CHANGELOG.md +0 -1430
- package/src/__tests__/fileMock.ts +0 -6
- package/src/__tests__/setup.ts +0 -27
- package/src/__tests__/utils/utils.test.ts +0 -18
- package/src/components/AccessibilityGuide/SkipNavigation.stories.mdx +0 -42
- package/src/components/Accordion/Accordion.stories.mdx +0 -333
- package/src/components/Accordion/Accordion.test.tsx +0 -237
- package/src/components/Accordion/Accordion.tsx +0 -137
- package/src/components/Accordion/__snapshots__/Accordion.test.tsx.snap +0 -734
- package/src/components/Autosuggest/Autosuggest.stories.mdx +0 -75
- package/src/components/Autosuggest/Autosuggest.stories.tsx +0 -211
- package/src/components/Autosuggest/_Autosuggest.scss +0 -51
- package/src/components/Breadcrumbs/Breadcrumbs.stories.mdx +0 -231
- package/src/components/Breadcrumbs/Breadcrumbs.test.tsx +0 -144
- package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -98
- package/src/components/Breadcrumbs/__snapshots__/Breadcrumbs.test.tsx.snap +0 -695
- package/src/components/Button/Button.stories.mdx +0 -320
- package/src/components/Button/Button.test.tsx +0 -184
- package/src/components/Button/Button.tsx +0 -95
- package/src/components/Button/__snapshots__/Button.test.tsx.snap +0 -106
- package/src/components/ButtonGroup/ButtonGroup.stories.mdx +0 -178
- package/src/components/ButtonGroup/ButtonGroup.test.tsx +0 -141
- package/src/components/ButtonGroup/ButtonGroup.tsx +0 -100
- package/src/components/ButtonGroup/__snapshots__/ButtonGroup.test.tsx.snap +0 -117
- package/src/components/Card/Card.stories.mdx +0 -1041
- package/src/components/Card/Card.test.tsx +0 -388
- package/src/components/Card/Card.tsx +0 -346
- package/src/components/Card/__snapshots__/Card.test.tsx.snap +0 -568
- package/src/components/Chakra/Box.stories.mdx +0 -52
- package/src/components/Chakra/Center.stories.mdx +0 -96
- package/src/components/Chakra/Flex.stories.mdx +0 -111
- package/src/components/Chakra/Grid.stories.mdx +0 -89
- package/src/components/Chakra/Stack.stories.mdx +0 -109
- package/src/components/Checkbox/Checkbox.stories.mdx +0 -243
- package/src/components/Checkbox/Checkbox.test.tsx +0 -350
- package/src/components/Checkbox/Checkbox.tsx +0 -152
- package/src/components/Checkbox/__snapshots__/Checkbox.test.tsx.snap +0 -661
- package/src/components/CheckboxGroup/CheckboxGroup.stories.mdx +0 -462
- package/src/components/CheckboxGroup/CheckboxGroup.test.tsx +0 -492
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +0 -173
- package/src/components/CheckboxGroup/__snapshots__/CheckboxGroup.test.tsx.snap +0 -1842
- package/src/components/ComponentWrapper/ComponentWrapper.test.tsx +0 -163
- package/src/components/ComponentWrapper/ComponentWrapper.tsx +0 -76
- package/src/components/ComponentWrapper/__snapshots__/ComponentWrapper.test.tsx.snap +0 -103
- package/src/components/DatePicker/DatePicker.stories.mdx +0 -452
- package/src/components/DatePicker/DatePicker.test.tsx +0 -940
- package/src/components/DatePicker/DatePicker.tsx +0 -450
- package/src/components/DatePicker/_DatePicker.scss +0 -100
- package/src/components/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -908
- package/src/components/Fieldset/Fieldset.stories.mdx +0 -96
- package/src/components/Fieldset/Fieldset.test.tsx +0 -155
- package/src/components/Fieldset/Fieldset.tsx +0 -55
- package/src/components/Fieldset/__snapshots__/Fieldset.test.tsx.snap +0 -89
- package/src/components/Form/Form.stories.mdx +0 -426
- package/src/components/Form/Form.test.tsx +0 -234
- package/src/components/Form/Form.tsx +0 -124
- package/src/components/Form/__snapshots__/Form.test.tsx.snap +0 -115
- package/src/components/Grid/SimpleGrid.stories.mdx +0 -336
- package/src/components/Grid/SimpleGrid.test.tsx +0 -79
- package/src/components/Grid/SimpleGrid.tsx +0 -49
- package/src/components/Grid/__snapshots__/SimpleGrid.test.tsx.snap +0 -23
- package/src/components/Heading/Heading.stories.mdx +0 -187
- package/src/components/Heading/Heading.test.tsx +0 -171
- package/src/components/Heading/Heading.tsx +0 -104
- package/src/components/Heading/__snapshots__/Heading.test.tsx.snap +0 -90
- package/src/components/HelperErrorText/HelperErrorText.stories.mdx +0 -172
- package/src/components/HelperErrorText/HelperErrorText.test.tsx +0 -114
- package/src/components/HelperErrorText/HelperErrorText.tsx +0 -62
- package/src/components/HelperErrorText/__snapshots__/HelperErrorText.test.tsx.snap +0 -93
- package/src/components/Hero/Hero.stories.mdx +0 -378
- package/src/components/Hero/Hero.test.tsx +0 -611
- package/src/components/Hero/Hero.tsx +0 -203
- package/src/components/Hero/__snapshots__/Hero.test.tsx.snap +0 -379
- package/src/components/HorizontalRule/HorizontalRule.stories.mdx +0 -73
- package/src/components/HorizontalRule/HorizontalRule.test.tsx +0 -54
- package/src/components/HorizontalRule/HorizontalRule.tsx +0 -27
- package/src/components/HorizontalRule/__snapshots__/HorizontalRule.test.tsx.snap +0 -44
- package/src/components/Icons/Icon.stories.mdx +0 -413
- package/src/components/Icons/Icon.test.tsx +0 -120
- package/src/components/Icons/Icon.tsx +0 -187
- package/src/components/Icons/IconSvgs.tsx +0 -64
- package/src/components/Icons/__snapshots__/Icon.test.tsx.snap +0 -129
- package/src/components/Image/Image.stories.mdx +0 -332
- package/src/components/Image/Image.test.tsx +0 -155
- package/src/components/Image/Image.tsx +0 -171
- package/src/components/Image/__snapshots__/Image.test.tsx.snap +0 -269
- package/src/components/Label/Label.stories.mdx +0 -100
- package/src/components/Label/Label.test.tsx +0 -116
- package/src/components/Label/Label.tsx +0 -55
- package/src/components/Label/__snapshots__/Label.test.tsx.snap +0 -45
- package/src/components/Link/Link.stories.mdx +0 -249
- package/src/components/Link/Link.test.tsx +0 -224
- package/src/components/Link/Link.tsx +0 -178
- package/src/components/Link/__snapshots__/Link.test.tsx.snap +0 -286
- package/src/components/List/List.stories.mdx +0 -393
- package/src/components/List/List.test.tsx +0 -265
- package/src/components/List/List.tsx +0 -156
- package/src/components/List/__snapshots__/List.test.tsx.snap +0 -213
- package/src/components/Logo/Logo.stories.mdx +0 -295
- package/src/components/Logo/Logo.test.tsx +0 -116
- package/src/components/Logo/Logo.tsx +0 -151
- package/src/components/Logo/LogoSvgs.tsx +0 -90
- package/src/components/Logo/__snapshots__/Logo.test.tsx.snap +0 -142
- package/src/components/Modal/Modal.stories.mdx +0 -294
- package/src/components/Modal/Modal.test.tsx +0 -157
- package/src/components/Modal/Modal.tsx +0 -154
- package/src/components/Modal/__snapshots__/Modal.test.tsx.snap +0 -25
- package/src/components/Notification/Notification.stories.mdx +0 -358
- package/src/components/Notification/Notification.test.tsx +0 -279
- package/src/components/Notification/Notification.tsx +0 -224
- package/src/components/Notification/__snapshots__/Notification.test.tsx.snap +0 -525
- package/src/components/Pagination/Pagination.stories.mdx +0 -184
- package/src/components/Pagination/Pagination.test.tsx +0 -419
- package/src/components/Pagination/Pagination.tsx +0 -269
- package/src/components/Pagination/__snapshots__/Pagination.test.tsx.snap +0 -544
- package/src/components/Placeholder/Placeholder.tsx +0 -19
- package/src/components/ProgressIndicator/ProgressIndicator.stories.mdx +0 -360
- package/src/components/ProgressIndicator/ProgressIndicator.test.tsx +0 -298
- package/src/components/ProgressIndicator/ProgressIndicator.tsx +0 -132
- package/src/components/ProgressIndicator/__snapshots__/ProgressIndicator.test.tsx.snap +0 -434
- package/src/components/Radio/Radio.stories.mdx +0 -216
- package/src/components/Radio/Radio.test.tsx +0 -247
- package/src/components/Radio/Radio.tsx +0 -119
- package/src/components/Radio/__snapshots__/Radio.test.tsx.snap +0 -451
- package/src/components/RadioGroup/RadioGroup.stories.mdx +0 -479
- package/src/components/RadioGroup/RadioGroup.test.tsx +0 -471
- package/src/components/RadioGroup/RadioGroup.tsx +0 -171
- package/src/components/RadioGroup/__snapshots__/RadioGroup.test.tsx.snap +0 -1550
- package/src/components/SearchBar/SearchBar.stories.mdx +0 -518
- package/src/components/SearchBar/SearchBar.test.tsx +0 -435
- package/src/components/SearchBar/SearchBar.tsx +0 -210
- package/src/components/SearchBar/__snapshots__/SearchBar.test.tsx.snap +0 -1049
- package/src/components/Select/Select.stories.mdx +0 -439
- package/src/components/Select/Select.test.tsx +0 -358
- package/src/components/Select/Select.tsx +0 -183
- package/src/components/Select/__snapshots__/Select.test.tsx.snap +0 -895
- package/src/components/SkeletonLoader/SkeletonLoader.stories.mdx +0 -142
- package/src/components/SkeletonLoader/SkeletonLoader.test.tsx +0 -116
- package/src/components/SkeletonLoader/SkeletonLoader.tsx +0 -123
- package/src/components/SkeletonLoader/__snapshots__/SkeletonLoader.test.tsx.snap +0 -898
- package/src/components/SkipNavigation/SkipNavigation.stories.mdx +0 -90
- package/src/components/SkipNavigation/SkipNavigation.test.tsx +0 -63
- package/src/components/SkipNavigation/SkipNavigation.tsx +0 -51
- package/src/components/SkipNavigation/__snapshots__/SkipNavigation.test.tsx.snap +0 -130
- package/src/components/Slider/Slider.stories.mdx +0 -628
- package/src/components/Slider/Slider.test.tsx +0 -736
- package/src/components/Slider/Slider.tsx +0 -322
- package/src/components/Slider/__snapshots__/Slider.test.tsx.snap +0 -2186
- package/src/components/StatusBadge/StatusBadge.stories.mdx +0 -109
- package/src/components/StatusBadge/StatusBadge.test.tsx +0 -70
- package/src/components/StatusBadge/StatusBadge.tsx +0 -35
- package/src/components/StatusBadge/__snapshots__/StatusBadge.test.tsx.snap +0 -47
- package/src/components/StructuredContent/StructuredContent.stories.mdx +0 -567
- package/src/components/StructuredContent/StructuredContent.test.tsx +0 -435
- package/src/components/StructuredContent/StructuredContent.tsx +0 -139
- package/src/components/StructuredContent/__snapshots__/StructuredContent.test.tsx.snap +0 -368
- package/src/components/StyleGuide/Bidirectionality.stories.mdx +0 -206
- package/src/components/StyleGuide/Breakpoints.stories.mdx +0 -55
- package/src/components/StyleGuide/Buttons.stories.mdx +0 -194
- package/src/components/StyleGuide/ColorCard.tsx +0 -43
- package/src/components/StyleGuide/Colors.stories.mdx +0 -201
- package/src/components/StyleGuide/DesignTokens.stories.mdx +0 -193
- package/src/components/StyleGuide/Forms.stories.mdx +0 -94
- package/src/components/StyleGuide/Iconography.stories.mdx +0 -142
- package/src/components/StyleGuide/Spacing.stories.mdx +0 -116
- package/src/components/StyleGuide/Typography.stories.mdx +0 -419
- package/src/components/Table/Table.stories.mdx +0 -272
- package/src/components/Table/Table.test.tsx +0 -241
- package/src/components/Table/Table.tsx +0 -152
- package/src/components/Table/__snapshots__/Table.test.tsx.snap +0 -1703
- package/src/components/Tabs/Tabs.stories.mdx +0 -338
- package/src/components/Tabs/Tabs.test.tsx +0 -298
- package/src/components/Tabs/Tabs.tsx +0 -264
- package/src/components/Tabs/__snapshots__/Tabs.test.tsx.snap +0 -584
- package/src/components/Template/Template.stories.mdx +0 -695
- package/src/components/Template/Template.test.tsx +0 -309
- package/src/components/Template/Template.tsx +0 -326
- package/src/components/Template/__snapshots__/Template.test.tsx.snap +0 -342
- package/src/components/Text/Text.stories.mdx +0 -103
- package/src/components/Text/Text.test.tsx +0 -63
- package/src/components/Text/Text.tsx +0 -50
- package/src/components/Text/__snapshots__/Text.test.tsx.snap +0 -50
- package/src/components/TextInput/TextInput.stories.mdx +0 -268
- package/src/components/TextInput/TextInput.test.tsx +0 -451
- package/src/components/TextInput/TextInput.tsx +0 -240
- package/src/components/TextInput/__snapshots__/TextInput.test.tsx.snap +0 -274
- package/src/components/Toggle/Toggle.stories.mdx +0 -237
- package/src/components/Toggle/Toggle.test.tsx +0 -170
- package/src/components/Toggle/Toggle.tsx +0 -128
- package/src/components/Toggle/__snapshots__/Toggle.test.tsx.snap +0 -470
- package/src/components/VideoPlayer/VideoPlayer.stories.mdx +0 -212
- package/src/components/VideoPlayer/VideoPlayer.test.tsx +0 -308
- package/src/components/VideoPlayer/VideoPlayer.tsx +0 -188
- package/src/components/VideoPlayer/__snapshots__/VideoPlayer.test.tsx.snap +0 -192
- package/src/docs/Chakra.stories.mdx +0 -563
- package/src/docs/Welcome.stories.mdx +0 -148
- package/src/helpers/types.ts +0 -1
- package/src/hooks/tests/useCarouselStyles.test.ts +0 -140
- package/src/hooks/tests/useNYPLTheme.test.tsx +0 -36
- package/src/hooks/useCarouselStyles.stories.mdx +0 -30
- package/src/hooks/useCarouselStyles.ts +0 -35
- package/src/hooks/useNYPLTheme.stories.mdx +0 -98
- package/src/hooks/useNYPLTheme.ts +0 -91
- package/src/hooks/useWindowSize.stories.mdx +0 -23
- package/src/hooks/useWindowSize.ts +0 -40
- package/src/index.ts +0 -136
- package/src/resources.scss +0 -6
- package/src/styles/base/_01-breakpoints.scss +0 -27
- package/src/styles/base/_02-mixins.scss +0 -103
- package/src/styles/base/_place-holder.scss +0 -33
- package/src/styles/space/_space-inline.scss +0 -79
- package/src/styles/space/_space-inset.scss +0 -57
- package/src/styles/space/_space-stack.scss +0 -116
- package/src/styles.scss +0 -23
- package/src/theme/components/accordion.ts +0 -25
- package/src/theme/components/breadcrumb.ts +0 -94
- package/src/theme/components/button.ts +0 -133
- package/src/theme/components/buttonGroup.ts +0 -10
- package/src/theme/components/card.ts +0 -237
- package/src/theme/components/checkbox.ts +0 -110
- package/src/theme/components/checkboxGroup.ts +0 -10
- package/src/theme/components/componentWrapper.ts +0 -14
- package/src/theme/components/customTable.ts +0 -77
- package/src/theme/components/datePicker.ts +0 -17
- package/src/theme/components/fieldset.ts +0 -23
- package/src/theme/components/global.ts +0 -91
- package/src/theme/components/globalMixins.ts +0 -24
- package/src/theme/components/heading.ts +0 -79
- package/src/theme/components/helperErrorText.ts +0 -14
- package/src/theme/components/hero.ts +0 -238
- package/src/theme/components/horizontalRule.ts +0 -17
- package/src/theme/components/icon.ts +0 -88
- package/src/theme/components/image.ts +0 -136
- package/src/theme/components/label.ts +0 -15
- package/src/theme/components/link.ts +0 -63
- package/src/theme/components/list.ts +0 -88
- package/src/theme/components/logo.ts +0 -58
- package/src/theme/components/notification.ts +0 -132
- package/src/theme/components/pagination.ts +0 -17
- package/src/theme/components/progressIndicator.ts +0 -67
- package/src/theme/components/radio.ts +0 -103
- package/src/theme/components/radioGroup.ts +0 -10
- package/src/theme/components/searchBar.ts +0 -19
- package/src/theme/components/select.ts +0 -72
- package/src/theme/components/skeletonLoader.ts +0 -113
- package/src/theme/components/skipNavigation.ts +0 -29
- package/src/theme/components/slider.ts +0 -95
- package/src/theme/components/statusBadge.ts +0 -26
- package/src/theme/components/structuredContent.ts +0 -149
- package/src/theme/components/tabs.ts +0 -109
- package/src/theme/components/template.ts +0 -114
- package/src/theme/components/text.ts +0 -38
- package/src/theme/components/textInput.ts +0 -65
- package/src/theme/components/toggle.ts +0 -109
- package/src/theme/components/videoPlayer.ts +0 -47
- package/src/theme/foundations/breakpoints.ts +0 -24
- package/src/theme/foundations/colors.ts +0 -212
- package/src/theme/foundations/global.ts +0 -43
- package/src/theme/foundations/radii.ts +0 -7
- package/src/theme/foundations/shadows.ts +0 -5
- package/src/theme/foundations/spacing.ts +0 -136
- package/src/theme/foundations/typography.ts +0 -107
- package/src/theme/index.ts +0 -131
- package/src/theme/provider.tsx +0 -9
- package/src/theme/types.ts +0 -1
- package/src/utils/componentCategories.ts +0 -152
- package/src/utils/interfaces.ts +0 -5
- package/src/utils/utils.ts +0 -84
|
@@ -1,419 +0,0 @@
|
|
|
1
|
-
import { Canvas, Meta } from "@storybook/addon-docs";
|
|
2
|
-
|
|
3
|
-
import Heading from "../Heading/Heading";
|
|
4
|
-
import List from "../List/List";
|
|
5
|
-
import Text from "../Text/Text";
|
|
6
|
-
import { getCategory } from "../../utils/componentCategories";
|
|
7
|
-
import DSProvider from "../../theme/provider";
|
|
8
|
-
|
|
9
|
-
<Meta title={getCategory("Typography")} />
|
|
10
|
-
|
|
11
|
-
# Typography
|
|
12
|
-
|
|
13
|
-
| Table of Contents |
|
|
14
|
-
| ---------------------------------------------- |
|
|
15
|
-
| 1. [General Information](#general-information) |
|
|
16
|
-
| 2. [Heading Component](#heading-component) |
|
|
17
|
-
| 3. [Text Component](#text-component) |
|
|
18
|
-
| 4. [Font Family](#font-family) |
|
|
19
|
-
| 5. [Font Color](#font-color) |
|
|
20
|
-
| 6. [Font Weight](#font-weight) |
|
|
21
|
-
| 7. [Font Sizes](#font-sizes) |
|
|
22
|
-
| 8. [Text Case](#text-case) |
|
|
23
|
-
| 9. [Character Count](#character-count) |
|
|
24
|
-
| 10. [Figma Reference](#figma-reference) |
|
|
25
|
-
|
|
26
|
-
## General Information
|
|
27
|
-
|
|
28
|
-
Consuming applications should utilize the Reservoir Design System (DS) standard
|
|
29
|
-
text components as much as possible. In cases where that is not possible, the
|
|
30
|
-
DS exposes CSS variables to assist with formatting text elements.
|
|
31
|
-
|
|
32
|
-
The sizing of all text elements in the Design System is based on `1rem` being
|
|
33
|
-
equal to `16px`.
|
|
34
|
-
|
|
35
|
-
## Heading Component
|
|
36
|
-
|
|
37
|
-
Use the DS [Heading](/docs/components-typography-styles-heading--heading-props)
|
|
38
|
-
component to render a standard HTML `<h>` tag. The `level` prop can be used to
|
|
39
|
-
set the specific `<h>` tag that you require.
|
|
40
|
-
|
|
41
|
-
<Canvas>
|
|
42
|
-
<DSProvider>
|
|
43
|
-
<Heading level="one">Heading Level 1</Heading>
|
|
44
|
-
<Heading level="two">Heading Level 2</Heading>
|
|
45
|
-
<Heading level="three">Heading Level 3</Heading>
|
|
46
|
-
<Heading level="four">Heading Level 4</Heading>
|
|
47
|
-
</DSProvider>
|
|
48
|
-
</Canvas>
|
|
49
|
-
|
|
50
|
-
#### Heading Display Sizes
|
|
51
|
-
|
|
52
|
-
<DSProvider>
|
|
53
|
-
|
|
54
|
-
Each heading level has a default style and size, but those styles can be overridden
|
|
55
|
-
using the `size` prop. The display sizes are separate from semantic elements and
|
|
56
|
-
may be used to override the default size and styling of the semantic HTML heading
|
|
57
|
-
elements. For example, the `h1` element has the `Primary` style applied by default,
|
|
58
|
-
but a new style can be applied through the `size` prop. Any `size` style can be
|
|
59
|
-
applied to any `Heading` element.
|
|
60
|
-
|
|
61
|
-
<Heading level="one" size="primary">
|
|
62
|
-
Primary Heading
|
|
63
|
-
</Heading>
|
|
64
|
-
|
|
65
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
66
|
-
| --------------- | --------- | ------------------------------- | ------------------------------------------------------ |
|
|
67
|
-
| **Font Size** | `2.25rem` | `fontSize: "heading.primary"` | `font-size: var(--nypl-fontSizes-heading-primary)` |
|
|
68
|
-
| **Font Weight** | `300` | `fontWeight: "heading.primary"` | `font-weight: var(--nypl-fontWeights-heading-primary)` |
|
|
69
|
-
| **Line Height** | `1.1` | n/a | n/a |
|
|
70
|
-
|
|
71
|
-
<Heading level="one" size="secondary">
|
|
72
|
-
Secondary Heading
|
|
73
|
-
</Heading>
|
|
74
|
-
|
|
75
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
76
|
-
| --------------- | --------- | --------------------------------- | -------------------------------------------------------- |
|
|
77
|
-
| **Font Size** | `1.75rem` | `fontSize: "heading.secondary"` | `font-size: var(--nypl-fontSizes-heading-secondary)` |
|
|
78
|
-
| **Font Weight** | `500` | `fontWeight: "heading.secondary"` | `font-weight: var(--nypl-fontWeights-heading-secondary)` |
|
|
79
|
-
| **Line Height** | `1.25` | n/a | n/a |
|
|
80
|
-
|
|
81
|
-
<Heading level="one" size="tertiary">
|
|
82
|
-
Tertiary Heading
|
|
83
|
-
</Heading>
|
|
84
|
-
|
|
85
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
86
|
-
| --------------- | ---------- | -------------------------------- | ------------------------------------------------------- |
|
|
87
|
-
| **Font Size** | `1.375rem` | `fontSize: "heading.tertiary"` | `font-size: var(--nypl-fontSizes-heading-tertiary)` |
|
|
88
|
-
| **Font Weight** | `500` | `fontWeight: "heading.tertiary"` | `font-weight: var(--nypl-fontWeights-heading-tertiary)` |
|
|
89
|
-
| **Line Height** | `1.25` | n/a | n/a |
|
|
90
|
-
|
|
91
|
-
<Heading level="one" size="callout">
|
|
92
|
-
Callout Heading
|
|
93
|
-
</Heading>
|
|
94
|
-
|
|
95
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
96
|
-
| --------------- | --------- | ------------------------------- | ------------------------------------------------------ |
|
|
97
|
-
| **Font Size** | `1.25rem` | `fontSize: "heading.callout"` | `font-size: var(--nypl-fontSizes-heading-callout)` |
|
|
98
|
-
| **Font Weight** | `500` | `fontWeight: "heading.callout"` | `font-weight: var(--nypl-fontWeights-heading-callout)` |
|
|
99
|
-
| **Line Height** | `1.25` | n/a | n/a |
|
|
100
|
-
|
|
101
|
-
</DSProvider>
|
|
102
|
-
|
|
103
|
-
## Text Component
|
|
104
|
-
|
|
105
|
-
Use the DS [Text](/docs/components-typography-styles-text--text)
|
|
106
|
-
component to render a standard HTML `<p>` tag. The Text component is generally
|
|
107
|
-
used for body copy, captions and secondary captions.
|
|
108
|
-
|
|
109
|
-
<Canvas>
|
|
110
|
-
<DSProvider>
|
|
111
|
-
<Text>
|
|
112
|
-
Curabitur blandit tempus porttitor. Cras mattis consectetur purus sit amet
|
|
113
|
-
fermentum. Nullam id dolor id nibh ultricies vehicula ut id elit. Maecenas
|
|
114
|
-
faucibus mollis interdum. Morbi leo risus, porta ac consectetur ac,
|
|
115
|
-
vestibulum at eros.
|
|
116
|
-
</Text>
|
|
117
|
-
</DSProvider>
|
|
118
|
-
</Canvas>
|
|
119
|
-
|
|
120
|
-
### Text Display Sizes
|
|
121
|
-
|
|
122
|
-
<DSProvider>
|
|
123
|
-
|
|
124
|
-
The `size` prop can be used to render a specific style from the DS default text styles.
|
|
125
|
-
|
|
126
|
-
- [Typography: Body Styles](https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=10975%3A52)
|
|
127
|
-
- [Typography: Other Styles](https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=10975%3A100)
|
|
128
|
-
|
|
129
|
-
<Text size="default">Default</Text>
|
|
130
|
-
|
|
131
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
132
|
-
| --------------- | ------ | ---------------------------- | --------------------------------------------------- |
|
|
133
|
-
| **Font Size** | `1rem` | `fontSize: "text.default"` | `font-size: var(--nypl-fontSizes-text-default)` |
|
|
134
|
-
| **Font Weight** | `300` | `fontWeight: "text.default"` | `font-weight: var(--nypl-fontWeights-text-default)` |
|
|
135
|
-
| **Line Height** | `1.5` | `fontWeight: 1.5` | `font-weight: 1.5` |
|
|
136
|
-
|
|
137
|
-
<Text size="caption">Caption</Text>
|
|
138
|
-
|
|
139
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
140
|
-
| --------------- | ---------- | ---------------------------- | --------------------------------------------------- |
|
|
141
|
-
| **Font Size** | `0.875rem` | `fontSize: "text.caption"` | `font-size: var(--nypl-fontSizes-text-caption)` |
|
|
142
|
-
| **Font Weight** | `300` | `fontWeight: "text.caption"` | `font-weight: var(--nypl-fontWeights-text-caption)` |
|
|
143
|
-
| **Line Height** | `1.25` | `fontWeight: 1.25` | `font-weight: 1.25` |
|
|
144
|
-
|
|
145
|
-
<Text size="tag">Tag</Text>
|
|
146
|
-
|
|
147
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
148
|
-
| --------------- | --------- | ------------------------ | ----------------------------------------------- |
|
|
149
|
-
| **Font Size** | `0.75rem` | `fontSize: "text.tag"` | `font-size: var(--nypl-fontSizes-text-tag)` |
|
|
150
|
-
| **Font Weight** | `400` | `fontWeight: "text.tag"` | `font-weight: var(--nypl-fontWeights-text-tag)` |
|
|
151
|
-
| **Line Height** | `1.5` | `fontWeight: 1.5` | `font-weight: 1.5` |
|
|
152
|
-
|
|
153
|
-
<Text size="mini">Mini</Text>
|
|
154
|
-
|
|
155
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
156
|
-
| --------------- | ---------- | ------------------------- | ------------------------------------------------ |
|
|
157
|
-
| **Font Size** | `0.625rem` | `fontSize: "text.mini"` | `font-size: var(--nypl-fontSizes-text-mini)` |
|
|
158
|
-
| **Font Weight** | `400` | `fontWeight: "text.mini"` | `font-weight: var(--nypl-fontWeights-text-mini)` |
|
|
159
|
-
| **Line Height** | `1.5` | `fontWeight: 1.5` | `font-weight: 1.5` |
|
|
160
|
-
|
|
161
|
-
</DSProvider>
|
|
162
|
-
|
|
163
|
-
## Font Family
|
|
164
|
-
|
|
165
|
-
With website accessibility in mind, font choices for the DS were made with an
|
|
166
|
-
eye toward clarity and readability. Headings and body content use the
|
|
167
|
-
following font family assignment:
|
|
168
|
-
|
|
169
|
-
<Canvas>
|
|
170
|
-
<DSProvider>
|
|
171
|
-
<Text>system-ui, sans-serif</Text>
|
|
172
|
-
</DSProvider>
|
|
173
|
-
</Canvas>
|
|
174
|
-
|
|
175
|
-
The following CSS variables are available through the DS.
|
|
176
|
-
|
|
177
|
-
```
|
|
178
|
-
--nypl-fonts-heading: system-ui, sans-serif;
|
|
179
|
-
--nypl-fonts-body: system-ui, sans-serif;
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
> **RECOMMENDATIONS**
|
|
183
|
-
> When making font selections for project based components outside the DS,
|
|
184
|
-
> sans serif fonts display better on computers and mobile devices. Avoid
|
|
185
|
-
> decorative or overly stylized fonts, as they are often difficult to read even
|
|
186
|
-
> for users without visual impairments or reading Standard Text Default
|
|
187
|
-
|
|
188
|
-
## Font Color
|
|
189
|
-
|
|
190
|
-
All text within a project, unless specifically noted in mockups, should be
|
|
191
|
-
black on a white background.
|
|
192
|
-
|
|
193
|
-
<Canvas>
|
|
194
|
-
<DSProvider>
|
|
195
|
-
<Heading level="three">Default Heading Color</Heading>
|
|
196
|
-
<Text>
|
|
197
|
-
This paragraph shows the default body text color. Curabitur blandit tempus
|
|
198
|
-
porttitor. Praesent commodo cursus magna, vel scelerisque nisl consectetur
|
|
199
|
-
et. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.
|
|
200
|
-
Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget
|
|
201
|
-
lacinia odio sem nec elit.
|
|
202
|
-
</Text>
|
|
203
|
-
</DSProvider>
|
|
204
|
-
</Canvas>
|
|
205
|
-
|
|
206
|
-
In cases where specific colors must be applied to text elements, the DS
|
|
207
|
-
provides CSS variables for the full NYPL color palette. Refer to the
|
|
208
|
-
[Colors](https://nypl.github.io/nypl-design-system/reservoir/v1/?path=/docs/style-guide-colors--page)
|
|
209
|
-
section of the Style Guide for details.
|
|
210
|
-
|
|
211
|
-
## Font Weight
|
|
212
|
-
|
|
213
|
-
The DS uses four font weights to render text. The default font-weight is 300.
|
|
214
|
-
|
|
215
|
-
<Canvas>
|
|
216
|
-
<>
|
|
217
|
-
<p
|
|
218
|
-
style={{
|
|
219
|
-
fontSize: "var(--nypl-fontSizes-0)",
|
|
220
|
-
fontWeight: "var(--nypl-fontWeights-light)",
|
|
221
|
-
fontFamily: "var(--nypl-fonts-body)",
|
|
222
|
-
}}
|
|
223
|
-
>
|
|
224
|
-
Light / 300 (default)
|
|
225
|
-
</p>
|
|
226
|
-
<p
|
|
227
|
-
style={{
|
|
228
|
-
fontSize: "var(--nypl-fontSizes-0)",
|
|
229
|
-
fontWeight: "var(--nypl-fontWeights-regular)",
|
|
230
|
-
fontFamily: "var(--nypl-fonts-body)",
|
|
231
|
-
}}
|
|
232
|
-
>
|
|
233
|
-
Regular / 400
|
|
234
|
-
</p>
|
|
235
|
-
<p
|
|
236
|
-
style={{
|
|
237
|
-
fontSize: "var(--nypl-fontSizes-0)",
|
|
238
|
-
fontWeight: "var(--nypl-fontWeights-medium)",
|
|
239
|
-
fontFamily: "var(--nypl-fonts-body)",
|
|
240
|
-
}}
|
|
241
|
-
>
|
|
242
|
-
Medium / 500
|
|
243
|
-
</p>
|
|
244
|
-
<p
|
|
245
|
-
style={{
|
|
246
|
-
fontSize: "var(--nypl-fontSizes-0)",
|
|
247
|
-
fontWeight: "var(--nypl-fontWeights-bold)",
|
|
248
|
-
fontFamily: "var(--nypl-fonts-body)",
|
|
249
|
-
}}
|
|
250
|
-
>
|
|
251
|
-
Bold / 700
|
|
252
|
-
</p>
|
|
253
|
-
</>
|
|
254
|
-
</Canvas>
|
|
255
|
-
|
|
256
|
-
The following design tokens are available through the DS.
|
|
257
|
-
|
|
258
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
259
|
-
| ----------- | ----- | ----------------------- | ---------------------------------------------- |
|
|
260
|
-
| **Light** | `300` | `fontWeight: "light"` | `font-weight: var(--nypl-fontWeights-light)` |
|
|
261
|
-
| **Regular** | `400` | `fontWeight: "regular"` | `font-weight: var(--nypl-fontWeights-regular)` |
|
|
262
|
-
| **Medium** | `500` | `fontWeight: "medium"` | `font-weight: var(--nypl-fontWeights-medium)` |
|
|
263
|
-
| **Bold** | `700` | `fontWeight: "bold"` | `font-weight: var(--nypl-fontWeights-bold)` |
|
|
264
|
-
|
|
265
|
-
## Font Sizes
|
|
266
|
-
|
|
267
|
-
Font sizing is based on a root font size of 16px (1rem = 16px).
|
|
268
|
-
|
|
269
|
-
<Canvas>
|
|
270
|
-
<>
|
|
271
|
-
<p
|
|
272
|
-
style={{
|
|
273
|
-
fontSize: "var(--nypl-fontSizes--3)",
|
|
274
|
-
fontWeight: "var(--nypl-fontWeights-light)",
|
|
275
|
-
}}
|
|
276
|
-
>
|
|
277
|
-
Font size -3
|
|
278
|
-
</p>
|
|
279
|
-
<p
|
|
280
|
-
style={{
|
|
281
|
-
fontSize: "var(--nypl-fontSizes--2)",
|
|
282
|
-
fontWeight: "var(--nypl-fontWeights-light)",
|
|
283
|
-
}}
|
|
284
|
-
>
|
|
285
|
-
Font size -2
|
|
286
|
-
</p>
|
|
287
|
-
<p
|
|
288
|
-
style={{
|
|
289
|
-
fontSize: "var(--nypl-fontSizes--1)",
|
|
290
|
-
fontWeight: "var(--nypl-fontWeights-light)",
|
|
291
|
-
}}
|
|
292
|
-
>
|
|
293
|
-
Font size -1
|
|
294
|
-
</p>
|
|
295
|
-
<p
|
|
296
|
-
style={{
|
|
297
|
-
fontSize: "var(--nypl-fontSizes-0)",
|
|
298
|
-
fontWeight: "var(--nypl-fontWeights-light)",
|
|
299
|
-
}}
|
|
300
|
-
>
|
|
301
|
-
Font size 0 (default)
|
|
302
|
-
</p>
|
|
303
|
-
<p
|
|
304
|
-
style={{
|
|
305
|
-
fontSize: "var(--nypl-fontSizes-1)",
|
|
306
|
-
fontWeight: "var(--nypl-fontWeights-light)",
|
|
307
|
-
}}
|
|
308
|
-
>
|
|
309
|
-
Font size 1
|
|
310
|
-
</p>
|
|
311
|
-
<p
|
|
312
|
-
style={{
|
|
313
|
-
fontSize: "var(--nypl-fontSizes-2)",
|
|
314
|
-
fontWeight: "var(--nypl-fontWeights-light)",
|
|
315
|
-
}}
|
|
316
|
-
>
|
|
317
|
-
Font size 2
|
|
318
|
-
</p>
|
|
319
|
-
<p
|
|
320
|
-
style={{
|
|
321
|
-
fontSize: "var(--nypl-fontSizes-3)",
|
|
322
|
-
fontWeight: "var(--nypl-fontWeights-light)",
|
|
323
|
-
}}
|
|
324
|
-
>
|
|
325
|
-
Font size 3
|
|
326
|
-
</p>
|
|
327
|
-
<p
|
|
328
|
-
style={{
|
|
329
|
-
fontSize: "var(--nypl-fontSizes-4)",
|
|
330
|
-
fontWeight: "var(--nypl-fontWeights-light)",
|
|
331
|
-
}}
|
|
332
|
-
>
|
|
333
|
-
Font size 4
|
|
334
|
-
</p>
|
|
335
|
-
</>
|
|
336
|
-
</Canvas>
|
|
337
|
-
|
|
338
|
-
The following font size design tokens are available through the DS.
|
|
339
|
-
|
|
340
|
-
| | Value | JS Theme Object | CSS Variable |
|
|
341
|
-
| ------ | ---------- | ---------------- | ------------------------------------- |
|
|
342
|
-
| **-3** | `0.625rem` | `fontSize: "-3"` | `font-size: var(--nypl-fontSizes--3)` |
|
|
343
|
-
| **-2** | `0.75rem` | `fontSize: "-2"` | `font-size: var(--nypl-fontSizes--2)` |
|
|
344
|
-
| **-1** | `0.875rem` | `fontSize: "-1"` | `font-size: var(--nypl-fontSizes--1)` |
|
|
345
|
-
| **0** | `1rem` | `fontSize: "0"` | `font-size: var(--nypl-fontSizes-0)` |
|
|
346
|
-
| **1** | `1.125rem` | `fontSize: "1"` | `font-size: var(--nypl-fontSizes-1)` |
|
|
347
|
-
| **2** | `1.375rem` | `fontSize: "2"` | `font-size: var(--nypl-fontSizes-2)` |
|
|
348
|
-
| **3** | `1.75rem` | `fontSize: "3"` | `font-size: var(--nypl-fontSizes-3)` |
|
|
349
|
-
| **4** | `2.25rem` | `fontSize: "4"` | `font-size: var(--nypl-fontSizes-4)` |
|
|
350
|
-
|
|
351
|
-
## Text Case
|
|
352
|
-
|
|
353
|
-
In general, the New York Public Library uses Title Case for titles. This means
|
|
354
|
-
only using capital letters for the principal words. Articles, conjunctions, and
|
|
355
|
-
prepositions do not get capital letters unless they start the title. For example:
|
|
356
|
-
|
|
357
|
-
<Canvas>
|
|
358
|
-
<DSProvider>
|
|
359
|
-
<List type="ul">
|
|
360
|
-
<li>Snow White and the Seven Dwarfs</li>
|
|
361
|
-
<li>The Last of the Mohicans</li>
|
|
362
|
-
<li>Spooky Books for Kids: The Ultimate Creepy Guide</li>
|
|
363
|
-
<li>The Future Teen Stars of America Live on TikTok</li>
|
|
364
|
-
<li>How Jacqueline Woodson Captures Every Side of Brooklyn</li>
|
|
365
|
-
</List>
|
|
366
|
-
</DSProvider>
|
|
367
|
-
</Canvas>
|
|
368
|
-
|
|
369
|
-
## Character Count
|
|
370
|
-
|
|
371
|
-
### Titles
|
|
372
|
-
|
|
373
|
-
80 characters max, 60 characters recommended
|
|
374
|
-
|
|
375
|
-
<Canvas>
|
|
376
|
-
<DSProvider>
|
|
377
|
-
<Heading level="three">
|
|
378
|
-
This is a Long Title to Show What 58 Characters Looks Like
|
|
379
|
-
</Heading>
|
|
380
|
-
</DSProvider>
|
|
381
|
-
</Canvas>
|
|
382
|
-
|
|
383
|
-
### Summaries
|
|
384
|
-
|
|
385
|
-
140 characters max<br />
|
|
386
|
-
Note: Online Exhibitions, with their longer, legacy summaries are an exception
|
|
387
|
-
to this.
|
|
388
|
-
|
|
389
|
-
<Canvas>
|
|
390
|
-
<DSProvider>
|
|
391
|
-
<Text>
|
|
392
|
-
This block of text shows what 140 chacters and spaces looks like. Integer
|
|
393
|
-
posuere erat a ante venenatis dapibus posueret aliquet nullas non.
|
|
394
|
-
</Text>
|
|
395
|
-
</DSProvider>
|
|
396
|
-
</Canvas>
|
|
397
|
-
|
|
398
|
-
### Page Intros
|
|
399
|
-
|
|
400
|
-
No max character count, 200 characters recommended
|
|
401
|
-
|
|
402
|
-
<Canvas>
|
|
403
|
-
<DSProvider>
|
|
404
|
-
<Text>
|
|
405
|
-
This block of text shows what 200 chacters and spaces looks like. Integer
|
|
406
|
-
posuere erat a ante venenatis dapibus posueret aliquet nullas non. Aenean
|
|
407
|
-
eu leo quam. Pellentesque ornare sem quam venenatis.
|
|
408
|
-
</Text>
|
|
409
|
-
</DSProvider>
|
|
410
|
-
</Canvas>
|
|
411
|
-
|
|
412
|
-
## Figma Reference
|
|
413
|
-
|
|
414
|
-
For additional spacing information, please refer to the Figma Main file.
|
|
415
|
-
|
|
416
|
-
- [Typeface](https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=10975%3A0)
|
|
417
|
-
- [Heading Styles](https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=10975%3A16)
|
|
418
|
-
- [Text Styles (Part 1)](https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=10975%3A52)
|
|
419
|
-
- [Text Styles (Part 2)](https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=10975%3A100)
|
|
@@ -1,272 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Meta,
|
|
3
|
-
Story,
|
|
4
|
-
Canvas,
|
|
5
|
-
ArgsTable,
|
|
6
|
-
Description,
|
|
7
|
-
} from "@storybook/addon-docs";
|
|
8
|
-
import { withDesign } from "storybook-addon-designs";
|
|
9
|
-
|
|
10
|
-
import Image from "../Image/Image";
|
|
11
|
-
import Table from "./Table";
|
|
12
|
-
import DSProvider from "../../theme/provider";
|
|
13
|
-
import { getCategory } from "../../utils/componentCategories";
|
|
14
|
-
|
|
15
|
-
<Meta
|
|
16
|
-
title={getCategory("Table")}
|
|
17
|
-
component={Table}
|
|
18
|
-
decorators={[withDesign]}
|
|
19
|
-
parameters={{
|
|
20
|
-
design: {
|
|
21
|
-
type: "figma",
|
|
22
|
-
url: "https://www.figma.com/file/qShodlfNCJHb8n03IFyApM/Main?node-id=46780%3A27675",
|
|
23
|
-
},
|
|
24
|
-
jest: ["Table.test.tsx"],
|
|
25
|
-
}}
|
|
26
|
-
argTypes={{
|
|
27
|
-
columnHeaders: { control: { disable: true } },
|
|
28
|
-
columnHeadersBackgroundColor: { control: { type: "color" } },
|
|
29
|
-
columnHeadersTextColor: { control: { type: "color" } },
|
|
30
|
-
id: { control: false },
|
|
31
|
-
tableData: { control: false },
|
|
32
|
-
}}
|
|
33
|
-
/>
|
|
34
|
-
|
|
35
|
-
# Table
|
|
36
|
-
|
|
37
|
-
| Component Version | DS Version |
|
|
38
|
-
| ----------------- | ---------- |
|
|
39
|
-
| Added | `0.25.9` |
|
|
40
|
-
| Latest | `1.0.2` |
|
|
41
|
-
|
|
42
|
-
## Table of Contents
|
|
43
|
-
|
|
44
|
-
- [Overview](#overview)
|
|
45
|
-
- [Component Props](#component-props)
|
|
46
|
-
- [Accessibility](#accessibility)
|
|
47
|
-
- [With a title](#with-a-title)
|
|
48
|
-
- [With Row Dividers](#with-row-dividers)
|
|
49
|
-
- [With Row Headers](#with-row-headers)
|
|
50
|
-
- [With Custom Header Colors](#with-custom-header-colors)
|
|
51
|
-
- [With JSX Elements](#with-jsx-elements)
|
|
52
|
-
|
|
53
|
-
## Overview
|
|
54
|
-
|
|
55
|
-
<Description of={Table} />
|
|
56
|
-
|
|
57
|
-
export const columnHeaders = [
|
|
58
|
-
"First Name",
|
|
59
|
-
"Last Name",
|
|
60
|
-
"Nick Name",
|
|
61
|
-
"Address1",
|
|
62
|
-
"City",
|
|
63
|
-
"State",
|
|
64
|
-
"Zipcode",
|
|
65
|
-
];
|
|
66
|
-
export const tableData = [
|
|
67
|
-
["Tom", "Nook", "Tanukichi", "Main Street", "New York", "NY", "23458"],
|
|
68
|
-
["Isabelle", "-", "Shizue", "Walnut Street", "New York", "NY", "23458"],
|
|
69
|
-
["K.K.", "Slider", "Totakeke", "Niper Place", "New York", "NY", "98765"],
|
|
70
|
-
[
|
|
71
|
-
"Sonny",
|
|
72
|
-
"Resetti",
|
|
73
|
-
"Risetto san",
|
|
74
|
-
"Village Road",
|
|
75
|
-
"New York",
|
|
76
|
-
"NY",
|
|
77
|
-
"09873",
|
|
78
|
-
],
|
|
79
|
-
];
|
|
80
|
-
|
|
81
|
-
## Component Props
|
|
82
|
-
|
|
83
|
-
<Canvas withToolbar>
|
|
84
|
-
<Story
|
|
85
|
-
name="Table"
|
|
86
|
-
args={{
|
|
87
|
-
className: undefined,
|
|
88
|
-
columnHeaders,
|
|
89
|
-
columnHeadersBackgroundColor: undefined,
|
|
90
|
-
columnHeadersTextColor: undefined,
|
|
91
|
-
id: undefined,
|
|
92
|
-
showRowDividers: false,
|
|
93
|
-
tableData,
|
|
94
|
-
titleText: undefined,
|
|
95
|
-
useRowHeaders: false,
|
|
96
|
-
}}
|
|
97
|
-
>
|
|
98
|
-
{(args) => <Table {...args}></Table>}
|
|
99
|
-
</Story>
|
|
100
|
-
</Canvas>
|
|
101
|
-
|
|
102
|
-
<ArgsTable story="Table" />
|
|
103
|
-
|
|
104
|
-
## Accessibility
|
|
105
|
-
|
|
106
|
-
Internally, the HTML for the `Table` element is structured with proper semantic
|
|
107
|
-
use of the `table`, `caption`, `thead`, `tbody`, `tr`, and `td` HTML elements.
|
|
108
|
-
When titles are added through the `titleText` prop, the `caption` element will
|
|
109
|
-
be rendered above the `thead` element.
|
|
110
|
-
|
|
111
|
-
This component should be used to render tabular data only and not used for layout
|
|
112
|
-
purposes.
|
|
113
|
-
|
|
114
|
-
The first row and/or the first cell in a `tr` row can be headers. Each `th`
|
|
115
|
-
header cell has an appropriate scope attribute set to either `scope="col"` or
|
|
116
|
-
`scope="row"`. For example, every `th` cell in a `thead` `tr` row will have
|
|
117
|
-
`scope="col"`. Every `th` cell in a `tbody` `tr` row will have `scope="row"`.
|
|
118
|
-
These headers are visually different from the data. Use the `useRowHeaders`
|
|
119
|
-
prop to render the first cell in every row as a header. If a table has two levels
|
|
120
|
-
of headers (such as two levels of horizontal headers), break the data into two
|
|
121
|
-
separate tables.
|
|
122
|
-
|
|
123
|
-
Resources:
|
|
124
|
-
|
|
125
|
-
- [W3C Tables Tutorial](https://www.w3.org/WAI/tutorials/tables/)
|
|
126
|
-
- [MDN table: The Table element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table)
|
|
127
|
-
- [MDN HTML table advance features and accessibility](https://developer.mozilla.org/en-US/docs/Learn/HTML/Tables/Advanced)
|
|
128
|
-
- [Chakra UI Table](https://chakra-ui.com/docs/components/data-display/table)
|
|
129
|
-
|
|
130
|
-
## With a title
|
|
131
|
-
|
|
132
|
-
Use the `titleText` prop to add a title to the table.
|
|
133
|
-
|
|
134
|
-
<Canvas>
|
|
135
|
-
<DSProvider>
|
|
136
|
-
<Table
|
|
137
|
-
columnHeaders={columnHeaders}
|
|
138
|
-
id="title-table"
|
|
139
|
-
tableData={tableData}
|
|
140
|
-
titleText="Table with a title"
|
|
141
|
-
/>
|
|
142
|
-
</DSProvider>
|
|
143
|
-
</Canvas>
|
|
144
|
-
|
|
145
|
-
## With Row Dividers
|
|
146
|
-
|
|
147
|
-
Use the `showRowDividers` prop to render a divider between each row.
|
|
148
|
-
|
|
149
|
-
<Canvas>
|
|
150
|
-
<DSProvider>
|
|
151
|
-
<Table
|
|
152
|
-
columnHeaders={columnHeaders}
|
|
153
|
-
id="showRowDividers-table"
|
|
154
|
-
showRowDividers
|
|
155
|
-
tableData={tableData}
|
|
156
|
-
/>
|
|
157
|
-
</DSProvider>
|
|
158
|
-
</Canvas>
|
|
159
|
-
|
|
160
|
-
## With Row Headers
|
|
161
|
-
|
|
162
|
-
Use the `useRowHeaders` prop to render the first cell in every row as a header.
|
|
163
|
-
Notice that they turn bold.
|
|
164
|
-
|
|
165
|
-
<Canvas>
|
|
166
|
-
<DSProvider>
|
|
167
|
-
<Table
|
|
168
|
-
columnHeaders={columnHeaders}
|
|
169
|
-
id="rowHeaders-table"
|
|
170
|
-
tableData={tableData}
|
|
171
|
-
useRowHeaders
|
|
172
|
-
/>
|
|
173
|
-
</DSProvider>
|
|
174
|
-
</Canvas>
|
|
175
|
-
|
|
176
|
-
## With Custom Header Colors
|
|
177
|
-
|
|
178
|
-
It's possible to customize the header colors by using the `columnHeadersBackgroundColor`
|
|
179
|
-
and `columnHeadersTextColor` props. Note that the colors need to have sufficient
|
|
180
|
-
color contrast.
|
|
181
|
-
|
|
182
|
-
<Canvas>
|
|
183
|
-
<DSProvider>
|
|
184
|
-
<Table
|
|
185
|
-
columnHeaders={columnHeaders}
|
|
186
|
-
columnHeadersBackgroundColor="var(--nypl-colors-ui-link-secondary)"
|
|
187
|
-
columnHeadersTextColor="var(--nypl-colors-ui-white)"
|
|
188
|
-
id="rowHeaders-table"
|
|
189
|
-
showRowDividers
|
|
190
|
-
tableData={tableData}
|
|
191
|
-
useRowHeaders
|
|
192
|
-
/>
|
|
193
|
-
</DSProvider>
|
|
194
|
-
</Canvas>
|
|
195
|
-
|
|
196
|
-
## With JSX Elements
|
|
197
|
-
|
|
198
|
-
export const characterHeaders = ["First Name", "Last Name", "Avatar"];
|
|
199
|
-
export const charactersData = [
|
|
200
|
-
[
|
|
201
|
-
"Tom",
|
|
202
|
-
"Nook",
|
|
203
|
-
<Image
|
|
204
|
-
alt="Tom Nook"
|
|
205
|
-
size="small"
|
|
206
|
-
src="https://play.nintendo.com/images/AC_Tom_FRYtwIN.17345b1513ac044897cfc243542899dce541e8dc.9afde10b.png"
|
|
207
|
-
/>,
|
|
208
|
-
],
|
|
209
|
-
[
|
|
210
|
-
"Isabelle",
|
|
211
|
-
"-",
|
|
212
|
-
<Image
|
|
213
|
-
alt="Isabelle"
|
|
214
|
-
size="small"
|
|
215
|
-
src="https://play.nintendo.com/images/AC_Isabelle_7XU6aGu.17345b1513ac044897cfc243542899dce541e8dc.9afde10b.png"
|
|
216
|
-
/>,
|
|
217
|
-
],
|
|
218
|
-
[
|
|
219
|
-
"K.K.",
|
|
220
|
-
"Slider",
|
|
221
|
-
<Image
|
|
222
|
-
alt="K.K Slider"
|
|
223
|
-
size="small"
|
|
224
|
-
src="https://play.nintendo.com/images/AC_KK_jh4yj5t.17345b1513ac044897cfc243542899dce541e8dc.9afde10b.png"
|
|
225
|
-
/>,
|
|
226
|
-
],
|
|
227
|
-
];
|
|
228
|
-
|
|
229
|
-
It's possible to pass in JSX elements in the `tableData` prop.
|
|
230
|
-
|
|
231
|
-
```jsx
|
|
232
|
-
export const charactersData = [
|
|
233
|
-
[
|
|
234
|
-
"Tom",
|
|
235
|
-
"Nook",
|
|
236
|
-
<Image
|
|
237
|
-
alt="Tom Nook"
|
|
238
|
-
size="small"
|
|
239
|
-
src="https://play.nintendo.com/images/AC_Tom_FRYtwIN.17345b1513ac044897cfc243542899dce541e8dc.9afde10b.png"
|
|
240
|
-
/>,
|
|
241
|
-
],
|
|
242
|
-
[
|
|
243
|
-
"Isabelle",
|
|
244
|
-
"-",
|
|
245
|
-
<Image
|
|
246
|
-
alt="Isabelle"
|
|
247
|
-
size="small"
|
|
248
|
-
src="https://play.nintendo.com/images/AC_Isabelle_7XU6aGu.17345b1513ac044897cfc243542899dce541e8dc.9afde10b.png"
|
|
249
|
-
/>,
|
|
250
|
-
],
|
|
251
|
-
[
|
|
252
|
-
"K.K.",
|
|
253
|
-
"Slider",
|
|
254
|
-
<Image
|
|
255
|
-
alt="K.K Slider"
|
|
256
|
-
size="small"
|
|
257
|
-
src="https://play.nintendo.com/images/AC_KK_jh4yj5t.17345b1513ac044897cfc243542899dce541e8dc.9afde10b.png"
|
|
258
|
-
/>,
|
|
259
|
-
],
|
|
260
|
-
];
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
<Canvas>
|
|
264
|
-
<DSProvider>
|
|
265
|
-
<Table
|
|
266
|
-
columnHeaders={characterHeaders}
|
|
267
|
-
id="jsx-example"
|
|
268
|
-
showRowDividers
|
|
269
|
-
tableData={charactersData}
|
|
270
|
-
/>
|
|
271
|
-
</DSProvider>
|
|
272
|
-
</Canvas>
|