#0E1220#0E1220Every TokenOps surface — the menu bar, the team app, this site — takes its colours, type, spacing and radii from one set of design tokens: assets/brand/tokens.json in the public repo. Its generator writes tokens.css (CSS custom properties prefixed --tok-) and the token table with each colour's measured WCAG contrast; its tests fail when a colour falls below the contrast it names. This page shows copies of both, refreshed by scripts/sync-tokens.sh; nothing here is typed in by hand.
Rules the tokens encode:
--tok-accent) carries ink text (--tok-on-accent), never white.--tok-accent-text (#3F6B0B); on ink it is the lime itself.#4D7C0F (--tok-lime-mark) is for the logo's ring and chart bars only.Each colour on its own ground: light on --tok-bg light, dark on --tok-bg dark. A ratio is the contrast measured against the ground it names, with the minimum the tests hold it to.
#0E1220#0E1220#C6F432#C6F432#D4F75E#D4F75E#B3E01C#B3E01C#3F6B0B#3F6B0B#4D7C0F#4D7C0F#F59E0B#F59E0B#DC2626#DC2626#FFFFFF#FFFFFF#FFFFFF#0E1220#FFFFFF#161A28#F7F8F9#1B2030#F0F1F3#222838#FAFAFB#111524#E4E6EA#262C3C#CFD3D9#353C4Frgba(22, 24, 29, 0.10)rgba(255, 255, 255, 0.10)rgba(255, 255, 255, 0.85)rgba(14, 18, 32, 0.82)rgba(198, 244, 50, 0.45)rgba(198, 244, 50, 0.45)#16181D17.75:1 on bg (min 7)#F2F3F516.79:1 on bg (min 7)#3D414810.25:1 on bg (min 7)#C7CAD111.36:1 on bg (min 7)#555A646.92:1 on bg (min 4.5)#C7CAD111.36:1 on bg (min 4.5)#686D774.59:1 on surface-3 (min 4.5)#9DA2AC5.73:1 on surface-3 (min 4.5)#C6F432#C6F432#D4F75E#D4F75E#B3E01C#B3E01C#0E1220#0E1220#F2FDD2rgba(198, 244, 50, 0.14)#D6F37Argba(198, 244, 50, 0.30)#3F6B0B6.32:1 on bg (min 5)#C6F43214.55:1 on bg (min 5)#F59E0B2.14:1 on bg (min 2)#FBBF2411.17:1 on bg (min 2)#DC26264.82:1 on bg (min 3)#F871716.74:1 on bg (min 3)#1270346.18:1 on bg (min 4.5)#5BD08A9.62:1 on bg (min 4.5)#E8F6EDrgba(34, 160, 90, 0.14)#B9E2C7rgba(91, 208, 138, 0.30)#92400E7.09:1 on bg (min 4.5)#FBC65A11.83:1 on bg (min 4.5)#FEF5E4rgba(245, 158, 11, 0.13)#F6D28Ergba(245, 158, 11, 0.32)#F59E0B#F59E0B#B91C1C6.47:1 on bg (min 4.5)#F871716.74:1 on bg (min 4.5)#FDEEEErgba(220, 38, 38, 0.14)#F5C2C2rgba(248, 113, 113, 0.32)#DC2626#DC2626#FFFFFF#FFFFFF#4D7C0F4.99:1 on bg (min 3)#C6F43214.55:1 on bg (min 3)#3F6B0B#D4F75E#3F6B0B6.32:1 on bg (min 3)#C6F43214.55:1 on bg (min 3)#E8EAEE#262C3C#555A646.92:1 on bg (min 4.5)#A9AEB88.37:1 on bg (min 4.5)#C8CCD3#3A4154#0E1220#0E1220#F2F3F5#F2F3F5#C7CAD1#C7CAD1#C6F432#C6F432| Token | Size | Sample |
|---|---|---|
--tok-fs-2xs | 11px | Know what's left |
--tok-fs-xs | 12px | Know what's left |
--tok-fs-sm | 13px | Know what's left |
--tok-fs-md | 14px | Know what's left |
--tok-fs-lg | 16px | Know what's left |
--tok-fs-xl | 18px | Know what's left |
--tok-fs-2xl | 22px | Know what's left |
--tok-fs-3xl | 26px | Know what's left |
--tok-fs-4xl | 32px | Know what's left |
| Token | Value | Sample |
|---|---|---|
--tok-weight-medium | 550 | Set what's allowed |
--tok-weight-semibold | 600 | Set what's allowed |
--tok-weight-bold | 650 | Set what's allowed |
--tok-lh-tight | 1.25 | line height |
--tok-lh | 1.55 | line height |
| Token | Value | |
|---|---|---|
--tok-s-0 | 2px | |
--tok-s-1 | 4px | |
--tok-s-2 | 8px | |
--tok-s-3 | 12px | |
--tok-s-4 | 16px | |
--tok-s-5 | 20px | |
--tok-s-6 | 24px | |
--tok-s-8 | 32px | |
--tok-s-10 | 40px | |
--tok-s-12 | 48px | |
--tok-s-16 | 64px |
--tok-r-xs4px--tok-r-sm6px--tok-r-md8px--tok-r-lg12px--tok-r-xl16px--tok-r-full999px