Theme Structure
Each theme is defined using a consistent structure that includes:- Name: A unique identifier (e.g.,
catppuccin,cyberpunk) - Title: Display name shown in the UI
- Colors: OKLCH color values for light and dark modes
- Typography: Custom font configuration
Theme Configuration
Themes are defined inthemes-config.ts with the following interface:
Naming Convention
All themes follow a consistent{name}-{mode} pattern:
{theme-name}-light- Light mode variant{theme-name}-dark- Dark mode variant
default-darkcatppuccin-lightcyberpunk-darkvercel-light
How Themes Work
Themes use CSS variables and the OKLCH color space to provide consistent, perceptually uniform colors:- CSS Variables: Each theme sets CSS custom properties that shadcn/ui components reference
- OKLCH Colors: Uses OKLCH (Lightness, Chroma, Hue) for better color manipulation
- Mode Switching: Themes include both light and dark variants with appropriate contrast
CSS Variable System
When you apply a theme likecatppuccin-dark, the system:
- Sets
data-theme="catppuccin-dark"on the HTML element - Loads the corresponding CSS file with variable definitions
- Applies the theme’s primary colors and typography
- Maintains semantic color tokens (background, foreground, muted, etc.)
Theme Categories
Themes are organized into five categories:Minimal
Clean, understated themes focused on simplicity and readability
Colorful
Vibrant themes with rich color palettes and visual impact
Branded
Themes inspired by popular brands and services
Creative
Unique, artistic themes with distinctive aesthetics
Dark
Sophisticated dark-first themes optimized for low-light environments
Using Themes
Installation
Install the theme system first:Programmatic Access
Access theme data in your application:Next Steps
Browse Themes
Explore all available themes by category
Installation
Learn how to install and configure themes