encre_css/plugins/transform/
mod.rs1pub mod rotate;
3pub mod scale;
4pub mod skew;
5pub mod transform_origin;
6pub mod transform_type;
7pub mod translate;
8
9const CSS_TRANSFORM: &str = "transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));";
10
11#[cfg(test)]
12mod tests {
13 use crate::{generate, utils::testing::base_config};
14
15 use pretty_assertions::assert_eq;
16
17 #[test]
18 fn rotate() {
19 assert_eq!(generate(["rotate-20"], &base_config()), ".rotate-20 {
20 --en-rotate: 20deg;
21 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
22}");
23 assert_eq!(
24 generate(["rotate-[1.25turn]"], &base_config()),
25 r".rotate-\[1\.25turn\] {
26 --en-rotate: 1.25turn;
27 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
28}"
29 );
30 }
31
32 #[test]
33 fn scale() {
34 assert_eq!(generate(["scale-150"], &base_config()), ".scale-150 {
35 --en-scale-x: 1.5;
36 --en-scale-y: 1.5;
37 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
38}");
39 assert_eq!(generate(["scale-x-20"], &base_config()), ".scale-x-20 {
40 --en-scale-x: 0.2;
41 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
42}");
43 assert_eq!(generate(["scale-y-45"], &base_config()), ".scale-y-45 {
44 --en-scale-y: 0.45;
45 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
46}");
47 }
48
49 #[test]
50 fn skew() {
51 assert_eq!(generate(["skew-x-20"], &base_config()), ".skew-x-20 {
52 --en-skew-x: 20deg;
53 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
54}");
55 assert_eq!(generate(["skew-y-20"], &base_config()), ".skew-y-20 {
56 --en-skew-y: 20deg;
57 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
58}");
59 assert_eq!(
60 generate(["skew-x-[1.25turn]"], &base_config()),
61 r".skew-x-\[1\.25turn\] {
62 --en-skew-x: 1.25turn;
63 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
64}"
65 );
66 assert_eq!(
67 generate(["skew-y-[1.25turn]"], &base_config()),
68 r".skew-y-\[1\.25turn\] {
69 --en-skew-y: 1.25turn;
70 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
71}"
72 );
73 }
74
75 #[test]
76 fn translate() {
77 assert_eq!(generate(["translate-x-20"], &base_config()), ".translate-x-20 {
78 --en-translate-x: 5rem;
79 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
80}");
81 assert_eq!(generate(["-translate-x-full"], &base_config()), ".-translate-x-full {
82 --en-translate-x: -100%;
83 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
84}");
85 assert_eq!(generate(["-translate-x-20"], &base_config()), ".-translate-x-20 {
86 --en-translate-x: -5rem;
87 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
88}");
89 assert_eq!(generate(["translate-y-20"], &base_config()), ".translate-y-20 {
90 --en-translate-y: 5rem;
91 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
92}");
93 assert_eq!(generate(["translate-x-auto"], &base_config()), ".translate-x-auto {
94 --en-translate-x: auto;
95 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
96}");
97 assert_eq!(generate(["translate-y-full"], &base_config()), ".translate-y-full {
98 --en-translate-y: 100%;
99 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
100}");
101 assert_eq!(
102 generate(["translate-x-[1.25%]"], &base_config()),
103 r".translate-x-\[1\.25\%\] {
104 --en-translate-x: 1.25%;
105 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
106}"
107 );
108 assert_eq!(
109 generate(["translate-y-[10px]"], &base_config()),
110 r".translate-y-\[10px\] {
111 --en-translate-y: 10px;
112 transform: translate(var(--en-translate-x), var(--en-translate-y)) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
113}"
114 );
115 }
116
117 #[test]
118 fn transform_origin() {
119 assert_eq!(
120 generate(["origin-center"], &base_config()),
121 ".origin-center {
122 transform-origin: center;
123}"
124 );
125 assert_eq!(
126 generate(["origin-[bottom_right_60px]"], &base_config()),
127 r".origin-\[bottom_right_60px\] {
128 transform-origin: bottom right 60px;
129}"
130 );
131 assert_eq!(
132 generate(["origin-[-100%_40%]"], &base_config()),
133 r".origin-\[-100\%_40\%\] {
134 transform-origin: -100% 40%;
135}"
136 );
137 }
138
139 #[test]
140 fn transform_type() {
141 assert_eq!(generate(["transform-gpu"], &base_config()), ".transform-gpu {
142 transform: translate3d(var(--en-translate-x), var(--en-translate-y), 0) rotate(var(--en-rotate)) skewX(var(--en-skew-x)) skewY(var(--en-skew-y)) scaleX(var(--en-scale-x)) scaleY(var(--en-scale-y));
143}");
144 assert_eq!(
145 generate(["transform-none"], &base_config()),
146 ".transform-none {
147 transform: none;
148}"
149 );
150 }
151}