Selected Effect
This card shows the currently selected effect. Change the effect above to preview different options.
Explore the canonical theme tokens from design/ui-standards.md and preview how buttons, cards, forms, tables, and alerts respond to light/dark mode and 30 comprehensive themes organized across 6 categories.
To implement user-configurable themes in your application:
globals.css from this demo into your projectdocument.documentElement.dataset.theme = 'theme-name' to switch themes// Set theme programmatically
const setTheme = (theme) => {
document.documentElement.dataset.theme = theme;
localStorage.setItem('theme', theme);
};
// Load saved theme on app start
const savedTheme = localStorage.getItem('theme') || 'aurora';
setTheme(savedTheme);All components automatically adapt to theme changes via CSS custom properties. No component updates required.
Perfect for SaaS platforms and B2B applications. Features modern rounded corners, friendly gradients, and balanced spacing that builds trust while remaining approachable. Ideal for startups, tech companies, and productivity tools that want to feel contemporary without being overwhelming.
All tokens and components on this page respond live to your selections.Visual effects can be placed in 4 different contexts: background (full viewport), hero (banner sections), card (small containers), and section (content blocks). Each placement adapts the effect for optimal visibility.
import { VisualEffect } from '@/components/VisualEffect';
// Hero banner with effect
<section className="relative overflow-hidden min-h-[60vh]">
<VisualEffect
placement="hero"
effect="aurora"
intensity="normal"
/>
<div className="relative z-10">
<h1>Hero Content</h1>
</div>
</section>
// Card with subtle effect
<Card className="relative overflow-hidden">
<VisualEffect
placement="card"
effect="neuro"
intensity="subtle"
/>
<CardContent className="relative z-10">
Content here
</CardContent>
</Card>Buttons inherit tokenized radius, font weight, focus treatments, and motion curves so style changes propagate automatically.
Card curvature, elevation, and spacing values pipe straight from `--card-radius`, `--card-shadow`, and `--stack-gap`.
Keep primitives token-driven. Update theme CSS instead of hardcoding values in components.
Animate within the timing curve for the active theme and honor prefers-reduced-motion.
Use --stack-gap for vertical rhythm and --section-gap between major regions.
Inputs share control height, radius, and focus treatments for layout consistency.
Tables, alerts, and live token swatches all bind to the same CSS variables defined in the standards.
| Token | Purpose |
|---|---|
| --control-height | Buttons & inputs share this value for layout consistency. |
| --motion-duration-base | Primary transition timing for hover and focus states. |
| --icon-stroke | Standard stroke width for glyphs and iconography. |
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
—
Navigation bars, breadcrumbs, and tabs provide consistent wayfinding across themes.
Tab content goes here.
Loading states, progress indicators, and notifications provide user feedback.
Styled lists, definitions, and chips for organizing content.
Statistics cards and empty states for data visualization.
Total Users
↑ 12% from last month
Revenue
↑ 8% from last month
Uptime
↓ 0.5% from last month
Get started by creating your first item.
Checkboxes, radios, toggles, sliders, and more.
Enable notifications
Drop files here or click to browse
Supports: PDF, PNG, JPG (max 10MB)Accordions, avatars, steppers, and timelines.
Content for section 1 goes here.
Content for section 2 goes here.
Initial planning phase completed
2 days agoFirst major feature delivered
1 day agoVisual feedback for form validation states.
Blockquotes and link variants for richer text content.
"Design is not just what it looks like and feels like. Design is how it works."— Steve Jobs
This is a primary link and here's an underlined link for reference.