RoadieRoadie
  • Home
  • Foundations
  • Tokens
  • Components
  • Charts
  • Widgets
  • Appearance
HomeFoundationsComponents
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

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

512 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
    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.503 0.032 var(--accent-hue))
    Dark
    oklch(0.769 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
    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.547 0.159 247)
    Dark
    oklch(0.771 0.122 247)
  • +3 more
    Light
    var(--color-brand-light-12) → oklch(0.324 0.082 247)
    Dark
    oklch(0.906 0.048 247)
  • +3 more
    Light
    var(--color-brand-light-13) → oklch(0.2 0.055 247)
    Dark
    oklch(0.96 0.02 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
    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.569 0.155 42)
    Dark
    oklch(0.774 0.14 42)
  • Light
    var(--color-brand-secondary-light-12) → oklch(0.349 0.089 42)
    Dark
    oklch(0.906 0.044 42)
  • Light
    var(--color-brand-secondary-light-13) → oklch(0.2 0.06 42)
    Dark
    oklch(0.96 0.02 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
    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.547 calc(0.946 * var(--accent-chroma)) var(--accent-hue) )
    Dark
    oklch( 0.771 calc(0.726 * 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.906 calc(0.286 * 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.96 calc(0.119 * 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
    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.569 0.181 28.264)
    Dark
    oklch(0.769 0.137 28.725)
  • +3 more
    Light
    var(--color-danger-light-12) → oklch(0.349 0.069 28.777)
    Dark
    oklch(0.9 0.05 27.194)
  • +3 more
    Light
    var(--color-danger-light-13) → oklch(0.22 0.045 28)
    Dark
    oklch(0.96 0.02 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
    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.508 0.09 183.645)
    Dark
    oklch(0.79 0.129 184.826)
  • +3 more
    Light
    var(--color-success-light-12) → oklch(0.351 0.061 185.02)
    Dark
    oklch(0.906 0.076 184.637)
  • +3 more
    Light
    var(--color-success-light-13) → oklch(0.22 0.04 185)
    Dark
    oklch(0.96 0.03 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
    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.576 0.118 82.642)
    Dark
    oklch(0.864 0.167 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
    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.505 0.185 302.873)
    Dark
    oklch(0.78 0.143 306.109)
  • +3 more
    Light
    var(--color-info-light-12) → oklch(0.33 0.125 302.655)
    Dark
    oklch(0.909 0.054 303.269)
  • +3 more
    Light
    var(--color-info-light-13) → oklch(0.2 0.08 303)
    Dark
    oklch(0.96 0.025 303)

Pinned light steps

25

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.24 0.024 var(--accent-hue))
  • oklch(0.182 0.015 var(--accent-hue))
  • oklch(0.891 0.049 247)
  • oklch(0.324 0.082 247)
  • oklch(0.2 0.055 247)
  • oklch(0.865 0.078 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.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.349 0.069 28.777)
  • oklch(0.22 0.045 28)
  • oklch(0.886 0.074 185.252)
  • oklch(0.351 0.061 185.02)
  • oklch(0.22 0.04 185)
  • oklch(0.912 0.129 93.243)
  • oklch(0.356 0.052 86.003)
  • oklch(0.22 0.035 86)
  • oklch(0.887 0.059 302.54)
  • oklch(0.33 0.125 302.655)
  • oklch(0.2 0.08 303)

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

9

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.503 0.032 var(--accent-hue))
    Dark
    var(--color-neutral-11) → oklch(0.769 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-3) → oklch(0.252 0.016 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))
  • var(--intent-2a) → color-mix(in oklch, var(--color-neutral-9) 6%, transparent)
  • var(--intent-3a) → color-mix(in oklch, var(--color-neutral-9) 11%, transparent)

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.503 0.032 var(--accent-hue))
    Dark
    var(--color-neutral-11) → oklch(0.769 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-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-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-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))

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))
  • var(--intent-bg-subtler) → color-mix(in oklch, var(--color-neutral-9) 6%, transparent)
  • var(--intent-bg-subtle) → color-mix(in oklch, var(--color-neutral-9) 11%, 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.252 0.016 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.503 0.032 var(--accent-hue))
    Dark
    var(--intent-text-subtle) → oklch(0.769 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.347 0.025 var(--accent-hue))
  • Light
    var(--intent-border-normal) → oklch(0.853 0.028 var(--accent-hue))
    Dark
    var(--intent-border-normal) → oklch(0.398 0.031 var(--accent-hue))
  • Light
    var(--intent-border-strong) → oklch(0.645 0.039 var(--accent-hue))
    Dark
    var(--intent-border-strong) → oklch(0.538 0.04 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.503 0.032 var(--accent-hue))
    Dark
    var(--color-neutral-11) → oklch(0.769 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.

  • color-mix(in oklch, var(--color-neutral-9) 6%, transparent)
  • color-mix(in oklch, var(--color-neutral-9) 11%, transparent)
  • color-mix(in oklch, var(--color-neutral-9) 17%, transparent)
  • color-mix(in oklch, var(--color-neutral-9) 23%, transparent)

Intent utilities

8

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.84 0.079 262)
    Contrast
    4.0:1 light, 10.7:1 dark
  • Light
    oklch(0.735 0.184 353.4)
    Dark
    oklch(0.731 0.184 342.3)
    Contrast
    2.6:1 light, 6.7:1 dark
  • Light
    oklch(0.484 0.062 199.8)
    Dark
    oklch(0.577 0.094 186)
    Contrast
    6.3:1 light, 4.2:1 dark
  • Light
    oklch(0.82 0.14 74)
    Dark
    oklch(0.779 0.123 80)
    Contrast
    1.8:1 light, 8.6:1 dark
  • Light
    oklch(0.46 0.178 305)
    Dark
    oklch(0.566 0.187 298.2)
    Contrast
    7.8:1 light, 3.5:1 dark
  • Light
    oklch(0.655 0.153 141.4)
    Dark
    oklch(0.9 0.153 152.7)
    Contrast
    3.0:1 light, 13.7:1 dark
  • Light
    oklch(0.46 0.16 6)
    Dark
    oklch(0.567 0.162 1.5)
    Contrast
    7.8:1 light, 3.6:1 dark
  • Light
    oklch(0.745 0.117 226.8)
    Dark
    oklch(0.761 0.106 235.4)
    Contrast
    2.2:1 light, 8.3:1 dark

