Crate theme

Source
Expand description

§🎨 Theme

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

Join our Discord

logo

§🎬 Demo

FrameworkLive Demo
YewNetlify Status
DioxusNetlify Status
LeptosTODO

Β§πŸ“œ 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.

Re-exportsΒ§

pub use common::ColorTokens;
pub use common::CustomTheme;
pub use common::StorageType;
pub use common::Theme;

ModulesΒ§

common
dioxusdio
🧬 Theme Dioxus Usage
leptoslep
yewyew
Theme Yew Usage