What's Included
- TypeScript source (Meatball.tsx)
- Settings list content component (Content.tsx)
- App entry wiring gesture-handler + safe-area providers
- README with install + usage
- MP4 preview
About the Project
The gooey effect is a classic metaball trick: a Skia <Group> applies a Blur then a high-contrast alpha ColorMatrix so an overlapping Circle and RoundedRect visually merge and stretch apart. Scroll position is captured with useAnimatedScrollHandler and mapped through useDerivedValue/interpolate to the circle radius, blob scale and an expo-blur intensity, all on the UI thread via Reanimated v4 worklets. onEndDrag uses scrollTo to snap the avatar fully open or closed. Built on Expo SDK 56 with react-native-skia, react-native-reanimated and react-native-safe-area-context; the Skia layer keeps the gooey morph smooth on both iOS and Android. Note: notch / Dynamic Island offsets are device-specific, so pair with react-native-device-info to fine-tune positioning per device.