tailwind_css_fixes/modules/layouts/placement/
inset.rs1use super::*;
2
3#[doc=include_str!("readme.md")]
4#[derive(Clone, Debug)]
5pub struct TailwindInset {
6 axis: AxisXY,
7 kind: UnitValue,
8}
9
10impl Display for TailwindInset {
11 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
12 self.kind.write_negative(f)?;
13 self.axis.write_xyn(f, "inset", &self.kind)
14 }
15}
16
17impl TailwindInstance for TailwindInset {
18 fn attributes(&self, _: &TailwindBuilder) -> CssAttributes {
19 let size = self.kind.get_properties_rem();
20 match self.axis {
21 AxisXY::X => css_attributes! {
22 "right" => &size,
23 "left" => &size,
24 },
25 AxisXY::Y => css_attributes! {
26 "top" => &size,
27 "bottom" => &size,
28 },
29 AxisXY::N => css_attributes! {
30 "top" => &size,
31 "right" => &size,
32 "bottom" => &size,
33 "left" => &size,
34 },
35 }
36 }
37}
38
39impl TailwindInset {
40 pub fn parse(pattern: &[&str], arbitrary: &TailwindArbitrary, negative: Negative) -> Result<Self> {
41 let (axis, rest) = AxisXY::split_xyn(pattern);
42 let kind = get_kind_px_full_auto_fract("inset", rest, arbitrary, negative)?;
43 Ok(Self { axis, kind })
44 }
45 pub fn check_valid(mode: &str) -> bool {
47 ["auto", "inherit", "initial", "revert", "unset"].contains(&mode)
48 }
49}