6 releases
0.1.5 | May 18, 2022 |
---|---|
0.1.4 | Apr 1, 2022 |
0.1.3 | Mar 31, 2022 |
#4 in #scoped-css
36KB
916 lines
css_mod
CSS Modules implementation for Rust web applications
A CSS Module is a CSS file in which all class names and animation names are scoped locally by default.
Features
This is currently incomplete implementation of CSS Modules spec, as it only supports the vital features.
- Local scoping for names
- Classes
- Animations
- Grid lines/areas
-
@counter-style
-
:local()
/:global()
-
composes
-
url()
/@import
Usage
-
Add this crate as a regular and build dependency:
# Cargo.toml [dependencies] css_mod = "0.1.0" [build-dependencies] css_mod = "0.1.0"
-
Create build script and call compiler:
// build.rs fn main() { css_mod::Compiler::new() .add_modules("src/**/*.css").unwrap() .compile("assets/app.css").unwrap(); }
-
Call init somewhere early in program execution:
// src/main.rs fn main() { css_mod::init!(); }
-
Finally get name mapping for CSS module:
// 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
Examples
Look in the examples directory.
Dependencies
~2.6–3.5MB
~76K SLoC