zenkit-css 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +182 -0
  2. package/dist/zenkit.css +33721 -0
  3. package/dist/zenkit.css.map +1 -0
  4. package/dist/zenkit.min.css +1 -0
  5. package/dist/zenkit.min.css.map +1 -0
  6. package/package.json +41 -0
  7. package/scss/abstracts/_functions.scss +174 -0
  8. package/scss/abstracts/_mixins.scss +272 -0
  9. package/scss/abstracts/_variables.scss +216 -0
  10. package/scss/base/_reset.scss +130 -0
  11. package/scss/base/_root.scss +194 -0
  12. package/scss/base/_typography.scss +271 -0
  13. package/scss/components/_accordion.scss +200 -0
  14. package/scss/components/_affix.scss +278 -0
  15. package/scss/components/_alerts.scss +175 -0
  16. package/scss/components/_anchor.scss +438 -0
  17. package/scss/components/_autocomplete.scss +530 -0
  18. package/scss/components/_avatar.scss +256 -0
  19. package/scss/components/_backtop.scss +329 -0
  20. package/scss/components/_badges.scss +266 -0
  21. package/scss/components/_breadcrumb.scss +102 -0
  22. package/scss/components/_buttons.scss +340 -0
  23. package/scss/components/_calendar.scss +787 -0
  24. package/scss/components/_cards.scss +265 -0
  25. package/scss/components/_carousel.scss +306 -0
  26. package/scss/components/_cascader.scss +510 -0
  27. package/scss/components/_close-button.scss +106 -0
  28. package/scss/components/_colorpicker.scss +593 -0
  29. package/scss/components/_datepicker.scss +625 -0
  30. package/scss/components/_descriptions.scss +453 -0
  31. package/scss/components/_divider.scss +253 -0
  32. package/scss/components/_drawer.scss +485 -0
  33. package/scss/components/_dropdown.scss +323 -0
  34. package/scss/components/_empty.scss +321 -0
  35. package/scss/components/_floatbutton.scss +400 -0
  36. package/scss/components/_forms.scss +753 -0
  37. package/scss/components/_image.scss +497 -0
  38. package/scss/components/_inputnumber.scss +475 -0
  39. package/scss/components/_layout.scss +538 -0
  40. package/scss/components/_list-group.scss +227 -0
  41. package/scss/components/_list.scss +528 -0
  42. package/scss/components/_mentions.scss +479 -0
  43. package/scss/components/_menu.scss +510 -0
  44. package/scss/components/_message.scss +412 -0
  45. package/scss/components/_modal.scss +304 -0
  46. package/scss/components/_navbar.scss +329 -0
  47. package/scss/components/_notification.scss +499 -0
  48. package/scss/components/_offcanvas.scss +274 -0
  49. package/scss/components/_pagination.scss +176 -0
  50. package/scss/components/_placeholder.scss +237 -0
  51. package/scss/components/_popconfirm.scss +393 -0
  52. package/scss/components/_popover.scss +298 -0
  53. package/scss/components/_progress.scss +225 -0
  54. package/scss/components/_rating.scss +314 -0
  55. package/scss/components/_result.scss +383 -0
  56. package/scss/components/_segmented.scss +441 -0
  57. package/scss/components/_select.scss +412 -0
  58. package/scss/components/_spinners.scss +229 -0
  59. package/scss/components/_statistic.scss +336 -0
  60. package/scss/components/_steps.scss +343 -0
  61. package/scss/components/_tabs.scss +239 -0
  62. package/scss/components/_tag.scss +317 -0
  63. package/scss/components/_timeline.scss +341 -0
  64. package/scss/components/_timepicker.scss +468 -0
  65. package/scss/components/_toast.scss +279 -0
  66. package/scss/components/_tooltip.scss +305 -0
  67. package/scss/components/_tour.scss +488 -0
  68. package/scss/components/_transfer.scss +556 -0
  69. package/scss/components/_tree.scss +518 -0
  70. package/scss/components/_treeselect.scss +531 -0
  71. package/scss/components/_upload.scss +510 -0
  72. package/scss/components/_watermark.scss +314 -0
  73. package/scss/content/_figures.scss +38 -0
  74. package/scss/content/_images.scss +138 -0
  75. package/scss/content/_tables.scss +232 -0
  76. package/scss/layout/_container.scss +71 -0
  77. package/scss/layout/_grid.scss +258 -0
  78. package/scss/utilities/_animations.scss +494 -0
  79. package/scss/utilities/_borders.scss +246 -0
  80. package/scss/utilities/_colors.scss +194 -0
  81. package/scss/utilities/_display.scss +263 -0
  82. package/scss/utilities/_filters.scss +328 -0
  83. package/scss/utilities/_flex.scss +178 -0
  84. package/scss/utilities/_float.scss +70 -0
  85. package/scss/utilities/_grid-utils.scss +151 -0
  86. package/scss/utilities/_helpers.scss +479 -0
  87. package/scss/utilities/_interactions.scss +249 -0
  88. package/scss/utilities/_overflow.scss +204 -0
  89. package/scss/utilities/_position.scss +245 -0
  90. package/scss/utilities/_shadows.scss +67 -0
  91. package/scss/utilities/_sizing.scss +217 -0
  92. package/scss/utilities/_spacing.scss +207 -0
  93. package/scss/utilities/_text.scss +237 -0
  94. package/scss/utilities/_transforms.scss +368 -0
  95. package/scss/utilities/_visibility.scss +251 -0
  96. package/scss/zenkit.scss +121 -0
