Changelog
1.7.2
December 22, 2025
Β Β Β π Bug Fixes
- Preserve order of duplicate values in synced lists Β -Β by @justin-schroeder in https://github.com/formkit/formkit/issues/1466 (20167)
- addons:
- Merge floating label extensions instead of overwriting Β -Β by @andrew-boyd (f1d40)
- nuxt:
- Resolves #1660 Β -Β by @justin-schroeder in https://github.com/formkit/formkit/issues/1660 (77edd)
- vue:
Β Β Β Β View changes on GitHub
1.7.1
December 17, 2025
π Bug Fixes
- Shows scrollbars when
maxAutoHeighthas a limit on auto-height textareas - Slot scope data now properly shadows outer iteration data with the same variable name in FormKitSchema
- Adds explicit
FormKitLibrarytype to inputs export for better TypeScript support - Fixes Nuxt module issue (#1690)
1.7.0
December 16, 2025
πͺ New features
- New Tailwind CSS 4 support β themes now ship with TW4 by default, with TW3 variants available via
regenesis-tw3andstarter-tw3theme names - CLI now defaults to Tailwind v4 for both Vite and Nuxt project creation with automatic version detection
- New
minAutoHeightprop for auto-height textareas that respects CSS minimum height (#1595) - New Bengali (bn) locale for internationalization
- Added
summaryHeaderto all i18n locales for customizing form summary headers
π Bug Fixes
- Fixes memory leak by cleaning up
__FORMKIT_CONFIGS__on unmount - Allows passing unix epoch timestamps in
date_betweenvalidation rule (#1587) - Fixes validation state becoming invalid when rules are dynamically removed (#1384)
- Fixes validation dependency tracking issue (#1371)
- Removes peer dependencies from
@formkit/themesto avoid version conflicts - Fixes Dutch localization terms for next/previous (#1608)
- Fixes typo in Spanish translation (#1609)
- Fixes numeric comparison in validation using Math.min/max (#1620)
- Fixes IIFE build output order (#1674)
1.6.7
Sept 18, 2024
π Bug Fixes
- Fixes compatibility with Vue 3.5.6 (#1501)
- Indicates compatibility with new v4 nuxt (#1418)
- Fixes casing for the
typeprop ofdatetime-localinput (#1486) - Keeps placeholder for null or undefined as well (#1474)
πͺ New features
- New validation rules
date_before_or_equal,date_after_or_equal,date_before_node,date_after_node
1.6.5
May 28, 2024
π Bug fixes
- Fixes a bug that causes the
data-invalidattribute to not be removed when conditionally removing validation rules (#1384).
1.6.3
May 14, 2024
πͺ New Features
- New clear on submit option for local storage
- New
context.state.passingproperty indicates whether or not a given input is passing all its validation rules.
π Bug fixes
1.6.1
March 27, 2024
πͺ New features
- Adds new experimental (not documented) configuration option
mergeStrategyto allow syncing between two nodes of the same name inside the same parent. - Improves tree shaking of
@formkit/inputspackage.
π Bug fixes
- Fixes FormKitβs monorepo builds script on windows environments (#1270).
- Floating label now works as a naked attribute.
- Fixes a bug that could cause the floating label to interfere with
Transitioncomponents.
1.6.0
March 11, 2024
πͺ New features
- Adds new composable
useFormKitContextfor access to a the context object of the parentFormKitcomponent β or any otherFormKitcomponent in the tree. Optionally, you can provide an effect callback that is run when the context is available. - Adds new composable
useFormKitContextByIdfor access to the context object of anyFormKitcomponent with an explicit id. Optionally, you can provide an effect callback that is run when the context is available. - Adds new composable
useFormKitNodeByIdfor access to a the node object of anyFormKitcomponent with an explicit id. Optionally, you can provide an effect callback that is run when the node is available. - Adds intellisense autocomplete for the
typeprop of the FormKit component (#1241). - Adds new
stopWatchfunction to the@formkit/corepackage that allows de-registering receipts from thewatchRegistryfunction. - Adds type generic to
getNode<T>()function. - New integration with
@nuxt/tailwindcssthat automatically includes theformkit.theme.tsfile in the tailwindcontent. - Adds new
currencyanduniticons. - Adds new
libraryprop toFormKitandFormKitMessagescomponents that allows you to include additional components for the input schema, for example, when usingsections-schemato modify the input (#1145) (#1137). - The
valuetype of aFormKitcomponent that is passed aFormKitTypeDefinitionis now inferred from theFormKitTypeDefinition.
π Bug fixes
- Fixes bug in
changeLocalethat caused updated locale to not be used on new nodes (#1143). - Fixes tree shaking of the
@formkit/iconspackage (#1184). - Adds
FormKitIconcomponent to theautoImportfeature of the Nuxt module (#1168). - Fixes types for
BeforeStepChangeData(#1224). - Fixes types for the
datetime-localinput type (#1129). - Vue is now a
peerDependencyof@formkit/vueto reduce the incidents of multiple Vue instances in the same project (#1160). - Adds tabindex and
role="button"to the icon wrappers when a click event is added to the icon (#1210).
The type argument of the FormKit component now requires a matching type in the FormKitInputProps type for TypeScript support. If you are using custom inputs and have not supplied a module augmentation for FormKitInputProps, you will need to update the FormKitInputProps type to include your types.
1.5.5
February 3, 2024
π Bug fixes
- Fixes issue that prevented theme installation using
npx formkit@latest themecommand.
1.5.4
February 2, 2024
πͺ New features
- Floating Labels plugin now supports
prefixcontent when calculating label position. (#878) - Updates the
@formkit/clipackage to allow generating of published themes locally in your projects. See the new documentation here. (#1170)
π Bug fixes
- Fixes issue where
multi-stepwould not allow schema overrides oftabsortabsections. (1110)
1.5.3
January 29, 2024
π Bug fixes
- Fixes a bug that caused some dynamic validation rules to stop working after the rules were updated (#1155)
- Fixes a regression in 1.5.0 that caused some FormKit packages to not be tree shaken properly (#1139)
- Fixes a bug that caused errors initially set with the
prop to not always be displayed initially (#1153)
1.5.2
January 23, 2024
π Bug fixes
- Updates the
FormKitKitchenSinkcomponent to ship new$optionspresets that can be used in the dynamically fetched schema examples for theme authors.
1.5.1
January 19, 2024
π Bug fixes
- Fixes a bug introduced in
1.5.0that caused the context.value to not properly synced with thenode.valueinside of nested group structures (#1133).
1.5.0
January 16, 2024
FormKit 1.5.0 ships with a new development build of FormKit. In development FormKit now uses slightly different versions of its packages that include additional developer experience enhancements. This is similar to how Vue itself has "development" and "production" versions, and it allows FormKit to provide an improved developer experience such as improved HMR support and better error messages.
The groundwork is now laid for greatly improved developer experience in future releases. This release also includes dozens of bug fixes and improvements.
πͺ New features
- Adds a new API for adding props to inputs with default values, boolean props, and getters/setters. See the updated docs for more info.
createInputnow supports a third argument, sectionsSchema which allows you to extend the default sections that come withcreateInput(#882).- Adds new context property
didMountand node eventmountedto recognize when the<FormKit>component is mounted to the DOM (#0b8753d). - Now
node.childrenare observed by@formkit/observer, this allows validation rules to accessnode.childrenwith reactivity. - Hot module replacement with Vite/Nuxt now preserve the form state when updating form code (#1068)
- Adds new
changeLocalecomposable that globally changes the locale of all forms with Options API, Composition API, and Nuxt autoimport (#1112) - Rules
allow_non_alphaandallow_numeric. - The new FormKit cli now scaffolds new apps (
npx formkit@latest create-app) to use themes.formkit.comβs theme system. - New development build of FormKit that includes additional developer experience enhancements.
π Bug fixes
- Fixes Vite TSDoc comment warnings - by Yue Yang (e47c9)
- Fix windows create-app name for nuxt projects (1066)
- Inputs that use
options(select, checkbox, radio, autocomplete etc) now properly count their__maskvalue (#1046). - Fixes a bug that did now allow submitAttrs to disable submit input (#789).
- Removes data-disabled on checkbox and radio inputs when false - (#1043).
- Fixes autoAnimate when used on repeaters and other inputs with complex conditionals (#1016).
- Significantly improves
@formkit/nuxtβs experimentalautoImportfeature (1095, and others). - Autoheight textarea hydration in nuxt (#980).
- Adds non-blocking messages in getValidationMessages (#849).
node.clearErrors()always removes errors local to that node (#941)- Reduces re-renders on destructured group values (#1068).
- Removes warning on multi-step about default slot being called outside render function (#920).
- Inputs inside a disabled repeater can be enabled per-input (#1043).
- Improves typing for
createInput()(#1105). - Removes
data-completeon groups/lists (#1038). - Boolean props like disabled and preserve can now be used without explicitly setting them to
trueorfalse(#989).
Vitest does not automatically use the same node parameters (conditions) that Vite does (see #4971). If you find your tests failing after you update, you can add the following to your vitest.config.js file:
export default defineConfig({
resolver: {
conditions: process.env.VITEST ? ['development'] : undefined
},
test: {
// ...vitest config
}
})
Vite hould be at ~1.2.x or higher to use this feature.
1.4.0
December 5, 2023
πͺ New features
- FormKit now supports themes for TailwindCSS! Customize the look and feel of your forms with a visual editor. See themes.formkit.com for more information.
- Adds new
<KitchenSink>component that renders a specimen of every FormKit input (helpful for styling). - Adds new
state.requiredproperty to the context object (makes adding asterisks to required inputs easier). - Adds
aria-requiredattribute to<input>,<select>, and<textarea>elements when they are required (#984). - Adds new
force-showprop to the<FormKitSummary>component to force the summary to show even if there are no visible errors. - Adds new
create-themecommand for theformkitCLI tool to scaffold a new theme from@formkit/theme-starter.
π Bug fixes
- Fixes a bug that caused radio inputs inside repeaters to become coupled (#1044).
- Fixed an issue that caused
node.submit()to fail when inside a custom elementβs shadow root (#1057). - Fixes a bug that caused pro inputs to not produce proper memokeys (#933).
- Fixed a bug that caused attributes to not pass through
<FormKitProvider>(and related providers) (#1013). - Moved the
invalidDatemessage to the to thevalidationlocale key (#953) - Improved the
minandmaxvalidation message (en) to be thevalidationlocale key (#953) - Fixed a bug that prevented the
incomplete-messageprop (on forms) from being reactive (#1047).
1.3.2
November 28, 2023
π Bug fixes
- Fixes
togglebuttonstext color in default Tailwind Genesis theme.
1.3.1
November 28, 2023
πͺ New features
- Adds Tailwind styles for
togglebuttonsinput.
π Bug fixes
- Fixes Tailwind styles for alignment of prefix icon in button family of inputs.
1.3.0
October 9, 2023
πͺ New features
- Adds new plugins for counting available characters in an input based on the
lengthrule. - Adds a
<KitchenSink>component that renders all input specimen. - Adds a
data-has-multipleattribute tofileinputs on theoutersection when they have multiple files.
π Bug fixes
- Fixes a bug with on the
selectinput with option groups containing non-string values (#986). - Fixes an issue with nuxt
autoImportin webpack (#983) - Fixes a bug that prevent deeply nested inputs from receiving the correct input value during a reset (#1025)
- Fixes
create-appcommand of theformkitcli tool when installingvite. - Fixes a bug that caused the
@formkit/nuxtmodule withautoImportto not include the FormKit component (#995)
1.2.2
October 3, 2023
π Bug Fixes
- Fixes a bug with
@formkit/nuxtinautoImportmode where the SSR context was not being reset after each request leading to hydration errors and broken UI on some pro inputs.
1.2.1
September 29, 2023
π Bug Fixes
- Improves dev mode support for
@formkit/nuxtwith theautoImportoption enabled.
1.2.0
September 29, 2023
πͺ New features
- The
selectinput now supports grouped options (<optgroup>) (#426). - The
@formkit/nuxtpackage now includes an experimentalautoImportoption that only loads FormKit on the pages it is used rather than globally. This will remove FormKit from your entry file. We plan to eventually make this the default behavior and encourage everyone using the current nuxt module to try the new option. - Adds support for
prefix-iconandsuffix-iconto inputs created withcreateInput(). - Significantly improves tree shaking of inputs and configuration options (with manual configuration).
- Adds Tailwind support for new
colorpickerinput. - Adds new
coloricon.
π Documentation
- New guide: Optimizing for Production
π Bug Fixes
- Zod plugin now iterates over issues not errors (#945)
1.1.0
September 20, 2023
πͺ New features
- Adds new
<FormKitProvider :config="yourConfig">β a component that defines a new configuration boundary. Any<FormKit>components that are nested beneath a<FormKitProvider>will inherit their configuration from this location. - Adds a new
<FormKitLazyProvider>which checks for a higher order<Suspense>boundary (if not found it injects one) and injects a<FormKitConfigLoader>component. - Adds a new
<FormKitConfigLoader>component. An async component that performs a dynamic import for a configuration file.
Note: The new components listed above are currently experimental and will be documented further as the API stabilizes.
π Bug Fixes
- Fixes a bug in the TypeScript definition of the
<FormKit>component that causes a TypeScript error in Vue Language Tools (Volar) >1.8.11. - Improves tree shaking across the board for
@formkit/*packages. - Fixes a bug in the many of the
alpha,alphanumeric, andcontains_*validation rules for thelatincharset.
1.0.0
September 1, 2023
With this release we are officially declaring FormKit stable and production ready. Many community members have already been using FormKit in production for over a year now and have been very happy with the results. We hope you will be too!
Additionally FormKit Pro is now available to the general public (no early access required). FormKit Pro is still in Beta, and we are working hard to prepare it for a stable release.
πͺ New features
- Adds a new
<FormKitSummary>component that automatically lists all the errors and validation messages in a form with jump links to each (a11y).
π Bug Fixes
- Improves focus styles for the
radio,checkbox, andrangeinputs (a11y). - Improves genesis contrast ratio to
4.5:1(a11y). fileinput now includes the file name in the remove file button (a11y).- The
fileinput now re-focuses after removing a file (a11y).
0.19.2 (RC 1)
August 29, 2023
πͺ New features
- You can now log in to your FormKit Pro account and create teams and projects directly from the CLI.
- Exports
StepHandlersandMultiStepHandlersandBeforeStepChangeDatato assist typing multi-step inputs.
π Bug Fixes
- Fixes an issue that caused
datetime-localinputs to not resolve their slot typings. - Fixes a bug that caused nuxt installations to fail.
0.19.1 (RC 1)
We donβt talk about Bruno.
0.19.0 (RC 1)
August 25, 2023
πͺ New features
- Introduces a new hidden input
meta. Meta inputs are in-memory only and add data to your form without displaying it to the user or rendering anything on the page. Meta docs. - Adds a new
numberprop totext,number,range, andhiddeninputs that casts the value to a number usingparseIntorparseFloatand expands or contracts the type definition of the value to match. - Dynamic lists now automatically change the rendered name of any child radio inputs to ensure they do not conflict with each other.
- π§π¦ Adds Bosnian (bs) locale.
π Bug Fixes
- Fixes an issue that caused checkboxes and radios to use duplicate
idattributes when used in a dynamic list (#908). - Checkboxes and Radios used
- Adds
stepIndexandstepsto thestepinputβs type definition. - Improves
nllocale translations. - Adds optional
FocusEventto type definition ofcontext.handlers.blur.
0.18.3 (Beta 18)
August 18, 2023
π Bug Fixes
- Improves types for button and submit inputs (#895).
- Improves types for multi-step plugin
0.18.2 (Beta 18)
August 16, 2023
π Bug Fixes
- Fixes a bug that caused the ledger to perform incorrect unmerge calculations for counters that were not the first in the set. This caused groups and lists to occasionally leave their counter values behind when unmounted (#878).
0.18.1 (Beta 18)
August 15, 2023
π Bug Fixes
- Fixes a bug that caused forms with dynamic lists to throw errors when being reset (#731).
- Fixes a bug that caused schema data to render improperly in some edge cases when the schema was being updated dynamically (#610).
- Fixes the
autoHeightTextareaPluginand greatly improves itβs resizing accuracy (#888) - Fixes
tetandlttranslations (#886)
0.18.0 (Beta 18)
August 11, 2023
π Keynote features
- Enhanced TypeScript prop support for Vue 3.3+. #627
- New
barcodeinput available via@formkit/barcodepackage. Barcode docs
πͺ New features
- Introduced
dropdowninput functionalities: - The
whenAvailableutility from@formkit/utilsdynamically references its document context, facilitating FormKit's usage within web component shadow DOM. #837 - New behavioral properties for
dropdown,autocomplete, andtaglistinputs. - Added an
#emptysection/slot for therepeaterinput to display context when there are no values. Repeater docs - Adds Lithuanian π±πΉ (
lt)
π Bug fixes
- The
repeaterrespects the disabled state of its parent form. #579 - The
taglistaccepts empty options. #586 - Prevented unnecessary calls to options method in dropdown family inputs. #657
- Ensured
autocompleteinput compatibility with Vue's@focusdirective. #670 - The
taglistaccepts values outside its options list. #681 - Resolved field reactivation after parent form reenabling. #733
- Addressed
datepickererror on keyboard navigation inpicker-onlymode. #736 - Corrected checkbox label slot overwrite by adjacent radio. #778
- Genesis theme limits
pointer-events: noneto submit-type buttons in theactionsslot. #790 - "Compare" dirty checks adapt to new values provided during form reset. #791
- Ensured
taglistrespects the max prop withopen-on-clickenabled. #793 - Enhanced
autocompletewithselectionAppearanceset tooptionto work withopen-on-clickprop. #817 - Fixed issues with the
eqfunction from@formkit/utils. #819 - Resolved
datepickernavigation error when starting withyear. #827 - Ensured
taglistrespects the max prop withclose-on-selectdisabled. #838 - Addressed inline array-syntax validation prop exceptions. #852
- Fixed FormKit CLI export path issues. #854
- Resolved schema compiler issues with FormKit. #857
- The
formkit-iconclass aligns withconfig.rootClasses. #859 - Remedied Transfer List drag-and-drop glitches. #863
- Addressed a
datepickerSafari focus issue by modifying the open button to arole="button"div. #864 - Dropdown inputs (
dropdown,autocomplete,taglist) can now render values that are not part of their options list. #877
0.17.5 (Beta 17)
July 20, 2023
πͺ New features
- Adds new
<FormKitRoot>component. This component provides context about the root element (DocumentorShadowRoot). When using FormKit inside a Custom Element (Web Component) wrap one or many FormKit inputβs in<FormKitRoot>to ensure proper functionality. - Adds new
node.props.__rootandcontext.__rootproperty that references the nodeβs current root element (Document | ShadowRoot).
π Bug fixes
- Fixes an issue where the
mult-stepinput plugin would break when renderingstepsin av-forloop or conditionally rendering a step via schema. #823 #825 - Textarea Auto-height plugin recalculates height when programmatically changing the value. #839
- Fixes an issue in Zod plugin that prevents transforms from being applied. #833
0.17.4 (Beta 17)
June 30, 2023
πͺ New features
- Adds new
data-emptyattribute to inputouterwrappers for styling purposes. #777 - Updates to Nuxt module allowing for
runtimeConfigsupport βΒ see the new docs in the installation wizard guide. #795