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 match &self.axis {
12 AxisXY::N => self.kind.write_class_name(f, "scale-"),
13 AxisXY::X => self.kind.write_class_name(f, "scale-x-"),
14 AxisXY::Y => self.kind.write_class_name(f, "scale-y-"),
15 }
16 }
17}
18
19impl TailwindInstance for TailwindScale {
20 fn attributes(&self, _: &TailwindBuilder) -> CssAttributes {
21 let scale = self.kind.get_properties(|f| (f/100.0).to_string());
22 let transform = match self.axis {
23 AxisXY::N => format!("scale({})", scale),
24 AxisXY::X => format!("scaleX({})", scale),
25 AxisXY::Y => format!("scaleY({})", scale),
26 };
27 css_attributes! {
28 "transform" => transform,
29 }
30 }
31}
32
33impl TailwindScale {
35 pub fn parse(pattern: &[&str], arbitrary: &TailwindArbitrary, negative: Negative) -> Result<Self> {
37 let (axis, rest) = AxisXY::split_xyn(pattern);
38 let kind = NumericValue::negative_parser("scale", |_| false)(rest, arbitrary, negative)?;
39 Ok(TailwindScale { kind, axis })
40 }
41}