From ca4e8eb512dd50f723403ee9a786610032e45f30 Mon Sep 17 00:00:00 2001 From: Efren Lim Date: Mon, 28 Oct 2024 13:30:59 +0800 Subject: [PATCH 1/2] fix storybook preview to use global styles Signed-off-by: Efren Lim --- angular.json | 3 +- package.json | 3 +- .../lfx-component-lib/.storybook/preview.ts | 6 +- projects/lfx-component-lib/documentation.json | 442 ++++++++++++++++++ .../src/lib/styles/colors.scss | 17 +- .../src/lib/styles/index.scss | 2 + .../src/lib/themes/colors.stories.ts | 34 ++ scripts/build-colors.ts | 2 + 8 files changed, 499 insertions(+), 10 deletions(-) create mode 100644 projects/lfx-component-lib/src/lib/styles/index.scss create mode 100644 projects/lfx-component-lib/src/lib/themes/colors.stories.ts diff --git a/angular.json b/angular.json index b01aed2..1757d2b 100644 --- a/angular.json +++ b/angular.json @@ -46,7 +46,8 @@ "browserTarget": "lfx-component-lib:build", "compodoc": true, "compodocArgs": ["-e", "json", "-d", "projects/lfx-component-lib"], - "port": 6006 + "port": 6006, + "styles": ["projects/lfx-component-lib/src/lib/styles/index.scss"] } }, "build-storybook": { diff --git a/package.json b/package.json index 5e0f6f3..62c72b9 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,10 @@ "scripts": { "ng": "ng", "build-palette": "ts-node -O '{\"module\": \"commonjs\"}' ./scripts/build-palette.ts", - "build-colors": "ts-node -O '{\"module\": \"commonjs\"}' ./scripts/build-colors.ts", "build-constants": "ts-node -O '{\"module\": \"commonjs\"}' ./scripts/build-constants.ts", "start": "ng serve", "increase-patch": "npm version patch --prefix projects/lfx-component-lib", - "prebuild": "npm run increase-patch && npm run build-constants && npm run build-colors", + "prebuild": "npm run increase-patch && npm run build-constants", "build": "ng build", "postbuild": "npm run build --prefix projects/lfx-component-lib", "watch": "ng build --watch --configuration development", diff --git a/projects/lfx-component-lib/.storybook/preview.ts b/projects/lfx-component-lib/.storybook/preview.ts index 1c15e8d..8ec716e 100644 --- a/projects/lfx-component-lib/.storybook/preview.ts +++ b/projects/lfx-component-lib/.storybook/preview.ts @@ -1,6 +1,6 @@ -import type { Preview } from "@storybook/angular"; -import { setCompodocJson } from "@storybook/addon-docs/angular"; -import docJson from "../documentation.json"; +import type { Preview } from '@storybook/angular'; +import { setCompodocJson } from '@storybook/addon-docs/angular'; +import docJson from '../documentation.json'; setCompodocJson(docJson); diff --git a/projects/lfx-component-lib/documentation.json b/projects/lfx-component-lib/documentation.json index d7421f4..44eece0 100644 --- a/projects/lfx-component-lib/documentation.json +++ b/projects/lfx-component-lib/documentation.json @@ -10,6 +10,46 @@ "modules": [], "miscellaneous": { "variables": [ + { + "name": "AllColors", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text.

\n

This is a paragraph of body text.

\n `,\n }),\n}" + }, + { + "name": "AllTypography", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

Heading 1

\n

Heading 2

\n

Heading 3

\n

Heading 4

\n
Heading 5
\n

This is a paragraph of body text.

\n This is small text (body2).\n `,\n }),\n}" + }, + { + "name": "BodyText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text. It uses Open Sans, sans-serif font with a size of 0.875rem (14px) and line height of 1rem (16px).

\n `,\n }),\n}" + }, + { + "name": "DefaultText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text.

\n `,\n }),\n}" + }, { "name": "Error", "ctype": "miscellaneous", @@ -20,6 +60,76 @@ "type": "Story", "defaultValue": "{\n args: {\n type: 'error' as IType,\n },\n parameters: {\n design: {\n type: \"figspec\",\n url: \"https://www.figma.com/design/nj8rOxBtzQCa7KrvBxF4aF/Coherence-Design-System?node-id=772-5210&t=zfHib1d5XSXabYJp-4\",\n },\n },\n play: async ( {canvasElement} ) => {\n const element = getElement(canvasElement);\n await expect(element.classList).toContain('error');\n }\n}" }, + { + "name": "Heading1", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a Heading 1

\n

It uses Roboto Slab, sans-serif font with a size of 1.375rem (22px) and line height of 1.625rem (26px).

\n `,\n }),\n}" + }, + { + "name": "Heading2", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a Heading 2

\n

It uses Roboto Slab, sans-serif font with a size of 1.125rem (18px) and line height of 1.375rem (22px).

\n `,\n }),\n}" + }, + { + "name": "Heading3", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a Heading 3

