rit3zh/expo-liquid-lens — explained in plain English
Analysis updated 2026-05-18
Build an animated segmented tab bar with a glass-like sliding indicator.
Add a category or filter switcher with tap and drag interaction.
Show a GPU-refraction visual effect in a React Native app's UI.
| rit3zh/expo-liquid-lens | javlonbek1233/-brainboost | javlonbek1233/-neuroscan-a | |
|---|---|---|---|
| Stars | 40 | 40 | 40 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 2/5 | 2/5 |
| Audience | developer | vibe coder | vibe coder |
Figures from each repo's GitHub metadata at analysis time.
Requires a native development build with WebGPU support, does not run in Expo Go.
expo-liquid-lens is a tab switcher component for React Native apps built with Expo. It displays a horizontal row of tabs with a pill-shaped indicator that slides to the active tab. What makes it visually distinctive is the pill: instead of a plain colored highlight, it renders a live refraction effect using WebGPU, so the content under the pill appears warped like glass, and the movement between tabs is animated with a spring rather than a linear slide. Users can tap a tab or drag the pill directly across the row. The component is written in TypeScript and provides a compound API, meaning you build the tab bar by nesting smaller pieces: a Tabs wrapper, Tabs.Item for each tab, Tabs.Label for the text, and Tabs.Icon for an icon from the @expo/vector-icons library. It supports both controlled mode (where your code explicitly sets the active index) and uncontrolled mode (where the component manages its own state). Colors, pill opacity, border radius, and padding are all configurable through props. Because the refraction effect runs on the GPU via a WebGPU shader, the component has requirements that plain React Native components do not. It depends on react-native-webgpu and React Native Skia, which require a native development build, it will not run inside Expo Go. Label text is rasterized by Skia rather than rendered as standard React text nodes, which means only string labels are supported, not arbitrary React elements. The README notes that continuous GPU shader rendering is heavier than a standard view-based tab bar and advises caution on low-end devices. The project is a demo component rather than a published package. To try it, you clone the repository, install dependencies with Bun, and run it on a device or simulator that has a working WebGPU backend.
A React Native tab switcher for Expo apps whose sliding pill indicator renders a real-time GPU refraction effect that warps the content beneath it.
Mainly TypeScript. The stack also includes TypeScript, React Native, Expo.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.