@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
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Custom hook that controls the sliding function for the carousel wrapper.
|
|
5
|
+
* This returns functions to use for the "previous" and "next" buttons as well
|
|
6
|
+
* as a CSS style object that should be use to transition between slides.
|
|
7
|
+
* Inspired by: https://codesandbox.io/s/fxjeo
|
|
8
|
+
*/
|
|
9
|
+
const useCarouselStyles = (slidesCount = 0, slideWidth = 100) => {
|
|
10
|
+
const [currentSlide, setCurrentSlide] = React.useState(0);
|
|
11
|
+
// This wraps around to the last slide if this is invoked while the
|
|
12
|
+
// first slide is active.
|
|
13
|
+
const prevSlide = () => {
|
|
14
|
+
setCurrentSlide((slide) => (slide === 0 ? slidesCount - 1 : slide - 1));
|
|
15
|
+
};
|
|
16
|
+
// This wraps around to the first slide if this is invoked while the
|
|
17
|
+
// last slide is active.
|
|
18
|
+
const nextSlide = () => {
|
|
19
|
+
setCurrentSlide((slide) => (slide === slidesCount - 1 ? 0 : slide + 1));
|
|
20
|
+
};
|
|
21
|
+
const goToStart = () => {
|
|
22
|
+
setCurrentSlide(0);
|
|
23
|
+
};
|
|
24
|
+
// Updates the left margin for the carousel so the elements can
|
|
25
|
+
// slide inside the container.
|
|
26
|
+
const carouselStyle = {
|
|
27
|
+
transition: "all .5s",
|
|
28
|
+
marginLeft: `-${currentSlide * slideWidth}%`,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return { prevSlide, nextSlide, carouselStyle, goToStart };
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export default useCarouselStyles;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { useTheme } from "@chakra-ui/react";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A custom hook that returns the Chakra-based NYPL theme object. This must be
|
|
5
|
+
* used inside a component that is wrapped in the `DSProvider` component, so
|
|
6
|
+
* that the theme object can be available to use.
|
|
7
|
+
*/
|
|
8
|
+
function useNYPLTheme() {
|
|
9
|
+
const theme = useTheme();
|
|
10
|
+
if (!theme || Object.keys(theme).length === 0) {
|
|
11
|
+
console.warn(
|
|
12
|
+
"The `useNYPLTheme` hook must be used inside of `<DSProvider />`."
|
|
13
|
+
);
|
|
14
|
+
return {};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Chakra provides a lot of their own styles but
|
|
18
|
+
// only NYPL styles should be exported.
|
|
19
|
+
return {
|
|
20
|
+
// base, sm, md, lg, xl, 2xl
|
|
21
|
+
breakpoints: theme.breakpoints,
|
|
22
|
+
colors: {
|
|
23
|
+
// primary, secondary
|
|
24
|
+
brand: theme.colors.brand,
|
|
25
|
+
// blogs, books-and-more, locations, research,
|
|
26
|
+
// research-library, whats-on
|
|
27
|
+
section: theme.colors.section,
|
|
28
|
+
transparent: theme.colors.transparent,
|
|
29
|
+
// black, disabled, error, focus, gray, link,
|
|
30
|
+
// status, success, test, warning, white
|
|
31
|
+
ui: theme.colors.ui,
|
|
32
|
+
},
|
|
33
|
+
fontSizes: {
|
|
34
|
+
"-3": theme.fontSizes["-3"],
|
|
35
|
+
"-2": theme.fontSizes.xs,
|
|
36
|
+
"-1": theme.fontSizes.sm,
|
|
37
|
+
"0": theme.fontSizes.md,
|
|
38
|
+
"1": theme.fontSizes.lg,
|
|
39
|
+
"2": theme.fontSizes["2"],
|
|
40
|
+
"3": theme.fontSizes["3"],
|
|
41
|
+
"4": theme.fontSizes["4"],
|
|
42
|
+
},
|
|
43
|
+
fontWeights: {
|
|
44
|
+
light: theme.fontWeights.light,
|
|
45
|
+
regular: theme.fontWeights.regular,
|
|
46
|
+
medium: theme.fontWeights.medium,
|
|
47
|
+
bold: theme.fontWeights.bold,
|
|
48
|
+
},
|
|
49
|
+
fonts: {
|
|
50
|
+
body: theme.fonts.body,
|
|
51
|
+
heading: theme.fonts.heading,
|
|
52
|
+
},
|
|
53
|
+
radii: theme.radii,
|
|
54
|
+
space: {
|
|
55
|
+
xxs: theme.space.xxs,
|
|
56
|
+
xs: theme.space.xs,
|
|
57
|
+
s: theme.space.s,
|
|
58
|
+
m: theme.space.m,
|
|
59
|
+
l: theme.space.l,
|
|
60
|
+
xl: theme.space.xl,
|
|
61
|
+
xxl: theme.space.xxl,
|
|
62
|
+
xxxl: theme.space.xxxl,
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export default useNYPLTheme;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
interface WindowSize {
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* React hook used to get the window size on device resizing.
|
|
10
|
+
* Based on https://usehooks-typescript.com/react-hook/use-window-size
|
|
11
|
+
*/
|
|
12
|
+
function useWindowSize(): WindowSize {
|
|
13
|
+
const [windowSize, setWindowSize] = React.useState<WindowSize>({
|
|
14
|
+
width: 0,
|
|
15
|
+
height: 0,
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
React.useEffect(() => {
|
|
19
|
+
const handler = () => {
|
|
20
|
+
setWindowSize({
|
|
21
|
+
width: window.innerWidth,
|
|
22
|
+
height: window.innerHeight,
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// Set size at the first client-side load
|
|
27
|
+
handler();
|
|
28
|
+
|
|
29
|
+
window.addEventListener("resize", handler);
|
|
30
|
+
|
|
31
|
+
// Remove event listener on cleanup
|
|
32
|
+
return () => {
|
|
33
|
+
window.removeEventListener("resize", handler);
|
|
34
|
+
};
|
|
35
|
+
}, []);
|
|
36
|
+
|
|
37
|
+
return windowSize;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export default useWindowSize;
|
package/src/index.ts
CHANGED
|
@@ -4,18 +4,20 @@ import "./styles.scss";
|
|
|
4
4
|
// components for usage in consuming applications.
|
|
5
5
|
export {
|
|
6
6
|
Box,
|
|
7
|
+
ButtonGroup,
|
|
7
8
|
Center,
|
|
8
9
|
Circle,
|
|
9
10
|
Grid,
|
|
10
11
|
GridItem,
|
|
12
|
+
HStack,
|
|
11
13
|
Square,
|
|
12
14
|
Stack,
|
|
13
|
-
HStack,
|
|
14
15
|
VStack,
|
|
15
16
|
} from "@chakra-ui/react";
|
|
16
17
|
export { default as Accordion } from "./components/Accordion/Accordion";
|
|
17
18
|
export { default as Breadcrumbs } from "./components/Breadcrumbs/Breadcrumbs";
|
|
18
|
-
export {
|
|
19
|
+
export { ColorVariants } from "./components/Breadcrumbs/BreadcrumbsTypes";
|
|
20
|
+
export { default as Button } from "./components/Button/Button";
|
|
19
21
|
export { ButtonTypes } from "./components/Button/ButtonTypes";
|
|
20
22
|
export {
|
|
21
23
|
default as Card,
|
|
@@ -23,17 +25,15 @@ export {
|
|
|
23
25
|
CardContent,
|
|
24
26
|
CardHeading,
|
|
25
27
|
} from "./components/Card/Card";
|
|
26
|
-
export {
|
|
27
|
-
CardImageRatios,
|
|
28
|
-
CardImageSizes,
|
|
29
|
-
CardLayouts,
|
|
30
|
-
} from "./components/Card/CardTypes";
|
|
28
|
+
export { CardLayouts } from "./components/Card/CardTypes";
|
|
31
29
|
export { default as CardEdition } from "./components/CardEdition/CardEdition";
|
|
32
30
|
export { default as Checkbox } from "./components/Checkbox/Checkbox";
|
|
33
31
|
export { default as CheckboxGroup } from "./components/CheckboxGroup/CheckboxGroup";
|
|
34
32
|
export { CheckboxGroupLayoutTypes } from "./components/CheckboxGroup/CheckboxGroupLayoutTypes";
|
|
35
33
|
export { default as DatePicker } from "./components/DatePicker/DatePicker";
|
|
36
34
|
export { DatePickerTypes } from "./components/DatePicker/DatePickerTypes";
|
|
35
|
+
export { default as DSProvider } from "./theme/provider";
|
|
36
|
+
export { default as Fieldset } from "./components/Fieldset/Fieldset";
|
|
37
37
|
export { default as Form, FormField, FormRow } from "./components/Form/Form";
|
|
38
38
|
export { FormSpacing } from "./components/Form/FormTypes";
|
|
39
39
|
export { GridGaps } from "./components/Grid/GridTypes";
|
|
@@ -48,13 +48,20 @@ export { HeroTypes } from "./components/Hero/HeroTypes";
|
|
|
48
48
|
export { default as HorizontalRule } from "./components/HorizontalRule/HorizontalRule";
|
|
49
49
|
export { default as Icon } from "./components/Icons/Icon";
|
|
50
50
|
export {
|
|
51
|
+
IconAlign,
|
|
52
|
+
IconColors,
|
|
51
53
|
IconNames,
|
|
52
|
-
LogoNames,
|
|
53
54
|
IconRotationTypes,
|
|
54
|
-
IconColors,
|
|
55
55
|
IconSizes,
|
|
56
|
+
IconTypes,
|
|
57
|
+
LogoNames,
|
|
56
58
|
} from "./components/Icons/IconTypes";
|
|
57
59
|
export { default as Image } from "./components/Image/Image";
|
|
60
|
+
export {
|
|
61
|
+
ImageRatios,
|
|
62
|
+
ImageSizes,
|
|
63
|
+
ImageTypes,
|
|
64
|
+
} from "./components/Image/ImageTypes";
|
|
58
65
|
export { default as Input } from "./components/Input/Input";
|
|
59
66
|
export { InputTypes } from "./components/Input/InputTypes";
|
|
60
67
|
export { default as Label } from "./components/Label/Label";
|
|
@@ -63,25 +70,22 @@ export { LinkTypes } from "./components/Link/LinkTypes";
|
|
|
63
70
|
export { default as List } from "./components/List/List";
|
|
64
71
|
export { ListTypes } from "./components/List/ListTypes";
|
|
65
72
|
export { default as Modal } from "./components/Modal/Modal";
|
|
66
|
-
export {
|
|
67
|
-
default as Notification,
|
|
68
|
-
NotificationContent,
|
|
69
|
-
NotificationHeading,
|
|
70
|
-
} from "./components/Notification/Notification";
|
|
73
|
+
export { default as Notification } from "./components/Notification/Notification";
|
|
71
74
|
export { NotificationTypes } from "./components/Notification/NotificationTypes";
|
|
72
75
|
export { default as Pagination } from "./components/Pagination/Pagination";
|
|
73
76
|
export { default as Radio } from "./components/Radio/Radio";
|
|
74
77
|
export { default as RadioGroup } from "./components/RadioGroup/RadioGroup";
|
|
75
78
|
export { RadioGroupLayoutTypes } from "./components/RadioGroup/RadioGroupLayoutTypes";
|
|
76
79
|
export { default as SearchBar } from "./components/SearchBar/SearchBar";
|
|
80
|
+
export { default as Select } from "./components/Select/Select";
|
|
77
81
|
export { default as SimpleGrid } from "./components/Grid/SimpleGrid";
|
|
78
82
|
export { default as SkeletonLoader } from "./components/SkeletonLoader/SkeletonLoader";
|
|
79
83
|
export {
|
|
80
84
|
SkeletonLoaderImageRatios,
|
|
81
85
|
SkeletonLoaderLayouts,
|
|
82
86
|
} from "./components/SkeletonLoader/SkeletonLoaderTypes";
|
|
83
|
-
export { default as Select } from "./components/Select/Select";
|
|
84
87
|
export { default as StatusBadge } from "./components/StatusBadge/StatusBadge";
|
|
88
|
+
export { StatusBadgeTypes } from "./components/StatusBadge/StatusBadgeTypes";
|
|
85
89
|
export {
|
|
86
90
|
Tabs,
|
|
87
91
|
TabList,
|
|
@@ -89,8 +93,6 @@ export {
|
|
|
89
93
|
TabPanels,
|
|
90
94
|
TabPanel,
|
|
91
95
|
} from "./components/Tabs/Tabs";
|
|
92
|
-
export { default as Text } from "./components/Text/Text";
|
|
93
|
-
export { TextDisplaySizes } from "./components/Text/TextTypes";
|
|
94
96
|
export {
|
|
95
97
|
TemplateAppContainer,
|
|
96
98
|
Template,
|
|
@@ -102,15 +104,16 @@ export {
|
|
|
102
104
|
TemplateContentSidebar,
|
|
103
105
|
TemplateFooter,
|
|
104
106
|
} from "./components/Template/Template";
|
|
105
|
-
|
|
107
|
+
export { default as Text } from "./components/Text/Text";
|
|
108
|
+
export { TextDisplaySizes } from "./components/Text/TextTypes";
|
|
106
109
|
export {
|
|
107
110
|
default as TextInput,
|
|
108
111
|
TextInputRefType,
|
|
109
112
|
} from "./components/TextInput/TextInput";
|
|
110
113
|
export { TextInputTypes } from "./components/TextInput/TextInputTypes";
|
|
114
|
+
export { default as useNYPLTheme } from "./hooks/useNYPLTheme";
|
|
111
115
|
export { default as VideoPlayer } from "./components/VideoPlayer/VideoPlayer";
|
|
112
116
|
export {
|
|
113
117
|
VideoPlayerAspectRatios,
|
|
114
118
|
VideoPlayerTypes,
|
|
115
119
|
} from "./components/VideoPlayer/VideoPlayerTypes";
|
|
116
|
-
export { default as DSProvider } from "./theme/provider";
|
package/src/resources.scss
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Resources to export as sass mixins
|
|
2
|
-
@import "./styles/
|
|
3
|
-
@import "./styles/
|
|
4
|
-
@import "./styles/
|
|
5
|
-
@import "./styles/
|
|
6
|
-
@import "./styles/
|
|
2
|
+
@import "./styles/base/01-breakpoints";
|
|
3
|
+
@import "./styles/base/02-mixins";
|
|
4
|
+
@import "./styles/space/space-inline";
|
|
5
|
+
@import "./styles/space/space-inset";
|
|
6
|
+
@import "./styles/space/space-stack";
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Breakpoint Configuration
|
|
3
3
|
* @see https://github.com/Team-Sass/breakpoint/wiki
|
|
4
|
-
*
|
|
5
4
|
*/
|
|
6
5
|
|
|
7
6
|
// Global Breakpoints
|
|
@@ -12,17 +11,17 @@
|
|
|
12
11
|
// Sass' breakpoint() mixin doesn't work without Sass variables.
|
|
13
12
|
// CSS variables expose the breakpoint variables to consumers.
|
|
14
13
|
:root {
|
|
15
|
-
--breakpoint-small: 320px;
|
|
16
|
-
--breakpoint-medium: 600px;
|
|
17
|
-
--breakpoint-large: 960px;
|
|
18
|
-
--breakpoint-xl: 1280px;
|
|
14
|
+
--nypl-breakpoint-small: 320px;
|
|
15
|
+
--nypl-breakpoint-medium: 600px;
|
|
16
|
+
--nypl-breakpoint-large: 960px;
|
|
17
|
+
--nypl-breakpoint-xl: 1280px;
|
|
19
18
|
}
|
|
20
19
|
|
|
21
|
-
$breakpoint-small: 320px;
|
|
22
|
-
$breakpoint-medium: 600px;
|
|
23
|
-
$breakpoint-large: 960px;
|
|
24
|
-
$breakpoint-xl: 1280px;
|
|
20
|
+
$nypl-breakpoint-small: 320px;
|
|
21
|
+
$nypl-breakpoint-medium: 600px;
|
|
22
|
+
$nypl-breakpoint-large: 960px;
|
|
23
|
+
$nypl-breakpoint-xl: 1280px;
|
|
25
24
|
// The max-width breakpoint is used when the design should be applied at
|
|
26
25
|
// whatever the largest breakpoint is regardless of actual pixel value,
|
|
27
26
|
// e.g. removing outer margin on body wrapper.
|
|
28
|
-
$max-width: $breakpoint-xl;
|
|
27
|
+
$nypl-max-width: $nypl-breakpoint-xl;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
/// Mixin - Clearfix.
|
|
5
5
|
/// Adds clearfix based on http://bourbon.io/docs/#clearfix
|
|
6
|
-
/// use example =
|
|
6
|
+
/// use example = @include clearfix
|
|
7
7
|
|
|
8
8
|
@mixin clearfix {
|
|
9
9
|
&::after {
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
/// Outer container mixin for large screens
|
|
30
30
|
@mixin wrapper(
|
|
31
31
|
$container-max-width: $max-width,
|
|
32
|
-
$outer-container-break: $breakpoint-small,
|
|
32
|
+
$outer-container-break: $nypl-breakpoint-small,
|
|
33
33
|
$v-margin: 0,
|
|
34
34
|
$v-padding: 0,
|
|
35
|
-
$h-padding: var(--space)
|
|
35
|
+
$h-padding: var(--nypl-space-s)
|
|
36
36
|
) {
|
|
37
37
|
margin: #{$v-margin} auto;
|
|
38
38
|
max-width: #{$container-max-width};
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
.container {
|
|
44
|
-
|
|
44
|
+
padding: var(--nypl-space-s);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/// Use the breakout mixin for elements that should be edge-to-edge
|
|
48
48
|
/// Even when a parent container uses the wrapper mixin
|
|
49
|
-
@mixin breakout($v-padding: var(--space)) {
|
|
49
|
+
@mixin breakout($v-padding: var(--nypl-space-s)) {
|
|
50
50
|
margin-left: calc(-50vw + 50%);
|
|
51
51
|
margin-right: calc(-50vw + 50%);
|
|
52
52
|
}
|
|
@@ -61,6 +61,17 @@
|
|
|
61
61
|
word-wrap: normal;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
// Focus state mixin
|
|
65
|
+
@mixin focus-outline($darkBackground: false) {
|
|
66
|
+
outline: 2px solid var(--nypl-colors-ui-focus);
|
|
67
|
+
outline-offset: 2px;
|
|
68
|
+
z-index: 9999;
|
|
69
|
+
|
|
70
|
+
@if $darkBackground {
|
|
71
|
+
outline-color: var(--nypl-colors-ui-white);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
64
75
|
//Convert pixel values to rem
|
|
65
76
|
@function to-rem($size) {
|
|
66
77
|
@return $size / 16px * 1rem;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
// Kept for backwards compatibility.
|
|
1
2
|
.nypl-ds {
|
|
2
3
|
box-sizing: border-box;
|
|
3
|
-
color: var(--ui-black);
|
|
4
|
-
font-family: var(--
|
|
4
|
+
color: var(--nypl-colors-ui-black);
|
|
5
|
+
font-family: var(--nypl-fonts-body);
|
|
5
6
|
|
|
6
7
|
// Sets up the base font-size, 1rem, for the system
|
|
7
8
|
font-size: 16px;
|
|
@@ -12,6 +13,10 @@
|
|
|
12
13
|
// our breakout mixin. Fix identified here: https://cloudfour.com/thinks/breaking-out-with-viewport-units-and-calc/#one-big-dumb-caveat
|
|
13
14
|
overflow-x: hidden;
|
|
14
15
|
|
|
16
|
+
p {
|
|
17
|
+
margin: 0 0 var(--nypl-space-s);
|
|
18
|
+
}
|
|
19
|
+
|
|
15
20
|
*,
|
|
16
21
|
*::after,
|
|
17
22
|
*::before {
|
|
@@ -1,14 +1,3 @@
|
|
|
1
|
-
// Focus state mixin
|
|
2
|
-
@mixin focus-outline($darkBackground: false) {
|
|
3
|
-
outline: 2px solid var(--ui-focus);
|
|
4
|
-
outline-offset: 2px;
|
|
5
|
-
z-index: 9999;
|
|
6
|
-
|
|
7
|
-
@if $darkBackground {
|
|
8
|
-
outline-color: var(--ui-white);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
1
|
// Apply :focus behavior to focusable elements only (For IE 11)
|
|
13
2
|
.nypl-ds {
|
|
14
3
|
input,
|
|
@@ -31,7 +20,3 @@
|
|
|
31
20
|
}
|
|
32
21
|
}
|
|
33
22
|
}
|
|
34
|
-
|
|
35
|
-
.focus {
|
|
36
|
-
@include focus-outline;
|
|
37
|
-
}
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
.placeholder {
|
|
2
|
-
--color-place-holder: var(--ui-gray-
|
|
2
|
+
--color-place-holder: var(--nypl-colors-ui-gray-dark);
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
@include
|
|
4
|
+
margin-bottom: var(--nypl-space-l);
|
|
5
|
+
@include breakpoint($nypl-breakpoint-large) {
|
|
6
|
+
margin-bottom: var(--nypl-space-xl);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
&--full {
|
|
10
|
+
margin-bottom: var(--nypl-space-xxl);
|
|
11
|
+
@include breakpoint($nypl-breakpoint-large) {
|
|
12
|
+
margin-bottom: var(--nypl-space-xxxl);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
padding: var(--nypl-space-s);
|
|
6
17
|
|
|
7
18
|
align-items: center;
|
|
8
19
|
border: 4px dashed var(--color-place-holder);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
2
|
+
* --nypl-space-xxs: --nypl-space-s / 4 // 4px or 0.25rem
|
|
3
|
+
* --nypl-space-xs: --nypl-space-s / 2 // 8px or 0.5rem
|
|
4
|
+
* --nypl-space-s: --nypl-space-s * 1; // 16px or 1rem
|
|
5
|
+
* --nypl-space-m: --nypl-space * 1.5; // 24px or 1.5rem
|
|
6
|
+
* --nypl-space-l: --nypl-space * 2; // 32px or 2rem
|
|
7
|
+
* --nypl-space-xl: --nypl-space * 3; // 48px or 3rem
|
|
8
|
+
* --nypl-space-xxl: --nypl-space * 4; // 64px or 4rem
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
@mixin space-inline-none {
|
|
@@ -13,31 +13,31 @@
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
@mixin space-inline-xxs {
|
|
16
|
-
margin-right: var(--space-xxs);
|
|
16
|
+
margin-right: var(--nypl-space-xxs);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
@mixin space-inline-xs {
|
|
20
|
-
margin-right: var(--space-xs);
|
|
20
|
+
margin-right: var(--nypl-space-xs);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
@mixin space-inline-s {
|
|
24
|
-
margin-right: var(--space-s);
|
|
24
|
+
margin-right: var(--nypl-space-s);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
@mixin space-inline-m {
|
|
28
|
-
margin-right: var(--space-m);
|
|
28
|
+
margin-right: var(--nypl-space-m);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
@mixin space-inline-l {
|
|
32
|
-
margin-right: var(--space-l);
|
|
32
|
+
margin-right: var(--nypl-space-l);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
@mixin space-inline-xl {
|
|
36
|
-
margin-right: var(--space-xl);
|
|
36
|
+
margin-right: var(--nypl-space-xl);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
@mixin space-inline-xxl {
|
|
40
|
-
margin-right: var(--space-xxl);
|
|
40
|
+
margin-right: var(--nypl-space-xxl);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
@mixin get-space-inline($id) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* --nypl-space-xs: --nypl-space-s / 2 // 8px or 0.5rem
|
|
3
|
+
* --nypl-space-s: --nypl-space-s * 1; // 16px or 1rem
|
|
4
|
+
* --nypl-space-m: --nypl-space * 1.5; // 24px or 1.5rem
|
|
5
|
+
* --nypl-space-l: --nypl-space * 2; // 32px or 2rem
|
|
6
|
+
* --nypl-space-xl: --nypl-space * 3; // 48px or 3rem
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
@mixin space-inset-none {
|
|
@@ -11,23 +11,23 @@
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
@mixin space-inset-xs {
|
|
14
|
-
padding: var(--space-xs);
|
|
14
|
+
padding: var(--nypl-space-xs);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
@mixin space-inset-s {
|
|
18
|
-
padding: var(--space-s);
|
|
18
|
+
padding: var(--nypl-space-s);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
@mixin space-inset-m {
|
|
22
|
-
padding: var(--space-m);
|
|
22
|
+
padding: var(--nypl-space-m);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
@mixin space-inset-l {
|
|
26
|
-
padding: var(--space-l);
|
|
26
|
+
padding: var(--nypl-space-l);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
@mixin space-inset-xl {
|
|
30
|
-
padding: var(--space-xl);
|
|
30
|
+
padding: var(--nypl-space-xl);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
@mixin get-space-inset($id) {
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* --nypl-space-xxs: --nypl-space-s / 4 // 4px or 0.25rem
|
|
3
|
+
* --nypl-space-xs: --nypl-space-s / 2 // 8px or 0.5rem
|
|
4
|
+
* --nypl-space-s: --nypl-space-s * 1; // 16px or 1rem
|
|
5
|
+
* --nypl-space-m: --nypl-space-s * 1.5; // 24px or 1.5rem
|
|
6
|
+
* --nypl-space-l: --nypl-space-s * 2; // 32px or 2rem
|
|
7
|
+
* --nypl-space-xl: --nypl-space-s * 3; // 48px or 3rem
|
|
8
|
+
* --nypl-space-xxl: --nypl-space-s * 4; // 64px or 4rem
|
|
9
|
+
* --nypl-space-xxxl: --nypl-space-s * 6; // 96px or 6rem
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
@mixin space-stack-none {
|
|
13
|
+
margin-bottom: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@mixin space-stack-xxs {
|
|
17
|
+
margin-bottom: var(--nypl-space-xxs);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@mixin space-stack-xs {
|
|
21
|
+
margin-bottom: var(--nypl-space-xs);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@mixin space-stack-s {
|
|
25
|
+
margin-bottom: var(--nypl-space-s);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@mixin space-stack-m {
|
|
29
|
+
margin-bottom: var(--nypl-space-m);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@mixin space-stack-l {
|
|
33
|
+
margin-bottom: var(--nypl-space-l);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@mixin space-stack-xl {
|
|
37
|
+
margin-bottom: var(--nypl-space-xl);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@mixin space-stack-xxl {
|
|
41
|
+
margin-bottom: var(--nypl-space-xxl);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@mixin space-stack-xxxl {
|
|
45
|
+
margin-bottom: var(--nypl-space-xxxl);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@mixin space-stack-page {
|
|
49
|
+
@include space-stack-l;
|
|
50
|
+
|
|
51
|
+
@include breakpoint($nypl-breakpoint-large) {
|
|
52
|
+
@include space-stack-xl;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
&--full {
|
|
56
|
+
@include space-stack-xxl;
|
|
57
|
+
|
|
58
|
+
@include breakpoint($nypl-breakpoint-large) {
|
|
59
|
+
@include space-stack-xxxl;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
@mixin remove-stack-page {
|
|
65
|
+
margin-top: calc(-1 * 32px);
|
|
66
|
+
|
|
67
|
+
@include breakpoint($nypl-breakpoint-large) {
|
|
68
|
+
margin-top: calc(-1 * 48px);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&--full {
|
|
72
|
+
margin-top: calc(-1 * 64px);
|
|
73
|
+
|
|
74
|
+
@include breakpoint($nypl-breakpoint-large) {
|
|
75
|
+
margin-top: calc(-1 * 96px);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@mixin get-space-stack($id) {
|
|
81
|
+
@if $id == "none" {
|
|
82
|
+
@include space-stack-none;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@if $id == "xxs" {
|
|
86
|
+
@include space-stack-xxs;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@if $id == "xs" {
|
|
90
|
+
@include space-stack-xs;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@if $id == "s" {
|
|
94
|
+
@include space-stack-s;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@if $id == "m" {
|
|
98
|
+
@include space-stack-m;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
@if $id == "l" {
|
|
102
|
+
@include space-stack-l;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@if $id == "xl" {
|
|
106
|
+
@include space-stack-xl;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@if $id == "xxl" {
|
|
110
|
+
@include space-stack-xxl;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@if $id == "xxxl" {
|
|
114
|
+
@include space-stack-xxxl;
|
|
115
|
+
}
|
|
116
|
+
}
|