Foundations
@rahhal/themes (tokens) · @rahhal/themes/tailwind.preset (Tailwind mapping)Colors & radius
Every design token from `@rahhal/themes`. Stored as HSL channels (so Tailwind opacity modifiers work) AND surfaced as `#RRGGBB` hex for cross-platform consumers (iOS, Android, slides, Figma). Click any hex chip to copy it. Try toggling theme via the cog — every swatch flips live.
Examples
Surfaces
Backgrounds for the canvas, cards, popovers, and quiet/loud emphasis regions.
background
--backgroundLightactive
0 0% 100%Dark
0 0% 0%card
--cardLightactive
240 23.8% 95.9%Dark
240 3.4% 11.4%popover
--popoverLightactive
0 0% 100%Dark
240 2.2% 17.6%muted
--mutedLightactive
240 23.8% 95.9%Dark
240 3.4% 11.4%accent
--accentLightactive
200.6 72.7% 91.4%Dark
199.6 63.6% 15.1%Text on surface
Foreground colors paired with their surface counterparts.
foreground
--foregroundLightactive
0 0% 0%Dark
0 0% 100%cardForeground
--card-foregroundLightactive
0 0% 0%Dark
0 0% 100%popoverForeground
--popover-foregroundLightactive
0 0% 0%Dark
0 0% 100%mutedForeground
--muted-foregroundLightactive
240 1.8% 43.1%Dark
240 3.5% 61%accentForeground
--accent-foregroundLightactive
197.6 74.4% 15.3%Dark
200 67.3% 90.4%Brand
Primary CTAs and the quieter secondary surface.
primary
--primaryLightactive
198 100% 41.8%Dark
200.2 80.5% 53.7%primaryForeground
--primary-foregroundLightactive
0 0% 100%Dark
199.4 100% 6.7%secondary
--secondaryLightactive
240 10.6% 90.8%Dark
240 2.2% 17.6%secondaryForeground
--secondary-foregroundLightactive
240 3.4% 11.4%Dark
0 0% 100%State
Destructive surfaces for errors and irreversible actions.
destructive
--destructiveLightactive
3.2 100% 59.4%Dark
3.4 100% 61.4%destructiveForeground
--destructive-foregroundLightactive
0 0% 100%Dark
0 0% 100%Chrome
Borders, input outlines, and focus-rings.
border
--borderLightactive
240 1.8% 78%Dark
240 1.8% 22.4%input
--inputLightactive
240 1.8% 78%Dark
240 1.8% 22.4%ring
--ringLightactive
198 100% 41.8%Dark
200.2 80.5% 53.7%Radius
Border-radius scale. Use the matching Tailwind utility (`rounded-md` etc.) so radii stay token-driven.
radius.sm
--radius-sm0.25remradius.md
--radius-md0.5remradius.lg
--radius-lg0.75remradius.xl
--radius-xl1rem