variables-color-accent.pcss.css

Same filename and directory in other branches
  1. main core/themes/default_admin/css/_variables/variables-color-accent.pcss.css

Accent color tokens — the accent ramp and the semantic tokens derived from it.

Scoped to [data-gin-accent] (set on <html>). Builds the --admin-color-accent-* ramp from --accent-base (written at runtime by the accent picker JS) via color-mix(in lch), and maps it onto the canonical semantic tokens (--admin-color-primary*, --admin-color-bg, --admin-color-bg-item*). Each value is a single light-dark() pair so the whole ramp recomputes per color-scheme from one selector.

This is distinct from theme/accent.css, which holds the per-variant overrides ([data-gin-accent="blue"] …) plus the focus-ring and high-contrast tweaks.

Loads FIRST in the _variables group: it shares specificity (0,1,0) with the :root token files, so source order breaks ties — see default_admin.libraries.yml.

File

core/themes/default_admin/css/_variables/variables-color-accent.pcss.css

View source
  1. /**
  2. * @file
  3. * Accent color tokens — the accent ramp and the semantic tokens derived from it.
  4. *
  5. * Scoped to [data-gin-accent] (set on ). Builds the --admin-color-accent-*
  6. * ramp from --accent-base (written at runtime by the accent picker JS) via
  7. * color-mix(in lch), and maps it onto the canonical semantic tokens
  8. * (--admin-color-primary*, --admin-color-bg, --admin-color-bg-item*). Each value
  9. * is a single light-dark() pair so the whole ramp recomputes per color-scheme
  10. * from one selector.
  11. *
  12. * This is distinct from theme/accent.css, which holds the per-variant overrides
  13. * ([data-gin-accent="blue"] …) plus the focus-ring and high-contrast tweaks.
  14. *
  15. * Loads FIRST in the _variables group: it shares specificity (0,1,0) with the
  16. * :root token files, so source order breaks ties — see default_admin.libraries.yml.
  17. */
  18. [data-gin-accent] {
  19. /*
  20. * Default accent color.
  21. */
  22. --accent-base: #015efe;
  23. /*
  24. * Mix base.
  25. *
  26. * Each value is a single light-dark() pair, so the whole accent ramp below
  27. * (and everything derived from it) recomputes per color-scheme from ONE
  28. * selector — the former `.gin--dark-mode [data-gin-accent]` override block is
  29. * gone. light-dark() resolves correctly inside color-mix()/relative-color.
  30. */
  31. --admin-color-accent-base: light-dark(var(--accent-base), color-mix(in lch, lch(from var(--accent-base) calc(l * 20) c h), #000 12%));
  32. --accent-mix-base: light-dark(color-mix(in lch, var(--accent-base), #fff 97%), color-mix(in lch, var(--accent-base), #000 80%));
  33. --accent-mix-base-dark: light-dark(black, white);
  34. --app-bg-color: light-dark(color-mix(in lch, var(--accent-base), #fff 97%), #1b1b1d);
  35. --layer-background: light-dark(#fff, #2a2a2d);
  36. /*
  37. * Base accent colors.
  38. */
  39. --admin-color-accent-010: color-mix(in lch, var(--accent-mix-base) 95%, var(--admin-color-accent-base));
  40. --admin-color-accent-020: color-mix(in lch, var(--accent-mix-base) 90%, var(--admin-color-accent-base));
  41. --admin-color-accent-030: color-mix(in lch, var(--accent-mix-base) 85%, var(--admin-color-accent-base));
  42. --admin-color-accent-040: color-mix(in lch, var(--accent-mix-base) 80%, var(--admin-color-accent-base));
  43. --admin-color-accent-050: color-mix(in lch, var(--accent-mix-base) 75%, var(--admin-color-accent-base));
  44. --admin-color-accent-100: color-mix(in lch, var(--accent-mix-base) 60%, var(--admin-color-accent-base));
  45. --admin-color-accent-200: color-mix(in lch, var(--accent-mix-base) 45%, var(--admin-color-accent-base));
  46. --admin-color-accent-300: color-mix(in lch, var(--accent-mix-base) 30%, var(--admin-color-accent-base));
  47. --admin-color-accent-400: color-mix(in lch, var(--accent-mix-base) 15%, var(--admin-color-accent-base));
  48. --admin-color-accent-500: var(--admin-color-accent-base);
  49. --admin-color-accent-550: color-mix(in lch, var(--accent-mix-base-dark) 8%, var(--admin-color-accent-base));
  50. --admin-color-accent-600: color-mix(in lch, var(--accent-mix-base-dark) 15%, var(--admin-color-accent-base));
  51. --admin-color-accent-700: color-mix(in lch, var(--accent-mix-base-dark) 30%, var(--admin-color-accent-base));
  52. --admin-color-accent-800: color-mix(in lch, var(--accent-mix-base-dark) 45%, var(--admin-color-accent-base));
  53. --admin-color-accent-900: color-mix(in lch, var(--accent-mix-base-dark) 60%, var(--admin-color-accent-base));
  54. /*
  55. * Polyfill for Default Admin theme.
  56. */
  57. --admin-color-bg: var(--app-bg-color);
  58. --admin-color-primary: var(--admin-color-accent-500);
  59. --admin-color-primary-hover: var(--admin-color-accent-550);
  60. --admin-color-primary-active: var(--admin-color-accent-600);
  61. --admin-color-primary-soft: var(--admin-color-accent-030);
  62. --admin-color-primary-soft-hover: var(--admin-color-accent-040);
  63. --admin-color-primary-soft-active: var(--admin-color-accent-050);
  64. --admin-color-bg-item: var(--admin-color-accent-020);
  65. --admin-color-bg-item-hover: var(--admin-color-accent-030);
  66. }
  67. @supports (color: lab(from red l 1 1% / calc(alpha + 0.1))) {
  68. [data-gin-accent] {
  69. /* stylelint-disable-next-line color-function-notation */
  70. --admin-color-accent-010: rgb(from var(--admin-color-accent-base) r g b / 0.05);
  71. /* stylelint-disable-next-line color-function-notation */
  72. --admin-color-accent-020: rgb(from var(--admin-color-accent-base) r g b / 0.1);
  73. /* stylelint-disable-next-line color-function-notation */
  74. --admin-color-accent-030: rgb(from var(--admin-color-accent-base) r g b / 0.15);
  75. /* stylelint-disable-next-line color-function-notation */
  76. --admin-color-accent-040: rgb(from var(--admin-color-accent-base) r g b / 0.2);
  77. }
  78. }

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.