Animated Tab Bar
  • August 19, 2025

Usage


  1. Add an Int to store the current selection
  2. Pass your buttons to the AnimatedTabBar using one of 2 initializers. For the first one you can pass any view type:

import AnimatedTabBar

AnimatedTabBar(selectedIndex: $selectedIndex) {
TabButton1()
TabButton2()
TabButton3()
}

For the second one the views must have the same type, or be manually converted to AnyView

AnimatedTabBar(selectedIndex: $selectedIndex, views: [TabButton1(), TabButton2(), TabButton3()])

Required parameters

selectedIndex – binding to the current index
views – buttons to display in the tabbar

Available customizations – modifiers

use the customize closure in the popup modifier:

barColor – Color of the tabbar itself
selectedColor – Selected tab color (use template rendering for this color to be applied properly)
unselectedColor – Unselected tab color
ballColor – Ball indicator color
verticalPadding – Space from the buttons to the bar’s top and bottom edges
cornerRadius – The corner radius applied to the tabbar background color
ballAnimation – Animation curve to apply to ball motion, default is .easeOut(duration: 0.6) indentAnimation – Animation curve for growing/shrinking of the indent in the tabbar
buttonsAnimation – Animation curve for applying color to tab buttons
didSelectIndex – Closure which gets called on every tab tap

ballTrajectory – Options for ball indicator animation paths:

  • parabolic – Jump to the selected button following a parabolic arc
  • teleport – Disappear and quickly re-appear above selected tab
  • straight – Slide to the selected tab

Built-in animatable tab buttons

By default tabs only have a simple color animation, but you can customize that. This library has two built-in button types you can use out-of-the-box: DropletButton and WiggleButton, and a super custom ColorButton type in the Example project. Please feel free to use them in your projects or build your own buttons on top of them.

Examples


To try the AnimatedTabBar examples:

  • Clone the repo https://github.com/exyte/AnimatedTabBar.git
  • Open AnimatedTabBarExample.xcodeproj in the Xcode
  • Try it!

Installation


Swift Package Manager

dependencies: [
.package(url: “https://github.com/exyte/AnimatedTabBar.git”)
]

Requirements


  • iOS 16+
  • Xcode 14+

GitHub


View Github

YOU MIGHT ALSO LIKE...
MijickPopups Hero

  Popups Alerts Resizable Sheets Banners

SwiftUI Tooltip

This package provides you with an easy way to show tooltips over any SwiftUI view, since Apple does not provide ...

SimpleToast for SwiftUI

SimpleToast is a simple, lightweight, flexible and easy to use library to show toasts / popup notifications inside iOS or ...

SSToastMessage

Create Toast Views with Minimal Effort in SwiftUI Using SSToastMessage. SSToastMessage enables you to effortlessly add toast notifications, alerts, and ...

ToastUI

A simple way to show toast in SwiftUI   Getting Started • Documentation • Change Log