Glass card
A composable surface primitive with depth + highlight.
Framework-agnostic Tailwind plugin + component recipes
Translucent surfaces with blur, depth, specular highlights, optional grain, and fluid motion-usable with pure HTML + Tailwind utilities.
Shown in light and dark token sets
A composable surface primitive with depth + highlight.
Modal
example markup
This is a keyboard-friendly dialog recipe. Use a real
<dialog>
or toggle visibility in your app as needed.
Same markup, dark token variables applied via `.dark`.
No typography plugin required
LIGHT
Headings
Body
Glass UIs are background-dependent. Use slightly higher surface opacity on busy backdrops and keep line-length comfortable. This system exposes opacity + blur as tokens so you can tune the legibility.
Links are underlined for clarity: learn more.
List
Inline code
Compose surfaces with
liquid-surface
and depth via
liquid-depth-*.
“A liquid surface should feel light, soft, and responsive-never loud. Favor subtle highlights, calm motion, and accessible contrast.”
DARK
Headings
Body
Dark surfaces often want slightly higher opacity and quieter highlights. The same token set adapts via the `.dark` scope.
Keep interactive text obvious: accessible link.
List
Inline code
Example:
bg-liquid-4
for higher contrast.
“Typography is the stabilizer in a translucent system: keep it calm, readable, and predictable.”
Tokens are shipped as CSS variables (light + .dark)
and surfaced through Tailwind theme extensions (colors, radii, shadows, blur, motion).
xs → xl via CSS vars
soft → liquid
liquid-depth-1 → 5
Compose glass quickly with these classes:
liquid-surface,
liquid-highlight,
liquid-grain,
liquid-depth-*,
liquid-motion.