yew_bs/components/
opacity.rs1use yew::prelude::*;
2#[derive(Clone, Copy, PartialEq, Debug)]
3pub enum OpacityVariant {
4 Opacity0,
5 Opacity25,
6 Opacity50,
7 Opacity75,
8 Opacity100,
9}
10impl OpacityVariant {
11 pub fn as_str(&self) -> &'static str {
12 match self {
13 OpacityVariant::Opacity0 => "opacity-0",
14 OpacityVariant::Opacity25 => "opacity-25",
15 OpacityVariant::Opacity50 => "opacity-50",
16 OpacityVariant::Opacity75 => "opacity-75",
17 OpacityVariant::Opacity100 => "opacity-100",
18 }
19 }
20}
21#[derive(Properties, PartialEq)]
23pub struct OpacityProps {
24 pub opacity: OpacityVariant,
26 #[prop_or_default]
28 pub children: Children,
29 #[prop_or_default]
31 pub class: Option<AttrValue>,
32}
33#[function_component(Opacity)]
37pub fn opacity(props: &OpacityProps) -> Html {
38 let mut classes = Classes::new();
39 classes.push(props.opacity.as_str());
40 if let Some(custom_class) = &props.class {
41 classes.push(custom_class.to_string());
42 }
43 html! {
44 < div class = { classes } > { for props.children.iter() } </ div >
45 }
46}