@commercetools-frontend/ui-kit
Version:
A preset of all the UI-Kit components.
434 lines (417 loc) • 15.6 kB
YAML
# This file contains our design tokens.
#
# The tokens are formed by first establishing the choices we offer for our
# design system. Those are things like which colors are we using,
# which border radius, spacing, shadows and so on.
#
# The file also lists the states and component groups for which we apply design
# tokens. The explicit list of states aims to prevent diversion, e.g. by using
# both "-hover" and "-hovered".
#
# Next are the decisions. Decisions take a choice and apply it to a certain
# component group and state. For example, we can make the decision to use
# the choice "color-primary" for the attribute border-color for the component
# group "input" in the state "active". Note that for decisions, the component
# group and state are optional.
#
# A more in-depth explanation can be found in the README of the token story in
# Storybook at uikit.commercetools.com.
#
#
# Run "node scripts/generate-design-tokens" to generate `materials/design-tokens`
# files in different format (css, json, js, ...).
#
# The names of decisions in this file need to follow this format:
# <attribute>-for-<component-group>
# <attribute>-for-<component-group>-as-<variant>
# <attribute>-for-<component-group>-when-<state>-
# <attribute>-for-<component-group>-as-<variant>-when-<state>
# <attribute>-for-<component-group>-as-<variant>-as-<variant>-
# <attribute>-for-<component-group>-as-<variant>-as-<variant>-when-<state>-
choiceGroupsByTheme:
default:
colors:
label: Colors
prefix: color
description: All colors in the system
choices:
color-primary: 'hsl(240, 64%, 58%)'
color-primary-10: 'hsl(240, 66%, 19%)'
color-primary-20: 'hsl(240, 45%, 33%)'
color-primary-25: 'hsl(240, 46%, 48%)'
color-primary-30: 'hsl(240, 46%, 53%)'
color-primary-40: 'hsl(240, 100%, 67%)'
color-primary-85: 'hsl(244, 100%, 84%)'
color-primary-90: 'hsl(243, 100%, 93%)'
color-primary-95: 'hsl(244, 100%, 97%)'
color-primary-98: 'hsl(244, 100%, 99%)'
color-accent: '#213c45'
color-accent-10: 'hsl(195, 100%, 10%)'
color-accent-20: 'hsl(195, 80%, 20%)'
color-accent-30: 'hsl(195, 70%, 30%)'
color-accent-40: 'hsl(195, 70%, 40%)'
color-accent-50: 'hsl(195, 70%, 50%)'
color-accent-60: 'hsl(195, 70%, 60%)'
color-accent-85: 'hsl(195, 85%, 85%)'
color-accent-90: 'hsl(195, 90%, 90%)'
color-accent-95: 'hsl(195, 95%, 95%)'
color-accent-98: 'hsl(195, 100%, 98%)'
color-brown-10: 'hsl(41, 100%, 10%)'
color-brown-20: 'hsl(41, 100%, 20%)'
color-brown-35: 'hsl(41, 96%, 30%)'
color-brown-50: 'hsl(41, 95%, 44%)'
color-brown-70: 'hsl(47, 95%, 70%)'
color-brown-85: 'hsl(47, 100%, 85%)'
color-brown-90: 'hsl(47, 100%, 90%)'
color-brown-95: 'hsl(47, 100%, 95%)'
color-brown-98: 'hsl(48, 100%, 97%)'
color-purple-10: 'hsl(248, 88%, 10%)'
color-purple-20: 'hsl(248, 50%, 20%)'
color-purple-35: 'hsl(248, 25%, 35%)'
color-purple-50: 'hsl(248, 64%, 58%)'
color-purple-70: 'hsl(248, 80%, 70%)'
color-purple-85: 'hsl(249, 100%, 85%)'
color-purple-90: 'hsl(248, 100%, 90%)'
color-purple-95: 'hsl(248, 100%, 95%)'
color-purple-98: 'hsl(246, 100%, 98%)'
color-turquoise-10: 'hsl(180, 88%, 10%)'
color-turquoise-20: 'hsl(180, 90%, 20%)'
color-turquoise-35: 'hsl(178, 88%, 25%)'
color-turquoise-50: 'hsl(178, 67%, 50%)'
color-turquoise-70: 'hsl(180, 75%, 70%)'
color-turquoise-85: 'hsl(180, 90%, 85%)'
color-turquoise-90: 'hsl(180, 88%, 90%)'
color-turquoise-95: 'hsl(180, 88%, 95%)'
color-turquoise-98: 'hsl(180, 100%, 98%)'
color-neutral: 'hsl(232, 18%, 80%)'
color-neutral-05: 'hsl(0deg 0% 80% / 5%)'
color-neutral-10: 'hsl(0deg 0% 80% / 10%)'
color-neutral-40: 'hsl(232, 18%, 40%)'
color-neutral-50: 'hsl(233, 18%, 50%)'
color-neutral-60: 'hsl(232, 18%, 60%)'
color-neutral-85: 'hsl(232, 18%, 85%)'
color-neutral-90: 'hsl(232, 18%, 90%)'
color-neutral-95: 'hsl(232, 18%, 95%)'
color-neutral-98: 'hsl(232, 18%, 98%)'
color-info: '#078cdf'
color-info-40: 'hsl(203, 94%, 35%)'
color-info-50: 'hsl(203.05555555555554, 93.9130434783%, 50%)'
color-info-60: 'hsl(203.05555555555554, 93.9130434783%, 60%)'
color-info-85: 'hsl(203.05555555555554, 93.9130434783%, 85%)'
color-info-90: '#CEEBFD'
color-info-95: 'hsl(203.05555555555554, 93.9130434783%, 95%)'
color-warning: 'hsl(35, 90%, 45%)'
color-warning-25: 'hsl(33, 83%, 25%)'
color-warning-40: 'hsl(33, 80%, 34%)'
color-warning-60: 'hsl(35, 90%, 55%)'
color-warning-85: 'hsl(33, 90%, 80%)'
color-warning-95: 'hsl(45, 100%, 92%)'
color-error: 'hsl(3, 65%, 58%)'
color-error-25: 'hsl(4, 69%, 37%)'
color-error-40: 'hsl(3, 60%, 46%)'
color-error-85: 'hsl(1, 55%, 74%)'
color-error-95: 'hsl(349, 66%, 92%)'
color-solid: '#1a1a1a'
color-solid-02: 'hsl(0deg 0% 10% / 2%)'
color-solid-05: 'hsl(0deg 0% 10% / 5%)'
color-solid-10: 'hsl(0deg 0% 10% / 10%)'
color-surface: '#fff'
color-transparent: 'transparent'
color-success: 'hsl(152, 77%, 39%)'
color-success-25: 'hsl(155, 84%, 20%)'
color-success-40: 'hsl(155, 90%, 24%)'
color-success-85: 'hsl(144, 69%, 80%)'
color-success-95: 'hsl(141, 76%, 92%)'
borderRadiuses:
label: Border Radiuses
prefix: border-radius
choices:
border-radius-1: 1px
border-radius-2: 2px
border-radius-4: 4px
border-radius-6: 6px
border-radius-8: 8px
border-radius-20: 20px
borderWidths:
label: Border Widths
prefix: border-width
choices:
border-width-1: 1px
border-width-2: 2px
fontFamilies:
label: Font families
prefix: font-family
choices:
font-family: "'Inter', system-ui"
fontSizes:
label: Font sizes
prefix: font-size
choices:
font-size-10: '0.75rem'
font-size-12: '0.8rem'
font-size-20: '0.875rem'
font-size-30: '1rem'
font-size-40: '1.125rem'
font-size-50: '1.25rem'
font-size-60: '1.5rem'
font-size-70: '2rem'
font-size-80: '2.5rem'
font-size-90: '3rem'
# These font sizes are in rems based on a root font-size of 13px and they will be removed when we replace the default theme.
font-size-15: '0.9231rem'
font-size-35: '1.0769rem'
font-size-45: '1.2308rem'
font-size-63: '1.5385rem'
font-size-66: '1.8462rem'
font-size-69: '2.4615rem'
font-size-78: '3rem'
fontWeights:
label: Font weights
prefix: font-weight
choices:
font-weight-300: '300'
font-weight-400: '400'
font-weight-500: '500'
font-weight-600: '600'
font-weight-700: '700'
lineHeights:
label: Line heights
prefix: line-height
choices:
line-height-05: '1.125rem'
line-height-10: '1.25rem'
line-height-18: '1.3rem'
line-height-20: '1.375rem'
line-height-30: '1.5rem'
line-height-40: '1.625rem'
line-height-50: '1.75rem'
line-height-60: '2.125rem'
shadows:
label: Shadows
prefix: shadow
choices:
shadow-0: 'none'
shadow-1: '0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24)'
shadow-2: '0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23)'
shadow-3: '0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23)'
shadow-4: '0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22)'
shadow-5: '0 19px 38px rgba(0, 0, 0, 0.3), 0 15px 12px rgba(0, 0, 0, 0.22)'
shadow-6: '0 -1px 2px 0 rgba(0, 0, 0, 0.2)'
shadow-7: '0 -1px 1.5px 0 rgba(0, 0, 0, 0.12), 0 1px 1px 0 rgba(0, 0, 0, 0.24)'
shadow-8: '0 1px 9.5px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.24)'
shadow-9: 'inset 0 -1px 3px 0 rgba(0, 0, 0, 0.1), inset 0 1px 1.5px 0 rgba(0, 0, 0, 0.2), inset 0 1px 1.5px 0 rgba(0, 0, 0, 0.25)'
shadow-10: '0 0 0 1px rgba(224, 230, 237, 0.5)'
shadow-11: '0 1px 0.5px rgba(0, 0, 0, 0.24), 0 -1px 0.75px rgba(0, 0, 0, 0.12)'
shadow-12: '0 0 1px rgba(0, 0, 0, 0.25)'
shadow-13: '0 0 1px rgba(0, 0, 0, 0.25)'
shadow-14: '0 0 0.5px rgba(0, 0, 0, 0.1)'
shadow-15: '0 2px 2px rgba(0, 0, 0, 0.24), 0 1px 4.75px rgba(0, 0, 0, 0.12)'
shadow-16: '0.5px 1.5px 4px 1px rgba(0, 0, 0, 0.25), -0.5px -0.5px 4px 1px rgba(0, 0, 0, 0.25)'
shadow-17: '0 1px 5px 0 rgba(0, 0, 0, 0.05)'
shadow-18: '0 5px 30px 0px rgba(0, 0, 0, 0.1)'
constraints:
label: Constraints
prefix: constraint
choices:
constraint-scale: 100%
constraint-1: 42px
constraint-2: 84px
constraint-3: 142px
constraint-4: 184px
constraint-5: 242px
constraint-6: 284px
constraint-7: 342px
constraint-8: 384px
constraint-9: 442px
constraint-10: 484px
constraint-11: 542px
constraint-12: 584px
constraint-13: 642px
constraint-14: 684px
constraint-15: 742px
constraint-16: 784px
spacings:
label: Spacings
prefix: spacing
choices:
# Legacy deprecated tokens
# TODO: Remove these tokens after no consumers are using them
spacing-xs: 4px
spacing-s: 8px
spacing-m: 16px
spacing-l: 24px
spacing-xl: 32px
# New tokens
spacing-05: 2px
spacing-10: 4px
spacing-20: 8px
spacing-25: 12px
spacing-30: 16px
spacing-40: 24px
spacing-50: 32px
spacing-55: 40px
spacing-60: 48px
spacing-70: 64px
transitions:
label: Transitions
prefix: transition
choices:
transition-linear-80ms: '80ms linear'
transition-easeinout-150ms: '150ms ease-in-out'
transition-standard: '200ms ease'
breakpoints:
label: Breakpoints
prefix: break-point
choices:
break-point-mobile: 768px
break-point-desktop: 1024px
break-point-biggerdesktop: 1280px
break-point-giantdesktop: 1680px
break-point-jumbodesktop: 1920px
states:
active:
description: 'Trigged while the user is currently interacting with the element'
hovered:
description: 'When the mouse is over the element'
disabled:
description: 'When the element can not be interacted with'
focused:
description: 'When the element is currently selected to receive input'
readonly:
description: 'When the element can not be modified'
warning:
description: 'When the element shows a warning state'
success:
description: 'When the element has a successful state'
error:
description: 'When the element has invalid input'
variants:
small:
description: 'To differentiate component small size'
medium:
description: 'To differentiate component medium size'
big:
description: 'To differentiate component big size'
secondary:
description: 'To differentiate component secondary type'
tertiary:
description: 'To differentiate component tertiary type'
'10':
description: 'To differentiate component small size'
'20':
description: 'To differentiate component medium size'
'30':
description: 'To differentiate component between big and medium size'
'40':
description: 'To differentiate component big size'
componentGroups:
button:
description: 'Button elements'
input:
description: 'Input elements'
localized-input-label:
description: 'Localized multiline text input label elements'
decisionGroupsByTheme:
default:
backgroundColors:
label: Background Colors
prefix: background-color
decisions:
background-color-for-input:
choice: color-surface
background-color-for-input-when-disabled:
choice: color-neutral-95
background-color-for-input-when-readonly:
choice: color-neutral-95
background-color-for-input-when-hovered:
choice: color-primary-98
background-color-for-localized-input-label:
choice: color-surface
background-color-for-localized-input-label-when-readonly:
choice: color-neutral-95
background-color-for-localized-input-label-when-disabled:
choice: color-neutral-95
background-color-for-button-when-active:
choice: color-primary-90
background-color-for-button-when-hovered:
choice: color-primary-95
background-color-for-button-when-disabled:
choice: color-neutral-95
borderColors:
label: Border Colors
prefix: border-color
decisions:
border-color-for-input:
choice: color-neutral
border-color-for-input-when-disabled:
choice: color-neutral
border-color-for-input-when-readonly:
choice: color-surface
border-color-for-input-when-error:
choice: color-error
border-color-for-input-when-warning:
choice: color-warning
border-color-for-input-when-hovered:
choice: color-neutral
border-color-for-input-when-focused:
choice: color-primary-40
border-color-for-button-as-secondary:
choice: color-primary-85
borderRadiuses:
label: Border Radius
prefix: border-radius
decisions:
border-radius-for-input:
choice: border-radius-4
fontColors:
label: Font Colors
prefix: font-color
decisions:
font-color-for-input:
choice: color-solid
font-color-for-input-when-disabled:
choice: color-neutral-60
font-color-for-input-when-error:
choice: color-error-40
font-color-for-input-when-readonly:
choice: color-neutral-40
font-color-for-input-when-warning:
choice: color-warning
font-color-for-button-as-secondary:
choice: color-primary
heights:
label: Height
prefix: height
decisions:
height-for-button-as-big:
choice: '40px'
height-for-button-as-small:
choice: '16px'
height-for-button-as-medium:
choice: '32px'
height-for-button-as-40:
choice: '40px'
height-for-button-as-30:
choice: '32px'
height-for-button-as-20:
choice: '24px'
height-for-button-as-10:
choice: '16px'
height-for-input:
choice: '40px'
# This is a temporary one to be able to remove the legay 'size-height-for-input'
height-for-input-as-small:
choice: '32px'
description: 'Legacy token to be removed'
shadows:
label: Shadows
prefix: shadow
decisions:
shadow-for-input:
choice: shadow-0
shadow-for-input-when-focused:
choice: 'inset 0 0 0 1px var(--color-primary)'
shadow-for-input-when-error:
choice: 'inset 0 0 0 1px var(--color-error)'
shadow-for-input-when-warning:
choice: 'inset 0 0 0 1px var(--color-warning)'