tailwind_css_fixes/modules/transforms/scale/
mod.rs1use super::*;
2
3#[doc=include_str!("readme.md")]
4#[derive(Clone, Debug)]
5pub struct TailwindScale {
6 kind: NumericValue,
7 axis: AxisXY,
8}
9impl Display for TailwindScale {
10 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
11 self.kind.write_negative(f)?;
12 match self.axis {
13 AxisXY::N => write!(f, "scale-{}", self.kind),
14 AxisXY::X => write!(f, "scale-x-{}", self.kind),
15 AxisXY::Y => write!(f, "scale-y-{}", self.kind),
16 }
17 }
18}
19
20impl TailwindInstance for TailwindScale {
21 fn attributes(&self, _: &TailwindBuilder) -> CssAttributes {
22 let scale = self.kind.get_properties(|f| (f / 100.0).to_string());
23 let transform = match self.axis {
24 AxisXY::N => format!("scale({})", scale),
25 AxisXY::X => format!("scaleX({})", scale),
26 AxisXY::Y => format!("scaleY({})", scale),
27 };
28 css_attributes! {
29 "transform" => transform,
30 }
31 }
32}
33
34impl TailwindScale {
36 pub fn parse(pattern: &[&str], arbitrary: &TailwindArbitrary, negative: Negative) -> Result<Self> {
38 let (axis, rest) = AxisXY::split_xyn(pattern);
39 let kind = NumericValue::negative_parser("scale", |_| false)(rest, arbitrary, negative)?;
40 Ok(TailwindScale { kind, axis })
41 }
42}