About the Project
Built with react-native-reanimated v4 worklets, so the whole flip runs on the UI thread with no timers or JS-thread lag. The physical split-flap look is real 3D: each page is two half-cards hinged at the vertical center, animated with rotateX around the hinge plus a perspective transform, with backfaceVisibility hidden so only the correct face shows. Depth comes from expo-linear-gradient shading that darkens each face as it tilts and soft shadows cast across the hinge. The component takes a single progress SharedValue (0..1) that maps to [minDay..maxDay]; its fractional part IS the flip angle, so any driver — the bundled DaySlider (react-native-gesture-handler pan that snaps to the nearest day on release), a withSpring, or a withTiming — scrubs it directly. Numbers use tabular-nums for stable width. No native code — runs in Expo Go on SDK 56 (iOS + Android).