From 023bd4b60de925b4250dff59d5e3e03967dd9227 Mon Sep 17 00:00:00 2001 From: dreamwasp Date: Wed, 11 Sep 2024 16:41:26 -0400 Subject: [PATCH] test theme --- .../gamut-styles/src/themes/enterprise.ts | 48 +++++++++++++++++++ packages/gamut-styles/src/themes/index.ts | 1 + packages/gamut-styles/src/variables/colors.ts | 42 ++++++++++++++++ .../components/Docs/DocsContainer.tsx | 4 +- .../.storybook/components/Docs/DocsPage.tsx | 6 +-- .../.storybook/decorators/theme.tsx | 10 ++-- 6 files changed, 101 insertions(+), 10 deletions(-) create mode 100644 packages/gamut-styles/src/themes/enterprise.ts diff --git a/packages/gamut-styles/src/themes/enterprise.ts b/packages/gamut-styles/src/themes/enterprise.ts new file mode 100644 index 0000000000..4a51fec3c7 --- /dev/null +++ b/packages/gamut-styles/src/themes/enterprise.ts @@ -0,0 +1,48 @@ +import { createTheme } from '@codecademy/variance'; + +import { enterprisePalette } from '../variables'; +import { coreTheme } from './core'; + +export const enterpriseTheme = createTheme(coreTheme) + .addColors(enterprisePalette) + .addColorModes('light', { + light: { + text: 'enterpriseNavy-400', + primary: { + _: 'hotPink-100', + hover: 'hotPink-400', + }, + secondary: { + _: 'enterpriseNavy-400', + hover: 'enterpriseNavy-100', + }, + interface: { + _: 'hotPink-100', + hover: 'hotPink-400', + }, + feedback: { + error: 'enterpriseRed-0', + success: 'enterpriseGreen-0', + warning: 'enterpriseYellow-0', + }, + }, + dark: { + background: { + _: 'enterpriseNavy-400', + current: 'navy-800', + primary: 'navy-900', + selected: 'navy-700', + disabled: 'navy-500', + hover: 'navy-600', + }, + interface: { + _: 'hotPink-100', + hover: 'hotPink-400', + }, + }, + }) + .build(); + +export type EnterpriseThemeShape = typeof enterpriseTheme; + +export interface EnterpriseTheme extends EnterpriseThemeShape {} diff --git a/packages/gamut-styles/src/themes/index.ts b/packages/gamut-styles/src/themes/index.ts index c0bb28fc4d..be941b9805 100644 --- a/packages/gamut-styles/src/themes/index.ts +++ b/packages/gamut-styles/src/themes/index.ts @@ -1,3 +1,4 @@ export * from './core'; export * from './platform'; export * from './admin'; +export * from './enterprise'; diff --git a/packages/gamut-styles/src/variables/colors.ts b/packages/gamut-styles/src/variables/colors.ts index 15b4745986..1e2fe387e5 100644 --- a/packages/gamut-styles/src/variables/colors.ts +++ b/packages/gamut-styles/src/variables/colors.ts @@ -154,3 +154,45 @@ export const platformPalette = { ...flattenScale(platformSwatches), ...truePlatformColors, } as const; + +/** + * Enterprise Colors + */ + +export const enterpriseSwatches = { + hotPink: { + '100': '#e83e8c', + '400': '#c22c5a', + }, + enterpriseNavy: { + '100': '#212d56', + '400': '#141c36', + }, + enterpriseBeige: { + '100': '#F7F6F2', + '400': '#ebe9df', + }, + enterpriseGreen: { + '0': '#48ac2c', + }, + enterpriseYellow: { + '0': '#ffc107', + }, + enterpriseRed: { + '0': '#dc3545', + }, +} as const; + +const trueEnterpriseColors = { + hotPink: enterpriseSwatches.hotPink[100], + enterpriseNavy: enterpriseSwatches.enterpriseNavy[400], + enterpriseBeige: enterpriseSwatches.enterpriseBeige[400], + enterpriseGreen: enterpriseSwatches.enterpriseGreen[0], + enterpriseYellow: enterpriseSwatches.enterpriseYellow[0], + enterpriseRed: enterpriseSwatches.enterpriseRed[0], +} as const; + +export const enterprisePalette = { + ...flattenScale(enterpriseSwatches), + ...trueEnterpriseColors, +} as const; diff --git a/packages/styleguide/.storybook/components/Docs/DocsContainer.tsx b/packages/styleguide/.storybook/components/Docs/DocsContainer.tsx index 7b52113cd5..8ad3a87a43 100644 --- a/packages/styleguide/.storybook/components/Docs/DocsContainer.tsx +++ b/packages/styleguide/.storybook/components/Docs/DocsContainer.tsx @@ -21,7 +21,7 @@ import { useEffect } from 'react'; import * as React from 'react'; import merge from 'lodash/merge'; import { Link } from '../Markdown/Elements'; -import { coreTheme } from '@codecademy/gamut-styles/src/themes/core'; +import { enterpriseTheme } from '@codecademy/gamut-styles/src/themes'; const defaultComponents = { ...htmlComponents, @@ -108,7 +108,7 @@ export const DocsContainer: React.FC<{ context: DocsContextProps }> = ({ diff --git a/packages/styleguide/.storybook/components/Docs/DocsPage.tsx b/packages/styleguide/.storybook/components/Docs/DocsPage.tsx index 1009132ceb..1c53d0a972 100644 --- a/packages/styleguide/.storybook/components/Docs/DocsPage.tsx +++ b/packages/styleguide/.storybook/components/Docs/DocsPage.tsx @@ -83,11 +83,7 @@ export const DocsPage: React.FC = ({ children }) => { const linkIcon = ; return ( - + {title} diff --git a/packages/styleguide/.storybook/decorators/theme.tsx b/packages/styleguide/.storybook/decorators/theme.tsx index b805c90146..d8c430bdeb 100644 --- a/packages/styleguide/.storybook/decorators/theme.tsx +++ b/packages/styleguide/.storybook/decorators/theme.tsx @@ -2,7 +2,7 @@ import { useLayoutEffect, useRef } from 'react'; import { Background, corePalette, - coreTheme, + enterpriseTheme, ColorModes, GamutProvider, } from '@codecademy/gamut-styles/src'; @@ -38,7 +38,11 @@ export const withEmotion = (Story: any, context: GlobalsContext) => { // Always give iframes the full provider if (process.env.NODE_ENV === 'test') { return ( - + {Story()} @@ -48,7 +52,7 @@ export const withEmotion = (Story: any, context: GlobalsContext) => { // Wrap all stories in minimal provider return ( - + {Story()}