NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1367 most downloaded on pub.dev
shadcn/ui ported in Flutter. Awesome UI components for Flutter, fully customizable.
Last release 10 days ago
24 Sep 2026
Release timing varies
gaps range from 8 days to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
3 years old
239 releases · first in 2024
FIX: ShadOption selectedIcon position doesn't match original shadcn/ui (thanks to @DMouayad).
ShadOption selectedIcon position doesn't match original shadcn/ui (thanks to @DMouayad).FIX: Assertion error when using ShadSelect.withSearch.
ShadSelect.withSearch.FEAT: Add onPressed to ShadSelect and its form fields to provide a custom callback when the select input is pressed, instead of toggling the popover.
One column per month.
onPressed to ShadSelect and its form fields to provide a custom callback when the select input is pressed, instead of toggling the popover.FIX: ShadDatePicker selected range not updated inside didUpdateWidget.
ShadDatePicker selected range not updated inside didUpdateWidget.FIX: Remove extra gap when actions is empty in ShadDialog.
actions is empty in ShadDialog.titlePinned, descriptionPinned and actionsPinned to ShadDialog and ShadSheet to control whether to pin the title, description and actions when scrolling the content.FEAT: Add buttonTextStyle to ShadDateRangePickerFormField.
buttonTextStyle to ShadDateRangePickerFormField.FEAT: Add buttonTextStyle to ShadDatePicker, ShadDatePickerTheme and ShadDatePickerFormField to customize the text style of the button that triggers t
buttonTextStyle to ShadDatePicker, ShadDatePickerTheme and ShadDatePickerFormField to customize the text style of the button that triggers the date picker popover.FEAT: Add top, bottom, verticalGap and onLineCountChange to ShadInput, ShadInputFormField, ShadTextArea and ShadTextAreaFormField to add widgets above
top, bottom, verticalGap and onLineCountChange to ShadInput, ShadInputFormField, ShadTextArea and ShadTextAreaFormField to add widgets above or below the input field, and to get notified when the number of lines in the input changes.boxy package.ShadTextarea double scrollbar.editableTextSize to ShadInput and ShadInputFormField to set a fixed size for the editable text area.FIX: ShadTabs consuming extra space when expandContent is true for unselected tabs.
ShadTabs consuming extra space when expandContent is true for unselected tabs.REFACTOR: Remove required parameters from ShadThemeData, use default values instead.
ShadThemeData, use default values instead.setInternalFieldError to ShadForm to set a forced error text for a form field.FEAT: Add maintainState to ShadTabs to control whether to maintain the state of the tabs when switching between them. Defaults to true.
maintainState to ShadTabs to control whether to maintain the state of the tabs when switching between them. Defaults to true.canRequestFocus to ShadButton.ShadTab which was focusable.FEAT: Add searchFocusNode to ShadSelect and ShadSelectFormField to provide a custom focus node for the search input.
searchFocusNode to ShadSelect and ShadSelectFormField to provide a custom focus node for the search input.onSearchSubmitted to ShadSelect and ShadSelectFormField to handle the submission of the search input (e.g., when the user presses the Enter key).ShadInput crash when removing the external focusNode.FIX: Fix ShadTable doesn't support RTL (thanks to @DMouayad).
BREAKING CHANGE: ShadTabs.expandContent has been removed and added to ShadTab.expandContent to allow expanding only specific tabs.
ShadTabs.expandContent has been removed and added to ShadTab.expandContent to allow expanding only specific tabs.FIX: Export Effect from flutter_animate as AnimateEffect to avoid name conflicts.
Effect from flutter_animate as AnimateEffect to avoid name conflicts.TextDirection from intl as IntlTextDirection to avoid name conflicts.FIX: ShadSelect not updating the controller when the form field value changes.
ShadSelect not updating the controller when the form field value changes.initialValues from ShadSelectMultipleFormField, use controller instead.ShadSelect.withSearch keyboard shortcuts closing the popover when the search input is focused.FEAT: Add backgroundColor, selectedBackgroundColor, textStyle and selectedTextStyle to ShadOptionTheme and ShadOption, to customize the background col
backgroundColor, selectedBackgroundColor, textStyle and selectedTextStyle to ShadOptionTheme and ShadOption, to customize the background color and text style of ShadOption (thanks to @9dan).FIX: Test fails due to pending Timer when using Animate and Duration.zero, which has been replaced with ShadAnimate.
Animate and Duration.zero, which has been replaced with ShadAnimate.ShadThemeData.merge and ShadTheme.merge methods to easily merge two themes together. This is useful when you want to override only a few properties of the theme for a subtree of the widget tree.FEAT: Add tabsGap and tabBarAlignment to ShadTabs in order to customize the gaps between tabs and the alignment of the tab bar (thanks to @9dan).
tabsGap and tabBarAlignment to ShadTabs in order to customize the gaps between tabs and the alignment of the tab bar (thanks to @9dan).ShadTextTheme had a color applied and inherited set to false, this prevented customizing the text styles easily. Now all text styles have inherit set to true and no color applied, so they can be customized more easily (thanks to @9dan)TextStyle.fallback method to easily set a fallback property to a TextStyle if it is null; for example, textStyle.fallback(color: Colors.red) will set the color to red if it is null, and will keep the original color if it is not null (thanks to @9dan).ShadOption.selectedIcon was always visible, even if the option was not selected (thanks to @DMouayad).showShadDialog (thanks to @DMouayad).showHours, showMinutes and showSeconds to ShadTimePicker and ShadTimePickerFormField to customize which fields are shown.FIX: Expose ShadButtonSizesTheme.
ShadButtonSizesTheme.textStyle to ShadButton and ShadButtonTheme to customize the text style of the button.BREAKING CHANGE: Remove iconData from ShadAlert, use icon instead.
iconData from ShadAlert, use icon instead.iconSize to ShadAlert and ShadAlertTheme, fallbacks to 16 from inherited IconTheme.FIX: The lerp method of themes was overriding null double values with 0.
lerp method of themes was overriding null double values with 0.Border with ShadBorder because Border.merge from Flutter is a mess (sums widths of a and b).BREAKING CHANGE: The mergeWith method has been renamed into merge and the merge boolean has been renamed into canMerge (ShadThemes).
mergeWith method has been renamed into merge and the merge boolean has been renamed into canMerge (ShadThemes).FEAT: Add leading, trailing, top and bottom parameters to ShadAlert to add widgets before, after, above or below the main content of the alert.
leading, trailing, top and bottom parameters to ShadAlert to add widgets before, after, above or below the main content of the alert.FIX: ShadSelect always scrolling to the selected option when opening the popover which can now be disabled with ensureSelectedVisible: false.
ShadSelect always scrolling to the selected option when opening the popover which can now be disabled with ensureSelectedVisible: false.required from onSearchChanged in ShadSelect and ShadSelectFormField to make it optional, as it is not required when a custom search widget is provided.FEAT: Allow extending ShadTextTheme with custom text styles through the custom parameter. See docs.
FIX: ShadTooltip not showing on hover.
ShadTooltip not showing on hover.FIX: ShadToast constraints were not being used.
ShadToast constraints were not being used.ShadToast text direction was not taken from theme.mainAxisSize and mainAxisAlignment to ShadToast and ShadToastTheme, defaults to MainAxisSize.max and MainAxisAlignment.spaceBetween.REFACTOR: Now all components are material-free. The only exception is ShadApp which provides platform adaptive routing and scroll behavior.
ShadApp which provides platform adaptive routing and scroll behavior.FIX: ShadSelect not reacting to the controller and rebuilding selectedOptionBuilder.
ShadSelect not reacting to the controller and rebuilding selectedOptionBuilder.ShadSelectFormField and ShadSelectMultipleFormField not resetting the value on form reset.FEAT: Add support for keyboard navigation in ShadCalendar (thanks to @pedromassango).
ShadCalendar (thanks to @pedromassango).FEAT: Add controller to ShadRadioGroup to manually control the selected value.
controller to ShadRadioGroup to manually control the selected value.FIX: ShadSwitch on RTL direction.
ShadSwitch on RTL direction.FEAT: Add useSafeArea to ShadDialog and ShadSheet to wrap the content with a SafeArea. Defaults to true.
useSafeArea to ShadDialog and ShadSheet to wrap the content with a SafeArea. Defaults to true.FIX: closeOnTapOutside of ShadDatePicker which wasn't passed to ShadPopover.
closeOnTapOutside of ShadDatePicker which wasn't passed to ShadPopover.FIX: Convert all EdgeInsets to EdgeInsetsGeometry to better support RTL and fix many components.
EdgeInsets to EdgeInsetsGeometry to better support RTL and fix many components.FEAT: Add ShadAccordionController to manually control the open/close state of the ShadAccordionItems.
ShadAccordionController to manually control the open/close state of the ShadAccordionItems.ShadAccordionItem by pressing Space (before it worked only with Enter) when the header is focused.FEAT: Add side to ShadSheetTheme to set the default side of the sheet from the theme.
side to ShadSheetTheme to set the default side of the sheet from the theme.FEAT: Modify the ShadTooltip component and its hover strategies to work on mobile on tap without a long press.
ShadTooltip component and its hover strategies to work on mobile on tap without a long press.ShadHoverStrategy.onTapOutside to trigger unhover when tapping outside the widget.ShadHoverStrategy.onTap to trigger hover/unhover when tapping inside the widget.hoverStrategies.hover and hoverStrategies.unhover, the hover will be toggled.FIX: change ShadSeparator.margin type to EdgeInsetsGeometry
ShadSeparator.margin type to EdgeInsetsGeometryFIX: ShadTextareaFormField initial value assert due to controller being used internally.
ShadTextareaFormField initial value assert due to controller being used internally.FIX: onChanged of ShadInputFormField and ShadTextareaFormField fired twice for any change.
onChanged of ShadInputFormField and ShadTextareaFormField fired twice for any change.FIX: Expose ShadDefaultKeyboardToolbarTheme.
ShadDefaultKeyboardToolbarTheme.- CHORE: Remove useless import.
FIX: Fix ShadResizable on RTL (for real this time).
ShadResizable on RTL (for real this time).3.35.0 to support FormField.onReset and Brightness from 'package:flutter/widgets.dart'FEAT: Add ShadKeyboardToolbar and ShadDefaultKeyboardToolbar components to show a toolbar above the keyboard. Add keyboardToolbarBuilder to ShadInput,
ShadKeyboardToolbar and ShadDefaultKeyboardToolbar components to show a toolbar above the keyboard. Add keyboardToolbarBuilder to ShadInput, ShadInputFormField, ShadTextArea, ShadTextAreaFormField, ShadInputOTP, ShadInputOTPFormField to easily add a keyboard toolbar to these components.FIX: Fix ShadTextTheme.copyWith was always overwriting custom font with default Geist font. [#425]
ShadTextTheme.copyWith was always overwriting custom font with default Geist font. [#425]FIX: Ensure ShadForm.onChanged is called for both standard Form fields and ShadFormField widgets.
ShadForm.onChanged is called for both standard Form fields and ShadFormField widgets.forceErrorText parameter to ShadFormField widgets.FIX: Fix ShadResizable on RTL. Remove useless textDirection parameter from ShadResizable and ShadResizableTheme.
ShadResizable on RTL. Remove useless textDirection parameter from ShadResizable and ShadResizableTheme.FIX: Add missing alignment parameter to ShadInput, ShadInputFormField, ShadTextArea and ShadTextAreaFormField.
alignment parameter to ShadInput, ShadInputFormField, ShadTextArea and ShadTextAreaFormField.FIX: Add missing popover closing animation (thanks to @DMouayad).
FIX: Updated ShadPopover filter logic to use effectiveFilter instead of widget.filter.
ShadPopover filter logic to use effectiveFilter instead of widget.filter.REFACTOR: Add cursor* customizations through theme (thanks to @GuillaumeMCK).
cursor* customizations through theme (thanks to @GuillaumeMCK).FIX: ShadCalendar back and forward buttons on RTL (thanks to @HarithHaroon).
ShadCalendar back and forward buttons on RTL (thanks to @HarithHaroon).FEAT: Add cursorColor to ShadInput (thanks to @GuillaumeMCK).
cursorColor to ShadInput (thanks to @GuillaumeMCK).AlignmentGeometry instead of Alignment inside ShadInput, ShadTextarea and their form fields (thanks to @omaralmgerbie)FIX: pass backgroundColor to ShadAppBuilder (thanks to @GuillaumeMCK)
backgroundColor to ShadAppBuilder (thanks to @GuillaumeMCK)FIX: ShadDialog and ShadSheet now use SafeArea to prevent the content from being cut off by the system UI.
ShadDialog and ShadSheet now use SafeArea to prevent the content from being cut off by the system UI.FIX: Add clearValueOnUnregister to ShadForm (defaults to false) to prevent clearing a form field's value from the form state when the field is unregis
clearValueOnUnregister to ShadForm (defaults to false) to prevent clearing a form field's value from the form state when the field is unregistered (aka disposed).ShadPopover not closing when pressing ESC (thanks to @DMouayad)REFACTOR: Update ShadCalendar yearSelectorMinWidth from 100 to 64 and monthSelectorMinWidth from 120 to 64.
ShadCalendar yearSelectorMinWidth from 100 to 64 and monthSelectorMinWidth from 120 to 64.ShadCalendar position of dropdown, which is now centered in the header.dropdownFormatMonth and dropdownFormatYear to ShadCalendar.ShadAvatar.MainAxisSize.min in ShadCard notification example.ShadContextMenuRegion.hitTestBehavior from ShadContextMenuRegion, defaults to HitTestBehavior.opaque (thanks to @NonymousMorlock).ShadTooltip to null instead of TextAlign.center.FIX: ShadIconButton icon size property isn't applied (thanks to @TahaTesser).
ShadIconButton icon size property isn't applied (thanks to @TahaTesser).Your coding agent can read these notes before it upgrades. Set up the MCP server →