Skip to main content

Formix

Formix (@ekz/formix) is a headless, type-safe React form library for TypeScript. It focuses on:

  • Field references instead of stringly-typed form state
  • Composable validation with useFieldValidation
  • Array fields for dynamic lists
  • Submit gating via valid and modified from useForm

Formix does not ship UI components. You bind FieldRef values to your own inputs (or a design system) with useField and useArrayField.

When to use Formix

Reach for Formix when you need:

  • Type-safe mapping from form state to API payloads
  • Field-level and cross-field validation that blocks submit
  • Dynamic lists (add/remove rows) with per-row rules
  • A consistent pattern across modals, wizards, and settings pages

Core concepts

ConceptRole
defineField / defineArrayFieldDeclare typed field references
withForm / useFormProvide form context and read valid, modified, getValues
useField / useArrayFieldBind inputs to field refs
useFieldValidationRegister validators; errors surface on fields

Install

npm install @ekz/formix @ekz/option immutable react
# or
yarn add @ekz/formix @ekz/option immutable react

Peer dependencies: react, typescript, immutable, @ekz/option.

Next steps