with one click
formkit-core-skilld
// The framework agnostic core of FormKit. ALWAYS use when writing code importing "@formkit/core". Consult for debugging, best practices, or modifying @formkit/core, formkit/core, formkit core, formkit.
// The framework agnostic core of FormKit. ALWAYS use when writing code importing "@formkit/core". Consult for debugging, best practices, or modifying @formkit/core, formkit/core, formkit core, formkit.
Vue port for Radix UI Primitives. ALWAYS use when writing code importing "reka-ui". Consult for debugging, best practices, or modifying reka-ui, reka ui.
Modern and scalable routing for Vue applications. ALWAYS use when writing code importing "@tanstack/vue-router". Consult for debugging, best practices, or modifying @tanstack/vue-router, tanstack/vue-router, tanstack vue-router, tanstack vue router, router.
A user-empowering data visualization Vue 3 components library for eloquent data storytelling. ALWAYS use when writing code importing "vue-data-ui". Consult for debugging, best practices, or modifying vue-data-ui, vue data ui.
Hooks for managing, caching and syncing asynchronous and remote data in Vue. ALWAYS use when writing code importing "@tanstack/vue-query". Consult for debugging, best practices, or modifying @tanstack/vue-query, tanstack/vue-query, tanstack vue-query, tanstack vue query, query.
ALWAYS use when writing code importing "@vue/test-utils". Consult for debugging, best practices, or modifying @vue/test-utils, vue/test-utils, vue test-utils, vue test utils, test-utils, test utils.
Renderless components for VueUse. ALWAYS use when writing code importing "@vueuse/components". Consult for debugging, best practices, or modifying @vueuse/components, vueuse/components, vueuse components, vueuse.
| name | formkit-core-skilld |
| description | The framework agnostic core of FormKit. ALWAYS use when writing code importing "@formkit/core". Consult for debugging, best practices, or modifying @formkit/core, formkit/core, formkit core, formkit. |
| metadata | {"version":"2.0.0","generated_at":"2026-05-03T00:00:00.000Z","references_synced_at":"2026-05-03T00:00:00.000Z"} |
@formkit/core@2.0.0Tags: perf: 1.0.0-beta.13-c578106, latest: 2.0.0, dev: 2.0.0-dev.c6ae298
References: Docs
This section documents version-specific API changes โ prioritize recent major/minor releases.
NEW: useFormKitContext() โ v1.6.0, access parent context with optional effect callback source
NEW: useFormKitContextById() โ v1.6.0, access any context by its explicit id source
NEW: useFormKitNodeById() โ v1.6.0, access any node by its explicit id source
NEW: stopWatch() โ v1.6.0, de-registers receipts from the watchRegistry function source
NEW: library prop โ v1.6.0, adds additional components to the input schema for sections-schema source
NEW: createInput โ v1.5.0, third argument sectionsSchema allows extending default sections source
NEW: didMount / mounted โ v1.5.0, context property and node event to detect DOM mounting source
NEW: changeLocale() โ v1.5.0, globally change locale for all forms across multiple APIs source
NEW: date_after_node โ v1.7.0, compare date against another field; also date_before_node source
NEW: passing state โ v1.6.3, context.state.passing indicates if input satisfies validation rules source
NEW: minAutoHeight โ v1.7.0, prop for auto-height textarea addon to respect CSS min-height source
BREAKING: @formkit/vue โ v1.6.0, Vue is now a peer dependency to avoid multiple instance issues source
DEPRECATED: Genesis CSS theme โ v1.5.0, marked as legacy; use Tailwind themes instead source
NEW: mergeStrategy (experimental) โ v1.6.1, syncs two nodes of same name in same parent (experimental) source
Also changed: getNode<T>() generic v1.6.0 ยท Boolean props shorthand v1.5.0 ยท summaryHeader i18n v1.7.0 ยท node.children reactivity v1.5.0 ยท FormKitTypeDefinition inference v1.6.0 ยท themes peer deps removed v1.7.1
Read resolved configuration and prop data from node.props rather than node.config โ explicit props and parent configurations are automatically merged into the props object source
Synchronize multiple inputs with the same name at the same level using the mergeStrategy config option โ prevents value conflicts when identical names are required by template structure source
Use node.input(value) instead of direct assignment to node.value โ ensures the tree's state is tracked and triggers the asynchronous settlement process source
Await node.settled before programmatically reading form values or submitting โ guarantees all asynchronous input commits and side effects are complete source
Append .deep to event names in node.on() to capture events bubbling from descendants โ allows parent nodes or plugins to respond to subtree lifecycle changes source
Leverage node.ledger to create reactive, tree-wide counters for messages โ efficiently sums message states (like errors or visibility) across complex form structures source
Traverse the node tree using node.at() with special tokens like $root, $parent, and $self โ provides a robust way to access relative nodes without hardcoding absolute paths source
Opt out of defaultConfig in production to enable tree-shaking for unused rules, inputs, and locales โ significantly reduces bundle size by manually registering only required features source
Register middleware via node.hook within plugins to intercept core operations โ enables reusable logic for transforming props, values, or error messages across multiple forms source
Always remove event listeners using the "receipt" returned by node.on() via node.off(receipt) โ prevents memory leaks and redundant execution in long-lived or dynamic form contexts source