Small sets

5

  • Light
    var(--chart-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-1) → oklch(0.84 0.079 262)
  • Light
    var(--chart-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-2) → oklch(0.731 0.184 342.3)
  • Light
    var(--chart-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-1) → oklch(0.84 0.079 262)
  • Light
    var(--chart-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-2) → oklch(0.731 0.184 342.3)
  • Light
    var(--chart-3) → oklch(0.484 0.062 199.8)
    Dark
    var(--chart-3) → oklch(0.577 0.094 186)

Sequential

9

  • Light
    oklch(0.97 0.032 85)
    Dark
    oklch(0.26 0.04 285)
    Contrast
    1.1:1 light, 1.1:1 dark
  • Light
    oklch(0.889 0.095 75.6)
    Dark
    oklch(0.323 0.115 291.3)
    Contrast
    1.4:1 light, 1.3:1 dark
  • Light
    oklch(0.8 0.136 57.5)
    Dark
    oklch(0.395 0.175 303.8)
    Contrast
    1.9:1 light, 1.7:1 dark
  • Light
    oklch(0.7 0.191 26.3)
    Dark
    oklch(0.482 0.212 325.6)
    Contrast
    2.9:1 light, 2.4:1 dark
  • Light
    oklch(0.615 0.22 5)
    Dark
    oklch(0.57 0.215 350)
    Contrast
    4.2:1 light, 3.5:1 dark
  • Light
    oklch(0.531 0.228 343.8)
    Dark
    oklch(0.657 0.205 15.6)
    Contrast
    6.0:1 light, 5.0:1 dark
  • Light
    oklch(0.438 0.219 312.5)
    Dark
    oklch(0.745 0.163 43.8)
    Contrast
    8.9:1 light, 7.3:1 dark
  • Light
    oklch(0.355 0.19 294.4)
    Dark
    oklch(0.833 0.125 66.3)
    Contrast
    12.2:1 light, 10.2:1 dark
  • Light
    oklch(0.28 0.14 285)
    Dark
    oklch(0.92 0.086 85)
    Contrast
    15.3:1 light, 13.8:1 dark

Diverging

