whatisgithub

What is expo-curved-bottom-tabs?

rit3zh/expo-curved-bottom-tabs — explained in plain English

Analysis updated 2026-05-18

67TypeScriptAudience · developerComplexity · 2/5Setup · easy

In one sentence

A curved, draggable bottom tab bar component for Expo mobile apps with a glass pill indicator that slides between tabs.

Mindmap

mindmap
  root((expo-curved-bottom-tabs))
    What it does
      Curved bottom tab bar
      Draggable glass pill
      Skia rendered surface
    Tech stack
      Expo Router
      Reanimated
      Skia
    Use cases
      Replace flat tab bar
      Animate active tab indicator
      Customize bar look
    Audience
      Mobile developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Replace a flat bottom tab bar with a curved, animated one in an Expo Router app.

USE CASE 2

Let users drag the active-tab indicator across the bar and have it snap to a tab.

USE CASE 3

Customize the bar's curve depth, thickness, and spring animation feel from one constants file.

USE CASE 4

Add SF Symbol icons on iOS with automatic Ionicons fallback on Android.

What is it built with?

TypeScriptExpoReact NativeReanimatedSkia

How does it compare?

rit3zh/expo-curved-bottom-tabsp0systems/peezy-clidenissergeevitch/chatgpt-portal
Stars676766
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyeasyeasymoderate
Complexity2/51/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Clone and adapt into your own project, requires GestureHandlerRootView for the draggable pill.

Terms are not stated in the source material provided.

So what is it?

This repository is a custom navigation bar component for mobile apps built with Expo, a framework that makes it easier to build iOS and Android apps using JavaScript. Specifically, it replaces the plain flat tab bar that normally appears at the bottom of the screen with a curved, visually styled version that includes an animated indicator shaped like a frosted-glass pill. The main visual idea is that when you tap between tabs, a translucent pill shape slides across the bottom bar and lands on the active tab. The pill uses two independent spring animations at once: one for the leading edge (which moves quickly) and one for the trailing edge (which follows more slowly), giving the movement a stretchy, organic feel. You can also drag the pill with your finger across the bar, and when you let go it snaps to the nearest tab and navigates there. The bar itself is drawn with a graphics library called Skia, which handles the curved arc shape and small decorative bead details along the surface. To use it, you clone the repository, install dependencies, and wire the CurvedTabBar component into the tabBar slot of Expo Router's tab navigator. The component exposes a few sub-pieces (List, Trigger, and Indicator) that you arrange in your layout file to declare which tabs exist and whether the sliding pill should appear. Tab icons are resolved by route name from a lookup table, using Apple-style SF Symbol names on iOS and Ionicons as a fallback on Android. Customization is done by editing constants in one file: the depth of the curve, bar thickness, pill height, icon size, and the two spring values all live there. Adding a new tab icon means adding one entry to a name-to-icon mapping object. The stack it depends on includes Expo 56, React Native 0.85, Reanimated 4, Gesture Handler 2, Skia, and Expo Glass Effect. This is a demonstration project and example codebase rather than a published package, so you use it by cloning and adapting, not by installing from a package registry.

Copy-paste prompts

Prompt 1
Show me how to wire CurvedTabBar into an Expo Router Tabs layout.
Prompt 2
Explain how the dual-spring pill animation in usePillAnimation works.
Prompt 3
Help me add a new tab icon to the TAB_META mapping in tab-bar.ts.
Prompt 4
Walk me through customizing the arc height, pill height, and bar thickness constants.

Frequently asked questions

What is expo-curved-bottom-tabs?

A curved, draggable bottom tab bar component for Expo mobile apps with a glass pill indicator that slides between tabs.

What language is expo-curved-bottom-tabs written in?

Mainly TypeScript. The stack also includes TypeScript, Expo, React Native.

What license does expo-curved-bottom-tabs use?

Terms are not stated in the source material provided.

How hard is expo-curved-bottom-tabs to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is expo-curved-bottom-tabs for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.