Skip to content

formkit/formkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2,165 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FormKit Logo FormKit Logo


GitHub Build Status  npm  GitHub

The form framework for coding agents.

Co-located validation, self-structuring data, composability, and a compact single-component API
that makes it easy for coding agents to reason about complex forms without boilerplate or guesswork.

React · Vue  —  Trusted by NBC, Nike, Bosch, Anthem Blue Cross, and thousands of teams that ship at scale.

Documentation  ·  Get Started  ·  Discord

Tip

Set up your coding agent for FormKit

npx formkit skill

Supports Claude Code, Codex, Cursor, Cline, Gemini, OpenCode, Amp, and more. Auto-detects your framework and configures your agent with the right docs and best practices.


One primitive. Infinite flexibility.

"Forms today remain fundamentally unsolved. We need a new low-level primitive to power the next generation of web applications written with AI. The FormKit Node is that primitive."

— Justin Schroeder, Creator of FormKit

Every <FormKit> component owns a node. Nodes automatically structure data across components at any depth — no prop-drilling, event spaghetti, or ad-hoc state stores. The result is a compact representation of form state that agents and humans can both reason about. Generated forms stay structured, editable, and consistent as your product evolves.

<FormKit type="form" onSubmit={handleSubmit}>
  <FormKit type="text" name="email" label="Email" validation="required|email" />
  <FormKit type="password" name="password" label="Password" validation="required|length:8" />
</FormKit>

That's a fully accessible form with labels, validation, error messages, loading state, and submit handling — all from one component.


What you get

Feature
One component, every input <FormKit type="text">, <FormKit type="select">, <FormKit type="checkbox"> — consistent, predictable API across all inputs
Co-located validation 30+ built-in rules declared inline. No separate validation schemas, no event listeners, no glue code
Self-structuring data type="group" nests as objects, type="list" nests as arrays. Data shape mirrors component shape automatically
Schema Generate entire forms from JSON. Conditional rendering, loops, expressions, dynamic data — all serializable
Theming First-class Tailwind CSS support with the Regenesis theme, or bring your own styles
i18n 30+ languages included, swap at runtime
Accessibility ARIA attributes, labels, and descriptions generated automatically
Plugins Extend or override anything — validation, i18n, and even input types are all plugins

FormKit Pro

Premium inputs for complex interfaces — autocomplete, datepicker, repeater, color picker, drag-and-drop, mask, rating, slider, tag list, toggle, and more. Built on the same FormKit Node, same schema, same theming system.

Explore Pro inputs →


Architecture

FormKit cleanly separates its framework-agnostic core from framework bindings. The same core powers every framework — same validation rules, same schemas, same plugins.

@formkit/core          →  Node tree, events, plugins, schema compiler
@formkit/validation    →  Validation engine
@formkit/rules         →  Built-in validation rules
@formkit/i18n          →  Internationalization
@formkit/inputs        →  Input type definitions
@formkit/themes        →  Theme utilities
─────────────────────────────────────────────
@formkit/react         →  React 18/19 bindings
@formkit/vue           →  Vue 3 bindings

Sponsors

FormKit — which supports its whole feature set for native HTML inputs (like select, checkbox, and textarea) — is and will always be an MIT-licensed open source project. Please consider sponsoring FormKit so we can sustainably and continually improve it!

💎 Platinum

Vue School

🥇 Gold

Fieldman

🥉 Bronze

PerByte   Zammad   Wedgworth's Inc   Mast

Backers

uscreen · gfenn08 · Ryan E · João Bondim


Contributing

Thank you for your willingness to contribute to this free and open source project! When contributing, consider first discussing your desired change with the core team via GitHub issues, Discord, or other method.

License

MIT · Copyright (c) 2021-2026, FormKit, Inc.

Sponsor this project

 

Contributors