Skip to content

Latest commit

 

History

History
70 lines (43 loc) · 3.27 KB

File metadata and controls

70 lines (43 loc) · 3.27 KB

🎨 Theme

Crates.io Crates.io Downloads Crates.io License made-with-rust Rust Maintenance

Join our Discord

logo

🎬 Demo

Framework Live Demo
Yew Netlify Status
Dioxus Netlify Status
Leptos TODO

📜 Intro

Theme is a flexible, declarative, and type-safe theming system for Rust-based WASM frameworks like Yew, Leptos, and Dioxus. It provides structured and composable themes, including support for dark/light/system themes and custom color palettes with runtime composition and validation.

🤔 Why Use Theme?

  1. 🌗 Light, Dark, and System Themes: Built-in support for light, dark, and system-preferred themes.

  2. 🎨 Custom Themes with Composition: Define your own themes with optional inheritance from base themes.

  3. 🧪 Type-Safe Color Tokens: Validate hex codes at runtime.

  4. 📦 Persistent Theme Selection: Persist user-selected themes using LocalStorage or SessionStorage.

  5. ♻️ Runtime Composition with Inheritance: Inherit and override from base themes dynamically at runtime.

  6. 🎛️ Tailwind & DaisyUI Compatible: Use custom themes to generate CSS variables that integrate smoothly with Tailwind CSS and DaisyUI.

Yew Usage

Refer to our guide to integrate this component into your Yew app.

🧬 Dioxus Usage

Refer to our guide to integrate this component into your Dioxus app.

🌱 Leptos Usage (TODO)

Refer to our guide 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 Theme better.

  1. Fork the repository.
  2. Create a new branch for your feature/bugfix.
  3. Submit a pull request for review.

📜 License

Theme is licensed under the MIT License. You are free to use, modify, and distribute this library in your projects.