#css #yew #web #css-in-rust #web-apps

stylist

Stylist 是为 WebAssembly 应用程序提供的 CSS-in-Rust 风格化解决方案

11 个版本 (7 个重大更新)

0.13.0 2023 年 10 月 6 日
0.12.1 2023 年 6 月 25 日
0.12.0 2023 年 1 月 20 日
0.11.0 2022 年 11 月 26 日
0.9.2 2021 年 9 月 15 日

#201 in WebAssembly

Download history 881/week @ 2024-03-13 772/week @ 2024-03-20 1023/week @ 2024-03-27 1021/week @ 2024-04-03 879/week @ 2024-04-10 736/week @ 2024-04-17 840/week @ 2024-04-24 754/week @ 2024-05-01 739/week @ 2024-05-08 794/week @ 2024-05-15 677/week @ 2024-05-22 804/week @ 2024-05-29 634/week @ 2024-06-05 788/week @ 2024-06-12 685/week @ 2024-06-19 768/week @ 2024-06-26

每月下载量 2,978
用于 16 个 crate (14 个直接使用)

MIT 许可证

155KB
3.5K SLoC

Stylist

Run Tests & Publishing crates.io download docs.rs

Stylist 是为 WebAssembly 应用程序提供的 CSS-in-Rust 风格化解决方案。

这是从 css-in-rust 分支出来的。

安装

将以下内容添加到您的 Cargo.toml

stylist = "0.13"

用法

有关详细用法,请参阅 文档

Yew 集成

要为组件添加样式,您可以使用带有 styled_component 属性的 css! 宏。

use yew::prelude::*;
use stylist::yew::styled_component;

#[styled_component]
fn MyStyledComponent() -> Html {
    html! {<div class={css!("color: red;")}>{"Hello World!"}</div>}
}

独立

要创建样式表,您可以使用 style!

use stylist::style;

let style = style!(
   // A CSS string literal
   r#"
       background-color: red;

       .nested {
           background-color: blue;
           width: 100px
       }
   "#
).expect("Failed to mount style");

// stylist-uSu9NZZu
println!("{}", style.get_class_name());

运行时样式

如果您想要在运行时将字符串解析为样式,您可以使用 Style::new

use stylist::Style;

let style_str = r#"
    background-color: red;

    .nested {
        background-color: blue;
        width: 100px
    }
"#;

let style = Style::new(style_str).expect("Failed to create style");

// stylist-uSu9NZZu
println!("{}", style.get_class_name());

主题化

有使用 Yew 上下文 API 的主题化示例。

依赖项

~7–11MB
~209K SLoC