NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #4689 most downloaded on pub.dev
Flutter widget inspired by the classic Desktop-style tab component. Supports customizable themes.
Last release 6 months ago
07 Apr 2026
Release timing varies
gaps range from 2 weeks to 1.1 years
Nearly every release is documented
notes for 50 of 50 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
64 releases · first in 2021
One column per quarter.
Adding the TabLabelBuilder typedef. #73
TabData
listenable and textProvider for reactive UI updates.labelBuilder to allow custom label widget creation instead of using the internally generated widget from text.TabsAreaThemeData
padding property.lastVisibleTabBehavior to configure how the last remaining tab behaves when there is no space available.LastVisibleTabBehavior
TabsAreaCrossAxisAlignment
OnTabSelection parameter change. #68
OnTabSelection parameter change. #68
Replacing the use of the controller with a delegate within the widgets.
Declarative callbacks. #68
Reorder action #68
Simplifying the delegate. #68
Fixing imports. #68
Selection action. #68
Changing default minimalist theme padding. #68
Selected tab getter. #68
Creating an isolated class for the delegate. #68
Removing controller property from TabbedView. #68
Updating doc. #68
Separating the drag action into 3 callbacks. #68
Using TabData itself in viewBuilder. #68
Clearing the example. #68
Removing wrong class hide. #68
Updating CHANGELOG version. #68
Renaming content to view. #68
Updating CHANGELOG version. #68
Using the TabData reference in the declarative constructor callbacks.
Renaming normal TabStatus value to unselected. #68
Version 3.0.0 #68
Formating. #68
TabDecoration
TabbedViewThemeData
folder.TabThemeData
maxLines parameter to allow text wrapping in tab labels, specifically designed to work in conjunction with maxMainSize constraints.TabStyleResolver
TabThemeData.TabbedView
TabbedView.declarative constructor for declarative (external state) usage.TabbedView
contentBuilder property to viewBuilder.
IndexedWidgetBuilder to TabViewBuilder.TabData instead of tab index.TabData
id property to uniquely identify tabs.key and uniqueKey properties from the public API.value property type from dynamic to Object?.content property to view.TabData to TabThemeData.
TabData:
normalStatusThemeselectedStatusThemehoveredStatusThemeTabStatus
normal value to unselected.TabDecorationBuilder
TabStatus parameter with TabStyleContext.OnDraggableBuild
controller parameter.CanDrop
target parameter.OnBeforeDropAccept
target parameter.OnTabSelection
OnTabSelected.(int? tabIndex, TabData? tabData) to (TabSelection? selection).OnTabRemove
OnTabRemoved.OnTabReorder
OnTabMoved.TabbedViewController
onTabSelection property to onTabSelected.onTabRemove property to onTabRemoved.onTabReorder property to onTabReordered.DraggableData
DraggableTabData.controller property.tabData property to tab.Nothing published for this version
Nothing published for this version
Nothing published for this version
* TabData * Added the tooltip property.
TabData
tooltip property.Removed the hiddenTabsMenuItemBuilder property.
TabbedView
hiddenTabsMenuItemBuilder property.tabSelectInterceptor property.TabbedViewController
reorderEnable property to TabbedView.onReorder property to TabbedView.selectTab(TabData tab)getTabByValue(dynamic value)selectTabByValue(dynamic value)TabStatus
highlighted value to hovered.TabData
buttons property to buttonsBuilder to use the builder pattern.TabButton
TabButton.icon and TabButton.menu.TabRemoveInterceptor
BuildContext parameter.OnTabSelection
tabData parameter.top, bottom, left, right).
TabBarPosition enum to represent the bar positions.SideTabsLayout to define how side-positioned tabs (left or right) are laid out (rotated or stacked).Mobile theme to UnderlineDark theme.TabbedViewThemeData
divider: The border that separates the content area from the tab bar.TabsAreaThemeData
normalButtonColor property to buttonColor.hoverButtonColor property to hoveredButtonColor.hoverButtonBackground property to hoveredButtonBackground.hoveredButtonColor to inherit default color.crossAxisFit: Defines how the cross axis will fit within the tabs area.crossAxisAlignment: Defines the alignment of tabs in relation to the main content.tabHeaderExtentSize: Defines how tab headers are sized relative to each other along their extent.gapBottomBordergapSideBorder̀TabStatusThemeData
normalButtonColor property to buttonColor.hoverButtonBackground property to hoveredButtonBackground.TabThemeData
highlightedStatus property to hoveredStatus.normalButtonColor property to buttonColor.hoverButtonColor property to hoveredButtonColor.hoverButtonBackground property to hoveredButtonBackground.hoveredButtonColor to inherit default color.TabThemeData and TabStatusThemeData
innerBottomBorderinnerTopBorderdecorationmargindecorationBuilder: A builder for creating complex and composable tab decorators.maxMainSize: The maximum main size of the tab.sideTabsLayout: Define how side-positioned tabs (left or right) are laid out.ContentAreaThemeData
border: The border around the outer side of the tab content area, excluding the side adjacent to the tabs.borderRadius: The radius used to round the corners.HiddenTabsMenuThemeData with TabbedViewMenuThemeData.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Making the layout rebuild itself when TabData.text is changed. #55
Making the layout rebuild itself when TabData.text is changed. #55
TabData.text.Removing unnecessary imports.
Removing unnecessary imports.
Providing TabData in tabCloseInterceptor.
TabbedView
TabData in tabCloseInterceptor.dragScope for drag rejection.Added support for asynchronous tab close interception in `TabCloseInterceptor.
* Bugfix * Error setting text size
Allows you to define a maximum width for the tab text. #34
Allows you to define a maximum width for the tab text. #34
Fields in hidden tabs continue to receive focus when pressing TAB.
Highlighting the tab's drop position.
TabbedView instances.OnDraggableBuild.
(int tabIndex, TabData tabData)(TabbedViewController controller, int tabIndex, TabData tabData)Draggable will always be DraggableData type: Draggable<DraggableData>TabsAreaThemeData
dropColor.The draggableTabBuilder has been replaced by onDraggableBuild
TabbedViewController
setTabsreorderTabselectedTabreorderEnableOnReorderTabThemeData
draggingDecorationdraggingOpacityTabData
draggableDraggableConfigOnDraggableBuildTabbedView
draggableTabBuilder has been replaced by onDraggableBuild
Draggable<TabData>TabData
uniqueKey property has been renamed to key.From:
TabbedView tabbedView = TabbedView(
controller: _controller,
draggableTabBuilder: (int tabIndex, TabData tab, Widget tabWidget) {
return Draggable<String>(
child: tabWidget,
feedback: Material(
child: Container(
child: Text(tab.text),
padding: EdgeInsets.all(4),
decoration: BoxDecoration(border: Border.all()))),
data: tab.text,
dragAnchorStrategy: (Draggable<Object> draggable,
BuildContext context, Offset position) {
return Offset.zero;
});
});
To:
TabbedView tabbedView = TabbedView(
controller: _controller,
onDraggableBuild: (int tabIndex, TabData tabData) {
return DraggableConfig(
feedback: Container(
child: Text(tabData.text),
padding: EdgeInsets.all(4),
decoration: BoxDecoration(border: Border.all())));
});
Removing the use of deprecated constructor.
* Tab leading widget
ContentAreaThemeData.decorationNoTabsArea
TabbedView.tabsAreaVisibleTabsAreaThemeData.visibleContentAreaThemeData.decorationNoTabsAreahashCode and == of the theme data.Stopping using deprecated hashValues method.
hashValues method.Renaming MenuThemeData to TabbedViewMenuThemeData
MenuThemeData to TabbedViewMenuThemeData
* Formatting code.
Adding interceptor for tab selection.
Adding getTabByIndex method in TabbedViewController.
getTabByIndex method in TabbedViewController.TabData properties: buttons, closable, content, text and value.Removing theme settings values equal to inherited ones
tab.highlightedStatus.decorationtab.selectedStatus.decorationRemoving unused argument normalStatus from TabThemeData.
normalStatus from TabThemeData.paddingWithoutButton setting in TabThemeData and TabStatusThemeData* Removing unnecessary imports
ButtonColors has been split into normalButtonColor, hoverButtonColor and disabledButtonColor
ButtonColors has been split into normalButtonColor, hoverButtonColor and disabledButtonColorbuttonPadding, normalButtonBackground, hoverButtonBackground and disabledButtonBackgroundPadding added to path icons to conform to Material Design standards
IconProvider to hold an IconPath or an IconData in the themes and TabButton* README update
Default themes adjustments, such as gaps and paddings
buttonsGap setting in TabsAreaThemeDataIconPath to be used in icons drawingiconSize setting in TabButtonminimalIconSize and defaultIconSize constants moved from TabbedViewThemeData to TabbedViewThemeConstantsButtonsAreaThemeData properties moved to TabsAreaThemeDataTabButton
icon parameter renamed to iconDataTabsAreaThemeData
closeButtonIcon renamed to closeIconDatahiddenTabsMenuButtonIcon renamed to menuIconDatatab property moved to TabbedViewThemeDatacloseIconData property moved to TabThemeDatacloseIconPath property moved to TabThemeData* TabButton padding
TabButton paddingmenuBuilder has been removed from TabbedViewController
menuBuilder has been removed from TabbedViewControllerTabbedViewMenuItemOnTabClosing typedef renamed to TabCloseInterceptor
OnTabClosing typedef renamed to TabCloseInterceptorOnTabClose typedefTabbedViewTheme refactored to be a widget following the same pattern used by Flutter's Theme
TabbedViewTheme refactored to be a widget following the same pattern used by Flutter's ThemeTabbedViewTheme to TabbedViewThemeDataTabsAreaTheme to TabsAreaThemeDataContentAreaTheme to ContentAreaThemeDataMenuTheme to MenuThemeDataButtonsAreaTheme to ButtonsAreaThemeDataTabTheme to TabThemeDataTabStatusTheme to TabStatusThemeData* Bug fix * Tabs area overflow
Feature for clipping tab content
* Bug fix * Tabs area overflow
Added keepAlive parameter to prevent loss of tab content state due to tree change during tab selection event.
keepAlive parameter to prevent loss of tab content state due to tree change during tab selection event.Overlap between tabs and button area
Class name has been fixed (how embarrassing)
TabbedWiew has been renamed to TabbedView* README update
Divisor between tabs and content starting drawing at wrong offset
* README update
* README update
* Final version
light theme has been renamed to classic theme
light theme has been renamed to classic theme* Theme changes
TabbedWiewModel has been changed to TabbedWiewController
TabbedWiewModel has been changed to TabbedWiewControllerYour coding agent can read these notes before it upgrades. Set up the MCP server →