<div align="center">
# 📋 Form RS
[](https://crates.io/crates/form-rs)
[](https://crates.io/crates/form-rs)

[](https://www.rust-lang.org/)
[](https://www.rust-lang.org)
[](https://github.com/opensass)
[](https://discord.gg/b5JbvHW5nv)

</div>
## 🎬 Demo
| Yew | [](https://form-rs.netlify.app) |
| Dioxus | [](https://form-dio.netlify.app) |
| Leptos | [](https://form-lep.netlify.app) |
## 📜 Intro
A highly customizable, accessible form component library for WASM frameworks: Yew, Dioxus, and Leptos.
Supports HTML5 and ARIA validation, composable sub-components (`Form`, `Control`, `FormLabel`,
`Helper`, `Group`, `ControlLabel`, `Field`), and full WCAG 2.2 AA compliance.
## 🤔 Why Form RS?
1. **🎨 Fully Customizable**: Control variant, color, size, class, style, ARIA labels, and every sub-component attribute.
1. **🧩 Composable API**: Mix `Form`, `Control`, `FormLabel`, `Helper`, `Group`, `ControlLabel`, and `Field` independently or together.
1. **✅ Dual Validation**: Supports native HTML5 validation and real-time ARIA error messaging.
1. **♿ Accessible by Default**: `aria-describedby`, `aria-required`, `aria-invalid`, and `role="alert"` wired up automatically.
1. **🔧 Framework Agnostic**: Same API semantics across Yew, Dioxus, and Leptos.
## Y Yew Usage
Refer to [our guide](https://github.com/opensass/form-rs/blob/main/YEW.md) to integrate this component into your Yew app.
## 🧬 Dioxus Usage
Refer to [our guide](https://github.com/opensass/form-rs/blob/main/DIOXUS.md) to integrate this component into your Dioxus app.
## 🌱 Leptos Usage
Refer to [our guide](https://github.com/opensass/form-rs/blob/main/LEPTOS.md) to integrate this component into your Leptos app.
## 🤝 Contributions
Contributions are welcome! Whether it's bug fixes, feature requests, or examples, we would love your help to make Form RS better.
1. Fork the repository.
1. Create a new branch for your feature/bugfix.
1. Submit a pull request for review.
## 📜 License
Form RS is licensed under the [MIT License](LICENSE). You are free to use, modify, and distribute this library in your projects.