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 14 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: ShadCalendar initialMonth update when the user did not interact with the month selector yet.
ShadCalendar initialMonth update when the user did not interact with the month selector yet.FIX: ShadAccordion title overflow when the title is too long (thanks to @monteiz).
ShadAccordion title overflow when the title is too long (thanks to @monteiz).ShadContextMenuItem hover background color.3.32.0 to support the RoundedSuperellipseBorder.One column per month.
FEAT: Add ShadRoundedSuperellipseBorder to support the rounded superellipse border style as the primary border of any widget that uses ShadDecoration.
ShadRoundedSuperellipseBorder to support the rounded superellipse border style as the primary border of any widget that uses ShadDecoration.BREAKING CHANGE: The secondary border of ShadDecoration now is drawn outward of the widget, without consuming any extra space. This change affects all…
ShadDecoration now is drawn outward of the widget, without consuming any extra space. This change affects all components that are focusable.offset to ShadBorder to set the offset between the widget and the outward secondary border.orderPolicy, ShadApp.material, ShadApp.cupertino and so on.anchor of ShadSelect, ShadTooltip and ShadPopover from ShadAnchorAuto() to ShadAnchorAuto(offset: Offset(0, 4)).checkboxPadding to ShadCheckbox, ShadCheckboxTheme and ShadCheckboxFormField, defaults to EdgeInsets.only(top: 1).radioPadding to ShadRadio and ShadRadioTheme, defaults to EdgeInsets.only(top: 1).ShadApp if no Scaffold is used, by adding a new backgroundColor parameter to ShadApp and ShadAppBuilder.actionsGap to ShadDialog, defaults to 8.ShadTimePickerTheme parameters: spacing changed from 0 to 8, runSpacing changed from 0 to 4, gap changed from 2 to 4, fieldWidth changed from 58 to 48, periodHeight changed from 50 to 42.ShadTextareaTheme when retrieving the scrollbarPadding.ShadCalendarTheme.dayButtonDecoration.secondaryFocusedBorder to use a new offset and 50% opacity for improved visibility.ShadInputOTPTheme.padding changed from EdgeInsets.symmetric(vertical: 4) to null.ShadInputOTPTheme.padding from EdgeInsets.symmetric(vertical: 4) to null.ShadTab to prevent secondary border collisions, matching original shadcn keyboard navigation behavior.ShadCalendarTheme.monthSelectorMinWidth from 130 to 120.ShadCalendar.yearSelector and ShadCalendar.monthSelector now use a secondary focused border with 50% opacity to match other parts.ShadSelect with presets example by adding padding.ShadInput example with trailing icon.ShadMenubar.anchor.offset from Offset(-8, 8) to Offset(-4, 8).ShadPopover example by adding a gap between input fields.ShadSelectController now has a Set instead of a List to prevent duplicates in the selected options, this change has been applied to ShadSelect.initialValues and ShadSelectFormField as well.CHORE: Update lower bound dependency versions.
CHORE: Relax dependencies, previous versions were too strict and have been retracted.
CHORE: Bump the min flutter version to 3.32.0.
3.32.0.FIX: Add supportedDevices to ShadContextMenuRegion to decide which devices trigger the context menu (thanks to @MousyBusiness).
supportedDevices to ShadContextMenuRegion to decide which devices trigger the context menu (thanks to @MousyBusiness).CHORE: Update intl dependency to ^0.20.2 (thanks to @jg-l)
intl dependency to ^0.20.2 (thanks to @jg-l)BREAKING CHANGE: Update the appBuilder of the ShadApp by removing the ThemeData parameter.
appBuilder of the ShadApp by removing the ThemeData parameter.ShadApp.material, ShadApp.materialRouter, ShadApp.cupertino and ShadApp.cupertinoRouter. Use ShadApp.custom instead.FIX: The scrollbar of the ShadTextarea component has been fixed, added scrollbarPadding to ShadTextareaTheme and ShadInputTheme.
ShadTextarea component has been fixed, added scrollbarPadding to ShadTextareaTheme and ShadInputTheme.ShadTextarea on resize.CHORE: Bump dependency versions (thanks to @mayapaw).
ShadTextarea and ShadTextareaFormField components (thanks to @dalroy44).ShadSelectFormField initial value from ShadForm not working.- FEAT: Add Sonner component.
Sonner component.FIX: ShadSelectFormField and ShadSelectMultipleFormField controller not updating the parent ShadForm.
ShadSelectFormField and ShadSelectMultipleFormField controller not updating the parent ShadForm.FIX: ShadInput onPressedOutside when tapping on another ShadInput.
ShadInput onPressedOutside when tapping on another ShadInput.groupId to ShadInput and ShadInputFormField, defaults to UniqueKey instead of EditableText.FEAT: Add copyWith method to ShadColorScheme (thanks to @Luckey-Elijah).
copyWith method to ShadColorScheme (thanks to @Luckey-Elijah).FIX: ShadResizable divider alignments when dividerSize is overriden.
ShadResizable divider alignments when dividerSize is overriden.BREAKING CHANGE: Refactor ShadAnchorAuto to make it more powerful, removed verticalOffset and preferBelow in favor of offset, followerAnchor and targe…
ShadMouseCursorProvider.ShadMenubar anchor.ShadBadge should not enter the gesture arena if the onPressed callback is not provided.cursor to ShadBadge, defaults to SystemMouseCursors.click if onPressed is provided.ShadAnchorAuto to make it more powerful, removed verticalOffset and preferBelow in favor of offset, followerAnchor and targetAnchor. Now every component uses it by default.FIX: ShadGestureDetector global coordinates when using multiple Navigators.
ShadGestureDetector global coordinates when using multiple Navigators.FIX: Pass themeMode to MaterialApp (thanks to @mubareksd).
themeMode to MaterialApp (thanks to @mubareksd).focusNode to ShadInputFormField.FIX: ShadTooltip exit animation, add duration and reverseDuration to it.
ShadTooltip exit animation, add duration and reverseDuration to it.ShadMenubar no longer steals the focus.ShadButton stealing focus when pressed.stylusHandwritingEnabled to ShadInput.FIX: Add constraints to ShadInput and ShadInputFormField, by default the min height is calculated based on the style and placeholderStyle.
constraints to ShadInput and ShadInputFormField, by default the min height is calculated based on the style and placeholderStyle.ShadInput style and placeholder style which are now merged instead of replaced.ShadMenubar wrong padding used for the context menu.3.29.0 (thanks to @qk7b)- FIX: ShadInput icon color.
ShadInput icon color.REFACTOR: Deprecate ShadDivider and ShadDividerTheme, use ShadSeparator and ShadSeparatorTheme instead.
ShadMenubar component.ShadDivider and ShadDividerTheme, use ShadSeparator and ShadSeparatorTheme instead.onTapInside, onTapOutside, onTapUpInside and onTapUpOutside to ShadContextMenu.FEAT: Add ShadDivider component (thanks to @Luckey-Elijah)
ShadDivider component (thanks to @Luckey-Elijah)buttonDecoration to ShadButton inside ShadDatePicker (thanks to @plusema86)FIX: Validation mode on form field reset (thanks to @Mayb3Nots)
REFACTOR: Deprecate ShadTab.icon, use ShadTab.leading instead. Add trailing.
ShadTab.icon, use ShadTab.leading instead. Add trailing.ShadCalendarREFACTOR: Set debugShowCheckedModeBanner to false by default in ShadApp.
debugShowCheckedModeBanner to false by default in ShadApp.ShadInputOTPTheme.REFACTOR: Deprecated ShadButton.icon, use ShadIconButton for a button with just an icon and ShadButton.leading for a button with an icon and a text.
ShadIconButton component.ShadButton.icon, use ShadIconButton for a button with just an icon and ShadButton.leading for a button with an icon and a text.orderPolicy, use leading and trailing in the component.prefix and suffix in ShadInput, use leading and trailing instead.searchInputPrefix in ShadSelect, use searchInputLeading instead.FIX: Make selectedOptionBuilder required in ShadSelect (thanks to @muradab).
selectedOptionBuilder required in ShadSelect (thanks to @muradab).optionsBuilder to ShadSelect and its form fields where it was missing.FIX: Add constraints to ShadCard child.
ShadCard child.REFACTOR: Rename materialTextTheme into applyGoogleFontToTextTheme.
materialTextTheme into applyGoogleFontToTextTheme.ShadTheme with the context, in the materialThemeBuilder and appBuilder.BREAKING CHANGE: Rename ShadSelect and form fields controller to popoverController.
ShadInput readOnly not updating.ShadSelect and form fields controller to popoverController.controller to ShadSelect and form fields, to control the selected values.ShadResizable controller handling and simplify the logic to resize the panels.ShadResizable handle position with Axis.vertical.ShadResizable requires an id, to be able to handle when a panel is removed/added from the widget tree correctly.theme or darkTheme to the internal MaterialApp.FIX: ShadApp dark theme behavior now is the same as Material. The dark theme is applied only if you provide a darkTheme and the user theme mode is dar
ShadApp dark theme behavior now is the same as Material. The dark theme is applied only if you provide a darkTheme and the user theme mode is darkFIX: ShadTimePicker controller not being used correctly when the component is initialized. Now each field allows a single digit instead of two.
ShadTimePicker controller not being used correctly when the component is initialized. Now each field allows a single digit instead of two.FIX: ShadCalendar forward button icon color.
ShadCalendar forward button icon color.universal_image (thanks to @brunosemfio).FIX: ShadDatePicker popover closes on caption selection.
ShadDatePicker popover closes on caption selection.onNavigationNotification to ShadApp (thanks to @mllrr96)ShadDatePicker crash when caption layout is different from label, due to misleading Locale type passed to DateFormat, thanks dynamic for these amazing errors.FIX: Improve ShadAvatar (thanks to @mickey35vn).
ShadAvatar (thanks to @mickey35vn).ShadCalendar and ShadDatePicker.optionsOrderPolicy from ShadSelectTheme and move it to ShadOptionTheme with the name orderPolicy.FIX: InputOTP component with RTL directionality.
InputOTP component with RTL directionality.FIX: Set ShadCard clipBehavior to Clip.antialias, add clipBehavior to ShadCard and ShadCardTheme.
ShadCard clipBehavior to Clip.antialias, add clipBehavior to ShadCard and ShadCardTheme.selectedDecoration in ShadTabs (thanks to @thisisamank)hourLabel, minuteLabel, secondLabel, periodLabel, hourPlaceholder, minutePlaceholder, secondPlaceholder and periodPlaceholder to ShadTimePickerTheme.BREAKING CHANGE: Remove applyIconColorFilter from ShadButton.
applyIconColorFilter from ShadButton.ShadImage component. Prefer using the Icon widget for IconData, the Image widget for normal images, and SvgPicture (from the flutter_svg package for SVG images. If you want a fallback, use UniversalImage.iconSrc in iconData around components.TimePickerFormField initial value.FIX: Fix the iconSize of ShadButton, add iconSize to ShadButton.
ShadButton, add iconSize to ShadButton.FEAT: New OrderPolicy, LinearOrderPolicy, ReverseOrderPolicy and CustomOrderPolicy to update the order policy of the items in a list, this can be very
OrderPolicy, LinearOrderPolicy, ReverseOrderPolicy and CustomOrderPolicy to update the order policy of the items in a list, this can be very useful to arrange the order of the parts of the shadcn components.orderPolicy to ShadOption, ShadAlert, ShadButton, ShadCheckbox, ShadCheckboxFormField, ShadDatePicker, ShadDatePickerFormField, ShadDateRangePickerFormField, ShadRadio, ShadSwitch, ShadSwitchFormField, ShadToast.expands to ShadButton, defaults to false. Use it if you want the button's child to expand to fill the available space.FIX ShadTabs onChanged runtime exception due to misleading type
ShadTabs onChanged runtime exception due to misleading typeFIX: ShadTable protect onExit from setting value after dispose (thanks to @jezell)
ShadTable protect onExit from setting value after dispose (thanks to @jezell)FIX: Add allowDeselection to ShadCalendar.range
allowDeselection to ShadCalendar.rangeFIX: ShadInputOTP text alignment and padding
ShadInputOTP text alignment and paddingtextInputAction to ShadInputOTPSlotBREAKING CHANGE: The ShadBorder no longer has default values, if you want to see the border rendered provide a color and a width greater than 0. This…
ShadInputOTP and ShadInputOTPFormField components.ShadBorder no longer has default values, if you want to see the border rendered provide a color and a width greater than 0. This fixes the merge of material borders.ShadTabs border radius.ShadSlider focused thumb.ShadResizable resize when Directionality is RTL.destructive color on dark mode to be more visible.FIX: showCursor default value in ShadInputFormField
showCursor default value in ShadInputFormFieldFIX: ShadTabs and ShadResizable lerp
ShadTabs and ShadResizable lerpShadTabs focused border color in dark modeFEAT: New ShadTimePicker and ShadTimePickerFormField components.
ShadTimePicker and ShadTimePickerFormField components.maxLength, maxLengthEnforcement and showCursor not working on ShadInputShadCalendar range day button text style when disableSecondaryBorder is true.3.24.0trackColor from ShadSwitch (thanks to @RaghavTheGreat)ShadSlider onChanged called on every controller update (thanks to @helightdev).Nothing published for this version
FIX: ShadDialog and ShadSheet children constraints.
ShadDialog and ShadSheet children constraints.flutter_svg_plus dependency with flutter_svg and vector_graphics_plus with vector_graphics.FIX: ShadDialog and ShadSheet children constraints.
ShadDialog and ShadSheet children constraints.- FIX: Decoration merge
FEAT: New ShadDatePicker component.
ShadDatePicker component.allowDeselection property to ShadCalendar.ShadSelect crash when using optionsBuilder.itemCount and shrinkWrap to ShadSelect and ShadSelectFormField.- FIX: ShadApp scroll behavior.
ShadApp scroll behavior.BREAKING CHANGE: Remove onChangedNullable from ShadSelect and ShadSelectFormField. Now the onChanged callback will be called with null when the user d…
onChangedNullable from ShadSelect and ShadSelectFormField. Now the onChanged callback will be called with null when the user deselects an option if allowDeselection is set to true. (thanks to @moshOntong-IT)ShadTable when onRowTap or onColumnTap is provided.FIX: Fix ShadSelect initial values on widget creation.
ShadSelect initial values on widget creation.- CHORE: Update svg dependencies
Your coding agent can read these notes before it upgrades. Set up the MCP server →