A beautiful, SwiftUI-powered glass effect view for React Native built with Expo
- π§ Native glassEffect on iOS
- π Powered by SwiftUI for ultra-smooth performance
- π§± Configurable corner radius and style (continuous or circular)
- π Custom tint overlays and blur strength types
- π§© Supports nesting React Native children
npx expo install expo-liquid-glass-viewcd ios && pod installnpx expo prebuild --platform iosnpx expo run:ios
β οΈ iOS only β This view uses SwiftUI and does not support Android.
import { ExpoLiquidGlassView } from "expo-liquid-glass-view";
export default function App() {
return (
<ExpoLiquidGlassView
cornerStyle={CornerStyle.Circular}
type={LiquidGlassType.Tint}
tint="#000000"
cornerRadius={24}
style={{ width: 200, height: 200, alignSelf: "center", marginTop: 100 }}
>
<Text style={{ color: "#fff", textAlign: "center" }}>
Liquid Glass β¨
</Text>
</ExpoLiquidGlassView>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
type |
"clear" | "tint" | "regular" | "interactive" | "identity" |
"regular" |
Defines the glass blur intensity and system effect |
tint |
string |
undefined |
Optional iOS system tint, like "systemUltraThinMaterial" or custom color |
cornerRadius |
number |
12 |
Border radius in points |
cornerStyle |
"continuous" | "circular" |
"continuous" |
Defines the curvature style of the corners |
style |
StyleProp<ViewStyle> |
undefined |
React Native style object |
children |
React.ReactNode |
undefined |
Optional React children to render inside the glass |
export enum CornerStyle {
Continuous = "continuous",
Circular = "circular",
}
export enum LiquidGlassType {
Clear = "clear",
Tint = "tint",
Regular = "regular",
Interactive = "interactive",
Identity = "identity",
}
export interface ExpoLiquidGlassViewProps {
type?: LiquidGlassType;
tint?: string;
cornerRadius?: number;
cornerStyle?: CornerStyle;
style?: StyleProp<ViewStyle>;
children?: React.ReactNode;
}- β iOS (SwiftUI)
- β Android (not supported)
- βοΈ Expo Modules
- π SwiftUI
- π± React Native
If you're building glassmorphic UIs, try pairing this with:
expo-blurexpo-symbolsreact-native-skia
Simulator.Screen.Recording.-.iPhone.16.Pro.Max.-.2025-08-01.at.04.53.34.mov
MIT Β© rit3zh