9

  • Light
    oklch(0.4 0.2 268)
    Dark
    oklch(0.76 0.123 262)
    Contrast
    9.9:1 light, 8.1:1 dark
  • Light
    oklch(0.55 0.118 235.8)
    Dark
    oklch(0.685 0.14 232)
    Contrast
    4.7:1 light, 6.3:1 dark
  • Light
    oklch(0.7 0.115 212.5)
    Dark
    oklch(0.59 0.104 213.5)
    Contrast
    2.6:1 light, 4.4:1 dark
  • Light
    oklch(0.835 0.061 200)
    Dark
    oklch(0.473 0.069 205)
    Contrast
    1.6:1 light, 2.7:1 dark
  • Light
    oklch(0.865 0.076 60)
    Dark
    oklch(0.503 0.099 32)
    Contrast
    1.5:1 light, 2.8:1 dark
  • Light
    oklch(0.78 0.135 54)
    Dark
    oklch(0.63 0.145 41)
    Contrast
    2.1:1 light, 4.7:1 dark
  • Light
    oklch(0.69 0.178 43.5)
    Dark
    oklch(0.732 0.158 56)
    Contrast
    3.0:1 light, 7.0:1 dark
  • Light
    oklch(0.6 0.2 30)
    Dark
    oklch(0.83 0.145 74)
    Contrast
    4.3:1 light, 10.2:1 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
    1.1:1 light, 1.5:1 dark

Status

4

  • Light
    var(--color-success-11) → oklch(0.508 0.09 183.645)
    Dark
    var(--color-success-9) → oklch(0.732 0.129 185.089)
    Contrast
    5.5:1 light, 7.8:1 dark
  • Light
    var(--color-warning-11) → oklch(0.576 0.118 82.642)
    Dark
    var(--color-warning-9) → oklch(0.841 0.172 86.226)
    Contrast
    4.4:1 light, 10.6:1 dark
  • Light
    var(--color-brand-secondary-11) → oklch(0.569 0.155 42)
    Dark
    var(--color-brand-secondary-9) → oklch(0.753 0.155 42)
    Contrast
    4.8:1 light, 7.5:1 dark
  • Light
    var(--color-danger-11) → oklch(0.569 0.181 28.264)
    Dark
    var(--color-danger-9) → oklch(0.709 0.184 28.37)
    Contrast
    4.9:1 light, 6.3:1 dark

Highlight

2

  • Light
    #0086da
    Dark
    oklch(var(--chart-highlight-lc) var(--accent-hue))
    Contrast
    3.9:1 light, 10.8:1 dark
  • Light
    0.604 0.178
    Dark
    0.84 0.079

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
    3.3:1 light, 8.4:1 dark
  • Light
    var(--color-neutral-8) → oklch(0.794 0.038 var(--accent-hue))
    Dark
    var(--color-neutral-9) → oklch(0.538 0.04 var(--accent-hue))
    Contrast
    1.9:1 light, 3.5:1 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
    1.9:1 light, 2.8:1 dark
  • 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))
    Contrast
    3.3:1 light, 4.1:1 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
    1.3:1 light, 1.3:1 dark

Chart ink

5

  • Ag
  • Ag

Tailwind utilities

