#web-apps #css #scoped-css #module #name #class #animation

css_mod

CSS Modules实现,适用于Rust Web应用程序

6个版本

0.1.5 2022年5月18日
0.1.4 2022年4月1日
0.1.3 2022年3月31日

#4 in #scoped-css

MIT 许可协议

36KB
916 代码行(不含注释)

css_mod

ci crate rustc version

CSS Modules 实现适用于Rust Web应用程序

CSS Module 是一种CSS文件,其中所有类名和动画名默认都使用局部作用域。

特性

这是一个目前不完整的 CSS Modules 规范实现,因为它只支持关键特性。

  • 名称的局部作用域
    • 动画
    • 网格线/区域
    • @计数器-样式
  • :local() / :global()
  • 组合
  • url() / @import

使用方法

  1. 将此crate作为常规和构建依赖项添加

    # Cargo.toml
    
    [dependencies]
    css_mod = "0.1.0"
    
    [build-dependencies]
    css_mod = "0.1.0"
    
  2. 创建构建脚本并调用编译器

    // build.rs
    
    fn main() {
        css_mod::Compiler::new()
            .add_modules("src/**/*.css").unwrap()
            .compile("assets/app.css").unwrap();
    }
    
  3. 在程序执行早期某处调用init

    // src/main.rs
    
    fn main() {
        css_mod::init!();
    }
    
  4. 最后获取CSS模块的名称映射

    // src/my-component.rs
    
    let css = css_mod::get!("my-component.css");
    let global_class_name = css["local-class-name"]; // my-component__local-class-name__0
    

示例

请查看示例目录。

依赖项

~2.6–4MB
~76K SLoC