Theming
One file drives everything. Mizu's look lives in CSS custom properties, mapped to Tailwind v4 utilities. Recolor the system by changing a handful of tokens.
The token block
Add this to src/app.css after @import 'tailwindcss';. Semantic tokens (--background, --primary, …) are mapped with @theme inline so utilities like bg-primary react to light and dark automatically.
:root {
--background: #ffffff;
--foreground: #1c2b33;
--card: #ffffff;
--muted: #f2f4f7;
--muted-foreground: #70767d;
--primary: #00b2ff; /* the one accent */
--primary-foreground: #ffffff;
--border: #eceef1; /* semantic strokes only */
--ring: var(--primary);
/* Soft ambient elevation, never bevels */
--elevation-sm: 0 0 10px rgba(28, 43, 51, 0.06);
--elevation-lg: 0 8px 24px rgba(28, 43, 51, 0.1);
/* Pastel auras for AI moments */
--orb-pink: radial-gradient(circle, rgba(253, 221, 222, 0.85) 0%, transparent 70%);
--aurora: linear-gradient(135deg, #f4e7ff 0%, #fdddde 100%);
}
.dark {
--background: #000000; /* pure black */
--foreground: #f6f8f9;
--card: #0c1116; /* slate lifted from the ink */
--primary: #00b2ff;
/* …each token gets a dark variant… */
}The brand ramp
mizu-50 through mizu-950. The accent is mizu-500. Swap these to re-tint the whole system.
Material utilities
Beyond colors, Mizu adds a small set of surface utilities you can use anywhere.
glass / glass-subtle Flat frosted translucency + backdrop blur, for floating panels.orb-pink / -blue / -purple / -peach Soft radial pastel auras. Pair with blur for glow.aurora / -cool / -iris / -mint Pastel linear washes for surfaces and art.shadow-xs … shadow-xl / shadow-glow Soft ambient elevation, plus a blue glow.Dark mode
Mizu uses a class strategy: add dark to <html>. The page goes pure black and
surfaces lift to slate. The included theme store handles persistence and a no-flash inline
script. Toggle it with the sun/moon button in the header.
The surface ladder
Depth never comes from strokes. In light mode, shadows carry the layers; in dark mode, each surface is one tonal rung above the one beneath it.
Light: shadow carries depth
Card
Floating panel
Dark: tone carries depth
Card
Floating panel