@@ -354,7 +354,7 @@ pub fn short_to_long(property: &str) -> String {
354354static F_SPACE_RE : Lazy < Regex > = Lazy :: new ( || Regex :: new ( r"\s*,\s*" ) . unwrap ( ) ) ;
355355static COLOR_HASH : Lazy < Regex > = Lazy :: new ( || Regex :: new ( r"#([0-9a-zA-Z]+)" ) . unwrap ( ) ) ;
356356static ZERO_RE : Lazy < Regex > =
357- Lazy :: new ( || Regex :: new ( r"(^|\s) 0(px|em|rem|vh|vw|%|dvh|dvw)" ) . unwrap ( ) ) ;
357+ Lazy :: new ( || Regex :: new ( r"(^|\s|\(|,)-? 0(px|em|rem|vh|vw|%|dvh|dvw)" ) . unwrap ( ) ) ;
358358
359359fn optimize_color ( value : & str ) -> String {
360360 let mut ret = value. to_string ( ) . to_uppercase ( ) ;
@@ -543,6 +543,19 @@ mod tests {
543543 assert_eq ! ( optimize_value( "0rem 0rem" ) , "0 0" ) ;
544544 assert_eq ! ( optimize_value( "0vh 0vh" ) , "0 0" ) ;
545545 assert_eq ! ( optimize_value( "0vw 0vw" ) , "0 0" ) ;
546+ assert_eq ! ( optimize_value( "-0vw -0vw" ) , "0 0" ) ;
547+ assert_eq ! ( optimize_value( "scale(0px)" ) , "scale(0)" ) ;
548+ assert_eq ! ( optimize_value( "scale(-0px)" ) , "scale(0)" ) ;
549+ assert_eq ! ( optimize_value( "translate(0px)" ) , "translate(0)" ) ;
550+ assert_eq ! ( optimize_value( "translate(-0px,0px)" ) , "translate(0,0)" ) ;
551+ assert_eq ! ( optimize_value( "translate(-0px, 0px)" ) , "translate(0,0)" ) ;
552+ assert_eq ! ( optimize_value( "translate(0px, 0px)" ) , "translate(0,0)" ) ;
553+ assert_eq ! ( optimize_value( "translate(0px, 0px)" ) , "translate(0,0)" ) ;
554+ assert_eq ! ( optimize_value( "translate(10px, 0px)" ) , "translate(10px,0)" ) ;
555+ assert_eq ! (
556+ optimize_value( "translateX(0px) translateY(0px)" ) ,
557+ "translateX(0) translateY(0)"
558+ ) ;
546559 }
547560
548561 #[ test]
0 commit comments