LiquidGlassView
LiquidGlassView renders true liquid glass natively on both mobile platforms: Apple’s UIGlassEffect API on iOS 26+, and the AndroidLiquidGlassView AGSL shader on Android 13+, with customizable tint color, opacity, and touch interactivity.
Platform behavior
- iOS 26+: native
UIGlassEffect, hardware-accelerated, with optional touch interactivity viaisInteractive. - Android 13+: the AndroidLiquidGlassView
RuntimeShaderruns refraction, dispersion, blur and tint on the GPU. The library’s own widgets bind the backdrop through liveRenderNodereferences, which form cyclic render trees inside a React Native hierarchy — so the backdrop is instead captured software-side from the nearest screen, downsampled, and shared by glass views with the same capture root. Glass subtrees are excluded. Idle captures are reused for up to 100 ms; movement can request a fresh capture at a 33 ms interval, while each view’s position is tracked on rendered frames.glassTintColor/glassOpacitymodulate the shader tint (no scrim, no alpha cap).isInteractiveenables an iOS-style press-scale animation;ignoreSafeAreaandreducedTransparencyFallbackColorare iOS-only no-ops. - iOS below 26, Android below 13, and Web: automatically falls back to
BlurViewwithblurType="regular",blurAmount={70}, and a tintedoverlayColorcomputed fromglassTintColor/glassOpacity(capped at 35% alpha) — a deliberately engineered approximation of the glass look, not a generic blur. On web this renders with CSSbackdrop-filter;glassTypeandisInteractiveare no-ops there. - When “Reduce Transparency” is enabled on iOS 26+, the glass effect is hidden and a solid
reducedTransparencyFallbackColorview is shown instead.
⚠️ Use it wisely on Android: liquid glass is emulated through backdrop captures and a GPU shader. Views with the same capture root share a downsampled bitmap and capture work, but each glass surface still has its own shader and rendering cost; separate roots require separate captures. Prefer a few well-placed surfaces over dozens in long lists, and profile on target devices. The shader requires Android 13 (API 33) or newer; older Android versions automatically fall back to
BlurView, like iOS below 26.
Note: non-uniform corner radii (e.g. only
borderTopLeftRadius) clip correctly on Android, but the glass lens geometry (bevel/refraction) follows the uniformborderRadiusvalue.
Note: the component’s actual runtime default for
ignoreSafeAreaistrue. (An earlier version of the inline type documentation statedfalse— the table below reflects the real behavior.)
Basic usage
import { LiquidGlassView } from '@sbaiahmed1/react-native-blur';
<LiquidGlassView
glassType="regular"
glassTintColor="#007AFF"
glassOpacity={0.8}
style={{ padding: 20, borderRadius: 20 }}
>
<Text>Beautiful liquid glass effect</Text>
</LiquidGlassView>
Interactive glass
<LiquidGlassView
glassType="regular"
glassTintColor="#007AFF"
glassOpacity={0.9}
isInteractive={true} // iOS 26+ and Android 13+
ignoreSafeArea={false}
style={{ flex: 1, padding: 30 }}
>
<Text>Interactive liquid glass that responds to touch</Text>
</LiquidGlassView>
Glass types
| Value | Description |
|---|---|
| clear | Clear glass effect (default). |
| regular | Regular glass effect with a more pronounced appearance. |
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| glassType | GlassType ('clear' | 'regular') | 'clear' | iOS 26+, Android 13+The type of glass effect. |
| glassTintColor | string | 'clear' | iOS 26+, Android 13+The tint color for the glass effect. Accepts hex colors or color names. Modulated by the glass shader on both platforms; on fallback paths it tints the BlurView/web overlay. |
| glassOpacity | number | 1.0 | iOS 26+, Android 13+The opacity of the glass effect (0-1). Also scales the fallback overlay tint on platforms without native glass. |
| isInteractive | boolean | true | iOS 26+, Android 13+Controls whether the liquid glass effect is interactive and reacts to touch (iOS 26+; on Android it toggles an iOS-style press-scale animation). No effect on fallback paths. |
| ignoreSafeArea | boolean | true | iOSControls whether the glass effect should ignore all safe area edges. |
| reducedTransparencyFallbackColor | string | '#FFFFFF' | iOSFallback color shown when reduced transparency is enabled, or on iOS versions below 26. |
| style | StyleProp<ViewStyle> | undefined | Style object for the glass view. |
| children | React.ReactNode | undefined | Child components to render inside the glass view. |