diff --git a/src/lib.rs b/src/lib.rs index f6bd0c77..5d16b5b2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -15090,6 +15090,70 @@ mod tests { ); } + #[test] + fn test_zero_translate3d() { + minify_test( + indoc! {" + .foo { + transform: translate3d(0, 0, 0); + } + "}, + ".foo{transform:translate(0)}", + ); + minify_test( + indoc! {" + .foo { + transform: translate3d(0px, -0%, 0em); + } + "}, + ".foo{transform:translate(0)}", + ); + minify_test( + indoc! {" + .foo { + transform: translate3d(0%, 0px, -0px); + } + "}, + ".foo{transform:translate(0%)}", + ); + minify_test( + indoc! {" + .foo { + transform: translate3d(calc(1px - 1px), 0, 0) rotate(30deg); + } + "}, + ".foo{transform:translate(0)rotate(30deg)}", + ); + minify_test( + indoc! {" + .foo { + -webkit-transform: translate3d(0, 0, 0); + } + "}, + ".foo{-webkit-transform:translate(0)}", + ); + minify_test( + indoc! {" + .foo { + transform: translate3d(0, 0, var(--z)); + } + "}, + ".foo{transform:translate3d(0, 0, var(--z))}", + ); + test( + indoc! {" + .foo { + transform: translate3d(0, 0, 0); + } + "}, + indoc! {" + .foo { + transform: translate3d(0, 0, 0); + } + "}, + ); + } + #[test] pub fn test_gradients() { property_range_test(&["clip-path"], &[("circle(-1px)", None), ("ellipse(1px -2%)", None)]); diff --git a/src/properties/transform.rs b/src/properties/transform.rs index 2b1f67f7..852c2ef8 100644 --- a/src/properties/transform.rs +++ b/src/properties/transform.rs @@ -1057,7 +1057,7 @@ impl ToCss for Transform { Ok(()) } Translate3d(x, y, z) => { - if dest.options().minify && !x.is_zero() && y.is_zero() && z.is_zero() { + if dest.options().minify && y.is_zero() && z.is_zero() { dest.write_str("translate(")?; x.to_css(dest)?; } else if dest.options().minify && x.is_zero() && !y.is_zero() && z.is_zero() {