All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Entries below start from v0.2.3 (the last published release) forward — earlier versions predate this file and are not backfilled.
0.4.0 - 2026-07-26
- Published
flowbite-vue/index.csswas missing nearly all component utility classes —src/style.csswas never pulled into the library's build graph, so Tailwind's build-time scanner never reachedsrc/components. Consumers following the quickstart guide were unknowingly relying on their own project's@sourcedirective to backfill the missing classes.src/index.tsnow importssrc/style.cssdirectly and@source './components'was added so the shipped stylesheet is fully self-contained; the quickstart docs no longer need a@source "../node_modules/flowbite-vue"workaround (#460)
FwbKbdcomponent for rendering keyboard key labels, standalone, composed inline with+, inside a table cell, or with aniconslot for directional keys (#459)- Nuxt module (
flowbite-vue/nuxt) for auto-imported components and composables — see the Nuxt guide (#460)
0.3.0 - 2026-07-12
- Native attribute passthrough target changed on
FwbInput(#433),FwbTextarea(#436),FwbFileInput(#437),FwbSelect(#438),FwbAutocomplete(#439),FwbRange(#440),FwbToggle(#441),FwbCheckbox(#442), andFwbRadio(#443). Each now setsinheritAttrs: falseand forwards extra attributes to the underlying native element (<input>,<select>,<textarea>, etc.) instead of the root wrapper element. This is the correct behavior, but apps relying on attributes landing on the wrapper (e.g. for CSS targeting) are affected. FwbTabs: theclick:paneevent was renamed toclick:tab(#451)FwbTextarea: theplaceholderprop was removed (no longer declared — pass it as a native attribute instead, which forwards identically via attr passthrough) and thecustomprop was removed (the new default layout replaces the oldcustom: truelayout; useclass/wrapperClass/textareaClassfor further customization) (#436)FwbFileInput: thesizedefault changed from'sm'to'md', andsize="xs"was removed — the type is now'sm' | 'md' | 'lg' | 'xl'(#437)FwbSelect: the native browser dropdown arrow is now hidden (appearance-none) in favor of the Flowbite chevron icon, rendered via the newchevronslot (#438)FwbRange: thelabeldefault changed from'Range slider'to''— passlabel="Range slider"explicitly to restore the previous rendering (#440)FwbCheckbox:nameandvalueare no longer declared props; they now flow through attribute passthrough instead (same usage, no template changes needed) (#442)FwbProgress:labelPosition/labelProgressrenamed tovaluePosition/showValue— the old names collided conceptually with the unrelatedlabelprop (the bar's title text, not its value). Thecolorprop now uses the sharedColorVarianttype instead of the oldProgressVariant, and no longer acceptsalternative,light, orindigo(#457)
validationMessagestring prop onFwbInput,FwbSelect,FwbTextarea,FwbFileInput,FwbAutocomplete,FwbToggle,FwbRange,FwbCheckbox, andFwbRadioGroupas a plain-string fallback for thevalidationMessageslot, which keeps priority for rich content (#453)FwbTabs/FwbTab:verticallayout,fullWidth, aniconslot with configurableiconPosition,tabClass/itemClass/itemActiveClasscustom classes, keyboard navigation (arrow keys, Home, End), and ARIA roles (tablist/tab/tabpanel) (#451, supersedes #435 — thanks @darrenthebozz for the original custom-classes idea)FwbBadge:pill,border, anddismissiblevariants, the last emitting adismissevent (#450)FwbRadioGroupcomponent for grouped radio validation, sharedname, and accessibility wiring (#443)xlsize tier, validation states (validationStatus,validationMessage/helperslots), and per-element class props (wrapperClass,labelClass, etc.) added toFwbInput(#433),FwbTextarea(#436),FwbFileInput(#437),FwbSelect(#438),FwbRange(#440),FwbToggle(#441), andFwbCheckbox(#442)FwbAutocomplete:inputClassprop for direct<input>styling (#439)FwbSelect:clearableprop andchevronslot (#438)FwbRange: thumb color customizable via the--fwb-range-thumb-colorCSS custom property (#440)FwbFileInput: dropzone mode now supportsvalidationStatusstyling (rose/emerald dashed border),aria-invalid/aria-describedbyon the hidden input, and renders thevalidationMessage(slot or prop) andhelperslot below the dropzone (#455)FwbProgress:indeterminateprop for an animated, indefinite-length bar when completion isn't known yet; a scopedvalueslot ({ progress }) to render custom value text (file sizes, time remaining, step labels, ...) instead of the defaultN%;role="progressbar"andaria-valuenow/aria-valuemin/aria-valuemax, previously missing entirely (#457)src/types/colors.ts: sharedColorVarianttype, extracted fromFwbButton's color set and now also used byFwbDropdownandFwbProgress(#457)
FwbButtonrewritten for type safety,useMergeClasses, and accessibility (#444)- Replaced the
classnamesdependency with the internaluseMergeClassescomposable across all components (#447) - Unified import convention: relative imports (
./,../) within a component's own directory,@/alias across component boundaries or for shared/top-level code (#452) - Systematic documentation review and rewrite for all 39 component pages (#448)
- Updated all dependencies to latest versions (#445)
- Replaced remaining
anytypes with proper types: typeddefineSlotspayloads onFwbAlert,FwbJumbotron, andFwbPagination,Record<string, unknown>in place ofRecord<string, any>onFwbAutocomplete, and a(...args: unknown[]) => voidfunction-type cast in place of ananycast onFwbSlotListener(#456)
- Restored the Flowbite Tailwind plugin for Tailwind v4 and fixed a double chevron rendering on
FwbSelect(#449) FwbSidebartag/link handling bugs found during the docs review (#448)FwbFileInput: error/success background colors corrected (werebg-red-50/bg-green-50, nowbg-rose-50/bg-emerald-50to match the rest of the library) (#437)- Linter warnings reduced from 51 to 21 (#446)
FwbFileInput: the file selector button hadfile:rounded-nonewhile the input wrapper hasrounded-lg— the button's square corner was clipped by the input's rounded border box, cutting into the button text. Now rounds the button's left corners to match, and widens left padding accordingly (#455)FwbProgress: the inner bar's left corner squared off (lost itsrounded-full) at smallprogressvalues, and the inside value label was nearly invisible at small values, especially in light theme. The outer track now clips the inner bar withoverflow-hiddenso corners always stay rounded, and the inner bar clips its own value text instead of letting it spill onto the track; the value is also skipped entirely atprogress={0}(#457)