RoadieRoadie
  • Home
  • Brand
  • Foundations
  • Content
  • Tokens
  • Components
  • Charts
  • Widgets
  • Appearance
HomeBrandFoundations
Appearance

Tokens

  • Reference

    • All tokens
  • Color

    • Color scales
    • Intents
    • Data visualisation
    • Emphasis and states
  • Type, shape and depth

    • Typography
    • Shape and layout
    • Elevation and layering
  • Motion and utilities

    • Motion
    • Component utilities

All tokens

Docs updated
10 Oct 2026

Every variable, class, variant and keyframe core ships, generated from its CSS on every build. Press / to search from anywhere on the page.

623 tokens

Color scales

GuidanceColors·Theming

Neutral

14

  • +3 more
    Light
    var(--color-neutral-light-0) → oklch(1 0 0)
    Dark
    oklch(0.13 0.011 var(--accent-hue))
  • +3 more
    Light
    oklch(0.991 0.004 var(--accent-hue))
    Dark
    oklch(0.178 0.011 var(--accent-hue))
  • +3 more
    Light
    oklch(0.982 0.007 var(--accent-hue))
    Dark
    oklch(0.214 0.01 var(--accent-hue))
  • +3 more
    Light
    oklch(0.955 0.011 var(--accent-hue))
    Dark
    oklch(0.252 0.016 var(--accent-hue))
  • +3 more
    Light
    oklch(0.931 0.014 var(--accent-hue))
    Dark
    oklch(0.284 0.018 var(--accent-hue))
  • +3 more
    Light
    var(--color-neutral-light-5) → oklch(0.909 0.019 var(--accent-hue))
    Dark
    oklch(0.312 0.022 var(--accent-hue))
  • +3 more
    Light
    oklch(0.888 0.022 var(--accent-hue))
    Dark
    oklch(0.347 0.025 var(--accent-hue))
  • +3 more
    Light
    oklch(0.853 0.028 var(--accent-hue))
    Dark
    oklch(0.398 0.031 var(--accent-hue))
  • +3 more
    Light
    oklch(0.794 0.038 var(--accent-hue))
    Dark
    oklch(0.489 0.041 var(--accent-hue))
  • +3 more
    Light
    var(--color-neutral-light-9) → oklch(0.645 0.039 var(--accent-hue))
    Dark
    oklch(0.538 0.04 var(--accent-hue))
  • +3 more
    Light
    oklch(0.609 0.037 var(--accent-hue))
    Dark
    oklch(0.582 0.038 var(--accent-hue))
  • +3 more
    Light
    oklch(0.45 0.032 var(--accent-hue))
    Dark
    oklch(0.87 0.028 var(--accent-hue))
  • +3 more
    Light
    var(--color-neutral-light-12) → oklch(0.24 0.024 var(--accent-hue))
    Dark
    oklch(0.949 0.007 var(--accent-hue))
  • +3 more
    Light
    var(--color-neutral-light-13) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    oklch(0.991 0.004 var(--accent-hue))

Brand

14

  • +3 more
    Light
    oklch(1 0 0)
    Dark
    oklch(0.08 0 0)
  • +3 more
    Light
    oklch(0.984 0.003 247)
    Dark
    oklch(0.178 0.023 247)
  • +3 more
    Light
    oklch(0.971 0.009 247)
    Dark
    oklch(0.212 0.025 247)
  • +3 more
    Light
    oklch(0.949 0.02 247)
    Dark
    oklch(0.273 0.059 247)
  • +3 more
    Light
    oklch(0.925 0.035 247)
    Dark
    oklch(0.317 0.086 247)
  • +3 more
    Light
    var(--color-brand-light-5) → oklch(0.891 0.049 247)
    Dark
    oklch(0.365 0.095 247)
  • +3 more
    Light
    oklch(0.849 0.063 247)
    Dark
    oklch(0.415 0.099 247)
  • +3 more
    Light
    oklch(0.794 0.081 247)
    Dark
    oklch(0.475 0.106 247)
  • +3 more
    Light
    oklch(0.718 0.111 247)
    Dark
    oklch(0.543 0.123 247)
  • +3 more
    Light
    var(--color-brand-light-9) → oklch(0.639 0.168 247)
    Dark
    oklch(0.639 0.168 247)
  • +3 more
    Light
    oklch(0.598 0.16 247)
    Dark
    oklch(0.601 0.165 247)
  • +3 more
    Light
    oklch(0.431 0.113 247)
    Dark
    oklch(0.871 0.067 247)
  • +3 more
    Light
    var(--color-brand-light-12) → oklch(0.324 0.082 247)
    Dark
    oklch(0.95 0.025 247)
  • +3 more
    Light
    var(--color-brand-light-13) → oklch(0.2 0.055 247)
    Dark
    oklch(0.993 0.003 247)

Brand secondary

14

  • Light
    oklch(1 0 0)
    Dark
    oklch(0.08 0 0)
  • Light
    oklch(0.984 0.003 42)
    Dark
    oklch(0.178 0.01 42)
  • Light
    oklch(0.969 0.014 42)
    Dark
    oklch(0.206 0.016 42)
  • Light
    oklch(0.942 0.031 42)
    Dark
    oklch(0.255 0.048 42)
  • Light
    oklch(0.899 0.058 42)
    Dark
    oklch(0.29 0.078 42)
  • Light
    var(--color-brand-secondary-light-5) → oklch(0.865 0.078 42)
    Dark
    oklch(0.331 0.087 42)
  • Light
    oklch(0.829 0.102 42)
    Dark
    oklch(0.382 0.089 42)
  • Light
    oklch(0.79 0.127 42)
    Dark
    oklch(0.449 0.097 42)
  • Light
    oklch(0.729 0.155 42)
    Dark
    oklch(0.538 0.119 42)
  • Light
    var(--color-brand-secondary-light-9) → oklch(0.753 0.155 42)
    Dark
    oklch(0.753 0.155 42)
  • Light
    oklch(0.719 0.155 42)
    Dark
    oklch(0.719 0.155 42)
  • Light
    oklch(0.463 0.139 42)
    Dark
    oklch(0.884 0.064 42)
  • Light
    var(--color-brand-secondary-light-12) → oklch(0.349 0.089 42)
    Dark
    oklch(0.95 0.026 42)
  • Light
    var(--color-brand-secondary-light-13) → oklch(0.2 0.06 42)
    Dark
    oklch(0.99 0.005 42)

Accent

