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}