@@ -0,0 +1,237 @@
1
+ // ========================================
2
+ // ZenKit - Text Utilities
3
+ // ========================================
4
+
5
+ @use '../abstracts/variables' as *;
6
+ @use '../abstracts/mixins' as *;
7
+
8
+ // ----------------------------------------
9
+ // Font Family
10
+ // ----------------------------------------
11
+ .font-sans { font-family: var(--font-sans); }
12
+ .font-mono { font-family: var(--font-mono); }
13
+
14
+ // ----------------------------------------
15
+ // Font Size
16
+ // ----------------------------------------
17
+ .text-xs { font-size: var(--text-xs); line-height: 1rem; }
18
+ .text-sm { font-size: var(--text-sm); line-height: 1.25rem; }
19
+ .text-base { font-size: var(--text-base); line-height: 1.5rem; }
20
+ .text-lg { font-size: var(--text-lg); line-height: 1.75rem; }
21
+ .text-xl { font-size: var(--text-xl); line-height: 1.75rem; }
22
+ .text-2xl { font-size: var(--text-2xl); line-height: 2rem; }
23
+ .text-3xl { font-size: var(--text-3xl); line-height: 2.25rem; }
24
+ .text-4xl { font-size: var(--text-4xl); line-height: 2.5rem; }
25
+ .text-5xl { font-size: var(--text-5xl); line-height: 1; }
26
+
27
+ // ----------------------------------------
28
+ // Font Weight
29
+ // ----------------------------------------
30
+ .font-light { font-weight: $font-weight-light; }
31
+ .font-normal { font-weight: $font-weight-normal; }
32
+ .font-medium { font-weight: $font-weight-medium; }
33
+ .font-semibold { font-weight: $font-weight-semibold; }
34
+ .font-bold { font-weight: $font-weight-bold; }
35
+
36
+ // ----------------------------------------
37
+ // Font Style
38
+ // ----------------------------------------
39
+ .italic { font-style: italic; }
40
+ .not-italic { font-style: normal; }
41
+
42
+ // ----------------------------------------
43
+ // Text Alignment
44
+ // ----------------------------------------
45
+ .text-left { text-align: left; }
46
+ .text-center { text-align: center; }
47
+ .text-right { text-align: right; }
48
+ .text-justify { text-align: justify; }
49
+ .text-start { text-align: start; }
50
+ .text-end { text-align: end; }
51
+
52
+ // ----------------------------------------
53
+ // Text Decoration
54
+ // ----------------------------------------
55
+ .underline { text-decoration-line: underline; }
56
+ .overline { text-decoration-line: overline; }
57
+ .line-through { text-decoration-line: line-through; }
58
+ .no-underline { text-decoration-line: none; }
59
+
60
+ .decoration-solid { text-decoration-style: solid; }
61
+ .decoration-double { text-decoration-style: double; }
62
+ .decoration-dotted { text-decoration-style: dotted; }
63
+ .decoration-dashed { text-decoration-style: dashed; }
64
+ .decoration-wavy { text-decoration-style: wavy; }
65
+
66
+ // ----------------------------------------
67
+ // Text Transform
68
+ // ----------------------------------------
69
+ .uppercase { text-transform: uppercase; }
70
+ .lowercase { text-transform: lowercase; }
71
+ .capitalize { text-transform: capitalize; }
72
+ .normal-case { text-transform: none; }
73
+
74
+ // ----------------------------------------
75
+ // Text Overflow
76
+ // ----------------------------------------
77
+ .truncate {
78
+ overflow: hidden;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ }
82
+
83
+ .text-ellipsis { text-overflow: ellipsis; }
84
+ .text-clip { text-overflow: clip; }
85
+
86
+ // ----------------------------------------
87
+ // Line Clamp
88
+ // ----------------------------------------
89
+ .line-clamp-1 {
90
+ display: -webkit-box;
91
+ -webkit-line-clamp: 1;
92
+ -webkit-box-orient: vertical;
93
+ overflow: hidden;
94
+ }
95
+
96
+ .line-clamp-2 {
97
+ display: -webkit-box;
98
+ -webkit-line-clamp: 2;
99
+ -webkit-box-orient: vertical;
100
+ overflow: hidden;
101
+ }
102
+
103
+ .line-clamp-3 {
104
+ display: -webkit-box;
105
+ -webkit-line-clamp: 3;
106
+ -webkit-box-orient: vertical;
107
+ overflow: hidden;
108
+ }
109
+
110
+ .line-clamp-4 {
111
+ display: -webkit-box;
112
+ -webkit-line-clamp: 4;
113
+ -webkit-box-orient: vertical;
114
+ overflow: hidden;
115
+ }
116
+
117
+ .line-clamp-none {
118
+ display: block;
119
+ -webkit-line-clamp: unset;
120
+ -webkit-box-orient: unset;
121
+ overflow: visible;
122
+ }
123
+
124
+ // ----------------------------------------
125
+ // Line Height
126
+ // ----------------------------------------
127
+ .leading-none { line-height: $line-height-none; }
128
+ .leading-tight { line-height: $line-height-tight; }
129
+ .leading-snug { line-height: $line-height-snug; }
130
+ .leading-normal { line-height: $line-height-normal; }
131
+ .leading-relaxed { line-height: $line-height-relaxed; }
132
+ .leading-loose { line-height: $line-height-loose; }
133
+
134
+ // ----------------------------------------
135
+ // Letter Spacing
136
+ // ----------------------------------------
137
+ .tracking-tighter { letter-spacing: -0.05em; }
138
+ .tracking-tight { letter-spacing: -0.025em; }
139
+ .tracking-normal { letter-spacing: 0; }
140
+ .tracking-wide { letter-spacing: 0.025em; }
141
+ .tracking-wider { letter-spacing: 0.05em; }
142
+ .tracking-widest { letter-spacing: 0.1em; }
143
+
144
+ // ----------------------------------------
145
+ // Whitespace
146
+ // ----------------------------------------
147
+ .whitespace-normal { white-space: normal; }
148
+ .whitespace-nowrap { white-space: nowrap; }
149
+ .whitespace-pre { white-space: pre; }
150
+ .whitespace-pre-line { white-space: pre-line; }
151
+ .whitespace-pre-wrap { white-space: pre-wrap; }
152
+ .whitespace-break-spaces { white-space: break-spaces; }
153
+
154
+ // ----------------------------------------
155
+ // Word Break
156
+ // ----------------------------------------
157
+ .break-normal {
158
+ overflow-wrap: normal;
159
+ word-break: normal;
160
+ }
161
+
162
+ .break-words {
163
+ overflow-wrap: break-word;
164
+ }
165
+
166
+ .break-all {
167
+ word-break: break-all;
168
+ }
169
+
170
+ .break-keep {
171
+ word-break: keep-all;
172
+ }
173
+
174
+ // ----------------------------------------
175
+ // Vertical Alignment
176
+ // ----------------------------------------
177
+ .align-baseline { vertical-align: baseline; }
178
+ .align-top { vertical-align: top; }
179
+ .align-middle { vertical-align: middle; }
180
+ .align-bottom { vertical-align: bottom; }
181
+ .align-text-top { vertical-align: text-top; }
182
+ .align-text-bottom { vertical-align: text-bottom; }
183
+ .align-sub { vertical-align: sub; }
184
+ .align-super { vertical-align: super; }
185
+
186
+ // ----------------------------------------
187
+ // List Style
188
+ // ----------------------------------------
189
+ .list-none { list-style-type: none; }
190
+ .list-disc { list-style-type: disc; }
191
+ .list-decimal { list-style-type: decimal; }
192
+ .list-inside { list-style-position: inside; }
193
+ .list-outside { list-style-position: outside; }
194
+
195
+ // ----------------------------------------
196
+ // Responsive Text
197
+ // ----------------------------------------
198
+ @include sm {
199
+ .sm\:text-xs { font-size: var(--text-xs); }
200
+ .sm\:text-sm { font-size: var(--text-sm); }
201
+ .sm\:text-base { font-size: var(--text-base); }
202
+ .sm\:text-lg { font-size: var(--text-lg); }
203
+ .sm\:text-xl { font-size: var(--text-xl); }
204
+ .sm\:text-2xl { font-size: var(--text-2xl); }
205
+ .sm\:text-left { text-align: left; }
206
+ .sm\:text-center { text-align: center; }
207
+ .sm\:text-right { text-align: right; }
208
+ }
209
+
210
+ @include md {
211
+ .md\:text-xs { font-size: var(--text-xs); }
212
+ .md\:text-sm { font-size: var(--text-sm); }
213
+ .md\:text-base { font-size: var(--text-base); }
214
+ .md\:text-lg { font-size: var(--text-lg); }
215
+ .md\:text-xl { font-size: var(--text-xl); }
216
+ .md\:text-2xl { font-size: var(--text-2xl); }
217
+ .md\:text-3xl { font-size: var(--text-3xl); }
218
+ .md\:text-4xl { font-size: var(--text-4xl); }
219
+ .md\:text-left { text-align: left; }
220
+ .md\:text-center { text-align: center; }
221
+ .md\:text-right { text-align: right; }
222
+ }
223
+
224
+ @include lg {
225
+ .lg\:text-xs { font-size: var(--text-xs); }
226
+ .lg\:text-sm { font-size: var(--text-sm); }
227
+ .lg\:text-base { font-size: var(--text-base); }
228
+ .lg\:text-lg { font-size: var(--text-lg); }
229
+ .lg\:text-xl { font-size: var(--text-xl); }
230
+ .lg\:text-2xl { font-size: var(--text-2xl); }
231
+ .lg\:text-3xl { font-size: var(--text-3xl); }
232
+ .lg\:text-4xl { font-size: var(--text-4xl); }
233
+ .lg\:text-5xl { font-size: var(--text-5xl); }
234
+ .lg\:text-left { text-align: left; }
235
+ .lg\:text-center { text-align: center; }
236
+ .lg\:text-right { text-align: right; }
237
+ }
@@ -0,0 +1,368 @@
1
+ // ========================================
2
+ // ZenKit - Transform Utilities
3
+ // Rotate, scale, skew, translate, and transform utilities
4
+ // ========================================
5
+
6
+ @use '../abstracts/variables' as *;
7
+
8
+ // ----------------------------------------
9
+ // Transform Origin
10
+ // ----------------------------------------
11
+ .origin-center { transform-origin: center; }
12
+ .origin-top { transform-origin: top; }
13
+ .origin-top-right { transform-origin: top right; }
14
+ .origin-right { transform-origin: right; }
15
+ .origin-bottom-right { transform-origin: bottom right; }
16
+ .origin-bottom { transform-origin: bottom; }
17
+ .origin-bottom-left { transform-origin: bottom left; }
18
+ .origin-left { transform-origin: left; }
19
+ .origin-top-left { transform-origin: top left; }
20
+
21
+ // ----------------------------------------
22
+ // Rotate
23
+ // ----------------------------------------
24
+ .rotate-0 { transform: rotate(0deg); }
25
+ .rotate-1 { transform: rotate(1deg); }
26
+ .rotate-2 { transform: rotate(2deg); }
27
+ .rotate-3 { transform: rotate(3deg); }
28
+ .rotate-6 { transform: rotate(6deg); }
29
+ .rotate-12 { transform: rotate(12deg); }
30
+ .rotate-45 { transform: rotate(45deg); }
31
+ .rotate-90 { transform: rotate(90deg); }
32
+ .rotate-180 { transform: rotate(180deg); }
33
+
34
+ // Negative rotations
35
+ .-rotate-1 { transform: rotate(-1deg); }
36
+ .-rotate-2 { transform: rotate(-2deg); }
37
+ .-rotate-3 { transform: rotate(-3deg); }
38
+ .-rotate-6 { transform: rotate(-6deg); }
39
+ .-rotate-12 { transform: rotate(-12deg); }
40
+ .-rotate-45 { transform: rotate(-45deg); }
41
+ .-rotate-90 { transform: rotate(-90deg); }
42
+ .-rotate-180 { transform: rotate(-180deg); }
43
+
44
+ // ----------------------------------------
45
+ // Scale
46
+ // ----------------------------------------
47
+ .scale-0 { transform: scale(0); }
48
+ .scale-50 { transform: scale(0.5); }
49
+ .scale-75 { transform: scale(0.75); }
50
+ .scale-90 { transform: scale(0.9); }
51
+ .scale-95 { transform: scale(0.95); }
52
+ .scale-100 { transform: scale(1); }
53
+ .scale-105 { transform: scale(1.05); }
54
+ .scale-110 { transform: scale(1.1); }
55
+ .scale-125 { transform: scale(1.25); }
56
+ .scale-150 { transform: scale(1.5); }
57
+ .scale-200 { transform: scale(2); }
58
+
59
+ // Scale X
60
+ .scale-x-0 { transform: scaleX(0); }
61
+ .scale-x-50 { transform: scaleX(0.5); }
62
+ .scale-x-75 { transform: scaleX(0.75); }
63
+ .scale-x-90 { transform: scaleX(0.9); }
64
+ .scale-x-95 { transform: scaleX(0.95); }
65
+ .scale-x-100 { transform: scaleX(1); }
66
+ .scale-x-105 { transform: scaleX(1.05); }
67
+ .scale-x-110 { transform: scaleX(1.1); }
68
+ .scale-x-125 { transform: scaleX(1.25); }
69
+ .scale-x-150 { transform: scaleX(1.5); }
70
+
71
+ // Scale Y
72
+ .scale-y-0 { transform: scaleY(0); }
73
+ .scale-y-50 { transform: scaleY(0.5); }
74
+ .scale-y-75 { transform: scaleY(0.75); }
75
+ .scale-y-90 { transform: scaleY(0.9); }
76
+ .scale-y-95 { transform: scaleY(0.95); }
77
+ .scale-y-100 { transform: scaleY(1); }
78
+ .scale-y-105 { transform: scaleY(1.05); }
79
+ .scale-y-110 { transform: scaleY(1.1); }
80
+ .scale-y-125 { transform: scaleY(1.25); }
81
+ .scale-y-150 { transform: scaleY(1.5); }
82
+
83
+ // ----------------------------------------
84
+ // Skew
85
+ // ----------------------------------------
86
+ // Skew X
87
+ .skew-x-0 { transform: skewX(0deg); }
88
+ .skew-x-1 { transform: skewX(1deg); }
89
+ .skew-x-2 { transform: skewX(2deg); }
90
+ .skew-x-3 { transform: skewX(3deg); }
91
+ .skew-x-6 { transform: skewX(6deg); }
92
+ .skew-x-12 { transform: skewX(12deg); }
93
+
94
+ .-skew-x-1 { transform: skewX(-1deg); }
95
+ .-skew-x-2 { transform: skewX(-2deg); }
96
+ .-skew-x-3 { transform: skewX(-3deg); }
97
+ .-skew-x-6 { transform: skewX(-6deg); }
98
+ .-skew-x-12 { transform: skewX(-12deg); }
99
+
100
+ // Skew Y
101
+ .skew-y-0 { transform: skewY(0deg); }
102
+ .skew-y-1 { transform: skewY(1deg); }
103
+ .skew-y-2 { transform: skewY(2deg); }
104
+ .skew-y-3 { transform: skewY(3deg); }
105
+ .skew-y-6 { transform: skewY(6deg); }
106
+ .skew-y-12 { transform: skewY(12deg); }
107
+
108
+ .-skew-y-1 { transform: skewY(-1deg); }
109
+ .-skew-y-2 { transform: skewY(-2deg); }
110
+ .-skew-y-3 { transform: skewY(-3deg); }
111
+ .-skew-y-6 { transform: skewY(-6deg); }
112
+ .-skew-y-12 { transform: skewY(-12deg); }
113
+
114
+ // ----------------------------------------
115
+ // Translate
116
+ // ----------------------------------------
117
+ // Translate X
118
+ .translate-x-0 { transform: translateX(0); }
119
+ .translate-x-px { transform: translateX(1px); }
120
+ .translate-x-0\.5 { transform: translateX(0.125rem); }
121
+ .translate-x-1 { transform: translateX(0.25rem); }
122
+ .translate-x-2 { transform: translateX(0.5rem); }
123
+ .translate-x-3 { transform: translateX(0.75rem); }
124
+ .translate-x-4 { transform: translateX(1rem); }
125
+ .translate-x-5 { transform: translateX(1.25rem); }
126
+ .translate-x-6 { transform: translateX(1.5rem); }
127
+ .translate-x-8 { transform: translateX(2rem); }
128
+ .translate-x-10 { transform: translateX(2.5rem); }
129
+ .translate-x-12 { transform: translateX(3rem); }
130
+ .translate-x-16 { transform: translateX(4rem); }
131
+ .translate-x-20 { transform: translateX(5rem); }
132
+ .translate-x-24 { transform: translateX(6rem); }
133
+ .translate-x-32 { transform: translateX(8rem); }
134
+ .translate-x-full { transform: translateX(100%); }
135
+ .translate-x-1\/2 { transform: translateX(50%); }
136
+ .translate-x-1\/3 { transform: translateX(33.333333%); }
137
+ .translate-x-2\/3 { transform: translateX(66.666667%); }
138
+ .translate-x-1\/4 { transform: translateX(25%); }
139
+ .translate-x-3\/4 { transform: translateX(75%); }
140
+
141
+ // Negative Translate X
142
+ .-translate-x-px { transform: translateX(-1px); }
143
+ .-translate-x-0\.5 { transform: translateX(-0.125rem); }
144
+ .-translate-x-1 { transform: translateX(-0.25rem); }
145
+ .-translate-x-2 { transform: translateX(-0.5rem); }
146
+ .-translate-x-3 { transform: translateX(-0.75rem); }
147
+ .-translate-x-4 { transform: translateX(-1rem); }
148
+ .-translate-x-5 { transform: translateX(-1.25rem); }
149
+ .-translate-x-6 { transform: translateX(-1.5rem); }
150
+ .-translate-x-8 { transform: translateX(-2rem); }
151
+ .-translate-x-10 { transform: translateX(-2.5rem); }
152
+ .-translate-x-12 { transform: translateX(-3rem); }
153
+ .-translate-x-16 { transform: translateX(-4rem); }
154
+ .-translate-x-20 { transform: translateX(-5rem); }
155
+ .-translate-x-24 { transform: translateX(-6rem); }
156
+ .-translate-x-32 { transform: translateX(-8rem); }
157
+ .-translate-x-full { transform: translateX(-100%); }
158
+ .-translate-x-1\/2 { transform: translateX(-50%); }
159
+ .-translate-x-1\/3 { transform: translateX(-33.333333%); }
160
+ .-translate-x-2\/3 { transform: translateX(-66.666667%); }
161
+ .-translate-x-1\/4 { transform: translateX(-25%); }
162
+ .-translate-x-3\/4 { transform: translateX(-75%); }
163
+
164
+ // Translate Y
165
+ .translate-y-0 { transform: translateY(0); }
166
+ .translate-y-px { transform: translateY(1px); }
167
+ .translate-y-0\.5 { transform: translateY(0.125rem); }
168
+ .translate-y-1 { transform: translateY(0.25rem); }
169
+ .translate-y-2 { transform: translateY(0.5rem); }
170
+ .translate-y-3 { transform: translateY(0.75rem); }
171
+ .translate-y-4 { transform: translateY(1rem); }
172
+ .translate-y-5 { transform: translateY(1.25rem); }
173
+ .translate-y-6 { transform: translateY(1.5rem); }
174
+ .translate-y-8 { transform: translateY(2rem); }
175
+ .translate-y-10 { transform: translateY(2.5rem); }
176
+ .translate-y-12 { transform: translateY(3rem); }
177
+ .translate-y-16 { transform: translateY(4rem); }
178
+ .translate-y-20 { transform: translateY(5rem); }
179
+ .translate-y-24 { transform: translateY(6rem); }
180
+ .translate-y-32 { transform: translateY(8rem); }
181
+ .translate-y-full { transform: translateY(100%); }
182
+ .translate-y-1\/2 { transform: translateY(50%); }
183
+ .translate-y-1\/3 { transform: translateY(33.333333%); }
184
+ .translate-y-2\/3 { transform: translateY(66.666667%); }
185
+ .translate-y-1\/4 { transform: translateY(25%); }
186
+ .translate-y-3\/4 { transform: translateY(75%); }
187
+
188
+ // Negative Translate Y
189
+ .-translate-y-px { transform: translateY(-1px); }
190
+ .-translate-y-0\.5 { transform: translateY(-0.125rem); }
191
+ .-translate-y-1 { transform: translateY(-0.25rem); }
192
+ .-translate-y-2 { transform: translateY(-0.5rem); }
193
+ .-translate-y-3 { transform: translateY(-0.75rem); }
194
+ .-translate-y-4 { transform: translateY(-1rem); }
195
+ .-translate-y-5 { transform: translateY(-1.25rem); }
196
+ .-translate-y-6 { transform: translateY(-1.5rem); }
197
+ .-translate-y-8 { transform: translateY(-2rem); }
198
+ .-translate-y-10 { transform: translateY(-2.5rem); }
199
+ .-translate-y-12 { transform: translateY(-3rem); }
200
+ .-translate-y-16 { transform: translateY(-4rem); }
201
+ .-translate-y-20 { transform: translateY(-5rem); }
202
+ .-translate-y-24 { transform: translateY(-6rem); }
203
+ .-translate-y-32 { transform: translateY(-8rem); }
204
+ .-translate-y-full { transform: translateY(-100%); }
205
+ .-translate-y-1\/2 { transform: translateY(-50%); }
206
+ .-translate-y-1\/3 { transform: translateY(-33.333333%); }
207
+ .-translate-y-2\/3 { transform: translateY(-66.666667%); }
208
+ .-translate-y-1\/4 { transform: translateY(-25%); }
209
+ .-translate-y-3\/4 { transform: translateY(-75%); }
210
+
211
+ // ----------------------------------------
212
+ // 3D Transforms
213
+ // ----------------------------------------
214
+ // Perspective
215
+ .perspective-none { perspective: none; }
216
+ .perspective-sm { perspective: 250px; }
217
+ .perspective { perspective: 500px; }
218
+ .perspective-md { perspective: 750px; }
219
+ .perspective-lg { perspective: 1000px; }
220
+ .perspective-xl { perspective: 1500px; }
221
+
222
+ // Perspective Origin
223
+ .perspective-origin-center { perspective-origin: center; }
224
+ .perspective-origin-top { perspective-origin: top; }
225
+ .perspective-origin-top-right { perspective-origin: top right; }
226
+ .perspective-origin-right { perspective-origin: right; }
227
+ .perspective-origin-bottom-right { perspective-origin: bottom right; }
228
+ .perspective-origin-bottom { perspective-origin: bottom; }
229
+ .perspective-origin-bottom-left { perspective-origin: bottom left; }
230
+ .perspective-origin-left { perspective-origin: left; }
231
+ .perspective-origin-top-left { perspective-origin: top left; }
232
+
233
+ // Rotate 3D
234
+ .rotate-x-0 { transform: rotateX(0deg); }
235
+ .rotate-x-45 { transform: rotateX(45deg); }
236
+ .rotate-x-90 { transform: rotateX(90deg); }
237
+ .rotate-x-180 { transform: rotateX(180deg); }
238
+ .-rotate-x-45 { transform: rotateX(-45deg); }
239
+ .-rotate-x-90 { transform: rotateX(-90deg); }
240
+ .-rotate-x-180 { transform: rotateX(-180deg); }
241
+
242
+ .rotate-y-0 { transform: rotateY(0deg); }
243
+ .rotate-y-45 { transform: rotateY(45deg); }
244
+ .rotate-y-90 { transform: rotateY(90deg); }
245
+ .rotate-y-180 { transform: rotateY(180deg); }
246
+ .-rotate-y-45 { transform: rotateY(-45deg); }
247
+ .-rotate-y-90 { transform: rotateY(-90deg); }
248
+ .-rotate-y-180 { transform: rotateY(-180deg); }
249
+
250
+ // Translate Z
251
+ .translate-z-0 { transform: translateZ(0); }
252
+ .translate-z-1 { transform: translateZ(0.25rem); }
253
+ .translate-z-2 { transform: translateZ(0.5rem); }
254
+ .translate-z-4 { transform: translateZ(1rem); }
255
+ .translate-z-8 { transform: translateZ(2rem); }
256
+ .translate-z-16 { transform: translateZ(4rem); }
257
+
258
+ .-translate-z-1 { transform: translateZ(-0.25rem); }
259
+ .-translate-z-2 { transform: translateZ(-0.5rem); }
260
+ .-translate-z-4 { transform: translateZ(-1rem); }
261
+ .-translate-z-8 { transform: translateZ(-2rem); }
262
+ .-translate-z-16 { transform: translateZ(-4rem); }
263
+
264
+ // Transform Style
265
+ .transform-flat { transform-style: flat; }
266
+ .transform-3d { transform-style: preserve-3d; }
267
+
268
+ // Backface Visibility
269
+ .backface-visible { backface-visibility: visible; }
270
+ .backface-hidden { backface-visibility: hidden; }
271
+
272
+ // ----------------------------------------
273
+ // Transform Utilities
274
+ // ----------------------------------------
275
+ .transform-none { transform: none; }
276
+ .transform-gpu { transform: translateZ(0); } // GPU acceleration
277
+
278
+ // ----------------------------------------
279
+ // Flip Utilities
280
+ // ----------------------------------------
281
+ .flip-x { transform: scaleX(-1); }
282
+ .flip-y { transform: scaleY(-1); }
283
+ .flip-both { transform: scale(-1, -1); }
284
+
285
+ // ----------------------------------------
286
+ // Hover Transform Utilities
287
+ // ----------------------------------------
288
+ .hover\:scale-105:hover { transform: scale(1.05); }
289
+ .hover\:scale-110:hover { transform: scale(1.1); }
290
+ .hover\:scale-125:hover { transform: scale(1.25); }
291
+ .hover\:-translate-y-1:hover { transform: translateY(-0.25rem); }
292
+ .hover\:-translate-y-2:hover { transform: translateY(-0.5rem); }
293
+ .hover\:rotate-3:hover { transform: rotate(3deg); }
294
+ .hover\:rotate-6:hover { transform: rotate(6deg); }
295
+ .hover\:-rotate-3:hover { transform: rotate(-3deg); }
296
+ .hover\:-rotate-6:hover { transform: rotate(-6deg); }
297
+
298
+ // ----------------------------------------
299
+ // Group Hover Transform
300
+ // ----------------------------------------
301
+ .group:hover .group-hover\:scale-105 { transform: scale(1.05); }
302
+ .group:hover .group-hover\:scale-110 { transform: scale(1.1); }
303
+ .group:hover .group-hover\:-translate-y-1 { transform: translateY(-0.25rem); }
304
+ .group:hover .group-hover\:-translate-y-2 { transform: translateY(-0.5rem); }
305
+
306
+ // ----------------------------------------
307
+ // Active Transform
308
+ // ----------------------------------------
309
+ .active\:scale-95:active { transform: scale(0.95); }
310
+ .active\:scale-100:active { transform: scale(1); }
311
+
312
+ // ----------------------------------------
313
+ // Focus Transform
314
+ // ----------------------------------------
315
+ .focus\:scale-105:focus { transform: scale(1.05); }
316
+ .focus\:scale-110:focus { transform: scale(1.1); }
317
+
318
+ // ----------------------------------------
319
+ // Responsive Transforms
320
+ // ----------------------------------------
321
+ @media (min-width: 576px) {
322
+ .sm\:rotate-0 { transform: rotate(0deg); }
323
+ .sm\:rotate-90 { transform: rotate(90deg); }
324
+ .sm\:rotate-180 { transform: rotate(180deg); }
325
+ .sm\:scale-100 { transform: scale(1); }
326
+ .sm\:scale-105 { transform: scale(1.05); }
327
+ .sm\:translate-x-0 { transform: translateX(0); }
328
+ .sm\:translate-y-0 { transform: translateY(0); }
329
+ }
330
+
331
+ @media (min-width: 768px) {
332
+ .md\:rotate-0 { transform: rotate(0deg); }
333
+ .md\:rotate-90 { transform: rotate(90deg); }
334
+ .md\:rotate-180 { transform: rotate(180deg); }
335
+ .md\:scale-100 { transform: scale(1); }
336
+ .md\:scale-105 { transform: scale(1.05); }
337
+ .md\:translate-x-0 { transform: translateX(0); }
338
+ .md\:translate-y-0 { transform: translateY(0); }
339
+ }
340
+
341
+ @media (min-width: 992px) {
342
+ .lg\:rotate-0 { transform: rotate(0deg); }
343
+ .lg\:rotate-90 { transform: rotate(90deg); }
344
+ .lg\:rotate-180 { transform: rotate(180deg); }
345
+ .lg\:scale-100 { transform: scale(1); }
346
+ .lg\:scale-105 { transform: scale(1.05); }
347
+ .lg\:translate-x-0 { transform: translateX(0); }
348
+ .lg\:translate-y-0 { transform: translateY(0); }
349
+ }
350
+
351
+ @media (min-width: 1200px) {
352
+ .xl\:rotate-0 { transform: rotate(0deg); }
353
+ .xl\:rotate-90 { transform: rotate(90deg); }
354
+ .xl\:rotate-180 { transform: rotate(180deg); }
355
+ .xl\:scale-100 { transform: scale(1); }
356
+ .xl\:scale-105 { transform: scale(1.05); }
357
+ .xl\:translate-x-0 { transform: translateX(0); }
358
+ .xl\:translate-y-0 { transform: translateY(0); }
359
+ }
360
+
361
+ // ----------------------------------------
362
+ // Motion Reduce
363
+ // ----------------------------------------
364
+ @media (prefers-reduced-motion: reduce) {
365
+ .motion-reduce\:transform-none {
366
+ transform: none !important;
367
+ }
368
+ }