Colours
Colours come in two levels. Primitive colours are the raw ramps from Figma. Semantic
colours name a purpose (bg.surface, fg.muted) and point at a primitive. Components only
use semantic colours.
Everything on this page is read from tokens/color.primitives.json and
tokens/color.semantic.json. The swatches use the live CSS variables, so they change when you
switch this site between light and dark.
Using a colour
Section titled “Using a colour”In CSS, every colour is a variable: the token path with --su-colors- in front.
.booking-total { color: var(--su-colors-fg-default); background: var(--su-colors-bg-muted); border: 1px solid var(--su-colors-border-default);}In an app that uses the Panda preset, use the token path: css({ bg: 'bg.muted' }).
Semantic colours
Section titled “Semantic colours”Use these. The Light and Dark columns show which primitive each one points at. Most point at the
same step in both modes: it is the ramp underneath that reverses in dark mode (grey.0 is white
in light and near-black in dark).
Background
Section titled “Background”bg.canvas--su-colors-bg-canvaspage backgroundpagepagebg.surface--su-colors-bg-surfacecards, dialogs, table, active tabgrey.0grey.0bg.muted--su-colors-bg-mutedstriped table row, disabled inputgrey.100grey.100bg.sunken--su-colors-bg-sunkentracks, neutral hovergrey.200grey.200bg.inverse--su-colors-bg-inversetooltip, dark buttongrey.900grey.900bg.translucent--su-colors-bg-translucenttop bar (Figma header)whiteAlpha.60whiteAlpha.60bg.translucentStrong--su-colors-bg-translucent-strongside navigation panel (Figma side nav)whiteAlpha.80whiteAlpha.80bg.translucentSubtle--su-colors-bg-translucent-subtlepage tab track (Figma tab)whiteAlpha.40whiteAlpha.40bg.neutralSolid--su-colors-bg-neutral-solidswitch track when off (Figma Toggle switch)grey.300grey.300bg.disabled--su-colors-bg-disabledFigma Input field, Disabledgrey.100grey.100bg.overlay--su-colors-bg-overlaydialog scrimrgba(35, 32, 44, 0.4)rgba(0, 0, 0, 0.6)Foreground
Section titled “Foreground”fg.default--su-colors-fg-defaulttitles, names, active tabgrey.900grey.900fg.muted--su-colors-fg-mutedfield labels, typed textgrey.700grey.700fg.subtle--su-colors-fg-subtletable cells, inactive tab, meta textgrey.600grey.600fg.placeholder--su-colors-fg-placeholderFigma Input field, Idealgrey.400grey.400fg.disabled--su-colors-fg-disabledFigma Input field, Disabledgrey.500grey.500fg.inverse--su-colors-fg-inversetext on bg.inversegrey.0grey.0fg.inverseMuted--su-colors-fg-inverse-mutedtooltip text (Figma tooltip)grey.200grey.200fg.onBrand--su-colors-fg-on-brandtext on the primary and destructive buttons (Figma Button)brand.100brand.100fg.onSolid--su-colors-fg-on-solidtext on status solids such as Toast. Figma uses grey/0, which turns dark in Dark mode and is unreadable there, so this stays white.whitewhiteBorder
Section titled “Border”border.default--su-colors-border-defaulthairlines, card and input bordersgrey.200grey.200border.strong--su-colors-border-stronggrey.300grey.300border.control--su-colors-border-controlFigma Input field and Textareagrey.200grey.200border.controlStrong--su-colors-border-control-strongunchecked Check and Radio buttongrey.600grey.600border.focus--su-colors-border-focusFigma Input field, Activebrand.600brand.600border.error--su-colors-border-errorsystem.error.500system.error.500border.glass--su-colors-border-glassoutline of translucent surfaces (Figma tab, header)whiteAlpha.60whiteAlpha.60border.popup--su-colors-border-popuppopupBorderpopupBorderbrand.solid--su-colors-brand-solidprimary buttonbrand.600brand.600brand.solidHover--su-colors-brand-solid-hoverprimary button, Hoverbrand.800brand.800brand.strong--su-colors-brand-strongchecked Check, Toggle switch, Radio button; linksbrand.700brand.700brand.fg--su-colors-brand-fgsecondary and tertiary button text and outlinebrand.600brand.600brand.fgHover--su-colors-brand-fg-hoverbrand.800brand.800brand.subtle--su-colors-brand-subtlerow hover, secondary button hoverbrand.100brand.100brand.subtleHover--su-colors-brand-subtle-hoverbrand.100brand.100brand.muted--su-colors-brand-muteddisabled primary button, radio halobrand.300brand.300Status
Section titled “Status”status.danger.solid--su-colors-status-danger-solidsystem.error.500system.error.500status.danger.subtle--su-colors-status-danger-subtlesystem.error.100system.error.100status.warning.solid--su-colors-status-warning-solidsystem.warning.500system.warning.500status.warning.subtle--su-colors-status-warning-subtlesystem.warning.100system.warning.100status.success.solid--su-colors-status-success-solidsystem.success.500system.success.500status.success.subtle--su-colors-status-success-subtlesystem.success.100system.success.100status.info.solid--su-colors-status-info-solidsystem.blue.500system.blue.500status.info.subtle--su-colors-status-info-subtlesystem.blue.100system.blue.100Tag and RecordCard take tone="green" and use the pair for that name. The list
of tone names is exported from the package as tones.
fg + bg pairs for Tag, Avatar and Record Card. Components take tone=<name>. green, blue, purple and orange are the four Figma tag colours.
tone.brand.fg--su-colors-tone-brand-fgbrand.600brand.600tone.brand.bg--su-colors-tone-brand-bgbrand.100brand.100tone.gray.fg--su-colors-tone-gray-fggrey.700grey.700tone.gray.bg--su-colors-tone-gray-bggrey.100grey.100tone.red.fg--su-colors-tone-red-fgsystem.error.500system.error.500tone.red.bg--su-colors-tone-red-bgsystem.error.100system.error.100tone.orange.fg--su-colors-tone-orange-fgsystem.warning.500system.warning.500tone.orange.bg--su-colors-tone-orange-bgsystem.warning.100system.warning.100tone.green.fg--su-colors-tone-green-fgsystem.success.500system.success.500tone.green.bg--su-colors-tone-green-bgsystem.success.100system.success.100tone.blue.fg--su-colors-tone-blue-fgsystem.blue.500system.blue.500tone.blue.bg--su-colors-tone-blue-bgsystem.blue.100system.blue.100tone.purple.fg--su-colors-tone-purple-fgsystem.purple.500system.purple.500tone.purple.bg--su-colors-tone-purple-bgsystem.purple.100system.purple.100tone.teal.fg--su-colors-tone-teal-fgsecondary.700secondary.700tone.teal.bg--su-colors-tone-teal-bgsecondary.100secondary.100Primitive colours
Section titled “Primitive colours”These are the ramps the semantic colours are built from. Do not use them directly in components: a primitive does not say what it is for, and the ramps that reverse in dark mode would give a different contrast than intended.
brand
Figma 'branding'. 600 is the main brand colour. The ramp reverses in Dark mode.
grey
Figma 'grey'. 0 is the surface colour, 900 the title colour. The ramp reverses in Dark mode.
secondary
Figma 'secondary' (teal). Same in both modes.
system
Figma 'system'. 100 is the tint, 500 the solid. Same in both modes.
whiteAlpha
Figma 'White/White 20-100'. Glass surfaces on the page background.
Single colours
white--su-colors-white#FFFFFFsameblack--su-colors-black#000000samepage--su-colors-page#E4E0F0#030303popupBorder--su-colors-popup-borderrgba(208, 206, 222, 0.3)sameGradient
Section titled “Gradient”--su-gradients-brand is the brand gradient from Figma.