This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Expo GlassEffect
React components that render a liquid glass effect using iOS's native UIVisualEffectView.
GlassViewis only available on iOS 26 and above. It will fallback to regularViewon unsupported platforms.
React components that render native iOS liquid glass effect using UIVisualEffectView. Supports customizable glass styles and tint color.
Known issues
- Setting
opacityto0onGlassViewor any of its parent views causes the glass effect to not render at all. To fade in/out the glass effect, use the built-inanimateandanimationDurationprops inglassEffectStyleinstead of changing opacity. If you still want to useopacity, see the opacity animation workaround example. For more details, see Apple's documentation and GitHub issue #41024.
Installation
If you are installing this in an existing React Native app, make sure to install expo in your project.
Usage
GlassView
The GlassView component renders the native iOS glass effect. It supports different glass effect styles and can be customized with tint colors for various aesthetic needs.
GlassContainer
The GlassContainer component allows you to combine multiple glass views into a combined effect.
Animated glass effect style
The glassEffectStyle prop accepts a config object with animate and animationDuration properties to natively animate transitions between glass styles. This is the recommended way to fade in/out the glass effect without modifying opacity.
Opacity animation workaround
Since setting opacity to 0 on GlassView or its parent views causes the glass effect to not render at all, you can use Reanimated to animate a wrapper view's opacity while toggling the glassEffectStyle between the desired style and 'none'.
isLiquidGlassAvailable
The isLiquidGlassAvailable function let's you check, if the Liquid Glass effect is available in the compiled application.
It validates the system and compiler versions, as well as the Info.plist settings.
import { isLiquidGlassAvailable } from 'expo-glass-effect'; export default function CheckLiquidGlass() { return ( <Text> {isLiquidGlassAvailable() ? 'Liquid Glass effect is available' : 'Liquid Glass effect is not available'} </Text> ); }
isGlassEffectAPIAvailable
The isGlassEffectAPIAvailable function checks whether the Liquid Glass API is available at runtime on the device.
This API was added because some iOS 26 beta versions do not have the Liquid Glass API available, which can lead to crashes. You should check this before usingGlassViewin your app to ensure compatibility. See GitHub issue #40911 for more information.
import { isGlassEffectAPIAvailable } from 'expo-glass-effect'; export default function CheckGlassEffectAPI() { return ( <Text> {isGlassEffectAPIAvailable() ? 'Glass Effect API is available' : 'Glass Effect API is not available'} </Text> ); }
API
import { GlassView, GlassContainer, isLiquidGlassAvailable, isGlassEffectAPIAvailable, } from 'expo-glass-effect';
Components
Type: React.Element<GlassContainerProps>
Type: React.Element<GlassViewProps>
GlassColorScheme • Default: 'auto'The color scheme for the glass effect appearance. Use this to override the system appearance when your app has its own theme toggle.
union • Default: 'regular'Glass effect style to apply to the view. Can be a simple string ('clear', 'regular', 'none') or a config object for controlling animation behavior.
Acceptable values are: GlassStyle | GlassEffectStyleConfig
boolean • Default: falseWhether the glass effect should be interactive.
Ref<View>Methods
Checks whether the Liquid Glass API is available at runtime on the device.
This method was added because some iOS 26 beta versions do not have this API available, which can
lead to crashes. You should check this before using GlassView and GlassContainer in your app to ensure compatibility.
booleanIndicates whether the app is using the Liquid Glass design. The value will be true when the
Liquid Glass components are available in the app.
This only checks for component availability. The value may also be true if the user has enabled
accessibility settings that limit the Liquid Glass effect.
To check if the user has disabled the Liquid Glass effect via accessibility settings, use
AccessibilityInfo.isReduceTransparencyEnabled().
boolean