Declarative & headless form fields build on top of
jotai & form-atoms.
yarn add jotai form-atoms @form-atoms/field
form-atoms is the ‘last-mile’ of your app’s form stack. It has layered, bottom-up architecture with clear separation of concerns.
We provide you with stable pre-fabricated UI fields, while you still can go one level down and take the advantage of form primitives to develop anything you need.
To contrast it with formik or react-hook-form, our form state thanks to
jotai lives outside of the react tree, so you never lose it when the component unmounts.
Moreover, jotai’s external state unlike redux-form has compact API with ‘atom-local reducer’ and automatic dependency tracking leading to unmatched rendering performance.
What’s in the box?
form-atoms library provides atomic form primitives capable of tracking input value, touch state, validation status and more.
@form-atoms/field extends these primitives & packages them into hooks & headless components (think ‘smart components’), which can be easily wired to UI (think dumb components) checkbox, select or array field.
What is a
Most UI libraries provide styled primitive
<Input> components, form
<Label> and form
<Control>. These must be integrated together with state & validation libraries, so when the input value is invalid, the error is propagated to the form control or the label is colored to red. The work to get this right is non-trivial and error prone.
@form-atoms/field provides you with integrated field components:
<Field> = <Control> + <Input> + <Label> + <HelpText> + <Error>
@form-atoms/field comes with
<Fields /> pre-wired to popular UI libraries.
|📦Package Docs||🎨 Storybook||📃Official Docs||About|
|flowbite||Flowbite Fields||flowbite-react||Bindigs to Tailwind component library Flowbite|
|chakra-ui||🚧 WIP||chakra-ui||Bindings to CSS-in-JS library Chakra UI|