Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/felipe-software/react-native-jelly-tabs/llms.txt

Use this file to discover all available pages before exploring further.

React Native Jelly Tabs is a playful, physics-driven tab bar component for React Native apps. It delivers smooth jelly snapping, dragging, and press interactions powered by Reanimated and Gesture Handler — with a single line of integration into Expo Router or React Navigation.

Installation

Install the package and its peer dependencies for Expo or bare React Native.

Quickstart

Get a working jelly tab bar in your app in minutes.

Expo Router Guide

Drop-in integration with Expo Router’s file-based tab navigator.

API Reference

Full prop and type documentation for every exported component.

Why Jelly Tabs?

Jelly Tabs brings a polished, tactile animation layer to React Native navigation without forcing you to rewrite your routing setup. It slots directly into the tabBar prop of Expo Router and React Navigation, or operates fully headless for custom routing.

Cross-Platform

Runs on Android, iOS, and React Native Web with the same code.

Reanimated-Powered

Jelly springs, drag distortion, and press feedback all run on the UI thread.

Fully Customizable

Colors, opacity, layout, springs, distortion, backdrops, and touch feedback.

Accessible

VoiceOver and TalkBack support with selected state, activate, and long-press actions.

Quick Look

_layout.tsx
import { Tabs } from "expo-router";
import { JellyTabBar } from "react-native-jelly-tabs";
import { MaterialIcons } from "@react-native-vector-icons/material-icons";

export default function TabLayout() {
  return (
    <Tabs tabBar={(props) => <JellyTabBar {...props} floating />}>
      <Tabs.Screen
        name="index"
        options={{
          title: "Home",
          tabBarIcon: ({ color, size }) => (
            <MaterialIcons color={color} name="home" size={size} />
          ),
        }}
      />
      <Tabs.Screen
        name="settings"
        options={{
          title: "Settings",
          tabBarIcon: ({ color, size }) => (
            <MaterialIcons color={color} name="settings" size={size} />
          ),
        }}
      />
    </Tabs>
  );
}

Get Started

1

Install the package

npm install react-native-jelly-tabs
2

Install peer dependencies

npx expo install @react-native-masked-view/masked-view react-native-gesture-handler react-native-reanimated react-native-svg
3

Rebuild native

Run npx expo prebuild (Expo) or pod install + a fresh build (bare React Native).
4

Add JellyTabBar to your navigator

Pass <JellyTabBar> to the tabBar prop of your Expo Router or React Navigation tab navigator. See the Quickstart for a complete working example.

Build docs developers (and LLMs) love