Theming
12 curated presets inspired by real products and editor classics — Linear, Stripe, Anthropic, Nord, Dracula, Solarized, Monokai, Catppuccin. Pick one, copy the CSS, paste into your Tailwind global stylesheet. Every component reads CSS variables, so swapping the palette swaps the whole UI.
Preset picker
Click a preset to preview. Hit Copy and paste the block into app/globals.css.
Project status
Updated just now
Project status
Updated just now
:root {
--background: #fafbff;
--foreground: #101118;
--muted: #f2f3f8;
--muted-foreground: #6b7083;
--card: #ffffff;
--card-foreground: #101118;
--border: #e4e6f0;
--input: #e4e6f0;
--ring: #5e6ad2;
--primary: #5e6ad2;
--primary-foreground: #ffffff;
--secondary: #f2f3f8;
--secondary-foreground: #2d2f3d;
--accent: #e8eafc;
--accent-foreground: #2d2f3d;
--destructive: #e5484d;
--destructive-foreground: #ffffff;
--radius: 0.5rem;
}
.dark {
--background: #0d0e12;
--foreground: #e6e8f2;
--muted: #1a1c24;
--muted-foreground: #8b8fa3;
--card: #13141a;
--card-foreground: #e6e8f2;
--border: #24262f;
--input: #24262f;
--ring: #7b85e6;
--primary: #7b85e6;
--primary-foreground: #0d0e12;
--secondary: #1a1c24;
--secondary-foreground: #e6e8f2;
--accent: #24262f;
--accent-foreground: #e6e8f2;
--destructive: #7f1d1d;
--destructive-foreground: #fecaca;
}
Install via CLI
Prefer a one-liner? The myhippo CLI writes the chosen preset to styles/hippo-theme.css.
npx myhippo theme midnightAvailable presets:
midnightgraphiteclaudesunsetoceanforestnorddraculamochasakurasolarizedmonokaiWire it up
Import the theme file and enable the dark variant:
/* app/globals.css */
@import "tailwindcss";
@import "./styles/hippo-theme.css";
@custom-variant dark (&:where(.dark, .dark *));Then map each variable to a Tailwind color token so classes like bg-primary resolve:
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--radius-md: var(--radius);
}Customize
Presets are just starting points. Edit any variable — every component updates because none of them hardcode colors. Keep the variable names identical so components keep resolving.