hippo-uiHippoUI

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

Live
DraftBetaDeprecated3 tags

Project status

Updated just now

Live
DraftBetaDeprecated3 tags
Light
Dark
Midnight — paste into your global stylesheet
: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.

bash
npx myhippo theme midnight

Available presets:

midnightgraphiteclaudesunsetoceanforestnorddraculamochasakurasolarizedmonokai

Wire it up

Import the theme file and enable the dark variant:

css
/* 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:

css
@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.