CSS with classes!
Yew does not natively provide a CSS-in-Rust solution but helps with styling by providing
programmatic ways to interact with the HTML class
attribute.
Classes
The classes!
macro and associated Classes
struct simplify the use of HTML classes:
- Literal
- Multiple
- String
- Optional
- Vector
- Slice
use yew::{classes, html};
html! {
<div class={classes!("container")}></div>
};
use yew::{classes, html};
html! {
<div class={classes!("class-1", "class-2")}></div>
};
use yew::{classes, html};
html! {
<div class={classes!(String::from("class-1 class-2"))}></div>
};
use yew::{classes, html};
html! {
<div class={classes!(Some("class"))} />
};
use yew::{classes, html};
html! {
<div class={classes!(vec!["class-1", "class-2"])}></div>
};
use yew::{classes, html};
html! {
<div class={classes!(["class-1", "class-2"].as_ref())}></div>
};
We will expand upon this concept in more CSS.
Inline Styles
Currently Yew does not provide any special help with inline styles specified via the styles
attribute,
but you can use it like any other HTML attribute:
use yew::{classes, html};
html! {
<div style="color: red;"></div>
};
We will expand upon this concept in more CSS.