diff --git a/apps/_components/src/CodeSnippet/CodeSnippet.tsx b/apps/_components/src/CodeSnippet/CodeSnippet.tsx index 5c0e2d6021..7d28697d77 100644 --- a/apps/_components/src/CodeSnippet/CodeSnippet.tsx +++ b/apps/_components/src/CodeSnippet/CodeSnippet.tsx @@ -27,15 +27,17 @@ const plugins = [ ]; type CodeSnippetProps = { - language?: 'css' | 'html' | 'ts' | 'markdown' | 'js' | 'json' | 'sh'; + language?: 'css' | 'html' | 'ts' | 'markdown' | 'json'; children?: string; className?: string; + syntax?: string; }; const CodeSnippet = ({ language = 'markdown', children = '', className, + syntax = 'js', }: CodeSnippetProps) => { const [toolTipText, setToolTipText] = useState('Kopier'); const [snippet, setSnippet] = useState(''); @@ -47,7 +49,7 @@ const CodeSnippet = ({ ) { try { const formatted = await format(children, { - parser: language === 'ts' ? 'typescript' : language, + parser: language === 'ts' ? 'babel-ts' : language, plugins, }); setSnippet(formatted); @@ -92,7 +94,7 @@ const CodeSnippet = ({ Alt 1. Design tokens + { + const value = e.currentTarget.value + .replace(/\s+/g, '-') + .replace(/[^A-Z0-9-]+/gi, '') + .toLowerCase(); + + setThemeName(value); + }} + style={{ marginBlock: 'var(--ds-spacing-4)' }} + > Kopier kommandosnutten under og kjør på maskinen din for å generere alle design tokens (json-filer). Sørg for at du har{' '} @@ -105,7 +123,7 @@ export const TokenModal = ({ className={classes.snippet} style={{ marginBottom: 'var(--ds-spacing-8)' }} > - {cliSnippet} + {cliSnippet} Alt 2. Figma plugin @@ -138,7 +156,7 @@ export const TokenModal = ({ Light Mode
- {lightThemeSnippet} + {lightThemeSnippet}
@@ -146,7 +164,7 @@ export const TokenModal = ({ Dark Mode
- {darkThemeSnippet} + {darkThemeSnippet}
diff --git a/packages/cli/bin/designsystemet.ts b/packages/cli/bin/designsystemet.ts index 19af4dc01b..a0a6f87efb 100644 --- a/packages/cli/bin/designsystemet.ts +++ b/packages/cli/bin/designsystemet.ts @@ -14,15 +14,16 @@ program.name('Designsystemet').description('CLI for working with Designsystemet' function makeTokenCommands() { const tokenCmd = createCommand('tokens'); + const DEFAULT_TOKENSDIR = './design-tokens'; tokenCmd .command('build') .description('Build Designsystemet tokens') - .option('-t, --tokens ', `Path to ${chalk.blue('design-tokens')}`, './design-tokens') + .option('-t, --tokens ', `Path to ${chalk.blue('design-tokens')}`, DEFAULT_TOKENSDIR) .option('-o, --out ', `Output directory for built ${chalk.blue('design-tokens')}`, './dist/tokens') .option('-p, --preview', 'Generate preview token.ts files', false) .action((opts) => { - const tokens = typeof opts.tokens === 'string' ? opts.tokens : './design-tokens'; + const tokens = typeof opts.tokens === 'string' ? opts.tokens : DEFAULT_TOKENSDIR; const out = typeof opts.out === 'string' ? opts.out : './dist/tokens'; const preview = opts.preview; console.log(`Bulding tokens in ${chalk.green(tokens)}`); @@ -32,20 +33,21 @@ function makeTokenCommands() { tokenCmd .command('create') .description('Create Designsystemet tokens') - .option('-w, --write [string]', `Output directory for created ${chalk.blue('design-tokens')}`) - .option('-a, --accent ', `Accent hex color`) - .option('-n, --neutral ', `Neutral hex color`) - .option('-b1, --brand1 ', `Brand1 hex color`) - .option('-b2, --brand2 ', `Brand2 hex color`) - .option('-b3, --brand3 ', `Brand3 hex color`) - .option('-f, --font-family ', `Font family`) + .requiredOption('-a, --accent ', `Accent hex color`) + .requiredOption('-n, --neutral ', `Neutral hex color`) + .requiredOption('-b1, --brand1 ', `Brand1 hex color`) + .requiredOption('-b2, --brand2 ', `Brand2 hex color`) + .requiredOption('-b3, --brand3 ', `Brand3 hex color`) + .option('-w, --write [string]', `Output directory for created ${chalk.blue('design-tokens')}`, DEFAULT_TOKENSDIR) + .option('-f, --font-family ', `Font family`, 'Inter') + .option('--theme ', `Theme name`, 'theme') .action(async (opts) => { - // const out = typeof opts.out === 'string' ? opts.out : './dist/tokens'; - console.log(`Creating tokens with options ${chalk.green(JSON.stringify(opts))}`); - const family = typeof opts.fontFamily === 'string' ? opts.fontFamily : 'Inter'; - const write = typeof opts.write === 'boolean' ? './design-tokens' : opts.write; + const { theme, fontFamily } = opts; + console.log(`Creating tokens with options ${chalk.green(JSON.stringify(opts, null, 2))}`); + const write = typeof opts.write === 'boolean' ? DEFAULT_TOKENSDIR : opts.write; const props = { + themeName: theme, colors: { accent: convertToHex(opts.accent), neutral: convertToHex(opts.neutral), @@ -54,14 +56,14 @@ function makeTokenCommands() { brand3: convertToHex(opts.brand3), }, typography: { - fontFamily: family, + fontFamily: fontFamily, }, }; const tokens = createTokens(props); if (write) { - await writeTokens(write, tokens); + await writeTokens({ writeDir: write, tokens, themeName: theme }); } return Promise.resolve(); diff --git a/packages/cli/package.json b/packages/cli/package.json index b85539ac27..0e120e8950 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -36,7 +36,8 @@ "build:swc": "yarn clean && swc src bin --copy-files -d dist && yarn build:types", "build:types": "tsc --emitDeclarationOnly --declaration", "clean": "rimraf dist", - "clean:theme": "yarn workspace @digdir/designsystemet-theme clean" + "clean:theme": "yarn workspace @digdir/designsystemet-theme clean", + "update:template": "tsx ./src/tokens/template.ts" }, "dependencies": { "@adobe/leonardo-contrast-colors": "^1.0.0", diff --git a/packages/cli/src/tokens/create.ts b/packages/cli/src/tokens/create.ts index 4f82aa4152..c78b251e97 100644 --- a/packages/cli/src/tokens/create.ts +++ b/packages/cli/src/tokens/create.ts @@ -5,6 +5,7 @@ import type { Colors, Tokens, Tokens1ary, TokensSet, Typography } from './types. export type CreateTokensOptions = { colors: Colors; typography: Typography; + themeName: string; }; const createColorTokens = (colorArray: ColorInfo[]): Tokens1ary => { @@ -28,9 +29,9 @@ const createColorTokens = (colorArray: ColorInfo[]): Tokens1ary => { return obj; }; -const generateTypographyTokens = ({ fontFamily }: Typography): TokensSet => { +const generateTypographyTokens = (themeName: string, { fontFamily }: Typography): TokensSet => { return { - theme: { + [themeName]: { main: { $type: 'fontFamilies', $value: fontFamily ?? 'Inter', @@ -51,7 +52,7 @@ const generateTypographyTokens = ({ fontFamily }: Typography): TokensSet => { }; }; -const generateThemeTokens = (theme: ColorMode, colors: Colors): TokensSet => { +const generateThemeTokens = (themeName: string, theme: ColorMode, colors: Colors): TokensSet => { const accentColors = generateScaleForColor(colors.accent, theme); const neutralColors = generateScaleForColor(colors.neutral, theme); const brand1Colors = generateScaleForColor(colors.brand1, theme); @@ -59,7 +60,7 @@ const generateThemeTokens = (theme: ColorMode, colors: Colors): TokensSet => { const brand3Colors = generateScaleForColor(colors.brand3, theme); return { - theme: { + [themeName]: { accent: createColorTokens(accentColors), neutral: createColorTokens(neutralColors), brand1: createColorTokens(brand1Colors), @@ -90,19 +91,22 @@ const generateGlobalTokens = (theme: ColorMode) => { }; export const createTokens = (opts: CreateTokensOptions) => { - const { colors, typography } = opts; + const { colors, typography, themeName: name } = opts; const tokens: Tokens = { colors: { light: { - theme: generateThemeTokens('light', colors), + [name]: generateThemeTokens(name, 'light', colors), global: generateGlobalTokens('light'), }, - dark: { theme: generateThemeTokens('dark', colors), global: generateGlobalTokens('dark') }, - contrast: { theme: generateThemeTokens('contrast', colors), global: generateGlobalTokens('contrast') }, + dark: { [name]: generateThemeTokens(name, 'dark', colors), global: generateGlobalTokens('dark') }, + contrast: { + [name]: generateThemeTokens(name, 'contrast', colors), + global: generateGlobalTokens('contrast'), + }, }, typography: { - primary: generateTypographyTokens(typography), + primary: generateTypographyTokens(name, typography), }, }; diff --git a/packages/cli/src/tokens/create/README.md b/packages/cli/src/tokens/create/README.md deleted file mode 100644 index 0c35c5e982..0000000000 --- a/packages/cli/src/tokens/create/README.md +++ /dev/null @@ -1,3 +0,0 @@ -```sh -yarn workspace @digdir/designsystemet designsystemet tokens create --accent AD00BA --neutral 749ACB --brand1 D03539 --brand2 20E53A --brand3 F2F51E --font-family Arial --write ./../../../sandbox/test-tokens-august/design-tokens -``` diff --git a/packages/cli/src/tokens/design-tokens/default/Figma/components.json b/packages/cli/src/tokens/design-tokens/default/Figma/components.json new file mode 100644 index 0000000000..1a98c25a31 --- /dev/null +++ b/packages/cli/src/tokens/design-tokens/default/Figma/components.json @@ -0,0 +1,22 @@ +{ + "switch": { + "circle": { + "small": { + "$type": "sizing", + "$value": "{sizing.5} - {switch.border}" + }, + "medium": { + "$type": "sizing", + "$value": "{sizing.6} - {switch.border}" + }, + "large": { + "$type": "sizing", + "$value": "{sizing.7} - {switch.border}" + } + }, + "border": { + "$type": "sizing", + "$value": "4" + } + } +} \ No newline at end of file diff --git a/packages/cli/src/tokens/design-tokens/default/primitives/globals.json b/packages/cli/src/tokens/design-tokens/default/primitives/globals.json new file mode 100644 index 0000000000..4c0f4347fc --- /dev/null +++ b/packages/cli/src/tokens/design-tokens/default/primitives/globals.json @@ -0,0 +1,161 @@ +{ + "border-width": { + "1": { + "$type": "borderWidth", + "$value": "1px" + }, + "2": { + "$type": "borderWidth", + "$value": "2px" + } + }, + "shadow": { + "100": { + "$type": "boxShadow", + "$value": [ + { + "color": "rgba(0,0,0,0.16)", + "x": "0", + "y": "0", + "blur": "1", + "spread": "0" + }, + { + "x": "0", + "y": "1", + "blur": "2", + "spread": "0", + "color": "rgba(0,0,0,0.12)" + } + ] + }, + "200": { + "$type": "boxShadow", + "$value": [ + { + "color": "rgba(0,0,0,0.15)", + "x": "0", + "y": "0", + "blur": "1", + "spread": "0" + }, + { + "color": "rgba(0,0,0,0.12)", + "x": "0", + "y": "1", + "blur": "2", + "spread": "0" + }, + { + "x": "0", + "y": "2", + "blur": "4", + "spread": "0", + "color": "rgba(0,0,0,0.1)" + } + ] + }, + "300": { + "$type": "boxShadow", + "$value": [ + { + "color": "rgba(0,0,0,0.14)", + "x": "0", + "y": "0", + "blur": "1", + "spread": "0" + }, + { + "color": "rgba(0,0,0,0.12)", + "x": "0", + "y": "2", + "blur": "4", + "spread": "0" + }, + { + "x": "0", + "y": "4", + "blur": "8", + "spread": "0", + "color": "rgba(0,0,0,0.12)" + } + ] + }, + "400": { + "$type": "boxShadow", + "$value": [ + { + "color": "rgba(0,0,0,0.13)", + "x": "0", + "y": "0", + "blur": "1", + "spread": "0" + }, + { + "color": "rgba(0,0,0,0.13)", + "x": "0", + "y": "3", + "blur": "5", + "spread": "0" + }, + { + "x": "0", + "y": "6", + "blur": "12", + "spread": "0", + "color": "rgba(0,0,0,0.14)" + } + ] + }, + "500": { + "$type": "boxShadow", + "$value": [ + { + "color": "rgba(0,0,0,0.12)", + "x": "0", + "y": "0", + "blur": "1", + "spread": "0" + }, + { + "color": "rgba(0,0,0,0.16)", + "x": "0", + "y": "4", + "blur": "8", + "spread": "0" + }, + { + "x": "0", + "y": "12", + "blur": "24", + "spread": "0", + "color": "rgba(0,0,0,0.16)" + } + ] + } + }, + "border-radius": { + "base": { + "$type": "borderRadius", + "$value": "4" + } + }, + "opacity": { + "30": { + "$type": "opacity", + "$value": "30%" + } + }, + "sizing": { + "base": { + "$type": "sizing", + "$value": "4" + } + }, + "spacing": { + "base": { + "$type": "spacing", + "$value": "4" + } + } +} \ No newline at end of file diff --git a/packages/cli/src/tokens/design-tokens/default/primitives/size/default.json b/packages/cli/src/tokens/design-tokens/default/primitives/size/default.json new file mode 100644 index 0000000000..4af117ff8b --- /dev/null +++ b/packages/cli/src/tokens/design-tokens/default/primitives/size/default.json @@ -0,0 +1,175 @@ +{ + "line-height": { + "sm": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "lineHeights", + "$value": "130%" + }, + "md": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "lineHeights", + "$value": "150%" + }, + "lg": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "lineHeights", + "$value": "170%" + } + }, + "font-size": { + "1": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "12" + }, + "2": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "13" + }, + "3": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "14" + }, + "4": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "16" + }, + "5": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "18" + }, + "6": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "21" + }, + "7": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "24" + }, + "8": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "30" + }, + "9": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "36" + }, + "10": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "48" + }, + "11": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "fontSizes", + "$value": "60" + } + }, + "letter-spacing": { + "1": { + "$type": "letterSpacing", + "$value": "-1%" + }, + "2": { + "$type": "letterSpacing", + "$value": "-0.5%" + }, + "3": { + "$type": "letterSpacing", + "$value": "-0.25%" + }, + "4": { + "$type": "letterSpacing", + "$value": "-0.15%" + }, + "5": { + "$type": "letterSpacing", + "$value": "0%" + }, + "6": { + "$type": "letterSpacing", + "$value": "0.15%" + }, + "7": { + "$type": "letterSpacing", + "$value": "0.25%" + }, + "8": { + "$type": "letterSpacing", + "$value": "0.5%" + }, + "9": { + "$extensions": { + "studio.tokens": { + "modify": {} + } + }, + "$type": "letterSpacing", + "$value": "1.5%" + } + } +} \ No newline at end of file diff --git a/packages/cli/src/tokens/design-tokens/default/semantic/color.json b/packages/cli/src/tokens/design-tokens/default/semantic/color.json new file mode 100644 index 0000000000..377202453c --- /dev/null +++ b/packages/cli/src/tokens/design-tokens/default/semantic/color.json @@ -0,0 +1,572 @@ +{ + "color": { + "accent": { + "background-default": { + "$type": "color", + "$value": "{color.accent.1}" + }, + "background-subtle": { + "$type": "color", + "$value": "{color.accent.2}" + }, + "surface-default": { + "$type": "color", + "$value": "{color.accent.3}" + }, + "surface-hover": { + "$type": "color", + "$value": "{color.accent.4}" + }, + "surface-active": { + "$type": "color", + "$value": "{color.accent.5}" + }, + "border-subtle": { + "$type": "color", + "$value": "{color.accent.6}" + }, + "border-default": { + "$type": "color", + "$value": "{color.accent.7}" + }, + "border-strong": { + "$type": "color", + "$value": "{color.accent.8}" + }, + "base-default": { + "$type": "color", + "$value": "{color.accent.9}" + }, + "base-hover": { + "$type": "color", + "$value": "{color.accent.10}" + }, + "base-active": { + "$type": "color", + "$value": "{color.accent.11}" + }, + "text-subtle": { + "$type": "color", + "$value": "{color.accent.12}" + }, + "text-default": { + "$type": "color", + "$value": "{color.accent.13}" + }, + "contrast-default": { + "$type": "color", + "$value": "{color.accent.contrast-1}" + }, + "contrast-subtle": { + "$type": "color", + "$value": "{color.accent.contrast-2}" + } + }, + "neutral": { + "background-default": { + "$type": "color", + "$value": "{color.neutral.1}" + }, + "background-subtle": { + "$type": "color", + "$value": "{color.neutral.2}" + }, + "surface-default": { + "$type": "color", + "$value": "{color.neutral.3}" + }, + "surface-hover": { + "$type": "color", + "$value": "{color.neutral.4}" + }, + "surface-active": { + "$type": "color", + "$value": "{color.neutral.5}" + }, + "border-subtle": { + "$type": "color", + "$value": "{color.neutral.6}" + }, + "border-default": { + "$type": "color", + "$value": "{color.neutral.7}" + }, + "border-strong": { + "$type": "color", + "$value": "{color.neutral.8}" + }, + "base-default": { + "$type": "color", + "$value": "{color.neutral.9}" + }, + "base-hover": { + "$type": "color", + "$value": "{color.neutral.10}" + }, + "base-active": { + "$type": "color", + "$value": "{color.neutral.11}" + }, + "text-subtle": { + "$type": "color", + "$value": "{color.neutral.12}" + }, + "text-default": { + "$type": "color", + "$value": "{color.neutral.13}" + }, + "contrast-default": { + "$type": "color", + "$value": "{color.neutral.contrast-1}" + }, + "contrast-subtle": { + "$type": "color", + "$value": "{color.neutral.contrast-2}" + } + }, + "brand1": { + "background-default": { + "$type": "color", + "$value": "{color.brand1.1}" + }, + "background-subtle": { + "$type": "color", + "$value": "{color.brand1.2}" + }, + "surface-default": { + "$type": "color", + "$value": "{color.brand1.3}" + }, + "surface-hover": { + "$type": "color", + "$value": "{color.brand1.4}" + }, + "surface-active": { + "$type": "color", + "$value": "{color.brand1.5}" + }, + "border-subtle": { + "$type": "color", + "$value": "{color.brand1.6}" + }, + "border-default": { + "$type": "color", + "$value": "{color.brand1.7}" + }, + "border-strong": { + "$type": "color", + "$value": "{color.brand1.8}" + }, + "base-default": { + "$type": "color", + "$value": "{color.brand1.9}" + }, + "base-hover": { + "$type": "color", + "$value": "{color.brand1.10}" + }, + "base-active": { + "$type": "color", + "$value": "{color.brand1.11}" + }, + "text-subtle": { + "$type": "color", + "$value": "{color.brand1.12}" + }, + "text-default": { + "$type": "color", + "$value": "{color.brand1.13}" + }, + "contrast-default": { + "$type": "color", + "$value": "{color.brand1.contrast-1}" + }, + "contrast-subtle": { + "$type": "color", + "$value": "{color.brand1.contrast-2}" + } + }, + "brand2": { + "background-default": { + "$type": "color", + "$value": "{color.brand2.1}" + }, + "background-subtle": { + "$type": "color", + "$value": "{color.brand2.2}" + }, + "surface-default": { + "$type": "color", + "$value": "{color.brand2.3}" + }, + "surface-hover": { + "$type": "color", + "$value": "{color.brand2.4}" + }, + "surface-active": { + "$type": "color", + "$value": "{color.brand2.5}" + }, + "border-subtle": { + "$type": "color", + "$value": "{color.brand2.6}" + }, + "border-default": { + "$type": "color", + "$value": "{color.brand2.7}" + }, + "border-strong": { + "$type": "color", + "$value": "{color.brand2.8}" + }, + "base-default": { + "$type": "color", + "$value": "{color.brand2.9}" + }, + "base-hover": { + "$type": "color", + "$value": "{color.brand2.10}" + }, + "base-active": { + "$type": "color", + "$value": "{color.brand2.11}" + }, + "text-subtle": { + "$type": "color", + "$value": "{color.brand2.12}" + }, + "text-default": { + "$type": "color", + "$value": "{color.brand2.13}" + }, + "contrast-default": { + "$type": "color", + "$value": "{color.brand2.contrast-1}" + }, + "contrast-subtle": { + "$type": "color", + "$value": "{color.brand2.contrast-2}" + } + }, + "brand3": { + "background-default": { + "$type": "color", + "$value": "{color.brand3.1}" + }, + "background-subtle": { + "$type": "color", + "$value": "{color.brand3.2}" + }, + "surface-default": { + "$type": "color", + "$value": "{color.brand3.3}" + }, + "surface-hover": { + "$type": "color", + "$value": "{color.brand3.4}" + }, + "surface-active": { + "$type": "color", + "$value": "{color.brand3.5}" + }, + "border-subtle": { + "$type": "color", + "$value": "{color.brand3.6}" + }, + "border-default": { + "$type": "color", + "$value": "{color.brand3.7}" + }, + "border-strong": { + "$type": "color", + "$value": "{color.brand3.8}" + }, + "base-default": { + "$type": "color", + "$value": "{color.brand3.9}" + }, + "base-hover": { + "$type": "color", + "$value": "{color.brand3.10}" + }, + "base-active": { + "$type": "color", + "$value": "{color.brand3.11}" + }, + "text-subtle": { + "$type": "color", + "$value": "{color.brand3.12}" + }, + "text-default": { + "$type": "color", + "$value": "{color.brand3.13}" + }, + "contrast-default": { + "$type": "color", + "$value": "{color.brand3.contrast-1}" + }, + "contrast-subtle": { + "$type": "color", + "$value": "{color.brand3.contrast-2}" + } + }, + "success": { + "background-default": { + "$type": "color", + "$value": "{global.green.1}" + }, + "background-subtle": { + "$type": "color", + "$value": "{global.green.2}" + }, + "surface-default": { + "$type": "color", + "$value": "{global.green.3}" + }, + "surface-hover": { + "$type": "color", + "$value": "{global.green.4}" + }, + "surface-active": { + "$type": "color", + "$value": "{global.green.5}" + }, + "border-subtle": { + "$type": "color", + "$value": "{global.green.6}" + }, + "border-default": { + "$type": "color", + "$value": "{global.green.7}" + }, + "border-strong": { + "$type": "color", + "$value": "{global.green.8}" + }, + "base-default": { + "$type": "color", + "$value": "{global.green.9}" + }, + "base-hover": { + "$type": "color", + "$value": "{global.green.10}" + }, + "base-active": { + "$type": "color", + "$value": "{global.green.11}" + }, + "text-subtle": { + "$type": "color", + "$value": "{global.green.12}" + }, + "text-default": { + "$type": "color", + "$value": "{global.green.13}" + }, + "contrast-default": { + "$type": "color", + "$value": "{global.green.contrast-1}" + }, + "contrast-subtle": { + "$type": "color", + "$value": "{global.green.contrast-2}" + } + }, + "danger": { + "background-default": { + "$type": "color", + "$value": "{global.red.1}" + }, + "background-subtle": { + "$type": "color", + "$value": "{global.red.2}" + }, + "surface-default": { + "$type": "color", + "$value": "{global.red.3}" + }, + "surface-hover": { + "$type": "color", + "$value": "{global.red.4}" + }, + "surface-active": { + "$type": "color", + "$value": "{global.red.5}" + }, + "border-subtle": { + "$type": "color", + "$value": "{global.red.6}" + }, + "border-default": { + "$type": "color", + "$value": "{global.red.7}" + }, + "border-strong": { + "$type": "color", + "$value": "{global.red.8}" + }, + "base-default": { + "$type": "color", + "$value": "{global.red.9}" + }, + "base-hover": { + "$type": "color", + "$value": "{global.red.10}" + }, + "base-active": { + "$type": "color", + "$value": "{global.red.11}" + }, + "text-subtle": { + "$type": "color", + "$value": "{global.red.12}" + }, + "text-default": { + "$type": "color", + "$value": "{global.red.13}" + }, + "contrast-default": { + "$type": "color", + "$value": "{global.red.contrast-1}" + }, + "contrast-subtle": { + "$type": "color", + "$value": "{global.red.contrast-2}" + } + }, + "info": { + "background-default": { + "$type": "color", + "$value": "{global.blue.1}" + }, + "background-subtle": { + "$type": "color", + "$value": "{global.blue.2}" + }, + "surface-default": { + "$type": "color", + "$value": "{global.blue.3}" + }, + "surface-hover": { + "$type": "color", + "$value": "{global.blue.4}" + }, + "surface-active": { + "$type": "color", + "$value": "{global.blue.5}" + }, + "border-subtle": { + "$type": "color", + "$value": "{global.blue.6}" + }, + "border-default": { + "$type": "color", + "$value": "{global.blue.7}" + }, + "border-strong": { + "$type": "color", + "$value": "{global.blue.8}" + }, + "base-default": { + "$type": "color", + "$value": "{global.blue.9}" + }, + "base-hover": { + "$type": "color", + "$value": "{global.blue.10}" + }, + "base-active": { + "$type": "color", + "$value": "{global.blue.11}" + }, + "text-subtle": { + "$type": "color", + "$value": "{global.blue.12}" + }, + "text-default": { + "$type": "color", + "$value": "{global.blue.13}" + }, + "contrast-default": { + "$type": "color", + "$value": "{global.blue.contrast-1}" + }, + "contrast-subtle": { + "$type": "color", + "$value": "{global.blue.contrast-2}" + } + }, + "warning": { + "background-default": { + "$type": "color", + "$value": "{global.yellow.1}" + }, + "background-subtle": { + "$type": "color", + "$value": "{global.yellow.2}" + }, + "surface-default": { + "$type": "color", + "$value": "{global.yellow.3}" + }, + "surface-hover": { + "$type": "color", + "$value": "{global.yellow.4}" + }, + "surface-active": { + "$type": "color", + "$value": "{global.yellow.5}" + }, + "border-subtle": { + "$type": "color", + "$value": "{global.yellow.6}" + }, + "border-default": { + "$type": "color", + "$value": "{global.yellow.7}" + }, + "border-strong": { + "$type": "color", + "$value": "{global.yellow.8}" + }, + "base-default": { + "$type": "color", + "$value": "{global.orange.9}" + }, + "base-hover": { + "$type": "color", + "$value": "{global.orange.10}" + }, + "base-active": { + "$type": "color", + "$value": "{global.orange.11}" + }, + "text-subtle": { + "$type": "color", + "$value": "{global.orange.12}" + }, + "text-default": { + "$type": "color", + "$value": "{global.orange.13}" + }, + "contrast-default": { + "$type": "color", + "$value": "{global.orange.contrast-1}" + }, + "contrast-subtle": { + "$type": "color", + "$value": "{global.orange.contrast-2}" + } + }, + "focus": { + "inner": { + "$type": "color", + "$value": "{color.neutral.background-default}" + }, + "outer": { + "$type": "color", + "$value": "{color.accent.text-default}" + } + } + } +} \ No newline at end of file diff --git a/packages/cli/src/tokens/design-tokens/default/semantic/style.json b/packages/cli/src/tokens/design-tokens/default/semantic/style.json new file mode 100644 index 0000000000..c76e7dbb2a --- /dev/null +++ b/packages/cli/src/tokens/design-tokens/default/semantic/style.json @@ -0,0 +1,564 @@ +{ + "typography": { + "heading": { + "2xl": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.11}", + "letterSpacing": "{letter-spacing.1}" + } + }, + "xl": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.10}", + "letterSpacing": "{letter-spacing.1}" + } + }, + "lg": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.9}", + "letterSpacing": "{letter-spacing.2}" + } + }, + "md": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.8}", + "letterSpacing": "{letter-spacing.3}" + } + }, + "sm": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.7}", + "letterSpacing": "{letter-spacing.5}" + } + }, + "xs": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.6}", + "letterSpacing": "{letter-spacing.6}" + } + }, + "2xs": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.5}", + "letterSpacing": "{letter-spacing.6}" + } + } + }, + "ingress": { + "lg": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.lg}", + "fontSize": "{font-size.8}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "md": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.lg}", + "fontSize": "{font-size.7}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "sm": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.lg}", + "fontSize": "{font-size.6}", + "letterSpacing": "{letter-spacing.7}" + } + }, + "xs": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.lg}", + "fontSize": "{font-size.5}", + "letterSpacing": "{letter-spacing.6}" + } + } + }, + "paragraph": { + "lg": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.md}", + "fontSize": "{font-size.6}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "md": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.md}", + "fontSize": "{font-size.5}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "sm": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.md}", + "fontSize": "{font-size.4}", + "letterSpacing": "{letter-spacing.7}" + } + }, + "xs": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.md}", + "fontSize": "{font-size.3}", + "letterSpacing": "{letter-spacing.6}" + } + }, + "short": { + "lg": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.6}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "md": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.5}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "sm": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.4}", + "letterSpacing": "{letter-spacing.7}" + } + }, + "xs": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.3}", + "letterSpacing": "{letter-spacing.6}" + } + } + }, + "long": { + "lg": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.lg}", + "fontSize": "{font-size.6}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "md": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.lg}", + "fontSize": "{font-size.5}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "sm": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.lg}", + "fontSize": "{font-size.4}", + "letterSpacing": "{letter-spacing.7}" + } + }, + "xs": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.lg}", + "fontSize": "{font-size.3}", + "letterSpacing": "{letter-spacing.6}" + } + } + } + }, + "label": { + "lg": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.6}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "md": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.5}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "sm": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.4}", + "letterSpacing": "{letter-spacing.7}" + } + }, + "xs": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.medium}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.3}", + "letterSpacing": "{letter-spacing.6}" + } + } + }, + "error_message": { + "lg": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.6}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "md": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.5}", + "letterSpacing": "{letter-spacing.8}" + } + }, + "sm": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.4}", + "letterSpacing": "{letter-spacing.7}" + } + }, + "xs": { + "$type": "typography", + "$value": { + "fontFamily": "{font.family}", + "fontWeight": "{font-weight.regular}", + "lineHeight": "{line-height.sm}", + "fontSize": "{font-size.3}", + "letterSpacing": "{letter-spacing.6}" + } + } + } + }, + "disabled": { + "opacity": { + "$type": "opacity", + "$value": "{opacity.30}" + } + }, + "border-radius": { + "sm": { + "$type": "borderRadius", + "$value": "{border-radius.base}*0.5" + }, + "md": { + "$type": "borderRadius", + "$value": "{border-radius.base}*1" + }, + "lg": { + "$type": "borderRadius", + "$value": "{border-radius.base}*2" + }, + "xl": { + "$type": "borderRadius", + "$value": "{border-radius.base}*3" + }, + "2xl": { + "$type": "borderRadius", + "$value": "{border-radius.base}*4" + }, + "3xl": { + "$type": "borderRadius", + "$value": "{border-radius.base}*6" + }, + "4xl": { + "$type": "borderRadius", + "$value": "{border-radius.base}*8" + }, + "full": { + "$type": "borderRadius", + "$value": "9999" + } + }, + "spacing": { + "0": { + "$type": "spacing", + "$value": "{spacing.base}*0" + }, + "1": { + "$type": "spacing", + "$value": "{spacing.base}*1" + }, + "2": { + "$type": "spacing", + "$value": "{spacing.base}*2" + }, + "3": { + "$type": "spacing", + "$value": "{spacing.base}*3" + }, + "4": { + "$type": "spacing", + "$value": "{spacing.base}*4" + }, + "5": { + "$type": "spacing", + "$value": "{spacing.base}*5" + }, + "6": { + "$type": "spacing", + "$value": "{spacing.base}*6" + }, + "7": { + "$type": "spacing", + "$value": "{spacing.base}*7" + }, + "8": { + "$type": "spacing", + "$value": "{spacing.base}*8" + }, + "9": { + "$type": "spacing", + "$value": "{spacing.base}*9" + }, + "10": { + "$type": "spacing", + "$value": "{spacing.base}*10" + }, + "11": { + "$type": "spacing", + "$value": "{spacing.base}*11" + }, + "12": { + "$type": "spacing", + "$value": "{spacing.base}*12" + }, + "13": { + "$type": "spacing", + "$value": "{spacing.base}*13" + }, + "14": { + "$type": "spacing", + "$value": "{spacing.base}*14" + }, + "15": { + "$type": "spacing", + "$value": "{spacing.base}*15" + }, + "18": { + "$type": "spacing", + "$value": "{spacing.base}*18" + }, + "22": { + "$type": "spacing", + "$value": "{spacing.base}*22" + }, + "26": { + "$type": "spacing", + "$value": "{spacing.base}*26" + }, + "30": { + "$type": "spacing", + "$value": "{spacing.base}*30" + } + }, + "sizing": { + "0": { + "$type": "sizing", + "$value": "{sizing.base}*0" + }, + "1": { + "$type": "sizing", + "$value": "{sizing.base}*1" + }, + "2": { + "$type": "sizing", + "$value": "{sizing.base}*2" + }, + "3": { + "$type": "sizing", + "$value": "{sizing.base}*3" + }, + "4": { + "$type": "sizing", + "$value": "{sizing.base}*4" + }, + "5": { + "$type": "sizing", + "$value": "{sizing.base}*5" + }, + "6": { + "$type": "sizing", + "$value": "{sizing.base}*6" + }, + "7": { + "$type": "sizing", + "$value": "{sizing.base}*7" + }, + "8": { + "$type": "sizing", + "$value": "{sizing.base}*8" + }, + "9": { + "$type": "sizing", + "$value": "{sizing.base}*9" + }, + "10": { + "$type": "sizing", + "$value": "{sizing.base}*10" + }, + "11": { + "$type": "sizing", + "$value": "{sizing.base}*11" + }, + "12": { + "$type": "sizing", + "$value": "{sizing.base}*12" + }, + "13": { + "$type": "sizing", + "$value": "{sizing.base}*13" + }, + "14": { + "$type": "sizing", + "$value": "{sizing.base}*14" + }, + "15": { + "$type": "sizing", + "$value": "{sizing.base}*15" + }, + "18": { + "$type": "sizing", + "$value": "{sizing.base}*18" + }, + "22": { + "$type": "sizing", + "$value": "{sizing.base}*22" + }, + "26": { + "$type": "sizing", + "$value": "{sizing.base}*26" + }, + "30": { + "$type": "sizing", + "$value": "{sizing.base}*30" + } + }, + "border-width": { + "default": { + "$type": "borderWidth", + "$value": "{border-width.1}" + }, + "highlight": { + "$type": "borderWidth", + "$value": "{border-width.2}" + } + }, + "shadow": { + "xs": { + "$type": "boxShadow", + "$value": "{shadow.100}" + }, + "sm": { + "$type": "boxShadow", + "$value": "{shadow.200}" + }, + "md": { + "$type": "boxShadow", + "$value": "{shadow.300}" + }, + "lg": { + "$type": "boxShadow", + "$value": "{shadow.400}" + }, + "xl": { + "$type": "boxShadow", + "$value": "{shadow.500}" + } + } +} \ No newline at end of file diff --git a/packages/cli/src/tokens/design-tokens/template/$metadata.json b/packages/cli/src/tokens/design-tokens/template/$metadata.json new file mode 100644 index 0000000000..701063d0d5 --- /dev/null +++ b/packages/cli/src/tokens/design-tokens/template/$metadata.json @@ -0,0 +1,17 @@ +{ + "tokenSetOrder": [ + "primitives/globals", + "primitives/size/default", + "primitives/size/compact", + "primitives/modes/typography/primary/", + "primitives/modes/typography/secondary/", + "primitives/modes/colors/dark/global", + "primitives/modes/colors/dark/", + "primitives/modes/colors/light/global", + "primitives/modes/colors/light/", + "themes/", + "semantic/color", + "semantic/style", + "Figma/components" + ] +} \ No newline at end of file diff --git a/packages/cli/src/tokens/design-tokens/template/$themes.json b/packages/cli/src/tokens/design-tokens/template/$themes.json new file mode 100644 index 0000000000..855765e0b0 --- /dev/null +++ b/packages/cli/src/tokens/design-tokens/template/$themes.json @@ -0,0 +1,1231 @@ +[ + { + "id": "8b2c8cc86611a34b135cb22948666779361fd729", + "name": "default", + "$figmaStyleReferences": {}, + "selectedTokenSets": { + "primitives/size/default": "enabled" + }, + "$figmaCollectionId": "VariableCollectionId:36248:20757", + "$figmaModeId": "36248:0", + "$figmaVariableReferences": { + "font-size.1": "b16053371d400f6e865a57698519b78d6adb8aa6", + "font-size.2": "547170dd150be6b3a74de1bc2ee421ba40b9ed9a", + "font-size.3": "c7a841c5694c94f85089aa425f0de4010e5fe71d", + "font-size.4": "9499f40cb3873ccfa136f943dbf479e1ed0980eb", + "font-size.5": "428e13183c9e1c21a4ec5e651e4baba947a38bd9", + "font-size.6": "01dce7fd83742c2986baeda3c2202f9345acf5fa", + "font-size.7": "54633f9ab840c502b0984cb20888276c2f021360", + "font-size.8": "a298f78a4f1ed7171546a06ce6f74196867f462a", + "font-size.9": "7f1382abad418b3941b79731e871b641abebbcf7", + "font-size.10": "38a0bcc2952ba92e893293eaa1ca024bdc23d0d0", + "font-size.11": "347bbb6ecf0d21b6046a55b265e141749f069451" + }, + "group": "Size" + }, + { + "id": "0daa3ca0b427b9349da7e7dc00101b5668972926", + "name": "Light", + "$figmaStyleReferences": {}, + "selectedTokenSets": { + "primitives/modes/colors/light/global": "enabled", + "primitives/modes/colors/light/theme": "enabled", + "primitives/modes/colors/light/theme2": "enabled", + "primitives/modes/colors/light/theme3": "enabled", + "primitives/modes/colors/light/theme4": "enabled" + }, + "$figmaCollectionId": "VariableCollectionId:34811:5472", + "$figmaModeId": "34811:0", + "$figmaVariableReferences": { + "theme4.accent.1": "0f60d1ef40a8dacd3eab8b32978dd7d7a5c36f4a", + "theme4.accent.2": "526c8724ae717a7f23a7a308c300be22d6785b8f", + "theme4.accent.3": "e7ff007e8f9bab7e45df411b1853a5d6b4c38e60", + "theme4.accent.4": "b997988431afc95e1173735f02ac662b29a10868", + "theme4.accent.5": "9bf3f1f870d92fb07260ad75c8b86533ffdbef16", + "theme4.accent.6": "ee2f5f15487ef03f7869a2a2af1e82ad4ac8663d", + "theme4.accent.7": "6a5ccebc6c415f966d1a13ce6b20809500bb2220", + "theme4.accent.8": "29fb4803c533b9e4605c36d22e59d41d694cf890", + "theme4.accent.9": "8ee40422d32190374628a0294b7839ca4df794e3", + "theme4.accent.10": "5f41f4c216dce5e536db4cc7259110d704413ecc", + "theme4.accent.11": "1b93756a32cfc51cd78d482e20c05b0b214ab9c2", + "theme4.accent.12": "5df9a7d3b61807d5d3f4ca249acb2805e0507ae0", + "theme4.accent.13": "c958c9a9a8feb19db78f7c577a9d2255a0992ba9", + "theme4.accent.contrast-1": "457602d57856a4e9bee5e6e005162b78a07de17d", + "theme4.accent.contrast-2": "9039dc3b00c05333ef52893c6095242820b21f8d", + "theme4.neutral.1": "6d882a15388fd859269e8acd83f9dc4b26920056", + "theme4.neutral.2": "67a1c660ee38f815e63fc43d7cfabca0a9df14b1", + "theme4.neutral.3": "8c044346b3cb75306ff68f43d8e4262fcd23b010", + "theme4.neutral.4": "7eec0ccbed72fb8a83adb6944fa82f1d70aeb39e", + "theme4.neutral.5": "72f8f923af976130f98f3c1e79ae0e797a1a160c", + "theme4.neutral.6": "9af385664c43240abdbb2f6251d44c571bcbd774", + "theme4.neutral.7": "1abe823960acc667ac98863f5ac347d6d9400103", + "theme4.neutral.8": "31e663bb5b213a5fd9378e491bd0d040166cb0d2", + "theme4.neutral.9": "f811796e6ffdee19ccda740932e2b533a4196571", + "theme4.neutral.10": "64808d2c8b50b48f22454c5769a549a4daaf30e8", + "theme4.neutral.11": "b0ddad9a50fd40bfc10580607377fae4ef60d329", + "theme4.neutral.12": "a2cb12ea444f9e3aa15f6b73047099d246f8b28f", + "theme4.neutral.13": "7aafb202eeed105caaa84480b9a5d7f7be99d85b", + "theme4.neutral.contrast-1": "fa8bb4acf414e127b7c0654a2d2a34e7f2c9da8c", + "theme4.neutral.contrast-2": "98c62f2e358bcda35b51e97bb056854ca4e1457d", + "theme4.brand1.1": "a868f3f44e50615e6d9e728d753b362be15b276f", + "theme4.brand1.2": "7b461618106b48a04da7e2ecebb1a4bb5c439c2e", + "theme4.brand1.3": "696b59b6dbf05bbe4d1065a025199bc397509b65", + "theme4.brand1.4": "2c6f1f613e1941fb65e14ef4bb99e21aa0d9b9f2", + "theme4.brand1.5": "29da8c6e2f7d59e5dc75c2560695624a3eac8014", + "theme4.brand1.6": "cad116d68a4d05e531a8a9ae2f024fc339600783", + "theme4.brand1.7": "43416835a50efe9480b40a6158b6bb5afe1af631", + "theme4.brand1.8": "1e60982564476782e4bf8e04147c599771c5f96d", + "theme4.brand1.9": "db47da588a1bc1a37d34dccfca0bb70d28a9b0a1", + "theme4.brand1.10": "17af4fd369d8df549902d58011ac7d72934edf3c", + "theme4.brand1.11": "36a56ff7be19718e0b0f054bbd7085f2800d332b", + "theme4.brand1.12": "00c4b2999ec2274cf4a075de44238abbdc7a9fcb", + "theme4.brand1.13": "01d6a94e201dc36574e8ed2fb2ee5f488e141931", + "theme4.brand1.contrast-1": "228637658220d6bb3ef6f01defd9597bf7c06a12", + "theme4.brand1.contrast-2": "0755dd3b1a39a7455ae1c9f0c9eb7654cdb305ef", + "theme4.brand2.1": "1a205eb5dac54a4eca4b251ee4f4d374195d2a77", + "theme4.brand2.2": "73defe7138fd63409d021f98cb7946f5f9943af3", + "theme4.brand2.3": "1a3853c84ffe6bc2ef0b1ff0566b0c0fc8368486", + "theme4.brand2.4": "412ed7493a75322486bb75462c077b96ddd97367", + "theme4.brand2.5": "1d38941af4cd893c40ba0f64ecbbbf1699c0de28", + "theme4.brand2.6": "6b92df8074fb26db08f9b1450c9ac8730ccc1122", + "theme4.brand2.7": "099d77abe2e3b1e36143ac4f0f9dd4c0aed003ae", + "theme4.brand2.8": "fff1208cfca41c58243ff191764f16c1b3b51fff", + "theme4.brand2.9": "d552825a9758848af2d22b072c0dcada573fc037", + "theme4.brand2.10": "6ee3967888cef9d79dc4c98a41a7a47566ffea6f", + "theme4.brand2.11": "f7c639b2395df2b450620f1bad85c468c54545cd", + "theme4.brand2.12": "d29165b8c2a1f8d42d2a6d1e685e905ec2ab4c81", + "theme4.brand2.13": "f57d0301e7841bbc82ce2bcfc938bee657ab5422", + "theme4.brand2.contrast-1": "f17fb296a7f679eb5bf536bb511eb97aeab788b6", + "theme4.brand2.contrast-2": "5fc2a66e9ae6ec67e52f485311e94e3b765c2949", + "theme4.brand3.1": "1d9b2808aac29d00c2dee746428ad2f2e6013de6", + "theme4.brand3.2": "906a771117476c90ec8538d2ba941689c587db37", + "theme4.brand3.3": "18bf4b09fc1d03072abad16472aa2c56836e35c0", + "theme4.brand3.4": "131024b730e05a4e7687d761714a0131dd802a51", + "theme4.brand3.5": "6d6a1297090b499b71ca3f82dcc5de62658532d1", + "theme4.brand3.6": "4c93fe7035dfe74ab52bc9ae38481c130ddf5069", + "theme4.brand3.7": "16f30091fa35369cc56d8f92810d65e88345eb27", + "theme4.brand3.8": "cc48144ba3c9e019f1804af82e811c9aed11a0df", + "theme4.brand3.9": "8b0158022c9b2a7a72b5aa06e52e486f31398d97", + "theme4.brand3.10": "9e6e299f069dde104e8a787daa3b23a30e6f1881", + "theme4.brand3.11": "c9c6c45e511a2a73b4f56db401ef4d41977c6806", + "theme4.brand3.12": "834ae725fa15b18163f83a779c5aba2d5d1d7ed3", + "theme4.brand3.13": "4e325e6735675a85c9d0a290470e237ec8e00a22", + "theme4.brand3.contrast-1": "d209ad41c24e26c27f44a47508903238b7dc5e82", + "theme4.brand3.contrast-2": "02f6746d605120961ae51ecf0ee044ad1c89e4c6", + "theme3.accent.1": "26531a059b8356f58e3943ac3d54be307c3727ca", + "theme3.accent.2": "78d99dcf51a2c75bc865ae695c44e550516c6e8c", + "theme3.accent.3": "806925d9869a1dc4546db3cda8027377e66df399", + "theme3.accent.4": "5461dc2d96a8e6e6749ea31f546b4f23fd18c7b8", + "theme3.accent.5": "0627f56e6b065fac15736238afb7f127abff7085", + "theme3.accent.6": "c472e4314700042cafe1323b00406a5451617e32", + "theme3.accent.7": "eede74e6d56cdc665444b262a138099ccea44227", + "theme3.accent.8": "ddc92e35782240d0918dbb3ff951bc512b7bfcd3", + "theme3.accent.9": "7752a689d4392157ee4c6244129b1fcf612e0ede", + "theme3.accent.10": "b9d8c7ec88a90c482b9da058f378be21e64711b4", + "theme3.accent.11": "04ff98d27e9236b0f88bbe9f03a20049c99462d1", + "theme3.accent.12": "1501ba8cd3189a680a708cb118897a63c661f5c1", + "theme3.accent.13": "d79b4092666830473e31c96c9618e28e1e9eea6b", + "theme3.accent.contrast-1": "786b598fa9417c561f71858e90fd1d25c75af67b", + "theme3.accent.contrast-2": "72c4f9fedd2b89f2c104aab49beb3473f1d25246", + "theme3.neutral.1": "014892e49c9490d9d80904821d860bfe1c3751c1", + "theme3.neutral.2": "4ada3a5f84739f7dc81aad2b1764452756674dfe", + "theme3.neutral.3": "70a26190823aa9951a54c7ec3acdc57cd60e4084", + "theme3.neutral.4": "d622b47bd1326a1530d8c14399f4015542fb016c", + "theme3.neutral.5": "f6008cf0702bee078886030ea030951da831994a", + "theme3.neutral.6": "0f918604df8e6e2fa681bf68e475a7028e5a7532", + "theme3.neutral.7": "a585783346975e2fc8bc8be936502ad236e4dab4", + "theme3.neutral.8": "64ec8aab16fc7704e3d13f0158223353dca10576", + "theme3.neutral.9": "a032db56c2dd6d4802aac1c6169e2f738f892c2a", + "theme3.neutral.10": "11ea5e723508eb94a4937cc696bb22b5a83e43fe", + "theme3.neutral.11": "35f970ceb247d346b4310569c295ac2a43078355", + "theme3.neutral.12": "96a385380362af2f6032b11a878ddb5587cf16fd", + "theme3.neutral.13": "4ad2eb86145bb27694bf75d3f5086d9866f246be", + "theme3.neutral.contrast-1": "23420e9874c87b81355c5c2127a6ac9130dc21b3", + "theme3.neutral.contrast-2": "0496e07718402383dbd432f7c8ff8c0583711d54", + "theme3.brand1.1": "213daeae2721d55cd775d2c430cbc7089a7de585", + "theme3.brand1.2": "cc5980c7a772a898b6381d17966f7db4f36806ac", + "theme3.brand1.3": "aabaadd7040175235263d5db8ebdf9d10889c57e", + "theme3.brand1.4": "aaf3981f0fdcfcba436c98c3d78a23ebaae23d50", + "theme3.brand1.5": "a8884bfbf76f38966eeb65a83ef0fea4ab5607b1", + "theme3.brand1.6": "b7686e9a52c2f4ee2187f5f0f105f975085a437b", + "theme3.brand1.7": "5166eba1926ec26b736adb37bf3ea8fed25ef031", + "theme3.brand1.8": "fc9972595909f5feefa7b09d48a97f7fd3b67146", + "theme3.brand1.9": "f7e01e9a505359e9f68e6715f2230897e3fb3a4d", + "theme3.brand1.10": "b1f0778ce1944b56e97c346e2da0f1b04e086110", + "theme3.brand1.11": "e24a5730507037af07f23bf1da028596265e0669", + "theme3.brand1.12": "339812ff92f27e84a084d7904b97c05e5bdf2a8a", + "theme3.brand1.13": "5d7c70321306c7b0a8299ea5fff2cf4761eec820", + "theme3.brand1.contrast-1": "10a6940b962f0b931ed8d890a9bd7581cc5aad05", + "theme3.brand1.contrast-2": "32c1a7f76e84163c489a415fea330f91cb3c3aa5", + "theme3.brand2.1": "b6dff491e1bfb8ce5f17bdf9151cdaf07e087395", + "theme3.brand2.2": "b8bcaed79e45005c2fde3b43e27e2d969902d491", + "theme3.brand2.3": "01db691f0f9bfe42a54be2ebe4c5b43f0cf718d0", + "theme3.brand2.4": "fa9ac0714600323546c76211766aece137f4b3ca", + "theme3.brand2.5": "9e6bc9f6e5b9a81427c5269a121ed469762fc83e", + "theme3.brand2.6": "8cbea46d5c948a0392808b1c8f53b870da8132bf", + "theme3.brand2.7": "e4bc8f0b841095001398b5d769b3a24fb37d7857", + "theme3.brand2.8": "dc08eac05d574bb0d0dc1649ba60bcec1d3264b3", + "theme3.brand2.9": "db37a2f7ca3a3507aab3b161a7a23d40fa7a04fd", + "theme3.brand2.10": "fadf51a5565b4c44882d0f36123bde5061a7fc80", + "theme3.brand2.11": "049ac84e18eea7acafb9007461249f1884c3eb16", + "theme3.brand2.12": "1429dda7e7f2ab1b3de84be1eae1733cf119e5eb", + "theme3.brand2.13": "afd97317f01ab9264a5a30ef2b0e0ccec581e499", + "theme3.brand2.contrast-1": "a25941572ae12ebe06961127db7fb662233f98a7", + "theme3.brand2.contrast-2": "6a43731e30eb12cbcce423eda4d7bff58aeeba99", + "theme3.brand3.1": "dcb6cc2dd4bf4ce85e1dd1d15d05040017a7235f", + "theme3.brand3.2": "67fcc7acec216133a9bb5ca9d8a0895a035b42a3", + "theme3.brand3.3": "78ec123e8bd69160c6a5f8c20b49ad76c3c66a59", + "theme3.brand3.4": "ad4d55afff564c1a31410b025b4aee7faf6f0eff", + "theme3.brand3.5": "2c5912ac21f90ec6ebb1dba65aaa10d593bdac78", + "theme3.brand3.6": "96c83dc399cef30f956f318d99968d62de1697f1", + "theme3.brand3.7": "5b963a09526df9b9e3dda91ebb1fb44de5a51df5", + "theme3.brand3.8": "0a79b387920fb618b0d79a3eadbeb5f6a3a52c6f", + "theme3.brand3.9": "3c9ffa7f7fa882f79d96962afc5f999734a6bc62", + "theme3.brand3.10": "707c9b9d52c1d7f38c064d686c0c284cf1f410b7", + "theme3.brand3.11": "8610940640e283a65a72a09ee86530c641b9ffbc", + "theme3.brand3.12": "52b8a2a3724dbd0a2563b85a459583bcebf9fecf", + "theme3.brand3.13": "39576d16bb7428873ff11792f6e5108f115fc2d4", + "theme3.brand3.contrast-1": "8437e12d5b5719c9d9da790c8f5cff7a5bf4bfe4", + "theme3.brand3.contrast-2": "fe9c1dfe82b12ac0d4791b2d5232a0e32781e067", + "theme2.accent.1": "0fb0b77a41528ad94572eb3b409dc9a84a06034c", + "theme2.accent.2": "e7ad00556548cadde8f43af2e1350b383bee9afc", + "theme2.accent.3": "004bf2b41a4b5675765858a4e6581fb27085ea8d", + "theme2.accent.4": "4e650a7db1990371ac81113d5d925da2d19b4803", + "theme2.accent.5": "ff423b04cad473a7f471d480b457d8e629169c08", + "theme2.accent.6": "3d921beb722fb2fa2b700c5527ca3601847fa0d0", + "theme2.accent.7": "5bfb9bbae717415bc7d04b92ca67c1202fe89a97", + "theme2.accent.8": "87e1efaa3766ef374ff07c4822d17d31ac1f0dcd", + "theme2.accent.9": "24f319a4eb21943c7b496e9524972ef816d37851", + "theme2.accent.10": "295b5958443c7ae169b20852dc0c2bf28b3082fc", + "theme2.accent.11": "02e00ac8e2c15ab837d7e3eb7f7d4ec35c734c5f", + "theme2.accent.12": "e8eaa15fdecd4f8763c8d613673a68455bf4ba79", + "theme2.accent.13": "2da73a55c208024893f51903b8e4d1086e51b402", + "theme2.accent.contrast-1": "69d8f5efc0464b9dc46d4559f6c4c63f3b178524", + "theme2.accent.contrast-2": "c653c3b1cae365d61758dbf7a20be55e7f7e3929", + "theme2.neutral.1": "c255bb972d1a0cdef886b080b10920c295076162", + "theme2.neutral.2": "6aab85649aa5ee41e26a6a30e34eee1d9666a723", + "theme2.neutral.3": "261e25578ec0b953f52f3ad695aa640232af1e93", + "theme2.neutral.4": "bda06909ff48ed52390267ff56c8a5e24d94072c", + "theme2.neutral.5": "b640b85d1b7589224b31f13c1298f2eb7e34109c", + "theme2.neutral.6": "4bedeb4aeaf217ca0f234e721f5c3018d18679cd", + "theme2.neutral.7": "b8ae8fe38bd25646fe4ab6b135a3d0b4ebfe1a09", + "theme2.neutral.8": "20ff7324c6590e88410a8df11d2e4eac219e6b40", + "theme2.neutral.9": "ca35f86b8d225bc8d282c38f0118914183e496b7", + "theme2.neutral.10": "170c5343f26d7130010e6e6ea8896640b746324a", + "theme2.neutral.11": "d23fc8baa639efb8d1879893ffbcf4ccf21b09ea", + "theme2.neutral.12": "1e24159f68dc90a3839d68de4c25551bc90e7d2d", + "theme2.neutral.13": "55ae06a13c6dd5496df542e694dd91d50826206c", + "theme2.neutral.contrast-1": "5d2f1c09d43b315a8680e22c8201c52158ba2f60", + "theme2.neutral.contrast-2": "166c166b76231a8a8ed84212ecfaf1d5568955c2", + "theme2.brand1.1": "36919d02364b7601f02e4944d454a06047caac38", + "theme2.brand1.2": "074f294271716ae4048662eff67e5c349624b91d", + "theme2.brand1.3": "953054a71143dfb2b0a1908ca33e9440a9424931", + "theme2.brand1.4": "5bd1ef0fe4bee2392fc6ea98f71857c0b4f5d7f4", + "theme2.brand1.5": "b6569bacb1b4fa586269c0b4bd232246869f55b4", + "theme2.brand1.6": "fd55e933a227e1f83495f6ea283ccb98210507f3", + "theme2.brand1.7": "675968cbc559c08c7a44b27720d2364b5b4c155a", + "theme2.brand1.8": "0c9d37aa84f6a3cf054a6e06eb8337b1babd7b7e", + "theme2.brand1.9": "3522eab9ebfc2ae5c91a580feaf70465e9748f89", + "theme2.brand1.10": "3e61a3494660d174df6bab736a87675ab62ff87e", + "theme2.brand1.11": "3d4c53b43568c37b4ea9c2635cf5958fc739bf64", + "theme2.brand1.12": "a706bba785733f72521a3c632e25df975f98a08c", + "theme2.brand1.13": "f9ed3353c4e61b94c8a74e2c2fd72397cedc408f", + "theme2.brand1.contrast-1": "093c525a697bcde5ba27edf9b468b2e9407b82e6", + "theme2.brand1.contrast-2": "e78c591644329c8e13ee835622fd953bd0d9b414", + "theme2.brand2.1": "513d52765402e5c084a20c23ed21a2d739109b35", + "theme2.brand2.2": "0ee7ac0a9763ab782ec40b93a043a3d10c999ff9", + "theme2.brand2.3": "1c943c957030b1afcd70e01530035db77f0ebc34", + "theme2.brand2.4": "73adbc11588a4d41a0358fd7a327678af7138191", + "theme2.brand2.5": "1d3384f44d226abebb3b43b9988a11dff93333de", + "theme2.brand2.6": "3e1fd231892a974c1d338217072c2e9abdc7e904", + "theme2.brand2.7": "b3d2b34807b4775678254f1bbb893e7bf7a40908", + "theme2.brand2.8": "987afc969a5de78dc72208980c939bedc1ad88b4", + "theme2.brand2.9": "e82328a15d454b8a03ac04813136a8239e99b85d", + "theme2.brand2.10": "6d006ead8798823fed87eacfd2dc51695b0825ad", + "theme2.brand2.11": "58a1ebcebbd1df26bc50e8d52d39ed3711c8c3a7", + "theme2.brand2.12": "5b729c155ebffd620d57c33e291660f11b1884fa", + "theme2.brand2.13": "14c388ee4151f1e1f7ac2952658dcb89cab56370", + "theme2.brand2.contrast-1": "25e59715d734c2451c357e141d1443ea1b6ef8e1", + "theme2.brand2.contrast-2": "80c31c85c0cb53db0b10b27230b9294b11bdf781", + "theme2.brand3.1": "871caba07e4fcb0fe56cfb939379ada95b487a05", + "theme2.brand3.2": "61f7371f2e403d7254b021c7711fcdf2e0dd131b", + "theme2.brand3.3": "c96a53b053fbd2ce612be43442568044e25287da", + "theme2.brand3.4": "1375f6d1141d514228812dd9c7b2bcf6fd68ec75", + "theme2.brand3.5": "245734869366fea1a8a0f6e921e2427ad42b196e", + "theme2.brand3.6": "95e8129218f51648fb283da8643f36e8013f38eb", + "theme2.brand3.7": "4d6259705c8938fa22307738cac8bad63d37a418", + "theme2.brand3.8": "a607b57ddeff2406b433212ec8f0d3e63e23b7eb", + "theme2.brand3.9": "f29d2dce85293e7bfc18561d47306c7b9af5e20c", + "theme2.brand3.10": "bc5f8d97862c89b6a0e196e49603918f742bec42", + "theme2.brand3.11": "92396787b7970ddbd54f3a90b2542baa0b0fb240", + "theme2.brand3.12": "31cc5bc290a45d598d2a76539cf8810ea1be23db", + "theme2.brand3.13": "934d8791f5ec56b0f9f7d66718d2d8ceeb800290", + "theme2.brand3.contrast-1": "d0b9f91f14ff9aaa2db5372121cca90c226bda8f", + "theme2.brand3.contrast-2": "227ccf89ba5a96077b4d8b01a2fbd22d20e6f79e", + "theme.accent.1": "d52b72226250022733f314bc8ead41572b126abd", + "theme.accent.2": "dc35ce341ba6f193ce37631c83279e78e96b1e00", + "theme.accent.3": "dbe9c0eb94666afef8645ae01eef110fa7a94c36", + "theme.accent.4": "7deb737bf18966280d225bab457186dd95fb694b", + "theme.accent.5": "35a935fe6585bbd349f392b18a9cb6fcbb0ed666", + "theme.accent.6": "0102cde532947fa8a5eb9da5213501856ce4702d", + "theme.accent.7": "82012177fc59e1c2dd9ea9e6728af8fd300f381d", + "theme.accent.8": "3e6962baa29099a62270718c344ed66f9711a634", + "theme.accent.9": "fda497a59cdcceb9df3c6c0765308bffc4be8595", + "theme.accent.10": "f8d74b59e6c4f89dddfc57dd3a4ee73454231c8c", + "theme.accent.11": "847312fe87ea8b3a0bba34662c3372aa83d3526e", + "theme.accent.12": "d9781a9caf862ea8e09d02f10be907f8ff7ce891", + "theme.accent.13": "4fcb160a1b672776226f840a44d3749bd4a4c4c6", + "theme.accent.contrast-1": "342c3a0d3de3bd5b6cda4e89c78a896fcd9cd530", + "theme.accent.contrast-2": "bca5125d3e4a96337ab1b25035e68d3e5cd27a81", + "theme.neutral.1": "02755d3dd4e7ebaea075944bc2a4502d346b475b", + "theme.neutral.2": "146e546ea2be6a410f061d542a24a7684b40f17e", + "theme.neutral.3": "859860a647701181cee797ad3d70153b053fdd7f", + "theme.neutral.4": "f5092b9e8510b70cf8b94fe14a7a162341f6bbfd", + "theme.neutral.5": "c5dc3272132a61f373d511ea92a2ed518b43576f", + "theme.neutral.6": "4423cbf12f66158729adf1456ca4177dea1200df", + "theme.neutral.7": "25ee049c4db70428ba675d99071ebe4ef2cdda40", + "theme.neutral.8": "02185938d8e50b3acc9a36239a90541b4b6580fd", + "theme.neutral.9": "f4b65659159b353f10394e0f0aa61736c01c8026", + "theme.neutral.10": "7901ac5870871964e43643953b05fc07265b9bb4", + "theme.neutral.11": "dfdd24d70731740de7cfc4916dd6543c01d615ae", + "theme.neutral.12": "9408ff0d3f36083029c3a06fc987bb9fd2780c96", + "theme.neutral.13": "d825832b7fcefb06cd19eac5fea4c233c96164a5", + "theme.neutral.contrast-1": "9bdd92adf9f2f83a27b5cf7e19055f93b186b65f", + "theme.neutral.contrast-2": "7f71bb222c7098e5caffcfc603b6b99c4a5f453f", + "theme.brand1.1": "73570b1f89d361af53b6eb532bc0c9f2112a2baa", + "theme.brand1.2": "a1437e3c4349012cb1f5b6fb3a0f56d5ed3eb9dc", + "theme.brand1.3": "7014722a24a3f873aa897ddeeb8c3882dfec4267", + "theme.brand1.4": "81cfb0f114932a40eb41684f83573850711acbef", + "theme.brand1.5": "f05bc8d0ed8d0c3f735d93483d1283638865176e", + "theme.brand1.6": "0688f3c65b4181e68eda40c8d6ba3bd2eee5badf", + "theme.brand1.7": "88ef738ace65037867a42ad484dcbbdc5a0c0a77", + "theme.brand1.8": "98d3ae310dcdea69c94e43ac20bd9dfa2adaae22", + "theme.brand1.9": "d9a221d510a56a78980874bd291cc9dea4c97e2c", + "theme.brand1.10": "b886fa30176051b9456ab4b4a34debe5c9667d79", + "theme.brand1.11": "994d19b7cef1f40b11a978631ca94c4b0707406e", + "theme.brand1.12": "f5cb1628a343712257736433cb42c77b8113a21a", + "theme.brand1.13": "29be7eb2fee04896cfe87f92cb8d09fc5d48f51f", + "theme.brand1.contrast-1": "f0ffcc8c155e95c529eae14b47a6364b557ebff5", + "theme.brand1.contrast-2": "89b04ae3ce595f7530278417b537199366a41d41", + "theme.brand2.1": "e08cf1d2e974717ddef05a1d39a704535ca25a10", + "theme.brand2.2": "22831bfb7978d6bbf6c09198c83734859cf301b3", + "theme.brand2.3": "d14a0e23f438e4aa0b798ad60198ac82762c5bb2", + "theme.brand2.4": "e3bf7f2f31637ea5962f4ed56f50152f62c66cb4", + "theme.brand2.5": "86bc6c62983f233084ab57e7efa9bfecc2c16db6", + "theme.brand2.6": "cf3c477176a3650fa8a9a1a6fde0f160d133debc", + "theme.brand2.7": "16b2aa7dfdbd797f9ed81a5d11accd3e9d341655", + "theme.brand2.8": "2fa517046d58487bee694b4e25ba819f83a73c2c", + "theme.brand2.9": "42785506cd1e0d593188d16a914e4a1586037c85", + "theme.brand2.10": "890e735a1b0ab501a0a6c7d001716fef3a5d03e8", + "theme.brand2.11": "791f5386532aa339d490e61fade5e280a7e4adbf", + "theme.brand2.12": "29ad08762620f5b2e0db62adf0fca3f213a57652", + "theme.brand2.13": "e21e95040ab27ea1957f736b8bbb680888ab2dd9", + "theme.brand2.contrast-1": "43657231f2a748c39e991bd4def426fd92870d90", + "theme.brand2.contrast-2": "86b64fd7f9e5d551d79033604836292d1667e693", + "theme.brand3.1": "f450f5c9c8f290222b864701c143e58f7001bd3a", + "theme.brand3.2": "0827723d668edfbc28b4a4aa9be72402c1786b87", + "theme.brand3.3": "f481425004549dc4ff859868038a69dc78c25b74", + "theme.brand3.4": "221862a5d2ac801403116848d52964ec5c6021d2", + "theme.brand3.5": "805c3c51ad913d8e16e8dff1f1df1c4266a758ed", + "theme.brand3.6": "e972c0442d48992624acf2ec00e84da20ef4a8ae", + "theme.brand3.7": "73ba47c550a1d47ca3c59c40689a4bd719fbfee5", + "theme.brand3.8": "7cf379ebe954cafce51c959771dd7fd5ed2d9685", + "theme.brand3.9": "41b3d1e83076ae5aaabd4dc62e72a0f7ff22be18", + "theme.brand3.10": "68ba9400b19a07bb2f014d3084c5e8c9b7f83e5a", + "theme.brand3.11": "5322730cf8f9a6c0fd85e95ee596eeaaf42348f3", + "theme.brand3.12": "8192e3fa401baf9b8c28fb7f89b0133b582f7b96", + "theme.brand3.13": "2cc0080a3df4c4811a6341510176762cb4540b05", + "theme.brand3.contrast-1": "a1275a3384a4d01fe032abfdf18936874c3e2208", + "theme.brand3.contrast-2": "524ea845c8c1e6dc3e05b4e8b4c49b2770cb6447", + "global.blue.1": "d2e976cd95db5f973022cda9eae917880c578bf5", + "global.blue.2": "6efca915ae1423d0e87d7c079e83b73e686fcb7c", + "global.blue.3": "f7c9f82022921b32806b05b1673ec1eff1922caf", + "global.blue.4": "b66d168b8341bad3580057ab160b2a68f78a6751", + "global.blue.5": "c4d707a44f6a05f0afc2cf38227a2b7dd831b2c2", + "global.blue.6": "bf90321d66b5f23a9674abe61d201b5b22e1c5e3", + "global.blue.7": "73ca300a3e953c8a21a20d98c1b8260dda4158cc", + "global.blue.8": "1ab6d1daae5bf5884441caf6ea35fa1f07a286ba", + "global.blue.9": "211e589c88fb34338c947c5c2f896b091b74465b", + "global.blue.10": "121ccd2a2015367a673b75c3873529157e82dc20", + "global.blue.11": "3ab48b84a41294a61d8bf26ee94464d0eafe6d9d", + "global.blue.12": "609a567c46e4692f43a557c3e67d58cc2bbd58ec", + "global.blue.13": "6269bf6afb50eae3e7c0215587e958819d70ed31", + "global.blue.contrast-1": "048c60fefccd796aceb1be19f7c7c4e7b90314a5", + "global.blue.contrast-2": "124c90f211a5c6538b1c3ed4aa24a4b559e2c338", + "global.green.1": "21baaf539ad57f62ec027af9e731fc5cff300187", + "global.green.2": "4696a51cea562bf7f84dcc9f264d0f9eaa877dd3", + "global.green.3": "f8549c79365a6b40e30f42cf16b18ed05d311c67", + "global.green.4": "3fd785b8c63d92ac246edc7a6d0e9adaabd517d1", + "global.green.5": "69255626d13508556bf2186137083da28d0bccb9", + "global.green.6": "6246b6916964dac245ac858e0f6f4d06caedd736", + "global.green.7": "05cce6768a8004925423dc0c08a0268bb43b2285", + "global.green.8": "07c6852ef7e4ae2a0d19e7757fa2af95e9800d83", + "global.green.9": "e175abcfa9dfc96399034f818e025a67089aa503", + "global.green.10": "303fecabc57e1f2ce8f3745117e23c097e2d9f84", + "global.green.11": "8ec4ef83c3dcdc6507ac4b8b0eec5fa71171a78d", + "global.green.12": "88d9df8106e7f966821dc83eed240729e67799f7", + "global.green.13": "bb4fde53803d4d5bd25a41163735a0d4f5084453", + "global.green.contrast-1": "977e787643bfd3599543dc801a16a98e60460f00", + "global.green.contrast-2": "653fffab2eedce78f45fded4018dabbcf5a6e27d", + "global.orange.1": "d2736659ea237d39db008a9867ebc1f979258ab0", + "global.orange.2": "bf837a33dad5cb56377433f7d211c216521f99ac", + "global.orange.3": "daacca314f9f7e0d8d611bda915ed34e951c5cc3", + "global.orange.4": "028fcd766bb47a840e3680743a4b1b968f8ba589", + "global.orange.5": "c047e222f1608bd986cd82764912dc6ff6fe9cbb", + "global.orange.6": "6f145b85a03a2e79e9e0a35d07f6ab1c241b5858", + "global.orange.7": "7093451903265583f5855c0e1962374beebacd65", + "global.orange.8": "e899cbc99b9f38064e4a312a5814a9dc124e07c3", + "global.orange.9": "4c7427cad93dc658f7c6f27b58dc943e5acedab8", + "global.orange.10": "911b6af07576df622589a1db30b8a0fe0fa04fa5", + "global.orange.11": "1bbad517144ebcced79c86defdb6a540b0af5275", + "global.orange.12": "7765ab682e6d3152a607f24a778094e249e553ad", + "global.orange.13": "658d19fb443ba020301d03b0727e03e90a664fe6", + "global.orange.contrast-1": "f31e6c57d8ceeb39f8080ff5df5b451f9422f2f6", + "global.orange.contrast-2": "4e62f3169595a36902ff21deb86ad42c32f45e63", + "global.purple.1": "dd8f892e5a1fc74e47d3d5895de1447bbb5026c0", + "global.purple.2": "fa7784771907554b0557e70775ed6c03622af95c", + "global.purple.3": "f3bc265da4067eecb5318367b9ed193f9e52e230", + "global.purple.4": "1b0e7b776a60b19f8184ed6c3cc1926a017bda54", + "global.purple.5": "820e27336928810b405aa0d4dd94bfd024e67682", + "global.purple.6": "07049c4831c9c3842e7e3bb0277cd133dd64ae7a", + "global.purple.7": "6efaacc6201883ce8bdd3b9e94a66206f99b4d1e", + "global.purple.8": "9d9fb5c6a3193f5540e7bbe41513615a39491c46", + "global.purple.9": "be1ce5d3aa562dc2a476e6b6fc6f4c059b0f5faf", + "global.purple.10": "6753c42d3fb1ddb7d9aac5f015e6ccda24091e76", + "global.purple.11": "a528da4e5225d47a6d26e50a2009bbdcf9ef876e", + "global.purple.12": "782a06967ff4c93ed7468d3ccebf73d62a43efe2", + "global.purple.13": "4a1221c6a31c0476875e6bd80bf75cbde6d51a35", + "global.purple.contrast-1": "6fce2fb6cdb93a3b6b61edb95f7d10eff40882e2", + "global.purple.contrast-2": "811e5c3fc69bb90d346847f30094d29ccd0b3db6", + "global.red.1": "96c68e54995f519fdf85445dcba73c823a579442", + "global.red.2": "a492455376e3ffa0445a86f8bed5d878082d0ded", + "global.red.3": "f09888e754814c7eb3da40b8cbcc43465d100402", + "global.red.4": "8c92ed293cab5e3ada6ff417c1aeba6830891b0f", + "global.red.5": "5e9dd03b4adeb98b153ebd8930288930e9dc4a9f", + "global.red.6": "7db609be5449de86faeecc7a1869d9e350a03db1", + "global.red.7": "2a99034da70ba21a84f2aca985f5dacad795e811", + "global.red.8": "d5eea18bfb7f83a051ada8289d0ceeb7be06b941", + "global.red.9": "886a217145edb0171192fa640aaca7109b5b36ce", + "global.red.10": "07f68ea7dfee0791d705c01049a19f9fa3c6b108", + "global.red.11": "2079aa95e35987b5d92f4c196914593ff5caa431", + "global.red.12": "f3a1e09ca133a5d52f211bbb3db4511855983a0f", + "global.red.13": "05dc77b8bcdd7ab509dbfa86aa37c437e23a8de8", + "global.red.contrast-1": "05438cf0d5eb4ff71816be72fd0546bc95102d08", + "global.red.contrast-2": "0f9d07cabfb0949b64117ae400b952d1959ec3cf", + "global.yellow.1": "4231d28e78f570ed9053d6068d0293469e92b4db", + "global.yellow.2": "c146ca42d73274a1eb9e8214c7e1825b58345990", + "global.yellow.3": "ee96ea63fef9e012e1e6bddf9c2d3a87f0503453", + "global.yellow.4": "fc20ef057799403bb22896e33cf5595a9aac190e", + "global.yellow.5": "065b8de035987446b17cfde34d1245f8eed50235", + "global.yellow.6": "774f57ed67d97bbe5e3f11dcd757dc34ec6c84fc", + "global.yellow.7": "78d4026f5b7b91586016ddf6b8723e02b55da764", + "global.yellow.8": "35d27b18dd3a6092aecb451a292892c7c96c6361", + "global.yellow.9": "47d1637b66c599a657029d26963a5a1cee5804c0", + "global.yellow.10": "62827494321f097c0ff2b963637e7b1d37e4163f", + "global.yellow.11": "49010b99b75a390a26dfdf803b65042fe7b7e53e", + "global.yellow.12": "f8b2622cba8f2cbee6d6240cac1137e854d3050e", + "global.yellow.13": "6514ade3d2c015c683d951cf6b03c8217228433d", + "global.yellow.contrast-1": "fcaaef2dc0beddd4288a912c721171e4714d5226", + "global.yellow.contrast-2": "f661a97ace0954d438bad585023deeb0165081ac" + }, + "group": "Mode" + }, + { + "id": "9ebd8aed52afbffc17e2666e8b4653a53498b257", + "name": "Dark", + "$figmaStyleReferences": {}, + "selectedTokenSets": { + "primitives/modes/colors/dark/global": "enabled", + "primitives/modes/colors/dark/theme": "enabled", + "primitives/modes/colors/dark/theme2": "enabled", + "primitives/modes/colors/dark/theme3": "enabled", + "primitives/modes/colors/dark/theme4": "enabled" + }, + "$figmaCollectionId": "VariableCollectionId:34811:5472", + "$figmaModeId": "34811:1", + "$figmaVariableReferences": { + "theme4.accent.1": "0f60d1ef40a8dacd3eab8b32978dd7d7a5c36f4a", + "theme4.accent.2": "526c8724ae717a7f23a7a308c300be22d6785b8f", + "theme4.accent.3": "e7ff007e8f9bab7e45df411b1853a5d6b4c38e60", + "theme4.accent.4": "b997988431afc95e1173735f02ac662b29a10868", + "theme4.accent.5": "9bf3f1f870d92fb07260ad75c8b86533ffdbef16", + "theme4.accent.6": "ee2f5f15487ef03f7869a2a2af1e82ad4ac8663d", + "theme4.accent.7": "6a5ccebc6c415f966d1a13ce6b20809500bb2220", + "theme4.accent.8": "29fb4803c533b9e4605c36d22e59d41d694cf890", + "theme4.accent.9": "8ee40422d32190374628a0294b7839ca4df794e3", + "theme4.accent.10": "5f41f4c216dce5e536db4cc7259110d704413ecc", + "theme4.accent.11": "1b93756a32cfc51cd78d482e20c05b0b214ab9c2", + "theme4.accent.12": "5df9a7d3b61807d5d3f4ca249acb2805e0507ae0", + "theme4.accent.13": "c958c9a9a8feb19db78f7c577a9d2255a0992ba9", + "theme4.accent.contrast-1": "457602d57856a4e9bee5e6e005162b78a07de17d", + "theme4.accent.contrast-2": "9039dc3b00c05333ef52893c6095242820b21f8d", + "theme4.neutral.1": "6d882a15388fd859269e8acd83f9dc4b26920056", + "theme4.neutral.2": "67a1c660ee38f815e63fc43d7cfabca0a9df14b1", + "theme4.neutral.3": "8c044346b3cb75306ff68f43d8e4262fcd23b010", + "theme4.neutral.4": "7eec0ccbed72fb8a83adb6944fa82f1d70aeb39e", + "theme4.neutral.5": "72f8f923af976130f98f3c1e79ae0e797a1a160c", + "theme4.neutral.6": "9af385664c43240abdbb2f6251d44c571bcbd774", + "theme4.neutral.7": "1abe823960acc667ac98863f5ac347d6d9400103", + "theme4.neutral.8": "31e663bb5b213a5fd9378e491bd0d040166cb0d2", + "theme4.neutral.9": "f811796e6ffdee19ccda740932e2b533a4196571", + "theme4.neutral.10": "64808d2c8b50b48f22454c5769a549a4daaf30e8", + "theme4.neutral.11": "b0ddad9a50fd40bfc10580607377fae4ef60d329", + "theme4.neutral.12": "a2cb12ea444f9e3aa15f6b73047099d246f8b28f", + "theme4.neutral.13": "7aafb202eeed105caaa84480b9a5d7f7be99d85b", + "theme4.neutral.contrast-1": "fa8bb4acf414e127b7c0654a2d2a34e7f2c9da8c", + "theme4.neutral.contrast-2": "98c62f2e358bcda35b51e97bb056854ca4e1457d", + "theme4.brand1.1": "a868f3f44e50615e6d9e728d753b362be15b276f", + "theme4.brand1.2": "7b461618106b48a04da7e2ecebb1a4bb5c439c2e", + "theme4.brand1.3": "696b59b6dbf05bbe4d1065a025199bc397509b65", + "theme4.brand1.4": "2c6f1f613e1941fb65e14ef4bb99e21aa0d9b9f2", + "theme4.brand1.5": "29da8c6e2f7d59e5dc75c2560695624a3eac8014", + "theme4.brand1.6": "cad116d68a4d05e531a8a9ae2f024fc339600783", + "theme4.brand1.7": "43416835a50efe9480b40a6158b6bb5afe1af631", + "theme4.brand1.8": "1e60982564476782e4bf8e04147c599771c5f96d", + "theme4.brand1.9": "db47da588a1bc1a37d34dccfca0bb70d28a9b0a1", + "theme4.brand1.10": "17af4fd369d8df549902d58011ac7d72934edf3c", + "theme4.brand1.11": "36a56ff7be19718e0b0f054bbd7085f2800d332b", + "theme4.brand1.12": "00c4b2999ec2274cf4a075de44238abbdc7a9fcb", + "theme4.brand1.13": "01d6a94e201dc36574e8ed2fb2ee5f488e141931", + "theme4.brand1.contrast-1": "228637658220d6bb3ef6f01defd9597bf7c06a12", + "theme4.brand1.contrast-2": "0755dd3b1a39a7455ae1c9f0c9eb7654cdb305ef", + "theme4.brand2.1": "1a205eb5dac54a4eca4b251ee4f4d374195d2a77", + "theme4.brand2.2": "73defe7138fd63409d021f98cb7946f5f9943af3", + "theme4.brand2.3": "1a3853c84ffe6bc2ef0b1ff0566b0c0fc8368486", + "theme4.brand2.4": "412ed7493a75322486bb75462c077b96ddd97367", + "theme4.brand2.5": "1d38941af4cd893c40ba0f64ecbbbf1699c0de28", + "theme4.brand2.6": "6b92df8074fb26db08f9b1450c9ac8730ccc1122", + "theme4.brand2.7": "099d77abe2e3b1e36143ac4f0f9dd4c0aed003ae", + "theme4.brand2.8": "fff1208cfca41c58243ff191764f16c1b3b51fff", + "theme4.brand2.9": "d552825a9758848af2d22b072c0dcada573fc037", + "theme4.brand2.10": "6ee3967888cef9d79dc4c98a41a7a47566ffea6f", + "theme4.brand2.11": "f7c639b2395df2b450620f1bad85c468c54545cd", + "theme4.brand2.12": "d29165b8c2a1f8d42d2a6d1e685e905ec2ab4c81", + "theme4.brand2.13": "f57d0301e7841bbc82ce2bcfc938bee657ab5422", + "theme4.brand2.contrast-1": "f17fb296a7f679eb5bf536bb511eb97aeab788b6", + "theme4.brand2.contrast-2": "5fc2a66e9ae6ec67e52f485311e94e3b765c2949", + "theme4.brand3.1": "1d9b2808aac29d00c2dee746428ad2f2e6013de6", + "theme4.brand3.2": "906a771117476c90ec8538d2ba941689c587db37", + "theme4.brand3.3": "18bf4b09fc1d03072abad16472aa2c56836e35c0", + "theme4.brand3.4": "131024b730e05a4e7687d761714a0131dd802a51", + "theme4.brand3.5": "6d6a1297090b499b71ca3f82dcc5de62658532d1", + "theme4.brand3.6": "4c93fe7035dfe74ab52bc9ae38481c130ddf5069", + "theme4.brand3.7": "16f30091fa35369cc56d8f92810d65e88345eb27", + "theme4.brand3.8": "cc48144ba3c9e019f1804af82e811c9aed11a0df", + "theme4.brand3.9": "8b0158022c9b2a7a72b5aa06e52e486f31398d97", + "theme4.brand3.10": "9e6e299f069dde104e8a787daa3b23a30e6f1881", + "theme4.brand3.11": "c9c6c45e511a2a73b4f56db401ef4d41977c6806", + "theme4.brand3.12": "834ae725fa15b18163f83a779c5aba2d5d1d7ed3", + "theme4.brand3.13": "4e325e6735675a85c9d0a290470e237ec8e00a22", + "theme4.brand3.contrast-1": "d209ad41c24e26c27f44a47508903238b7dc5e82", + "theme4.brand3.contrast-2": "02f6746d605120961ae51ecf0ee044ad1c89e4c6", + "theme3.accent.1": "26531a059b8356f58e3943ac3d54be307c3727ca", + "theme3.accent.2": "78d99dcf51a2c75bc865ae695c44e550516c6e8c", + "theme3.accent.3": "806925d9869a1dc4546db3cda8027377e66df399", + "theme3.accent.4": "5461dc2d96a8e6e6749ea31f546b4f23fd18c7b8", + "theme3.accent.5": "0627f56e6b065fac15736238afb7f127abff7085", + "theme3.accent.6": "c472e4314700042cafe1323b00406a5451617e32", + "theme3.accent.7": "eede74e6d56cdc665444b262a138099ccea44227", + "theme3.accent.8": "ddc92e35782240d0918dbb3ff951bc512b7bfcd3", + "theme3.accent.9": "7752a689d4392157ee4c6244129b1fcf612e0ede", + "theme3.accent.10": "b9d8c7ec88a90c482b9da058f378be21e64711b4", + "theme3.accent.11": "04ff98d27e9236b0f88bbe9f03a20049c99462d1", + "theme3.accent.12": "1501ba8cd3189a680a708cb118897a63c661f5c1", + "theme3.accent.13": "d79b4092666830473e31c96c9618e28e1e9eea6b", + "theme3.accent.contrast-1": "786b598fa9417c561f71858e90fd1d25c75af67b", + "theme3.accent.contrast-2": "72c4f9fedd2b89f2c104aab49beb3473f1d25246", + "theme3.neutral.1": "014892e49c9490d9d80904821d860bfe1c3751c1", + "theme3.neutral.2": "4ada3a5f84739f7dc81aad2b1764452756674dfe", + "theme3.neutral.3": "70a26190823aa9951a54c7ec3acdc57cd60e4084", + "theme3.neutral.4": "d622b47bd1326a1530d8c14399f4015542fb016c", + "theme3.neutral.5": "f6008cf0702bee078886030ea030951da831994a", + "theme3.neutral.6": "0f918604df8e6e2fa681bf68e475a7028e5a7532", + "theme3.neutral.7": "a585783346975e2fc8bc8be936502ad236e4dab4", + "theme3.neutral.8": "64ec8aab16fc7704e3d13f0158223353dca10576", + "theme3.neutral.9": "a032db56c2dd6d4802aac1c6169e2f738f892c2a", + "theme3.neutral.10": "11ea5e723508eb94a4937cc696bb22b5a83e43fe", + "theme3.neutral.11": "35f970ceb247d346b4310569c295ac2a43078355", + "theme3.neutral.12": "96a385380362af2f6032b11a878ddb5587cf16fd", + "theme3.neutral.13": "4ad2eb86145bb27694bf75d3f5086d9866f246be", + "theme3.neutral.contrast-1": "23420e9874c87b81355c5c2127a6ac9130dc21b3", + "theme3.neutral.contrast-2": "0496e07718402383dbd432f7c8ff8c0583711d54", + "theme3.brand1.1": "213daeae2721d55cd775d2c430cbc7089a7de585", + "theme3.brand1.2": "cc5980c7a772a898b6381d17966f7db4f36806ac", + "theme3.brand1.3": "aabaadd7040175235263d5db8ebdf9d10889c57e", + "theme3.brand1.4": "aaf3981f0fdcfcba436c98c3d78a23ebaae23d50", + "theme3.brand1.5": "a8884bfbf76f38966eeb65a83ef0fea4ab5607b1", + "theme3.brand1.6": "b7686e9a52c2f4ee2187f5f0f105f975085a437b", + "theme3.brand1.7": "5166eba1926ec26b736adb37bf3ea8fed25ef031", + "theme3.brand1.8": "fc9972595909f5feefa7b09d48a97f7fd3b67146", + "theme3.brand1.9": "f7e01e9a505359e9f68e6715f2230897e3fb3a4d", + "theme3.brand1.10": "b1f0778ce1944b56e97c346e2da0f1b04e086110", + "theme3.brand1.11": "e24a5730507037af07f23bf1da028596265e0669", + "theme3.brand1.12": "339812ff92f27e84a084d7904b97c05e5bdf2a8a", + "theme3.brand1.13": "5d7c70321306c7b0a8299ea5fff2cf4761eec820", + "theme3.brand1.contrast-1": "10a6940b962f0b931ed8d890a9bd7581cc5aad05", + "theme3.brand1.contrast-2": "32c1a7f76e84163c489a415fea330f91cb3c3aa5", + "theme3.brand2.1": "b6dff491e1bfb8ce5f17bdf9151cdaf07e087395", + "theme3.brand2.2": "b8bcaed79e45005c2fde3b43e27e2d969902d491", + "theme3.brand2.3": "01db691f0f9bfe42a54be2ebe4c5b43f0cf718d0", + "theme3.brand2.4": "fa9ac0714600323546c76211766aece137f4b3ca", + "theme3.brand2.5": "9e6bc9f6e5b9a81427c5269a121ed469762fc83e", + "theme3.brand2.6": "8cbea46d5c948a0392808b1c8f53b870da8132bf", + "theme3.brand2.7": "e4bc8f0b841095001398b5d769b3a24fb37d7857", + "theme3.brand2.8": "dc08eac05d574bb0d0dc1649ba60bcec1d3264b3", + "theme3.brand2.9": "db37a2f7ca3a3507aab3b161a7a23d40fa7a04fd", + "theme3.brand2.10": "fadf51a5565b4c44882d0f36123bde5061a7fc80", + "theme3.brand2.11": "049ac84e18eea7acafb9007461249f1884c3eb16", + "theme3.brand2.12": "1429dda7e7f2ab1b3de84be1eae1733cf119e5eb", + "theme3.brand2.13": "afd97317f01ab9264a5a30ef2b0e0ccec581e499", + "theme3.brand2.contrast-1": "a25941572ae12ebe06961127db7fb662233f98a7", + "theme3.brand2.contrast-2": "6a43731e30eb12cbcce423eda4d7bff58aeeba99", + "theme3.brand3.1": "dcb6cc2dd4bf4ce85e1dd1d15d05040017a7235f", + "theme3.brand3.2": "67fcc7acec216133a9bb5ca9d8a0895a035b42a3", + "theme3.brand3.3": "78ec123e8bd69160c6a5f8c20b49ad76c3c66a59", + "theme3.brand3.4": "ad4d55afff564c1a31410b025b4aee7faf6f0eff", + "theme3.brand3.5": "2c5912ac21f90ec6ebb1dba65aaa10d593bdac78", + "theme3.brand3.6": "96c83dc399cef30f956f318d99968d62de1697f1", + "theme3.brand3.7": "5b963a09526df9b9e3dda91ebb1fb44de5a51df5", + "theme3.brand3.8": "0a79b387920fb618b0d79a3eadbeb5f6a3a52c6f", + "theme3.brand3.9": "3c9ffa7f7fa882f79d96962afc5f999734a6bc62", + "theme3.brand3.10": "707c9b9d52c1d7f38c064d686c0c284cf1f410b7", + "theme3.brand3.11": "8610940640e283a65a72a09ee86530c641b9ffbc", + "theme3.brand3.12": "52b8a2a3724dbd0a2563b85a459583bcebf9fecf", + "theme3.brand3.13": "39576d16bb7428873ff11792f6e5108f115fc2d4", + "theme3.brand3.contrast-1": "8437e12d5b5719c9d9da790c8f5cff7a5bf4bfe4", + "theme3.brand3.contrast-2": "fe9c1dfe82b12ac0d4791b2d5232a0e32781e067", + "theme2.accent.1": "0fb0b77a41528ad94572eb3b409dc9a84a06034c", + "theme2.accent.2": "e7ad00556548cadde8f43af2e1350b383bee9afc", + "theme2.accent.3": "004bf2b41a4b5675765858a4e6581fb27085ea8d", + "theme2.accent.4": "4e650a7db1990371ac81113d5d925da2d19b4803", + "theme2.accent.5": "ff423b04cad473a7f471d480b457d8e629169c08", + "theme2.accent.6": "3d921beb722fb2fa2b700c5527ca3601847fa0d0", + "theme2.accent.7": "5bfb9bbae717415bc7d04b92ca67c1202fe89a97", + "theme2.accent.8": "87e1efaa3766ef374ff07c4822d17d31ac1f0dcd", + "theme2.accent.9": "24f319a4eb21943c7b496e9524972ef816d37851", + "theme2.accent.10": "295b5958443c7ae169b20852dc0c2bf28b3082fc", + "theme2.accent.11": "02e00ac8e2c15ab837d7e3eb7f7d4ec35c734c5f", + "theme2.accent.12": "e8eaa15fdecd4f8763c8d613673a68455bf4ba79", + "theme2.accent.13": "2da73a55c208024893f51903b8e4d1086e51b402", + "theme2.accent.contrast-1": "69d8f5efc0464b9dc46d4559f6c4c63f3b178524", + "theme2.accent.contrast-2": "c653c3b1cae365d61758dbf7a20be55e7f7e3929", + "theme2.neutral.1": "c255bb972d1a0cdef886b080b10920c295076162", + "theme2.neutral.2": "6aab85649aa5ee41e26a6a30e34eee1d9666a723", + "theme2.neutral.3": "261e25578ec0b953f52f3ad695aa640232af1e93", + "theme2.neutral.4": "bda06909ff48ed52390267ff56c8a5e24d94072c", + "theme2.neutral.5": "b640b85d1b7589224b31f13c1298f2eb7e34109c", + "theme2.neutral.6": "4bedeb4aeaf217ca0f234e721f5c3018d18679cd", + "theme2.neutral.7": "b8ae8fe38bd25646fe4ab6b135a3d0b4ebfe1a09", + "theme2.neutral.8": "20ff7324c6590e88410a8df11d2e4eac219e6b40", + "theme2.neutral.9": "ca35f86b8d225bc8d282c38f0118914183e496b7", + "theme2.neutral.10": "170c5343f26d7130010e6e6ea8896640b746324a", + "theme2.neutral.11": "d23fc8baa639efb8d1879893ffbcf4ccf21b09ea", + "theme2.neutral.12": "1e24159f68dc90a3839d68de4c25551bc90e7d2d", + "theme2.neutral.13": "55ae06a13c6dd5496df542e694dd91d50826206c", + "theme2.neutral.contrast-1": "5d2f1c09d43b315a8680e22c8201c52158ba2f60", + "theme2.neutral.contrast-2": "166c166b76231a8a8ed84212ecfaf1d5568955c2", + "theme2.brand1.1": "36919d02364b7601f02e4944d454a06047caac38", + "theme2.brand1.2": "074f294271716ae4048662eff67e5c349624b91d", + "theme2.brand1.3": "953054a71143dfb2b0a1908ca33e9440a9424931", + "theme2.brand1.4": "5bd1ef0fe4bee2392fc6ea98f71857c0b4f5d7f4", + "theme2.brand1.5": "b6569bacb1b4fa586269c0b4bd232246869f55b4", + "theme2.brand1.6": "fd55e933a227e1f83495f6ea283ccb98210507f3", + "theme2.brand1.7": "675968cbc559c08c7a44b27720d2364b5b4c155a", + "theme2.brand1.8": "0c9d37aa84f6a3cf054a6e06eb8337b1babd7b7e", + "theme2.brand1.9": "3522eab9ebfc2ae5c91a580feaf70465e9748f89", + "theme2.brand1.10": "3e61a3494660d174df6bab736a87675ab62ff87e", + "theme2.brand1.11": "3d4c53b43568c37b4ea9c2635cf5958fc739bf64", + "theme2.brand1.12": "a706bba785733f72521a3c632e25df975f98a08c", + "theme2.brand1.13": "f9ed3353c4e61b94c8a74e2c2fd72397cedc408f", + "theme2.brand1.contrast-1": "093c525a697bcde5ba27edf9b468b2e9407b82e6", + "theme2.brand1.contrast-2": "e78c591644329c8e13ee835622fd953bd0d9b414", + "theme2.brand2.1": "513d52765402e5c084a20c23ed21a2d739109b35", + "theme2.brand2.2": "0ee7ac0a9763ab782ec40b93a043a3d10c999ff9", + "theme2.brand2.3": "1c943c957030b1afcd70e01530035db77f0ebc34", + "theme2.brand2.4": "73adbc11588a4d41a0358fd7a327678af7138191", + "theme2.brand2.5": "1d3384f44d226abebb3b43b9988a11dff93333de", + "theme2.brand2.6": "3e1fd231892a974c1d338217072c2e9abdc7e904", + "theme2.brand2.7": "b3d2b34807b4775678254f1bbb893e7bf7a40908", + "theme2.brand2.8": "987afc969a5de78dc72208980c939bedc1ad88b4", + "theme2.brand2.9": "e82328a15d454b8a03ac04813136a8239e99b85d", + "theme2.brand2.10": "6d006ead8798823fed87eacfd2dc51695b0825ad", + "theme2.brand2.11": "58a1ebcebbd1df26bc50e8d52d39ed3711c8c3a7", + "theme2.brand2.12": "5b729c155ebffd620d57c33e291660f11b1884fa", + "theme2.brand2.13": "14c388ee4151f1e1f7ac2952658dcb89cab56370", + "theme2.brand2.contrast-1": "25e59715d734c2451c357e141d1443ea1b6ef8e1", + "theme2.brand2.contrast-2": "80c31c85c0cb53db0b10b27230b9294b11bdf781", + "theme2.brand3.1": "871caba07e4fcb0fe56cfb939379ada95b487a05", + "theme2.brand3.2": "61f7371f2e403d7254b021c7711fcdf2e0dd131b", + "theme2.brand3.3": "c96a53b053fbd2ce612be43442568044e25287da", + "theme2.brand3.4": "1375f6d1141d514228812dd9c7b2bcf6fd68ec75", + "theme2.brand3.5": "245734869366fea1a8a0f6e921e2427ad42b196e", + "theme2.brand3.6": "95e8129218f51648fb283da8643f36e8013f38eb", + "theme2.brand3.7": "4d6259705c8938fa22307738cac8bad63d37a418", + "theme2.brand3.8": "a607b57ddeff2406b433212ec8f0d3e63e23b7eb", + "theme2.brand3.9": "f29d2dce85293e7bfc18561d47306c7b9af5e20c", + "theme2.brand3.10": "bc5f8d97862c89b6a0e196e49603918f742bec42", + "theme2.brand3.11": "92396787b7970ddbd54f3a90b2542baa0b0fb240", + "theme2.brand3.12": "31cc5bc290a45d598d2a76539cf8810ea1be23db", + "theme2.brand3.13": "934d8791f5ec56b0f9f7d66718d2d8ceeb800290", + "theme2.brand3.contrast-1": "d0b9f91f14ff9aaa2db5372121cca90c226bda8f", + "theme2.brand3.contrast-2": "227ccf89ba5a96077b4d8b01a2fbd22d20e6f79e", + "theme.accent.1": "d52b72226250022733f314bc8ead41572b126abd", + "theme.accent.2": "dc35ce341ba6f193ce37631c83279e78e96b1e00", + "theme.accent.3": "dbe9c0eb94666afef8645ae01eef110fa7a94c36", + "theme.accent.4": "7deb737bf18966280d225bab457186dd95fb694b", + "theme.accent.5": "35a935fe6585bbd349f392b18a9cb6fcbb0ed666", + "theme.accent.6": "0102cde532947fa8a5eb9da5213501856ce4702d", + "theme.accent.7": "82012177fc59e1c2dd9ea9e6728af8fd300f381d", + "theme.accent.8": "3e6962baa29099a62270718c344ed66f9711a634", + "theme.accent.9": "fda497a59cdcceb9df3c6c0765308bffc4be8595", + "theme.accent.10": "f8d74b59e6c4f89dddfc57dd3a4ee73454231c8c", + "theme.accent.11": "847312fe87ea8b3a0bba34662c3372aa83d3526e", + "theme.accent.12": "d9781a9caf862ea8e09d02f10be907f8ff7ce891", + "theme.accent.13": "4fcb160a1b672776226f840a44d3749bd4a4c4c6", + "theme.accent.contrast-1": "342c3a0d3de3bd5b6cda4e89c78a896fcd9cd530", + "theme.accent.contrast-2": "bca5125d3e4a96337ab1b25035e68d3e5cd27a81", + "theme.neutral.1": "02755d3dd4e7ebaea075944bc2a4502d346b475b", + "theme.neutral.2": "146e546ea2be6a410f061d542a24a7684b40f17e", + "theme.neutral.3": "859860a647701181cee797ad3d70153b053fdd7f", + "theme.neutral.4": "f5092b9e8510b70cf8b94fe14a7a162341f6bbfd", + "theme.neutral.5": "c5dc3272132a61f373d511ea92a2ed518b43576f", + "theme.neutral.6": "4423cbf12f66158729adf1456ca4177dea1200df", + "theme.neutral.7": "25ee049c4db70428ba675d99071ebe4ef2cdda40", + "theme.neutral.8": "02185938d8e50b3acc9a36239a90541b4b6580fd", + "theme.neutral.9": "f4b65659159b353f10394e0f0aa61736c01c8026", + "theme.neutral.10": "7901ac5870871964e43643953b05fc07265b9bb4", + "theme.neutral.11": "dfdd24d70731740de7cfc4916dd6543c01d615ae", + "theme.neutral.12": "9408ff0d3f36083029c3a06fc987bb9fd2780c96", + "theme.neutral.13": "d825832b7fcefb06cd19eac5fea4c233c96164a5", + "theme.neutral.contrast-1": "9bdd92adf9f2f83a27b5cf7e19055f93b186b65f", + "theme.neutral.contrast-2": "7f71bb222c7098e5caffcfc603b6b99c4a5f453f", + "theme.brand1.1": "73570b1f89d361af53b6eb532bc0c9f2112a2baa", + "theme.brand1.2": "a1437e3c4349012cb1f5b6fb3a0f56d5ed3eb9dc", + "theme.brand1.3": "7014722a24a3f873aa897ddeeb8c3882dfec4267", + "theme.brand1.4": "81cfb0f114932a40eb41684f83573850711acbef", + "theme.brand1.5": "f05bc8d0ed8d0c3f735d93483d1283638865176e", + "theme.brand1.6": "0688f3c65b4181e68eda40c8d6ba3bd2eee5badf", + "theme.brand1.7": "88ef738ace65037867a42ad484dcbbdc5a0c0a77", + "theme.brand1.8": "98d3ae310dcdea69c94e43ac20bd9dfa2adaae22", + "theme.brand1.9": "d9a221d510a56a78980874bd291cc9dea4c97e2c", + "theme.brand1.10": "b886fa30176051b9456ab4b4a34debe5c9667d79", + "theme.brand1.11": "994d19b7cef1f40b11a978631ca94c4b0707406e", + "theme.brand1.12": "f5cb1628a343712257736433cb42c77b8113a21a", + "theme.brand1.13": "29be7eb2fee04896cfe87f92cb8d09fc5d48f51f", + "theme.brand1.contrast-1": "f0ffcc8c155e95c529eae14b47a6364b557ebff5", + "theme.brand1.contrast-2": "89b04ae3ce595f7530278417b537199366a41d41", + "theme.brand2.1": "e08cf1d2e974717ddef05a1d39a704535ca25a10", + "theme.brand2.2": "22831bfb7978d6bbf6c09198c83734859cf301b3", + "theme.brand2.3": "d14a0e23f438e4aa0b798ad60198ac82762c5bb2", + "theme.brand2.4": "e3bf7f2f31637ea5962f4ed56f50152f62c66cb4", + "theme.brand2.5": "86bc6c62983f233084ab57e7efa9bfecc2c16db6", + "theme.brand2.6": "cf3c477176a3650fa8a9a1a6fde0f160d133debc", + "theme.brand2.7": "16b2aa7dfdbd797f9ed81a5d11accd3e9d341655", + "theme.brand2.8": "2fa517046d58487bee694b4e25ba819f83a73c2c", + "theme.brand2.9": "42785506cd1e0d593188d16a914e4a1586037c85", + "theme.brand2.10": "890e735a1b0ab501a0a6c7d001716fef3a5d03e8", + "theme.brand2.11": "791f5386532aa339d490e61fade5e280a7e4adbf", + "theme.brand2.12": "29ad08762620f5b2e0db62adf0fca3f213a57652", + "theme.brand2.13": "e21e95040ab27ea1957f736b8bbb680888ab2dd9", + "theme.brand2.contrast-1": "43657231f2a748c39e991bd4def426fd92870d90", + "theme.brand2.contrast-2": "86b64fd7f9e5d551d79033604836292d1667e693", + "theme.brand3.1": "f450f5c9c8f290222b864701c143e58f7001bd3a", + "theme.brand3.2": "0827723d668edfbc28b4a4aa9be72402c1786b87", + "theme.brand3.3": "f481425004549dc4ff859868038a69dc78c25b74", + "theme.brand3.4": "221862a5d2ac801403116848d52964ec5c6021d2", + "theme.brand3.5": "805c3c51ad913d8e16e8dff1f1df1c4266a758ed", + "theme.brand3.6": "e972c0442d48992624acf2ec00e84da20ef4a8ae", + "theme.brand3.7": "73ba47c550a1d47ca3c59c40689a4bd719fbfee5", + "theme.brand3.8": "7cf379ebe954cafce51c959771dd7fd5ed2d9685", + "theme.brand3.9": "41b3d1e83076ae5aaabd4dc62e72a0f7ff22be18", + "theme.brand3.10": "68ba9400b19a07bb2f014d3084c5e8c9b7f83e5a", + "theme.brand3.11": "5322730cf8f9a6c0fd85e95ee596eeaaf42348f3", + "theme.brand3.12": "8192e3fa401baf9b8c28fb7f89b0133b582f7b96", + "theme.brand3.13": "2cc0080a3df4c4811a6341510176762cb4540b05", + "theme.brand3.contrast-1": "a1275a3384a4d01fe032abfdf18936874c3e2208", + "theme.brand3.contrast-2": "524ea845c8c1e6dc3e05b4e8b4c49b2770cb6447", + "global.blue.1": "d2e976cd95db5f973022cda9eae917880c578bf5", + "global.blue.2": "6efca915ae1423d0e87d7c079e83b73e686fcb7c", + "global.blue.3": "f7c9f82022921b32806b05b1673ec1eff1922caf", + "global.blue.4": "b66d168b8341bad3580057ab160b2a68f78a6751", + "global.blue.5": "c4d707a44f6a05f0afc2cf38227a2b7dd831b2c2", + "global.blue.6": "bf90321d66b5f23a9674abe61d201b5b22e1c5e3", + "global.blue.7": "73ca300a3e953c8a21a20d98c1b8260dda4158cc", + "global.blue.8": "1ab6d1daae5bf5884441caf6ea35fa1f07a286ba", + "global.blue.9": "211e589c88fb34338c947c5c2f896b091b74465b", + "global.blue.10": "121ccd2a2015367a673b75c3873529157e82dc20", + "global.blue.11": "3ab48b84a41294a61d8bf26ee94464d0eafe6d9d", + "global.blue.12": "609a567c46e4692f43a557c3e67d58cc2bbd58ec", + "global.blue.13": "6269bf6afb50eae3e7c0215587e958819d70ed31", + "global.blue.contrast-1": "048c60fefccd796aceb1be19f7c7c4e7b90314a5", + "global.blue.contrast-2": "124c90f211a5c6538b1c3ed4aa24a4b559e2c338", + "global.green.1": "21baaf539ad57f62ec027af9e731fc5cff300187", + "global.green.2": "4696a51cea562bf7f84dcc9f264d0f9eaa877dd3", + "global.green.3": "f8549c79365a6b40e30f42cf16b18ed05d311c67", + "global.green.4": "3fd785b8c63d92ac246edc7a6d0e9adaabd517d1", + "global.green.5": "69255626d13508556bf2186137083da28d0bccb9", + "global.green.6": "6246b6916964dac245ac858e0f6f4d06caedd736", + "global.green.7": "05cce6768a8004925423dc0c08a0268bb43b2285", + "global.green.8": "07c6852ef7e4ae2a0d19e7757fa2af95e9800d83", + "global.green.9": "e175abcfa9dfc96399034f818e025a67089aa503", + "global.green.10": "303fecabc57e1f2ce8f3745117e23c097e2d9f84", + "global.green.11": "8ec4ef83c3dcdc6507ac4b8b0eec5fa71171a78d", + "global.green.12": "88d9df8106e7f966821dc83eed240729e67799f7", + "global.green.13": "bb4fde53803d4d5bd25a41163735a0d4f5084453", + "global.green.contrast-1": "977e787643bfd3599543dc801a16a98e60460f00", + "global.green.contrast-2": "653fffab2eedce78f45fded4018dabbcf5a6e27d", + "global.orange.1": "d2736659ea237d39db008a9867ebc1f979258ab0", + "global.orange.2": "bf837a33dad5cb56377433f7d211c216521f99ac", + "global.orange.3": "daacca314f9f7e0d8d611bda915ed34e951c5cc3", + "global.orange.4": "028fcd766bb47a840e3680743a4b1b968f8ba589", + "global.orange.5": "c047e222f1608bd986cd82764912dc6ff6fe9cbb", + "global.orange.6": "6f145b85a03a2e79e9e0a35d07f6ab1c241b5858", + "global.orange.7": "7093451903265583f5855c0e1962374beebacd65", + "global.orange.8": "e899cbc99b9f38064e4a312a5814a9dc124e07c3", + "global.orange.9": "4c7427cad93dc658f7c6f27b58dc943e5acedab8", + "global.orange.10": "911b6af07576df622589a1db30b8a0fe0fa04fa5", + "global.orange.11": "1bbad517144ebcced79c86defdb6a540b0af5275", + "global.orange.12": "7765ab682e6d3152a607f24a778094e249e553ad", + "global.orange.13": "658d19fb443ba020301d03b0727e03e90a664fe6", + "global.orange.contrast-1": "f31e6c57d8ceeb39f8080ff5df5b451f9422f2f6", + "global.orange.contrast-2": "4e62f3169595a36902ff21deb86ad42c32f45e63", + "global.purple.1": "dd8f892e5a1fc74e47d3d5895de1447bbb5026c0", + "global.purple.2": "fa7784771907554b0557e70775ed6c03622af95c", + "global.purple.3": "f3bc265da4067eecb5318367b9ed193f9e52e230", + "global.purple.4": "1b0e7b776a60b19f8184ed6c3cc1926a017bda54", + "global.purple.5": "820e27336928810b405aa0d4dd94bfd024e67682", + "global.purple.6": "07049c4831c9c3842e7e3bb0277cd133dd64ae7a", + "global.purple.7": "6efaacc6201883ce8bdd3b9e94a66206f99b4d1e", + "global.purple.8": "9d9fb5c6a3193f5540e7bbe41513615a39491c46", + "global.purple.9": "be1ce5d3aa562dc2a476e6b6fc6f4c059b0f5faf", + "global.purple.10": "6753c42d3fb1ddb7d9aac5f015e6ccda24091e76", + "global.purple.11": "a528da4e5225d47a6d26e50a2009bbdcf9ef876e", + "global.purple.12": "782a06967ff4c93ed7468d3ccebf73d62a43efe2", + "global.purple.13": "4a1221c6a31c0476875e6bd80bf75cbde6d51a35", + "global.purple.contrast-1": "6fce2fb6cdb93a3b6b61edb95f7d10eff40882e2", + "global.purple.contrast-2": "811e5c3fc69bb90d346847f30094d29ccd0b3db6", + "global.red.1": "96c68e54995f519fdf85445dcba73c823a579442", + "global.red.2": "a492455376e3ffa0445a86f8bed5d878082d0ded", + "global.red.3": "f09888e754814c7eb3da40b8cbcc43465d100402", + "global.red.4": "8c92ed293cab5e3ada6ff417c1aeba6830891b0f", + "global.red.5": "5e9dd03b4adeb98b153ebd8930288930e9dc4a9f", + "global.red.6": "7db609be5449de86faeecc7a1869d9e350a03db1", + "global.red.7": "2a99034da70ba21a84f2aca985f5dacad795e811", + "global.red.8": "d5eea18bfb7f83a051ada8289d0ceeb7be06b941", + "global.red.9": "886a217145edb0171192fa640aaca7109b5b36ce", + "global.red.10": "07f68ea7dfee0791d705c01049a19f9fa3c6b108", + "global.red.11": "2079aa95e35987b5d92f4c196914593ff5caa431", + "global.red.12": "f3a1e09ca133a5d52f211bbb3db4511855983a0f", + "global.red.13": "05dc77b8bcdd7ab509dbfa86aa37c437e23a8de8", + "global.red.contrast-1": "05438cf0d5eb4ff71816be72fd0546bc95102d08", + "global.red.contrast-2": "0f9d07cabfb0949b64117ae400b952d1959ec3cf", + "global.yellow.1": "4231d28e78f570ed9053d6068d0293469e92b4db", + "global.yellow.2": "c146ca42d73274a1eb9e8214c7e1825b58345990", + "global.yellow.3": "ee96ea63fef9e012e1e6bddf9c2d3a87f0503453", + "global.yellow.4": "fc20ef057799403bb22896e33cf5595a9aac190e", + "global.yellow.5": "065b8de035987446b17cfde34d1245f8eed50235", + "global.yellow.6": "774f57ed67d97bbe5e3f11dcd757dc34ec6c84fc", + "global.yellow.7": "78d4026f5b7b91586016ddf6b8723e02b55da764", + "global.yellow.8": "35d27b18dd3a6092aecb451a292892c7c96c6361", + "global.yellow.9": "47d1637b66c599a657029d26963a5a1cee5804c0", + "global.yellow.10": "62827494321f097c0ff2b963637e7b1d37e4163f", + "global.yellow.11": "49010b99b75a390a26dfdf803b65042fe7b7e53e", + "global.yellow.12": "f8b2622cba8f2cbee6d6240cac1137e854d3050e", + "global.yellow.13": "6514ade3d2c015c683d951cf6b03c8217228433d", + "global.yellow.contrast-1": "fcaaef2dc0beddd4288a912c721171e4714d5226", + "global.yellow.contrast-2": "f661a97ace0954d438bad585023deeb0165081ac" + }, + "group": "Mode" + }, + { + "id": "368d753fcac4455f289500eaa42e70dc0a03522f", + "name": "primary", + "$figmaStyleReferences": {}, + "selectedTokenSets": { + "primitives/modes/typography/primary/theme": "enabled", + "primitives/modes/typography/primary/theme2": "enabled", + "primitives/modes/typography/primary/theme3": "enabled", + "primitives/modes/typography/primary/theme4": "enabled" + }, + "$figmaCollectionId": "VariableCollectionId:36248:20769", + "$figmaModeId": "36248:2", + "$figmaVariableReferences": { + "theme4.main": "85973186404a1cae2417e684007a0ea75303453c", + "theme4.bold": "c37dfc5b5e80f85308c82770519d12c0dbf71015", + "theme4.extra-bold": "ec26548d9c45c6cbe21d4e7c5e0ced11de976280", + "theme4.regular": "e53f8269bb384dea97f52307348379f2390813ac", + "theme3.main": "2545fbed414ddecb9c210a34dd600bf9940971a0", + "theme3.bold": "1c5d58ea91ba4ed18efd82dad9d6fdd140cef5ad", + "theme3.extra-bold": "5765439ceb0f373b11c63fea09e3e26299b4113e", + "theme3.regular": "307732dedc71db50fab4d2190dab94a9c0d664ed", + "theme2.main": "7efa525773ed529cfeb44e208412f02539868535", + "theme2.bold": "3af4338852fc67331cf46c429493ccc5f7e09899", + "theme2.extra-bold": "b4ec11d393468420a89988b9a11979aeeea32c50", + "theme2.regular": "770eecc1f59894aa05daaa4574006edd0bc19529", + "theme.main": "9174e6d60ed7d6623e421a0988f820c1a7f2250a", + "theme.bold": "a57da4cc8cc7792647427645bc7a82d47baf169b", + "theme.extra-bold": "dcb1be01a5ce6911037472bbf6acaa2294328939", + "theme.regular": "d7e8e6e1f4142bd0834100dc8c55db3d48b7dad3" + }, + "group": "Typography" + }, + { + "id": "264b8bd1d40b364e1ea3acf09e49795ddd4c513c", + "name": "secondary", + "$figmaStyleReferences": {}, + "selectedTokenSets": { + "primitives/modes/typography/secondary/theme": "enabled", + "primitives/modes/typography/secondary/theme2": "enabled", + "primitives/modes/typography/secondary/theme3": "enabled", + "primitives/modes/typography/secondary/theme4": "enabled" + }, + "$figmaCollectionId": "VariableCollectionId:36248:20769", + "$figmaModeId": "36248:3", + "$figmaVariableReferences": { + "theme4.main": "85973186404a1cae2417e684007a0ea75303453c", + "theme4.bold": "c37dfc5b5e80f85308c82770519d12c0dbf71015", + "theme4.extra-bold": "ec26548d9c45c6cbe21d4e7c5e0ced11de976280", + "theme4.regular": "e53f8269bb384dea97f52307348379f2390813ac", + "theme3.main": "2545fbed414ddecb9c210a34dd600bf9940971a0", + "theme3.bold": "1c5d58ea91ba4ed18efd82dad9d6fdd140cef5ad", + "theme3.extra-bold": "5765439ceb0f373b11c63fea09e3e26299b4113e", + "theme3.regular": "307732dedc71db50fab4d2190dab94a9c0d664ed", + "theme2.main": "7efa525773ed529cfeb44e208412f02539868535", + "theme2.bold": "3af4338852fc67331cf46c429493ccc5f7e09899", + "theme2.extra-bold": "b4ec11d393468420a89988b9a11979aeeea32c50", + "theme2.regular": "770eecc1f59894aa05daaa4574006edd0bc19529", + "theme.main": "9174e6d60ed7d6623e421a0988f820c1a7f2250a", + "theme.bold": "a57da4cc8cc7792647427645bc7a82d47baf169b", + "theme.extra-bold": "dcb1be01a5ce6911037472bbf6acaa2294328939", + "theme.regular": "d7e8e6e1f4142bd0834100dc8c55db3d48b7dad3" + }, + "group": "Typography" + }, + { + "id": "de7b392ea3a3ba7f9afc9e307bb834c9ec5e5f0c", + "name": "", + "$figmaStyleReferences": {}, + "selectedTokenSets": { + "themes/": "enabled" + }, + "$figmaCollectionId": "VariableCollectionId:36329:62335", + "$figmaModeId": "36329:4", + "$figmaVariableReferences": { + "color.accent.1": "407d448531f08e57dee60995fa3a58a62f743a64", + "color.accent.2": "4b252a7f404df182292a07adf36f9822b234e46b", + "color.accent.3": "632d50c81db69ce09ba8eb139be0aeb30ec62321", + "color.accent.4": "b651ff262f8c56058cdad731e230748f4e5fdd13", + "color.accent.5": "ea7c51b3841b74a36844092185f5da96ab7b1a4e", + "color.accent.6": "1226928467530d2afebfba4025acb9d8506b3be6", + "color.accent.7": "dc3d280a821d068b5343f813f0a498a53716194e", + "color.accent.8": "19c703fdda99f1218659baf6d91bbf0fdbfdded5", + "color.accent.9": "b5fdf3dda3764535ff2e91bff7e292947891cf90", + "color.accent.10": "6c5ed511874f93bcbbcbdbffab4ac87d0865b3cb", + "color.accent.11": "6d52fc94c018f3bb1df1378ab14ca939915b1974", + "color.accent.12": "396e3de1787caf92cc00b18ebcfdbecca8fe267c", + "color.accent.13": "a4ae63e25ade82cb26947bc4300e2c4162d17908", + "color.accent.contrast-1": "750c4bc2aa4edd9a4a4bec080d735f99b8ff48e5", + "color.accent.contrast-2": "dc38c5a789e5d91a77821fbb006300113ef25cd8", + "color.neutral.1": "1cd598dd731b6a8c7189dfccc3b116cfff1cfb95", + "color.neutral.2": "6d470e2074272c87e9e40d7ea620000157e4c811", + "color.neutral.3": "bf64634497eae5d75b96405023294a4d1c260b08", + "color.neutral.4": "7bac69ab3f352a5e8f4448258ac5a63c6d0e271a", + "color.neutral.5": "4945a98fc6774ce31cb61b2c28445da9ff893561", + "color.neutral.6": "4f2c25877c319ef961a4da4b7c8c95829ac655d9", + "color.neutral.7": "2123482557774f5582dc8d375a7b751119465ac1", + "color.neutral.8": "946276f66d55cd8dd533117c4cd0f26a0c4ad578", + "color.neutral.9": "26aaa4ea696da2f41cbbaee3aef2573409ae69ca", + "color.neutral.10": "987647e8baafa548169cb587183c377aadb0d501", + "color.neutral.11": "86dc2a75dad06aadfef1d0076a208a12d109d2a4", + "color.neutral.12": "f5930fd09946e61cd232158237e6be12fec2ddf5", + "color.neutral.13": "54a6630c68995ec8287d104ef268be3936e96719", + "color.neutral.contrast-1": "fad9086779e9838bb499005ba3ec0b4019fe190e", + "color.neutral.contrast-2": "dcd0a66e9cd7e1f3aa7d509e848720983c2b2272", + "color.brand1.1": "425678e97547e958fa72d4a778b37ddbaf03357e", + "color.brand1.2": "40b34426694c56344d4f96201cceab2bd3a3cc5d", + "color.brand1.3": "e92be6a6bbcd50389d1b50a46ff73829b9c88779", + "color.brand1.4": "db8c65cb8c6e233ec7e3fb994e561a501340dc4c", + "color.brand1.5": "d003b5fbeb642e92e5304487472f9705f88fcc31", + "color.brand1.6": "a5a6c26c2d2d9bfb606333019b5d508ae15f9408", + "color.brand1.7": "54b2f352b99f02bc204c311ac76cf9c5ac4973a9", + "color.brand1.8": "55e1afdc20c60e318ca1958c72214e5015be8ccc", + "color.brand1.9": "564d6c9ec8cdd5a516c421039e9d81376a3bc19a", + "color.brand1.10": "b253df0e13cc9d9ea54861136792b13f4a2fcfca", + "color.brand1.11": "ba183461d92d979fc2204714bf88494494490f66", + "color.brand1.12": "29b97951ba732ce8886441c83b596c9e9cc4659f", + "color.brand1.13": "8b2303c5ad1a51a367c739264fb8be0bcc4db759", + "color.brand1.contrast-1": "63f9624ce091bfdd4c2974f9c10fdd4d2ad2c0e5", + "color.brand1.contrast-2": "7eb09ba8724f04d940a0a0fd4e0f926b594ab6f4", + "color.brand2.1": "833d6295fe9ace38deac99ed314d01d80dccc5b8", + "color.brand2.2": "3f5f6278c9f9141267c02de384fa6991ba1f55c2", + "color.brand2.3": "3f8998fbd3cc382dd48989daf906316381349da2", + "color.brand2.4": "f91dcf81257b656c31bc02f713d50023e6a5e623", + "color.brand2.5": "e0b9c59dcf0945345374eb1b17b282f36393bc09", + "color.brand2.6": "08de72b14619f8e1dcd1992e0cc2699ae0c395be", + "color.brand2.7": "9c3245202e0ec12b527b71e04f5ba71e8f1d6980", + "color.brand2.8": "2cc83328df7add1e28ba4fa6535fbba3ae5c2d3c", + "color.brand2.9": "02e34c3e457939bf1cdf49d98b7ae5becf3fbdc6", + "color.brand2.10": "26d35d849263d69783bac4ee336ecd7f16ba6e0e", + "color.brand2.11": "d25e15f6f3ca08b30b736531b3fb683e7799ef25", + "color.brand2.12": "e57eb5629bdaaf179601ad8082673c0673c39b7a", + "color.brand2.13": "53e4fcd745332e514b35ea501de450fe9c29b554", + "color.brand2.contrast-1": "5c17f0b48bc991159d19270ef4984e112bc68e1e", + "color.brand2.contrast-2": "d3530920c1af59b7666db7b48b45bbc105c01eb3", + "color.brand3.1": "1368f8f42e7675639602ac55a1832a343e637f52", + "color.brand3.2": "12f52b16c63494de1cc8766311904f2fcd3b0d1a", + "color.brand3.3": "4eca4c0f3d4dbe2cec1392e2f52d8a94a2ecbae2", + "color.brand3.4": "885fe87d26eac45d37d68b0488a16e63df51acbf", + "color.brand3.5": "7afa8de4172e447fdd139abc3aaedb70afaa7350", + "color.brand3.6": "c77c4852276afdf27f9e9c04782c2c7f129bd44c", + "color.brand3.7": "bda558813ed30830172cf1367e92800ec881a725", + "color.brand3.8": "345d61f086ae1e4b8d145d023e897faee3d2a99f", + "color.brand3.9": "01c6bcbf083fdc0155f6e094a176dd8378cb8e91", + "color.brand3.10": "49ce164cfa40fe2c41a8e0c5859311332e4b68dd", + "color.brand3.11": "c3e1eecce4a809f03f7ede842461a05f387dd440", + "color.brand3.12": "34de168ad7e6759e4a8f7fef8639018a817e4ef0", + "color.brand3.13": "1a81ac3892466139853a292248d68bd4187d1e64", + "color.brand3.contrast-1": "0f5d8b63f3541311b46e88053557485498f8c492", + "color.brand3.contrast-2": "bba49107f5bdec9ee23c1232107a6d2eea9ad649", + "font.family": "56a35dfa8765af132918473ead5d25fc27b0b739", + "font-weight.medium": "745d07e983fca033641781662e84254db9902f94", + "font-weight.semibold": "634e911ca48a2e58d6b3fa1a79f962f8fd6ffb21", + "font-weight.regular": "42a1fb70c84bc846cbc4355ea1fad5d15d7076ee" + }, + "group": "Theme" + }, + { + "id": "541629445ef90ad5363f9e88f52a1ccb617e6f84", + "name": "Semantic", + "$figmaStyleReferences": { + "typography.heading.2xl": "S:cfde4082fc2e65fbc6cbce8e4a76aa9e2cb3e5fc,", + "typography.heading.xl": "S:ea0ec14139a5140b99c5322dd21d580cca771d6a,", + "typography.heading.lg": "S:2a6caf651bb9dd0ac36619ee5005ed7e77bc6055,", + "typography.heading.md": "S:d805d56a848d04369b6cd6fe31867d86401f60b4,", + "typography.heading.sm": "S:ae31d5fb03632f006cf3f8314ddd79be8b38aa36,", + "typography.heading.xs": "S:b18fd7d788b5113b0b3ea0f197d3dd41545ba814,", + "typography.heading.2xs": "S:677a56e0dd202cef112612c0545182335193da9a,", + "typography.ingress.lg": "S:9037768d79b5bdbc3fc890ba11992e1522c105d1,", + "typography.ingress.md": "S:3ab2a5a35b1d1ba00b3b2ad0b4e499dca262d26d,", + "typography.ingress.sm": "S:f6daf4018e1fa3736ec070e8c04c8441474ba7f4,", + "typography.ingress.xs": "S:f5b8a079944bd06aecd1233eb7962352a6322e88,", + "typography.paragraph.lg": "S:0a2593fb2fd28cd975c66d6b288c56ca7688bd55,", + "typography.paragraph.md": "S:853c97f9c7ded7bde796a9fea6bda7bab112d36a,", + "typography.paragraph.sm": "S:2ede4bea7d981da32541f7bb16b435149629609b,", + "typography.paragraph.xs": "S:f35a5be132d473c604c6b86e401fdab8caf5105c,", + "typography.paragraph.short.lg": "S:18edc993ddd5eea23e707d86ee14e432a0cbb23d,", + "typography.paragraph.short.md": "S:1beb0aeb91bc8b4c49ea86e95c86ab06a039aa23,", + "typography.paragraph.short.sm": "S:952ab886704981d69798f0a6bc4b94598fcd3058,", + "typography.paragraph.short.xs": "S:95d7e0a368de46f912b05ddcaa082dc9311b01b6,", + "typography.paragraph.long.lg": "S:2d4ca7050ef034f3aa0903a08f9cd0fcd4d2fb5c,", + "typography.paragraph.long.md": "S:0b904e1bd5cec768ef1dd4525ea6c6d5d03cfd89,", + "typography.paragraph.long.sm": "S:11ce25cff0d55fa59469fbf9c85bc6c48e33bff2,", + "typography.paragraph.long.xs": "S:070aed27fbbcbcb531812b2ff820832a33309f04,", + "typography.label.lg": "S:4e09996641528d8ba7c9964a986441ed6d304ba2,", + "typography.label.md": "S:afcdd6b44e6193f9dbac8016cdf6704e0bbcb9af,", + "typography.label.sm": "S:aa653b94509a6ca973a7b5df451929ef93567ed7,", + "typography.label.xs": "S:ebe3490de7c86a93c5ed41ff8b696bf64c33ec31,", + "typography.error_message.lg": "S:c4a292b74f093f3dd07941020c348020be7b9afc,", + "typography.error_message.md": "S:809216b8cd5e599a5048763bd7261a3a3d875cc7,", + "typography.error_message.sm": "S:8079c1db956c64d06534141dc2209c4f28cf49ec,", + "typography.error_message.xs": "S:97414073b0821e30ed1de5654d2beb0462c5ac6e," + }, + "selectedTokenSets": { + "semantic/style": "enabled", + "semantic/color": "enabled", + "primitives/globals": "source" + }, + "$figmaCollectionId": "VariableCollectionId:34811:5976", + "$figmaModeId": "34811:5", + "$figmaVariableReferences": { + "disabled.opacity": "d94940d06b80e1cb6184ae12c5793a1ef95420ba", + "border-radius.sm": "7b2af5d22e01253d20184bf5c3f872a18d41a315", + "border-radius.md": "76f37e1c3307e179fa0144249c3b801d1c23e748", + "border-radius.lg": "ac79c81ad8072fd4377a13a6e856d494c693fcf3", + "border-radius.xl": "7b61c03456ebcf335bed7486c7897986b688765b", + "border-radius.2xl": "2cbdcf5e08c9a5d1e2755d0999b76825e39331a9", + "border-radius.3xl": "49868c68c4a133bd40d0860c0951b0a279dc0785", + "border-radius.4xl": "02b3a1d2f7da8148195447afade3707876c8be19", + "border-radius.full": "402d1c89e9770719d5da3e2379344604f3021569", + "spacing.0": "fc789f9fa08a555a4338d53405faa463dfa51689", + "spacing.1": "f81609d4dc6bf19d758713001ca33e4e21acbd7a", + "spacing.2": "d82d6e63323d5e1f85f5fd1aa54eceeb5ff2a2f3", + "spacing.3": "c5a4e25af9039b4acad5cbcb0e94a943749581fa", + "spacing.4": "7a5145dc0a51281b0bfd3f3fb6e5ed10cd9417e1", + "spacing.5": "40212f8732f50e07f964501e0b1cac6a048fc4b3", + "spacing.6": "de02657f819059c9662e0483cb5c72a791c92d54", + "spacing.7": "e07a8229201269455cca1b1e9470db01b734e39d", + "spacing.8": "4f7fe750dcd834dff2fe3e078e6e0254075ff964", + "spacing.9": "1bd207f4b560e03eda66f4e5eaa1d19c0bbb9e96", + "spacing.10": "f3c977fecf87ba580b25064e561ace2a83a5cbbf", + "spacing.11": "2be74c0dfc1979fd9ce0b49b8c53c53a56370be6", + "spacing.12": "2b0132c4846c3a9b2862d9f329cfb2d89a770389", + "spacing.13": "1bbc0e046202b27851a43a8a1a3f5fa3563055e3", + "spacing.14": "3c4f5e0d3c9bf5bae8d4ec4e80aa6870fb981949", + "spacing.15": "4c422183731c26d1b23374de723ff8dd33d6aef9", + "spacing.18": "bae761488a8ed986d6f16f5c85d4b0288adfaf9d", + "spacing.22": "47e296f76dddf426d3bee3ee57b396b8e92c0d80", + "spacing.26": "76c0b07e99cf5c17c6fcbaac3647d5252eacc47e", + "spacing.30": "0b93c3be3be96b775da6124c0ecedf204c9932ee", + "sizing.0": "0bfae9839e97fb781011b375b2989c0a008b2926", + "sizing.1": "7fc2e57eb7ded152643f4ade413e869f4a214a47", + "sizing.2": "2d0a58bf3c81352b74a34ebbd611548cdb2272b7", + "sizing.3": "5009660a30c96488347ce9d7b94394bbe39d5905", + "sizing.4": "e8d58ae6810755487b782187c9691e201d1eb983", + "sizing.5": "542fe70a17972f40dc49d18dc7aadf4875126e0c", + "sizing.6": "567efe7ca0b8770bf54794808463231d34aaaeb3", + "sizing.7": "c39fb992ed34f572ee86c8beec208269e5db1bb5", + "sizing.8": "facf189ce70035a4e4ee3fb01e2c3befa670f902", + "sizing.9": "a7d15015cd1186905eaa58d7d81c1e250be88d8a", + "sizing.10": "49e7167c90caa65bb4b3417f0bc4b0ad37369e2c", + "sizing.11": "f4384af9689b97ce7c5e4d793bb49c41ee7c5612", + "sizing.12": "f1c93cbcc8f16d18aa43d6aa834aad56625c71d1", + "sizing.13": "57b58c97b74b1909c0cb7cab45889f4059631034", + "sizing.14": "e9bc584fdd894132bbed815c612167a72f251d3c", + "sizing.15": "e754e5ea2bd68fa728d0b8dc37502d01caa073b9", + "sizing.18": "c51587654660af6561cb244bbc1a7a6461321cfe", + "sizing.22": "9477b31528ea339ae1350b93a50987e5afc92b76", + "sizing.26": "42a8170ee551cacaf2e833e6576f271ddbf7b0ab", + "sizing.30": "49baf0928082114475f780cb1496f14ed43d29c6", + "border-width.default": "ac5b6181d17de3d25249c91674dce4fef8711216", + "border-width.highlight": "dd40bb1cb729138762c0bfa29d26adb58b726354", + "color.accent.background-default": "66c251d95021cbe5b4637c3a5ae207332f5837cc", + "color.accent.background-subtle": "a2f1ed081e377e79c001ad43116e6f0c8499a38b", + "color.accent.surface-default": "7c238950d0ffd3e2981889d9ae76d73091daf3a4", + "color.accent.surface-hover": "db062df391a602d0d1a51190d7689769a673aab1", + "color.accent.surface-active": "3049055bdf19f8deb8cfb76c95c44dd988b83508", + "color.accent.border-subtle": "921c4cf372d04b7700eae984c8b26575d8ae354c", + "color.accent.border-default": "35e12d2ba2c4f4e879e1e3ff45a7df2d4e403e70", + "color.accent.border-strong": "e95942abac0bc93a9ae6fafa5515ac1dd374b229", + "color.accent.base-default": "38cbe65bbe3cfb034b8967c8c386745106ef9ae7", + "color.accent.base-hover": "7da14d831efb79dd5b98bba555b5a65b522daa00", + "color.accent.base-active": "dbf60c3000071d90a423895b2382b8908501e8ab", + "color.accent.text-subtle": "3bbd197b66cc66bbd3d2900744851388be4b72ea", + "color.accent.text-default": "89c3f327c6cc20255cfeaa457dc77c9a44cd0555", + "color.accent.contrast-default": "fa3f09b27fdafc843530a2251462b1f77b8ab251", + "color.accent.contrast-subtle": "c4ecc93f40a4724c3840977a5d1dfd546d2ddd4f", + "color.neutral.background-default": "a14d8e1346e348ee1be85410149c19e584899964", + "color.neutral.background-subtle": "b059c374e82aa3e339fc323e6a83db552d3c7968", + "color.neutral.surface-default": "099a511e5c8ea126a8273e92930e978f18c64065", + "color.neutral.surface-hover": "37e22bf3f1d830720d49e733d952ea2b077e1fb7", + "color.neutral.surface-active": "fddf14a7e2deaef8988f5ab45f0bf50ca0aef977", + "color.neutral.border-subtle": "5be93e75750ef2a5f640cc6a7404b7a2ccb90c3a", + "color.neutral.border-default": "ccc01af38a2b91e7758242e1eadaf1a755a9e9b3", + "color.neutral.border-strong": "959c32c89390bb423014cee8e547a0e1da721dbf", + "color.neutral.base-default": "f09cf9d8cb875eb731f4aa191a7dc2db7d8bad59", + "color.neutral.base-hover": "f780175ea1372f615d1567f0bb397284ac64e4d0", + "color.neutral.base-active": "667d7e21dc171b6eb0683b610c58c47c44622326", + "color.neutral.text-subtle": "da42f02ad3dc2c442a8c668d21c8d28dd270cb0a", + "color.neutral.text-default": "51c3c7e277e3eb002b570a2570a8cb732d5db4a4", + "color.neutral.contrast-default": "2e68685b1271425be19b202b3d5ba4622337eb9a", + "color.neutral.contrast-subtle": "43448c41aa963679dc3d548bd0ccbfa402d74043", + "color.brand1.background-default": "73d773aa6ab6d7a4001710974ed2ae4e5b4d4dea", + "color.brand1.background-subtle": "12838f40de64e9a8a158291376878d511f471124", + "color.brand1.surface-default": "84f026c5c7f6e393de59660e84af9c908832f62a", + "color.brand1.surface-hover": "298bf20662330889cbdc4f0dcdb811581ea41ae3", + "color.brand1.surface-active": "3a32e777d515ba58db04298a7873366cc510ea0b", + "color.brand1.border-subtle": "45db94769aecd7c8ad94efc5e324c11826060b90", + "color.brand1.border-default": "326af5585ae9d7d99ce1678290ce5f96da940cd1", + "color.brand1.border-strong": "f52c94f6123beba9b11fd213f6dcd1e9ec70b252", + "color.brand1.base-default": "485cfaf467d4836411697a9026e6a39f6d278e41", + "color.brand1.base-hover": "b9906747d0ba47f6f3c6ca3388b38555434fd6bf", + "color.brand1.base-active": "a0e90e1c9a2b08cdcffc56071c7a0a9cbca86ae8", + "color.brand1.text-subtle": "3b60d9bf398baa6237d43f2d7bff5b5cadf559b5", + "color.brand1.text-default": "53809d4b416a36b60d7bca35a02b519b7023e3b8", + "color.brand1.contrast-default": "a633c2e98b11f0230d75fe414ec279b978c6a8bb", + "color.brand1.contrast-subtle": "fb3e9c06af93acfefb6849622a5803bad388d117", + "color.brand2.background-default": "debb911b43b14ba32c857a8631a686c821ff8e1a", + "color.brand2.background-subtle": "5a3d464fa9cd7b9300b21c588868c4dbeef2c984", + "color.brand2.surface-default": "13afd12e87c4aba5f6099d94cc5e328ba806b97d", + "color.brand2.surface-hover": "f98c24c1bdf2cec85c1dcfa13c688b140102a463", + "color.brand2.surface-active": "05d9d0fa8aa67dbfcde76d9ac0169ace038a3c4b", + "color.brand2.border-subtle": "3fbf2fd3ae6dc2f08303006d2a62e594e4c3cca9", + "color.brand2.border-default": "4122faec7f97ae6a7ea984523a92bb4162f7277c", + "color.brand2.border-strong": "05e2cf3bfa822a26a52562b9eac8550dbcce6740", + "color.brand2.base-default": "87957522a4114a16bc1f4423fbdd4e91dc9441d4", + "color.brand2.base-hover": "3a7cd9fab4b14a7e2efa1e5170ddc1b85567a3a5", + "color.brand2.base-active": "777859efebd75dcdf2b6361f62b917f5da5b7c5a", + "color.brand2.text-subtle": "c1aceba99760fba360791e6c82aabf37dd438535", + "color.brand2.text-default": "ee9de0142ee0ddfbde31c8a8574da4e711d439ce", + "color.brand2.contrast-default": "9bf8de2d66b75ee276405df1fe2ff6f1c4892ed4", + "color.brand2.contrast-subtle": "c7ad5188a72f7f27bbefeb94ab1a984b0e0295f1", + "color.brand3.background-default": "8c9a903d152a10227296dcde025422f3dbbb92c1", + "color.brand3.background-subtle": "85ccd36d46b652b631d39e3b2228a237aeb8164a", + "color.brand3.surface-default": "7c436164280f689d766d356996a92696ccc27de6", + "color.brand3.surface-hover": "232948bd98dddd0f88d545f1635730be173f9123", + "color.brand3.surface-active": "1507c48a662ebbaf2c50701b2d2f5b2310f43d80", + "color.brand3.border-subtle": "fb4d7a26e0232159d7c3bf62ff5bdc5e9e4674dc", + "color.brand3.border-default": "df8d094b36d903399a6ec179ccfde126783b25b5", + "color.brand3.border-strong": "2809dda2b6abaff224999f8e093160e3a9f91924", + "color.brand3.base-default": "ffcb94d90e5e13d4bf5ae0a750c0e93767ebc920", + "color.brand3.base-hover": "94e996642bdc4aa1e9bb2b1fa44340efe34ccdc7", + "color.brand3.base-active": "234a0c65c34d913231c6fdd789295357b01c6ba1", + "color.brand3.text-subtle": "5b15adf9dac2101dd116d072a44fc84388939913", + "color.brand3.text-default": "1b799658b64445c0da0ad06290c2fbc8eb05e1bf", + "color.brand3.contrast-default": "9b12ad3d91e9141043b115fd078a7f68c208659e", + "color.brand3.contrast-subtle": "403287e2fe083d594828a6aff27198a6ce67ba4c", + "color.success.background-default": "3ceba0df8a643ce1b4e837d43c404d6de26d4de9", + "color.success.background-subtle": "52863dd8c98275b4c407f89dd4904319735ad522", + "color.success.surface-default": "27b8203a7d882771922916639d39480b1983564f", + "color.success.surface-hover": "af6ccbd049931d4fc522ea043c279d829dc5ba21", + "color.success.surface-active": "cfc21d99bfad388345eed3fc5c1f7e4837a70cc3", + "color.success.border-subtle": "683928dcb1b06c0356109399563232aa4a68d1b8", + "color.success.border-default": "040fd6ac84243c18792ee1d5598373d8027373f3", + "color.success.border-strong": "3dc165d5189acd77df27c8a9480ee499bb0612b4", + "color.success.base-default": "f616aa19217d3e83d6df9cd30dc28e2a7e656a2a", + "color.success.base-hover": "e2be90f26ba5e3b395cfd987878fd17969272f3e", + "color.success.base-active": "0a54a342f41c8f894b66c409b44e6b4c141fcdc6", + "color.success.text-subtle": "67587ca42f04d11dffb12f6dbce1760b18a157c4", + "color.success.text-default": "49a31f6095fd75d4a3a36378f62f8a2789494917", + "color.success.contrast-default": "bd062599c0d058161c5c7bb29eeede7dc876befd", + "color.success.contrast-subtle": "c7cc75502bd1c7813c03eee29da050d2014fc5f0", + "color.danger.background-default": "3194ec8ad659d59d435cd58827b8c827aa3301cf", + "color.danger.background-subtle": "267ae0499bdc74fcc791c131c69565f55b10429b", + "color.danger.surface-default": "7400f5d25c05c68ba9a039ed5b08c5562a5cd994", + "color.danger.surface-hover": "0561b7bcb37ce638403eb04b117734eec1ca5ca0", + "color.danger.surface-active": "caf64c5e05ab286bba71a178638717dc8e886702", + "color.danger.border-subtle": "36991a1abbb5fc74b52713fa4172e9c726ac8107", + "color.danger.border-default": "659c4d5adc45304a585ec470abeeee569e71e8be", + "color.danger.border-strong": "96718dd9d79684713bf62fd71673e5a684de4a11", + "color.danger.base-default": "625c866ee6cccefbd9b87e55949bfc3dfd5042f4", + "color.danger.base-hover": "77444f414064689dc36b09769f24e045c5fcb8f7", + "color.danger.base-active": "5900b4260bb4f15b0c61c084fadf02ce460ddd34", + "color.danger.text-subtle": "e5fd38d47890f34bbee7412cad76dc7b90243d20", + "color.danger.text-default": "33e5f472d3b5fe130205d3066717abbc28ce6d65", + "color.danger.contrast-default": "88f5cd336fe710432188750706bb00bac226a9ab", + "color.danger.contrast-subtle": "2fc3dcbb4218d387eece257a8b155ada3e029cf7", + "color.info.background-default": "02b63f18e8bbdcc0f0504fbee86ca9648b2deba4", + "color.info.background-subtle": "f718aca85f2448496c0dc530285c86a9f47f89fc", + "color.info.surface-default": "004c4e39590f3abb7450bc3df2b3c12c36d5b34e", + "color.info.surface-hover": "a68f7bef48ab04ccb2e7a745a616f7b538ab7f64", + "color.info.surface-active": "ae3e87f9597b0a64794006c45647c2732c56e1a9", + "color.info.border-subtle": "1ffe5b7397c8c48e8d0fb6fd0eeb59285b28f98e", + "color.info.border-default": "9fb559c8d69aafd6041b6adf27ee4b5150b23135", + "color.info.border-strong": "206eff3e32f6af6d26335a280d850158b755e2ec", + "color.info.base-default": "feb210508bae532bf42216079e751fc65f4da3d5", + "color.info.base-hover": "ecaef5c4585fc82252e08b16564edd49f9f062aa", + "color.info.base-active": "cc66305f6468e696f3a6c7979562297260246e54", + "color.info.text-subtle": "07dee568fa3099152d013b09cd5d402f65097ac1", + "color.info.text-default": "21ae56444ff058938849b5f5c08d03bb67bddc87", + "color.info.contrast-default": "068e1de6e216e5867756c595768cc19c88a72fb3", + "color.info.contrast-subtle": "311fee45f4dc4c1da777e8466a7804fc01e1cba0", + "color.warning.background-default": "8a24ea3a30c6e03949d6987a73d9edbe19845a63", + "color.warning.background-subtle": "886ac34f2b62bad18ff6d1db1d21b244de75d39a", + "color.warning.surface-default": "df6f221752893a5b07aec9a8bfe8daffc4f55701", + "color.warning.surface-hover": "36c1d0b22d55a954f09c871597c5b3452758c814", + "color.warning.surface-active": "48020179179256549802a6e6ec84c134a2311aad", + "color.warning.border-subtle": "ae15a8dcba3c24264c7dcc3384c225bcdf3cedf3", + "color.warning.border-default": "e9704a59f7b73f3d6ee23249f8060436bac2921b", + "color.warning.border-strong": "83e16e373c2ddcb3265848d8ba2420c5fe7381eb", + "color.warning.base-default": "def95b13b807f2f8b6202875cf419d0bb044d8e4", + "color.warning.base-hover": "c4ee486b084195feeb822eec2de63bfdec2652bb", + "color.warning.base-active": "31de29f6538369494931e147a88cd941ebe77927", + "color.warning.text-subtle": "7d85d91b3fbc7cb0749d7e928b305c74e62e69f0", + "color.warning.text-default": "11f3f1d983db49b036aacb16dc5d3ca5e0143da0", + "color.warning.contrast-default": "3d38f3079fb9fd155567ec24c7fde25f68c40f42", + "color.warning.contrast-subtle": "efb708d66f25610b35df2fe9bd9088e80e31a0a3", + "color.focus.inner": "1ec8f76f658042889b1eb4b08f3ce9bca1b7e603", + "color.focus.outer": "09e04f0bfff8fdc309db58a0131b5d07dae6b4f8" + }, + "group": "Semantic" + } +] \ No newline at end of file diff --git a/packages/cli/src/tokens/design-tokens/template/themes/theme.json b/packages/cli/src/tokens/design-tokens/template/themes/theme.json new file mode 100644 index 0000000000..365a71c363 --- /dev/null +++ b/packages/cli/src/tokens/design-tokens/template/themes/theme.json @@ -0,0 +1,334 @@ +{ + "color": { + "accent": { + "1": { + "$type": "color", + "$value": "{.accent.1}" + }, + "2": { + "$type": "color", + "$value": "{.accent.2}" + }, + "3": { + "$type": "color", + "$value": "{.accent.3}" + }, + "4": { + "$type": "color", + "$value": "{.accent.4}" + }, + "5": { + "$type": "color", + "$value": "{.accent.5}" + }, + "6": { + "$type": "color", + "$value": "{.accent.6}" + }, + "7": { + "$type": "color", + "$value": "{.accent.7}" + }, + "8": { + "$type": "color", + "$value": "{.accent.8}" + }, + "9": { + "$type": "color", + "$value": "{.accent.9}" + }, + "10": { + "$type": "color", + "$value": "{.accent.10}" + }, + "11": { + "$type": "color", + "$value": "{.accent.11}" + }, + "12": { + "$type": "color", + "$value": "{.accent.12}" + }, + "13": { + "$type": "color", + "$value": "{.accent.13}" + }, + "contrast-1": { + "$type": "color", + "$value": "{.accent.contrast-1}" + }, + "contrast-2": { + "$type": "color", + "$value": "{.accent.contrast-2}" + } + }, + "neutral": { + "1": { + "$type": "color", + "$value": "{.neutral.1}" + }, + "2": { + "$type": "color", + "$value": "{.neutral.2}" + }, + "3": { + "$type": "color", + "$value": "{.neutral.3}" + }, + "4": { + "$type": "color", + "$value": "{.neutral.4}" + }, + "5": { + "$type": "color", + "$value": "{.neutral.5}" + }, + "6": { + "$type": "color", + "$value": "{.neutral.6}" + }, + "7": { + "$type": "color", + "$value": "{.neutral.7}" + }, + "8": { + "$type": "color", + "$value": "{.neutral.8}" + }, + "9": { + "$type": "color", + "$value": "{.neutral.9}" + }, + "10": { + "$type": "color", + "$value": "{.neutral.10}" + }, + "11": { + "$type": "color", + "$value": "{.neutral.11}" + }, + "12": { + "$type": "color", + "$value": "{.neutral.12}" + }, + "13": { + "$type": "color", + "$value": "{.neutral.13}" + }, + "contrast-1": { + "$type": "color", + "$value": "{.neutral.contrast-1}" + }, + "contrast-2": { + "$type": "color", + "$value": "{.neutral.contrast-2}" + } + }, + "brand1": { + "1": { + "$type": "color", + "$value": "{.brand1.1}" + }, + "2": { + "$type": "color", + "$value": "{.brand1.2}" + }, + "3": { + "$type": "color", + "$value": "{.brand1.3}" + }, + "4": { + "$type": "color", + "$value": "{.brand1.4}" + }, + "5": { + "$type": "color", + "$value": "{.brand1.5}" + }, + "6": { + "$type": "color", + "$value": "{.brand1.6}" + }, + "7": { + "$type": "color", + "$value": "{.brand1.7}" + }, + "8": { + "$type": "color", + "$value": "{.brand1.8}" + }, + "9": { + "$type": "color", + "$value": "{.brand1.9}" + }, + "10": { + "$type": "color", + "$value": "{.brand1.10}" + }, + "11": { + "$type": "color", + "$value": "{.brand1.11}" + }, + "12": { + "$type": "color", + "$value": "{.brand1.12}" + }, + "13": { + "$type": "color", + "$value": "{.brand1.13}" + }, + "contrast-1": { + "$type": "color", + "$value": "{.brand1.contrast-1}" + }, + "contrast-2": { + "$type": "color", + "$value": "{.brand1.contrast-2}" + } + }, + "brand2": { + "1": { + "$type": "color", + "$value": "{.brand2.1}" + }, + "2": { + "$type": "color", + "$value": "{.brand2.2}" + }, + "3": { + "$type": "color", + "$value": "{.brand2.3}" + }, + "4": { + "$type": "color", + "$value": "{.brand2.4}" + }, + "5": { + "$type": "color", + "$value": "{.brand2.5}" + }, + "6": { + "$type": "color", + "$value": "{.brand2.6}" + }, + "7": { + "$type": "color", + "$value": "{.brand2.7}" + }, + "8": { + "$type": "color", + "$value": "{.brand2.8}" + }, + "9": { + "$type": "color", + "$value": "{.brand2.9}" + }, + "10": { + "$type": "color", + "$value": "{.brand2.10}" + }, + "11": { + "$type": "color", + "$value": "{.brand2.11}" + }, + "12": { + "$type": "color", + "$value": "{.brand2.12}" + }, + "13": { + "$type": "color", + "$value": "{.brand2.13}" + }, + "contrast-1": { + "$type": "color", + "$value": "{.brand2.contrast-1}" + }, + "contrast-2": { + "$type": "color", + "$value": "{.brand2.contrast-2}" + } + }, + "brand3": { + "1": { + "$type": "color", + "$value": "{.brand3.1}" + }, + "2": { + "$type": "color", + "$value": "{.brand3.2}" + }, + "3": { + "$type": "color", + "$value": "{.brand3.3}" + }, + "4": { + "$type": "color", + "$value": "{.brand3.4}" + }, + "5": { + "$type": "color", + "$value": "{.brand3.5}" + }, + "6": { + "$type": "color", + "$value": "{.brand3.6}" + }, + "7": { + "$type": "color", + "$value": "{.brand3.7}" + }, + "8": { + "$type": "color", + "$value": "{.brand3.8}" + }, + "9": { + "$type": "color", + "$value": "{.brand3.9}" + }, + "10": { + "$type": "color", + "$value": "{.brand3.10}" + }, + "11": { + "$type": "color", + "$value": "{.brand3.11}" + }, + "12": { + "$type": "color", + "$value": "{.brand3.12}" + }, + "13": { + "$type": "color", + "$value": "{.brand3.13}" + }, + "contrast-1": { + "$type": "color", + "$value": "{.brand3.contrast-1}" + }, + "contrast-2": { + "$type": "color", + "$value": "{.brand3.contrast-2}" + } + } + }, + "font": { + "family": { + "$type": "fontFamilies", + "$value": "{.main}" + } + }, + "font-weight": { + "medium": { + "$type": "fontWeights", + "$value": "{.bold}" + }, + "semibold": { + "$type": "fontWeights", + "$value": "{.extra-bold}" + }, + "regular": { + "$type": "fontWeights", + "$value": "{.regular}" + } + } +} \ No newline at end of file diff --git a/packages/cli/src/tokens/template.ts b/packages/cli/src/tokens/template.ts new file mode 100644 index 0000000000..504be9d855 --- /dev/null +++ b/packages/cli/src/tokens/template.ts @@ -0,0 +1,87 @@ +import fs from 'node:fs/promises'; +import path from 'node:path'; +import type { ThemeObject } from '@tokens-studio/types'; +import * as R from 'ramda'; +import { stringify } from './write'; + +const DIRNAME: string = import.meta.dirname || __dirname; + +const SOURCE_FILES_PATH = path.join(DIRNAME, '../../../../design-tokens'); +const DEFAULT_FILES_PATH = path.join(DIRNAME, './design-tokens/default'); +const TEMPLATE_FILES_PATH = path.join(DIRNAME, './design-tokens/template'); + +const argsFromToPaths = (path_: string): [string, string] => [ + path.join(SOURCE_FILES_PATH, path_), + path.join(DEFAULT_FILES_PATH, path_), +]; + +const options = { recursive: true }; + +const endsWithOneOf = (suffixes: string[], str: string): boolean => + R.any((suffix: string) => R.endsWith(suffix, str), suffixes); + +export const updateTemplates = async () => { + // Copy default files + await fs.cp(...argsFromToPaths('Figma'), options); + await fs.cp(...argsFromToPaths('primitives/globals.json'), options); + await fs.cp(...argsFromToPaths('primitives/size/default.json'), options); + await fs.cp(...argsFromToPaths('semantic'), options); + + // Copy template files + const themeFile = await fs.readFile(path.join(SOURCE_FILES_PATH, 'themes/theme.json'), 'utf-8'); + const themeTemplate = themeFile.replaceAll('theme', ''); + await fs.mkdir(path.join(TEMPLATE_FILES_PATH, 'themes'), options); + await fs.writeFile(path.join(TEMPLATE_FILES_PATH, `themes/theme.json`), themeTemplate); + + const themesFile = await fs.readFile(path.join(SOURCE_FILES_PATH, '$themes.json'), 'utf-8'); + const themesTemplate = (JSON.parse(themesFile) as ThemeObject[]) + .filter((themeobj) => { + // Remove compact size + if (R.toLower(themeobj.name) === 'compact' && R.toLower(themeobj.group || '') === 'size') { + return false; + } + + // Pick theme to use as template + if (R.toLower(themeobj.name) !== 'digdir' && R.toLower(themeobj.group || '') === 'theme') { + return false; + } + + return true; + }) + .map((themeobj) => { + if (R.toLower(themeobj.name) === 'digdir') { + return { + ...themeobj, + name: '', + selectedTokenSets: { + 'themes/': 'enabled', + }, + }; + } + return themeobj; + }); + + await fs.writeFile(path.join(TEMPLATE_FILES_PATH, `$themes.json`), stringify(themesTemplate)); + + const metadataFile = await fs.readFile(path.join(SOURCE_FILES_PATH, '$metadata.json'), 'utf-8'); + const tokenSetOrderTemplate = (JSON.parse(metadataFile) as { tokenSetOrder: string[] }).tokenSetOrder + .filter((tokenSet) => { + if (endsWithOneOf(['theme2', 'theme3', 'theme4'], tokenSet)) { + return false; + } + return true; + }) + .map((tokenSet) => { + if (endsWithOneOf(['theme'], tokenSet)) { + return tokenSet.replace('/theme', '/'); + } + return tokenSet; + }); + + await fs.writeFile( + path.join(TEMPLATE_FILES_PATH, `$metadata.json`), + stringify({ tokenSetOrder: tokenSetOrderTemplate }), + ); +}; + +updateTemplates(); diff --git a/packages/cli/src/tokens/types.ts b/packages/cli/src/tokens/types.ts index ef5698d253..b8074b4b6f 100644 --- a/packages/cli/src/tokens/types.ts +++ b/packages/cli/src/tokens/types.ts @@ -1,9 +1,15 @@ import type { CssColor } from '@adobe/leonardo-contrast-colors'; import type { ThemeColors } from '../colors/types.js'; +export type Token = { $value: string; $type: string }; +export type Tokens1ary = Record; +export type Tokens2ary = Record; +export type Tokens3ary = Record>; +export type TokensSet = Tokens1ary | Tokens2ary | Tokens3ary; + export type ColorModeTokens = { - theme: TokensSet; global: TokensSet; + [key: string]: TokensSet; }; // Define types for typography tokens @@ -31,10 +37,4 @@ export type File = { filePath: string; }; -export type Token = { $value: string; $type: string }; -export type Tokens1ary = Record; -export type Tokens2ary = Record; -export type Tokens3ary = Record>; -export type TokensSet = Tokens1ary | Tokens2ary | Tokens3ary; - -export type Collection = 'theme' | 'global'; +export type Collection = string | 'global'; diff --git a/packages/cli/src/tokens/write.ts b/packages/cli/src/tokens/write.ts index a81a8f34e0..a8630bd240 100644 --- a/packages/cli/src/tokens/write.ts +++ b/packages/cli/src/tokens/write.ts @@ -1,5 +1,7 @@ import fs from 'node:fs/promises'; import path from 'node:path'; +import type { ThemeObject } from '@tokens-studio/types'; +import chalk from 'chalk'; import * as R from 'ramda'; import type { ColorMode } from '../colors/types.js'; import type { Collection, File, Tokens, TokensSet, TypographyModes } from './types.js'; @@ -7,12 +9,15 @@ import { generateMetadataJson } from './write/generate$metadata.js'; import { generateThemesJson } from './write/generate$themes.js'; const DIRNAME: string = import.meta.dirname || __dirname; -const DEFAULT_FILES_PATH = path.join(DIRNAME, '../../init/template/default-files/design-tokens/'); +const DEFAULT_FILES_PATH = path.join(DIRNAME, './design-tokens/default'); +const TEMPLATE_FILES_PATH = path.join(DIRNAME, './design-tokens/template/'); + +export const stringify = (data: unknown) => JSON.stringify(data, null, 2); const generateColorModeFile = (folder: ColorMode, name: Collection, tokens: TokensSet, outPath: string): File => { const path = `${outPath}/primitives/modes/colors/${folder}`; return { - data: JSON.stringify(tokens, null, 2), + data: stringify(tokens), path, filePath: `${path}/${name}.json`, }; @@ -26,45 +31,77 @@ const generateTypographyFile = ( ): File => { const path = `${outPath}/primitives/modes/typography/${folder}`; return { - data: JSON.stringify(tokens, null, 2), + data: stringify(tokens), path, filePath: `${path}/${name}.json`, }; }; -export const writeTokens = async (writeDir: string, tokens: Tokens) => { +type WriteTokensOptions = { + writeDir: string; + tokens: Tokens; + themeName: string; +}; + +export const writeTokens = async (options: WriteTokensOptions) => { + const { writeDir, tokens, themeName } = options; const targetDir = path.resolve(process.cwd(), String(writeDir)); + const $themesPath = path.join(targetDir, '$themes.json'); + const $metadataPath = path.join(targetDir, '$metadata.json'); + let themes = [themeName]; + await fs.mkdir(targetDir, { recursive: true }); - // Generate metadata and themes json for Token Studio and build script - console.log('Generating metadata and themes files'); - const $theme = generateThemesJson(['light', 'dark', 'contrast'], ['theme']); - const $metadata = generateMetadataJson(['light', 'dark', 'contrast'], ['theme']); + try { + // Update with existing themes + const $themes = await fs.readFile($themesPath, 'utf-8'); + const themeObjects = (JSON.parse($themes) as ThemeObject[]) || []; + themes = R.pipe( + R.filter((obj: ThemeObject) => R.toLower(obj.group || '') === 'theme'), + R.map(R.prop('name')), + R.append(themeName), + R.uniq, + )(themeObjects) as string[]; + } catch (error) {} - await fs.writeFile(path.join(targetDir, '$themes.json'), JSON.stringify($theme, null, 2)); - await fs.writeFile(path.join(targetDir, '$metadata.json'), JSON.stringify($metadata, null, 2)); + console.log(`Themes: ${chalk.blue(themes.join(', '))}`); - console.log(`Copying default files to ${targetDir}`); + // Create metadata and themes json for Token Studio and build script + const $theme = generateThemesJson(['light', 'dark', 'contrast'], themes); + const $metadata = generateMetadataJson(['light', 'dark', 'contrast'], themes); + + await fs.writeFile($themesPath, stringify($theme)); + await fs.writeFile($metadataPath, stringify($metadata)); + + // Copy default files await fs.cp(DEFAULT_FILES_PATH, targetDir, { recursive: true, }); + // Create themes file + await fs.mkdir(path.join(targetDir, 'themes'), { recursive: true }); + const themeTemplate = await fs.readFile(path.join(TEMPLATE_FILES_PATH, `themes/theme.json`), 'utf-8'); + await fs.writeFile(path.join(targetDir, `themes/${themeName}.json`), themeTemplate.replaceAll('', themeName)); + const files: File[] = [ - generateColorModeFile('light', 'theme', tokens.colors.light.theme, targetDir), + generateColorModeFile('light', themeName, tokens.colors.light[themeName], targetDir), generateColorModeFile('light', 'global', tokens.colors.light.global, targetDir), - generateColorModeFile('dark', 'theme', tokens.colors.dark.theme, targetDir), + generateColorModeFile('dark', themeName, tokens.colors.dark[themeName], targetDir), generateColorModeFile('dark', 'global', tokens.colors.dark.global, targetDir), - generateColorModeFile('contrast', 'theme', tokens.colors.contrast.theme, targetDir), + generateColorModeFile('contrast', themeName, tokens.colors.contrast[themeName], targetDir), generateColorModeFile('contrast', 'global', tokens.colors.contrast.global, targetDir), - generateTypographyFile('primary', 'theme', tokens.typography.primary, targetDir), - generateTypographyFile('secondary', 'theme', tokens.typography.primary, targetDir), + generateTypographyFile('primary', themeName, tokens.typography.primary, targetDir), + generateTypographyFile('secondary', themeName, tokens.typography.primary, targetDir), ]; for (const file of files) { const dirPath = path.resolve(file.path); const filePath = path.resolve(file.filePath); - console.log(`Writing file ${filePath}`); await fs.mkdir(dirPath, { recursive: true }); await fs.writeFile(filePath, file.data, { encoding: 'utf-8' }); } + + console.log( + `Finished creating Designsystem design tokens in ${chalk.green(writeDir)} for theme ${chalk.blue(themeName)}`, + ); }; diff --git a/packages/cli/src/tokens/write/generate$metadata.ts b/packages/cli/src/tokens/write/generate$metadata.ts index bf085a3a34..59ca0f1dee 100644 --- a/packages/cli/src/tokens/write/generate$metadata.ts +++ b/packages/cli/src/tokens/write/generate$metadata.ts @@ -11,8 +11,8 @@ export function generateMetadataJson(modes: ColorModes, themes: string[]): Metad tokenSetOrder: [ 'primitives/globals', 'primitives/size/default', - 'primitives/modes/typography/primary/theme', - 'primitives/modes/typography/secondary/theme', + ...themes.map((theme) => `primitives/modes/typography/primary/${theme}`), + ...themes.map((theme) => `primitives/modes/typography/secondary/${theme}`), ...modes.flatMap((mode) => [ `primitives/modes/colors/${mode}/global`, ...themes.map((theme) => `primitives/modes/colors/${mode}/${theme}`), diff --git a/packages/cli/src/tokens/write/generate$themes.ts b/packages/cli/src/tokens/write/generate$themes.ts index 02073ceb94..5c4c814b4a 100644 --- a/packages/cli/src/tokens/write/generate$themes.ts +++ b/packages/cli/src/tokens/write/generate$themes.ts @@ -1,20 +1,23 @@ +import crypto from 'node:crypto'; + import { type ThemeObject, TokenSetStatus } from '@tokens-studio/types'; import type { ColorMode } from '../../colors/types.js'; -const createHash = (text: string) => { - let hash = 0; - for (let i = 0; i < text.length; i += 1) { - const chr = text.charCodeAt(i); - hash = (hash << 5) - hash + chr; - hash |= 0; - } - return (hash + 2147483648).toString(16); -}; +import * as R from 'ramda'; + +const capitalize = (word: string) => word.charAt(0).toUpperCase() + word.slice(1); + +const createHash = (text: string) => crypto.hash('sha1', text); type ColorModes = Array; -export function generateThemesJson(modes: ColorModes, themes: string[]): ThemeObject[] { +type ThemeObject_ = ThemeObject & { + $figmaCollectionId?: string; + $figmaModeId?: string; +}; + +export function generateThemesJson(modes: ColorModes, themes: string[]): ThemeObject_[] { return [ ...generateSizeGroup(), ...generateThemesGroup(themes), @@ -24,11 +27,12 @@ export function generateThemesJson(modes: ColorModes, themes: string[]): ThemeOb ]; } -function generateSizeGroup(): ThemeObject[] { +function generateSizeGroup(): ThemeObject_[] { return [ { id: '8b2c8cc86611a34b135cb22948666779361fd729', - name: 'default', + name: 'Default', + $figmaCollectionId: 'VariableCollectionId:36248:20757', selectedTokenSets: { 'primitives/size/default': TokenSetStatus.ENABLED, }, @@ -37,17 +41,34 @@ function generateSizeGroup(): ThemeObject[] { ]; } -const modeIds: Record = { - light: '0daa3ca0b427b9349da7e7dc00101b5668972926', - dark: '9ebd8aed52afbffc17e2666e8b4653a53498b257', - contrast: '9ebd8aed52afbffc17e2666e8b4653a53498b123', +const modeDefaults: Record = { + light: { + name: 'Light', + selectedTokenSets: {}, + id: '0daa3ca0b427b9349da7e7dc00101b5668972926', + $figmaCollectionId: 'VariableCollectionId:34811:5472', + $figmaModeId: '34811:0', + }, + dark: { + name: 'Dark', + selectedTokenSets: {}, + id: '9ebd8aed52afbffc17e2666e8b4653a53498b257', + $figmaCollectionId: 'VariableCollectionId:34811:5472', + $figmaModeId: '34811:1', + }, + contrast: { + name: 'Contrast', + selectedTokenSets: {}, + id: '9ebd8aed52afbffc17e2666e8b4653a53498b123', + $figmaCollectionId: 'VariableCollectionId:34811:5472', + $figmaModeId: '34811:2', + }, }; -function generateModesGroup(modes: Array, themes: string[]): ThemeObject[] { +function generateModesGroup(modes: Array, themes: string[]): ThemeObject_[] { return modes.map( - (mode): ThemeObject => ({ - id: modeIds[mode], - name: mode, + (mode): ThemeObject_ => ({ + ...modeDefaults[mode], selectedTokenSets: Object.fromEntries([ [`primitives/modes/colors/${mode}/global`, TokenSetStatus.ENABLED], ...themes.map((theme) => [`primitives/modes/colors/${mode}/${theme}`, TokenSetStatus.ENABLED]), @@ -57,10 +78,12 @@ function generateModesGroup(modes: Array, themes: string[]): ThemeObj ); } -function generateThemesGroup(themes: string[]): ThemeObject[] { +function generateThemesGroup(themes: string[]): ThemeObject_[] { return themes.map( - (theme): ThemeObject => ({ + (theme, index): ThemeObject_ => ({ id: createHash(theme), + $figmaCollectionId: 'VariableCollectionId:36329:62335', + $figmaModeId: `36329:${index + 4}`, // Start on 4 in Token Studio and Community file for some reason name: theme, selectedTokenSets: { [`themes/${theme}`]: TokenSetStatus.ENABLED, @@ -70,7 +93,7 @@ function generateThemesGroup(themes: string[]): ThemeObject[] { ); } -function generateSemanticGroup(): ThemeObject { +function generateSemanticGroup(): ThemeObject_ { return { id: '541629445ef90ad5363f9e88f52a1ccb617e6f84', name: 'Semantic', @@ -83,10 +106,12 @@ function generateSemanticGroup(): ThemeObject { }; } -function generateTypographyGroup(themes: string[]): ThemeObject[] { +function generateTypographyGroup(themes: string[]): ThemeObject_[] { return [ { id: '368d753fcac4455f289500eaa42e70dc0a03522f', + $figmaCollectionId: 'VariableCollectionId:36248:20769', + $figmaModeId: '36248:2', name: 'Primary', selectedTokenSets: Object.fromEntries( themes.map((theme) => [`primitives/modes/typography/primary/${theme}`, TokenSetStatus.ENABLED]), @@ -95,6 +120,8 @@ function generateTypographyGroup(themes: string[]): ThemeObject[] { }, { id: '264b8bd1d40b364e1ea3acf09e49795ddd4c513c', + $figmaCollectionId: 'VariableCollectionId:36248:20769', + $figmaModeId: '36248:3', name: 'Secondary', selectedTokenSets: Object.fromEntries( themes.map((theme) => [`primitives/modes/typography/secondary/${theme}`, TokenSetStatus.ENABLED]),