{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "beautiful-expo", "homepage": "https://github.com/davidmokos/beautiful-expo", "items": [ { "name": "progressive-blur", "type": "registry:item", "title": "Progressive Blur", "description": "JavaScript-only progressive blur primitives, scroll-aware headers, and safe-area footers for Expo apps.", "author": "David Mokos", "dependencies": [ "@react-native-masked-view/masked-view", "expo-blur", "expo-linear-gradient", "react-native-reanimated@~4.5.0", "react-native-worklets@~0.10.0", "react-native-safe-area-context" ], "files": [ { "path": "registry/default/progressive-blur/progressive-blur.tsx", "type": "registry:file", "target": "~/src/components/ui/progressive-blur.tsx" } ], "docs": "Render scrollable content before the blur so expo-blur can sample it. ProgressiveBlurHeader and ProgressiveBlurFooter handle safe areas and use polished defaults: barHeight 58, spill 16, falloff 64, intensity 70, layers 6. Use useProgressiveBlurScroll with an Animated.ScrollView and pass scrollY to the header for a transparent-at-rest blur. Use floating on the footer for a floating tab bar." } ] }