chromium/ui/chromeos/styles/cros_sys_colors.json5

/* Copyright 2022 The Chromium Authors
 * Use of this source code is governed by a BSD_style license that can be
 * found in the LICENSE file. */

/*
 * cros.sys Color Tokens
 *
 * High level color semantics for ChromeOS.
 */
{
  token_namespace: 'cros.sys',
  options: {
    ColorMappings: {
      set_name: 'CrosSys',
    },
    proto: {
      field_name: 'palette_colors',
      field_id: 1,
    },
  },
  legacy_mappings: {
    'cros-color-primary' : '$cros.sys.on-surface',
    'cros-color-secondary' : '$cros.sys.secondary',
    'cros-color-prominent' : '$cros.sys.primary',
    'cros-color-disabled' : '$cros.sys.disabled',
    'cros-text-color-secondary': '$cros.sys.on-surface-variant',
    'cros-bg-color' : '$cros.sys.app-base',
    'cros-bg-color-elevation-1' : '$cros.sys.base-elevated',
    'cros-bg-color-elevation-2' : '$cros.sys.base-elevated',
    'cros-bg-color-elevation-3' : '$cros.sys.base-elevated',
    'cros-bg-color-elevation-4' : '$cros.sys.base-elevated',
    'cros-bg-color-elevation-5' : '$cros.sys.base-elevated',
    'cros-bg-color-dropped-elevation1' : '$cros.sys.app-base-shaded',
    'cros-bg-color-dropped-elevation2' : '$cros.sys.app-base-shaded',
    'cros-ripple-color' : '$cros.sys.hover-on-prominent',
    'cros-ripple-color-prominent' : '$cros.sys.ripple-primary',
    'cros-separator-color' : '$cros.sys.separator',
    'cros-link-color' : '$cros.sys.primary',
    'cros-app-scrollbar-color' : '$cros.sys.scrollbar',
    'cros-app-scrollbar-color-hover' : '$cros.sys.scrollbar-hover',
    'cros-app-shield-color' : '$cros.sys.scrim',
    'cros-app-shield20' : '$cros.sys.scrim',
    'cros-app-shield40' : '$cros.sys.scrim',
    'cros-app-shield60' : '$cros.sys.scrim',
    'cros-app-shield80' : '$cros.sys.scrim',
    'cros-highlight-color' : '$cros.sys.highlight-shape',
    'cros-highlight-color-hover' : '$cros.sys.hover-on-subtle',
    'cros-highlight-color-focus' : '$cros.sys.ripple-neutral-on-subtle',
    'cros-highlight-color-error' : '$cros.sys.error-container',
    'cros-highlight-color-green' : '$cros.sys.success-container',
    'cros-highlight-color-red' : '$cros.sys.error-container',
    'cros-highlight-color-yellow' : '$cros.sys.warning-container',
    'cros-text-highlight-color' : '$cros.sys.highlight-text',
    'cros-button-label-color-secondary' : '$cros.sys.on-primary-container',
    'cros-button-ripple-color-secondary' : '$cros.sys.ripple-primary',
    'cros-highlight-color' : '$cros.sys.primary',
    'cros-textfield-background-color' : '$cros.sys.input-field-on-shaded',
    'cros-textfield-label-color' : '$cros.sys.on-surface',
    'cros-slider-color-active' : '$cros.sys.primary',
    'cros-slider-track-color-active': '$cros.sys.highlight-shape',
    /** cros.sys.primary-container @ 30% */
    'cros-slider-track-color-inactive': 'rgba($cros.sys.disabled.rgb,.3)',
    'cros-slider-label-text-color' : '$cros.sys.on-primary',
    'cros-slider-color-inactive' : '$cros.sys.disabled',
    'cros-switch-knob-color-active' : '$cros.sys.primary',
    'cros-switch-knob-color-inactive' : '$cros.sys.surface-variant',
    'cros-switch-track-color-active' : '$cros.sys.primary-container',
    'cros-switch-track-color-inactive' : '$cros.sys.secondary',
    'cros-tooltip-label-color' : '$cros.sys.inverse-on-surface',
    'cros-tooltip-background-color' : '$cros.sys.on-surface',
    'cros-nudge-label-color' : '$cros.sys.on-primary',
    'cros-nudge-icon-color' : '$cros.sys.on-primary',
    'cros-nudge-background-color' : '$cros.sys.primary',
    'cros-menu-label-color' : '$cros.sys.on-surface',
    'cros-menu-icon-color' : '$cros.sys.on-surface',
    'cros-menu-shortcut-color' : '$cros.sys.secondary',
    'cros-menu-item-background-hover' : '$cros.sys.hover-on-subtle',
    'cros-color-positive' : '$cros.sys.success',
    'cros-color-warning' : '$cros.sys.warning',
    'cros-color-alert' : '$cros.sys.error',
  },
  colors: {
    /* Primary */
    /* If this is changed, please also update SampleColorScheme */
    primary: {
      light: '$cros.ref.primary40',
      dark: '$cros.ref.primary80',
      generate_per_mode: true,
    },
    'inverse-primary': {
      light: '$cros.ref.primary80',
      dark: '$cros.ref.primary40',
    },
    'on-primary': {
      light: '$cros.ref.primary100',
      dark:  '$cros.ref.primary20',
      generate_per_mode: true,
    },
    'inverse-on-primary': {
      light:  '$cros.ref.primary20',
      dark: '$cros.ref.primary100',
    },
    /* If this is changed, please also update SampleColorScheme */
    'primary-container': {
      light: '$cros.ref.primary90',
      dark:  'blend(rgba($cros.ref.primary30.rgb, 0.08), $cros.ref.secondary30)',
    },
    'on-primary-container': {
      light: '$cros.ref.primary10',
      dark:  '$cros.ref.primary90',
    },

    /* Secondary */
    secondary: {
      light: '$cros.ref.secondary40',
      dark:  '$cros.ref.secondary80',
      generate_per_mode: true,
    },
    'on-secondary': {
      light: '$cros.ref.secondary100',
      dark:  '$cros.ref.secondary20',
    },
    'secondary-container': {
      light: '$cros.ref.secondary90',
      dark:  '$cros.ref.secondary30',
    },
    'on-secondary-container': {
      light: '$cros.ref.secondary10',
      dark:  '$cros.ref.secondary90',
    },

    /* Tertiary */
    tertiary: {
      light: '$cros.ref.tertiary40',
      dark:  '$cros.ref.tertiary80',
    },
    'on-tertiary': {
      light: '$cros.ref.tertiary100',
      dark:  '$cros.ref.tertiary20',
    },
    /* If this is changed, please also update SampleColorScheme */
    'tertiary-container': {
      light: '$cros.ref.tertiary90',
      dark:  '$cros.ref.tertiary30',
    },
    'on-tertiary-container': {
      light: '$cros.ref.tertiary10',
      dark:  '$cros.ref.tertiary90',
    },

    /* Error */
    error: {
      light: '$cros.ref.error40',
      dark:  '$cros.ref.error80',
    },
    'on-error': {
      light: '$cros.ref.error100',
      dark:  '$cros.ref.error20',
    },
    'error-container': {
      light: '$cros.ref.error90',
      dark:  '$cros.ref.error30',
    },
    'on-error-container': {
      light: '$cros.ref.error10',
      dark:  '$cros.ref.error90',
    },
    'error-highlight': {
      light: 'rgba($cros.ref.error40.rgb, 0.30)',
      dark: 'rgba($cros.ref.error80.rgb, 0.30)',
    },
    'inverse-error': {
      light: '$cros.ref.error80',
      dark:  '$cros.ref.error40',
    },
    'inverse-on-error': {
      light: '$cros.ref.error20',
      dark:  '$cros.ref.error100',
    },

    /* Neutral */
    'surface-variant': {
      light: '$cros.ref.neutralvariant90',
      dark:  '$cros.ref.neutralvariant30',
    },
    'on-surface-variant': {
      light: '$cros.ref.neutralvariant30',
      dark:  '$cros.ref.neutralvariant80',
      generate_per_mode: true,
    },
    outline: {
      light: '$cros.ref.neutralvariant50',
      dark:  '$cros.ref.neutralvariant60',
    },
    separator: {
      light: 'rgba($cros.ref.neutral10.rgb, 0.14)',
      dark:  'rgba($cros.ref.neutral90.rgb, 0.14)',
    },
    white: {
      light: '$cros.ref.neutral100',
      dark: '$cros.ref.neutral100',
    },
    black: {
      light: '$cros.ref.neutral0',
      dark: '$cros.ref.neutral0',
    },

    /* Bases */
    header: {
      light: '$cros.ref.secondary90',
      dark:  '$cros.ref.secondary12',
    },
    'header-unfocused': {
      light: 'blend(rgba($cros.ref.secondary90.rgb, 0.28), $cros.ref.neutralvariant90)',
      dark: 'blend(rgba($cros.ref.secondary12.rgb, 0.6), $cros.ref.neutral25)',
    },
    'app-base-shaded': {
      light: '$cros.ref.neutralvariant95',
      dark:  '$cros.ref.neutral0',
    },
    'app-base': {
      light: '$cros.ref.neutral99',
      dark:  '$cros.ref.neutral8',
    },
    'base-highlight': {
      light: 'blend(rgba($cros.ref.primary70.rgb, 0.24), $cros.ref.neutral100)',
      dark: 'blend(rgba($cros.ref.primary70.rgb, 0.28), $cros.ref.neutral15)',
    },
    'on-base-highlight': {
      light: 'rgba($cros.ref.primary60.rgb, 0.30)',
      dark: 'rgba($cros.ref.neutral0.rgb, 0.32)',
    },
    'base-elevated': {
      light: '$cros.ref.neutralvariant100',
      /* In dark mode we layer primary80 @ 11% ontop of neutral80 @ 2% ontop of neutral 10. */
      dark: 'blend($cros.ref.primary80, 11%, blend($cros.ref.neutral80, 2%, $cros.ref.neutral10))',
      generate_per_mode: true,
    },

    'system-base': {
      light: '$cros.ref.neutralvariant90',
      dark: '$cros.ref.neutralvariant0',
    },
    'system-base-elevated': {
      light: 'rgba($cros.sys.surface3.rgb, 0.9)',
      dark: 'rgba($cros.sys.surface3.rgb, 0.9)',
    },
    'system-base-elevated-opaque': {
      light: '$cros.sys.surface3',
      dark: '$cros.sys.surface3',
    },

    /* Surfaces */
    surface: {
      light: '$cros.ref.neutral99',
      dark: '$cros.ref.neutral10',
    },
    surface1: {
      light: 'blend(rgba($cros.ref.primary40.rgb, 0.05), $cros.ref.neutral99)',
      dark: 'blend(rgba($cros.ref.primary80.rgb, 0.05), $cros.ref.neutral10)',
    },
    surface2: {
      light: 'blend(rgba($cros.ref.primary40.rgb, 0.08), $cros.ref.neutral99)',
      dark: 'blend(rgba($cros.ref.primary80.rgb, 0.08), $cros.ref.neutral10)',
    },
    surface3: {
      light: 'blend(rgba($cros.ref.primary40.rgb, 0.11), $cros.ref.neutral99)',
      dark: 'blend(rgba($cros.ref.primary80.rgb, 0.11), $cros.ref.neutral10)',
    },
    surface4: {
      light: 'blend(rgba($cros.ref.primary40.rgb, 0.12), $cros.ref.neutral99)',
      dark: 'blend(rgba($cros.ref.primary80.rgb, 0.12), $cros.ref.neutral10)',
    },
    surface5: {
      light: 'blend(rgba($cros.ref.primary40.rgb, 0.14), $cros.ref.neutral99)',
      dark: 'blend(rgba($cros.ref.primary80.rgb, 0.14), $cros.ref.neutral10)',
    },
    scrim: {
      light: 'rgba($cros.ref.neutralvariant60.rgb, 0.6)',
      dark:  'rgba($cros.ref.neutralvariant0.rgb, 0.6)',
    },
    scrim2: {
      light: 'rgba($cros.ref.secondary90.rgb, 0.6)',
      dark:  'rgba($cros.ref.secondary30.rgb, 0.48)',
    },
    'dialog-container': '$cros.sys.base-elevated',
    'inverse-surface': {
      light: '$cros.ref.neutral20',
      dark:  '$cros.ref.neutral90',
    },
    'scrollbar': {
      light: 'rgba($cros.ref.neutralvariant60.rgb, 0.6)',
      dark: 'rgba($cros.ref.neutralvariant50.rgb, 0.6)',
    },
    'scrollbar-hover': {
      light: 'rgba($cros.ref.neutralvariant30.rgb, 0.6)',
      dark: 'rgba($cros.ref.neutralvariant90.rgb, 0.6)',
    },
    'scrollbar-border': {
      light: 'rgba($cros.ref.neutralvariant100.rgb, 0.14)',
      dark: 'rgba($cros.ref.neutralvariant0.rgb, 0.14)',
    },

    'input-field-on-shaded': {
      light: '$cros.ref.neutral99',
      dark: 'rgba($cros.ref.neutral50.rgb, 0.4)'
    },
    'input-field-on-base': {
      light: '$cros.ref.neutral95',
      dark: 'rgba($cros.ref.neutral0.rgb, 0.6)'
    },
    'system-on-base': {
      light: 'rgba($cros.ref.neutralvariant99.rgb, 0.6)',
      dark: 'rgba($cros.ref.neutralvariant40.rgb, 0.5)',
    },
    'system-on-base-opaque': {
      light: '$cros.ref.neutralvariant95',
      dark: '$cros.ref.neutralvariant30',
    },
    'system-on-base1': {
      light: 'rgba($cros.ref.neutral10.rgb, 0.06)',
      dark: 'rgba($cros.ref.neutral99.rgb, 0.10)',
    },
    'system-primary-container': {
      light: '$cros.ref.primary80',
      dark: '$cros.ref.primary80',
    },
    'system-on-primary-container': {
      light: '$cros.ref.primary10',
      dark: '$cros.ref.primary10',
    },
    'system-on-primary-container-disabled': 'rgba($cros.sys.system-on-primary-container.rgb, 0.38)',

    /* Harmonized colors */
    'on-success-container': {
      light: '$cros.ref.green30',
      dark: '$cros.ref.green90',
    },
    'success-container': {
      light: '$cros.ref.green95',
      dark: 'blend(rgba($cros.ref.green95.rgb, 0.20), $black)',
    },
    'success': {
      light: '$cros.ref.green50',
      dark: '$cros.ref.green80',
    },

    'on-warning-container': {
      light: '$cros.ref.yellow30',
      dark: '$cros.ref.yellow80',
    },
    'warning-container': {
      light: '$cros.ref.yellow90',
      dark: 'blend(rgba($cros.ref.yellow90.rgb, 0.20), $black)',
    },
    'system-on-warning-container': {
      light: '$cros.ref.yellow10',
      dark: '$cros.ref.yellow10',
    },
    'system-warning-container': {
      light: '$cros.ref.yellow80',
      dark: '$cros.ref.yellow80',
    },
    'system-warning-inverse': {
      light: '$cros.ref.yellow10',
      dark: '$cros.ref.yellow80',
    },
    'warning': {
      light: '$cros.ref.yellow50',
      dark: '$cros.ref.yellow80',
    },

    'on-error-container': {
      light: '$cros.ref.red30',
      dark: '$cros.ref.red80',
    },
    'error-container': {
      light: '$cros.ref.red90',
      dark: 'blend(rgba($cros.ref.red80.rgb, 0.20), $black)',
    },
    'error': {
      light: '$cros.ref.red50',
      dark: '$cros.ref.red80',
    },
    'system-on-error-container': {
      light: '$cros.ref.red10',
      dark: '$cros.ref.red10',
    },
    'system-error-container': {
      light: '$cros.ref.red80',
      dark: '$cros.ref.red80',
    },

    'on-progress-container': {
      light: '$cros.ref.blue30',
      dark: '$cros.ref.blue80',
    },
    'progress-container': {
      light: '$cros.ref.blue90',
      dark: 'blend(rgba($cros.ref.blue80.rgb, 0.20), $black)',
    },
    'progress': {
      light: '$cros.ref.blue50',
      dark: '$cros.ref.blue80',
    },

    /* TODO(b/322857277): Delete after migrated. Deprecated harmonized colors */
    'on-positive-container': '$cros.sys.on-success-container',
    'positive-container': '$cros.sys.success-container',
    'positive': '$cros.sys.success',

    'system-on-negative-container': '$cros.sys.system-on-error-container',
    'system-negative-container': '$cros.sys.system-error-container',

    /* Text and icons */
    'on-surface': {
      light: '$cros.ref.neutral10',
      dark: '$cros.ref.neutral90',
      generate_per_mode: true,
    },
    'inverse-on-surface': {
      light: '$cros.ref.neutral95',
      dark: '$cros.ref.neutral10',
    },
    'on-surface-bodytext': {
      light: '$cros.ref.neutral40',
      dark: '$cros.ref.neutral70',
    },
    'inverse-whiteblack': {
      light: '$cros.ref.neutral0',
      dark: '$cros.ref.neutral100',
    },
    'disabled': {
      light: 'rgba($cros.sys.on-surface.rgb, 0.38)',
      dark: 'rgba($cros.sys.on-surface.rgb, 0.38)',
    },
    'disabled-opaque': {
      light: '$cros.ref.neutralvariant80',
      dark: '$cros.ref.neutralvariant30',
    },
    'disabled-container': 'rgba($cros.sys.on-surface.rgb, 0.12)',
    // TODO(b/224402466): Add cros.sys.warning
    // TODO(b/224402466): Add cros.sys.success

    // These values have a very specific meaning and should never be tinted.
    'privacy-indicator': {
      light: '#146c2e',
      dark: '#37be5f',
    },

    /* Effects */
    'hover-on-prominent': {
      light: 'rgba($cros.ref.neutral99.rgb, 0.10)',
      dark: 'rgba($cros.ref.neutral10.rgb, 0.06)',
    },
    'inverse-hover-on-prominent': {
      light: 'rgba($cros.ref.neutral10.rgb, 0.06)',
      dark: 'rgba($cros.ref.neutral99.rgb, 0.10)',
    },
    'hover-on-subtle': {
      light: 'rgba($cros.ref.neutral10.rgb, 0.06)',
      dark: 'rgba($cros.ref.neutral99.rgb, 0.1)',
    },
    'inverse-hover-on-subtle': {
      light: 'rgba($cros.ref.neutral99.rgb, 0.1)',
      dark: 'rgba($cros.ref.neutral10.rgb, 0.06)',
    },
    'ripple-primary': {
      light: 'rgba($cros.ref.primary70.rgb, 0.32)',
      dark: 'rgba($cros.ref.primary60.rgb, 0.32)',
    },
    'inverse-ripple-primary': {
      light: 'rgba($cros.ref.primary60.rgb, 0.32)',
      dark:  'rgba($cros.ref.primary70.rgb, 0.32)',
    },
    'ripple-neutral-on-prominent': {
      light: 'rgba($cros.ref.neutral99.rgb, 0.16)',
      dark: 'rgba($cros.ref.neutral10.rgb, 0.08)',
    },
    'ripple-neutral-on-subtle': {
      light: 'rgba($cros.ref.neutral10.rgb, 0.12)',
      dark: 'rgba($cros.ref.neutral90.rgb, 0.16)',
    },
    'inverse-ripple-neutral-on-subtle': {
      light: 'rgba($cros.ref.neutral90.rgb, 0.16)',
      dark: 'rgba($cros.ref.neutral10.rgb, 0.12)',
    },
    'highlight-shape': {
      light: 'rgba($cros.ref.primary70.rgb, 0.3)',
      dark: 'rgba($cros.ref.primary70.rgb, 0.3)',
    },
    'highlight-text': {
      light: 'rgba($cros.ref.primary70.rgb, 0.6)',
      dark: 'rgba($cros.ref.primary70.rgb, 0.6)',
    },
    'system-highlight': {
      light: 'rgba($cros.ref.neutral100.rgb, 0.16)',
      dark: 'rgba($cros.ref.neutral100.rgb, 0.06)',
    },
    'system-border': 'rgba($cros.ref.neutral0.rgb, 0.08)',
    'system-highlight1': {
      light: 'rgba($cros.ref.neutral100.rgb, 0.16)',
      dark: 'rgba($cros.ref.neutral100.rgb, 0.06)',
    },
    'system-border1': {
      light: 'rgba($cros.ref.neutral0.rgb, 0.06)',
      dark: 'rgba($cros.ref.neutral0.rgb, 0.08)',
    },
    'focus-ring': {
      light: '$cros.ref.primary40',
      dark: '$cros.ref.primary80',
    },
    'inverse-focus-ring': {
      light: '$cros.ref.primary80',
      dark: '$cros.ref.primary40',
    },
    'focus-ring-on-primary-container': {
      light: '$cros.ref.primary40',
      dark: '$cros.ref.primary40',
    },
    'shadow': {
      light: '$cros.ref.neutral30',
      dark: '$cros.ref.neutral0',
    },
    'shadow-ambient': 'rgba($cros.sys.shadow.rgb, 0.2)',
    'shadow-key': 'rgba($cros.sys.shadow.rgb, 0.1)',

    /* When the button is pressed, we layer the ripple color on top of the hover color to form the pressed color, that's what blend() does here. */
    'pressed-on-prominent': 'blend($cros.sys.hover-on-prominent, $cros.sys.ripple-neutral-on-prominent)',
    'pressed-on-subtle': 'blend($cros.sys.hover-on-subtle, $cros.sys.ripple-neutral-on-subtle)',

    /* Sparkle tokens */
    'analog': {
      light: '$cros.ref.sparkle-analog70',
      dark: '$cros.ref.sparkle-analog30',
    },

    'analog-variant': {
      light: '$cros.ref.sparkle-analog80',
      dark: '$cros.ref.sparkle-analog40',
    },

    'muted': {
      light: '$cros.ref.sparkle-muted80',
      dark: '$cros.ref.sparkle-muted30',
    },

    'muted-variant': {
      light: '$cros.ref.sparkle-muted90',
      dark: '$cros.ref.sparkle-muted40',
    },

    'complement': {
      light: '$cros.ref.sparkle-complement90',
      dark: '$cros.ref.sparkle-complement20',
    },

    'complement-variant': {
      light: '$cros.ref.sparkle-complement95',
      dark: '$cros.ref.sparkle-complement30',
    },

    /* Illustration colors. */
    'illo.color1': {
      light: '$cros.ref.primary40',
      dark: '$cros.ref.primary80',
      generate_per_mode: true,
    },
    'illo.color1.1': {
      light: '$cros.ref.primary80',
      dark: '$cros.ref.secondary40',
      generate_per_mode: true,
    },
    'illo.color1.2': {
      light: '$cros.ref.primary90',
      dark: '$cros.ref.secondary30',
      generate_per_mode: true,
    },
    'illo.color2': {
      light: '$cros.ref.green60',
      dark: '$cros.ref.green70',
      generate_per_mode: true,
    },
    'illo.color3': {
      light: '$cros.ref.yellow70',
      dark: '$cros.ref.yellow80',
      generate_per_mode: true,
    },
    'illo.color4': {
      light: '$cros.ref.red60',
      dark: '$cros.ref.red60',
      generate_per_mode: true,
    },
    'illo.color5': {
      light: '$cros.ref.tertiary70',
      dark: '$cros.ref.tertiary40',
      generate_per_mode: true,
    },
    'illo.color6': {
      light: '$cros.ref.secondary90',
      dark: '$cros.ref.secondary50',
      generate_per_mode: true,
    },
    'illo.base': {
      light: '$cros.ref.secondary100',
      dark: '$cros.ref.secondary0',
      generate_per_mode: true,
    },
    'illo.secondary': {
      light: '$cros.ref.neutralvariant90',
      dark: '$cros.ref.neutralvariant40',
      generate_per_mode: true,
    },
    'illo.card.color1' : {
      light: '#fce3e0',
      dark: '#4d2726',
      generate_per_mode: true,
    },
    'illo.card.on-color1' : {
      light: '#a50e0e',
      dark: '#f6aea9',
      generate_per_mode: true,
    },
    'illo.card.color2' : {
      light: '#fef2cb',
      dark: '#443117',
      generate_per_mode: true,
    },
    'illo.card.on-color2' : {
      light: '#9b6100',
      dark: '#fde293',
      generate_per_mode: true,
    },
    'illo.card.color3' : {
      light: '#dcf4e3',
      dark: '#16341e',
      generate_per_mode: true,
    },
    'illo.card.on-color3' : {
      light: '#0d652d',
      dark: '#a8dab5',
      generate_per_mode: true,
    },
    'illo.card.color4' : {
      light: '#d6e5fc',
      dark: '#20314e',
      generate_per_mode: true,
    },
    'illo.card.on-color4' : {
      light: '#185abc',
      dark: '#aecbfa',
      generate_per_mode: true,
    },
    'illo.card.color5' : {
      light: '#f4e3fe',
      dark: '#433355',
      generate_per_mode: true,
    },
    'illo.card.on-color5' : {
      light: '#75099b',
      dark: '#d7aefb',
      generate_per_mode: true,
    },
    'illo.analog': '$cros.ref.sparkle-analog70',
    'illo.muted': '$cros.ref.sparkle-muted80',
    'illo.complement': '$cros.ref.sparkle-complement90',
    'illo.on-gradient': '$cros.ref.neutral10',

    /*
     * Some GM2 assets are "elevated" meaning they have slightly different
     * colors to improve contrast on their elevated surfaces in dark mode.
     * Updating these assets to GM3 poses a issue as they need to render with
     * elevated colors when the kJelly flag is OFF but with sys illo tokens when
     * the jelly flag is ON. To support this we map sys illo references for
     * assets on elevated surfaces to the following elevated sys token set.
     * These colors are identical to their non elevated counterparts when the
     * jelly flag is ON but when the flag is off they get remapped to the
     * correct GM2 eleavted token.
     */
    'illo.elevated.color1.1': '$cros.sys.illo.color1.1',
    'illo.elevated.color1.2': '$cros.sys.illo.color1.2',
    'illo.elevated.base': '$cros.sys.illo.base',
    'illo.elevated.secondary': '$cros.sys.illo.secondary',
    'illo.on-primary-container': '$cros.sys.on-primary-container',

    /*
     * Gaming colors
     *
     * Gaming colors are static values here because they are always in the vibrant
     * palette. So, they don't have a direct mapping to ref colors. Placeholder
     * colors are in the vibrant palette with a purple seed color.
     */
    /* Primary 40 Vibrant */
    'gaming-control-button-default': '#a100bc',
    /* Primary 50 Vibrant */
    'gaming-control-button-hover': '#c900eb',
    /* Primary 80 Vibrant */
    'gaming-control-button-border-hover': '#f9acff',
    'gaming.window-button-border': {
      light: 'rgba($cros.sys.black.rgb, .08)',
      dark: 'rgba($cros.sys.white.rgb, .08)',
    },

    /* Icon colors. */
    'file-ms-excel': '#16a765',
    'file-ms-word': '#4986e7',
    'file-ms-ppt': '#ff7637',
    'file-site': {
      light: '#4758b5',
      dark: '#8c9eff',
    },
    'file-form': {
      light: '#7248b9',
      dark: '#b48cff',
    },
  },
}