What's Included
- TypeScript source (HolographicCard.tsx)
- SVG spotlight overlay (Glare.tsx)
- Card art assets (portrait, border, reflections, watermark masks)
- README with install + usage
- MP4 preview
About the Project
Built with react-native-reanimated shared values and useAnimatedStyle. A single Gesture.Pan from react-native-gesture-handler reads the touch point and maps it through interpolate with Extrapolation.CLAMP to rotateX/rotateY, applied via a perspective transform for the 3D lean; onEnd springs everything back with withTiming. The shine is a react-native-svg radial gradient composited with mixBlendMode 'overlay', and the reflection sprites are clipped to the card's watermark with @react-native-masked-view/masked-view. All animation runs on the UI thread, so dragging stays smooth on both iOS and Android. Note MaskedView uses androidRenderingMode 'software' for correct masking on Android, and mixBlendMode needs the new architecture / a recent RN version. Tested on Expo SDK 56; requires a dev build since it depends on react-native-svg and masked-view.