What's Included
- TypeScript source (Container.tsx)
- Demo
- README with install + usage
About the Project
Built with react-native-reanimated v4 shared values. An useAnimatedScrollHandler writes the scroll offset to the UI thread, and an useAnimatedReaction compares current vs. previous offset to detect scroll direction, driving a single `progress` shared value between 0 and 1 with withSpring. Menu width, icon scale, icon translation, and the dot indicator's opacity/translateX all interpolate off that one progress value, so the whole reveal animation stays in sync and runs entirely on the UI thread (no JS-thread bridge work per frame). Icons use expo-symbols (SF Symbols), so the look is best on iOS; Android renders fall-back glyphs. Tested on Expo SDK 54, RN 0.81, Reanimated 4.1. No native code — works in a managed Expo project.