| Crates.io | clsx-r |
| lib.rs | clsx-r |
| version | 0.1.0 |
| created_at | 2024-12-27 15:29:56.227524+00 |
| updated_at | 2024-12-27 15:29:56.227524+00 |
| description | A Rust macro utility for conditionally constructing CSS class names. Inspired by JavaScript's clsx. |
| homepage | |
| repository | https://github.com/chibuzoro/clsx-r |
| max_upload_size | |
| id | 1496463 |
| size | 7,790 |
A Rust macro utility for conditionally constructing strings, primarily used for CSS class names. Inspired by the JavaScript clsx package.
Add this to your Cargo.toml:
[dependencies]
clsx-r = "0.1.0"
use clsx_r::clsx;
fn main() {
// Basic usage
let classes = clsx!("foo", "bar"); // => "foo bar"
// With conditions
let is_active = true;
let is_disabled = false;
let classes = clsx!(
"btn",
"primary",
"active" => is_active,
"disabled" => is_disabled
); // => "btn primary active"
// With dynamic values
let dynamic_class = "special";
let classes = clsx!(
"base",
dynamic_class,
"highlighted" => true
); // => "base special highlighted"
}
The clsx! macro accepts:
Simple string literals or expressions:
clsx!("class1", "class2")
Conditional classes using the => syntax:
clsx!("class1" => condition, "class2" => other_condition)
Mixed usage:
clsx!("static", dynamic_var, "conditional" => condition)
MIT License
Contributions are welcome! Please feel free to submit a Pull Request.