cabin_tailwind/utilities/
shadow.rs1use std::fmt;
6
7use crate::Utility;
8
9pub struct BoxShadow(pub &'static str, pub &'static str);
10
11pub const SM: BoxShadow = BoxShadow(
12 "0 1px 2px 0 rgb(0 0 0 / .05)",
13 "0 1px 2px 0 var(--tw-shadow-color)",
14);
15
16pub const DEFAULT: BoxShadow = BoxShadow(
17 "0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1)",
18 "0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color)",
19);
20
21pub const MD: BoxShadow = BoxShadow(
22 "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
23 "0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color)",
24);
25
26pub const LG: BoxShadow = BoxShadow(
27 "0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)",
28 "0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color)",
29);
30
31pub const XL: BoxShadow = BoxShadow(
32 "0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1)",
33 "0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color)",
34);
35
36pub const XL2: BoxShadow = BoxShadow(
37 "0 25px 50px -12px rgb(0 0 0 / .25)",
38 "0 25px 50px -12px var(--tw-shadow-color)",
39);
40
41pub const INNER: BoxShadow = BoxShadow(
42 "inset 0 2px 4px 0 rgb(0 0 0 / .05)",
43 "inset 0 2px 4px 0 var(--tw-shadow-color)",
44);
45
46pub const NONE: BoxShadow = BoxShadow("0 0 #0000", "0 0 #0000");
47
48impl Utility for BoxShadow {
49 fn declarations(&self, f: &mut dyn fmt::Write) -> fmt::Result {
50 write!(f, "--tw-shadow: {};", self.0)?;
51 write!(f, "--tw-ring-shadow: {};", self.1)?;
52 write!(f, "box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);")?;
53 Ok(())
54 }
55}