diff --git a/.claude/skills/flutter-floating-bottom-bar/SKILL.md b/.claude/skills/flutter-floating-bottom-bar/SKILL.md index e681d50..1d2bd4f 100644 --- a/.claude/skills/flutter-floating-bottom-bar/SKILL.md +++ b/.claude/skills/flutter-floating-bottom-bar/SKILL.md @@ -5,7 +5,7 @@ description: Integrate, replace, or migrate to the `flutter_floating_bottom_bar` # flutter_floating_bottom_bar integration & migration -`flutter_floating_bottom_bar` (v2.x) is a Flutter package that floats any widget — `TabBar`, search bar, custom `Row`, `BottomBarItems` — above scrollable content and reacts to scroll notifications automatically. No `ScrollController` plumbing required. +`flutter_floating_bottom_bar` (v3.x) is a Flutter package that floats any widget — `TabBar`, search bar, custom `Row`, `BottomBarItems` — above scrollable content and reacts to scroll notifications automatically. No `ScrollController` plumbing required. You're being invoked because the user wants to **integrate it into their app**, **replace an existing bottom bar**, **migrate from v1.x → v2.0**, **dial in motion that feels great**, or **fix a glitch**. Your job is to do the work end-to-end: read what they have, plan the change, apply it, and verify it analyses cleanly. Don't ask the user to write the code themselves — that's what they invoked you for. @@ -27,7 +27,7 @@ Follow this sequence. Don't skip the discover step — applying a transformation Read what's actually in the user's project before touching anything. -- **`pubspec.yaml`** — confirm `flutter_floating_bottom_bar` is (or isn't) listed; note any existing version. Also check Dart/Flutter SDK constraints — the package needs Dart `>=3.5.0` and Flutter `>=3.22.0`. +- **`pubspec.yaml`** — confirm `flutter_floating_bottom_bar` is (or isn't) listed; note any existing version. Also check Dart/Flutter SDK constraints — the package needs Dart `>=3.12.0` and Flutter `>=3.44.0`. - **The file containing the bar they want to replace** — this is the load-bearing input. Identify the source pattern: - `BottomNavigationBar` (Material 2) - `NavigationBar` (Material 3) @@ -59,7 +59,7 @@ Apply the transformation. Stick to these principles: - **Preserve their state management.** If they had `int _currentIndex` and `setState`, keep that. If they had Riverpod / Bloc / Provider, route the selection through the same channel — don't accidentally rewrite their state layer. - **Use the helper widgets when it fits.** `BottomBarItem` + `BottomBarItems` cover the icon + label + badge + tap pattern well. Don't reach for them when the user has a `TabBar`, search field, or anything more custom — pass the raw widget as `child` instead. - **Wrap, don't move.** The new `BottomBar` wraps the user's scrollable as its `body`. Don't push the scrollable into a new file or restructure the widget tree more than necessary. -- **Add the import.** `import 'package:flutter_floating_bottom_bar/flutter_floating_bottom_bar.dart';` at the top of the file. Update `pubspec.yaml` (`flutter pub add flutter_floating_bottom_bar` or a `^2.0.0` line) if the package isn't already a dependency. +- **Add the import.** `import 'package:flutter_floating_bottom_bar/flutter_floating_bottom_bar.dart';` at the top of the file. Update `pubspec.yaml` (`flutter pub add flutter_floating_bottom_bar` or a `^3.0.0` line) if the package isn't already a dependency. - **For migrations**, follow the v1→v2 mapping in [references/migration-v1-to-v2.md](references/migration-v1-to-v2.md) precisely. Don't half-migrate (mixing v1 `barColor` with v2 `BottomBarThemeData`). ### 4. Verify diff --git a/CHANGELOG.md b/CHANGELOG.md index 38d16e1..2baee8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ ## Unreleased +## 3.0.0 + +### Breaking + +- Requires Dart `>=3.12.0` and Flutter `>=3.44.0`. +- Material imports now come from `package:material_ui/material_ui.dart`. + Apps still using the in-SDK Material must migrate their Material imports and + theme to `material_ui`; migrated apps no longer need + `MaterialUiCompatibilityBridge` for this package. +- `BottomBarLayout` and `BottomBarLayout.adaptive` now default `borderRadius` + to 28. Pass `BorderRadius.zero` for a square bar. + ### Added - `BottomBarLayout.avoidKeyboard` (default `true`): pads the bar and hidden diff --git a/README.md b/README.md index 6322eb0..326d2b5 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ surface, or any custom child. Requires Dart `>=3.12.0` and Flutter `>=3.44.0`. -See the [2.1.0 release notes](./CHANGELOG.md#210) for the complete list of new +See the [3.0.0 release notes](./CHANGELOG.md#300) for the complete list of new layout, scrolling, accessibility, and reliability improvements. ```bash @@ -77,11 +77,8 @@ import 'package:flutter_floating_bottom_bar/flutter_floating_bottom_bar.dart'; If you use [Claude Code](https://claude.ai/code), this repo ships a skill for integration, migration, and debugging help around this package. -Install: - -```bash -/install-skill https://raw.githubusercontent.com/codenameakshay/flutter-floating-bottom-bar/main/.claude/skills/flutter-floating-bottom-bar.skill -``` +Install by copying [`.claude/skills/flutter-floating-bottom-bar/`](https://github.com/codenameakshay/flutter-floating-bottom-bar/tree/main/.claude/skills/flutter-floating-bottom-bar) +into your Claude skills directory. ## Basic usage diff --git a/example/pubspec.yaml b/example/pubspec.yaml index c75a980..b6163a6 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -4,8 +4,8 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: ">=3.5.0 <4.0.0" - flutter: ">=3.22.0" + sdk: ">=3.12.0 <4.0.0" + flutter: ">=3.44.0" dependencies: flutter: diff --git a/pubspec.yaml b/pubspec.yaml index 52da6d5..14b2bd5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_floating_bottom_bar description: An adaptable Flutter floating bottom bar for navigation, search, and custom widgets, with scroll-aware visibility and accessible interactions. -version: 2.1.0 +version: 3.0.0 homepage: https://hashstudios.in repository: https://github.com/codenameakshay/flutter-floating-bottom-bar