# Visual Effects ## Backdrop Blur Use `expo-blur` for blur effects. Prefer systemMaterial tints as they adapt to dark mode. ```tsx import { BlurView } from "expo-blur"; ; ``` ### Tint Options ```tsx // System materials (adapt to dark mode) // Basic tints // Prominent (more visible) // Extra light/dark ``` ### Intensity Control blur strength with `intensity` (0-100): ```tsx // Subtle // Full ``` ### Rounded Corners BlurView requires `overflow: 'hidden'` to clip rounded corners: ```tsx ``` ### Overlay Pattern Common pattern for overlaying blur on content: ```tsx Caption ``` ## Glass Effects (iOS 26+) Use `expo-glass-effect` for liquid glass backdrops on iOS 26+. ```tsx import { GlassView } from "expo-glass-effect"; Content inside glass ``` ### Interactive Glass Add `isInteractive` for buttons and pressable glass: ```tsx import { GlassView } from "expo-glass-effect"; import { SymbolView } from "expo-symbols"; import { PlatformColor } from "react-native"; ``` ### Glass Buttons Create liquid glass buttons: ```tsx function GlassButton({ icon, onPress }) { return ( ); } // Usage ``` ### Glass Card ```tsx Card Title Card content goes here ``` ### Checking Availability ```tsx import { isLiquidGlassAvailable } from "expo-glass-effect"; if (isLiquidGlassAvailable()) { // Use GlassView } else { // Fallback to BlurView or solid background } ``` ### Fallback Pattern ```tsx import { GlassView, isLiquidGlassAvailable } from "expo-glass-effect"; import { BlurView } from "expo-blur"; function AdaptiveGlass({ children, style }) { if (isLiquidGlassAvailable()) { return {children}; } return ( {children} ); } ``` ## Sheet with Glass Background Make sheet backgrounds liquid glass on iOS 26+: ```tsx ``` ## Best Practices - Use `systemMaterial` tints for automatic dark mode support - Always set `overflow: 'hidden'` on BlurView for rounded corners - Use `isInteractive` on GlassView for buttons and pressables - Check `isLiquidGlassAvailable()` and provide fallbacks - Avoid nesting blur views (performance impact) - Keep blur intensity reasonable (50-100) for readability