\n

It uses Open Sans, sans-serif font with a size of 1rem (16px) and line height of 1.125rem (18px).

\n `,\n }),\n}" + }, + { + "name": "Heading4", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a Heading 4

\n

It uses Open Sans, sans-serif font with a size of 0.875rem (14px) and line height of 1rem (16px).

\n `,\n }),\n}" + }, + { + "name": "Heading5", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n
This is a Heading 5
\n

It uses Open Sans, sans-serif font with a size of 0.75rem (12px) and line height of 0.875rem (14px).

\n `,\n }),\n}" + }, + { + "name": "meta", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Meta", + "defaultValue": "{\n title: 'LFX Components/Themes/Colors',\n tags: ['autodocs'],\n}" + }, + { + "name": "meta", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Meta", + "defaultValue": "{\n title: 'LFX Components/Themes/Typography',\n tags: ['autodocs'],\n}" + }, { "name": "meta", "ctype": "miscellaneous", @@ -60,6 +170,16 @@ "type": "Preview", "defaultValue": "{\n parameters: {\n controls: {\n matchers: {\n color: /(background|color)$/i,\n date: /Date$/i,\n },\n },\n },\n}" }, + { + "name": "SecondaryText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text

\n `,\n }),\n}" + }, { "name": "Section", "ctype": "miscellaneous", @@ -70,6 +190,16 @@ "type": "Story", "defaultValue": "{\n render: (args: any) => ({\n template: `\n

Section

\n

Section content here

\n
\n
\n \n

Section

\n

Section content here

\n
\n \n

Section

\n

Section content here

\n
\n
`,\n }),\n}" }, + { + "name": "SmallText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n This is small text, also known as body2 in Figma. It uses Open Sans, sans-serif font with a size of 0.875rem (14px).\n `,\n }),\n}" + }, { "name": "Success", "ctype": "miscellaneous", @@ -123,6 +253,28 @@ } ], "typealiases": [ + { + "name": "Story", + "ctype": "miscellaneous", + "subtype": "typealias", + "rawtype": "StoryObj", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "description": "", + "kind": 183 + }, + { + "name": "Story", + "ctype": "miscellaneous", + "subtype": "typealias", + "rawtype": "StoryObj", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "description": "", + "kind": 183 + }, { "name": "Story", "ctype": "miscellaneous", @@ -148,6 +300,140 @@ ], "enumerations": [], "groupedVariables": { + "projects/lfx-component-lib/src/lib/themes/colors.stories.ts": [ + { + "name": "AllColors", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text.

\n

This is a paragraph of body text.

\n `,\n }),\n}" + }, + { + "name": "DefaultText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text.

\n `,\n }),\n}" + }, + { + "name": "meta", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Meta", + "defaultValue": "{\n title: 'LFX Components/Themes/Colors',\n tags: ['autodocs'],\n}" + }, + { + "name": "SecondaryText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text

\n `,\n }),\n}" + } + ], + "projects/lfx-component-lib/src/lib/themes/typography.stories.ts": [ + { + "name": "AllTypography", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

Heading 1

\n

Heading 2

\n

Heading 3

\n

Heading 4

\n
Heading 5
\n

This is a paragraph of body text.

\n This is small text (body2).\n `,\n }),\n}" + }, + { + "name": "BodyText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text. It uses Open Sans, sans-serif font with a size of 0.875rem (14px) and line height of 1rem (16px).

\n `,\n }),\n}" + }, + { + "name": "Heading1", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a Heading 1