46

  • +3 more
    Light
    var(--chart-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-1) → oklch(0.84 0.079 262)
    Contrast
    4.0:1 light, 10.7:1 dark
  • +3 more
    Light
    var(--chart-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-2) → oklch(0.731 0.184 342.3)
    Contrast
    2.6:1 light, 6.7:1 dark
  • +3 more
    Light
    var(--chart-3) → oklch(0.484 0.062 199.8)
    Dark
    var(--chart-3) → oklch(0.577 0.094 186)
    Contrast
    6.3:1 light, 4.2:1 dark
  • +3 more
    Light
    var(--chart-4) → oklch(0.82 0.14 74)
    Dark
    var(--chart-4) → oklch(0.779 0.123 80)
    Contrast
    1.8:1 light, 8.6:1 dark
  • +3 more
    Light
    var(--chart-5) → oklch(0.46 0.178 305)
    Dark
    var(--chart-5) → oklch(0.566 0.187 298.2)
    Contrast
    7.8:1 light, 3.5:1 dark
  • +3 more
    Light
    var(--chart-6) → oklch(0.655 0.153 141.4)
    Dark
    var(--chart-6) → oklch(0.9 0.153 152.7)
    Contrast
    3.0:1 light, 13.7:1 dark
  • +3 more
    Light
    var(--chart-7) → oklch(0.46 0.16 6)
    Dark
    var(--chart-7) → oklch(0.567 0.162 1.5)
    Contrast
    7.8:1 light, 3.6:1 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
    2.2:1 light, 8.3:1 dark
  • +3 more
    Light
    var(--chart-pair-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-pair-1) → oklch(0.84 0.079 262)
  • +3 more
    Light
    var(--chart-pair-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-pair-2) → oklch(0.731 0.184 342.3)
  • +3 more
    Light
    var(--chart-trio-1) → oklch(0.604 0.178 266)
    Dark
    var(--chart-trio-1) → oklch(0.84 0.079 262)
  • +3 more
    Light
    var(--chart-trio-2) → oklch(0.735 0.184 353.4)
    Dark
    var(--chart-trio-2) → oklch(0.731 0.184 342.3)
  • +3 more
    Light
    var(--chart-trio-3) → oklch(0.484 0.062 199.8)
    Dark
    var(--chart-trio-3) → oklch(0.577 0.094 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
    1.1:1 light, 1.1:1 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
    1.4:1 light, 1.3:1 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
    1.9:1 light, 1.7:1 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
    2.9:1 light, 2.4:1 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
    4.2:1 light, 3.5:1 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
    6.0:1 light, 5.0:1 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
    8.9:1 light, 7.3:1 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
    12.2:1 light, 10.2:1 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
    15.3:1 light, 13.8:1 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
    9.9:1 light, 8.1:1 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
    4.7:1 light, 6.3:1 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
    2.6:1 light, 4.4:1 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
    1.6:1 light, 2.7:1 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
    1.1:1 light, 1.5:1 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
    1.5:1 light, 2.8:1 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
    2.1:1 light, 4.7:1 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
    3.0:1 light, 7.0:1 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
    4.3:1 light, 10.2:1 dark
  • +3 more
    Light
    var(--chart-status-good) → oklch(0.508 0.09 183.645)
    Dark
    var(--chart-status-good) → oklch(0.732 0.129 185.089)
    Contrast
    5.5:1 light, 7.8:1 dark
  • +3 more
    Light
    var(--chart-status-warning) → oklch(0.576 0.118 82.642)
    Dark
    var(--chart-status-warning) → oklch(0.841 0.172 86.226)
    Contrast
    4.4:1 light, 10.6:1 dark
  • +3 more
    Light
    var(--chart-status-serious) → oklch(0.569 0.155 42)
    Dark
    var(--chart-status-serious) → oklch(0.753 0.155 42)
    Contrast
    4.8:1 light, 7.5:1 dark
  • +3 more
    Light
    var(--chart-status-critical) → oklch(0.569 0.181 28.264)
    Dark
    var(--chart-status-critical) → oklch(0.709 0.184 28.37)
    Contrast
    4.9:1 light, 6.3:1 dark
  • +3 more
    Light
    var(--chart-highlight) → #0086da
    Dark
    var(--chart-highlight) → oklch(var(--chart-highlight-lc) var(--accent-hue))
    Contrast
    3.9:1 light, 10.8:1 dark
  • +3 more
    Light
    var(--chart-context) → oklch(0.794 0.038 var(--accent-hue))
    Dark
    var(--chart-context) → oklch(0.538 0.04 var(--accent-hue))
    Contrast
    1.9:1 light, 3.5:1 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
    3.3:1 light, 8.4:1 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
    1.9:1 light, 2.8:1 dark
  • +3 more
    Light
    var(--chart-other) → oklch(0.645 0.039 var(--accent-hue))
    Dark
    var(--chart-other) → oklch(0.582 0.038 var(--accent-hue))
    Contrast
    3.3:1 light, 4.1:1 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
    1.3:1 light, 1.3:1 dark
  • +3 more
    Light
    var(--chart-grid)
    Dark
    var(--chart-grid) → oklch(0.312 0.022 var(--accent-hue))
  • +3 more
    Light
    var(--chart-axis)
    Dark
    var(--chart-axis) → oklch(0.398 0.031 var(--accent-hue))
  • +3 more
    Light
    var(--chart-label)
    Dark
    var(--chart-label) → oklch(0.769 0.028 var(--accent-hue))
  • +3 more
    Light
    var(--chart-value)
    Dark
    var(--chart-value) → oklch(0.991 0.004 var(--accent-hue))
  • +3 more
    Light
    var(--chart-gap)
    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

13

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 3:1, 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.

  • 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.

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

Interaction states

4

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

  • 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.

Typography

GuidanceTypography

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

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

2

  • 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).

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·Navigation

Buttons

9

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

  • Go
  • Go
  • Go
  • Go
  • Go

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
  • Nov27

Variants

1

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

Previous page← OverviewNext pageColor scales →