From b7b7858de9fbf2d4d269c45253afd45bca3aa760 Mon Sep 17 00:00:00 2001 From: Masoud Amjadi Date: Sun, 25 Feb 2024 08:26:15 -0500 Subject: [PATCH] feat(bases): add corner, borders, shadows, spacing --- .storybook/preview.js | 2 +- .../styles-dictionary/css/variables.css | 1 + .../design-tokens/drop-shadows.json | 5 +- .../styles-dictionary/json/tailwind.json | 5 +- .../styles-dictionary/scss/_variables.scss | 3 +- .../src/core/Bases/Borders/index.stories.tsx | 137 ++++++++++++++++ .../src/core/Bases/Borders/style.ts | 52 ++++++ .../Colors/components/Colors/color.tsx | 2 +- .../Colors/components/Colors/index.tsx | 0 .../Colors/components/Colors/style.ts | 1 + .../Colors/index.stories.tsx | 2 +- .../src/core/Bases/Corners/index.stories.tsx | 110 +++++++++++++ .../src/core/Bases/Corners/style.ts | 139 ++++++++++++++++ .../core/Bases/DropShadows/index.stories.tsx | 116 ++++++++++++++ .../src/core/Bases/DropShadows/style.ts | 49 ++++++ .../src/core/Bases/Spacing/index.stories.tsx | 102 ++++++++++++ .../src/core/Bases/Spacing/style.ts | 91 +++++++++++ .../src/core/{Foundations => Bases}/utils.ts | 0 .../Foundations/Corners/index.stories.tsx | 148 ------------------ .../src/core/Foundations/Corners/style.ts | 139 ---------------- .../src/core/styles/common/SDSAppTheme.ts | 2 +- 21 files changed, 811 insertions(+), 295 deletions(-) create mode 100644 packages/components/src/core/Bases/Borders/index.stories.tsx create mode 100644 packages/components/src/core/Bases/Borders/style.ts rename packages/components/src/core/{Foundations => Bases}/Colors/components/Colors/color.tsx (97%) rename packages/components/src/core/{Foundations => Bases}/Colors/components/Colors/index.tsx (100%) rename packages/components/src/core/{Foundations => Bases}/Colors/components/Colors/style.ts (99%) rename packages/components/src/core/{Foundations => Bases}/Colors/index.stories.tsx (98%) create mode 100644 packages/components/src/core/Bases/Corners/index.stories.tsx create mode 100644 packages/components/src/core/Bases/Corners/style.ts create mode 100644 packages/components/src/core/Bases/DropShadows/index.stories.tsx create mode 100644 packages/components/src/core/Bases/DropShadows/style.ts create mode 100644 packages/components/src/core/Bases/Spacing/index.stories.tsx create mode 100644 packages/components/src/core/Bases/Spacing/style.ts rename packages/components/src/core/{Foundations => Bases}/utils.ts (100%) delete mode 100644 packages/components/src/core/Foundations/Corners/index.stories.tsx delete mode 100644 packages/components/src/core/Foundations/Corners/style.ts diff --git a/.storybook/preview.js b/.storybook/preview.js index 0a00a4e51..461cf55c8 100644 --- a/.storybook/preview.js +++ b/.storybook/preview.js @@ -70,7 +70,7 @@ const preview = { options: { storySort: { method: "alphabetical", - order: ["Foundations", "Components", "Data Viz", "Deprecated"], + order: ["Bases", "Components", "Data Viz", "Deprecated"], }, }, }, diff --git a/packages/components/src/common/styles-dictionary/css/variables.css b/packages/components/src/common/styles-dictionary/css/variables.css index b40cfc080..07218fd41 100644 --- a/packages/components/src/common/styles-dictionary/css/variables.css +++ b/packages/components/src/common/styles-dictionary/css/variables.css @@ -149,6 +149,7 @@ --sds-drop-shadows-shadow-m: 0px 2px 10px 0px rgba(0, 0, 0, 0.15), 0px 2px 4px 0px rgba(0, 0, 0, 0.15); --sds-drop-shadows-shadow-s: 0px 2px 4px 0px rgba(0, 0, 0, 0.25); + --sds-drop-shadows-shadow-none: none; --sds-font-color: black; --sds-font-font-family-body: "Inter", sans-serif; --sds-font-font-family-caps: "Inter", sans-serif; diff --git a/packages/components/src/common/styles-dictionary/design-tokens/drop-shadows.json b/packages/components/src/common/styles-dictionary/design-tokens/drop-shadows.json index a62068a33..f217ba369 100644 --- a/packages/components/src/common/styles-dictionary/design-tokens/drop-shadows.json +++ b/packages/components/src/common/styles-dictionary/design-tokens/drop-shadows.json @@ -5,10 +5,13 @@ "value": "0.0px 2.0px 12.0px 0px rgba(0, 0, 0, 0.3)" }, "shadowM": { - "value": "0.0px 2.0px 10.0px 0px rgba(0, 0, 0, 0.15),0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.15)" + "value": "0.0px 2.0px 10.0px 0px rgba(0, 0, 0, 0.15), 0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.15)" }, "shadowS": { "value": "0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.25)" + }, + "shadowNone": { + "value": "none" } } } diff --git a/packages/components/src/common/styles-dictionary/json/tailwind.json b/packages/components/src/common/styles-dictionary/json/tailwind.json index c790a4126..11e39b782 100644 --- a/packages/components/src/common/styles-dictionary/json/tailwind.json +++ b/packages/components/src/common/styles-dictionary/json/tailwind.json @@ -143,8 +143,9 @@ }, "boxShadow": { "sds-l": "0.0px 2.0px 12.0px 0px rgba(0, 0, 0, 0.3)", - "sds-m": "0.0px 2.0px 10.0px 0px rgba(0, 0, 0, 0.15),0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.15)", - "sds-s": "0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.25)" + "sds-m": "0.0px 2.0px 10.0px 0px rgba(0, 0, 0, 0.15), 0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.15)", + "sds-s": "0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.25)", + "sds-shadownone": "none" }, "colors": { "sds-color-primitive-common-black": "#000000", diff --git a/packages/components/src/common/styles-dictionary/scss/_variables.scss b/packages/components/src/common/styles-dictionary/scss/_variables.scss index ae3642b17..d99670f7b 100644 --- a/packages/components/src/common/styles-dictionary/scss/_variables.scss +++ b/packages/components/src/common/styles-dictionary/scss/_variables.scss @@ -145,8 +145,9 @@ $sds-corners-corner-m: 4px; $sds-corners-corner-s: 2px; $sds-corners-corner-none: 0px; $sds-drop-shadows-shadow-l: 0.0px 2.0px 12.0px 0px rgba(0, 0, 0, 0.3); -$sds-drop-shadows-shadow-m: 0.0px 2.0px 10.0px 0px rgba(0, 0, 0, 0.15),0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.15); +$sds-drop-shadows-shadow-m: 0.0px 2.0px 10.0px 0px rgba(0, 0, 0, 0.15), 0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.15); $sds-drop-shadows-shadow-s: 0.0px 2.0px 4.0px 0px rgba(0, 0, 0, 0.25); +$sds-drop-shadows-shadow-none: none; $sds-font-color: black; $sds-font-font-family-body: "Inter", sans-serif; $sds-font-font-family-caps: "Inter", sans-serif; diff --git a/packages/components/src/core/Bases/Borders/index.stories.tsx b/packages/components/src/core/Bases/Borders/index.stories.tsx new file mode 100644 index 000000000..b2a8efcba --- /dev/null +++ b/packages/components/src/core/Bases/Borders/index.stories.tsx @@ -0,0 +1,137 @@ +import { Meta } from "@storybook/react"; +import { BADGE } from "../../../common/SDSBadges"; +import { useTheme } from "@mui/material"; +import { getBorders } from "../../styles"; +import { + StyledBorderBox, + StyledBorderVariable, + StyledBordersWrapper, +} from "./style"; +import Table from "src/core/Table"; +import TableHeader from "src/core/TableHeader"; +import CellHeader from "src/core/CellHeader"; +import TableRow from "src/core/TableRow"; +import CellComponent from "src/core/CellComponent"; +import CellBasic from "src/core/CellBasic"; +import { copyToClipboard } from "../utils"; + +export default { + parameters: { + badges: [BADGE.WIP], + }, + title: "Bases/Borders", +} as Meta; + +// Corners + +const Usage: Record = { + "$sds-borders-accent-300": "-", + "$sds-borders-accent-400": + "Secondary buttons, active states of input containers", + "$sds-borders-accent-500": "Hover rounded and square buttons", + "$sds-borders-accent-600": "Active rounded and square buttons", + "$sds-borders-accent-dashed": + "Hover states for containers with dashed borders", + "$sds-borders-base-100": "Modals and dropdown Menus", + "$sds-borders-base-200": "-", + "$sds-borders-base-300": + "Disabled or non-interactive containers (buttons/inputs/tooltips)", + "$sds-borders-base-400": "Input borders (default states)", + "$sds-borders-base-500": "-", + "$sds-borders-base-black": "Input and dropdown hover states", + "$sds-borders-base-dashed": "File upload/drag and drop containers", + "$sds-borders-beta-400": "-", + "$sds-borders-info-400": "-", + "$sds-borders-link-dashed": + "Default bottom-border for Text Links; border color is inherited from the color used in the paragraph it is part of.", + "$sds-borders-link-solid": + "Hover and Pressed bottom-border for Text Links; border color is inherited from the color used in the paragraph it is part of.", + "$sds-borders-negative-400": "Error state on inputs.", + "$sds-borders-none": "No borders", + "$sds-borders-notice-400": "Warning state on inputs.", + "$sds-borders-positive-400": "Success state on inputs.", +}; + +const Template = () => { + const theme = useTheme(); + const borders = getBorders({ theme }); + + const RenderTableRow = ( + border: string, + group: string | null, + name: string + ) => { + const variable = group + ? "$sds-borders-" + group + "-" + name + : "$sds-borders-" + name; + + return ( + + + + + + copyToClipboard(`border: ${border};`)} + > + border: {border}; + + + copyToClipboard(variable)} + > + {variable} + + + + + ); + }; + + if (borders) { + const { none, link, base, ...rest } = borders; + + // eslint-disable-next-line sort-keys + const TableBodyContent = Object.entries({ none, link, base, ...rest }).map( + ([key, value]) => { + if (typeof value === "object") { + return Object.entries(value).map(([k, v]) => { + return RenderTableRow(v as string, key, k); + }); + } else { + return RenderTableRow(value, null, key); + } + } + ); + + return ( + + + + Example + + Variable + Value + Usage + + {TableBodyContent} +
+ ); + } +}; + +export const Default = { + render: () => ( + <> + +