@nuvoui/core 1.2.7 → 1.3.1
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.
- package/dist/nuvoui.css +3252 -2709
- package/dist/nuvoui.css.map +1 -1
- package/dist/nuvoui.min.css +1 -1
- package/dist/nuvoui.min.css.map +1 -1
- package/package.json +3 -3
- package/src/styles/abstracts/_config.scss +36 -8
- package/src/styles/abstracts/_functions.scss +16 -5
- package/src/styles/base/_base.scss +2 -2
- package/src/styles/base/_reset.scss +0 -2
- package/src/styles/build.scss +3 -0
- package/src/styles/layouts/_container.scss +8 -1
- package/src/styles/layouts/_flex.scss +230 -292
- package/src/styles/layouts/_grid.scss +66 -73
- package/src/styles/mixins-map.json +1 -0
- package/src/styles/mixins-map.scss +1 -1
- package/src/styles/themes/_theme.scss +10 -10
- package/src/styles/utilities/_alignment.scss +2 -1
- package/src/styles/utilities/_animations.scss +20 -32
- package/src/styles/utilities/_backdrop-filters.scss +12 -16
- package/src/styles/utilities/_borders.scss +3 -5
- package/src/styles/utilities/_container-queries.scss +17 -21
- package/src/styles/utilities/_cursor.scss +2 -1
- package/src/styles/utilities/_display.scss +18 -39
- package/src/styles/utilities/_helpers.scss +1 -0
- package/src/styles/utilities/_media-queries.scss +3 -5
- package/src/styles/utilities/_opacity.scss +52 -67
- package/src/styles/utilities/_position.scss +104 -132
- package/src/styles/utilities/_shadows.scss +9 -14
- package/src/styles/utilities/_sizing.scss +1 -1
- package/src/styles/utilities/_spacing.scss +143 -205
- package/src/styles/utilities/_tooltips.scss +203 -200
- package/src/styles/utilities/_transforms.scss +32 -13
- package/src/styles/utilities/_transitions.scss +8 -10
- package/src/styles/utilities/_typography.scss +17 -22
- package/src/styles/utilities/_z-index.scss +12 -19
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@use "../abstracts/config" as VAR;
|
|
2
|
+
@use "../abstracts/functions" as FN;
|
|
2
3
|
|
|
3
4
|
@mixin tooltip-variables {
|
|
4
5
|
// Tooltip core variables
|
|
@@ -23,233 +24,235 @@
|
|
|
23
24
|
--tooltip-border-radius: 4px;
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
#{VAR.$parent-selector} [data-tooltip][role~="tooltip"] {
|
|
38
|
-
position: relative;
|
|
39
|
-
|
|
40
|
-
&::before,
|
|
41
|
-
&::after {
|
|
42
|
-
transform: translate3d(0, 0, 0);
|
|
43
|
-
backface-visibility: hidden;
|
|
44
|
-
will-change: transform;
|
|
45
|
-
opacity: 0;
|
|
46
|
-
pointer-events: none;
|
|
47
|
-
transition: all var(--microtip-transition-duration) var(--microtip-transition-easing) var(--microtip-transition-delay);
|
|
48
|
-
position: absolute;
|
|
49
|
-
box-sizing: border-box;
|
|
50
|
-
z-index: 10;
|
|
51
|
-
transform-origin: top;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
&::before {
|
|
55
|
-
background-size: 100% auto !important;
|
|
56
|
-
content: "";
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
&::after {
|
|
60
|
-
background: var(--tooltip-bg);
|
|
61
|
-
box-shadow: 0 3px 7px var(--tooltip-shadow-color);
|
|
62
|
-
border-radius: var(--tooltip-border-radius);
|
|
63
|
-
color: var(--tooltip-text-color);
|
|
64
|
-
content: attr(data-tooltip);
|
|
65
|
-
font-size: var(--microtip-font-size);
|
|
66
|
-
font-weight: var(--microtip-font-weight);
|
|
67
|
-
text-transform: var(--microtip-text-transform);
|
|
68
|
-
padding: 0.5em 1em;
|
|
69
|
-
white-space: nowrap;
|
|
70
|
-
box-sizing: content-box;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
&:hover::before,
|
|
74
|
-
&:hover::after,
|
|
75
|
-
&:focus::before,
|
|
76
|
-
&:focus::after {
|
|
77
|
-
opacity: 1;
|
|
78
|
-
pointer-events: auto;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// Top position tooltips
|
|
83
|
-
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position|="top"] {
|
|
84
|
-
&::before {
|
|
85
|
-
background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%280%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
|
|
86
|
-
height: 6px;
|
|
87
|
-
width: 18px;
|
|
88
|
-
margin-bottom: 6px;
|
|
89
|
-
transform: translate3d(-50%, 0, 0);
|
|
90
|
-
bottom: 100%;
|
|
91
|
-
left: 50%;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
&::after {
|
|
95
|
-
margin-bottom: 11px;
|
|
96
|
-
transform: translate3d(-50%, 0, 0);
|
|
97
|
-
bottom: 100%;
|
|
98
|
-
left: 50%;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
&:hover::before {
|
|
102
|
-
transform: translate3d(-50%, -5px, 0);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
&:hover::after {
|
|
106
|
-
transform: translate3d(-50%, -5px, 0);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="top-left"] {
|
|
111
|
-
&::after {
|
|
112
|
-
transform: translate3d(calc(-100% + 16px), 0, 0);
|
|
113
|
-
bottom: 100%;
|
|
27
|
+
@if FN.feature-enabled("tooltips") {
|
|
28
|
+
// Apply variables based on parent selector
|
|
29
|
+
@if VAR.$parent-selector == "" {
|
|
30
|
+
:root {
|
|
31
|
+
@include tooltip-variables;
|
|
32
|
+
}
|
|
33
|
+
} @else {
|
|
34
|
+
#{VAR.$parent-selector} {
|
|
35
|
+
@include tooltip-variables;
|
|
36
|
+
}
|
|
114
37
|
}
|
|
115
38
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
39
|
+
#{VAR.$parent-selector} [data-tooltip][role~="tooltip"] {
|
|
40
|
+
position: relative;
|
|
41
|
+
|
|
42
|
+
&::before,
|
|
43
|
+
&::after {
|
|
44
|
+
transform: translate3d(0, 0, 0);
|
|
45
|
+
backface-visibility: hidden;
|
|
46
|
+
will-change: transform;
|
|
47
|
+
opacity: 0;
|
|
48
|
+
pointer-events: none;
|
|
49
|
+
transition: all var(--microtip-transition-duration) var(--microtip-transition-easing) var(--microtip-transition-delay);
|
|
50
|
+
position: absolute;
|
|
51
|
+
box-sizing: border-box;
|
|
52
|
+
z-index: 10;
|
|
53
|
+
transform-origin: top;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&::before {
|
|
57
|
+
background-size: 100% auto !important;
|
|
58
|
+
content: "";
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&::after {
|
|
62
|
+
background: var(--tooltip-bg);
|
|
63
|
+
box-shadow: 0 3px 7px var(--tooltip-shadow-color);
|
|
64
|
+
border-radius: var(--tooltip-border-radius);
|
|
65
|
+
color: var(--tooltip-text-color);
|
|
66
|
+
content: attr(data-tooltip);
|
|
67
|
+
font-size: var(--microtip-font-size);
|
|
68
|
+
font-weight: var(--microtip-font-weight);
|
|
69
|
+
text-transform: var(--microtip-text-transform);
|
|
70
|
+
padding: 0.5em 1em;
|
|
71
|
+
white-space: nowrap;
|
|
72
|
+
box-sizing: content-box;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&:hover::before,
|
|
76
|
+
&:hover::after,
|
|
77
|
+
&:focus::before,
|
|
78
|
+
&:focus::after {
|
|
79
|
+
opacity: 1;
|
|
80
|
+
pointer-events: auto;
|
|
81
|
+
}
|
|
125
82
|
}
|
|
126
83
|
|
|
127
|
-
|
|
128
|
-
|
|
84
|
+
// Top position tooltips
|
|
85
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position|="top"] {
|
|
86
|
+
&::before {
|
|
87
|
+
background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A// www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%280%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
|
|
88
|
+
height: 6px;
|
|
89
|
+
width: 18px;
|
|
90
|
+
margin-bottom: 6px;
|
|
91
|
+
transform: translate3d(-50%, 0, 0);
|
|
92
|
+
bottom: 100%;
|
|
93
|
+
left: 50%;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
&::after {
|
|
97
|
+
margin-bottom: 11px;
|
|
98
|
+
transform: translate3d(-50%, 0, 0);
|
|
99
|
+
bottom: 100%;
|
|
100
|
+
left: 50%;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
&:hover::before {
|
|
104
|
+
transform: translate3d(-50%, -5px, 0);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
&:hover::after {
|
|
108
|
+
transform: translate3d(-50%, -5px, 0);
|
|
109
|
+
}
|
|
129
110
|
}
|
|
130
|
-
}
|
|
131
111
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
width: 18px;
|
|
138
|
-
margin-top: 5px;
|
|
139
|
-
margin-bottom: 0;
|
|
140
|
-
transform: translate3d(-50%, -10px, 0);
|
|
141
|
-
bottom: auto;
|
|
142
|
-
left: 50%;
|
|
143
|
-
top: 100%;
|
|
144
|
-
}
|
|
112
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="top-left"] {
|
|
113
|
+
&::after {
|
|
114
|
+
transform: translate3d(calc(-100% + 16px), 0, 0);
|
|
115
|
+
bottom: 100%;
|
|
116
|
+
}
|
|
145
117
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
top: 100%;
|
|
150
|
-
left: 50%;
|
|
118
|
+
&:hover::after {
|
|
119
|
+
transform: translate3d(calc(-100% + 16px), -5px, 0);
|
|
120
|
+
}
|
|
151
121
|
}
|
|
152
122
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
transform: translate3d(-50%, 0, 0);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="bottom-left"] {
|
|
163
|
-
&::after {
|
|
164
|
-
transform: translate3d(calc(-100% + 16px), -10px, 0);
|
|
165
|
-
top: 100%;
|
|
166
|
-
}
|
|
123
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="top-right"] {
|
|
124
|
+
&::after {
|
|
125
|
+
transform: translate3d(calc(0% + -16px), 0, 0);
|
|
126
|
+
bottom: 100%;
|
|
127
|
+
}
|
|
167
128
|
|
|
168
|
-
|
|
169
|
-
|
|
129
|
+
&:hover::after {
|
|
130
|
+
transform: translate3d(calc(0% + -16px), -5px, 0);
|
|
131
|
+
}
|
|
170
132
|
}
|
|
171
|
-
}
|
|
172
133
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
134
|
+
// Bottom position tooltips
|
|
135
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position|="bottom"] {
|
|
136
|
+
&::before {
|
|
137
|
+
background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A// www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28180%2018%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
|
|
138
|
+
height: 6px;
|
|
139
|
+
width: 18px;
|
|
140
|
+
margin-top: 5px;
|
|
141
|
+
margin-bottom: 0;
|
|
142
|
+
transform: translate3d(-50%, -10px, 0);
|
|
143
|
+
bottom: auto;
|
|
144
|
+
left: 50%;
|
|
145
|
+
top: 100%;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
&::after {
|
|
149
|
+
margin-top: 11px;
|
|
150
|
+
transform: translate3d(-50%, -10px, 0);
|
|
151
|
+
top: 100%;
|
|
152
|
+
left: 50%;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
&:hover::before {
|
|
156
|
+
transform: translate3d(-50%, 0, 0);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
&:hover::after {
|
|
160
|
+
transform: translate3d(-50%, 0, 0);
|
|
161
|
+
}
|
|
177
162
|
}
|
|
178
163
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
164
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="bottom-left"] {
|
|
165
|
+
&::after {
|
|
166
|
+
transform: translate3d(calc(-100% + 16px), -10px, 0);
|
|
167
|
+
top: 100%;
|
|
168
|
+
}
|
|
183
169
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
&::after {
|
|
188
|
-
inset: auto auto auto 100%;
|
|
189
|
-
left: auto; // Remove any left positioning
|
|
190
|
-
right: 100%; // Position to the left of the element
|
|
191
|
-
top: 50%;
|
|
192
|
-
transform: translate3d(10px, -50%, 0);
|
|
170
|
+
&:hover::after {
|
|
171
|
+
transform: translate3d(calc(-100% + 16px), 0, 0);
|
|
172
|
+
}
|
|
193
173
|
}
|
|
194
174
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
margin-bottom: 0;
|
|
201
|
-
}
|
|
175
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="bottom-right"] {
|
|
176
|
+
&::after {
|
|
177
|
+
transform: translate3d(calc(0% + -16px), -10px, 0);
|
|
178
|
+
top: 100%;
|
|
179
|
+
}
|
|
202
180
|
|
|
203
|
-
|
|
204
|
-
|
|
181
|
+
&:hover::after {
|
|
182
|
+
transform: translate3d(calc(0% + -16px), 0, 0);
|
|
183
|
+
}
|
|
205
184
|
}
|
|
206
185
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
186
|
+
// Left position tooltips
|
|
187
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="left"] {
|
|
188
|
+
&::before,
|
|
189
|
+
&::after {
|
|
190
|
+
inset: auto auto auto 100%;
|
|
191
|
+
left: auto; // Remove any left positioning
|
|
192
|
+
right: 100%; // Position to the left of the element
|
|
193
|
+
top: 50%;
|
|
194
|
+
transform: translate3d(10px, -50%, 0);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
&::before {
|
|
198
|
+
background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A// www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28-90%2018%2018%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
|
|
199
|
+
height: 18px;
|
|
200
|
+
width: 6px;
|
|
201
|
+
margin-right: 5px;
|
|
202
|
+
margin-bottom: 0;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
&::after {
|
|
206
|
+
margin-right: 11px;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
&:hover::before,
|
|
210
|
+
&:hover::after {
|
|
211
|
+
transform: translate3d(0, -50%, 0);
|
|
212
|
+
}
|
|
210
213
|
}
|
|
211
|
-
}
|
|
212
214
|
|
|
213
|
-
// Right position tooltips
|
|
214
|
-
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="right"] {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
215
|
+
// Right position tooltips
|
|
216
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="right"] {
|
|
217
|
+
&::before,
|
|
218
|
+
&::after {
|
|
219
|
+
bottom: auto;
|
|
220
|
+
left: 100%;
|
|
221
|
+
top: 50%;
|
|
222
|
+
transform: translate3d(-10px, -50%, 0);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
&::before {
|
|
226
|
+
background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A// www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%2890%206%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
|
|
227
|
+
height: 18px;
|
|
228
|
+
width: 6px;
|
|
229
|
+
margin-bottom: 0;
|
|
230
|
+
margin-left: 5px;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
&::after {
|
|
234
|
+
margin-left: 11px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
&:hover::before,
|
|
238
|
+
&:hover::after {
|
|
239
|
+
transform: translate3d(0, -50%, 0);
|
|
240
|
+
}
|
|
221
241
|
}
|
|
222
242
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
width:
|
|
227
|
-
margin-bottom: 0;
|
|
228
|
-
margin-left: 5px;
|
|
243
|
+
// Tooltip sizes
|
|
244
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-size="small"]::after {
|
|
245
|
+
white-space: initial;
|
|
246
|
+
width: var(--tooltip-small-width);
|
|
229
247
|
}
|
|
230
248
|
|
|
231
|
-
|
|
232
|
-
|
|
249
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-size="medium"]::after {
|
|
250
|
+
white-space: initial;
|
|
251
|
+
width: var(--tooltip-medium-width);
|
|
233
252
|
}
|
|
234
253
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
254
|
+
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-size="large"]::after {
|
|
255
|
+
white-space: initial;
|
|
256
|
+
width: var(--tooltip-large-width);
|
|
238
257
|
}
|
|
239
258
|
}
|
|
240
|
-
|
|
241
|
-
// Tooltip sizes
|
|
242
|
-
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-size="small"]::after {
|
|
243
|
-
white-space: initial;
|
|
244
|
-
width: var(--tooltip-small-width);
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-size="medium"]::after {
|
|
248
|
-
white-space: initial;
|
|
249
|
-
width: var(--tooltip-medium-width);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
#{VAR.$parent-selector} [role~="tooltip"][data-microtip-size="large"]::after {
|
|
253
|
-
white-space: initial;
|
|
254
|
-
width: var(--tooltip-large-width);
|
|
255
|
-
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
@use "../abstracts/config" as VAR;
|
|
2
1
|
@use "sass:map";
|
|
2
|
+
@use "../abstracts/config" as VAR;
|
|
3
|
+
@use "../abstracts/functions" as FN;
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* - Skew
|
|
11
|
-
* - Transform origin
|
|
12
|
-
*/
|
|
5
|
+
// Transform Utilities
|
|
6
|
+
// - Translate (X, Y, Z)
|
|
7
|
+
// - Scale
|
|
8
|
+
// - Rotate
|
|
9
|
+
// - Skew
|
|
10
|
+
// - Transform origin
|
|
13
11
|
|
|
14
12
|
// Common transform function to avoid repetition
|
|
15
13
|
@mixin apply-transform {
|
|
@@ -173,7 +171,7 @@ $origin-values: (
|
|
|
173
171
|
);
|
|
174
172
|
|
|
175
173
|
// Generate utility classes
|
|
176
|
-
@if
|
|
174
|
+
@if FN.feature-enabled("transforms") {
|
|
177
175
|
// Translate utilities
|
|
178
176
|
@each $key, $value in $translate-values {
|
|
179
177
|
#{VAR.$parent-selector} .translate-x-#{$key},
|
|
@@ -259,7 +257,7 @@ $origin-values: (
|
|
|
259
257
|
@include translate-x($value);
|
|
260
258
|
}
|
|
261
259
|
|
|
262
|
-
#{VAR.$parent-selector} .translate-
|
|
260
|
+
#{VAR.$parent-selector} .translate-y-#{$key}\@#{$breakpoint},
|
|
263
261
|
#{VAR.$parent-selector} .hover\:translate-y-#{$key}\@#{$breakpoint}:hover,
|
|
264
262
|
#{VAR.$parent-selector} .group:hover .group-hover\:translate-y-#{$key}\@#{$breakpoint} {
|
|
265
263
|
@include translate-y($value);
|
|
@@ -272,7 +270,7 @@ $origin-values: (
|
|
|
272
270
|
@include translate-x($value);
|
|
273
271
|
}
|
|
274
272
|
|
|
275
|
-
#{VAR.$parent-selector} .-translate-
|
|
273
|
+
#{VAR.$parent-selector} .-translate-y-#{$key}\@#{$breakpoint},
|
|
276
274
|
#{VAR.$parent-selector} .hover\:-translate-y-#{$key}\@#{$breakpoint}:hover,
|
|
277
275
|
#{VAR.$parent-selector} .group:hover .group-hover\:-translate-y-#{$key}\@#{$breakpoint} {
|
|
278
276
|
@include translate-y($value);
|
|
@@ -286,6 +284,18 @@ $origin-values: (
|
|
|
286
284
|
#{VAR.$parent-selector} .group:hover .group-hover\:scale-#{$key}\@#{$breakpoint} {
|
|
287
285
|
@include scale($value);
|
|
288
286
|
}
|
|
287
|
+
|
|
288
|
+
#{VAR.$parent-selector} .scale-x-#{$key}\@#{$breakpoint},
|
|
289
|
+
#{VAR.$parent-selector} .hover\:scale-x-#{$key}\@#{$breakpoint}:hover,
|
|
290
|
+
#{VAR.$parent-selector} .group:hover .group-hover\:scale-x-#{$key}\@#{$breakpoint} {
|
|
291
|
+
@include scale-x($value);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
#{VAR.$parent-selector} .scale-y-#{$key}\@#{$breakpoint},
|
|
295
|
+
#{VAR.$parent-selector} .hover\:scale-y-#{$key}\@#{$breakpoint}:hover,
|
|
296
|
+
#{VAR.$parent-selector} .group:hover .group-hover\:scale-y-#{$key}\@#{$breakpoint} {
|
|
297
|
+
@include scale-y($value);
|
|
298
|
+
}
|
|
289
299
|
}
|
|
290
300
|
|
|
291
301
|
// Rotation hover responsive
|
|
@@ -305,6 +315,15 @@ $origin-values: (
|
|
|
305
315
|
@include rotate($value);
|
|
306
316
|
}
|
|
307
317
|
}
|
|
318
|
+
|
|
319
|
+
// Add missing origin responsive variants
|
|
320
|
+
@each $key, $value in $origin-values {
|
|
321
|
+
#{VAR.$parent-selector} .origin-#{$key}\@#{$breakpoint},
|
|
322
|
+
#{VAR.$parent-selector} .hover\:origin-#{$key}\@#{$breakpoint}:hover,
|
|
323
|
+
#{VAR.$parent-selector} .group:hover .group-hover\:origin-#{$key}\@#{$breakpoint} {
|
|
324
|
+
@include origin($value);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
308
327
|
}
|
|
309
328
|
}
|
|
310
329
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
// _transitions.scss
|
|
2
2
|
@use "../abstracts/config" as VAR;
|
|
3
|
+
@use "../abstracts/functions" as FN;
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* - .ease-{type}: Set transition timing function
|
|
11
|
-
* - .delay-{time}: Set transition delay
|
|
12
|
-
*/
|
|
5
|
+
// Transition Utilities
|
|
6
|
+
// - .transition: Default transition for common properties
|
|
7
|
+
// - .transition-{property}: Transition specific properties
|
|
8
|
+
// - .duration-{time}: Set transition duration
|
|
9
|
+
// - .ease-{type}: Set transition timing function
|
|
10
|
+
// - .delay-{time}: Set transition delay
|
|
13
11
|
|
|
14
12
|
// Property-specific transition mixins
|
|
15
13
|
@mixin transition-none {
|
|
@@ -89,7 +87,7 @@ $delays: (
|
|
|
89
87
|
"1000": 1000ms,
|
|
90
88
|
);
|
|
91
89
|
|
|
92
|
-
@if
|
|
90
|
+
@if FN.feature-enabled("transitions") {
|
|
93
91
|
// Property-specific transitions
|
|
94
92
|
#{VAR.$parent-selector} .transition-none {
|
|
95
93
|
@include transition-none;
|
|
@@ -6,30 +6,25 @@
|
|
|
6
6
|
|
|
7
7
|
// Import variables
|
|
8
8
|
@use "../abstracts/config" as VAR;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* All utilities support responsive variants with @breakpoint suffix:
|
|
24
|
-
* - .text-lg@md, .font-bold@lg, etc.
|
|
25
|
-
*/
|
|
9
|
+
@use "../abstracts/functions" as FN;
|
|
10
|
+
|
|
11
|
+
// Typography Utilities
|
|
12
|
+
// Classes:
|
|
13
|
+
// - Font Size: .text-xs, .text-sm, .text-base, etc.
|
|
14
|
+
// - Font Weight: .font-thin, .font-normal, .font-bold, etc.
|
|
15
|
+
// - Line Height: .leading-none, .leading-tight, .leading-normal, etc.
|
|
16
|
+
// - Text Align: .text-left, .text-center, .text-right, .text-justify
|
|
17
|
+
// - Text Transform: .uppercase, .lowercase, .capitalize, .normal-case
|
|
18
|
+
// - Text Style: .italic, .not-italic
|
|
19
|
+
// - Text Decoration: .underline, .line-through, .no-underline
|
|
20
|
+
// - Text Overflow: .truncate
|
|
21
|
+
// All utilities support responsive variants with @breakpoint suffix:
|
|
22
|
+
// - .text-lg@md, .font-bold@lg, etc.
|
|
26
23
|
|
|
27
24
|
// Utilities for text sizes
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
* @param {string} $size - The size of the text.
|
|
32
|
-
*/
|
|
26
|
+
// Text size utility
|
|
27
|
+
// @param {string} $size - The size of the text.
|
|
33
28
|
@mixin text-size($size) {
|
|
34
29
|
@if map.has-key(VAR.$font-sizes, $size) {
|
|
35
30
|
font-size: map.get(VAR.$font-sizes, $size);
|
|
@@ -418,7 +413,7 @@
|
|
|
418
413
|
}
|
|
419
414
|
}
|
|
420
415
|
|
|
421
|
-
@if
|
|
416
|
+
@if FN.feature-enabled("typography") {
|
|
422
417
|
@include responsive-typography;
|
|
423
418
|
|
|
424
419
|
#{VAR.$parent-selector} .break-normal {
|
|
@@ -6,17 +6,14 @@
|
|
|
6
6
|
|
|
7
7
|
// Import variables
|
|
8
8
|
@use "../abstracts/config" as VAR;
|
|
9
|
+
@use "../abstracts/functions" as FN;
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
*
|
|
17
|
-
* All utilities support responsive variants with @breakpoint suffix:
|
|
18
|
-
* - .z-10@md, .z-dropdown@lg, etc.
|
|
19
|
-
*/
|
|
11
|
+
// Z-Index Utilities
|
|
12
|
+
// Classes:
|
|
13
|
+
// - z-index values: .z-0, .z-10, .z-20, etc.
|
|
14
|
+
// - Named z-index levels: .z-auto, .z-base, .z-dropdown, etc.
|
|
15
|
+
// All utilities support responsive variants with @breakpoint suffix:
|
|
16
|
+
// - .z-10@md, .z-dropdown@lg, etc.
|
|
20
17
|
|
|
21
18
|
// Z-index values map (can be moved to variables)
|
|
22
19
|
$z-indexes: (
|
|
@@ -53,10 +50,8 @@ $z-index-levels: (
|
|
|
53
50
|
"max": 9999,
|
|
54
51
|
);
|
|
55
52
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
* @param {Number|String} $value - Z-index value or key
|
|
59
|
-
*/
|
|
53
|
+
// Apply a z-index value
|
|
54
|
+
// @param {Number|String} $value - Z-index value or key
|
|
60
55
|
@mixin z-index($value) {
|
|
61
56
|
@if map.has-key($z-indexes, $value) {
|
|
62
57
|
z-index: map.get($z-indexes, $value);
|
|
@@ -67,10 +62,8 @@ $z-index-levels: (
|
|
|
67
62
|
}
|
|
68
63
|
}
|
|
69
64
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
* @param {String} $breakpoint - Optional breakpoint name for responsive variants
|
|
73
|
-
*/
|
|
65
|
+
// Generate z-index utility classes
|
|
66
|
+
// @param {String} $breakpoint - Optional breakpoint name for responsive variants
|
|
74
67
|
@mixin z-index-utilities($breakpoint: null) {
|
|
75
68
|
$suffix: if($breakpoint, "\\@#{$breakpoint}", "");
|
|
76
69
|
|
|
@@ -131,7 +124,7 @@ $z-index-levels: (
|
|
|
131
124
|
}
|
|
132
125
|
|
|
133
126
|
// Generate utility classes
|
|
134
|
-
@if
|
|
127
|
+
@if FN.feature-enabled("z-index") {
|
|
135
128
|
// Generate base utilities
|
|
136
129
|
@include z-index-utilities;
|
|
137
130
|
|