defuss-shadcn / Guides / Theming / theme-designer
Theme Designer
Design your own theme, the way tweakcn does - right here. Start from any theme, change colours for light and dark, pick Google Fonts, set the radius and the shadows: the whole site follows as you go. The preview on the right is part of the editor: click a colour to change it, and the Forms & Inputs card holds the roundness, font, letter-spacing and shadow controls. Its tabs show every component at once, or one of the six example apps (Admin Dashboard, Messenger, Issue Tracker, Notes & Docs, Status Page, Desktop) in your theme. Your unsaved draft stays on while you browse the other pages, so you can check every component in it before you save (the theme menu can pause or discard it). Save it by name - it stays in this browser and shows up on top of the theme menu - or export the CSS for your own project (Theming explains the tokens).
On this page (3)
Click a colour to change it. The Forms & Inputs card is the rest of the editor: roundness, fonts, letter spacing and shadows.
Actions
Forms & Inputs
These controls are live - they shape the theme.
Data Display
This month
Revenue
$45,231
+20.1% from last month
| Invoice | Status | Amount |
|---|---|---|
| INV001 | Paid | $250 |
| INV002 | Pending | $150 |
Charts
--chart-1 ... --chart-5
Feedback & Status
Heads up
Your theme follows every change.
Error
Something went wrong.
Overlays
Popover
Surfaces use --popover and --popover-foreground.
Is it accessible?
Yes - native details and summary.
Is it themable?
Every colour is a token.
Navigation
Make changes to your account.
Change your password.
Application
The sidebar tokens
A Acme Inc.
Dashboard Inbox 4 SettingsChat
Calendar
Typography
Sans · Serif · Mono
The quick brown fox jumps over the lazy dog
Body text in the sans font: themes are one identity in two palettes - the same shape, the same type, light and dark.
"Design is not just what it looks like and feels like. Design is how it works."
--primary: oklch(0.205 0.005 285);Comments, ideas or improvements? Edit this page's source on GitHub