variables-color.pcss.css

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

Color custom properties — the canonical `--admin-color-*` token API.

File

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

View source
  1. /**
  2. * @file
  3. * Color custom properties — the canonical `--admin-color-*` token API.
  4. */
  5. :root {
  6. /*
  7. * Tier 1 (primitive colors).
  8. */
  9. --admin-color-white: white;
  10. --admin-color-gray-200-o-80: color-mix(in sRGB, rgb(212, 212, 218) 80%, transparent);
  11. /* Gray variations. */
  12. --admin-color-gray-950: #222330;
  13. --admin-color-gray-900: #393a3f;
  14. --admin-color-gray-800: #545560;
  15. --admin-color-gray-700: #767676;
  16. --admin-color-gray-600: #828388;
  17. --admin-color-gray-500: #8e929c;
  18. --admin-color-gray-400: #adaeb3;
  19. --admin-color-gray-300: #c2c2c2;
  20. --admin-color-gray-200: #d4d4d8;
  21. --admin-color-gray-100: #dedfe4;
  22. --admin-color-gray-050: #f3f4f9;
  23. --admin-color-gray-025: #f9faff;
  24. /* Blue variations. */
  25. --admin-color-blue-900: #000f33;
  26. --admin-color-blue-800: #001f66;
  27. --admin-color-blue-700: #002e9a;
  28. --admin-color-blue-650: #0036b1;
  29. --admin-color-blue-600: #003ecc;
  30. --admin-color-blue-500: #004eff;
  31. --admin-color-blue-400: #3371ff;
  32. --admin-color-blue-300: #6694ff;
  33. --admin-color-blue-200: #99b8ff;
  34. --admin-color-blue-100: #ccdbff;
  35. --admin-color-blue-070: #dbe6ff;
  36. --admin-color-blue-050: #e5edff;
  37. --admin-color-blue-020: #f5f8ff;
  38. /* Red variations. */
  39. --admin-color-red-900: #2c0707;
  40. --admin-color-red-800: #580e0e;
  41. --admin-color-red-700: #841515;
  42. --admin-color-red-600: #b01c1c;
  43. --admin-color-red-550: #c61f1f;
  44. --admin-color-red-500: #dc2323;
  45. --admin-color-red-400: #e34f4f;
  46. --admin-color-red-300: #ea7b7b;
  47. --admin-color-red-200: #f1a7a7;
  48. --admin-color-red-100: #f8d3d3;
  49. --admin-color-red-070: #fae0e0;
  50. --admin-color-red-050: #fce9e9;
  51. --admin-color-red-020: #fdf5f5;
  52. /*
  53. * Link / interactive blue. Used for links and blue focus/selected accents
  54. * (text, border, and bg).
  55. */
  56. /* @todo links don't use --admin-color-link. Need to refactor. */
  57. --admin-color-link: var(--admin-color-blue-600);
  58. --admin-color-link-hover: light-dark(var(--admin-color-blue-650), var(--admin-color-accent-700));
  59. --admin-color-link-active: var(--admin-color-blue-700);
  60. /*
  61. * Semantic tokens (tier 2). Mode-aware ones use light-dark().
  62. *
  63. * Composition: the LIGHT half references a primitive ramp step
  64. * wherever a step matches the in-use value — the ramp was reconciled TO these
  65. * semantics (primitives follow semantics), so this is value-preserving. The DARK
  66. * half stays a literal: the ramps are light-only, so there is no dark primitive
  67. * to point at. Tokens left fully literal are intentional —
  68. * either functional (color-mix() rings/hairlines), a bespoke value off the ramp
  69. * (the dark surfaces, status families, switch, icon), or a near-black distinct
  70. * from the ramp. Don't "fix" those into var() refs.
  71. */
  72. /*
  73. * Text. Contrast ladder is soft / (default) / loud.
  74. * --admin-color-text default body text.
  75. * --admin-color-text-soft lower-contrast / secondary text — labels, help,
  76. * descriptions. Quieter; recedes.
  77. * --admin-color-text-loud higher-contrast / emphasized text — headings, titles.
  78. * (--admin-color-text-on-primary, below, is text on a primary-colored fill.)
  79. */
  80. --admin-color-text: light-dark(var(--admin-color-gray-950), #d2d3d3);
  81. --admin-color-text-soft: light-dark(var(--admin-color-gray-800), #9e9fa0);
  82. --admin-color-text-loud: light-dark(var(--admin-color-gray-950), white);
  83. /*
  84. * Status — each family has three roles:
  85. * --admin-color-{status} solid — icons, borders, emphasis on a neutral bg.
  86. * --admin-color-bg-{status} the light tint behind highlighted rows / reports.
  87. * --admin-color-text-{status} text ON that tint (AA-verified pair).
  88. * Families: error · warning · success · info. (`danger` is retired.) Message
  89. * banners use their own dark-tinted palette, scoped in components/messages.pcss.css.
  90. */
  91. --admin-color-error: light-dark(#cc3d3d, #ce6060);
  92. --admin-color-bg-error: color-mix(in srgb, #de7560 15%, transparent);
  93. --admin-color-text-error: light-dark(#cc3d3d, #e69e9e);
  94. --admin-color-warning: light-dark(#d8b234, #dec15f);
  95. --admin-color-bg-warning: color-mix(in srgb, #e29700 15%, transparent);
  96. --admin-color-text-warning: light-dark(#826b1f, #e8d185);
  97. --admin-color-success: light-dark(#058260, #32cea4);
  98. --admin-color-bg-success: light-dark(#26a76930, #26a76940);
  99. --admin-color-text-success: light-dark(#1d6844, #8bd3b1);
  100. --admin-color-info: light-dark(#589ac5, #559bca);
  101. --admin-color-contextual: light-dark(var(--admin-color-text), var(--admin-color-bg-raised));
  102. /*
  103. * Surfaces — background ROLES, not an elevation ladder. In light mode several
  104. * resolve to the same white; "raising" or "sinking" a surface is expressed by
  105. * going lighter/darker relative to the canvas, and that direction inverts
  106. * between modes — hence light-dark(). Always pair a surface with
  107. * --admin-color-text (or -text-soft) and verify AA contrast in both modes.
  108. *
  109. * -surface default surface — cards, panes, tables, page chrome.
  110. * -surface-nested a surface recessed inside another surface (e.g. a panel
  111. * within a card; also the form-control fill in dark mode).
  112. * -raised floating ABOVE the page — dropdowns, tooltips, contextual
  113. * links, the sticky toolbar. The most "popped" surface
  114. * (lightest in dark mode).
  115. * -sunken an inset WELL — code blocks, recessed/embedded regions
  116. * (darker than the canvas in both modes).
  117. * -input form-control background.
  118. * -header table/section header tint and the sticky page header.
  119. *
  120. * The page canvas --admin-color-bg is defined in
  121. * css/_variables/variables-color-accent.pcss.css
  122. * (← --gin-bg-app): its light value is accent-derived (var(--app-bg-color)),
  123. * already mode-aware via that file's light-dark() bases.
  124. */
  125. --admin-color-bg-surface: light-dark(var(--admin-color-white), #2a2a2d);
  126. --admin-color-bg-surface-nested: light-dark(#edeff5, #3b3b3f);
  127. --admin-color-bg-raised: light-dark(var(--admin-color-white), #47474c);
  128. --admin-color-bg-sunken: light-dark(#e2e5ec, #19191b);
  129. --admin-color-bg-input: light-dark(var(--admin-color-white), #3b3b3f);
  130. --admin-color-bg-header: light-dark(#e1eafc, #1b1b1d);
  131. --admin-color-bg-unpublished: light-dark(var(--admin-color-bg-error), var(--admin-color-bg-warning));
  132. --admin-color-icon: light-dark(#414247, #888);
  133. /*
  134. * Borders. Contrast ladder soft / (default) / loud.
  135. * --admin-color-border default divider/edge — cards, panes, controls.
  136. * --admin-color-border-soft subtle/translucent hairline; also soft shadows.
  137. * --admin-color-border-loud strongest divider — table-header separators.
  138. * --admin-color-border-input form-control border.
  139. * --admin-color-border-table thin table row divider (soft in light, default
  140. * edge in dark).
  141. */
  142. --admin-color-border: light-dark(var(--admin-color-gray-200), #43454a);
  143. --admin-color-border-soft: light-dark(color-mix(in sRGB, black 8%, transparent), color-mix(in sRGB, black 5%, transparent));
  144. --admin-color-border-loud: light-dark(color-mix(in sRGB, black 30%, transparent), color-mix(in sRGB, white 40%, transparent));
  145. --admin-color-border-input: light-dark(var(--admin-color-gray-500), #76777b);
  146. --admin-color-border-table: light-dark(color-mix(in srgb, black 10%, transparent), #43454a);
  147. --admin-color-text-on-primary: light-dark(var(--admin-color-white), #111);
  148. --admin-color-switch: light-dark(#26a769, var(--admin-color-accent-100));
  149. /* @todo dark value was the invalid `rgba(#111, 0.9)` (no shadow rendered); kept
  150. as transparent to preserve behavior — fix to rgb(17 17 17 / 0.9) deliberately. */
  151. --admin-color-shadow-button: light-dark(#0003, transparent);
  152. --admin-color-bg-inverse: light-dark(var(--admin-color-gray-950), var(--admin-color-bg-raised));
  153. /*
  154. * Elevation shadows. The per-layer shadow colors are factored into
  155. * --admin-shadow-color-{1..4} utilities, numbered by elevation step (1 =
  156. * tightest/closest layer … 4 = deepest ambient). Each is a light/dark tint at
  157. * a fixed opacity (light is a blue-gray, dark is black). The --admin-shadow-*
  158. * composites below stack them.
  159. */
  160. --admin-shadow-color-1: light-dark(color-mix(in srgb, #142d52 2%, transparent), color-mix(in srgb, black 2%, transparent));
  161. --admin-shadow-color-2: light-dark(color-mix(in srgb, #142d52 3%, transparent), color-mix(in srgb, black 3%, transparent));
  162. --admin-shadow-color-3: light-dark(color-mix(in srgb, #142d52 4%, transparent), color-mix(in srgb, black 4%, transparent));
  163. --admin-shadow-color-4: light-dark(color-mix(in srgb, #142d52 12%, transparent), color-mix(in srgb, black 12%, transparent));
  164. --admin-shadow-1: 0 1px 2px var(--admin-shadow-color-1), 0 3px 4px var(--admin-shadow-color-2), 0 5px 8px var(--admin-shadow-color-3);
  165. --admin-shadow-2: 0 1px 2px var(--admin-shadow-color-1), 0 3px 4px var(--admin-shadow-color-2), 0 5px 8px var(--admin-shadow-color-3), 0 20px 24px var(--admin-shadow-color-4);
  166. /*
  167. * Focus & disabled.
  168. * --admin-color-focus focus-ring color.
  169. * --admin-color-focus-border inner focus-ring border.
  170. * --admin-color-focus-neutral neutral focus-ring variant ([data-gin-focus]).
  171. * --admin-color-text-disabled / -bg-disabled / -border-disabled disabled controls.
  172. */
  173. --admin-color-focus: light-dark(color-mix(in srgb, #007dfa 60%, transparent), #51a8ff);
  174. /* @todo this is used in box-shadow focus states, which will be phased out in favor of outline. */
  175. --admin-color-focus-border: light-dark(color-mix(in sRGB, black 20%, transparent), color-mix(in sRGB, black 80%, transparent));
  176. --admin-color-focus-neutral: light-dark(color-mix(in sRGB, black 40%, transparent), color-mix(in sRGB, white 80%, transparent));
  177. --admin-color-text-disabled: light-dark(var(--admin-color-gray-700), #919191);
  178. --admin-color-bg-disabled: light-dark(#eaeaea, #47474c);
  179. --admin-color-border-disabled: light-dark(var(--admin-color-gray-300), #646464);
  180. }
  181. @media (forced-colors: active) {
  182. :root {
  183. --admin-color-icon: CanvasText;
  184. }
  185. }

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