\n

It uses Roboto Slab, sans-serif font with a size of 1.375rem (22px) and line height of 1.625rem (26px).

\n `,\n }),\n}" + }, + { + "name": "Heading2", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a Heading 2

\n

It uses Roboto Slab, sans-serif font with a size of 1.125rem (18px) and line height of 1.375rem (22px).

\n `,\n }),\n}" + }, + { + "name": "Heading3", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a Heading 3

\n

It uses Open Sans, sans-serif font with a size of 1rem (16px) and line height of 1.125rem (18px).

\n `,\n }),\n}" + }, + { + "name": "Heading4", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a Heading 4

\n

It uses Open Sans, sans-serif font with a size of 0.875rem (14px) and line height of 1rem (16px).

\n `,\n }),\n}" + }, + { + "name": "Heading5", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n
This is a Heading 5
\n

It uses Open Sans, sans-serif font with a size of 0.75rem (12px) and line height of 0.875rem (14px).

\n `,\n }),\n}" + }, + { + "name": "meta", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Meta", + "defaultValue": "{\n title: 'LFX Components/Themes/Typography',\n tags: ['autodocs'],\n}" + }, + { + "name": "SmallText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n This is small text, also known as body2 in Figma. It uses Open Sans, sans-serif font with a size of 0.875rem (14px).\n `,\n }),\n}" + } + ], "projects/lfx-component-lib/src/lib/containers/toast/__docs__/toast.stories.ts": [ { "name": "Error", @@ -270,6 +556,32 @@ }, "groupedEnumerations": {}, "groupedTypeAliases": { + "projects/lfx-component-lib/src/lib/themes/colors.stories.ts": [ + { + "name": "Story", + "ctype": "miscellaneous", + "subtype": "typealias", + "rawtype": "StoryObj", + "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "description": "", + "kind": 183 + } + ], + "projects/lfx-component-lib/src/lib/themes/typography.stories.ts": [ + { + "name": "Story", + "ctype": "miscellaneous", + "subtype": "typealias", + "rawtype": "StoryObj", + "file": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "description": "", + "kind": 183 + } + ], "projects/lfx-component-lib/src/lib/containers/sections/__docs__/sections.stories.ts": [ { "name": "Story", @@ -392,6 +704,136 @@ "coveragePercent": 0, "coverageCount": "0/1", "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "AllColors", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "DefaultText", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "meta", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "SecondaryText", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "AllTypography", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "BodyText", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "Heading1", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "Heading2", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "Heading3", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "Heading4", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "Heading5", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "meta", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/typography.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "SmallText", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" } ] } diff --git a/projects/lfx-component-lib/src/lib/styles/colors.scss b/projects/lfx-component-lib/src/lib/styles/colors.scss index 1bf13ba..be0f469 100644 --- a/projects/lfx-component-lib/src/lib/styles/colors.scss +++ b/projects/lfx-component-lib/src/lib/styles/colors.scss @@ -3,14 +3,23 @@ * SPDX-License-Identifier: MIT */ -body { - color: #282e32; +@import "./constants.scss"; + +// default text colors +*, +.text-primary { + color: $grey-1000; } +.text-secondary { + color: #808b91; +} + +// background colors .primary { - color: #282e32; + color: $blue-500; } .secondary { - color: #808b91; + color: $blue-50; } diff --git a/projects/lfx-component-lib/src/lib/styles/index.scss b/projects/lfx-component-lib/src/lib/styles/index.scss new file mode 100644 index 0000000..9ac731d --- /dev/null +++ b/projects/lfx-component-lib/src/lib/styles/index.scss @@ -0,0 +1,2 @@ +@import "./colors.scss"; +@import "./typography.scss"; diff --git a/projects/lfx-component-lib/src/lib/themes/colors.stories.ts b/projects/lfx-component-lib/src/lib/themes/colors.stories.ts new file mode 100644 index 0000000..dcb38e8 --- /dev/null +++ b/projects/lfx-component-lib/src/lib/themes/colors.stories.ts @@ -0,0 +1,34 @@ +import { Meta, StoryObj } from '@storybook/angular'; + +const meta: Meta = { + title: 'LFX Components/Themes/Colors', + tags: ['autodocs'], +}; + +export default meta; +type Story = StoryObj; + +export const DefaultText: Story = { + render: () => ({ + template: ` +

This is a paragraph of body text.

+ `, + }), +}; + +export const SecondaryText: Story = { + render: () => ({ + template: ` +

This is a paragraph of body text

+ `, + }), +}; + +export const AllColors: Story = { + render: () => ({ + template: ` +

This is a paragraph of body text.

+

This is a paragraph of body text.

+ `, + }), +}; diff --git a/scripts/build-colors.ts b/scripts/build-colors.ts index 3d5a1f7..f951d46 100644 --- a/scripts/build-colors.ts +++ b/scripts/build-colors.ts @@ -1,5 +1,7 @@ // Copyright The Linux Foundation and each contributor to LFX. // SPDX-License-Identifier: MIT + +// TODO: revisit this script. Disabling this for now. import { colorBase } from './helpers/base-css'; import { getPrimitiveValue } from './helpers/helper-functions'; import { primitives, lightMode } from './helpers/read-json'; From de043b7c4256078a762e3d1cc9dde8d6150a2a1d Mon Sep 17 00:00:00 2001 From: Efren Lim Date: Mon, 28 Oct 2024 14:07:06 +0800 Subject: [PATCH 2/2] Added color palette Signed-off-by: Efren Lim --- projects/lfx-component-lib/.storybook/main.ts | 3 +- projects/lfx-component-lib/documentation.json | 190 ++++++++++++++++-- .../src/lib/styles/colors.scss | 51 +++++ .../src/lib/themes/color-palette.mdx | 142 +++++++++++++ .../src/lib/themes/colors.stories.ts | 34 ---- .../src/lib/themes/text-colors.stories.ts | 81 ++++++++ 6 files changed, 446 insertions(+), 55 deletions(-) create mode 100644 projects/lfx-component-lib/src/lib/themes/color-palette.mdx delete mode 100644 projects/lfx-component-lib/src/lib/themes/colors.stories.ts create mode 100644 projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts diff --git a/projects/lfx-component-lib/.storybook/main.ts b/projects/lfx-component-lib/.storybook/main.ts index a50f5c3..f34ddc3 100644 --- a/projects/lfx-component-lib/.storybook/main.ts +++ b/projects/lfx-component-lib/.storybook/main.ts @@ -8,7 +8,8 @@ const config: StorybookConfig = { '@storybook/addon-essentials', '@chromatic-com/storybook', '@storybook/addon-interactions', - '@storybook/addon-designs' + '@storybook/addon-designs', + '@storybook/addon-docs', ], framework: { name: '@storybook/angular', diff --git a/projects/lfx-component-lib/documentation.json b/projects/lfx-component-lib/documentation.json index 44eece0..68c3636 100644 --- a/projects/lfx-component-lib/documentation.json +++ b/projects/lfx-component-lib/documentation.json @@ -14,11 +14,11 @@ "name": "AllColors", "ctype": "miscellaneous", "subtype": "variable", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "type": "Story", - "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text.

\n

This is a paragraph of body text.

\n `,\n }),\n}" + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text.

