# jaredpalmer/formik

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jaredpalmer-formik).**

34,345 stars · 2,782 forks · TypeScript · Apache-2.0

## Links

- GitHub: https://github.com/jaredpalmer/formik
- Homepage: https://formik.org
- awesome-repositories: https://awesome-repositories.com/repository/jaredpalmer-formik.md

## Topics

`form` `formik` `forms` `higher-order-component` `hooks` `react` `react-hooks` `react-native` `render-props`

## Description

Formik is a React form management library and state management tool. It serves as a client-side form validator for checking user entries against defined rules and managing associated error messages before submission.

The library synchronizes user input values across multiple fields into a single object for retrieval and manipulates the transition of form data from initial entry through validation and final submission.

It provides capabilities for tracking complex form state, managing form submissions, and validating user inputs to ensure data integrity.

## Tags

### User Interface & Experience

- [React Form Libraries](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/form-handling/react-form-libraries.md) — Provides a comprehensive library of hooks and components for managing form state and validation in React.
- [Form Validation](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/form-validation.md) — Verifies that user inputs meet specific defined criteria to ensure data integrity before processing. ([source](https://github.com/jaredpalmer/formik/blob/main/package.json))
- [Form State Management](https://awesome-repositories.com/f/user-interface-experience/form-state-management.md) — Synchronizes input values across multiple fields into a single data model for efficient retrieval and manipulation. ([source](https://github.com/jaredpalmer/formik/blob/main/package.json))
- [Form Submission Management](https://awesome-repositories.com/f/user-interface-experience/form-submission-management.md) — Provides utilities for managing the form submission lifecycle, including loading states and response handling. ([source](https://github.com/jaredpalmer/formik/blob/main/package.json))
- [Controlled Components](https://awesome-repositories.com/f/user-interface-experience/controlled-components.md) — Provides the logic to synchronize internal form state with input elements using the controlled component pattern.
- [Form Input Handling](https://awesome-repositories.com/f/user-interface-experience/form-input-handling.md) — Handles the end-to-end workflow of capturing user input, validating it, and submitting it to a server.
- [Submission Lifecycle Hooks](https://awesome-repositories.com/f/user-interface-experience/form-submission-management/submission-lifecycle-hooks.md) — Manages the submission lifecycle by tracking pending and completed states during asynchronous data transmission.

### Software Engineering & Architecture

- [Schema-Based State Validation](https://awesome-repositories.com/f/software-engineering-architecture/schema-based-state-validation.md) — Executes validation logic against a defined schema to generate error messages before allowing form submission.
- [Centralized State Containers](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/centralized-state-containers.md) — Implements a centralized state container to maintain a single source of truth for all form field values and errors.

### Web Development

- [Form State Management Tools](https://awesome-repositories.com/f/web-development/form-state-management-tools.md) — Synchronizes user input values across multiple fields into a single object for easy retrieval and manipulation.
- [Immediate State Updates](https://awesome-repositories.com/f/web-development/state-update-handlers/debounced-state-updates/immediate-state-updates.md) — Ensures the internal value object updates immediately as users type to keep the UI synchronized.

### Part of an Awesome List

- [Form Management](https://awesome-repositories.com/f/awesome-lists/devtools/form-management.md) — Form building and validation with ease.
- [Forms](https://awesome-repositories.com/f/awesome-lists/productivity/forms.md) — Form state management library.
