Skip to main content

dioxus_ui_system/styles/
mod.rs

1//! Styling system for Dioxus UI
2//!
3//! Provides a type-safe, fluent API for building CSS styles in pure Rust.
4//! Similar to Tailwind CSS but with compile-time safety and full IDE support.
5
6pub mod builder;
7
8pub use builder::Style;
9
10/// Utility macro for conditional class composition
11///
12/// # Example
13/// ```rust,ignore
14/// use dioxus_ui_system::cx;
15///
16/// let is_active = true;
17/// let is_disabled = false;
18/// let classes = cx!(
19///     true => "base-class",
20///     is_active => "active",
21///     is_disabled => "disabled",
22/// );
23/// ```
24#[macro_export]
25macro_rules! cx {
26    ($($condition:expr => $class:expr),* $(,)?) => {{
27        let mut classes = String::new();
28        $(if $condition {
29            classes.push_str($class);
30            classes.push(' ');
31        })*
32        classes.trim_end().to_string()
33    }};
34}
35
36/// Utility macro for conditional styles
37///
38/// # Example
39/// ```rust,ignore
40/// use dioxus_ui_system::style_if;
41///
42/// let is_active = true;
43/// let style = style_if!(is_active => "background: blue;");
44/// ```
45#[macro_export]
46macro_rules! style_if {
47    ($condition:expr => $style:expr) => {{
48        if $condition {
49            $style
50        } else {
51            ""
52        }
53    }};
54}