@@ -375,6 +375,22 @@ pub fn optimize_value(value: &str) -> String {
375375 if ret. contains ( "0" ) {
376376 ret = ZERO_RE . replace_all ( & ret, "${1}0" ) . to_string ( ) ;
377377 }
378+ // remove ; from dynamic value
379+ for str_symbol in [ "" , "`" , "\" " , "'" ] {
380+ if ret. ends_with ( & format ! ( ";{}" , str_symbol) ) {
381+ ret = format ! (
382+ "{}{}" ,
383+ ret[ ..ret. len( ) - str_symbol. len( ) - 1 ] . trim_end_matches( ';' ) ,
384+ str_symbol
385+ ) ;
386+ } else if ret. ends_with ( & format ! ( ";{})" , str_symbol) ) {
387+ ret = format ! (
388+ "{}{})" ,
389+ ret[ ..ret. len( ) - str_symbol. len( ) - 2 ] . trim_end_matches( ';' ) ,
390+ str_symbol
391+ ) ;
392+ }
393+ }
378394 ret
379395}
380396
@@ -534,12 +550,24 @@ mod tests {
534550 assert_eq ! ( optimize_value( "-0vw -0vw" ) , "0 0" ) ;
535551 assert_eq ! ( optimize_value( "scale(0px)" ) , "scale(0)" ) ;
536552 assert_eq ! ( optimize_value( "scale(-0px)" ) , "scale(0)" ) ;
553+ assert_eq ! ( optimize_value( "scale(-0px);" ) , "scale(0)" ) ;
554+ assert_eq ! ( optimize_value( "red;" ) , "red" ) ;
537555 assert_eq ! ( optimize_value( "translate(0px)" ) , "translate(0)" ) ;
538556 assert_eq ! ( optimize_value( "translate(-0px,0px)" ) , "translate(0,0)" ) ;
539557 assert_eq ! ( optimize_value( "translate(-0px, 0px)" ) , "translate(0,0)" ) ;
540558 assert_eq ! ( optimize_value( "translate(0px, 0px)" ) , "translate(0,0)" ) ;
541559 assert_eq ! ( optimize_value( "translate(0px, 0px)" ) , "translate(0,0)" ) ;
542560 assert_eq ! ( optimize_value( "translate(10px, 0px)" ) , "translate(10px,0)" ) ;
561+ assert_eq ! ( optimize_value( "\" red\" " ) , "\" red\" " ) ;
562+ assert_eq ! ( optimize_value( "'red'" ) , "'red'" ) ;
563+ assert_eq ! ( optimize_value( "`red`" ) , "`red`" ) ;
564+ assert_eq ! ( optimize_value( "\" red;\" " ) , "\" red\" " ) ;
565+ assert_eq ! ( optimize_value( "'red;'" ) , "'red'" ) ;
566+ assert_eq ! ( optimize_value( "`red;`" ) , "`red`" ) ;
567+ assert_eq ! ( optimize_value( "(\" red;\" )" ) , "(\" red\" )" ) ;
568+ assert_eq ! ( optimize_value( "(`red;`)" ) , "(`red`)" ) ;
569+ assert_eq ! ( optimize_value( "('red;')" ) , "('red')" ) ;
570+ assert_eq ! ( optimize_value( "('red') + 'blue;'" ) , "('red') + 'blue'" ) ;
543571 assert_eq ! (
544572 optimize_value( "translateX(0px) translateY(0px)" ) ,
545573 "translateX(0) translateY(0)"
@@ -578,6 +606,10 @@ mod tests {
578606 sheet_to_classname( "background" , 0 , Some ( "red" ) , None , None ) ,
579607 sheet_to_classname( " background " , 0 , Some ( " red " ) , None , None ) ,
580608 ) ;
609+ assert_eq ! (
610+ sheet_to_classname( "background" , 0 , Some ( "red" ) , None , None ) ,
611+ sheet_to_classname( " background " , 0 , Some ( "red;" ) , None , None ) ,
612+ ) ;
581613 assert_eq ! (
582614 sheet_to_classname( "background" , 0 , Some ( "rgba(255, 0, 0, 0.5)" ) , None , None ) ,
583615 sheet_to_classname( "background" , 0 , Some ( "rgba(255,0,0,0.5)" ) , None , None ) ,
0 commit comments