salomon_bottom_bar 1.0.6

  • Readme
  • Changelog
  • Example
  • Installing
  • 80

salomon_bottom_bar #

Yet another bottom navigation bar, but with a few key promises.

Promises #

We guarantee the following:

  1. We will meet the specifications provided by Aurélien Salomon and his gorgeous Google Bottom Bar Navigation Pattern.
  1. We will be accessible.

  2. We will mimic the semantics of BottomNavigationBar

NOTE: Any use cases not covered by Salomon's specification are not guaranteed by this package.

Contributing #

Create an issue / pull-request when we are not keeping our promises, ie:

  1. The package does not match the Salomon specification.
  2. There is an accessibility problem.
  3. It diverges from BottomNavigationBar semantics.

[1.0.6] - May 18, 2020 #

  • Match hover/highlight/splash/focus colors to selectedColor

[1.0.5] - May 18, 2020 #

  • Improve color transitions

[1.0.4] - May 18, 2020 #

  • Refactor to use TweenAnimationBuilder

[1.0.3] - May 17, 2020 #

  • Make default margin 8px all

[1.0.2] - May 17, 2020 #

  • Improve curves/duration adherance to specs.

[1.0.1] - May 17, 2020 #

  • Meet all Salomon specifications.
  • Mimic BottomNavigationBar semantics.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:salomon_bottom_bar/salomon_bottom_bar.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  var _selectedTab = _SelectedTab.home;

  void _handleIndexChanged(int i) {
    setState(() {
      _selectedTab = _SelectedTab.values[i];
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'salomon_bottom_bar',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text("salomon_bottom_bar"),
        ),
        body: Center(
          child: SalomonBottomBar(
            currentIndex: _SelectedTab.values.indexOf(_selectedTab),
            onTap: _handleIndexChanged,
            items: [
              /// Home
              SBBItem(
                icon: Icon(Icons.home),
                title: Text("Home"),
                selectedColor: Colors.purple,
              ),

              /// Likes
              SBBItem(
                icon: Icon(Icons.favorite_border),
                title: Text("Likes"),
                selectedColor: Colors.pink,
              ),

              /// Search
              SBBItem(
                icon: Icon(Icons.search),
                title: Text("Search"),
                selectedColor: Colors.orange,
              ),

              /// Profile
              SBBItem(
                icon: Icon(Icons.person),
                title: Text("Profile"),
                selectedColor: Colors.teal,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

enum _SelectedTab { home, likes, search, profile }

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  salomon_bottom_bar: ^1.0.6

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:salomon_bottom_bar/salomon_bottom_bar.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
59
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
80
Learn more about scoring.

We analyzed this package on Jul 10, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.8.4
  • pana: 0.13.15
  • Flutter: 1.17.5

Analysis suggestions

Package not compatible with SDK dart

Because:

  • salomon_bottom_bar that is a package requiring null.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.7.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.12 1.14.13
meta 1.1.8 1.2.2
sky_engine 0.0.99
typed_data 1.1.6 1.2.0
vector_math 2.0.8 2.1.0-nullsafety
Dev dependencies
flutter_test