Thanks for your interest in contributing to Rust/UI. Please take a moment to review this before submitting your first pull request.
This is a monorepo for the Rust/UI component registry, built with Leptos and Tailwind CSS. Support for the Dioxus framework is planned for the future.
app/ # Leptos app (shell, routing)
app_crates/
└── registry/
└── src/
├── ui/ # Component source (Button, Input, etc.)
└── demos/ # Demo/showcase components
crates/ # Supporting crates (tw_merge, icons, ui-cli, ...)
public/
├── docs/ # MDX documentation files
└── registry/ # Auto-generated registry (do not edit manually)
git clone git@github.com:rust-ui/ui.git rust-ui
cd rust-ui
pnpm install
cargo install --locked cargo-leptoscargo leptos watchAlways run both formatters before committing:
cargo fmt && leptosfmt **/*.rsThe main focus of contributions is:
- Bug fixes — incorrect behavior, broken styles, rendering issues
- Cross-platform compatibility — ensuring components work correctly across:
- OS: Windows, macOS, Linux
- Targets: Web, Desktop, iOS, Android
If you'd like to propose a new component, please open a discussion — we're happy to talk about it.
Follow the category(scope): message format:
| Category | When to use |
|---|---|
feat |
New component or feature |
fix |
Bug fix |
docs |
Documentation changes |
refactor |
Code change that isn't a fix or feature |
build |
Build system or dependency changes |
test |
Adding or updating tests |
ci |
CI configuration changes |
chore |
Everything else |
Example: feat(button): add loading state with spinner
- Fork the repo and create a branch:
git checkout -b feat/my-component - Make your changes following the steps above
- Ensure
cargo fmt && leptosfmt **/*.rspasses - Open a pull request with a clear description of what changed and why
If you encounter a bug, please open an issue.
Feel free to reach out on LinkedIn.