Liquid Glass Component
A sophisticated glassmorphism React component that creates stunning liquid glass effects using advanced SVG filters. Features chromatic aberration, customizable distortion, and multiple visual variants for modern UI design.
Preview
Subtle
Default
Bold
Ghost
😎
Features
- Advanced SVG Filters: Chromatic aberration and displacement mapping for realistic glass effects
- Multiple Variants: Subtle, default, bold, and ghost presets with customizable parameters
- Responsive Design: Automatically adapts to container size changes
- Cross-browser Support: Fallback rendering for browsers without SVG filter support
- Dark Mode Compatible: Automatic theme detection and appropriate styling
- Accessibility: Focus-visible states and proper ARIA support
- TypeScript: Full type safety with comprehensive prop interfaces
Usage
Basic Glass Button
Loading...
Variants
The component includes four built-in variants:
- subtle: Minimal glass effect with low opacity and gentle distortion
- default: Balanced glass effect suitable for most use cases
- bold: Strong glass effect with high saturation and pronounced distortion
- ghost: Transparent variant with minimal background opacity
Props
GlassButton Props
| Prop | Type | Default | Description |
|---|---|---|---|
| variant | 'subtle' \ | 'default' \ | 'bold' \ |
| size | 'sm' \ | 'md' \ | 'lg' \ |
| children | React.ReactNode | undefined | Button content |
| onClick | MouseEventHandler | undefined | Click event handler |
| disabled | boolean | false | Whether the button is disabled |
| className | string | '' | Additional CSS classes |
| textClassName | string | 'text-white font-semibold' | CSS classes for button text |
Browser Support
The component automatically detects browser capabilities and provides appropriate fallbacks:
- Modern browsers: Full SVG filter support with chromatic aberration
- Safari/Firefox: Backdrop filter fallback with blur and saturation
- Legacy browsers: Static glass appearance with border and shadow effects
Performance Considerations
- SVG filters are GPU-accelerated in modern browsers
- ResizeObserver efficiently handles container size changes
- Memoized calculations prevent unnecessary re-renders
- Automatic cleanup of event listeners and observers
Accessibility
- Focus-visible states for keyboard navigation
- Proper ARIA attributes for interactive elements
- High contrast support in fallback modes
- Screen reader compatible content structure