Buttons

How button elements are automatically styled with glassmorphism, shimmer effects, and interaction states.

The <button> element (and input[type="submit"], input[type="reset"]) is automatically styled as a glassmorphic button with rich interaction states. No classes required.

Basic Usage

<button>Default Button</button>
<button disabled>Disabled</button>

Interaction States

Every button goes through 4 visual states:

StateBehavior
DefaultFrosted glass with thin blur, specular top-edge glare
HoverSpecular shimmer sweeps across, background brightens, shadow deepens
ActiveButton scales down to scale(0.98), background darkens
DisabledOpacity drops to 0.45, cursor becomes not-allowed, no pointer events

The hover shimmer is a linear-gradient that slides from left to right using background-position, creating a light-refraction effect.

CSS Details

PropertyValue
Backgroundrgba(255, 255, 255, 0.2) with blur(8px)
Border1px solid var(--glass-border)
Border Radiusvar(--glass-radius-md) (14px)
Padding0.6rem 1.25rem
FontInherited, 0.95rem, weight 600
Layoutinline-flex, centered, gap: 0.5rem
DepthSpecular glare + ambient shadow
Shimmer200% wide gradient that transitions on hover

With Icons

Buttons support inline icons thanks to flexbox and gap:

<button>⬇ Download</button>
<button>Send →</button>

Utility Class Alternative

For <a> tags or other elements, use .glass-button:

<a href="/signup" class="glass-button">Sign Up</a>

See the Button component page for full details on .glass-button.