This animation is built on the following libraries. expo install pins the versions that match your SDK, and the CLI tells you exactly which ones are missing when you add the component.
Overscroll as progress. The scroll view's negative contentOffset.y maps to a 0..1 pull value. The pill's opacity, scale and translateY derive from it, so the gesture drives the reveal directly, no spring involved.
Two-stage reveal. During the pull the pill is a compact centered loupe bubble. Crossing the threshold expands it to the full-width field, and the loupe cross-fades into the input row. One light haptic fires exactly at the threshold.
Keyboard docking.useAnimatedKeyboard streams the keyboard height every frame and the pill rides it pixel-perfect, including the interactive drag dismiss.
Real Liquid Glass.expo-glass-effect on iOS 26, blur fallback everywhere else. Two device-only traps: animating opacity on the pill kills UIGlassEffect on a real iPhone (fine in the simulator), so the pill hides by sliding below the screen edge. And overflow: hidden on the container rasterizes the glass, the radius lives on the GlassView itself.
Typing stays native. The TextInput is uncontrolled, the query is lifted through onChangeText only, so fast typing never drops a character.