\n

This is a paragraph of body text.

\n This is a link text
\n This is a span with link text\n

This is a message notice

\n

This is a message warning

\n

This is a message success

\n

This is a message error

\n `,\n }),\n}" }, { "name": "AllTypography", @@ -44,7 +44,7 @@ "name": "DefaultText", "ctype": "miscellaneous", "subtype": "variable", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "type": "Story", @@ -110,15 +110,65 @@ "type": "Story", "defaultValue": "{\n render: () => ({\n template: `\n
This is a Heading 5
\n

It uses Open Sans, sans-serif font with a size of 0.75rem (12px) and line height of 0.875rem (14px).

\n `,\n }),\n}" }, + { + "name": "LinkText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n This is a link text
\n This is a span with link text\n `,\n }),\n}" + }, + { + "name": "MessageError", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a message error

\n `,\n }),\n}" + }, + { + "name": "MessageNotice", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a message notice

\n `,\n }),\n}" + }, + { + "name": "MessageSuccess", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a message success

\n `,\n }),\n}" + }, + { + "name": "MessageWarning", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a message warning

\n `,\n }),\n}" + }, { "name": "meta", "ctype": "miscellaneous", "subtype": "variable", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "type": "Meta", - "defaultValue": "{\n title: 'LFX Components/Themes/Colors',\n tags: ['autodocs'],\n}" + "defaultValue": "{\n title: 'LFX Components/Themes/Text Colors',\n tags: ['autodocs'],\n}" }, { "name": "meta", @@ -174,7 +224,7 @@ "name": "SecondaryText", "ctype": "miscellaneous", "subtype": "variable", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "type": "Story", @@ -258,7 +308,7 @@ "ctype": "miscellaneous", "subtype": "typealias", "rawtype": "StoryObj", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "description": "", @@ -300,42 +350,92 @@ ], "enumerations": [], "groupedVariables": { - "projects/lfx-component-lib/src/lib/themes/colors.stories.ts": [ + "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts": [ { "name": "AllColors", "ctype": "miscellaneous", "subtype": "variable", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "type": "Story", - "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text.

