|
20 | 20 |
|
21 | 21 | # Feature list
|
22 | 22 |
|
23 |
| -- Server- and client-side validation with your favorite validation libraries, and more to come: 💥 **Arktype** 💥 **Joi** 💥 **Superstruct** 💥 **TypeBox** 💥 **Valibot** 💥 **VineJS** 💥 **Yup** 💥 **Zod** 💥 or use **JSON Schema** directly. |
24 |
| -- Seamless merging of `PageData` and `ActionData` - Forget about which one to use and how, just focus on your form data. |
| 23 | +- Server- and client-side validation with your favorite validation libraries, and more to come: 💥 [Arktype](https://arktype.io/) 💥 [class-validator](https://github.com/typestack/class-validator) 💥 [Joi](https://joi.dev/) 💥 [Superstruct](https://docs.superstructjs.org/) 💥 [TypeBox](https://github.com/sinclairzx81/typebox) 💥 [Valibot](https://valibot.dev/) 💥 [VineJS](https://vinejs.dev/) 💥 [Yup](https://github.com/jquense/yup) 💥 [Zod](https://zod.dev/) 💥 or use [JSON Schema](https://json-schema.org/) directly. |
| 24 | +- Seamless merging of `PageData` and `ActionData` - Forget about how to combine them, just focus on your form data, always strongly typed. |
25 | 25 | - [Auto-centering and focusing](https://superforms.rocks/concepts/error-handling#usage-client) on invalid form fields.
|
26 | 26 | - [Tainted form detection](https://superforms.rocks/concepts/tainted), prevents the user from losing data if navigating away from an unsaved form. Or use [snapshots](https://superforms.rocks/concepts/snapshots) to save the form state.
|
27 |
| -- Automatically coerces the `FormData` into correct types. |
28 |
| -- For advanced data structures, forget about the limitations of `FormData` - Use [nested data structures](https://superforms.rocks/concepts/nested-data) transparently. |
29 |
| -- Generates [default form values](https://superforms.rocks/default-values) from validation schemas. |
| 27 | +- Automatically coerces `FormData` into correct types, including arrays and files. |
| 28 | +- For advanced data structures, forget about the limitations of `FormData` - Post [nested data structures](https://superforms.rocks/concepts/nested-data) like a RPC call. |
| 29 | +- Generates [default form values](https://superforms.rocks/default-values) from many validation schemas. |
30 | 30 | - Handles [multiple forms](https://superforms.rocks/concepts/multiple-forms) on the same page.
|
31 | 31 | - Works both on the server and with [single-page applications](https://superforms.rocks/concepts/spa) (SPA)!
|
| 32 | +- Convenient handling and validation of [file uploads](https://superforms.rocks/concepts/files), both on server and client and even in nested data. |
32 | 33 | - [Proxy objects](https://superforms.rocks/concepts/proxy-objects) for handling data conversions to string and back again.
|
33 | 34 | - Realtime [client-side validation](https://superforms.rocks/concepts/client-validation) for the best possible UX.
|
34 | 35 | - Create loading spinners easily with three [auto-updating timers](https://superforms.rocks/concepts/timers), based on human perception research.
|
|
0 commit comments