Cosella’s design system is built on a comprehensive token system using Tailwind v4 @theme {} blocks. All tokens are defined as CSS custom properties and exposed as Tailwind utility classes.
@import " @cosella/tokens/theme.css " ;
@import " @cosella/tokens/components.css " ;
import { brand, colorVar, duration, ease, zIndex, radius } from ' @cosella/tokens ' ;
import { ThemeProvider, useTheme } from ' @cosella/tokens ' ;
All tokens are available as Tailwind classes:
< div className = " bg-brand-500 text-white rounded-lg p-4 " >
Brand background with white text
< div className = " bg-bg-raised border-border text-text-primary " >
< div className = " text-success font-medium " >
Primary brand palette with 11 shades:
Token Tailwind Class Light Mode Dark Mode brand-50bg-brand-50oklch(97% 0.02 145) oklch(97% 0.02 145) brand-100bg-brand-100oklch(93% 0.04 145) oklch(93% 0.04 145) brand-200bg-brand-200oklch(87% 0.07 145) oklch(87% 0.07 145) brand-300bg-brand-300oklch(78% 0.11 145) oklch(78% 0.11 145) brand-400bg-brand-400oklch(67% 0.15 145) oklch(67% 0.15 145) brand-500bg-brand-500oklch(58% 0.12 148) oklch(58% 0.12 148) brand-600bg-brand-600oklch(48% 0.09 148) oklch(48% 0.09 148) brand-700bg-brand-700oklch(40% 0.07 145) oklch(40% 0.07 145) brand-800bg-brand-800hsl(128 14% 22%) hsl(128 14% 22%) brand-900bg-brand-900oklch(23% 0.03 145) oklch(23% 0.03 145) brand-950bg-brand-950oklch(15% 0.02 145) oklch(15% 0.02 145)
Token Tailwind Class Value neutral-50bg-neutral-50oklch(98% 0.003 250) neutral-100bg-neutral-100oklch(95% 0.005 250) neutral-200bg-neutral-200hsl(214 32% 91%) neutral-300bg-neutral-300oklch(83% 0.012 250) neutral-400bg-neutral-400oklch(70% 0.012 250) neutral-500bg-neutral-500oklch(58% 0.012 250) neutral-600bg-neutral-600oklch(47% 0.01 250) neutral-700bg-neutral-700oklch(37% 0.008 250) neutral-800bg-neutral-800oklch(27% 0.006 265) neutral-900bg-neutral-900oklch(17% 0.01 265)
Context-aware colors that adapt to light/dark mode:
Token Tailwind Class Light Mode Dark Mode bg-basebg-bg-basegreen-mist oklch(17% 0.01 265) bg-raisedbg-bg-raisedwhite oklch(20% 0.01 265) bg-subtlebg-bg-subtlegreen-mist oklch(23% 0.01 265) text-primarytext-text-primaryblack oklch(94% 0.008 240) text-secondarytext-text-secondarybrand-800 oklch(94% 0.008 240) text-mutedtext-text-mutedoklch(60% 0.02 250) oklch(60% 0.015 250) primarybg-primarybrand-800 oklch(58% 0.12 148) borderborder-borderneutral-200 oklch(17% 0.01 265)
Token Tailwind Class Value successbg-successoklch(44% 0.13 145) warningbg-warningoklch(65% 0.18 80) dangerbg-dangeroklch(53% 0.22 20) infobg-infooklch(55% 0.16 220)
Token Tailwind Class (bg) Tailwind Class (text) badge-bluebg-badge-blue-bgtext-badge-blue-textbadge-greenbg-badge-green-bgtext-badge-green-textbadge-redbg-badge-red-bgtext-badge-red-textbadge-amberbg-badge-amber-bgtext-badge-amber-textbadge-purplebg-badge-purple-bgtext-badge-purple-text
--font-sans: 'Epilogue', system-ui , sans-serif ;
--font-mono: 'JetBrains Mono', ui-monospace , monospace;
className = " font-sans " { /* Epilogue */ }
className = " font-mono " { /* JetBrains Mono */ }
Token Tailwind Class Size Line Height text-xstext-xs0.75rem (12px) 1rem text-smtext-sm0.875rem (14px) 1.25rem text-basetext-base1rem (16px) 1.5rem text-lgtext-lg1.125rem (18px) 1.75rem text-xltext-xl1.25rem (20px) 1.75rem text-2xltext-2xl1.5rem (24px) 2rem text-3xltext-3xl1.875rem (30px) 2.25rem text-4xltext-4xl2.25rem (36px) 2.5rem
Standard Tailwind spacing scale plus extras:
Token Tailwind Class Value spacing-1p-1 / m-10.25rem (4px) spacing-2p-2 / m-20.5rem (8px) spacing-4p-4 / m-41rem (16px) spacing-6p-6 / m-61.5rem (24px) spacing-8p-8 / m-82rem (32px) spacing-12p-12 / m-123rem (48px) spacing-16p-16 / m-164rem (64px) spacing-18p-18 / m-184.5rem spacing-22p-22 / m-225.5rem spacing-72p-72 / m-7218rem spacing-80p-80 / m-8020rem
Token Tailwind Class Value radius-nonerounded-none0 radius-smrounded-sm0.25rem (4px) radius-mdrounded-md0.375rem (6px) radius-lgrounded-lg0.5rem (8px) radius-xlrounded-xl0.75rem (12px) radius-2xlrounded-2xl1rem (16px) radius-fullrounded-full9999px
Token Tailwind Class Usage shadow-smshadow-smSubtle elevation shadow-mdshadow-mdCards, dropdowns shadow-lgshadow-lgModals, popovers shadow-overlayshadow-overlayFull-screen overlays
Token Tailwind Class Value duration-instantduration-instant0ms duration-fastduration-fast100ms duration-normalduration-normal200ms duration-slowduration-slow350ms duration-xslowduration-xslow500ms
Token Tailwind Class Value ease-defaultease-defaultcubic-bezier(0.4, 0, 0.2, 1) ease-inease-incubic-bezier(0.4, 0, 1, 1) ease-outease-outcubic-bezier(0, 0, 0.2, 1) ease-springease-springcubic-bezier(0.34, 1.56, 0.64, 1)
Token Tailwind Class Value Usage z-dropdownz-dropdown1000 Dropdowns, menus z-stickyz-sticky1100 Sticky elements z-overlay-windowz-overlay-window1200 Electron overlays z-modalz-modal1300 Modals z-toastz-toast1400 Toast notifications
Specialized tokens for the desktop overlay UI:
Token Usage glass-bgOverlay background (#0f1510) glass-textOverlay text (#e5eae5) glass-subtleHover states, cards glass-cardTranscript cards, responses glass-dividerDividers glass-hoverButton hover states glass-borderAll borders glass-pressedButton active/pressed glass-panel-*Panel backgrounds (25%, 40%, 95% alpha) glass-dangerRisk panel background glass-warningObjections panel background glass-successPayment panel background
Dark mode is activated by adding .dark class to <html>:
import { ThemeProvider } from ' @cosella/tokens ' ;
< ThemeProvider > { children } </ ThemeProvider >
All tokens automatically adapt to dark mode via CSS custom properties.
The components.css file provides pre-built CSS classes:
.cs-page-shell /* Page container */
.cs-page-stack /* Vertical stack */
.cs-page-header /* Page header */
.cs-panel /* Card/panel */
.cs-input /* Text input */
.cs-select /* Select dropdown */
.cs-tabs /* Tab container */
.cs-tab-active /* Active tab */
.cs-table-wrap /* Table wrapper */
.cs-table /* Table element */
.cs-table-head /* Table header */
.cs-table-row /* Table row */
.cs-table-cell /* Table cell */
.cs-badge /* Base badge */
.cs-badge-blue /* Blue badge */
.cs-badge-green /* Green badge */
.cs-badge-red /* Red badge */
.cs-badge-amber /* Amber badge */
.cs-badge-purple /* Purple badge */
.cs-btn /* Base button */
.cs-btn-primary /* Primary button */
.cs-btn-outline /* Outline button */
.cs-btn-ghost /* Ghost button */
.cs-btn-destructive /* Destructive button */
.cs-btn-sm /* Small button */
.cs-btn-md /* Medium button */
.cs-btn-lg /* Large button */
.cs-page-title /* Page title */
.cs-section-title /* Section title */
.cs-card-title /* Card title */
.cs-label /* Form label */