What's Included
- TypeScript source (Container.tsx)
- SVG checkmark + spinner icons (Checkmark.tsx, Loading.tsx)
- Demo screen (App.tsx)
- README with install + usage
- MP4 preview
About the Project
Built with react-native-reanimated v4 — a single `progress` shared value (0 Save → 1 Saving → 2 Saved → 3 reset) drives the entire choreography on the UI thread, so width, background color (interpolateColor), label letters, and the indicator all stay in sync with zero React state. Each suffix letter is a worklet-animated Animated.Text that fades and slides over its own staggered slice for the rolling effect. The status indicator layers an AnimatedBlurView (expo-blur, intensity animated via useAnimatedProps) over a spinner that scales out as the checkmark scales in; the spinner spin uses a Reanimated CSS keyframe animation. Tap scaling comes from pressto's PressableScale and the app is wrapped in react-native-gesture-handler's root view. Icons are react-native-svg. Tested on Expo SDK 56 (iOS + Android); note that the expo-blur indicator looks best on iOS.