UNPKG

@sanity/ui

Version:

The Sanity UI components.

184 lines (178 loc) 3.62 kB
import {ThemeColorTokens} from '../config' import {buildColorTheme} from './buildColorTheme' test('buildColorTheme: base', () => { const {light, dark} = buildColorTheme({ color: { base: { '*': { bg: ['50', '900'], fg: ['800', '200'], }, 'transparent': { bg: ['50', 'black'], }, 'default': { bg: ['white', '950'], fg: ['black', '200'], }, 'primary': { _hue: 'purple', }, 'positive': { _hue: 'cyan', }, 'caution': { _hue: 'yellow', }, 'critical': { _hue: 'red', }, }, }, }) expect({ light: { transparent: { bg: light.transparent.bg, fg: light.transparent.fg, }, default: { bg: light.default.bg, fg: light.default.fg, }, primary: { bg: light.primary.bg, fg: light.primary.fg, }, }, dark: { transparent: { bg: dark.transparent.bg, fg: dark.transparent.fg, }, default: { bg: dark.default.bg, fg: dark.default.fg, }, primary: { bg: dark.primary.bg, fg: dark.primary.fg, }, }, }).toEqual({ light: { transparent: { bg: 'gray/50', fg: 'gray/800', }, default: { bg: 'white', fg: 'black', }, primary: { bg: 'purple/50', fg: 'purple/800', }, }, dark: { transparent: { bg: 'black', fg: 'gray/200', }, default: { bg: 'gray/950', fg: 'gray/200', }, primary: { bg: 'purple/900', fg: 'purple/200', }, }, }) }) test('buildColorTheme: button', () => { const tokens: ThemeColorTokens = { base: { '*': { bg: ['50', '900'], fg: ['800', '200'], }, 'transparent': { bg: ['50', 'black'], }, 'default': { bg: ['white', '950'], fg: ['black', '200'], }, 'primary': { _hue: 'purple', }, 'positive': { _hue: 'cyan', }, 'caution': { _hue: 'yellow', }, 'critical': { _hue: 'red', }, }, button: { default: { '*': { '*': { bg: ['500', '400'], fg: ['white', 'black'], }, 'hovered': { bg: ['600', '300'], }, }, }, }, } const {dark, light} = buildColorTheme({color: tokens}) expect({ light: { enabled: { bg: light.default.button.default.primary.enabled.bg, fg: light.default.button.default.primary.enabled.fg, }, hovered: { bg: light.default.button.default.primary.hovered.bg, fg: light.default.button.default.primary.hovered.fg, }, }, dark: { enabled: { bg: dark.default.button.default.primary.enabled.bg, fg: dark.default.button.default.primary.enabled.fg, }, hovered: { bg: dark.default.button.default.primary.hovered.bg, fg: dark.default.button.default.primary.hovered.fg, }, }, }).toEqual({ light: { enabled: { bg: 'purple/500', fg: 'white', }, hovered: { bg: 'purple/600', fg: 'white', }, }, dark: { enabled: { bg: 'purple/400', fg: 'black', }, hovered: { bg: 'purple/300', fg: 'black', }, }, }) })