About this drop
Everything moves on the UI thread through react-native-reanimated v4. The island is a single shared value interpolated across top, width, height and borderRadius, so the collapsed pill, drawn at the iPhone hardware cutout metrics, stretches into the printer bar in one morph. The feed is deliberately not an ease curve: it is a withSequence of three withTiming calls on Easing.steps, 90 hard jumps in total, holding a constant line pitch of about 6.7pt while only the dwell per line changes, which is what reads as a dot matrix hammer instead of a thermal glide. The paper is an SVG path whose outline traces concave arcs where the perforation bites in, so the drop-shadow filter follows the notches rather than squaring them off. The peel in Stub.tsx is a reflection about a moving crease: a Gesture.Pan sets the crease as the perpendicular bisector between the finger's landing point and its current position, clamped to a +/-36 degree cone, and two clipped copies of the stub, one mirrored with scaleY -1, form the fold. Every layer is a plain translate plus rotate at transformOrigin '0 0', so there are no matrices, and scheduleOnRN from react-native-worklets hands stage changes back to JS. Tested on Expo SDK 56 with no custom native code; iOS and Android behave the same, though the island blend only lands on iPhones that have the cutout.