Modular Forms is a JavaScript library that is build on top of SolidJS and Qwik to validate and handle various types of forms. It is type-safe, fast by default and the bundle size is small due to a modular design. Try it out in our playground!
- Small bundle size starting at 2.5 or 0 KB
- It's fast – DOM updates are fine-grained
- Type safety with autocompletion in editor
- Validate everything from emails to files
- Minimal, readable and well thought out API
- Progressively enhanced forms with actions
- Modular design – only use what you need
- No dependencies – except for SolidJS or Qwik
- It's headless – you define the visual
- Supports all native HTML form fields
The mission of Modular Forms is to gather the latest available experience and knowledge to provide the best possible form library for JavaScript frameworks. We pay special attention to type safety, bundle size, performance and input validation. You can expect that every decision we make during development is well thought out and always takes these main features into account.
At the time of the initial development of Modular Forms, there was no form library with comparable type safety, bundle size and performance. However, many of the ideas came from previous open source projects and only the development of the last few years has made a form library in this way possible. The vision of Modular Forms is to shape the future of the web together and to share our knowledge and experience with the open source community.
When creating Modular Forms, I took inspiration from React Hook Form and Formik. I also want to thank Ryan Carniato for his inspiring streams with exclusive and deep insights into different technologies. Furthermore, I would like to thank David Di Biase, Miško Hevery and Manu Martínez-Almeida for the support I received during the initial development.
Find a bug or have an idea how to improve the library? Please fill out an issue. Together we can make the library even better!
This project is available free of charge and licensed under the MIT License.