Liquid Glass Button
ID: liquid_glass_button
Category: action
Required slots: label
Live example
Status chips
Default
Active
Critical
Surface Card
Demonstrates tokenized panel, input, and CTA button states.
Overview
Read more
Frosted translucent primary action with high contrast and subtle depth. Includes size variants (sm, lg, icon-only), color variants (secondary, destructive, success), and companion glass surfaces (card, nav, badge, input). Uses backdrop-filter with solid fallbacks.
When to use / When not to use
When to use
- You want premium visual emphasis on calls to action in hero surfaces or floating panels.
- A translucent control helps maintain context while preserving contrast and clear affordance.
When not to use
- Dense data tables or compact forms where subtle translucent styling harms scan speed.
- Low-contrast backgrounds where disabled and secondary states may blend with content.
Accessibility notes
- Keyboard keys: Enter, Space.
- ARIA attributes: aria-label, aria-disabled.
- Visible focus required: Yes.
Implementation
{{-- DIG v1.1 button system demo --}}
<div class="dig-stack">
<div class="dig-lg-demo-surface dig-stack">
<div class="dig-lg-demo-row dig-lg-demo-row--buttons">
<span class="dig-lg-demo-label">Primary</span>
<button type="button" class="dig-liquid-glass-btn">Submit</button>
<button type="button" class="dig-liquid-glass-btn" disabled>Disabled</button>
</div>
<div class="dig-lg-demo-row dig-lg-demo-row--buttons">
<span class="dig-lg-demo-label">CTA Accent</span>
<button type="button" class="dig-liquid-glass-btn dig-liquid-glass-btn--secondary">Join now</button>
<button type="button" class="dig-liquid-glass-btn dig-liquid-glass-btn--secondary" disabled>Disabled</button>
</div>
<div class="dig-lg-demo-row dig-lg-demo-row--buttons">
<span class="dig-lg-demo-label">Danger</span>
<button type="button" class="dig-liquid-glass-btn dig-liquid-glass-btn--destructive">Delete</button>
<button type="button" class="dig-liquid-glass-btn dig-liquid-glass-btn--destructive" disabled>Disabled</button>
</div>
<div class="dig-lg-demo-row dig-lg-demo-row--buttons">
<span class="dig-lg-demo-label">Sizes</span>
<button type="button" class="dig-liquid-glass-btn dig-liquid-glass-btn--sm">Small</button>
<button type="button" class="dig-liquid-glass-btn">Default</button>
<button type="button" class="dig-liquid-glass-btn dig-liquid-glass-btn--lg">Large</button>
<button type="button" class="dig-liquid-glass-btn dig-liquid-glass-btn--icon" aria-label="Settings">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M8 10a2 2 0 100-4 2 2 0 000 4z" stroke="currentColor" stroke-width="1.2"/><path d="M13.3 6.5l-.7-.4a5.5 5.5 0 00-.5-.8l.2-.8a.5.5 0 00-.2-.5l-1-1a.5.5 0 00-.5-.2l-.8.2a5 5 0 00-.8-.5L8.6 2a.5.5 0 00-.5-.4h-1.2a.5.5 0 00-.5.4l-.4.7a5 5 0 00-.8.5l-.8-.2a.5.5 0 00-.5.2l-1 1a.5.5 0 00-.1.5l.2.8a5 5 0 00-.5.8l-.8.4A.5.5 0 002 7v1.2a.5.5 0 00.4.5l.7.4a5 5 0 00.5.8l-.2.8a.5.5 0 00.2.5l1 1a.5.5 0 00.5.1l.8-.2a5 5 0 00.8.5l.4.8a.5.5 0 00.5.3h1.2a.5.5 0 00.5-.3l.4-.8a5 5 0 00.8-.5l.8.2a.5.5 0 00.5-.2l1-1a.5.5 0 00.1-.4l-.2-.8a5 5 0 00.5-.8l.8-.4a.5.5 0 00.3-.5V7a.5.5 0 00-.3-.5z" stroke="currentColor" stroke-width="1.2"/></svg>
</button>
</div>
<div class="dig-lg-demo-row">
<span class="dig-lg-demo-label">Status chips</span>
<span class="dig-liquid-glass-badge">Default</span>
<span class="dig-liquid-glass-badge">Active</span>
<span class="dig-liquid-glass-badge dig-liquid-glass-badge--destructive">Critical</span>
</div>
</div>
<p class="dig-meta dig-pattern-demo-note">Panel and nav surfaces with DIG v1.1 tokens:</p>
<nav class="dig-liquid-glass-nav dig-lg-demo-row" aria-label="Demo navigation">
<strong class="dig-pattern-demo-title">DIG Portal</strong>
<span class="dig-pattern-demo-links">Home · Events · Patterns</span>
</nav>
<div class="dig-liquid-glass-card dig-stack">
<strong>Surface Card</strong>
<p class="dig-pattern-demo-copy">Demonstrates tokenized panel, input, and CTA button states.</p>
<div class="dig-lg-demo-row">
<input type="text" class="dig-liquid-glass-input dig-pattern-demo-input" placeholder="Tokenized input field..." aria-label="Demo input">
<button type="button" class="dig-liquid-glass-btn dig-liquid-glass-btn--secondary dig-liquid-glass-btn--sm">Search</button>
</div>
</div>
</div>