Skip to content

Commit 7d5e3bd

Browse files
committed
Add transform and transition SCSS utilities
Introduced new SCSS utility files for transform and transition properties, including classes for transform origin, scale, rotate, translate, skew, transform style, backface visibility, transition property, duration, delay, and basic animation. Updated the utilities index to forward the new modules.
1 parent 350a424 commit 7d5e3bd

File tree

3 files changed

+225
-0
lines changed

3 files changed

+225
-0
lines changed

assets/core/scss/utilities/_index.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@
44
@forward 'layout';
55
@forward 'sizing';
66
@forward 'spacing';
7+
@forward 'transform';
8+
@forward 'transition';
79
@forward 'zIndex';
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
// Transform Utilities
2+
// Utilities for transform properties
3+
4+
@use '../tokens' as *;
5+
@use '../mixins' as *;
6+
7+
// Transform origin utilities
8+
.tutor-origin-center {
9+
transform-origin: center;
10+
}
11+
12+
.tutor-origin-top {
13+
transform-origin: top;
14+
}
15+
16+
.tutor-origin-top-right {
17+
transform-origin: top right;
18+
}
19+
20+
.tutor-origin-right {
21+
transform-origin: right;
22+
}
23+
24+
.tutor-origin-bottom-right {
25+
transform-origin: bottom right;
26+
}
27+
28+
.tutor-origin-bottom {
29+
transform-origin: bottom;
30+
}
31+
32+
.tutor-origin-bottom-left {
33+
transform-origin: bottom left;
34+
}
35+
36+
.tutor-origin-left {
37+
transform-origin: left;
38+
}
39+
40+
.tutor-origin-top-left {
41+
transform-origin: top left;
42+
}
43+
44+
// Scale utilities
45+
$tutor-scale-values: (
46+
0: 0,
47+
50: 0.5,
48+
75: 0.75,
49+
90: 0.9,
50+
95: 0.95,
51+
100: 1,
52+
105: 1.05,
53+
110: 1.1,
54+
125: 1.25,
55+
150: 1.5,
56+
);
57+
58+
@each $key, $value in $tutor-scale-values {
59+
.tutor-scale-#{$key} {
60+
transform: scale($value);
61+
}
62+
63+
.tutor-scale-x-#{$key} {
64+
transform: scaleX($value);
65+
}
66+
67+
.tutor-scale-y-#{$key} {
68+
transform: scaleY($value);
69+
}
70+
}
71+
72+
// Rotate utilities
73+
$tutor-rotate-values: (
74+
0: 0deg,
75+
45: 45deg,
76+
90: 90deg,
77+
180: 180deg,
78+
270: 270deg,
79+
);
80+
81+
@each $key, $value in $tutor-rotate-values {
82+
.tutor-rotate-#{$key} {
83+
transform: rotate($value);
84+
}
85+
}
86+
87+
@each $key, $value in $tutor-spacing {
88+
.tutor-translate-x-#{$key} {
89+
transform: translateX($value);
90+
}
91+
92+
.tutor-translate-y-#{$key} {
93+
transform: translateY($value);
94+
}
95+
}
96+
97+
// Skew utilities
98+
$tutor-skew-values: (
99+
0: 0deg,
100+
1: 1deg,
101+
2: 2deg,
102+
3: 3deg,
103+
6: 6deg,
104+
12: 12deg,
105+
);
106+
107+
@each $key, $value in $tutor-skew-values {
108+
.tutor-skew-x-#{$key} {
109+
transform: skewX($value);
110+
}
111+
112+
.tutor-skew-y-#{$key} {
113+
transform: skewY($value);
114+
}
115+
}
116+
117+
// Transform style utilities
118+
.tutor-transform-flat {
119+
transform-style: flat;
120+
}
121+
122+
.tutor-transform-3d {
123+
transform-style: preserve-3d;
124+
}
125+
126+
// Backface visibility utilities
127+
.tutor-backface-visible {
128+
backface-visibility: visible;
129+
}
130+
131+
.tutor-backface-hidden {
132+
backface-visibility: hidden;
133+
}
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
// Transition Utilities
2+
// Utilities for transition properties
3+
4+
@use '../tokens' as *;
5+
@use '../mixins' as *;
6+
7+
// Transition property utilities
8+
.tutor-transition-none {
9+
transition-property: none;
10+
}
11+
12+
.tutor-transition-all {
13+
@include tutor-transition(all);
14+
}
15+
16+
.tutor-transition {
17+
@include tutor-transition((background-color, border-color, color, fill, stroke, opacity, box-shadow, transform));
18+
}
19+
20+
.tutor-transition-colors {
21+
@include tutor-transition((background-color, border-color, color, fill, stroke));
22+
}
23+
24+
.tutor-transition-opacity {
25+
@include tutor-transition(opacity);
26+
}
27+
28+
.tutor-transition-shadow {
29+
@include tutor-transition(box-shadow);
30+
}
31+
32+
.tutor-transition-transform {
33+
@include tutor-transition(transform);
34+
}
35+
36+
// Transition duration utilities
37+
$tutor-duration-values: (
38+
75: 75ms,
39+
100: 100ms,
40+
150: 150ms,
41+
200: 200ms,
42+
300: 300ms,
43+
500: 500ms,
44+
700: 700ms,
45+
1000: 1000ms,
46+
);
47+
48+
@each $key, $value in $tutor-duration-values {
49+
.tutor-duration-#{$key} {
50+
transition-duration: $value;
51+
}
52+
}
53+
54+
// Transition delay utilities
55+
$tutor-delay-values: (
56+
0: 0ms,
57+
75: 75ms,
58+
100: 100ms,
59+
150: 150ms,
60+
200: 200ms,
61+
300: 300ms,
62+
500: 500ms,
63+
700: 700ms,
64+
1000: 1000ms,
65+
);
66+
67+
@each $key, $value in $tutor-delay-values {
68+
.tutor-delay-#{$key} {
69+
transition-delay: $value;
70+
}
71+
}
72+
73+
// Animation utilities
74+
.tutor-animate-none {
75+
animation: none;
76+
}
77+
78+
.tutor-animate-spin {
79+
animation: tutor-spin 1s linear infinite;
80+
}
81+
82+
// Keyframe definitions
83+
@keyframes tutor-spin {
84+
from {
85+
transform: rotate(0deg);
86+
}
87+
to {
88+
transform: rotate(360deg);
89+
}
90+
}

0 commit comments

Comments
 (0)