14

  • +3 more
    Light
    oklch(1 0 0)
    Dark
    oklch(0.08 0 0)
  • +3 more
    Light
    oklch(0.984 calc(0.018 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.178 calc(0.137 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    oklch(0.971 calc(0.054 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.212 calc(0.149 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    oklch(0.949 calc(0.119 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.273 calc(0.351 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    oklch(0.925 calc(0.208 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.317 calc(0.512 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    var(--color-accent-light-5) → oklch(0.891 calc(0.292 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.365 calc(0.566 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    oklch(0.849 calc(0.375 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.415 calc(0.589 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    oklch(0.794 calc(0.482 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.475 calc(0.631 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    oklch(0.718 calc(0.661 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.543 calc(0.732 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    var(--color-accent-light-9) → oklch(0.639 var(--accent-chroma) var(--accent-hue))
    Dark
    oklch(0.639 var(--accent-chroma) var(--accent-hue))
  • +3 more
    Light
    oklch(0.598 calc(0.952 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.601 calc(0.982 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    oklch(0.431 calc(0.673 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.871 calc(0.398 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    var(--color-accent-light-12) → oklch(0.324 calc(0.488 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.95 calc(0.148 * var(--accent-chroma)) var(--accent-hue))
  • +3 more
    Light
    var(--color-accent-light-13) → oklch(0.2 calc(0.327 * var(--accent-chroma)) var(--accent-hue))
    Dark
    oklch(0.993 calc(0.018 * var(--accent-chroma)) var(--accent-hue))

Danger

14

  • +3 more
    Light
    oklch(1 0 0)
    Dark
    oklch(0.08 0 0)
  • +3 more
    Light
    oklch(0.983 0.003 48.719)
    Dark
    oklch(0.177 0.012 27.739)
  • +3 more
    Light
    oklch(0.969 0.012 23.703)
    Dark
    oklch(0.205 0.019 30.4)
  • +3 more
    Light
    oklch(0.944 0.028 28.516)
    Dark
    oklch(0.25 0.061 28.297)
  • +3 more
    Light
    oklch(0.9 0.052 31.272)
    Dark
    oklch(0.289 0.094 28.179)
  • +3 more
    Light
    var(--color-danger-light-5) → oklch(0.866 0.072 30.236)
    Dark
    oklch(0.333 0.105 28.758)
  • +3 more
    Light
    oklch(0.838 0.09 28.413)
    Dark
    oklch(0.381 0.108 28.479)
  • +3 more
    Light
    oklch(0.791 0.101 28.55)
    Dark
    oklch(0.449 0.117 28.086)
  • +3 more
    Light
    oklch(0.73 0.121 28.471)
    Dark
    oklch(0.541 0.143 28.04)
  • +3 more
    Light
    var(--color-danger-light-9) → oklch(0.709 0.184 28.37)
    Dark
    oklch(0.709 0.184 28.37)
  • +3 more
    Light
    oklch(0.673 0.184 28.364)
    Dark
    oklch(0.673 0.184 28.364)
  • +3 more
    Light
    oklch(0.445 0.181 28.264)
    Dark
    oklch(0.882 0.062 28.725)
  • +3 more
    Light
    var(--color-danger-light-12) → oklch(0.349 0.069 28.777)
    Dark
    oklch(0.95 0.024 27.194)
  • +3 more
    Light
    var(--color-danger-light-13) → oklch(0.22 0.045 28)
    Dark
    oklch(0.99 0.004 28)

Success

14

  • +3 more
    Light
    oklch(1 0 0)
    Dark
    oklch(0.08 0 0)
  • +3 more
    Light
    oklch(0.983 0.006 185.277)
    Dark
    oklch(0.178 0.012 186.566)
  • +3 more
    Light
    oklch(0.973 0.013 185.101)
    Dark
    oklch(0.214 0.018 183.109)
  • +3 more
    Light
    oklch(0.947 0.036 185.818)
    Dark
    oklch(0.272 0.039 186.985)
  • +3 more
    Light
    oklch(0.921 0.057 185.27)
    Dark
    oklch(0.317 0.056 185.561)
  • +3 more
    Light
    var(--color-success-light-5) → oklch(0.886 0.074 185.252)
    Dark
    oklch(0.362 0.063 185.312)
  • +3 more
    Light
    oklch(0.842 0.087 185.529)
    Dark
    oklch(0.413 0.068 185.064)
  • +3 more
    Light
    oklch(0.784 0.102 184.951)
    Dark
    oklch(0.474 0.078 184.218)
  • +3 more
    Light
    oklch(0.709 0.125 184.715)
    Dark
    oklch(0.538 0.091 184.978)
  • +3 more
    Light
    var(--color-success-light-9) → oklch(0.732 0.129 185.089)
    Dark
    oklch(0.732 0.129 185.089)
  • +3 more
    Light
    oklch(0.698 0.123 185.178)
    Dark
    oklch(0.698 0.123 185.178)
  • +3 more
    Light
    oklch(0.44 0.078 183.645)
    Dark
    oklch(0.861 0.129 184.826)
  • +3 more
    Light
    var(--color-success-light-12) → oklch(0.351 0.061 185.02)
    Dark
    oklch(0.95 0.072 184.637)
  • +3 more
    Light
    var(--color-success-light-13) → oklch(0.22 0.04 185)
    Dark
    oklch(0.997 0.004 185)

Warning

14

  • +3 more
    Light
    oklch(1 0 0)
    Dark
    oklch(0.08 0 0)
  • +3 more
    Light
    oklch(0.994 0.005 95.098)
    Dark
    oklch(0.178 0.012 91.807)
  • +3 more
    Light
    oklch(0.984 0.027 95.333)
    Dark
    oklch(0.211 0.018 86.763)
  • +3 more
    Light
    oklch(0.962 0.075 98.601)
    Dark
    oklch(0.257 0.043 87.869)
  • +3 more
    Light
    oklch(0.939 0.099 95.312)
    Dark
    oklch(0.296 0.061 81.523)
  • +3 more
    Light
    var(--color-warning-light-5) → oklch(0.912 0.129 93.243)
    Dark
    oklch(0.338 0.07 82.053)
  • +3 more
    Light
    oklch(0.876 0.151 88.465)
    Dark
    oklch(0.388 0.076 86.634)
  • +3 more
    Light
    oklch(0.834 0.139 86.578)
    Dark
    oklch(0.453 0.079 87.194)
  • +3 more
    Light
    oklch(0.765 0.157 86.419)
    Dark
    oklch(0.535 0.093 86.208)
  • +3 more
    Light
    var(--color-warning-light-9) → oklch(0.771 0.158 86.663)
    Dark
    oklch(0.841 0.172 86.226)
  • +3 more
    Light
    oklch(0.738 0.151 85.261)
    Dark
    oklch(0.81 0.166 85.477)
  • +3 more
    Light
    oklch(0.465 0.095 82.642)
    Dark
    oklch(0.882 0.144 88.596)
  • +3 more
    Light
    var(--color-warning-light-12) → oklch(0.356 0.052 86.003)
    Dark
    oklch(0.935 0.069 86.151)
  • +3 more
    Light
    var(--color-warning-light-13) → oklch(0.22 0.035 86)
    Dark
    oklch(0.97 0.03 86)

Info

14

  • +3 more
    Light
    oklch(1 0 0)
    Dark
    oklch(0.08 0 0)
  • +3 more
    Light
    oklch(0.984 0.004 301.426)
    Dark
    oklch(0.176 0.025 303.009)
  • +3 more
    Light
    oklch(0.972 0.011 303.114)
    Dark
    oklch(0.211 0.036 303.878)
  • +3 more
    Light
    oklch(0.946 0.028 303.922)
    Dark
    oklch(0.264 0.069 303.209)
  • +3 more
    Light
    oklch(0.92 0.044 303.104)
    Dark
    oklch(0.307 0.093 302.094)
  • +3 more
    Light
    var(--color-info-light-5) → oklch(0.887 0.059 302.54)
    Dark
    oklch(0.343 0.103 302.878)
  • +3 more
    Light
    oklch(0.846 0.077 302.529)
    Dark
    oklch(0.387 0.108 302.597)
  • +3 more
    Light
    oklch(0.792 0.099 303.066)
    Dark
    oklch(0.451 0.119 302.796)
  • +3 more
    Light
    oklch(0.724 0.129 302.898)
    Dark
    oklch(0.541 0.149 302.916)
  • +3 more
    Light
    var(--color-info-light-9) → oklch(0.652 0.198 302.833)
    Dark
    oklch(0.652 0.198 302.833)
  • +3 more
    Light
    oklch(0.612 0.198 303.02)
    Dark
    oklch(0.612 0.198 303.02)
  • +3 more
    Light
    oklch(0.457 0.185 302.873)
    Dark
    oklch(0.881 0.073 306.109)
  • +3 more
    Light
    var(--color-info-light-12) → oklch(0.33 0.125 302.655)
    Dark
    oklch(0.95 0.028 303.269)
  • +3 more
    Light
    var(--color-info-light-13) → oklch(0.2 0.08 303)
    Dark
    oklch(0.99 0.005 303)

Pinned light steps

33

Light values that stay light in dark mode, for marks and illustrations.

  • oklch(1 0 0)
  • oklch(0.909 0.019 var(--accent-hue))
  • oklch(0.645 0.039 var(--accent-hue))
  • oklch(0.24 0.024 var(--accent-hue))
  • oklch(0.182 0.015 var(--accent-hue))
  • oklch(0.891 0.049 247)
  • oklch(0.639 0.168 247)
  • oklch(0.324 0.082 247)
  • oklch(0.2 0.055 247)
  • oklch(0.865 0.078 42)
  • oklch(0.753 0.155 42)
  • oklch(0.349 0.089 42)
  • oklch(0.2 0.06 42)
  • oklch(0.891 calc(0.292 * var(--accent-chroma)) var(--accent-hue))
  • oklch(0.639 var(--accent-chroma) var(--accent-hue))
  • oklch(0.324 calc(0.488 * var(--accent-chroma)) var(--accent-hue))
  • oklch(0.2 calc(0.327 * var(--accent-chroma)) var(--accent-hue))
  • oklch(0.866 0.072 30.236)
  • oklch(0.709 0.184 28.37)
  • oklch(0.349 0.069 28.777)
  • oklch(0.22 0.045 28)
  • oklch(0.886 0.074 185.252)
  • oklch(0.732 0.129 185.089)
  • oklch(0.351 0.061 185.02)
  • oklch(0.22 0.04 185)
  • oklch(0.912 0.129 93.243)
  • oklch(0.771 0.158 86.663)
  • oklch(0.356 0.052 86.003)
  • oklch(0.22 0.035 86)
  • oklch(0.887 0.059 302.54)
  • oklch(0.652 0.198 302.833)
  • oklch(0.33 0.125 302.655)
  • oklch(0.2 0.08 303)

Brand hue aliases

54

The brand, info, and brand-secondary scales named blue, purple, and orange.

  • Light
    var(--color-brand-0) → oklch(1 0 0)
    Dark
    var(--color-brand-0) → oklch(0.08 0 0)
  • Light
    var(--color-brand-1) → oklch(0.984 0.003 247)
    Dark
    var(--color-brand-1) → oklch(0.178 0.023 247)
  • Light
    var(--color-brand-2) → oklch(0.971 0.009 247)
    Dark
    var(--color-brand-2) → oklch(0.212 0.025 247)
  • Light
    var(--color-brand-3) → oklch(0.949 0.02 247)
    Dark
    var(--color-brand-3) → oklch(0.273 0.059 247)
  • Light
    var(--color-brand-4) → oklch(0.925 0.035 247)
    Dark
    var(--color-brand-4) → oklch(0.317 0.086 247)
  • Light
    var(--color-brand-5) → oklch(0.891 0.049 247)
    Dark
    var(--color-brand-5) → oklch(0.365 0.095 247)
  • Light
    var(--color-brand-6) → oklch(0.849 0.063 247)
    Dark
    var(--color-brand-6) → oklch(0.415 0.099 247)
  • Light
    var(--color-brand-7) → oklch(0.794 0.081 247)
    Dark
    var(--color-brand-7) → oklch(0.475 0.106 247)
  • Light
    var(--color-brand-8) → oklch(0.718 0.111 247)
    Dark
    var(--color-brand-8) → oklch(0.543 0.123 247)
  • Light
    var(--color-brand-9) → oklch(0.639 0.168 247)
    Dark
    var(--color-brand-9)
  • Light
    var(--color-brand-10) → oklch(0.598 0.16 247)
    Dark
    var(--color-brand-10) → oklch(0.601 0.165 247)
  • Light
    var(--color-brand-11) → oklch(0.431 0.113 247)
    Dark
    var(--color-brand-11) → oklch(0.871 0.067 247)
  • Light
    var(--color-brand-12) → oklch(0.324 0.082 247)
    Dark
    var(--color-brand-12) → oklch(0.95 0.025 247)
  • Light
    var(--color-brand-13) → oklch(0.2 0.055 247)
    Dark
    var(--color-brand-13) → oklch(0.993 0.003 247)
  • Light
    var(--color-brand-light-5) → oklch(0.891 0.049 247)
    Dark
    var(--color-brand-light-5)
  • Light
    var(--color-brand-light-9) → oklch(0.639 0.168 247)
    Dark
    var(--color-brand-light-9)
  • Light
    var(--color-brand-light-12) → oklch(0.324 0.082 247)
    Dark
    var(--color-brand-light-12)
  • Light
    var(--color-brand-light-13) → oklch(0.2 0.055 247)
    Dark
    var(--color-brand-light-13)
  • Light
    var(--color-info-0) → oklch(1 0 0)
    Dark
    var(--color-info-0) → oklch(0.08 0 0)
  • Light
    var(--color-info-1) → oklch(0.984 0.004 301.426)
    Dark
    var(--color-info-1) → oklch(0.176 0.025 303.009)
  • Light
    var(--color-info-2) → oklch(0.972 0.011 303.114)
    Dark
    var(--color-info-2) → oklch(0.211 0.036 303.878)
  • Light
    var(--color-info-3) → oklch(0.946 0.028 303.922)
    Dark
    var(--color-info-3) → oklch(0.264 0.069 303.209)
  • Light
    var(--color-info-4) → oklch(0.92 0.044 303.104)
    Dark
    var(--color-info-4) → oklch(0.307 0.093 302.094)
  • Light
    var(--color-info-5) → oklch(0.887 0.059 302.54)
    Dark
    var(--color-info-5) → oklch(0.343 0.103 302.878)
  • Light
    var(--color-info-6) → oklch(0.846 0.077 302.529)
    Dark
    var(--color-info-6) → oklch(0.387 0.108 302.597)
  • Light
    var(--color-info-7) → oklch(0.792 0.099 303.066)
    Dark
    var(--color-info-7) → oklch(0.451 0.119 302.796)
  • Light
    var(--color-info-8) → oklch(0.724 0.129 302.898)
    Dark
    var(--color-info-8) → oklch(0.541 0.149 302.916)
  • Light
    var(--color-info-9) → oklch(0.652 0.198 302.833)
    Dark
    var(--color-info-9)
  • Light
    var(--color-info-10) → oklch(0.612 0.198 303.02)
    Dark
    var(--color-info-10)
  • Light
    var(--color-info-11) → oklch(0.457 0.185 302.873)
    Dark
    var(--color-info-11) → oklch(0.881 0.073 306.109)
  • Light
    var(--color-info-12) → oklch(0.33 0.125 302.655)
    Dark
    var(--color-info-12) → oklch(0.95 0.028 303.269)
  • Light
    var(--color-info-13) → oklch(0.2 0.08 303)
    Dark
    var(--color-info-13) → oklch(0.99 0.005 303)
  • Light
    var(--color-info-light-5) → oklch(0.887 0.059 302.54)
    Dark
    var(--color-info-light-5)
  • Light
    var(--color-info-light-9) → oklch(0.652 0.198 302.833)
    Dark
    var(--color-info-light-9)
  • Light
    var(--color-info-light-12) → oklch(0.33 0.125 302.655)
    Dark
    var(--color-info-light-12)
  • Light
    var(--color-info-light-13) → oklch(0.2 0.08 303)
    Dark
    var(--color-info-light-13)
  • Light
    var(--color-brand-secondary-0) → oklch(1 0 0)
    Dark
    var(--color-brand-secondary-0) → oklch(0.08 0 0)
  • Light
    var(--color-brand-secondary-1) → oklch(0.984 0.003 42)
    Dark
    var(--color-brand-secondary-1) → oklch(0.178 0.01 42)
  • Light
    var(--color-brand-secondary-2) → oklch(0.969 0.014 42)
    Dark
    var(--color-brand-secondary-2) → oklch(0.206 0.016 42)
  • Light
    var(--color-brand-secondary-3) → oklch(0.942 0.031 42)
    Dark
    var(--color-brand-secondary-3) → oklch(0.255 0.048 42)
  • Light
    var(--color-brand-secondary-4) → oklch(0.899 0.058 42)
    Dark
    var(--color-brand-secondary-4) → oklch(0.29 0.078 42)
  • Light
    var(--color-brand-secondary-5) → oklch(0.865 0.078 42)
    Dark
    var(--color-brand-secondary-5) → oklch(0.331 0.087 42)
  • Light
    var(--color-brand-secondary-6) → oklch(0.829 0.102 42)
    Dark
    var(--color-brand-secondary-6) → oklch(0.382 0.089 42)
  • Light
    var(--color-brand-secondary-7) → oklch(0.79 0.127 42)
    Dark
    var(--color-brand-secondary-7) → oklch(0.449 0.097 42)
  • Light
    var(--color-brand-secondary-8) → oklch(0.729 0.155 42)
    Dark
    var(--color-brand-secondary-8) → oklch(0.538 0.119 42)
  • Light
    var(--color-brand-secondary-9) → oklch(0.753 0.155 42)
    Dark
    var(--color-brand-secondary-9)
  • Light
    var(--color-brand-secondary-10) → oklch(0.719 0.155 42)
    Dark
    var(--color-brand-secondary-10)
  • Light
    var(--color-brand-secondary-11) → oklch(0.463 0.139 42)
    Dark
    var(--color-brand-secondary-11) → oklch(0.884 0.064 42)
  • Light
    var(--color-brand-secondary-12) → oklch(0.349 0.089 42)
    Dark
    var(--color-brand-secondary-12) → oklch(0.95 0.026 42)
  • Light
    var(--color-brand-secondary-13) → oklch(0.2 0.06 42)
    Dark
    var(--color-brand-secondary-13) → oklch(0.99 0.005 42)
  • Light
    var(--color-brand-secondary-light-5) → oklch(0.865 0.078 42)
    Dark
    var(--color-brand-secondary-light-5)
  • Light
    var(--color-brand-secondary-light-9) → oklch(0.753 0.155 42)
    Dark
    var(--color-brand-secondary-light-9)
  • Light
    var(--color-brand-secondary-light-12) → oklch(0.349 0.089 42)
    Dark
    var(--color-brand-secondary-light-12)
  • Light
    var(--color-brand-secondary-light-13) → oklch(0.2 0.06 42)
    Dark
    var(--color-brand-secondary-light-13)

Illustration

6

Fixed spot illustration colours; they ignore dark mode.

  • +3 more
    var(--color-neutral-light-0, #ffffff) → oklch(1 0 0)
  • +3 more
    var(--color-info-light-5, #e1d1fb) → oklch(0.887 0.059 302.54)
  • +3 more
    var(--color-brand-secondary-light-5, #ffc3a8) → oklch(0.865 0.078 42)
  • +3 more
    var(--color-brand-9, #0191eb) → oklch(0.639 0.168 247)
  • +3 more
    var(--color-brand-light-5, #c2dffb) → oklch(0.891 0.049 247)
  • +3 more
    var(--color-neutral-light-12, #16202a) → oklch(0.24 0.024 var(--accent-hue))

Accent parameters

2

The hue and chroma the accent and neutral scales are built from.

  • 247
  • 0.168

Intents

GuidanceColors

Backgrounds

10

Surface roles, read by the bg-* utilities.

  • Light
    var(--color-neutral-1) → oklch(0.991 0.004 var(--accent-hue))
    Dark
    var(--color-neutral-2) → oklch(0.214 0.01 var(--accent-hue))
  • Light
    var(--color-neutral-13) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--color-neutral-13) → oklch(0.991 0.004 var(--accent-hue))
  • Light
    var(--color-neutral-11) → oklch(0.45 0.032 var(--accent-hue))
    Dark
    var(--color-neutral-11) → oklch(0.87 0.028 var(--accent-hue))
  • Light
    var(--color-neutral-12) → oklch(0.24 0.024 var(--accent-hue))
    Dark
    var(--color-neutral-12) → oklch(0.949 0.007 var(--accent-hue))
  • Light
    var(--color-neutral-12) → oklch(0.24 0.024 var(--accent-hue))
    Dark
    var(--color-neutral-12) → oklch(0.949 0.007 var(--accent-hue))
  • Light
    var(--color-neutral-1) → oklch(0.991 0.004 var(--accent-hue))
    Dark
    var(--color-neutral-4) → oklch(0.284 0.018 var(--accent-hue))
  • Light
    var(--color-neutral-2) → oklch(0.982 0.007 var(--accent-hue))
    Dark
    var(--color-neutral-0) → oklch(0.13 0.011 var(--accent-hue))
  • Light
    var(--intent-2a) → color-mix(in oklch, var(--color-neutral-9) 6%, transparent)
    Dark
    var(--intent-2a) → color-mix(in oklch, var(--color-neutral-9) 10%, transparent)
  • Light
    var(--intent-3a) → color-mix(in oklch, var(--color-neutral-9) 11%, transparent)
    Dark
    var(--intent-3a) → color-mix(in oklch, var(--color-neutral-9) 18%, transparent)
  • Light
    var(--intent-bg-raised) → oklch(0.991 0.004 var(--accent-hue))
    Dark
    color-mix(in oklch, var(--intent-9) 20%, var(--intent-bg-raised))

Text

6

Foreground roles, read by the text-* utilities.

  • Ag
    Light
    var(--color-neutral-10) → oklch(0.609 0.037 var(--accent-hue))
    Dark
    var(--color-neutral-10) → oklch(0.582 0.038 var(--accent-hue))
  • Ag
    Light
    var(--color-neutral-11) → oklch(0.45 0.032 var(--accent-hue))
    Dark
    var(--color-neutral-11) → oklch(0.87 0.028 var(--accent-hue))
  • Ag
    Light
    var(--color-neutral-12) → oklch(0.24 0.024 var(--accent-hue))
    Dark
    var(--color-neutral-12) → oklch(0.949 0.007 var(--accent-hue))
  • Ag
    Light
    var(--color-neutral-13) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--color-neutral-13) → oklch(0.991 0.004 var(--accent-hue))
  • Ag
    Light
    var(--color-neutral-0) → oklch(1 0 0)
    Dark
    var(--color-neutral-0) → oklch(0.13 0.011 var(--accent-hue))
  • Ag
    Light
    var(--color-neutral-0) → oklch(1 0 0)
    Dark
    var(--color-neutral-0) → oklch(0.13 0.011 var(--accent-hue))

Borders

5

Edge roles, read by the border-* and divide-* utilities.

  • Light
    var(--color-neutral-5) → oklch(0.909 0.019 var(--accent-hue))
    Dark
    var(--color-neutral-5) → oklch(0.312 0.022 var(--accent-hue))
  • Light
    var(--color-neutral-6) → oklch(0.888 0.022 var(--accent-hue))
    Dark
    var(--color-neutral-7) → oklch(0.398 0.031 var(--accent-hue))
  • Light
    var(--color-neutral-7) → oklch(0.853 0.028 var(--accent-hue))
    Dark
    var(--color-neutral-8) → oklch(0.489 0.041 var(--accent-hue))
  • Light
    var(--color-neutral-9) → oklch(0.645 0.039 var(--accent-hue))
    Dark
    var(--color-neutral-10) → oklch(0.582 0.038 var(--accent-hue))
  • Light
    var(--color-neutral-12) → oklch(0.24 0.024 var(--accent-hue))
    Dark
    var(--color-neutral-12) → oklch(0.949 0.007 var(--accent-hue))

Mark

2

Highlight colours for mark and search matches.

  • Light
    var(--color-neutral-13) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--color-neutral-13) → oklch(0.991 0.004 var(--accent-hue))
  • Ag
    Light
    var(--color-neutral-0) → oklch(1 0 0)
    Dark
    var(--color-neutral-0) → oklch(0.13 0.011 var(--accent-hue))

Link

1

A strong link’s text, which follows the intent: the strongest neutral, or the intent’s step 11.

  • Ag
    Light
    var(--color-neutral-13) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--color-neutral-13) → oklch(0.991 0.004 var(--accent-hue))

Semantic utilities

20

The Tailwind classes that read the roles above.

  • Light
    var(--intent-bg-normal) → oklch(0.991 0.004 var(--accent-hue))
    Dark
    var(--intent-bg-normal) → oklch(0.214 0.01 var(--accent-hue))
  • Light
    var(--intent-bg-subtler) → color-mix(in oklch, var(--color-neutral-9) 6%, transparent)
    Dark
    var(--intent-bg-subtler) → color-mix(in oklch, var(--color-neutral-9) 10%, transparent)
  • Light
    var(--intent-bg-subtle) → color-mix(in oklch, var(--color-neutral-9) 11%, transparent)
    Dark
    var(--intent-bg-subtle) → color-mix(in oklch, var(--color-neutral-9) 18%, transparent)
  • Light
    var(--intent-bg-strong) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--intent-bg-strong) → oklch(0.991 0.004 var(--accent-hue))
  • Light
    var(--intent-bg-inverted) → oklch(0.24 0.024 var(--accent-hue))
    Dark
    var(--intent-bg-inverted) → oklch(0.949 0.007 var(--accent-hue))
  • Light
    var(--intent-bg-raised) → oklch(0.991 0.004 var(--accent-hue))
    Dark
    var(--intent-bg-raised) → oklch(0.284 0.018 var(--accent-hue))
  • Light
    var(--intent-bg-sunken) → oklch(0.982 0.007 var(--accent-hue))
    Dark
    var(--intent-bg-sunken) → oklch(0.13 0.011 var(--accent-hue))
  • Light
    var(--intent-mark-bg) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--intent-mark-bg) → oklch(0.991 0.004 var(--accent-hue))
  • Ag
    Light
    var(--intent-text-normal) → oklch(0.24 0.024 var(--accent-hue))
    Dark
    var(--intent-text-normal) → oklch(0.949 0.007 var(--accent-hue))
  • Ag
    Light
    var(--intent-text-subtler) → oklch(0.609 0.037 var(--accent-hue))
    Dark
    var(--intent-text-subtler) → oklch(0.582 0.038 var(--accent-hue))
  • Ag
    Light
    var(--intent-text-subtle) → oklch(0.45 0.032 var(--accent-hue))
    Dark
    var(--intent-text-subtle) → oklch(0.87 0.028 var(--accent-hue))
  • Ag
    Light
    var(--intent-text-strong) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--intent-text-strong) → oklch(0.991 0.004 var(--accent-hue))
  • Ag
    Light
    var(--intent-text-inverted) → oklch(1 0 0)
    Dark
    var(--intent-text-inverted) → oklch(0.13 0.011 var(--accent-hue))
  • Ag
    Light
    var(--intent-text-on-strong) → oklch(1 0 0)
    Dark
    var(--intent-text-on-strong) → oklch(0.13 0.011 var(--accent-hue))
  • Ag
    Light
    var(--intent-mark-text) → oklch(1 0 0)
    Dark
    var(--intent-mark-text) → oklch(0.13 0.011 var(--accent-hue))
  • Light
    var(--intent-border-subtler) → oklch(0.909 0.019 var(--accent-hue))
    Dark
    var(--intent-border-subtler) → oklch(0.312 0.022 var(--accent-hue))
  • Light
    var(--intent-border-subtle) → oklch(0.888 0.022 var(--accent-hue))
    Dark
    var(--intent-border-subtle) → oklch(0.398 0.031 var(--accent-hue))
  • Light
    var(--intent-border-normal) → oklch(0.853 0.028 var(--accent-hue))
    Dark
    var(--intent-border-normal) → oklch(0.489 0.041 var(--accent-hue))
  • Light
    var(--intent-border-strong) → oklch(0.645 0.039 var(--accent-hue))
    Dark
    var(--intent-border-strong) → oklch(0.582 0.038 var(--accent-hue))
  • Light
    var(--intent-border-inverted) → oklch(0.24 0.024 var(--accent-hue))
    Dark
    var(--intent-border-inverted) → oklch(0.949 0.007 var(--accent-hue))

Hue

1

  • var(--accent-hue, 247) → 247

Raw steps

14

The active intent's 14 scale steps, for states a role doesn't cover.

  • Light
    var(--color-neutral-0) → oklch(1 0 0)
    Dark
    var(--color-neutral-0) → oklch(0.13 0.011 var(--accent-hue))
  • Light
    var(--color-neutral-1) → oklch(0.991 0.004 var(--accent-hue))
    Dark
    var(--color-neutral-1) → oklch(0.178 0.011 var(--accent-hue))
  • Light
    var(--color-neutral-2) → oklch(0.982 0.007 var(--accent-hue))
    Dark
    var(--color-neutral-2) → oklch(0.214 0.01 var(--accent-hue))
  • Light
    var(--color-neutral-3) → oklch(0.955 0.011 var(--accent-hue))
    Dark
    var(--color-neutral-3) → oklch(0.252 0.016 var(--accent-hue))
  • Light
    var(--color-neutral-4) → oklch(0.931 0.014 var(--accent-hue))
    Dark
    var(--color-neutral-4) → oklch(0.284 0.018 var(--accent-hue))
  • Light
    var(--color-neutral-5) → oklch(0.909 0.019 var(--accent-hue))
    Dark
    var(--color-neutral-5) → oklch(0.312 0.022 var(--accent-hue))
  • Light
    var(--color-neutral-6) → oklch(0.888 0.022 var(--accent-hue))
    Dark
    var(--color-neutral-6) → oklch(0.347 0.025 var(--accent-hue))
  • Light
    var(--color-neutral-7) → oklch(0.853 0.028 var(--accent-hue))
    Dark
    var(--color-neutral-7) → oklch(0.398 0.031 var(--accent-hue))
  • Light
    var(--color-neutral-8) → oklch(0.794 0.038 var(--accent-hue))
    Dark
    var(--color-neutral-8) → oklch(0.489 0.041 var(--accent-hue))
  • Light
    var(--color-neutral-9) → oklch(0.645 0.039 var(--accent-hue))
    Dark
    var(--color-neutral-9) → oklch(0.538 0.04 var(--accent-hue))
  • Light
    var(--color-neutral-10) → oklch(0.609 0.037 var(--accent-hue))
    Dark
    var(--color-neutral-10) → oklch(0.582 0.038 var(--accent-hue))
  • Light
    var(--color-neutral-11) → oklch(0.45 0.032 var(--accent-hue))
    Dark
    var(--color-neutral-11) → oklch(0.87 0.028 var(--accent-hue))
  • Light
    var(--color-neutral-12) → oklch(0.24 0.024 var(--accent-hue))
    Dark
    var(--color-neutral-12) → oklch(0.949 0.007 var(--accent-hue))
  • Light
    var(--color-neutral-13) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--color-neutral-13) → oklch(0.991 0.004 var(--accent-hue))

Alpha steps

4

Translucent steps that read on any surface.

  • Light
    color-mix(in oklch, var(--color-neutral-9) 6%, transparent)
    Dark
    color-mix(in oklch, var(--color-neutral-9) 10%, transparent)
  • Light
    color-mix(in oklch, var(--color-neutral-9) 11%, transparent)
    Dark
    color-mix(in oklch, var(--color-neutral-9) 18%, transparent)
  • Light
    color-mix(in oklch, var(--color-neutral-9) 17%, transparent)
    Dark
    color-mix(in oklch, var(--color-neutral-9) 28%, transparent)
  • Light
    color-mix(in oklch, var(--color-neutral-9) 23%, transparent)
    Dark
    color-mix(in oklch, var(--color-neutral-9) 38%, transparent)

Intent utilities

11

Point every role at one scale; children inherit it.

Data visualisation

GuidanceData visualisation·Colors

Categorical

8

  • Light
    oklch(0.604 0.178 266)
    Dark
    oklch(0.83 0.08 262)
    Contrast
    Lc 65 light, Lc 71 dark
  • Light
    oklch(0.735 0.184 353.4)
    Dark
    oklch(0.7 0.17 342.3)
    Contrast
    Lc 48 light, Lc 46 dark
  • Light
    oklch(0.484 0.062 199.8)
    Dark
    oklch(0.92 0.1 186)
    Contrast
    Lc 79 light, Lc 92 dark
  • Light
    oklch(0.82 0.14 74)
    Dark
    oklch(0.779 0.123 80)
    Contrast
    Lc 31 light, Lc 62 dark
  • Light
    oklch(0.46 0.178 305)
    Dark
    oklch(0.7 0.18 298.2)
    Contrast
    Lc 84 light, Lc 46 dark
  • Light
    oklch(0.655 0.153 141.4)
    Dark
    oklch(0.88 0.15 152.7)
    Contrast
    Lc 54 light, Lc 85 dark
  • Light
    oklch(0.46 0.16 6)
    Dark
    oklch(0.69 0.07 1.5)
    Contrast
    Lc 84 light, Lc 46 dark
  • Light
    oklch(0.745 0.117 226.8)
    Dark
    oklch(0.761 0.106 235.4)
    Contrast
    Lc 41 light, Lc 60 dark

Small sets

5

  • Light
    var(--chart-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-1) → oklch(0.83 0.08 262)
  • Light
    var(--chart-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-2) → oklch(0.7 0.17 342.3)
  • Light
    var(--chart-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-1) → oklch(0.83 0.08 262)
  • Light
    var(--chart-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-2) → oklch(0.7 0.17 342.3)
  • Light
    var(--chart-3) → oklch(0.484 0.062 199.8)
    Dark
    var(--chart-3) → oklch(0.92 0.1 186)

Sequential

9

  • Light
    oklch(0.97 0.032 85)
    Dark
    oklch(0.26 0.04 285)
    Contrast
    Lc 0 light, Lc 0 dark
  • Light
    oklch(0.889 0.095 75.6)
    Dark
    oklch(0.323 0.115 291.3)
    Contrast
    Lc 18 light, Lc 0 dark
  • Light
    oklch(0.8 0.136 57.5)
    Dark
    oklch(0.395 0.175 303.8)
    Contrast
    Lc 35 light, Lc 8 dark
  • Light
    oklch(0.7 0.191 26.3)
    Dark
    oklch(0.482 0.212 325.6)
    Contrast
    Lc 53 light, Lc 17 dark
  • Light
    oklch(0.615 0.22 5)
    Dark
    oklch(0.57 0.215 350)
    Contrast
    Lc 65 light, Lc 27 dark
  • Light
    oklch(0.531 0.228 343.8)
    Dark
    oklch(0.657 0.205 15.6)
    Contrast
    Lc 75 light, Lc 39 dark
  • Light
    oklch(0.438 0.219 312.5)
    Dark
    oklch(0.745 0.163 43.8)
    Contrast
    Lc 86 light, Lc 54 dark
  • Light
    oklch(0.355 0.19 294.4)
    Dark
    oklch(0.833 0.125 66.3)
    Contrast
    Lc 94 light, Lc 71 dark
  • Light
    oklch(0.28 0.14 285)
    Dark
    oklch(0.92 0.086 85)
    Contrast
    Lc 100 light, Lc 89 dark

Diverging

9

  • Light
    oklch(0.4 0.2 268)
    Dark
    oklch(0.76 0.123 262)
    Contrast
    Lc 90 light, Lc 59 dark
  • Light
    oklch(0.55 0.118 235.8)
    Dark
    oklch(0.685 0.14 232)
    Contrast
    Lc 70 light, Lc 48 dark
  • Light
    oklch(0.7 0.115 212.5)
    Dark
    oklch(0.59 0.104 213.5)
    Contrast
    Lc 48 light, Lc 34 dark
  • Light
    oklch(0.835 0.061 200)
    Dark
    oklch(0.473 0.069 205)
    Contrast
    Lc 26 light, Lc 19 dark
  • Light
    oklch(0.865 0.076 60)
    Dark
    oklch(0.503 0.099 32)
    Contrast
    Lc 22 light, Lc 20 dark
  • Light
    oklch(0.78 0.135 54)
    Dark
    oklch(0.63 0.145 41)
    Contrast
    Lc 38 light, Lc 36 dark
  • Light
    oklch(0.69 0.178 43.5)
    Dark
    oklch(0.732 0.158 56)
    Contrast
    Lc 54 light, Lc 52 dark
  • Light
    oklch(0.6 0.2 30)
    Dark
    oklch(0.83 0.145 74)
    Contrast
    Lc 67 light, Lc 71 dark
  • Light
    var(--color-neutral-3) → oklch(0.955 0.011 var(--accent-hue))
    Dark
    var(--color-neutral-6) → oklch(0.347 0.025 var(--accent-hue))
    Contrast
    Lc 0 light, Lc 0 dark

Status

4

  • Light
    oklch(0.569 0.181 28.264)
    Dark
    oklch(0.798 0.116 20)
    Contrast
    Lc 71 light, Lc 63 dark
  • Light
    var(--color-success-11) → oklch(0.44 0.078 183.645)
    Dark
    var(--color-success-11) → oklch(0.861 0.129 184.826)
    Contrast
    Lc 84 light, Lc 81 dark
  • Light
    var(--color-warning-11) → oklch(0.465 0.095 82.642)
    Dark
    var(--color-warning-9) → oklch(0.841 0.172 86.226)
    Contrast
    Lc 82 light, Lc 73 dark
  • Light
    var(--color-brand-secondary-11) → oklch(0.463 0.139 42)
    Dark
    var(--color-brand-secondary-9) → oklch(0.753 0.155 42)
    Contrast
    Lc 83 light, Lc 55 dark

Highlight

2

  • Light
    oklch(var(--chart-highlight-lc) var(--accent-hue))
    Dark
    oklch(var(--chart-highlight-lc) var(--accent-hue))
    Contrast
    Lc 64 light, Lc 72 dark
  • Light
    0.604 0.178
    Dark
    0.83 0.08

Data greys

5

  • Light
    color-mix(in oklch, var(--color-neutral-9) 10%, transparent)
    Dark
    color-mix(in oklch, var(--color-neutral-11) 9%, transparent)
    Contrast
    Lc 58 light, Lc 79 dark
  • Light
    var(--color-neutral-8) → oklch(0.794 0.038 var(--accent-hue))
    Dark
    color-mix(in oklch, var(--color-neutral-10), var(--color-neutral-11) 35%)
    Contrast
    Lc 34 light, Lc 46 dark
  • Light
    var(--color-neutral-8) → oklch(0.794 0.038 var(--accent-hue))
    Dark
    var(--color-neutral-8) → oklch(0.489 0.041 var(--accent-hue))
    Contrast
    Lc 34 light, Lc 20 dark
  • Light
    var(--color-neutral-9) → oklch(0.645 0.039 var(--accent-hue))
    Dark
    color-mix(in oklch, var(--color-neutral-10), var(--color-neutral-11) 45%)
    Contrast
    Lc 58 light, Lc 51 dark
  • Light
    var(--color-neutral-5) → oklch(0.909 0.019 var(--accent-hue))
    Dark
    var(--color-neutral-5) → oklch(0.312 0.022 var(--accent-hue))
    Contrast
    Lc 14 light, Lc 0 dark

Chart ink

5

  • Light
    var(--intent-border-subtler) → oklch(0.909 0.019 var(--accent-hue))
    Dark
    var(--intent-border-subtler) → oklch(0.312 0.022 var(--accent-hue))
  • Light
    var(--intent-border-normal) → oklch(0.853 0.028 var(--accent-hue))
    Dark
    var(--intent-border-normal) → oklch(0.489 0.041 var(--accent-hue))
  • Ag
    Light
    var(--intent-text-subtle) → oklch(0.45 0.032 var(--accent-hue))
    Dark
    var(--intent-text-subtle) → oklch(0.87 0.028 var(--accent-hue))
  • Ag
    Light
    var(--intent-text-strong) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--intent-text-strong) → oklch(0.991 0.004 var(--accent-hue))
  • Light
    var(--intent-bg-normal) → oklch(0.991 0.004 var(--accent-hue))
    Dark
    var(--intent-bg-normal) → oklch(0.214 0.01 var(--accent-hue))

Tailwind utilities

46

  • +3 more
    Light
    var(--chart-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-1) → oklch(0.83 0.08 262)
    Contrast
    Lc 65 light, Lc 71 dark
  • +3 more
    Light
    var(--chart-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-2) → oklch(0.7 0.17 342.3)
    Contrast
    Lc 48 light, Lc 46 dark
  • +3 more
    Light
    var(--chart-3) → oklch(0.484 0.062 199.8)
    Dark
    var(--chart-3) → oklch(0.92 0.1 186)
    Contrast
    Lc 79 light, Lc 92 dark
  • +3 more
    Light
    var(--chart-4) → oklch(0.82 0.14 74)
    Dark
    var(--chart-4) → oklch(0.779 0.123 80)
    Contrast
    Lc 31 light, Lc 62 dark
  • +3 more
    Light
    var(--chart-5) → oklch(0.46 0.178 305)
    Dark
    var(--chart-5) → oklch(0.7 0.18 298.2)
    Contrast
    Lc 84 light, Lc 46 dark
  • +3 more
    Light
    var(--chart-6) → oklch(0.655 0.153 141.4)
    Dark
    var(--chart-6) → oklch(0.88 0.15 152.7)
    Contrast
    Lc 54 light, Lc 85 dark
  • +3 more
    Light
    var(--chart-7) → oklch(0.46 0.16 6)
    Dark
    var(--chart-7) → oklch(0.69 0.07 1.5)
    Contrast
    Lc 84 light, Lc 46 dark
  • +3 more
    Light
    var(--chart-8) → oklch(0.745 0.117 226.8)
    Dark
    var(--chart-8) → oklch(0.761 0.106 235.4)
    Contrast
    Lc 41 light, Lc 60 dark
  • +3 more
    Light
    var(--chart-pair-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-pair-1) → oklch(0.83 0.08 262)
  • +3 more
    Light
    var(--chart-pair-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-pair-2) → oklch(0.7 0.17 342.3)
  • +3 more
    Light
    var(--chart-trio-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-trio-1) → oklch(0.83 0.08 262)
  • +3 more
    Light
    var(--chart-trio-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-trio-2) → oklch(0.7 0.17 342.3)
  • +3 more
    Light
    var(--chart-trio-3) → oklch(0.484 0.062 199.8)
    Dark
    var(--chart-trio-3) → oklch(0.92 0.1 186)
  • +3 more
    Light
    var(--chart-heat-0) → oklch(0.97 0.032 85)
    Dark
    var(--chart-heat-0) → oklch(0.26 0.04 285)
    Contrast
    Lc 0 light, Lc 0 dark
  • +3 more
    Light
    var(--chart-heat-1) → oklch(0.889 0.095 75.6)
    Dark
    var(--chart-heat-1) → oklch(0.323 0.115 291.3)
    Contrast
    Lc 18 light, Lc 0 dark
  • +3 more
    Light
    var(--chart-heat-2) → oklch(0.8 0.136 57.5)
    Dark
    var(--chart-heat-2) → oklch(0.395 0.175 303.8)
    Contrast
    Lc 35 light, Lc 8 dark
  • +3 more
    Light
    var(--chart-heat-3) → oklch(0.7 0.191 26.3)
    Dark
    var(--chart-heat-3) → oklch(0.482 0.212 325.6)
    Contrast
    Lc 53 light, Lc 17 dark
  • +3 more
    Light
    var(--chart-heat-4) → oklch(0.615 0.22 5)
    Dark
    var(--chart-heat-4) → oklch(0.57 0.215 350)
    Contrast
    Lc 65 light, Lc 27 dark
  • +3 more
    Light
    var(--chart-heat-5) → oklch(0.531 0.228 343.8)
    Dark
    var(--chart-heat-5) → oklch(0.657 0.205 15.6)
    Contrast
    Lc 75 light, Lc 39 dark
  • +3 more
    Light
    var(--chart-heat-6) → oklch(0.438 0.219 312.5)
    Dark
    var(--chart-heat-6) → oklch(0.745 0.163 43.8)
    Contrast
    Lc 86 light, Lc 54 dark
  • +3 more
    Light
    var(--chart-heat-7) → oklch(0.355 0.19 294.4)
    Dark
    var(--chart-heat-7) → oklch(0.833 0.125 66.3)
    Contrast
    Lc 94 light, Lc 71 dark
  • +3 more
    Light
    var(--chart-heat-8) → oklch(0.28 0.14 285)
    Dark
    var(--chart-heat-8) → oklch(0.92 0.086 85)
    Contrast
    Lc 100 light, Lc 89 dark
  • +3 more
    Light
    var(--chart-diverge-pos-4) → oklch(0.4 0.2 268)
    Dark
    var(--chart-diverge-pos-4) → oklch(0.76 0.123 262)
    Contrast
    Lc 90 light, Lc 59 dark
  • +3 more
    Light
    var(--chart-diverge-pos-3) → oklch(0.55 0.118 235.8)
    Dark
    var(--chart-diverge-pos-3) → oklch(0.685 0.14 232)
    Contrast
    Lc 70 light, Lc 48 dark
  • +3 more
    Light
    var(--chart-diverge-pos-2) → oklch(0.7 0.115 212.5)
    Dark
    var(--chart-diverge-pos-2) → oklch(0.59 0.104 213.5)
    Contrast
    Lc 48 light, Lc 34 dark
  • +3 more
    Light
    var(--chart-diverge-pos-1) → oklch(0.835 0.061 200)
    Dark
    var(--chart-diverge-pos-1) → oklch(0.473 0.069 205)
    Contrast
    Lc 26 light, Lc 19 dark
  • +3 more
    Light
    var(--chart-diverge-0) → oklch(0.955 0.011 var(--accent-hue))
    Dark
    var(--chart-diverge-0) → oklch(0.347 0.025 var(--accent-hue))
    Contrast
    Lc 0 light, Lc 0 dark
  • +3 more
    Light
    var(--chart-diverge-neg-1) → oklch(0.865 0.076 60)
    Dark
    var(--chart-diverge-neg-1) → oklch(0.503 0.099 32)
    Contrast
    Lc 22 light, Lc 20 dark
  • +3 more
    Light
    var(--chart-diverge-neg-2) → oklch(0.78 0.135 54)
    Dark
    var(--chart-diverge-neg-2) → oklch(0.63 0.145 41)
    Contrast
    Lc 38 light, Lc 36 dark
  • +3 more
    Light
    var(--chart-diverge-neg-3) → oklch(0.69 0.178 43.5)
    Dark
    var(--chart-diverge-neg-3) → oklch(0.732 0.158 56)
    Contrast
    Lc 54 light, Lc 52 dark
  • +3 more
    Light
    var(--chart-diverge-neg-4) → oklch(0.6 0.2 30)
    Dark
    var(--chart-diverge-neg-4) → oklch(0.83 0.145 74)
    Contrast
    Lc 67 light, Lc 71 dark
  • +3 more
    Light
    var(--chart-status-good) → oklch(0.44 0.078 183.645)
    Dark
    var(--chart-status-good) → oklch(0.861 0.129 184.826)
    Contrast
    Lc 84 light, Lc 81 dark
  • +3 more
    Light
    var(--chart-status-warning) → oklch(0.465 0.095 82.642)
    Dark
    var(--chart-status-warning) → oklch(0.841 0.172 86.226)
    Contrast
    Lc 82 light, Lc 73 dark
  • +3 more
    Light
    var(--chart-status-serious) → oklch(0.463 0.139 42)
    Dark
    var(--chart-status-serious) → oklch(0.753 0.155 42)
    Contrast
    Lc 83 light, Lc 55 dark
  • +3 more
    Light
    var(--chart-status-critical) → oklch(0.569 0.181 28.264)
    Dark
    var(--chart-status-critical) → oklch(0.798 0.116 20)
    Contrast
    Lc 71 light, Lc 63 dark
  • +3 more
    var(--chart-highlight) → oklch(var(--chart-highlight-lc) var(--accent-hue))
    Contrast
    Lc 64 light, Lc 72 dark
  • +3 more
    Light
    var(--chart-context) → oklch(0.794 0.038 var(--accent-hue))
    Dark
    var(--chart-context) → color-mix(in oklch, var(--color-neutral-10), var(--color-neutral-11) 35%)
    Contrast
    Lc 34 light, Lc 46 dark
  • +3 more
    Light
    var(--chart-band) → color-mix(in oklch, var(--color-neutral-9) 10%, transparent)
    Dark
    var(--chart-band) → color-mix(in oklch, var(--color-neutral-11) 9%, transparent)
    Contrast
    Lc 58 light, Lc 79 dark
  • +3 more
    Light
    var(--chart-median) → oklch(0.794 0.038 var(--accent-hue))
    Dark
    var(--chart-median) → oklch(0.489 0.041 var(--accent-hue))
    Contrast
    Lc 34 light, Lc 20 dark
  • +3 more
    Light
    var(--chart-other) → oklch(0.645 0.039 var(--accent-hue))
    Dark
    var(--chart-other) → color-mix(in oklch, var(--color-neutral-10), var(--color-neutral-11) 45%)
    Contrast
    Lc 58 light, Lc 51 dark
  • +3 more
    Light
    var(--chart-missing) → oklch(0.909 0.019 var(--accent-hue))
    Dark
    var(--chart-missing) → oklch(0.312 0.022 var(--accent-hue))
    Contrast
    Lc 14 light, Lc 0 dark
  • +3 more
    Light
    var(--chart-grid) → oklch(0.909 0.019 var(--accent-hue))
    Dark
    var(--chart-grid) → oklch(0.312 0.022 var(--accent-hue))
  • +3 more
    Light
    var(--chart-axis) → oklch(0.853 0.028 var(--accent-hue))
    Dark
    var(--chart-axis) → oklch(0.489 0.041 var(--accent-hue))
  • +3 more
    Light
    var(--chart-label) → oklch(0.45 0.032 var(--accent-hue))
    Dark
    var(--chart-label) → oklch(0.87 0.028 var(--accent-hue))
  • +3 more
    Light
    var(--chart-value) → oklch(0.182 0.015 var(--accent-hue))
    Dark
    var(--chart-value) → oklch(0.991 0.004 var(--accent-hue))
  • +3 more
    Light
    var(--chart-gap) → oklch(0.991 0.004 var(--accent-hue))
    Dark
    var(--chart-gap) → oklch(0.214 0.01 var(--accent-hue))

Emphasis and states

GuidanceColors·Interactions·Accessibility

Focus ring

3

  • 4px
  • 30%
  • 20%

Emphasis presets

16

Background, text, border and shadow in one class. Add is-interactive for states.

  • Text fields: sunken, with one translucent edge that takes the fill's tint instead of sitting on it as grey. Pair with is-interactive-field, which owns hover, focus and invalid. The edge is resolved on the element so an intent on the field tints it too. The mix sits in @supports with an explicit fallback, or the build falls back to a solid step 9, darker than the border it replaces.

  • The chosen item in a trackless control, over emphasis-subtle: a soft fill and a strong icon, which carry the state together. The fill alone is under APCA's Lc 45 for UI, so this is for quiet controls. Doubled, and repeated for the interactive states, to outrank the emphasis in either emit order. Forced colours drop the fill, so an edge takes over.

  • Aa

    The unchosen items beside an is-selected one. Their subtle label sits well under the chosen strong one, so the label tells them apart as well as the fill. Doubled to outrank an emphasis's text. Apply it only at rest, so it never meets the chosen state's utility.

  • Aa

    is-selected's label without its fill, for a chosen item whose fill is drawn by an indicator behind it.

  • Aa

    The same over an emphasis-strong indicator.

  • Pairs with a raised or floating fill. The doubled selector outranks that fill in either emit order; a field's hover, focus and invalid fills still win.

  • Fixed-dark so it stays a scrim in both themes (the intent scale flips light/dark), tinted by the intent hue: neutral near-black, danger a dark red. Its label is fixed white for the same reason.

  • Tints without blurring, so what's behind stays readable: a sheet that peeks over its page.

Interaction states

5

Hover, press, focus ring and disabled. Fields shift neutral, then accent, then danger.

  • is-interactive's focus ring alone, for a focus target that isn't clicked, such as a scroll region or a tabIndex=-1 landing target. is-interactive applies it, so the two compose on one element in either order.

  • A surface whose main link sits inside it, such as a card that also holds other actions. Mark that link with data-interactive-target: its overlay covers the surface, other controls sit above it, and the surface takes the link's hover, press and focus states. Inert until a target is present. A target belongs to the nearest surface around it, so a card holding table rows that are surfaces of their own ignores their targets. Each state rule ends on the surface itself, so the :not(:has()) adds nothing to the invalidation set. @scope can't do this: its lower limit doesn't bound a :has() argument.

Internal surfaces

1

Used inside Roadie components, not for apps: the floating fill and the subtle text lift on it.

  • Internal, not public API: the floating fill and the subtle text lift that keeps Lc 75 on it, kept together so they can't drift apart. emphasis-floating builds on it, and so do popups that draw their own edge and shadow.

Typography

GuidanceTypography·Prose styles

Font families

4

  • Ag
    'Intermission', 'Inter', ui-sans-serif, system-ui, sans-serif
  • Ag
    'IBM Plex Mono', ui-monospace, monospace
  • var(--font-sans) → 'Intermission', 'Inter', ui-sans-serif, system-ui, sans-serif
  • var(--font-sans) → 'Intermission', 'Inter', ui-sans-serif, system-ui, sans-serif

Font sizes

11

  • Ag
    0.75rem
  • Ag
    0.875rem
  • Ag
    1rem
  • Ag
    clamp(1.125rem, 1.0147rem + 0.3676vw, 1.25rem)
  • Ag
    clamp(1.25rem, 1.0294rem + 0.7353vw, 1.5rem)
  • Ag
    clamp(1.5rem, 1.0588rem + 1.4706vw, 2rem)
  • Ag
    clamp(1.75rem, 1.0882rem + 2.2059vw, 2.5rem)
  • Ag
    clamp(2rem, 1.1176rem + 2.9412vw, 3rem)
  • Ag
    clamp(2.25rem, 0.7059rem + 5.1471vw, 4rem)
  • Ag
    clamp(2.5rem, 0.5147rem + 6.6176vw, 4.75rem)
  • Ag
    clamp(2.75rem, -0.1176rem + 9.5588vw, 6rem)

Font size line heights

11

Size classes set no line height, so pair them with leading-*.

  • initial
  • initial
  • initial
  • initial
  • initial
  • initial
  • initial
  • initial
  • initial
  • initial
  • initial

Line heights

11

  • Line one line two line three
    1
  • Line one line two line three
    1.2
  • Line one line two line three
    1.35
  • Line one line two line three
    1.5
  • Line one line two line three
    1.625
  • Line one line two line three
    1.75
  • Line one line two line three
    2
  • Line one line two line three
    1.2
  • Line one line two line three
    1.35
  • Line one line two line three
    1.5
  • Line one line two line three
    1.625

Letter spacing

11

  • Aa
    -0.03em
  • Aa
    -0.02em
  • Aa
    -0.01em
  • Aa
    0em
  • Aa
    0.01em
  • Aa
    0.02em
  • Aa
    0.03em
  • Aa
    -0.02em
  • Aa
    -0.01em
  • Aa
    -0.01em
  • Aa
    0em

Prose

17

The .prose class, and the variables that set its size, rhythm, measure, and headings.

  • var(--text-base) → 1rem
  • var(--leading-prose) → 1.5
  • 1.25em
  • 65ch
  • var(--text-4xl) → clamp(2rem, 1.1176rem + 2.9412vw, 3rem)
  • 700
  • var(--text-3xl) → clamp(1.75rem, 1.0882rem + 2.2059vw, 2.5rem)
  • 700
  • var(--text-2xl) → clamp(1.5rem, 1.0588rem + 1.4706vw, 2rem)
  • 700
  • var(--text-xl) → clamp(1.25rem, 1.0294rem + 0.7353vw, 1.5rem)
  • 700
  • var(--text-lg) → clamp(1.125rem, 1.0147rem + 0.3676vw, 1.25rem)
  • 600
  • var(--text-base) → 1rem
  • 600
  • Ag

Display styles

14

Size, weight, leading and tracking for headings, in UI and prose flavours.

  • Ag
  • Ag
  • Ag
  • Ag
  • Ag
  • Ag
  • Ag
  • Ag
  • Ag
  • Ag
  • Ag
  • Ag
  • Ag
  • Ag

Body styles

4

Composed body text for interfaces, prose and code.

  • Ag
  • Ag
  • Ag
  • Ag

Elevation and layering

GuidanceElevation

Shadows

16

Tinted by the surrounding intent. Inset shadows recess a surface.

  • Light
    0 0 0 1px oklch(0.3 0.05 var(--intent-hue) / 0.04), 0 1px 1px 0 oklch(0.3 0.05 var(--intent-hue) / 0.07)
    Dark
    0 0 0 1px oklch(0.05 0.02 var(--intent-hue) / 0.3), 0 1px 1px 0 oklch(0.05 0.02 var(--intent-hue) / 0.3)
  • Light
    0 0 0 1px oklch(0.3 0.05 var(--intent-hue) / 0.05), 0 1px 1px 0 oklch(0.3 0.05 var(--intent-hue) / 0.06), 0 2px 2px 0 oklch(0.3 0.05 var(--intent-hue) / 0.06)
    Dark
    0 0 0 1px oklch(0.05 0.02 var(--intent-hue) / 0.35), 0 1px 1px 0 oklch(0.05 0.02 var(--intent-hue) / 0.26), 0 2px 2px 0 oklch(0.05 0.02 var(--intent-hue) / 0.26)
  • Light
    0 0 0 1px oklch(0.3 0.05 var(--intent-hue) / 0.05), 0 1px 1px 0 oklch(0.3 0.05 var(--intent-hue) / 0.05), 0 2px 2px 0 oklch(0.3 0.05 var(--intent-hue) / 0.05), 0 4px 4px 0 oklch(0.3 0.05 var(--intent-hue) / 0.05)
    Dark
    0 0 0 1px oklch(0.05 0.02 var(--intent-hue) / 0.35), 0 1px 1px 0 oklch(0.05 0.02 var(--intent-hue) / 0.22), 0 2px 2px 0 oklch(0.05 0.02 var(--intent-hue) / 0.22), 0 4px 4px 0 oklch(0.05 0.02 var(--intent-hue) / 0.22)
  • Light
    0 0 0 1px oklch(0.3 0.05 var(--intent-hue) / 0.05), 0 1px 1px 0 oklch(0.3 0.05 var(--intent-hue) / 0.045), 0 2px 2px 0 oklch(0.3 0.05 var(--intent-hue) / 0.045), 0 4px 4px 0 oklch(0.3 0.05 var(--intent-hue) / 0.045), 0 8px 8px 0 oklch(0.3 0.05 var(--intent-hue) / 0.045)
    Dark
    0 0 0 1px oklch(0.05 0.02 var(--intent-hue) / 0.35), 0 1px 1px 0 oklch(0.05 0.02 var(--intent-hue) / 0.2), 0 2px 2px 0 oklch(0.05 0.02 var(--intent-hue) / 0.2), 0 4px 4px 0 oklch(0.05 0.02 var(--intent-hue) / 0.2), 0 8px 8px 0 oklch(0.05 0.02 var(--intent-hue) / 0.2)
  • Light
    0 0 0 1px oklch(0.3 0.05 var(--intent-hue) / 0.06), 0 1px 1px 0 oklch(0.3 0.05 var(--intent-hue) / 0.04), 0 2px 2px 0 oklch(0.3 0.05 var(--intent-hue) / 0.04), 0 4px 4px 0 oklch(0.3 0.05 var(--intent-hue) / 0.04), 0 8px 8px 0 oklch(0.3 0.05 var(--intent-hue) / 0.04), 0 16px 16px 0 oklch(0.3 0.05 var(--intent-hue) / 0.04)
    Dark
    0 0 0 1px oklch(0.05 0.02 var(--intent-hue) / 0.4), 0 1px 1px 0 oklch(0.05 0.02 var(--intent-hue) / 0.18), 0 2px 2px 0 oklch(0.05 0.02 var(--intent-hue) / 0.18), 0 4px 4px 0 oklch(0.05 0.02 var(--intent-hue) / 0.18), 0 8px 8px 0 oklch(0.05 0.02 var(--intent-hue) / 0.18), 0 16px 16px 0 oklch(0.05 0.02 var(--intent-hue) / 0.18)
  • Light
    0 0 0 1px oklch(0.3 0.05 var(--intent-hue) / 0.06), 0 1px 1px 0 oklch(0.3 0.05 var(--intent-hue) / 0.035), 0 2px 2px 0 oklch(0.3 0.05 var(--intent-hue) / 0.035), 0 4px 4px 0 oklch(0.3 0.05 var(--intent-hue) / 0.035), 0 8px 8px 0 oklch(0.3 0.05 var(--intent-hue) / 0.035), 0 16px 16px 0 oklch(0.3 0.05 var(--intent-hue) / 0.035), 0 32px 32px 0 oklch(0.3 0.05 var(--intent-hue) / 0.035)
    Dark
    0 0 0 1px oklch(0.05 0.02 var(--intent-hue) / 0.4), 0 1px 1px 0 oklch(0.05 0.02 var(--intent-hue) / 0.16), 0 2px 2px 0 oklch(0.05 0.02 var(--intent-hue) / 0.16), 0 4px 4px 0 oklch(0.05 0.02 var(--intent-hue) / 0.16), 0 8px 8px 0 oklch(0.05 0.02 var(--intent-hue) / 0.16), 0 16px 16px 0 oklch(0.05 0.02 var(--intent-hue) / 0.16), 0 32px 32px 0 oklch(0.05 0.02 var(--intent-hue) / 0.16)
  • Light
    inset 0 1px 1px 0 oklch(0.3 0.05 var(--intent-hue) / 0.06)
    Dark
    inset 0 1px 2px 0 oklch(0.05 0.02 var(--intent-hue) / 0.2), inset 0 -1px 0 0 rgba(255, 255, 255, 0.04)
  • Light
    inset 0 1px 2px 0 oklch(0.3 0.05 var(--intent-hue) / 0.07), inset 0 2px 4px -2px oklch(0.3 0.05 var(--intent-hue) / 0.05)
    Dark
    inset 0 1px 3px 0 oklch(0.05 0.02 var(--intent-hue) / 0.25), inset 0 2px 6px -2px oklch(0.05 0.02 var(--intent-hue) / 0.2), inset 0 -1px 0 0 rgba(255, 255, 255, 0.05)

Rim light

7

A top-edge highlight that lifts a raised or strong surface.

  • Light
    inset 0 1px 0 0 rgba(255, 255, 255, 0.08)
    Dark
    inset 0 1px 0 0 rgba(255, 255, 255, 0.02)
  • Light
    inset 0 1px 0 0 rgba(255, 255, 255, 0.15)
    Dark
    inset 0 1px 0 0 rgba(255, 255, 255, 0.04)
  • Light
    inset 0 1px 0 0 rgba(255, 255, 255, 0.4), inset 0 0 0 1px rgba(255, 255, 255, 0.06)
    Dark
    inset 0 1px 0 0 rgba(255, 255, 255, 0.06)
  • Light
    inset 0 1px 0 0 rgba(255, 255, 255, 0.6), inset 0 0 0 1px rgba(255, 255, 255, 0.1)
    Dark
    inset 0 1px 0 0 rgba(255, 255, 255, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.03)
  • Light
    var(--rim-light-normal) → inset 0 1px 0 0 rgba(255, 255, 255, 0.4), inset 0 0 0 1px rgba(255, 255, 255, 0.06)
    Dark
    var(--rim-light-normal) → inset 0 1px 0 0 rgba(255, 255, 255, 0.06)
  • Light
    rgba(255, 255, 255, 0.6)
    Dark
    rgba(255, 255, 255, 0.1)

Sheen

2

The shade and highlight a loading placeholder sweeps between.

  • Light
    color-mix(in oklch, var(--intent-9) 32%, transparent)
    Dark
    transparent
  • Light
    transparent
    Dark
    color-mix(in oklch, var(--intent-9) 34%, transparent)

Layering

10

Named stacking tiers; use z-popover, never a raw number.

  • -1

    pulled out of the stacking flow

  • 0

    default in-flow content

  • 10

    in-flow elevated accents pinned to a surface

  • 20

    position: sticky headers / toolbars

  • 30

    dialog / drawer backdrop scrim

  • 40

    dialog / drawer surface

  • 50

    popover, select, combobox, autocomplete, dropdown panels

  • 60

    transient notifications

  • 70

    tooltips — always on top

  • 80

    blocking alert dialogs — above an open modal / drawer

Shape and layout

GuidanceShape·Layout

Radius

11

  • Tailwind
    0.125rem
  • Tailwind
    0.25rem
  • Tailwind
    0.375rem
  • Tailwind
    0.5rem
  • Tailwind
    0.75rem
  • Tailwind
    1rem
  • Tailwind
    1.5rem
  • Tailwind
    2rem
  • 2.5rem

    40px

  • 3rem

    48px

  • 3.5rem

    56px

Containers

15

  • Tailwind
    16rem
  • Tailwind
    18rem
  • Tailwind
    20rem
  • Tailwind
    24rem
  • Tailwind
    28rem
  • Tailwind
    32rem
  • Tailwind
    36rem
  • Tailwind
    42rem
  • Tailwind
    48rem
  • Tailwind
    56rem
  • Tailwind
    64rem
  • Tailwind
    72rem
  • Tailwind
    80rem
  • 90rem

    1440px

  • Container: centered with responsive padding and configurable max width. Replaces Tailwind's default container and the v1 <Container> component. Usage: <div className="container-8xl">...</div> → max-width: 1440px <div className="container-4xl">...</div> → max-width: 896px Any --container-* token works: 3xs–7xl (Tailwind defaults) + 8xl (1440px).

Spacing

1

The unit that gap-*, p-*, m-*, w-*, and h-* multiply.

  • Tailwind
    0.25rem

Breakpoints

5

Viewport widths where the sm: to 2xl: variants switch.

  • Tailwind
    40rem
  • Tailwind
    48rem
  • Tailwind
    64rem
  • Tailwind
    80rem
  • Tailwind
    96rem

Motion

GuidanceMotion·View transitions

Durations

18

  • 0ms
  • 50ms
  • 100ms
  • 150ms
  • 200ms
  • 300ms
  • 400ms
  • 600ms
  • 1800ms
  • 2400ms
  • var(--duration-instant) → 0ms
  • var(--duration-fastest) → 50ms
  • var(--duration-fast) → 100ms
  • var(--duration-normal) → 150ms
  • var(--duration-moderate) → 200ms
  • var(--duration-slow) → 300ms
  • var(--duration-slower) → 400ms
  • var(--duration-slowest) → 600ms

Easings

5

  • cubic-bezier(0.4, 0, 0.2, 1)
  • cubic-bezier(0, 0, 0.2, 1)
  • cubic-bezier(0.4, 0, 1, 1)
  • linear(0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%, 0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001 85.9%, 1)
  • linear(0, 0.012 1.7%, 0.044 3.3%, 0.092 5%, 0.223 8.3%, 0.607 16.7%, 0.744 20%, 0.859 23.3%, 0.949 26.7%, 1.015 30%, 1.073 35%, 1.094 40%, 1.085 46.7%, 1.008 66.7%, 0.991 81.7%, 1)

Transitions

1

  • background-color var(--duration-moderate) var(--ease-standard), border-color var(--duration-moderate) var(--ease-standard), color var(--duration-moderate) var(--ease-standard), box-shadow var(--duration-moderate) var(--ease-standard), outline-width var(--duration-normal) var(--ease-standard), outline-color var(--duration-normal) var(--ease-standard), transform var(--duration-normal) var(--ease-spring)

Stagger

1

  • 30ms

Animations

15

Play once when the class is applied. Press a preview to replay it.

  • Entrance: fade + slide-up + slight scale. Pair with origin-bottom (or any origin-*) to grow from a specific edge.

  • @deprecated use animate-fade-in, remove in v3

  • @deprecated no replacement, use motion-scale or motion-slide, remove in v3

  • @deprecated use animate-scale-in, remove in v3

  • @deprecated no replacement, use motion-scale or motion-slide, remove in v3

  • @deprecated use animate-pop-in, remove in v3

  • Loops while content is pending. prefers-reduced-motion cuts it to a single 0.01ms pass, which leaves the element at full opacity: a static tint.

  • A loading surface: a tint pulse under a highlight sweeping across it. background-attachment: fixed anchors the gradient to the viewport, so every element wearing this class shows the slice of one shared sweep that falls where it sits. A one-line placeholder and a full-width block then agree, which a per-element sweep cannot do: it would restart at each element's own edges and run at a different apparent speed on each. The cost is that the sweep paints rather than riding the compositor, since only background-position can express a shared gradient. The element's own fill (from emphasis-*) is the base; the gradient paints --sheen-shade over it everywhere the band is not and --sheen-highlight inside the band, so the band is the lighter of the two in both themes. Radius clips the background, so a circle stays a circle. Reduced motion drops the gradient and leaves the static tint.

  • Work of unknown length: a bar sweeping across a positioned parent that clips its overflow, such as a progress track. The sweep animates the logical inset, so it runs right to left under dir='rtl'. Reduced motion holds a full-width bar at a soft tint, since the global reset would otherwise park it off the end of the track.

  • One-shot attention cues. Replay by toggling the class.

  • A tap response: animate-pop at 600ms reads as a notification.

Enter and exit transitions

5

Driven by data-starting-style and data-ending-style. Press a preview to toggle it.

  • Scale + fade. Pair with origin-[var(--transform-origin)] (or any origin-*) to scale from a specific point.

  • Fade + slide — up on enter, down on exit.

  • Drawer surface — slides off its anchored edge and tracks Base UI's live swipe offset. transform, not translate: Base UI writes an inline transform mid-swipe, which must override the resting value, not compose. A surface held off its edge sets --drawer-float so it travels clear.

  • A toast in a Base UI toast viewport. Collapsed, the stack sits behind the frontmost toast, clamped to its height and peeking out away from the edge; fanned out while the viewport is hovered or focused. Enters, restacks and snaps back from a swipe on a lively spring; leaves quickly towards its edge or the way it was swiped. Pair with absolute bottom-0 origin-bottom, or with absolute top-0 origin-top and data-side='top' for a top viewport.

  • ToggleOpen

    Put on a <details>, or a Base UI collapsible panel, so its content opens and closes by height.

Keyframes

11

The keyframes the animation classes run.

Component utilities

GuidanceDate and time·Linking·Navigation

Buttons

9

Pair btn with a size, an intent and an emphasis.

  • Go
  • Go
  • Go
  • Go
  • Go

Text links

3

A text link’s underline and hover motion by emphasis, as Link applies it. Hover or focus a preview to see it.

  • Line-up

    The underline is a layer at the bottom and the fill sits just above it. Engaged, the underline takes the fill's colour, so the two read as one shape as the fill completes.

  • Line-up

    strong fills as emphasis-strong does. Its text is two text-clipped layers over the fill: the on-strong ink grows with the fill, so each letter turns as the fill reaches it, over the resting ink. The opaque fill runs under the underline, so no seam shows.

  • Line-up

    The leave waits a beat, so a pointer sweeping down a list doesn't flicker each link it crosses. The rise's overshoot is a fraction of a pixel, so it never reaches the text.

Calendar tile

5

A month and day tile for templates; the parts are dimmed to show which one a class styles.

  • Nov27
  • Nov27
  • Nov27
  • Nov27

    The band's height is set per size, so it takes about a third of the tile rather than whatever the type and padding add up to. Each height is the type plus 2px either side. The transparent border shares that 2px with the padding, so the text overflows the content box slightly and place-content centres it in the whole band.

  • Nov27

Variants

1

  • Navigator: the one variant every expanded style is written with.

Previous page← OverviewNext pageColor scales →