Browse docsProvider

Core

Glass Provider

Sets the theme and accessibility preferences that every Glassy UI component follows.

Preview

Demos ready. Update 0.

Installation

For React 19+ apps with Tailwind CSS 4.

npx shadcn@4.14.1 add @glassyui/glass-provider

Adds 4 files to components/glassyui.

Usage

Usage

import { GlassProvider } from "@/components/glassyui/glass-provider";

export function AppProviders({ children }: { children: React.ReactNode }) {
  return <GlassProvider>{children}</GlassProvider>;
}

Examples

Choose the default theme

<GlassProvider defaultTheme="light">{children}</GlassProvider>
Legacy SVG filters

<GlassProvider>
  <LiquidFilters />
  {children}
</GlassProvider>

API reference

GlassProvider

Holds the preferences and writes them to data-lg-* attributes on the html element.

PropTypeDefaultDescription
childrenRequiredReactNodeNoneThe app, or the part of it that uses glass components.
defaultTheme'light' | 'dark'system settingTheme a visitor sees until they choose one; without it the provider follows prefers-color-scheme. A saved choice always wins.

usePreferences

Hook that returns { preferences, setPreferences }. Throws outside GlassProvider.

PropTypeDefaultDescription
preferences.theme'light' | 'dark'defaultTheme, else systemActive colour theme.
preferences.mode'clear' | 'tinted''clear'Glass appearance mode.
preferences.quality'low' | 'medium' | 'high'detectedRendering quality: low with reduced transparency or 4 GB of device memory or less, medium on touch or with reduced motion, otherwise high.
preferences.reduceMotionbooleanprefers-reduced-motionStops glass motion.
preferences.reduceTransparencybooleanprefers-reduced-transparencyMakes glass opaque and turns off the lens and refraction.
preferences.thicknessnumber1Glass thickness as a multiple of regular; applied between 0.25 and 2.
setPreferences(prefs: Partial<GlassyUiPreferences>) => voidNoneMerges and applies the given preferences, and saves them to localStorage under glassy-ui-preferences.

useOptionalPreferences

Same shape as usePreferences, but safe outside GlassProvider: it then returns the defaults, follows the system reduced-transparency setting, and setPreferences does nothing.

PreferencesProvider

Alias of GlassProvider, kept for compatibility.

Also accepts GlassProvider props.

LiquidFilters

Hidden SVG filter definitions (#lg-liquid-refraction and others) for your own CSS. No Glassy UI component needs it. Import it from liquid-filters.

Types
GlassyUiPreferencesGlassyUiThemeGlassyUiModeGlassyUiQuality