shad 0.57.0
shad: ^0.57.0 copied to clipboard
shadcn/ui ported in Flutter. Awesome UI components for Flutter, fully customizable.
Unreleased #
New component: Sidebar #
A full port of shadcn/ui's Sidebar: ShadSidebarScaffold lays a
ShadSidebar next to the page content, with offcanvas/icon/none
collapse modes, sidebar/floating/inset variants, a directional
start/end side, an optional grab rail, and a ⌘B/Ctrl+B shortcut.
Below the md breakpoint the sidebar presents as a modal sheet instead.
Content composes from ShadSidebarGroup, ShadSidebarMenu,
ShadSidebarMenuButton (sizes, outline variant, badges, tooltips in the
icon rail), ShadSidebarMenuSub, ShadSidebarMenuSkeleton,
ShadSidebarSeparator and ShadSidebarTrigger. Colours come from the
scheme's sidebar* tokens and metrics from five new per-style tokens
(sidebarItemHeight/Sm/Lg, sidebarItemPaddingX,
sidebarSubItemPaddingX).
Example app: documentation browser #
The example is now a docs site: a shadcn-style top navigation
(Components / Theme Editor, with the light-dark and LTR-RTL switches on the
right) over a component browser built on the new sidebar. Every component
has a documentation page — description, live examples with a Preview/Code
tab pair, and a link to the old knob playground page. Example source is
shown in JetBrains Mono, highlighted with syntax_highlight, and is loaded
from the actual bundled example file, so the code on screen cannot drift
from the code that runs.
A fidelity pass against shadcn/ui's /create registry: colours and states were re-read from registry/styles/style-*.css and registry/config.ts rather than from the older new-york-v4 values, and the menu appearance options moved into the theme itself.
Breaking (visual): button variants match the current reference #
- Ghost and outline content is the
foreground, no longerprimary— on an accent theme, ghost buttons and menu rows stopped being tinted blue. Hover isbg-muted hover:text-foreground(muted/50in dark), notbg-accent. - Destructive is a soft tint (
bg-destructive/10 text-destructive,/20dark, hover one step stronger) instead of a solid fill, with a destructive focus ring. - Secondary hover mixes 5% foreground into the surface; primary hover is
primary/80. - Outline fills follow the style tokens:
bg-background+dark:bg-input/30 dark:border-inputinvega, washes or transparency inmaia/mira/luma/sera/rhea.
Menus: reference state fidelity #
- Menu rows recolour all their content on hover — text, leading/trailing icons and shortcuts — to
accent-foreground(focus:**:text-accent-foreground). Previously a leaf item's hover changed only the background, which could leave white-on-white content in inverted or bold-accent themes. ShadContextMenuItem.destructivemarks a destructive action: destructive text and icons over adestructive/10hover wash.- Menubar triggers highlight with
bg-mutedon hover and while open (aria-expanded:bg-muted), and the strip followsh-9 p-1 border shadow-xsper style. - Command items highlight with
bg-muted/text-foreground, not the accent. - Menu row height, min-width and surface padding come from the style tokens instead of a fixed 32/128/4.
Menu appearance options on ShadThemeData #
ShadThemeData now takes menuColorScheme, menuTranslucent and menuAccent, with the same semantics as shadcn's create editor: inverted menus take the whole opposite-brightness palette, translucent ones a blurred popover/70 surface with foreground/10 highlights, and a bold accent rewrites the scheme's accent pair with its primary. The example theme editor now uses these instead of hand-derived overrides.
Selection controls #
- A checked checkbox or radio recolours its outline with the fill (
data-checked:border-primary) — no more pale halo. - A selected radio is filled with the primary and its dot cut out in
primary-foreground, matching the reference (it used to stay an outlined ring with a primary dot). - Per-style fills:
luma/rheacontrols arebg-input/90and borderless;seraradios keep the outline form with aforegroundborder and dot. - Text fields, textareas and select triggers gained their per-style fills (
dark:bg-input/30,maiainput/30,mirainput/20,luma/rheainput/50borderless).
Other reference fixes #
- Dialogs sit on
bg-popoverwith the foreground-wash hairline, like every floating surface. - Slider and progress tracks are
bg-muted(previouslysecondary, which an accent theme tinted); the slider thumb is white in both modes. - Toggles press to
bg-mutedand follow the button metrics. - Tabs take their strip and trigger radii from the style (
rounded-lg/rounded-mdinvega), and onlyvega/novakeep the active-tab shadow. - Badges:
px-2, soft destructive tint, square in the square styles, andsera's flat text-only badges. - Kbd is a plain
bg-mutedchip in the sans face (no border, no mono). - Avatar default is
size-8(32px). - Cards separate their sections by
--card-spacing(ShadCardTheme.sectionGap) while the title/description gap stays small. - Surface hairlines are brightness-aware (
ring-foreground/5 dark:ring-foreground/10in the soft styles);rheacards/dialogs use the cappedmin(radius-4xl, 24px)corner. ShadDefaultThemeNoSecondaryBorderVariantis now a subclass ofShadDefaultThemeVariant, so every one of these fixes applies to both focus treatments.
Breaking (visual): nova is the default style #
ShadThemeData defaults to ShadStyleTokens.nova rather than vega, matching shadcn's own DEFAULT_CONFIG.style. nova is vega one size down and a step rounder: 32px controls and fields, 16px card and dialog padding, rounded-lg surfaces, no card shadow. Pass style: ShadStyleTokens.vega to keep the previous geometry. The ShadStyleTokens field defaults are still vega's, so a custom style only states what it changes.
Rendering fixes #
- Outward shadows use
BlurStyle.outer. CSS clips a box-shadow to outside the border box; Flutter's default blur painted it behind the whole box, which showed through every transparent or translucent fill as a grey wash — checkboxes, text fields, select triggers, the menubar strip and translucent menus all looked "slightly grey" in light mode. - Menu rows are start-aligned again (the item's button centres its text; the row merges
TextAlign.startback in). ShadCollapsiblereveals its content top-start instead of centring whatever is narrower than the strip.ShadEmptydraws its icon centred in the reference'ssize-10 bg-muted rounded-lgchip atsize-6, instead of a bare full-size glyph.- The focused OTP slot draws its ring outside the slot like every other field.
ShadSpinnerfollows the ambientIconTheme(text-current), so it spins in a button's content colour; the theme no longer pins it to the primary.- The select trigger's value, chevron, scroll chevrons and search field no longer borrow menu-palette colours — an inverted menu used to make the trigger's text invisible.
- A translucent menu keeps its drop shadow (it was clipped away with the backdrop filter).
- Inter is the default font, matching the reference's
font: "inter"; the variable font is bundled. Geist and Geist Mono remain bundled and selectable (ShadTextTheme(family: 'Geist', package: 'shadcn_ui')). - Focus rings only round the corners that the element itself rounds: a square-cornered element (the
lyra/serastyles, the middle OTP slots) gets a square ring, and rounded corners grow by the ring width so ring and element stay concentric — the OTP ring no longer detaches at the strip's corners. - Badges no longer react to hover; the reference only restyles badges rendered as links.
- Tabs lost the extra 4px gutter around each tab — the strip's
p-[3px]is the only inset, as in the reference. - The
seraselect trigger is underlined like its text fields (border-transparent border-b-input px-0) instead of a boxed border with zero padding. - The time picker's fields grow with the text scale and centre their digits.
- The menubar opens on click; hovering another trigger only switches menus while one is already open, matching the reference menubar.
ShadEmpty's icon chip is centred, and the example's empty-state card keeps its breathing room.
0.57.0 #
A breaking release. The export surface was trimmed, eleven components were added, and the default theme was brought in line with shadcn/ui's own values.
Breaking (visual): the default theme now matches shadcn/ui #
Values taken from shadcn/ui's new-york-v4 registry and globals.css rather than approximated.
- Focus ring. Was a 2px fully-opaque
ring-coloured outline floating 4px away from the element, which read as a hard outline with a gap. It is nowfocus-visible:ring-[3px] ring-ring/50: 3px, at 50% opacity, sitting flush against the element with no gap, and concentric with its corner radius.ShadOutwardBorderPainterstrokes inside a rect inflated byoffset, sooffset == widthis what removes the gap. - Default radius
6→8. shadcn's--radiusis0.625remand--radius-md— what button, input, checkbox and most components use viarounded-md— iscalc(var(--radius) * 0.8), i.e. 8px. - Button sizes now match
h-9 px-4 py-2/h-8 px-3/h-10 px-6/size-9: default height40 → 36, sm36 → 32, lg44 → 40with horizontal padding32 → 24, and icon40 → 36. ShadDefaultThemeNoSecondaryBorderVariantkeeps its inset focus border by design, but no longer hardcodes the old 6px radius — it followsShadThemeData.radius.
Pass radius: and buttonSizesTheme: to ShadThemeData to keep the previous look.
Breaking: the public barrel no longer re-exports unrelated packages #
import 'package:shadcn_ui/shadcn_ui.dart' used to pull in several hundred symbols that have nothing to do with this package. Only what appears in a Shad* signature is re-exported now. If you were relying on one of these transitively, add the package to your own pubspec.yaml and import it directly:
| Dropped | What to do |
|---|---|
boxy (all 8 libraries) |
add boxy to your pubspec — nothing in this package's API uses it |
flutter_svg |
add flutter_svg |
universal_image |
add universal_image |
intl — everything but DateFormat and NumberFormat |
add intl |
two_dimensional_scrollables — everything but the TableSpan*/TableView* types ShadTable needs |
add two_dimensional_scrollables |
flutter_animate and lucide_icons_flutter are still re-exported: both appear in the public API (effects: parameters and icon constants respectively).
Breaking: extensions on core types are no longer exported #
double, Duration, List, Map, Set, TextStyle and TapDownDetails all silently gained methods — and Duration gained + - * / operator overloads — in every file that imported this package. Those extensions are now internal. ShadBreakpointsExt on BuildContext and ShadDateTime on DateTime are still exported.
Breaking: render objects and painters are no longer exported #
MouseAreaRegistry, MouseAreaSurfaceRenderBox, ShadMouseAreaRenderBox, RenderSheetLayoutWithSizeListener, SonnerBoxy, ShadOutwardBorderPainter, ShadResizeGripPainter and ShadPositionDelegate were implementation details.
Breaking (with deprecated aliases): un-prefixed public names #
Each old name still works and is deprecated; all will be removed in v1.0.0.
ToastInfo → ShadToastInfo · SizeEffect → ShadSizeEffect · PaddingEffect → ShadPaddingEffect · AnimEffect → ShadAnimEffect · UpperCaseTextInputFormatter → ShadUpperCaseTextInputFormatter · LowerCaseTextInputFormatter → ShadLowerCaseTextInputFormatter · SheetDragStartHandler → ShadSheetDragStartHandler · SheetDragEndHandler → ShadSheetDragEndHandler · SizeChangeCallback → ShadSizeChangeCallback · ToValueTransformer → ShadToValueTransformer · FromValueTransformer → ShadFromValueTransformer · FocusWidgetBuilder → ShadFocusWidgetBuilder · ResponsiveWidgetBuilder → ShadResponsiveWidgetBuilder · PasteFilesCallback → ShadPasteFilesCallback · PasteFilesErrorCallback → ShadPasteFilesErrorCallback · RestorableShadTabsController → ShadRestorableTabsController · DateTime.isSameDayOrGreatier → isSameDayOrGreater
New components #
- FEAT:
ShadSkeleton(+.circle) — a pulsing loading placeholder. - FEAT:
ShadSpinner— an indeterminate circular indicator. Hand-painted, since nothing underlib/may importmaterial.dart. - FEAT:
ShadKbd(+.group) — keyboard key caps for documenting shortcuts. - FEAT:
ShadToggleandShadToggleGroup(+.multiple) withShadToggleGroupController. - FEAT:
ShadCollapsiblewithShadCollapsibleController— the single-section primitive under an accordion. - FEAT:
ShadEmpty— an empty state with icon, title, description and actions. - FEAT:
ShadPaginationandShadPaginationCompact. The page-window algorithm is exposed asShadPagination.buildPageWindowso it can be tested and reused. - FEAT:
ShadCommandandshowShadCommandDialog— a searchable, keyboard-navigable command palette with grouped items, keyword matching and a pluggable filter. - FEAT:
ShadDataTablewithShadDataTableControllerandShadDataTableColumn— sorting, filtering, paging and key-based row selection composed overShadTable.ShadTableitself is unchanged. - FEAT:
ShadRovingFocusandShadRovingFocusController— the shared arrow-key/Home/End/typeahead substrate the WAI-ARIA roving-tabindex pattern needs. Used byShadCommand. - Each new component ships with a
ShadXThemewired intoShadThemeData.
Breaking (visual): the neutral, stone and zinc palettes are shadcn v4's #
They were still the v3 values. Regenerated from registry/themes.ts, which moves several tokens:
- Dark
--borderand--inputare translucent whites (oklch(1 0 0 / 10%)and/ 15%) rather than opaque greys. A hairline now lightens whatever it sits on, instead of disappearing against a card of the same value — which is why a checkbox or radio outline was hard to make out in dark mode.ShadSlateColorSchemeandShadGrayColorSchemeare not in shadcn v4; they keep their own palette but adopt these two. - The dark card and popover are a step lighter than the page (
oklch(0.205)), so a card reads as raised rather than as a bordered region of the background. - Dark
primary,ring,muted-foregroundanddestructivemove to their v4 values.
Design tokens: radius scale, styles and spacing #
shadcn/ui derives every corner radius and every padding from two CSS variables. This release does the same, which is what makes a single setting move the whole UI in proportion instead of only the components that happened to read it.
-
FIX (visual): the default component sizes now match the current shadcn registry rather than an older snapshot of it. Button horizontal padding
16 → 10(px-2.5), icon/label gap8 → 6, input padding12/8 → 10/4with a 36px minimum height, popover padding12/6 → 16, slider track8 → 6and thumb20 → 16, switch44×24 → 32×18.4, progress16 → 6, table cell padding16 → 8horizontally, and a 3px inset on the tab strip. -
FEAT:
ShadRadii— thenone/sm/md/lg/xl/2xl/4xl/fullscale, derived fromShadThemeData.radius(themdstep). At the default 8 it reproduces shadcn's scale exactly: sm 6, md 8, lg 10, xl 14, 2xl 16, 4xl 32. Available asShadThemeData.radii. -
FIX (visual): components now pick a token rather than a number, so the theme radius reaches all of them.
ShadCardTheme.radiuswas hardcoded to 8 and ignoredShadThemeData.radiusentirely; the dialogs, progress, kbd and the select/command item rows had the same problem. Cards arerounded-xl, dialogs and sheetsrounded-lg, controlsrounded-mdand menu rowsrounded-sm, matching the reference. A card at the default radius is now 14px round rather than 8px. -
FEAT:
ShadStyleTokens— shadcn/ui's eight named styles (vega,nova,maia,lyra,mira,luma,sera,rhea) asShadThemeData(style:). Previously only two looks were reachable, throughdisableSecondaryBorder.A style is a full design set, not a colour variation — 243 of shadcn's 407 component classes differ in geometry between the eight. Everything here was read from
registry/styles/style-*.css, converting Tailwind's scale at 4px per unit.Sizes. A
mirabutton is 28px tall with 8px of horizontal padding; aseraone is 40px with 24px. Card padding runs 16 → 32 across the eight; slider tracks 2 → 12; switches 28×16.6 → 44×20; focus rings 1px at 50% → 3px at 30%.Radii, per surface class — controls, cards, dialogs, popovers and menu rows each pick their own token, which is why
novahasrounded-lgbuttons insiderounded-xlcards.Type. Each style redefines six
ShadTextRoles —title,label,body,caption,overlineandfield— carrying size, weight, tracking, line height and case.lyrasets body copy at 12px,miraputs it on a 1.625 line,serasets labels in 12px semibold uppercase tracked to 1.2px and titles at 18px. Every component theme's text style is derived from a role, so a style switch retypes the whole UI.Shadows.
nova,maia,lyraandmiradrop the card shadow entirely;lumagives itmd;maiaputs a2xlunder popovers;lumaandrheaanxlunder dialogs.Borders.
seraunderlines its text fields rather than boxing them (underlinedFields), matching itsborder-transparent border-b-input.Metrics shadcn expresses in spacing units (
h-9,px-2.5) are stored in the pixels they render at the default 4px step and rescale withShadThemeData.spacing; its bracketed literals (h-[18.4px],rounded-[4px],p-[3px]) do not, matching Tailwind. -
FEAT:
ShadSpacing— the spacing scale, shadcn's--spacing.ShadThemeData(spacing:)sets the step (4 by default);theme.spacing(6)is 24. Every padding in both shipped theme variants is now expressed in steps, so changing the step rescales the whole UI. Values are unchanged at the default step. -
FEAT:
ShadTextRole— the typographic treatment of one role in a style: size, weight, tracking (in logical pixels, not ems), line height and case.ShadTextRole.apply(base)layers it onto a text style while keeping that style's colour and family, so it composes with a customShadTextThemeor a Google font.uppercasecannot be expressed in aTextStyle, so components that take a caller's widget leave the text alone; userole.applyCase(text)where you build the string. -
FEAT: new theme fields for text that components previously hardcoded —
ShadCardTheme.titleStyle/descriptionStyle/gap,ShadBadgeTheme.textStyle,ShadPopoverTheme.textStyle, plus the matching widget parameters.ShadCardusedtextTheme.h3for its title andShadBadgea hardcoded 12px/w600, neither of which a style could reach. -
FEAT:
Shadows.xsandShadows.none, completing Tailwind's set. -
FEAT:
ShadGap,ShadPadding,ShadColumnandShadRow— layout widgets measured in steps on that scale, so app layout lines up with component padding exactly.ShadGapsizes itself along whichever axis its enclosing flex runs. -
FEAT:
ShadThemeVariant.rebuild(...), pluscolorScheme/radius/effectiveTextTheme/style/spacing/radiion the variant interface. A variant bakes its inputs into its component themes, soShadThemeData(variant: v, radius: r)now rebuildsvatrinstead of leaving the theme's radius and its components disagreeing. Where no explicit value is given, the variant's own wins — so the two can no longer be inconsistent.
API #
-
FIX:
ShadThemeData.textThemeis now produced by the theme variant, so a style's text roles reach it. It was taken straight from the merged input, which meant a style change resized the components but lefttheme.textTheme.small— and therefore any app text written against it — untouched. Prose entries (h1..h4,lead,blockquote,table) are the typography scale and are deliberately unaffected. -
FIX (visual): a textarea has its own radius token,
ShadStyleTokens.textareaRadius. It followed the button radius, somaia'srounded-4xlput a 32px curve on a tall box and clipped the text; shadcn gives itrounded-xl. -
FIX (visual):
ShadInputOTPslots follow the control radius and the style's field treatment — rounded only at the ends of the strip, sized like a control, and underlined rather than boxed insera. -
FIX (visual): components outline with the token shadcn uses: fields, checkboxes, radios and OTP slots with
--input, and cards, popovers, dialogs, menus and toasts with a wash of their own foreground (ring-foreground/10, or/5inluma,seraandrhea) rather than the full-strength--border.ShadStyleTokens.cardBorderOpacityandsurfaceBorderOpacitycarry the per-style values. -
FIX:
ShadOption's label follows its background, not just its selected state. Hovering an unselected row painted the highlight behind unchanged text, so a theme whose highlight is a strong fill left the label unreadable. -
FIX: popover content gets an
IconThemematchingpopoverForeground. Icons inherited the page's icon colour, which is wrong the moment the menu surface differs from the page — an inverted menu drew its icons in the surface colour. -
FIX:
ShadBorderSide.toBorderSide()keeps its colour at zero width instead of returningBorderSide.none.Borderasserts that every side shares a colour before it will paint a radius, so a component drawing only some of its sides — the OTP strip shares its vertical edges — crashed in paint. -
FIX (visual):
ShadTabssizes its tabs to their labels, matching shadcn'sw-fitlist. Every tab was stretched across the bar, which read as enormous padding inside it.ShadTabs.expandTabs/ShadTabsTheme.expandTabsrestores the old behaviour. -
FIX (visual):
ShadInputOTPdraws its focus ring inside the focused slot. Slots share their vertical edges and Flutter has no z-index, so an outward ring was painted over by the next slot in the row and the strip looked broken. -
FEAT:
ShadInputOTPslots scale with the ambient text scaler, so a larger accessibility text size no longer clips the digit. -
FEAT:
ShadContextMenuItem.selectedTextStyleand the matching theme field. A menu whose selection is a strong fill needs its label to change with it; the item's text style was fixed regardless of state. -
FIX:
ShadTextareareadsShadTextareaThemerather thanShadInputThemefor padding, alignment, gap and placeholder styling. Every textarea-specific value in its own theme was dead, so a multi-line field was padded like a single-line one — which is why its text sat hard against the top edge. -
FIX (visual): a single-line field centres its text vertically. It is laid out at a fixed height now, and its content column was top-aligned, so short text rode high in the box. A multi-line field still grows from the top.
-
FIX (visual): overlays match shadcn's
bg-black/10+backdrop-blur-xsinstead of an opaque 80% black.ShadDialogThemegainedbarrierColorandbarrierBlurSigma,showShadDialogandshowShadSheetresolve both from it, andShadDialogRoutefades the blur in with the route. The blur is what lets the tint stay light enough to keep the palette recognisable in either mode. -
FIX (visual): a checkbox and a radio share their unchecked look —
border-inputwith the same fill (transparent in light,input/30in dark). The checkbox filled itself withinputand outlined itself inprimary, so the two read as different families. -
FIX:
ShadSlider's ring stays up for the whole gesture, including when the pointer leaves the slider, and appears on press as well as hover and focus. -
FIX (visual):
ShadInputOTP's ring no longer collapses onto the slot's border.ShadBorder.mergetakes the other's offset unconditionally, so the per-slot radius merge was silently dropping it and the neighbouring slots painted over the ring. -
FEAT:
ShadCard.action— shadcn/ui'sCardAction, a widget pinned to the end of the header row.trailingsits beside the card's whole content column, so using it for a dismiss button narrowed the entire card, not just the header. -
FIX (visual): every focus ring is now concentric with the element it rings. The ring was built once from the control radius, so a textarea — which has a radius of its own — was ringed in the wrong shape. Both variants build rings through a
ringFor(radius)helper. -
FIX (visual):
ShadInputOTPslots ring like any other field: a hairline border in the ring colour plus the theme's translucent ring outside it, instead of an opaque 2px box with the ring suppressed. -
FIX (visual):
ShadSlider's thumb ring is the theme's — same colour, opacity and width as a focused field — and appears on hover as well as focus, matching shadcn'shover:ring-4 focus-visible:ring-4. It is painted outside the thumb, so it no longer resizes anything when it appears. -
FIX (visual): textarea vertical padding is two pixels above shadcn's
py-2. A browser textarea carries an intrinsic inset thatEditableTextdoes not, and matching the CSS exactly put the first line visibly close to the top edge. -
FIX (visual):
ShadKbdhas a height of its own (ShadKbdTheme.height, shadcn'sh-5) and no longer stretches to fill a row that sizes its children — inside a button, it grew to the button's full height. -
FIX (visual):
ShadSliderreserves room for its thumb. The thumb was positioned with a negative offset, so a slider laid out at track height — 6px — while painting a 16px thumb, and overlapped whatever sat above and below it. It now takesmax(track, thumb); the focus ring still overflows deliberately, so focusing never reflows the layout. -
FIX:
ShadPopoverno longer forcesTextAlign.centeron its content. Everything built on it — select options, menu items, popover forms — was centred; shadcn aligns all of it to the start. Wrap content in aCenteror settextAlignyourself for the old behaviour. -
FEAT:
ShadThemeScopeapplies aShadThemeDatato a subtree, including the Material theme it implies — the ambientDefaultTextStyleandIconTheme. PlainShadThemepublishes only the Shad half, so a deliberately dark panel inside a light app rendered dark text on a dark surface.ShadAppnow derives its Material theme through the sameshadMaterialThemeFromhelper, so the two cannot drift. -
FIX:
showShadDialogrepublishes the ambientShadThemeinside the route. A route is built under the Navigator, so a dialog opened from a re-themed panel used to fall back to the app theme. -
FIX: A mouse click no longer clears a button's hover state. The default
hoverStrategieslistonTapUpunderunhover; those exist to synthesise hover on touch devices, but they fired for mouse clicks too, so the highlight vanished mid-click while the cursor sat still.ShadGestureDetectornow ignores the strategies whenever a mouse is inside it — which is what its own class doc already promised. -
FEAT: Buttons shift down one pixel while pressed, matching shadcn/ui's
active:translate-y-px. Tunable viaShadButton.pressedOffset/pressAnimationDurationand the matchingShadButtonThemefields;Offset.zerodisables it. A button with noonPressed, or an explicitly disabled one, does not shift. -
FEAT:
ShadAccentScheme— shadcn/ui's seventeen accent themes (amber, blue, cyan, emerald, fuchsia, green, indigo, lime, orange, pink, purple, red, rose, sky, teal, violet, yellow) in light and dark, applied withShadColorScheme.applyAccentScheme(...). shadcn splits a theme into a neutral base colour and an accent that overrides only the hue-carrying tokens; its accent entries define exactlyprimary,secondary,chart-*andsidebar-primary, which is what this type carries. -
FEAT: Four new base colour schemes matching shadcn's remaining neutrals —
ShadMauveColorScheme,ShadOliveColorScheme,ShadMistColorScheme,ShadTaupeColorScheme. All values converted from the OKLCH literals in shadcn'sregistry/themes.ts. -
FEAT:
ShadColorSchemegained shadcn's--chart-1..--chart-5and--sidebar-*tokens (chart1…chart5,charts,sidebar,sidebarForeground,sidebarPrimary,sidebarPrimaryForeground,sidebarAccent,sidebarAccentForeground,sidebarBorder,sidebarRing). They are optional and fall back to the closest existing token, so every existing scheme — including hand-written ones — keeps working unchanged. -
FEAT:
ShadColorScheme.applyAccent(color)layers an arbitrary accent hue onto a neutral palette, re-tintingprimary,ringandselectionwhile leaving backgrounds, borders and muted tones alone. shadcn/ui's theme editor treats the neutral base colour and the accent as independent choices; aShadColorSchemebundles both, so this is what makes that split expressible.primaryForegroundis derived from the accent's relative luminance unless supplied. -
FEAT:
ShadButtonSize.icon, matching shadcn/ui's<Button size="icon">.ShadButtonSizesThemealready carried the metrics; the enum could not express them. -
FEAT:
ShadIconButton.size— icon buttons can now besm/lg, not just the fixed icon size. Non-icon sizes fall back to a square derived from the height. -
FEAT:
ShadIconButton.semanticLabel. An icon-only button has no text, so without it a screen reader announced nothing at all. -
FEAT:
ShadDialog.semanticLabel, plusscopesRoute/namesRoute/explicitChildNodessemantics matching Flutter's ownAlertDialog. (The focus trap was already provided byPopupRoute.) -
FEAT:
autofocusandonFocusChangeonShadCheckbox,ShadSwitch,ShadRadioandShadSelect;onFocusChangeonShadSlider. -
FEAT:
ShadBadge.enabled. -
FEAT:
ShadTooltipdismisses on Escape. -
FEAT:
ShadDisabledandShadDefaultThemeNoSecondaryBorderVariantare now exported. The latter was accepted byShadThemeData(variant:)but unreachable. -
CHORE: All 23 existing
@Deprecatedannotations now state a removal version.
0.56.2 #
Performance. No API changes, and every golden is unchanged.
- PERF:
ShadSelectno longer materializes its options on every layout pass. TheLayoutBuilderwraps the whole select — anchor included — so it re-runs whenever the closed select is laid out, andoptionsis a lazyIterablethat was beingtoList()ed each time. The options are now built inside thepopover:builder. - PERF:
ShadCalendarmemoizes itsDateFormats. Combined with the above,captionLayout: dropdownwas constructing 201DateFormats — one per selectable year, each a pattern parse plus locale lookup — on every layout pass of a closed calendar. - PERF:
ShadInput/ShadTextarearebuild only the placeholder when the text changes, instead of rebuildingEditableText, the decorator, the scrollbar and the leading/trailing row on every keystroke. BecauseTextEditingControlleralso notifies on selection changes, this previously fired on every cursor move too. - PERF:
ShadTablebuilds its cell matrix once per build instead of once per hover tick. The hoverValueListenableBuilderwrapped the entireTableViewand reallocated oneListper row every time the pointer crossed a row boundary. - PERF:
ShadPopoverrebuildsShadPortalonly when its visibility actually flips, rather than on every animation frame via anAnimatedBuilderreading!isDismissed. - PERF:
ShadPortalroutes all reposition requests through its existing dedup guard. Three call sites scheduled raw post-frame callbacks that bypassed it, so a portal rebuilding N times in a frame queued N repositions. - PERF:
ShadTooltipno longer allocates a newonHoverChangeclosure per build.ShadHoverStrategiescompares that closure in==, so the theme handed toShadTooltip.childwas never equal to the previous one and the entire child subtree rebuilt on every tooltip rebuild.ShadSonnermemoizes its toast subtree theme for the same reason — both calledShadThemeData.copyWith, which re-runs all 54 component-theme merges. - FIX:
ShadAnimationBuildernow honours a changedduration; it captured the initial value and had nodidUpdateWidget. - FIX:
ShadStatesController.updateemits a newSetrather than mutating the one held by theValueNotifier, so listeners can diff old against new. - CHORE:
ShadPopoverandShadTooltipno longer mutate theirAnimationControllerdurations frombuild().
0.56.1 #
Value-equality and lifecycle fixes. No API changes.
- FIX:
ShadThemeDatais a value type again.ShadBorderhad nooperator ==/hashCodeandShadBorderSide's compared themergemethod tear-off instead of thecanMergefield, so two identically-configuredShadThemeDatainstances were never equal. BecauseShadAppwraps its child in aShadAnimatedTheme, that made everyShadApprebuild start a fresh 200ms lerp across all 54 component themes and republish a new theme every frame, rebuilding everyShadTheme.ofdependent at frame rate. Apps that construct their theme inline —ShadApp(theme: ShadThemeData(...))— were affected on every rebuild. Theme changes are now applied instantly unless the theme actually changed; this is visible but intended. - FIX:
ShadBreakpointsandShadBreakpointgainedoperator ==/hashCode. TheShadThemeDatafactory allocates a freshShadBreakpoints()per construction, so this was a second, independent cause of the above. - FIX:
ShadThemeData.copyWithno longer discards a customvariant.variantwas constructor-only and never stored, socopyWithsilently reset it toShadDefaultThemeVariant— andShadDialog,ShadTooltipandShadSonnerall callcopyWithinbuild(), meaning opening a dialog reverted a custom variant for its entire subtree.ShadThemeData.variantis now a public field. - FIX:
ShadRoundedSuperellipseBorder.hashCodeonly hashedside, ignoringradiusandcanMergethat==compares.ShadBorder.copyWithandShadColorScheme.copyWith/lerpdroppedcanMerge, making the "replace, don't merge" opt-out unrecoverable. - FIX:
ShadColorScheme.hashCodewas a chain of^, which is commutative — swapping any two colors produced an identical hash. It also hashedMapEntryobjects (identity-hashed) forcustomwhile==usedmapEquals. Samecustomissue inShadTextTheme.hashCode. - FIX:
ShadTextThemeincludedcanMergeinhashCodebut not in==, violating the hashCode/==contract;lerpdroppedcanMergeand threw when both arguments were null. - FIX:
ShadSonnerleaked anAnimationControllerand aTimerfor every toast queued beyondvisibleToastsAmount—dispose()drained_toastsbut never_temporarelyHiddenToasts. It also calledsetStateanddisposeafterawaiting an animation with nomountedguard, which could double-dispose a controller. - FIX:
ShadTooltipcould callAnimationController.reverse()on a disposed controller when the widget was disposed duringwaitDuration/showDuration. - FIX:
ShadMenubarItemremoved its listener from the new controller instead of the old one whenShadMenubar.controllerwas swapped, leaving the listener attached to the old controller permanently. - BREAKING (minor):
ShadBreadcrumbTheme.ellipsisno longer defaults to anIcon. The field was never read —ShadBreadcrumbEllipsisbuilds the same icon itself fromellipsisSizeandcolorScheme.mutedForeground— and a non-constWidgetdefault gaveShadBreadcrumbThemeidentity equality, which propagated up and defeated all of the above. There is no visual change.
0.56.0 #
- BREAKING:
slang4.18 renames the generated localization classes:ShadLocalizationsDataTimePickerEn,ShadLocalizationsDataDatePickerEn,ShadLocalizationsDataInputEnandShadLocalizationsDataKeyboardToolbarEnare nowShadLocalizationsData$timePicker$en,ShadLocalizationsData$datePicker$en,ShadLocalizationsData$input$enandShadLocalizationsData$keyboardToolbar$en. - CHORE: Opt into
slang_build_runner'slegacybuilder.dart run build_runner buildfailed on a fresh checkout withInvalidOutputException: Asset already exists, because slang's default builder writes through build_runner's asset writer and cannot overwrite the committedstrings*.g.dart. Theslangheader timestamp is also disabled, so regenerating produces identical output instead of a spurious diff on every run.
0.55.1 #
- FIX: Regression on
ShadSheet's opaque parameter; default is back tofalse.
0.55.0 #
- FEAT: Add expandable/resizable
ShadSheet(#655): newexpandable,initialSize,minSize,maxSize,snap,snapSizes,snapAnimationDuration,snapAnimationCurve,snapFlingVelocity,dragHandle,dragHandleBuilder,showDragHandle,dragHandleExtent,onSizeChangedandcontrollerparameters, a publicShadSheetController(animateTo/jumpTo),ShadSheetResizeHandle, and matchingShadSheetThemefields. - FEAT:
showShadDialogacceptsopaque;showShadSheetnow follows keyboard insets so sheets move with the keyboard.
0.54.0 #
- FEAT:
ShadTextTheme.fromGoogleFontnow accepts acustomparameter to include custom text styles in the Google Font text theme. - CHORE: Migrate Geist and GeistMono fonts from individual weight-specific
.otffiles to variable font.ttffiles, reducing the number of bundled font assets from 18 to 2. - BREAKING: Minimum Flutter version raised to
3.41.0(Dart3.11.0) for variable font weight support.
0.53.6 #
- FIX: Add
!hasSizecheck toMouseAreaSurfaceRenderBox.hitTestto prevent assertion failure during early pointer events on desktop.
0.53.5 #
- FIX:
ShadDatePickernow correctly falls back todatePickerTheme.buttonDecorationwhen no explicitbuttonDecorationis provided.
0.53.4 #
- FEAT: Add per-tab
maintainStatesupport toShadTab. IndividualShadTabwidgets can now override the globalShadTabs.maintainStatesetting.
0.53.3 #
- FIX: Keyboard navigation in
ShadSlidernow works correctly with the Shift and arrow keys. (thanks to @Isakdl)
0.53.2 #
- FIX:
ShadInputcontext menu now stays open after tapping Select All, allowing the user to then tap Copy or Cut. - FIX: Hide Select All from the context menu when all text is already selected.
0.53.1 #
- FIX:
ShadThemeData.mergenow properly merges theShadColorSchemeinstead of replacing it. Thecustomcolor maps are combined, with the overriding theme's values taking precedence for duplicate keys.
0.53.0 #
- FEAT: Use native browser context menu on web and support
onPasteFiles.
0.52.3 #
- FIX: Add missing
groupIdtoShadSelectMultipleFormFieldconstructors.
0.52.2 #
- FIX: Add
uncheckedColortoShadCheckboxto allow customizing the color of the checkbox when unchecked. (thanks to @Isakdl)
0.52.1 #
- FIX: i18n localization for
ShadInput.defaultContextMenuBuilder.
0.52.0 #
- FEAT: Add built-in i18n support with 70+ locales using slang. The
GlobalShadLocalizationsdelegate is automatically included byShadApp. Access translations viaShadLocalizations.of(context).
0.51.0 #
- REFACTOR:
ShadInput.defaultContextMenuBuildernow usesShadContextMenuwithShadContextMenuItemfor consistent styling with the rest of the component library. - FEAT: Add
onTapDowntoShadContextMenuItemfor cases where the action must fire immediately on pointer down (e.g. text selection context menus). - FIX:
ShadInputnow dismisses the context menu when the user types. - DEPRECATED:
ShadTextSelectionToolbarandShadToolbarButton— useShadContextMenuwithShadContextMenuIteminstead.
0.50.3 #
- FIX: Cascade resize behavior in ShadResizable now properly propagates remaining drag delta when a panel collapses to minSize.
0.50.2 #
- FIX: Add missing "Select All" button to
ShadInputdefault context menu.
0.50.1 #
- FIX:
ShadDatePicker.didUpdateWidgetignoredselectedandselectedRangenull values. - REFACTOR: Make all form fields state public, to easily create a
GlobalKeyin the rare case you need it.
0.50.0 #
- FEAT: Add
fallbacktoShadAnchorAutoto have another optimal position as fallback. - FIX:
ShadMenubarnow usesShadAnchorinstead ofShadAnchorAutoto always show the popover below the item.
0.49.0 #
- FEAT:
ShadContextMenuRegionnow automatically supports tap to open the context menu on Android and iOS. AddedtapEnabledparameter to override the default behavior on any platform.
0.48.0 #
- FEAT: Add
defaultContextMenuBuilderimplementation forShadInputto show Cut/Copy and Paste buttons. This introduces the following new widgets:ShadTextSelectionToolbarandShadToolbarButton.
0.47.0 #
- FEAT:
ShadAnchorandShadAnchorAutonow acceptAlignmentGeometryinstead ofAlignment.
0.46.4 #
- FIX:
ShadForm.onChangednow fires with the updated value already present informKey.currentState!.value.
0.46.3 #
- FIX:
ShadSelectMultipleFormFieldonChangednot firing after first selection due to in-place Set mutation.
0.46.2 #
- FIX:
ShadAnchorAutowith followerAnchor: bottomCenter breaks tooltip visibility #575
0.46.1 #
- FIX: Add
forceErrorTexttoShadSelectMultipleFormField,ShadSelectFormFieldandShadTimePickerFormFieldin constructors where it was missing.
0.46.0 #
- FIX: Do not remove form field value when the form field is disabled.
- FIX: Revert last change about
readOnlyparameter.
0.45.2 #
- FIX: Add missing
readOnlyparameter to form fields.
0.45.1 #
- FEAT: Add
rawValuemethod toShadFormto get the raw form value without considering transformations. - FIX: Form Fields now correctly retrieve the latest value from
ShadFormas initial value. - FIX:
ShadFormnow correctly resets toinitialValues when callingreset(). - REFACTOR: Rename ShadForm
getInitialValuemethod intogetFieldValue.
0.45.0 #
- FEAT: Add dot notation support for nested form values in
ShadForm. Field IDs likeuser.emailare automatically converted to nested maps like{'user': {'email': value}}. TheinitialValueshould be provided as a nested map structure, and the form will automatically extract values based on field IDs. - FEAT: Add
fieldIdSeparatorparameter toShadFormto customize the separator used for nested form values (defaults to.). You can use any string as a separator (e.g./,:), or set it tonullto disable dot notation support entirely. - FEAT: Add
toNestedMap,getByPathanddeepMergeextension methods onMap<String, dynamic>. - FEAT: Add
deepCopyextension method toMap,ListandSetto create deep copies of collections.
0.44.1 #
- FIX:
ShadForminitial values were not considered when getting the form value for form fields that were not registered with the sameid. Now, even custom values are returned, even if there is no form field associated with thatid.
0.44.0 #
- REFACTOR: Deprecated
valueTransformerin favor oftoValueTransformer. - FEAT: Add
fromValueTransformerto form fields to easily transform the form initial value to the field value. - DOCS: Add documentation about
fromValueTransformerandtoValueTransformerin form.
0.43.4 #
- FIX:
ShadFormscroll to form fields without an associatedid.
0.43.3 #
- FIX: Add
onPressedtoShadSelectMultipleFormField.
0.43.2 #
- FIX: Correctly disable back and forth buttons in
ShadCalendarwhen reaching min/max date.
0.43.1 #
- FIX: Improve
ShadPortalscroll and resize handling.
0.43.0 #
- BREAKING CHANGE: Rename
iconintoleadinginShadDatePickerandShadDatePickerFormFieldand addtrailing.
0.42.1 #
- CHORE: Add
selectedIconColortoShadOptionThemeto allow customizing the color of the selected icon.
0.42.0 #
- BREAKING CHANGE: The old
setValuehas been renamed intosetFieldValueto better reflect its purpose, and now accepts anotifyFieldboolean parameter (defaults totrue) to control whether to notify the form field of the value change. - BREAKING CHANGE:
ShadFormBuilderFieldState.setInternalErrorhas been renamed intosetErrorfor consistency. - BREAKING CHANGE:
ShadFormState.removeInternalFieldValuehas been renamed intoremoveFieldValuefor consistency. - BREAKING CHANGE: Now
setValuetakes aMap<String, dynamic>as value and updates the entire form value. It also accepts anotifyFieldsboolean parameter (defaults totrue) to control whether to notify the changed form fields of the value changes.
0.41.0 #
- FEAT: Add
setValuetoShadFormto manipulate the value of a form field programmatically. - BREAKING CHANGE: The map stored by
ShadFormnow usesStringas a key instead ofObject. Every form fieldidmust be aStringnow. This change was made for convenience with JSON serialization.
0.40.6 #
- FIX: Add
maxLengthparameter toShadTextarea(thanks to @mickey35vn).
0.40.5 #
- FIX:
ShadSonnerheight normalization for stacked toasts with different heights.
0.40.4 #
- FIX:
ShadPopoverdismissal animation when multiple popovers were opened quickly one after another. This affected components likeShadContextMenuandShadMenubar. - FIX:
ShadMenubaronPressed behavior, so mobile taps now open/close the menubar items correctly.
0.40.3 #
- FIX:
ShadButtonconstraints regression when using aLayoutBuilderas child.
0.40.2 #
- FIX:
ShadSelectFormFieldonChangedcallback being fired twice when changing the value.
0.40.1 #
- FIX:
ShadInputconstraints are applied at the top of the widget and not to the inner editable text. - CHORE: Run the Dart formatter.
0.40.0 #
- FEAT: Add new component
ShadBreadcrumband all of its related components (thanks to @MoazSalem). - FIX: Update
ShadButtonto allow for more flexibility with height and width properties (thanks to @MoazSalem). - FIX: Get
closeIconfrom theme inShadTheme(thanks to @DMouayad). - FIX: Merge of
ShadDecorationin the component themes.
0.39.14 #
- CHORE: Downgrade Dart SDK constraint to
3.6.0to temporarely fix the pub dev score issue about the Dart formatter (see #9091)
0.39.13 #
- FIX: Provide more fallback colors to
ShadCalendar.
0.39.12 #
- FIX:
weekNumbersHeaderTextStyleinShadCalendarnot having a default color.
0.39.11 #
- FIX:
ShadAvatarwith null source.
0.39.10 #
- FIX: Update
theme_extensions_builderand fix merge issues in themes.
0.39.9 #
- FIX: Regression in
ShadSelectwhere the dropdown no longer expanded to the intrinsic width of its options. - FIX: Select popover not respecting anchoring point when scrolling.
- CHORE: Bump min Dart SDK version to
3.10.0.
0.39.8 #
- FIX: Autofocus search input in select dropdown (thanks @Isakdl).
0.39.7 #
- FIX:
ShadOptionselectedIcon position doesn't match original shadcn/ui (thanks to @DMouayad).
0.39.6 #
- FIX: Assertion error when using
ShadSelect.withSearch.
0.39.5 #
- FEAT: Add
onPressedtoShadSelectand its form fields to provide a custom callback when the select input is pressed, instead of toggling the popover.
0.39.4 #
- FIX:
ShadDatePickerselected range not updated insidedidUpdateWidget.
0.39.3 #
- FIX: Remove extra gap when
actionsis empty inShadDialog. - FEAT: Add
titlePinned,descriptionPinnedandactionsPinnedtoShadDialogandShadSheetto control whether to pin the title, description and actions when scrolling the content.
0.39.2 #
- FEAT: Add
buttonTextStyletoShadDateRangePickerFormField.
0.39.1 #
- FEAT: Add
buttonTextStyletoShadDatePicker,ShadDatePickerThemeandShadDatePickerFormFieldto customize the text style of the button that triggers the date picker popover.
0.39.0 #
- FEAT: Add
top,bottom,verticalGapandonLineCountChangetoShadInput,ShadInputFormField,ShadTextAreaandShadTextAreaFormFieldto add widgets above or below the input field, and to get notified when the number of lines in the input changes. - CHORE: Export
boxypackage. - FIX:
ShadTextareadouble scrollbar. - FEAT: Add
editableTextSizetoShadInputandShadInputFormFieldto set a fixed size for the editable text area. - FIX: Disable text selection inside buttons (thanks to @Isakdl).
- FIX: ShadDialog always expands to constraints.maxWidth (thanks to @DMouayad).
0.38.5 #
- FIX:
ShadTabsconsuming extra space whenexpandContentis true for unselected tabs.
0.38.4 #
- REFACTOR: Remove required parameters from
ShadThemeData, use default values instead. - FEAT: Add
setInternalFieldErrortoShadFormto set a forced error text for a form field.
0.38.3 #
- FEAT: Add
maintainStatetoShadTabsto control whether to maintain the state of the tabs when switching between them. Defaults totrue. - FEAT: Add
canRequestFocustoShadButton. - FIX: Unselected
ShadTabwhich was focusable.
0.38.2 #
- FEAT: Add
searchFocusNodetoShadSelectandShadSelectFormFieldto provide a custom focus node for the search input. - FEAT: Add
onSearchSubmittedtoShadSelectandShadSelectFormFieldto handle the submission of the search input (e.g., when the user presses the Enter key). - FIX:
ShadInputcrash when removing the externalfocusNode.
0.38.1 #
- FIX: Fix ShadTable doesn't support RTL (thanks to @DMouayad).
- FIX: ShadToast & ShadSonner doesn't react to text direction change (thanks to @DMouayad).
- FIX: ShadSheet crash when tap outside the sheet (thanks to @pro100andrey).
- FIX: Feat: direction-aware dialog and toast close buttons (thanks to @DMouayad).
- FIX: ShadDialog - scrolling doesn’t work when constraints are set (thanks to @pro100andrey).
0.38.0 #
- BREAKING CHANGE:
ShadTabs.expandContenthas been removed and added toShadTab.expandContentto allow expanding only specific tabs.
0.37.4 #
- FIX: Export
Effectfromflutter_animateasAnimateEffectto avoid name conflicts. - FIX: Export
TextDirectionfromintlasIntlTextDirectionto avoid name conflicts.
0.37.3 #
- FIX:
ShadSelectnot updating the controller when the form field value changes. - FIX: Remove
initialValuesfromShadSelectMultipleFormField, usecontrollerinstead. - FIX:
ShadSelect.withSearchkeyboard shortcuts closing the popover when the search input is focused.
0.37.2 #
- FEAT: Add
backgroundColor,selectedBackgroundColor,textStyleandselectedTextStyletoShadOptionThemeandShadOption, to customize the background color and text style ofShadOption(thanks to @9dan).
0.37.1 #
- FIX: Test fails due to pending Timer when using
AnimateandDuration.zero, which has been replaced withShadAnimate. - FEAT: Add
ShadThemeData.mergeandShadTheme.mergemethods 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.
0.37.0 #
- FEAT: Add
tabsGapandtabBarAlignmenttoShadTabsin order to customize the gaps between tabs and the alignment of the tab bar (thanks to @9dan). - FIX: Fix the resulting TextStyle applied to ShadTab (thanks to @9dan).
- FIX: Fix the resulting decoration applied to ShadTab (thanks to @9dan).
- REFACTOR: Before all text styles from
ShadTextThemehad a color applied andinheritedset tofalse, this prevented customizing the text styles easily. Now all text styles haveinheritset totrueand no color applied, so they can be customized more easily (thanks to @9dan) - FEAT: Expose
TextStyle.fallbackmethod 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). - FIX:
ShadOption.selectedIconwas always visible, even if the option was not selected (thanks to @DMouayad). - FEAT: Allow custom exit transition duration in
showShadDialog(thanks to @DMouayad). - FEAT: Add
showHours,showMinutesandshowSecondstoShadTimePickerandShadTimePickerFormFieldto customize which fields are shown.
0.36.1 #
- FIX: Expose
ShadButtonSizesTheme. - FEAT: Add
textStyletoShadButtonandShadButtonThemeto customize the text style of the button.
0.36.0 #
- BREAKING CHANGE: Remove
iconDatafromShadAlert, useiconinstead. - FEAT: Add
iconSizetoShadAlertandShadAlertTheme, fallbacks to16from inheritedIconTheme.
0.35.1 #
- FIX: The
lerpmethod of themes was overriding null double values with 0. - FIX: Replaced
BorderwithShadBorderbecauseBorder.mergefrom Flutter is a mess (sums widths of a and b).
0.35.0 #
- BREAKING CHANGE: The
mergeWithmethod has been renamed intomergeand themergeboolean has been renamed intocanMerge(ShadThemes). - CHORE: The theme generation has been automated by using the theme_extensions_builder package (thanks to @pro100andrey).
0.34.0 #
- FEAT: Add
leading,trailing,topandbottomparameters toShadAlertto add widgets before, after, above or below the main content of the alert.
0.33.1 #
- FIX:
ShadSelectalways scrolling to the selected option when opening the popover which can now be disabled withensureSelectedVisible: false. - CHORE: Remove
requiredfromonSearchChangedinShadSelectandShadSelectFormFieldto make it optional, as it is not required when a customsearchwidget is provided.
0.33.0 #
0.32.2 #
- FIX:
ShadTooltipnot showing on hover.
0.32.1 #
- FIX:
ShadToastconstraints were not being used. - FIX:
ShadToasttext direction was not taken from theme. - FEAT: Add
mainAxisSizeandmainAxisAlignmenttoShadToastandShadToastTheme, defaults toMainAxisSize.maxandMainAxisAlignment.spaceBetween.
0.32.0 #
- REFACTOR: Now all components are material-free. The only exception is
ShadAppwhich provides platform adaptive routing and scroll behavior.
0.31.9 #
- FIX:
ShadSelectnot reacting to the controller and rebuildingselectedOptionBuilder. - FIX:
ShadSelectFormFieldandShadSelectMultipleFormFieldnot resetting the value on form reset.
0.31.8 #
- FEAT: Add support for keyboard navigation in
ShadCalendar(thanks to @pedromassango).
0.31.7 #
- FEAT: Add
controllertoShadRadioGroupto manually control the selected value.
0.31.6 #
- FIX:
ShadSwitchon RTL direction.
0.31.5 #
- FEAT: Add
useSafeAreatoShadDialogandShadSheetto wrap the content with aSafeArea. Defaults totrue.
0.31.4 #
- FIX:
closeOnTapOutsideofShadDatePickerwhich wasn't passed toShadPopover.
0.31.3 #
- FIX: Convert all
EdgeInsetstoEdgeInsetsGeometryto better support RTL and fix many components.
0.31.2 #
- FEAT: Add
ShadAccordionControllerto manually control the open/close state of theShadAccordionItems. - FEAT: Toggle
ShadAccordionItemby pressingSpace(before it worked only withEnter) when the header is focused.
0.31.1 #
- FEAT: Add
sidetoShadSheetThemeto set the default side of the sheet from the theme.
0.31.0 #
- FEAT: Modify the
ShadTooltipcomponent and its hover strategies to work on mobile on tap without a long press. - FEAT: Add
ShadHoverStrategy.onTapOutsideto trigger unhover when tapping outside the widget. - FEAT: Add
ShadHoverStrategy.onTapto trigger hover/unhover when tapping inside the widget. - FEAT: Now if an hover strategy is present in both
hoverStrategies.hoverandhoverStrategies.unhover, the hover will be toggled.
0.30.5 #
- FIX: change
ShadSeparator.margintype toEdgeInsetsGeometry
0.30.4 #
- FIX:
ShadTextareaFormFieldinitial value assert due to controller being used internally.
0.30.3 #
- FIX:
onChangedofShadInputFormFieldandShadTextareaFormFieldfired twice for any change.
0.30.2 #
- FIX: Expose
ShadDefaultKeyboardToolbarTheme.
0.30.1+1 #
- CHORE: Remove useless import.
0.30.1 #
- FIX: Fix
ShadResizableon RTL (for real this time). - CHORE: Bump min Flutter SDK version to
3.35.0to supportFormField.onResetandBrightnessfrom'package:flutter/widgets.dart'
0.30.0 #
- FEAT: Add
ShadKeyboardToolbarandShadDefaultKeyboardToolbarcomponents to show a toolbar above the keyboard. AddkeyboardToolbarBuildertoShadInput,ShadInputFormField,ShadTextArea,ShadTextAreaFormField,ShadInputOTP,ShadInputOTPFormFieldto easily add a keyboard toolbar to these components.
0.29.4 #
- FIX: Fix
ShadTextTheme.copyWithwas always overwriting custom font with defaultGeistfont. [#425]
0.29.3 #
- FIX: Ensure
ShadForm.onChangedis called for both standardFormfields andShadFormFieldwidgets. - FIX: Add missing
forceErrorTextparameter toShadFormFieldwidgets.
0.29.2 #
- FIX: Fix
ShadResizableon RTL. Remove uselesstextDirectionparameter fromShadResizableandShadResizableTheme.
0.29.1 #
- FIX: Add missing
alignmentparameter toShadInput,ShadInputFormField,ShadTextAreaandShadTextAreaFormField.
0.29.0 #
- FIX: Add missing popover closing animation (thanks to @DMouayad).
0.28.8 #
- CHORE: Resolve lint issues.
0.28.7 #
- FIX: Updated
ShadPopoverfilter logic to use effectiveFilter instead of widget.filter.
0.28.6 #
- REFACTOR: Add
cursor*customizations through theme (thanks to @GuillaumeMCK).
0.28.5 #
- FIX:
ShadCalendarback and forward buttons on RTL (thanks to @HarithHaroon).
0.28.4 #
- FEAT: Add
cursorColortoShadInput(thanks to @GuillaumeMCK). - FIX: Use
AlignmentGeometryinstead ofAlignmentinsideShadInput,ShadTextareaand their form fields (thanks to @omaralmgerbie)
0.28.3 #
- FIX: pass
backgroundColortoShadAppBuilder(thanks to @GuillaumeMCK)
0.28.2 #
- FIX:
ShadDialogandShadSheetnow useSafeAreato prevent the content from being cut off by the system UI.
0.28.1 #
- FIX: Add
clearValueOnUnregistertoShadForm(defaults tofalse) to prevent clearing a form field's value from the form state when the field is unregistered (aka disposed). - FIX:
ShadPopovernot closing when pressing ESC (thanks to @DMouayad)
0.28.0 #
- REFACTOR: Update
ShadCalendaryearSelectorMinWidthfrom100to64andmonthSelectorMinWidthfrom120to64. - REFACTOR: Update
ShadCalendarposition of dropdown, which is now centered in the header. - REFACTOR: Add
dropdownFormatMonthanddropdownFormatYeartoShadCalendar. - FIX: Center the placeholder in
ShadAvatar. - DOCS: Fix missing
MainAxisSize.mininShadCardnotification example. - DOCS: Adjust sheet docs example, with some spacing between buttons.
- FIX: Fix the hit test behavior of
ShadContextMenuRegion. - FEAT: Expose
hitTestBehaviorfromShadContextMenuRegion, defaults toHitTestBehavior.opaque(thanks to @NonymousMorlock). - REFACTOR: Set default text align of
ShadTooltiptonullinstead ofTextAlign.center.
0.27.4 #
- FIX:
ShadIconButtonicon size property isn't applied (thanks to @TahaTesser).
0.27.3 #
- FIX:
ShadCalendarinitialMonthupdate when the user did not interact with the month selector yet. - DOCS: Fix typo in button code snippet (thanks to @piedcipher).
0.27.2 #
- FIX:
ShadAccordiontitle overflow when the title is too long (thanks to @monteiz). - FIX:
ShadContextMenuItemhover background color. - CHORE: Bump the minimum Flutter version to
3.32.0to support theRoundedSuperellipseBorder.
0.27.1 #
- FEAT: Add
ShadRoundedSuperellipseBorderto support the rounded superellipse border style as the primary border of any widget that usesShadDecoration.
0.27.0 #
- BREAKING CHANGE: The secondary border of
ShadDecorationnow is drawn outward of the widget, without consuming any extra space. This change affects all components that are focusable. - FEAT: Add
offsettoShadBorderto set the offset between the widget and the outward secondary border. - REFACTOR: Remove all deprecated parameters across the whole package, including
orderPolicy,ShadApp.material,ShadApp.cupertinoand so on. - REFACTOR: Update the default
anchorofShadSelect,ShadTooltipandShadPopoverfromShadAnchorAuto()toShadAnchorAuto(offset: Offset(0, 4)). - REFACTOR: Add
checkboxPaddingtoShadCheckbox,ShadCheckboxThemeandShadCheckboxFormField, defaults toEdgeInsets.only(top: 1). - REFACTOR: Add
radioPaddingtoShadRadioandShadRadioTheme, defaults toEdgeInsets.only(top: 1). - FIX: Background color of pages for pure
ShadAppif noScaffoldis used, by adding a newbackgroundColorparameter toShadAppandShadAppBuilder. - FEAT: Add
actionsGaptoShadDialog, defaults to8. - REFACTOR: Update
ShadTimePickerThemeparameters:spacingchanged from0to8,runSpacingchanged from0to4,gapchanged from2to4,fieldWidthchanged from58to48,periodHeightchanged from50to42. - FIX: Lookup of correct
ShadTextareaThemewhen retrieving thescrollbarPadding. - REFACTOR: Update
ShadCalendarTheme.dayButtonDecoration.secondaryFocusedBorderto use a new offset and 50% opacity for improved visibility. - REFACTOR: The
ShadInputOTPTheme.paddingchanged fromEdgeInsets.symmetric(vertical: 4)tonull. - REFACTOR: Change
ShadInputOTPTheme.paddingfromEdgeInsets.symmetric(vertical: 4)tonull. - REFACTOR: Automatically select the focused
ShadTabto prevent secondary border collisions, matching original shadcn keyboard navigation behavior. - REFACTOR: Change
ShadCalendarTheme.monthSelectorMinWidthfrom130to120. - REFACTOR: The
ShadCalendar.yearSelectorandShadCalendar.monthSelectornow use a secondary focused border with 50% opacity to match other parts. - REFACTOR: Update
ShadSelectwith presets example by adding padding. - REFACTOR: Remove secondary border removal from
ShadInputexample with trailing icon. - REFACTOR: Update
ShadMenubar.anchor.offsetfromOffset(-8, 8)toOffset(-4, 8). - REFACTOR: Update
ShadPopoverexample by adding a gap between input fields. - FIX:
ShadSelectControllernow has aSetinstead of aListto prevent duplicates in the selected options, this change has been applied toShadSelect.initialValuesandShadSelectFormFieldas well.
0.26.5 #
- CHORE: Update lower bound dependency versions.
0.26.4 #
- CHORE: Relax dependencies, previous versions were too strict and have been retracted.
0.26.3 #
- CHORE: Bump the min flutter version to
3.32.0.
0.26.2 #
- FIX: Add
supportedDevicestoShadContextMenuRegionto decide which devices trigger the context menu (thanks to @MousyBusiness).
0.26.1 #
- CHORE: Update
intldependency to^0.20.2(thanks to @jg-l) - CHORE: Update all other dependencies to the latest versions.
0.26.0 #
- BREAKING CHANGE: Update the
appBuilderof theShadAppby removing theThemeDataparameter. - REFACTOR: Deprecate
ShadApp.material,ShadApp.materialRouter,ShadApp.cupertinoandShadApp.cupertinoRouter. UseShadApp.custominstead.
0.25.1 #
- FIX: The scrollbar of the
ShadTextareacomponent has been fixed, addedscrollbarPaddingtoShadTextareaThemeandShadInputTheme. - FIX: Focus of
ShadTextareaon resize.
0.25.0 #
- CHORE: Bump dependency versions (thanks to @mayapaw).
- FEAT: Add
ShadTextareaandShadTextareaFormFieldcomponents (thanks to @dalroy44). - FIX:
ShadSelectFormFieldinitial value fromShadFormnot working.
0.24.0 #
- FEAT: Add
Sonnercomponent.
0.23.4 #
- FIX:
ShadSelectFormFieldandShadSelectMultipleFormFieldcontroller not updating the parentShadForm.
0.23.3 #
- FIX:
ShadInputonPressedOutsidewhen tapping on anotherShadInput. - FEAT: Add
groupIdtoShadInputandShadInputFormField, defaults toUniqueKeyinstead ofEditableText.
0.23.2 #
- FEAT: Add
copyWithmethod toShadColorScheme(thanks to @Luckey-Elijah).
0.23.1 #
- FIX:
ShadResizabledivider alignments whendividerSizeis overriden.
0.23.0 #
- FIX: Expose
ShadMouseCursorProvider. - FIX:
ShadMenubaranchor. - FIX:
ShadBadgeshould not enter the gesture arena if theonPressedcallback is not provided. - FEAT: Add
cursortoShadBadge, defaults toSystemMouseCursors.clickifonPressedis provided. - BREAKING CHANGE: Refactor
ShadAnchorAutoto make it more powerful, removedverticalOffsetandpreferBelowin favor ofoffset,followerAnchorandtargetAnchor. Now every component uses it by default.
0.22.5 #
- FIX:
ShadGestureDetectorglobal coordinates when using multipleNavigators.
0.22.4 #
- FIX: Pass
themeModetoMaterialApp(thanks to @mubareksd). - FIX: Add
focusNodetoShadInputFormField.
0.22.3 #
- FIX:
ShadTooltipexit animation, adddurationandreverseDurationto it. - FIX:
ShadMenubarno longer steals the focus. - FIX:
ShadButtonstealing focus when pressed. - FEAT: Add
stylusHandwritingEnabledtoShadInput.
0.22.2 #
- FIX: Add
constraintstoShadInputandShadInputFormField, by default the min height is calculated based on thestyleandplaceholderStyle. - FIX:
ShadInputstyle and placeholder style which are now merged instead of replaced. - FIX
ShadMenubarwrong padding used for the context menu. - CHORE: Set min flutter version to
3.29.0(thanks to @qk7b)
0.22.1 #
- FIX:
ShadInputicon color.
0.22.0 #
- FEAT: Add
ShadMenubarcomponent. - REFACTOR: Deprecate
ShadDividerandShadDividerTheme, useShadSeparatorandShadSeparatorThemeinstead. - FEAT: Add
onTapInside,onTapOutside,onTapUpInsideandonTapUpOutsidetoShadContextMenu.
0.21.0 #
- FEAT: Add
ShadDividercomponent (thanks to @Luckey-Elijah) - FIX: Pass
buttonDecorationtoShadButtoninsideShadDatePicker(thanks to @plusema86) - CHORE: Add comments to all components + test many of them
0.20.3 #
- FIX: Validation mode on form field reset (thanks to @Mayb3Nots)
0.20.2 #
- REFACTOR: Deprecate
ShadTab.icon, useShadTab.leadinginstead. Addtrailing. - FIX: Disable scroll inside
ShadCalendar
0.20.1 #
- REFACTOR: Set
debugShowCheckedModeBannertofalseby default inShadApp. - FIX Expose
ShadInputOTPTheme.
0.20.0 #
- FEAT: Add
ShadIconButtoncomponent. - REFACTOR: Deprecated
ShadButton.icon, useShadIconButtonfor a button with just an icon andShadButton.leadingfor a button with an icon and a text. - REFACTOR: Deprecate
orderPolicy, useleadingandtrailingin the component. - REFACTOR: Deprecate
prefixandsuffixinShadInput, useleadingandtrailinginstead. - REFACTOR Deprecate
searchInputPrefixinShadSelect, usesearchInputLeadinginstead.
0.19.3 #
- FIX: Make
selectedOptionBuilderrequired inShadSelect(thanks to @muradab). - FIX: Add
optionsBuildertoShadSelectand its form fields where it was missing.
0.19.2 #
- FIX: Add constraints to
ShadCardchild.
0.19.1 #
- REFACTOR: Rename
materialTextThemeintoapplyGoogleFontToTextTheme. - FEAT: Allow accessing the
ShadThemewith the context, in thematerialThemeBuilderandappBuilder.
0.19.0 #
- FIX:
ShadInputreadOnlynot updating. - BREAKING CHANGE: Rename
ShadSelectand form fieldscontrollertopopoverController. - FEAT: Add
controllertoShadSelectand form fields, to control the selected values. - FIX: Improve the
ShadResizablecontroller handling and simplify the logic to resize the panels. - FIX:
ShadResizablehandle position withAxis.vertical. - BREAKING CHANGE: Now
ShadResizablerequires anid, to be able to handle when a panel is removed/added from the widget tree correctly. - CHORE: Correctly set the
themeordarkThemeto the internalMaterialApp.
0.18.7 #
- FIX:
ShadAppdark theme behavior now is the same as Material. The dark theme is applied only if you provide adarkThemeand the user theme mode is dark
0.18.6 #
- FIX:
ShadTimePickercontroller not being used correctly when the component is initialized. Now each field allows a single digit instead of two.
0.18.5 #
- FIX:
ShadCalendarforward button icon color. - CHORE: Bump the version of
universal_image(thanks to @brunosemfio).
0.18.4 #
- FIX:
ShadDatePickerpopover closes on caption selection. - CHORE: Add
onNavigationNotificationtoShadApp(thanks to @mllrr96) - FIX:
ShadDatePickercrash when caption layout is different from label, due to misleadingLocaletype passed toDateFormat, thanksdynamicfor these amazing errors.
0.18.3 #
- FIX: Improve
ShadAvatar(thanks to @mickey35vn). - FIX: Locale not handled in
ShadCalendarandShadDatePicker. - REFACTOR: Remove
optionsOrderPolicyfromShadSelectThemeand move it toShadOptionThemewith the nameorderPolicy.
0.18.2 #
- FIX:
InputOTPcomponent with RTL directionality.
0.18.1 #
- FIX: Set
ShadCardclipBehavior toClip.antialias, addclipBehaviortoShadCardandShadCardTheme. - FIX: Use
selectedDecorationinShadTabs(thanks to @thisisamank) - FEAT: Add colorSelector to the ShadcnUI docs (thanks to @0xharkirat)
- FEAT: Add
hourLabel,minuteLabel,secondLabel,periodLabel,hourPlaceholder,minutePlaceholder,secondPlaceholderandperiodPlaceholdertoShadTimePickerTheme.
0.18.0 #
- BREAKING CHANGE: Remove
applyIconColorFilterfromShadButton. - BREAKING CHANGE: Remove
ShadImagecomponent. Prefer using theIconwidget forIconData, theImagewidget for normal images, andSvgPicture(from the flutter_svg package for SVG images. If you want a fallback, useUniversalImage. - BREAKING CHANGE: Rename
iconSrciniconDataaround components. - FIX:
TimePickerFormFieldinitial value.
0.17.6 #
- FIX: Fix the iconSize of
ShadButton, addiconSizetoShadButton.
0.17.5 #
- FEAT: New
OrderPolicy,LinearOrderPolicy,ReverseOrderPolicyandCustomOrderPolicyto 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. - FEAT: Add
orderPolicytoShadOption,ShadAlert,ShadButton,ShadCheckbox,ShadCheckboxFormField,ShadDatePicker,ShadDatePickerFormField,ShadDateRangePickerFormField,ShadRadio,ShadSwitch,ShadSwitchFormField,ShadToast. - FEAT: Add
expandstoShadButton, defaults to false. Use it if you want the button's child to expand to fill the available space.
0.17.4 #
- FIX
ShadTabsonChanged runtime exception due to misleading type
0.17.3 #
- FIX:
ShadTableprotectonExitfrom setting value after dispose (thanks to @jezell)
0.17.2 #
- FIX: Add
allowDeselectiontoShadCalendar.range - CHORE: Update dependencies
0.17.1 #
- FIX:
ShadInputOTPtext alignment and padding - FEAT: Add
textInputActiontoShadInputOTPSlot
0.17.0 #
- FEAT: Add
ShadInputOTPandShadInputOTPFormFieldcomponents. - BREAKING CHANGE: The
ShadBorderno 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. - FIX:
ShadTabsborder radius. - FIX:
ShadSliderfocused thumb. - FIX:
ShadResizableresize when Directionality is RTL. - FIX: Update the
destructivecolor on dark mode to be more visible. - FIX: Make inherited widget lookup untyped
0.16.3 #
- FIX:
showCursordefault value inShadInputFormField
0.16.2 #
- FIX:
ShadTabsandShadResizablelerp - FIX:
ShadTabsfocused border color in dark mode
0.16.1 #
- FEAT: Add parameters to
ShadFocusable.
0.16.0 #
- FEAT: New
ShadTimePickerandShadTimePickerFormFieldcomponents. - FIX:
maxLength,maxLengthEnforcementandshowCursornot working onShadInput - FIX:
ShadCalendarrange day button text style whendisableSecondaryBorderistrue. - CHORE: Set minimum Flutter version to
3.24.0 - CHORE: Remove
trackColorfromShadSwitch(thanks to @RaghavTheGreat) - FIX:
ShadSlideronChangedcalled on every controller update (thanks to @helightdev).
0.15.3 #
- FIX:
ShadDialogandShadSheetchildren constraints. - CHORE: Replace
flutter_svg_plusdependency withflutter_svgandvector_graphics_pluswithvector_graphics.
0.15.2 #
- FIX:
ShadDialogandShadSheetchildren constraints.
0.15.1 #
- FIX: Decoration merge
0.15.0 #
- FEAT: New
ShadDatePickercomponent. - FEAT: Add
allowDeselectionproperty toShadCalendar. - FIX:
ShadSelectcrash when usingoptionsBuilder. - FEAT: Add
itemCountandshrinkWraptoShadSelectandShadSelectFormField.
0.14.1 #
- FIX:
ShadAppscroll behavior.
0.14.0 #
- BREAKING CHANGE: Remove
onChangedNullablefromShadSelectandShadSelectFormField. Now theonChangedcallback will be called withnullwhen the user deselects an option ifallowDeselectionis set totrue. (thanks to @moshOntong-IT) - FEAT: Add click mouse cursor to
ShadTablewhenonRowTaporonColumnTapis provided.
0.13.5 #
- FIX: Fix
ShadSelectinitial values on widget creation.
0.13.4+1 #
- CHORE: Update svg dependencies
0.13.4 #
- CHORE: Update svg dependencies
0.13.3 #
- FEAT: Add
ShadApp.customfor custom WidgetsApp implementation.
0.13.2 #
- CHORE: Use forked
flutter_svgandvector_graphicspackages.
0.13.1 #
- CHORE: Update
ShadImageimport due to WASM.
0.13.0 #
- FEAT: New
ShadCalendarcomponent with thesingle,multipleandrangevariants.
0.12.0 #
- FEAT: Add
axis,spacing,runSpacing,alignment,runAlignment,crossAxisAlignmentandcrossAxisAlignmenttoShadRadioGroupandShadRadioGroupFormField.
0.11.1 #
- FEAT: Add
headerstoShadImageto allow custom headers in the network requests.
0.11.0 #
- FEAT: Add
ShadSelect.multiple,ShadSelect.multipleWithSearch,ShadSelectMultipleFormFieldandShadSelectMultipleFormField.withSearchconstructors. - FEAT: Add
onChangedNullabletoShadSelectandShadSelectFormField, to allow the deselection of an option. - Improve the
ShadSelectfocus behavior. - Improve size of
ShadSelectoptions to fit the available space.
0.10.0 #
- BREAKING CHANGE: Rename
childrenparameter ofShadContextMenuandShadContextMenuRegionintoitems.
0.9.8 #
- Improve the
ShadContextMenuright click behavior on Web.
0.9.7 #
- Remove kind event from
ShadMouseArea
0.9.6 #
- Fix: the browser context menu has been enabled again, and deactivated only for the
ShadContextMenucomponent.
0.9.5 #
- Add text selection toolbar to
ShadInput(thanks to @moshOntong-IT).
0.9.4 #
- Add gestures recognizers to
ShadTablefor rows and columns.
0.9.3 #
- Fix
ShadSelectFormFieldfocus whenreadOnlyis true.
0.9.2 #
- Add
gaptoShadInputandShadInputFormField(thanks to @moshOntong-IT).
0.9.1 #
- Fix native context menu by disabling it on Web.
- Add
controllertoShadContextMenu. - Add
onLongPresstoShadContextMenuRegion, defaults totrueon mobile.
0.9.0 #
- New
ShadContextMenucomponent. - Add
groupIdtoShadPopover, to determine if the tap is inside the popover or not. - Add
onFocusChangetoShadFocusableandShadButton. - Add
onSecondaryTaptoShadButton.
0.8.1 #
- Fix
ShadTabsnot updating the controller when the value changes.
0.8.0 #
- BREAKING CHANGE: Refactor
ShadResizablePanelGroupin order to react to window resize correctly. The sizes have been normalized. You don't need to provide anymore a pixel size, but a value between 0 and 1 which indicates the percentage of the available space. - Add
onChangedtoShadTabs. - Add
onSecondaryTaptoShadGestureDetectorandShadButton. - Fix
maxWidthmissing inShadSelectForlField.
0.7.3 #
- Add
headerandfootertoShadSelectandShadSelectFormField. - Add
mainAxisAlignmentandcrossAxisAlignmenttoShadAlert. - Fix unintentional disposal of
controllerinShadSelect. - Remove assert about
iconandiconSrcinShadAlert, you can avoid using an icon now. - Fix height of Sheet.
0.7.2 #
- Add
controllerparameter toShadSelectandShadSelectFormField.
0.7.1 #
- Fix performance of
ShadSelectwith the newoptionsBuilderparameter for a large number of options. - Fix keyboard appearance of
ShadInput(thanks to @hieupm2096). - Add
onPressedtoShadBadge. - Rename button
textparameter intochild. - Rename dialog
contentparameter intochild. - Rename sheet
contentparameter intochild. - Rename tab
textparameter intochild.
0.7.0 #
- Rename Tabs
defaultValueparameter intovalue. - Rename Card
contentparameter intochild. - Rename Badge
textparameter intochild. - Rename Input
onTapparameter intoonPressed. - Rename AccordionItem
contentparameter intochild. - Add
filterto Select and Popover in order to blur the background when the popover is open. - Pass
errorTexttoerrorbuild of Form Fields. - Add
gapto Buttons, default to8. - Update type of
srcparameter of Avatar - Add
Alert.rawconstructor - Add
Dialog.rawconstructor - Add
Select.rawandSelectFormField.rawconstructors - Add
TableCell.rawconstructor - Add
draggableto Sheet to make it draggable, it works on every side. - Add
ThemeVariantto handle the default theme variant, and the one without the secondary border.
0.6.5 #
- Add
textDirectiontoShadButton
0.6.4 #
- Make
contentofShadTaboptional - Add
TextSelectionThemeusing shadcn colors - Add
crossAxisAlignmenttoShadCheckbox - Fix
ShadSelectpopover padding
0.6.3 #
- Fix
FormFields label not getting the correct style. - Update the
Popoveranimation duration to be faster, the same applies to theSelectcomponent. - Remove unused
waitDurationandshowDurationfromPopover. - Add
effectsandshadowstoSelectandSelectTheme.
0.6.2 #
- Fix form field error border decoration not working
- Add
ShadAutovalidateModetoShadForm, with the newalwaysAfterFirstValidationmode (the new default) - Fix: apply Google Font to Material text theme
0.6.1 #
- Remove
ShadButtonSize.icon. Now by default, when theiconis provided and thetextis not, the button will use theiconsize.
0.6.0 #
- Add
ShadTabscomponent - Add
ShadColorScheme.fromNameto easily create a color scheme from a name (String) - Add
packagetoShadImage(thanks to @farhanfadila1717) - Fix
decorationof form fields - Fix selection controls of
ShadInput
0.5.7 #
- Renamed the breakpoints
- Add
context.breakpointextension
0.5.6 #
- Fix mismatch of
childAlignmentandoverlayAlignmentinShadPortal - Remove top padding of
ShadPopover - Set default values to
ShadAnchorandShadAnchorAuto
0.5.5 #
- Remove
inputDecorationfrom form fields. - Fix
ShadAppdefault dark theme.
0.5.4 #
- Fix double padding on form fields.
0.5.3 #
- Update dependencies
- Removed deprecated parameters
checkerboard...fromShadApp
0.5.2 #
- Fix
onTapnot working inShadInputandShadInputFormField
0.5.1 #
- Fix
ShadInputFormFieldwhich disposed the controller being passed to it. - Add
scrollableandscrollPaddingtoShadDialogandShadSheet. By default, the dialogs and sheets are scrollable and the viewInsets are the default scroll padding.
0.5.0 #
- Add the
ShadSelect.withSearchconstructor to easily add a search input to the select component.
0.4.7 #
- Add
maintainStatetoShadAccordionto keep the child in the tree even if the item is closed, defaults tofalse. - Update
ShadAccordionto useeffectsinstead oftransitionBuilder. - Remove
rivedependency and Rive support inShadImagedue to many issues with the package. - Remove
colorSchemefromShadTextTheme. Now the colors will be automatically derived, unless specified. - Fix popover position in
ShadSelectcomponent. - Refactor
ShadDecorationto easily change the default borders and add new decoration properties to it. Some properties have been moved from the components to thedecorationof the component. - Fix
ShadTablerow indexes when using anheaderBuilder(thanks to @Kyziq).
0.4.6 #
- Update depencencies versions
- Remove
ShadSameWidthColumncomponent - Remove boxy dependency
- Make components keyboard accessible
0.4.5 #
- Remove
placeholderStyleandplaceholderAlignmentfromShadDecorationand move toShadInputandShadInputFormField - Add
suffixandprefixtoShadInputandShadInputFormField
0.4.4 #
- Add
horizontalScrollPhysicsandverticalScrollPhysicstoShadTable - Add
mainAxisAlignmentandcrossAxisAlignmenttoShadButton - Fix
ShadDialogcontent adding default text style - Remove popover asserts and ignore operation if already opened/closed.
- Add
longPressDurationtoShadGestureDetector - Add
hoverStrategiesto ShadButtonTheme's - Fix use
strutStyleinShadInput - Add
backgroundColortoShadInputandShadInputFormField(thanks to @Dredayduncan) - Remove
inputDecorationfromShadInput - Put
placeholderon top ofShadInput - Fix text style alignment
0.4.3 #
- Fix
ShadResizabledivider position
0.4.2 #
- Add
ShadGestureDetectorwith hover strategies for touchscreens. - Add
ShadTooltipControllertoShadTooltip. - Increase the divider size in the
ShadResizablecomponent.
0.4.1 #
- Expose
ShadResizableTheme.
0.4.0 #
- Add
ShadResizablecomponent
0.3.3 #
- Improve pub dev score
0.3.2 #
- Fix
preferBelowdefault value forShadSelectandShadPopover
0.3.1 #
- Add
ShadAnchorAutotoShadPortal, to automatically adjust the position of the overlay. This applies to all components that useShadPortal, likeShadSelect,ShadTooltip,ShadPopover.
0.3.0 #
- Add
ShadTablecomponent - Improved
ShadInputplaceholder alignment
0.2.6 #
- Fix buttons state not updated correctly
- Remove
ShadAssetsin favor ofLucideIcons
0.2.5 #
- Add
widthandheighttoShadCard - Add
leadingandtrailingtoShadCard
0.2.4 #
- Add workaround for google_fonts issue about font weights. see https://github.com/material-foundation/flutter-packages/issues/35
- Make
fromofShadTextTheme.fromGoogleFontunnamed.
0.2.3 #
- Expose
ShadTextTheme - Fix
ShadTextThemeto add ability to change font family - Add
materialThemeBuilderto defaultShadApp - Add
ShadTextTheme.fromGoogleFontto use a Google Font
0.2.2 #
- Fix lerp of
ShadDecorationandShadBorder - Add
ShadDecoration.noneandShadBorder.none
0.2.1 #
- Fix export of color schemes (thanks to @Pietervdw)
0.2.0 #
- Add
materialThemeBuilderandcupertinoThemeBuildertoShadApp - Fix
readOnlyforShadInput - Fix
initialValueforShadInputFormField - Rename
AnimatedShadThemeintoShadAnimatedTheme
0.1.0 #
- new
ShadProgresscomponent - new
ShadAccordioncomponent - new
ShadSheetcomponent - add
onLongPressto buttons - add
ShadStatesControllerto buttons - update
showShadDialog - set toast default animations based on alignment
- change toast default offset
- add Material and Cupertino constructors in
ShadApp
0.0.1-dev1 #
- First development release
0.0.0 #
- Initial commit