Skip to content


Repository files navigation


Fancy Gif

Getting Started

Add the plugin (pub coming soon):

  fancy_bottom_navigation: ^0.3.2


For now this is limited to more than 1 tab, and less than 5. So 2-4 tabs.

Basic Usage

Adding the widget

bottomNavigationBar: FancyBottomNavigation(
    tabs: [
        TabData(iconData: Icons.home, title: "Home"),
        TabData(iconData:, title: "Search"),
        TabData(iconData: Icons.shopping_cart, title: "Basket")
    onTabChangedListener: (position) {
        setState(() {
        currentPage = position;


iconData -> Icon to be used for the tab
title -> String to be used for the tab
onClick -> Optional function to be used when the circle itself is clicked, on an active tab



tabs -> List of TabData objects
onTabChangedListener -> Function to handle a tap on a tab, receives int position


initialSelection -> Defaults to 0
circleColor -> Defaults to null, derives from Theme
activeIconColor -> Defaults to null, derives from Theme
inactiveIconColor -> Defaults to null, derives from Theme
textColor -> Defaults to null, derives from Theme
barBackgroundColor -> Defaults to null, derives from Theme
key -> Defaults to null


The bar will attempt to use your current theme out of the box, however you may want to theme it. Here are the attributes:

Fancy Theming

Programmatic Selection

To select a tab programmatically you will need to assign a GlobalKey to the widget. When you want to change tabs you will need to access the State using this key, and then call setPage(position).
See example project, main.dart, line 75 for an example.


Using this package in a live app, let me know and I'll add you app here.


This package was inspired by a design on dribbble by Manoj Rajput:


Contributions are welcome, please submit a PR :)