From be6b8b7e8341acf8ab2b4eff551ca18e7612ff9b Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Mon, 6 Nov 2023 11:17:31 -0800 Subject: [PATCH 1/5] [C-3321] Add harmony site theme --- packages/harmony/.storybook/main.ts | 1 - packages/harmony/.storybook/manager-head.html | 38 +++++++++++ packages/harmony/.storybook/manager.ts | 18 ------ packages/harmony/.storybook/manager.tsx | 8 +++ packages/harmony/.storybook/preview-body.html | 60 +++++++++++++++++- packages/harmony/.storybook/preview.ts | 8 +-- packages/harmony/.storybook/public/logo.png | Bin 5828 -> 0 bytes .../harmony/.storybook/public/storybook.svg | 5 -- .../input/PasswordInput/PasswordInput.tsx | 2 + packages/harmony/src/icons/icons.ts | 4 +- .../src/storybook/assets/harmonyLogo.png | Bin 0 -> 71428 bytes .../storybook/components/ComponentRule.tsx | 13 ++-- .../storybook/components/TypographyPanel.tsx | 38 +++++------ .../harmony/src/storybook/theme/colors.ts | 22 +++++++ packages/harmony/src/storybook/theme/index.ts | 1 + .../harmony/src/storybook/theme/theme.tsx | 33 ++++++++++ packages/harmony/src/typings.d.ts | 3 + 17 files changed, 194 insertions(+), 60 deletions(-) create mode 100644 packages/harmony/.storybook/manager-head.html delete mode 100644 packages/harmony/.storybook/manager.ts create mode 100644 packages/harmony/.storybook/manager.tsx delete mode 100644 packages/harmony/.storybook/public/logo.png delete mode 100644 packages/harmony/.storybook/public/storybook.svg create mode 100644 packages/harmony/src/storybook/assets/harmonyLogo.png create mode 100644 packages/harmony/src/storybook/theme/colors.ts create mode 100644 packages/harmony/src/storybook/theme/index.ts create mode 100644 packages/harmony/src/storybook/theme/theme.tsx diff --git a/packages/harmony/.storybook/main.ts b/packages/harmony/.storybook/main.ts index 136815b663e..8ccb11f6cc9 100644 --- a/packages/harmony/.storybook/main.ts +++ b/packages/harmony/.storybook/main.ts @@ -6,7 +6,6 @@ const config: StorybookConfig = { staticDirs: ['./public'], stories: ['../src/**/*.mdx', '../src/**/*.stories.@(mdx|ts|tsx)'], addons: [ - 'storybook-dark-mode', '@storybook/addon-a11y', '@storybook/addon-themes', '@storybook/addon-interactions', diff --git a/packages/harmony/.storybook/manager-head.html b/packages/harmony/.storybook/manager-head.html new file mode 100644 index 00000000000..ace2e3cf419 --- /dev/null +++ b/packages/harmony/.storybook/manager-head.html @@ -0,0 +1,38 @@ + \ No newline at end of file diff --git a/packages/harmony/.storybook/manager.ts b/packages/harmony/.storybook/manager.ts deleted file mode 100644 index f1a55976d0d..00000000000 --- a/packages/harmony/.storybook/manager.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { addons } from '@storybook/manager-api' -import { create } from '@storybook/theming/create' -import logo from './public/logo.png' - -export const theme = create({ - base: 'light', - - // typography - fontBase: '"Open Sans", sans-serif', - fontCode: 'monospace', - - brandTitle: 'Harmony Design', - brandUrl: 'harmony.audius.co', - brandImage: logo, - brandTarget: '_self' -}) - -addons.setConfig({ theme }) diff --git a/packages/harmony/.storybook/manager.tsx b/packages/harmony/.storybook/manager.tsx new file mode 100644 index 00000000000..e877c49fd76 --- /dev/null +++ b/packages/harmony/.storybook/manager.tsx @@ -0,0 +1,8 @@ +import { addons } from '@storybook/manager-api' +import { create } from '@storybook/theming/create' + +import { harmonyBrandTheme } from '../src/storybook/theme' + +addons.setConfig({ + theme: harmonyBrandTheme +}) diff --git a/packages/harmony/.storybook/preview-body.html b/packages/harmony/.storybook/preview-body.html index ee17f370e90..82bd177b9f1 100644 --- a/packages/harmony/.storybook/preview-body.html +++ b/packages/harmony/.storybook/preview-body.html @@ -1,7 +1,6 @@ \ No newline at end of file diff --git a/packages/harmony/.storybook/preview.ts b/packages/harmony/.storybook/preview.ts index d2d88d243b8..2cd9cf2334c 100644 --- a/packages/harmony/.storybook/preview.ts +++ b/packages/harmony/.storybook/preview.ts @@ -23,10 +23,7 @@ import { ThemeProvider } from '@emotion/react' // Default to docs view export const parameters = { viewMode: 'docs', - darkMode: { - light: lightTheme, - dark: darkTheme - }, + enableShortcuts: false, docs: { container: HarmonyDocsContainer, toc: true, @@ -34,6 +31,9 @@ export const parameters = { ComponentRules, RelatedComponents } + }, + options: { + enableShortcuts: false } } diff --git a/packages/harmony/.storybook/public/logo.png b/packages/harmony/.storybook/public/logo.png deleted file mode 100644 index 8323672224b2f4c5e3eac1672127bc08ef61b3c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5828 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 - - - - \ No newline at end of file diff --git a/packages/harmony/src/components/input/PasswordInput/PasswordInput.tsx b/packages/harmony/src/components/input/PasswordInput/PasswordInput.tsx index 57b27bc5b6f..bedadf6e724 100644 --- a/packages/harmony/src/components/input/PasswordInput/PasswordInput.tsx +++ b/packages/harmony/src/components/input/PasswordInput/PasswordInput.tsx @@ -1,7 +1,9 @@ import { MouseEvent, forwardRef, useCallback, useState } from 'react' import { IconVisibilityHidden, IconVisibilityPublic } from 'icons' + import { TextInput } from '../TextInput' + import styles from './PasswordInput.modules.css' import type { PasswordInputProps } from './types' diff --git a/packages/harmony/src/icons/icons.ts b/packages/harmony/src/icons/icons.ts index 362aae21fac..93fe05aa0a1 100644 --- a/packages/harmony/src/icons/icons.ts +++ b/packages/harmony/src/icons/icons.ts @@ -109,7 +109,7 @@ export { default as IconMessageBlock } from '../assets/icons/MessageBlock.svg' export { default as IconStars } from '../assets/icons/Stars.svg' export { default as IconCastChromecast } from '../assets/icons/CastChromecast.svg' export { default as IconMessageLocked } from '../assets/icons/MessageLocked.svg' -export { default as IconTasteMaker } from '../assets/icons/TasteMaker.svg' +export { default as IconTasteMaker } from '../assets/icons/Tastemaker.svg' export { default as IconCheck } from '../assets/icons/Check.svg' export { default as IconMessageUnblock } from '../assets/icons/MessageUnblock.svg' export { default as IconThumbsDown } from '../assets/icons/ThumbsDown.svg' @@ -184,7 +184,7 @@ export { default as IconRocket } from '../assets/icons/Rocket.svg' export { default as IconWithdraw } from '../assets/icons/Withdraw.svg' export { default as IconFeed } from '../assets/icons/Feed.svg' export { default as IconSave } from '../assets/icons/Save.svg' -export { default as IconrecoveryEmail } from '../assets/icons/recoveryEmail.svg' +export { default as IconrecoveryEmail } from '../assets/icons/RecoveryEmail.svg' export { default as IconHeadphones } from '../assets/icons/Headphones.svg' export { default as IconValidationCheck } from '../assets/icons/ValidationCheck.svg' export { default as IconValidationX } from '../assets/icons/ValidationX.svg' diff --git a/packages/harmony/src/storybook/assets/harmonyLogo.png b/packages/harmony/src/storybook/assets/harmonyLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9ae081415f433c96c5812c6c5c6c010c03e491 GIT binary patch literal 71428 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¨6ow-XnI_)J~jDRu)2WgOZ8iAvOuCWvQw+~U%i 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 i`HqEq00000Irx7dKTRYhkj-xZ0000 { @@ -34,14 +33,10 @@ export const ComponentRule = (props: ComponentRuleProps) => { return ( - - {title} + + {title} - + {description} diff --git a/packages/harmony/src/storybook/components/TypographyPanel.tsx b/packages/harmony/src/storybook/components/TypographyPanel.tsx index ec698bfaf4d..f4a54cde040 100644 --- a/packages/harmony/src/storybook/components/TypographyPanel.tsx +++ b/packages/harmony/src/storybook/components/TypographyPanel.tsx @@ -31,14 +31,16 @@ export const TypographyCard = (props: TypographyCardProps) => { return ( - + {variant}-{size} {strength ? `-${strength}` : ''} - Ag + + Ag + Font Size: {fontSize}px, Line-height: {lineHeight}, Spacing:{' '} - {variant === 'label' ? '0.5px' : '0%'} Weight: {fontWeightKey} + {variant === 'label' ? '0.5px' : '0%'}, Weight: {fontWeightKey} ) @@ -54,21 +56,19 @@ export const TypographyPanel = (props: TypographyPanelProps) => { const { variant, sizes, strengths } = props return ( - - - {sizes.map((size) => ( - - {strengths.map((strength) => ( - - ))} - - ))} - - + + {sizes.map((size) => ( + + {strengths.map((strength) => ( + + ))} + + ))} + ) } diff --git a/packages/harmony/src/storybook/theme/colors.ts b/packages/harmony/src/storybook/theme/colors.ts new file mode 100644 index 00000000000..8e2cc454f24 --- /dev/null +++ b/packages/harmony/src/storybook/theme/colors.ts @@ -0,0 +1,22 @@ +export const primitives = { + primary: { + V050: '#F7F6FC', + V100: '#F1EFFF', + V200: '#C7BFFD', + V300: '#907FFB', + V400: '#5A49CA', + V500: '#2F2668', + V600: '#201C3D' + }, + neutral: { + N050: '#FFFFFF', + N100: '#F2F2F4', + N200: '#E7E6EB', + N300: '#CCCCCC', + N400: '#707070', + N500: '#3F3F3F', + N600: '#35353E', + N700: '#212226', + N800: '#111111' + } +} diff --git a/packages/harmony/src/storybook/theme/index.ts b/packages/harmony/src/storybook/theme/index.ts new file mode 100644 index 00000000000..fc6c2f69f68 --- /dev/null +++ b/packages/harmony/src/storybook/theme/index.ts @@ -0,0 +1 @@ +export * from './theme' diff --git a/packages/harmony/src/storybook/theme/theme.tsx b/packages/harmony/src/storybook/theme/theme.tsx new file mode 100644 index 00000000000..a8251e899be --- /dev/null +++ b/packages/harmony/src/storybook/theme/theme.tsx @@ -0,0 +1,33 @@ +import { create } from '@storybook/theming/create' + +import HarmonyLogo from '../assets/harmonyLogo.png' + +import { primitives } from './colors' + +export const harmonyBrandTheme = create({ + base: 'light', + + // typography + fontBase: '"Open Sans", sans-serif', + fontCode: 'monospace', + + brandTitle: 'Harmony Design', + brandUrl: 'harmony.audius.co', + brandImage: HarmonyLogo, + brandTarget: '_self', + + textColor: primitives.neutral.N400, + textMutedColor: primitives.neutral.N300, + textInverseColor: primitives.neutral.N050, + colorPrimary: primitives.primary.V400, + colorSecondary: primitives.primary.V300, + appBg: primitives.primary.V050, + appContentBg: primitives.neutral.N050, + appBorderColor: primitives.neutral.N200, + barTextColor: primitives.primary.V600, + barSelectedColor: primitives.primary.V600, + barBg: primitives.primary.V050, + inputBg: primitives.neutral.N050, + inputBorder: primitives.neutral.N200, + inputTextColor: primitives.neutral.N400 +}) diff --git a/packages/harmony/src/typings.d.ts b/packages/harmony/src/typings.d.ts index fc09a6319c1..cbcd0403b7e 100644 --- a/packages/harmony/src/typings.d.ts +++ b/packages/harmony/src/typings.d.ts @@ -13,4 +13,7 @@ declare module '*.svg' { export default iconComponent } +declare module '*.png' +declare module '*.jpg' + declare module 'storybook-addon-smart-knobs' From 02c1f97ea9002114085365a849ed0001e58e0b1f Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Mon, 6 Nov 2023 11:23:48 -0800 Subject: [PATCH 2/5] Update .storyook theme --- packages/harmony/.storybook/docs.tsx | 3 +- packages/harmony/.storybook/preview.ts | 1 - packages/harmony/.storybook/theme.ts | 97 -------------------------- 3 files changed, 1 insertion(+), 100 deletions(-) delete mode 100644 packages/harmony/.storybook/theme.ts diff --git a/packages/harmony/.storybook/docs.tsx b/packages/harmony/.storybook/docs.tsx index 1872560e870..88ef50d73f0 100644 --- a/packages/harmony/.storybook/docs.tsx +++ b/packages/harmony/.storybook/docs.tsx @@ -1,5 +1,4 @@ import React from 'react' -import { themes } from './theme' import { DocsContainer, DocsContainerProps } from '@storybook/addon-docs' import { ThemeProvider } from '../src/foundations/theme' @@ -9,7 +8,7 @@ export const HarmonyDocsContainer = (props: DocsContainerProps) => { return ( - + ) } diff --git a/packages/harmony/.storybook/preview.ts b/packages/harmony/.storybook/preview.ts index 2cd9cf2334c..2405c895271 100644 --- a/packages/harmony/.storybook/preview.ts +++ b/packages/harmony/.storybook/preview.ts @@ -15,7 +15,6 @@ import 'foundations/color/semantic.css' import 'foundations/motion/motion.css' import 'foundations/corner-radius/corner-radius.css' import 'foundations/shadows/shadows.css' -import { darkTheme, lightTheme } from './theme' import { themes } from '../src/foundations/theme' import { HarmonyDocsContainer } from './docs' import { ThemeProvider } from '@emotion/react' diff --git a/packages/harmony/.storybook/theme.ts b/packages/harmony/.storybook/theme.ts deleted file mode 100644 index c8a44daf4f4..00000000000 --- a/packages/harmony/.storybook/theme.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { create } from '@storybook/theming/create' -import { themes as harmonyThemes } from '../src/foundations/theme' - -const { day, dark, matrix } = harmonyThemes - -export const lightTheme = create({ - base: 'light', - - // Color - colorPrimary: day.color.primary.primary, - colorSecondary: day.color.secondary.secondary, - - // UI - appBg: day.color.background.default, - appContentBg: day.color.background.white, - appBorderColor: day.color.border.default, - appBorderRadius: day.cornerRadius.m, - - // Text colors - textColor: day.color.text.default, - textInverseColor: day.color.special.white, - - // Toolbar default and active colors - barTextColor: '#9E9E9E', - barSelectedColor: '#585C6D', - barBg: day.color.background.white, - - // Form colors - inputBg: day.color.neutral.n25, - inputBorder: day.color.border.default, - inputTextColor: day.color.text.default, - inputBorderRadius: day.cornerRadius.s -}) - -export const darkTheme = create({ - base: 'dark', - - // Color - colorPrimary: dark.color.primary.primary, - colorSecondary: dark.color.secondary.secondary, - - // UI - appBg: dark.color.background.default, - appContentBg: dark.color.background.white, - appBorderColor: dark.color.border.default, - appBorderRadius: dark.cornerRadius.m, - - // Text colors - textColor: dark.color.text.default, - textInverseColor: dark.color.special.white, - - // Toolbar default and active colors - barTextColor: '#9E9E9E', - barSelectedColor: '#585C6D', - barBg: dark.color.background.white, - - // Form colors - inputBg: dark.color.neutral.n25, - inputBorder: dark.color.border.default, - inputTextColor: dark.color.text.default, - inputBorderRadius: dark.cornerRadius.s -}) - -export const matrixTheme = create({ - base: 'dark', - - // Color - colorPrimary: matrix.color.primary.primary, - colorSecondary: matrix.color.secondary.secondary, - - // UI - appBg: matrix.color.background.default, - appContentBg: matrix.color.background.white, - appBorderColor: matrix.color.border.default, - appBorderRadius: matrix.cornerRadius.m, - - // Text colors - textColor: matrix.color.text.default, - textInverseColor: matrix.color.special.white, - - // Toolbar default and active colors - barTextColor: '#9E9E9E', - barSelectedColor: '#585C6D', - barBg: matrix.color.background.white, - - // Form colors - inputBg: matrix.color.neutral.n25, - inputBorder: matrix.color.border.default, - inputTextColor: matrix.color.text.default, - inputBorderRadius: matrix.cornerRadius.s -}) - -export const themes = { - day: lightTheme, - dark: darkTheme, - matrix: matrixTheme -} From 0c7b1a11e434b36deb97b0fad264f6d231ef1d3b Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Mon, 6 Nov 2023 13:23:48 -0800 Subject: [PATCH 3/5] Fix all the things --- packages/harmony/.storybook/docs.tsx | 3 +- packages/harmony/.storybook/global.css | 11 +++ packages/harmony/.storybook/main.ts | 1 + packages/harmony/.storybook/manager-head.html | 15 +++-- packages/harmony/.storybook/manager.tsx | 7 +- packages/harmony/.storybook/preview-body.html | 16 ++--- packages/harmony/.storybook/preview.ts | 9 --- .../harmony/src/storybook/theme/colors.css | 34 ++++++++++ packages/harmony/src/storybook/theme/theme.ts | 67 +++++++++++++++++++ .../harmony/src/storybook/theme/theme.tsx | 33 --------- 10 files changed, 135 insertions(+), 61 deletions(-) create mode 100644 packages/harmony/src/storybook/theme/colors.css create mode 100644 packages/harmony/src/storybook/theme/theme.ts delete mode 100644 packages/harmony/src/storybook/theme/theme.tsx diff --git a/packages/harmony/.storybook/docs.tsx b/packages/harmony/.storybook/docs.tsx index 88ef50d73f0..2252f427817 100644 --- a/packages/harmony/.storybook/docs.tsx +++ b/packages/harmony/.storybook/docs.tsx @@ -1,4 +1,5 @@ import React from 'react' +import { harmonyDocsThemes } from '../src/storybook/theme' import { DocsContainer, DocsContainerProps } from '@storybook/addon-docs' import { ThemeProvider } from '../src/foundations/theme' @@ -8,7 +9,7 @@ export const HarmonyDocsContainer = (props: DocsContainerProps) => { return ( - + ) } diff --git a/packages/harmony/.storybook/global.css b/packages/harmony/.storybook/global.css index ee8949379bf..9ae54841325 100644 --- a/packages/harmony/.storybook/global.css +++ b/packages/harmony/.storybook/global.css @@ -1,3 +1,14 @@ +@import '../src/foundations/typography/avenir.css'; +@import '../src/foundations/typography/fonts.css'; +@import '../src/storybook/theme/colors.css'; +@import '../src/foundations/spacing/spacing.css'; +@import '../src/foundations/color/primitive.css'; +@import '../src/foundations/color/semantic.css'; +@import '../src/foundations/motion/motion.css'; +@import '../src/foundations/corner-radius/corner-radius.css'; +@import '../src/foundations/shadows/shadows.css'; +@import '../src/storybook/theme/colors.css'; + html { background-color: var(--harmony-background); } diff --git a/packages/harmony/.storybook/main.ts b/packages/harmony/.storybook/main.ts index 8ccb11f6cc9..136815b663e 100644 --- a/packages/harmony/.storybook/main.ts +++ b/packages/harmony/.storybook/main.ts @@ -6,6 +6,7 @@ const config: StorybookConfig = { staticDirs: ['./public'], stories: ['../src/**/*.mdx', '../src/**/*.stories.@(mdx|ts|tsx)'], addons: [ + 'storybook-dark-mode', '@storybook/addon-a11y', '@storybook/addon-themes', '@storybook/addon-interactions', diff --git a/packages/harmony/.storybook/manager-head.html b/packages/harmony/.storybook/manager-head.html index ace2e3cf419..032e8f521af 100644 --- a/packages/harmony/.storybook/manager-head.html +++ b/packages/harmony/.storybook/manager-head.html @@ -1,4 +1,5 @@ \ No newline at end of file diff --git a/packages/harmony/.storybook/manager.tsx b/packages/harmony/.storybook/manager.tsx index e877c49fd76..30e298762f3 100644 --- a/packages/harmony/.storybook/manager.tsx +++ b/packages/harmony/.storybook/manager.tsx @@ -1,8 +1,9 @@ import { addons } from '@storybook/manager-api' -import { create } from '@storybook/theming/create' -import { harmonyBrandTheme } from '../src/storybook/theme' +import { lightTheme } from '../src/storybook/theme' + +import './global.css' addons.setConfig({ - theme: harmonyBrandTheme + theme: lightTheme }) diff --git a/packages/harmony/.storybook/preview-body.html b/packages/harmony/.storybook/preview-body.html index 82bd177b9f1..a4570cb5eb6 100644 --- a/packages/harmony/.storybook/preview-body.html +++ b/packages/harmony/.storybook/preview-body.html @@ -1,6 +1,6 @@