\n

This is a paragraph of body text.

\n `,\n }),\n}" + "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text.

\n

This is a paragraph of body text.

\n This is a link text
\n This is a span with link text\n

This is a message notice

\n

This is a message warning

\n

This is a message success

\n

This is a message error

\n `,\n }),\n}" }, { "name": "DefaultText", "ctype": "miscellaneous", "subtype": "variable", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "type": "Story", "defaultValue": "{\n render: () => ({\n template: `\n

This is a paragraph of body text.

\n `,\n }),\n}" }, + { + "name": "LinkText", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n This is a link text
\n This is a span with link text\n `,\n }),\n}" + }, + { + "name": "MessageError", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a message error

\n `,\n }),\n}" + }, + { + "name": "MessageNotice", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a message notice

\n `,\n }),\n}" + }, + { + "name": "MessageSuccess", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a message success

\n `,\n }),\n}" + }, + { + "name": "MessageWarning", + "ctype": "miscellaneous", + "subtype": "variable", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "deprecated": false, + "deprecationMessage": "", + "type": "Story", + "defaultValue": "{\n render: () => ({\n template: `\n

This is a message warning

\n `,\n }),\n}" + }, { "name": "meta", "ctype": "miscellaneous", "subtype": "variable", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "type": "Meta", - "defaultValue": "{\n title: 'LFX Components/Themes/Colors',\n tags: ['autodocs'],\n}" + "defaultValue": "{\n title: 'LFX Components/Themes/Text Colors',\n tags: ['autodocs'],\n}" }, { "name": "SecondaryText", "ctype": "miscellaneous", "subtype": "variable", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "type": "Story", @@ -556,13 +656,13 @@ }, "groupedEnumerations": {}, "groupedTypeAliases": { - "projects/lfx-component-lib/src/lib/themes/colors.stories.ts": [ + "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts": [ { "name": "Story", "ctype": "miscellaneous", "subtype": "typealias", "rawtype": "StoryObj", - "file": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "file": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "deprecated": false, "deprecationMessage": "", "description": "", @@ -706,7 +806,7 @@ "status": "low" }, { - "filePath": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "filePath": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "type": "variable", "linktype": "miscellaneous", "linksubtype": "variable", @@ -716,7 +816,7 @@ "status": "low" }, { - "filePath": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "filePath": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "type": "variable", "linktype": "miscellaneous", "linksubtype": "variable", @@ -726,7 +826,57 @@ "status": "low" }, { - "filePath": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "filePath": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "LinkText", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "MessageError", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "MessageNotice", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "MessageSuccess", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", + "type": "variable", + "linktype": "miscellaneous", + "linksubtype": "variable", + "name": "MessageWarning", + "coveragePercent": 0, + "coverageCount": "0/1", + "status": "low" + }, + { + "filePath": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "type": "variable", "linktype": "miscellaneous", "linksubtype": "variable", @@ -736,7 +886,7 @@ "status": "low" }, { - "filePath": "projects/lfx-component-lib/src/lib/themes/colors.stories.ts", + "filePath": "projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts", "type": "variable", "linktype": "miscellaneous", "linksubtype": "variable", diff --git a/projects/lfx-component-lib/src/lib/styles/colors.scss b/projects/lfx-component-lib/src/lib/styles/colors.scss index be0f469..43b0a54 100644 --- a/projects/lfx-component-lib/src/lib/styles/colors.scss +++ b/projects/lfx-component-lib/src/lib/styles/colors.scss @@ -23,3 +23,54 @@ .secondary { color: $blue-50; } + +a, +.link-text { + cursor: pointer; + color: $blue-500; + &:hover { + color: $blue-700; + } + &:active { + color: $blue-800; + } +} + +.message { + &.notice { + color: $blue-500; + } + &.warning { + color: $orange-500; + } + &.success { + color: $green-500; + } + &.error { + color: $red-500; + } +} + +// background colors +.bg-primary { + background-color: $blue-500; +} + +.bg-secondary { + background-color: $blue-50; +} + +.bg-message { + &.notice { + background-color: $blue-50; + } + &.warning { + background-color: $orange-50; + } + &.success { + background-color: $green-50; + } + &.error { + background-color: $red-50; + } +} diff --git a/projects/lfx-component-lib/src/lib/themes/color-palette.mdx b/projects/lfx-component-lib/src/lib/themes/color-palette.mdx new file mode 100644 index 0000000..7206bc9 --- /dev/null +++ b/projects/lfx-component-lib/src/lib/themes/color-palette.mdx @@ -0,0 +1,142 @@ +import { Meta, ColorPalette, ColorItem } from "@storybook/blocks"; +import colors from "../configs/color-palette.json"; + + + +# Color Palette + +Our design system's color palette helps maintain consistent styling across the application. + + + + + + + + + + + + + + + + + + diff --git a/projects/lfx-component-lib/src/lib/themes/colors.stories.ts b/projects/lfx-component-lib/src/lib/themes/colors.stories.ts deleted file mode 100644 index dcb38e8..0000000 --- a/projects/lfx-component-lib/src/lib/themes/colors.stories.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Meta, StoryObj } from '@storybook/angular'; - -const meta: Meta = { - title: 'LFX Components/Themes/Colors', - tags: ['autodocs'], -}; - -export default meta; -type Story = StoryObj; - -export const DefaultText: Story = { - render: () => ({ - template: ` -

This is a paragraph of body text.

- `, - }), -}; - -export const SecondaryText: Story = { - render: () => ({ - template: ` -

This is a paragraph of body text

- `, - }), -}; - -export const AllColors: Story = { - render: () => ({ - template: ` -

This is a paragraph of body text.

-

This is a paragraph of body text.

- `, - }), -}; diff --git a/projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts b/projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts new file mode 100644 index 0000000..e60fa30 --- /dev/null +++ b/projects/lfx-component-lib/src/lib/themes/text-colors.stories.ts @@ -0,0 +1,81 @@ +import { Meta, StoryObj } from '@storybook/angular'; + +const meta: Meta = { + title: 'LFX Components/Themes/Text Colors', + tags: ['autodocs'], +}; + +export default meta; +type Story = StoryObj; + +export const DefaultText: Story = { + render: () => ({ + template: ` +

This is a paragraph of body text.

+ `, + }), +}; + +export const SecondaryText: Story = { + render: () => ({ + template: ` +

This is a paragraph of body text

+ `, + }), +}; + +export const LinkText: Story = { + render: () => ({ + template: ` + This is a link text
+ This is a span with link text + `, + }), +}; + +export const MessageNotice: Story = { + render: () => ({ + template: ` +

This is a message notice

+ `, + }), +}; + +export const MessageWarning: Story = { + render: () => ({ + template: ` +

This is a message warning

+ `, + }), +}; + +export const MessageSuccess: Story = { + render: () => ({ + template: ` +

This is a message success

+ `, + }), +}; + +export const MessageError: Story = { + render: () => ({ + template: ` +

This is a message error

+ `, + }), +}; + +export const AllColors: Story = { + render: () => ({ + template: ` +

This is a paragraph of body text.

+

This is a paragraph of body text.

+ This is a link text
+ This is a span with link text +

This is a message notice

+

This is a message warning

+

This is a message success

+

This is a message error

+ `, + }), +};