@nuvoui/core 1.3.0 → 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.
Files changed (33) hide show
  1. package/dist/nuvoui.css +230 -922
  2. package/dist/nuvoui.css.map +1 -1
  3. package/dist/nuvoui.min.css +1 -1
  4. package/dist/nuvoui.min.css.map +1 -1
  5. package/package.json +2 -2
  6. package/src/styles/abstracts/_config.scss +25 -2
  7. package/src/styles/abstracts/_functions.scss +16 -5
  8. package/src/styles/base/_base.scss +2 -2
  9. package/src/styles/base/_reset.scss +0 -2
  10. package/src/styles/build.scss +3 -0
  11. package/src/styles/layouts/_container.scss +8 -1
  12. package/src/styles/layouts/_flex.scss +125 -207
  13. package/src/styles/layouts/_grid.scss +16 -29
  14. package/src/styles/themes/_theme.scss +10 -10
  15. package/src/styles/utilities/_alignment.scss +2 -1
  16. package/src/styles/utilities/_animations.scss +20 -32
  17. package/src/styles/utilities/_backdrop-filters.scss +7 -11
  18. package/src/styles/utilities/_borders.scss +3 -5
  19. package/src/styles/utilities/_container-queries.scss +17 -21
  20. package/src/styles/utilities/_cursor.scss +2 -1
  21. package/src/styles/utilities/_display.scss +17 -37
  22. package/src/styles/utilities/_helpers.scss +1 -0
  23. package/src/styles/utilities/_media-queries.scss +3 -5
  24. package/src/styles/utilities/_opacity.scss +52 -67
  25. package/src/styles/utilities/_position.scss +104 -132
  26. package/src/styles/utilities/_shadows.scss +9 -14
  27. package/src/styles/utilities/_sizing.scss +1 -1
  28. package/src/styles/utilities/_spacing.scss +143 -205
  29. package/src/styles/utilities/_tooltips.scss +203 -200
  30. package/src/styles/utilities/_transforms.scss +9 -11
  31. package/src/styles/utilities/_transitions.scss +8 -10
  32. package/src/styles/utilities/_typography.scss +17 -22
  33. 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
- // Apply variables based on parent selector
27
- @if VAR.$parent-selector == "" {
28
- :root {
29
- @include tooltip-variables;
30
- }
31
- } @else {
32
- #{VAR.$parent-selector} {
33
- @include tooltip-variables;
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
- &:hover::after {
117
- transform: translate3d(calc(-100% + 16px), -5px, 0);
118
- }
119
- }
120
-
121
- #{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="top-right"] {
122
- &::after {
123
- transform: translate3d(calc(0% + -16px), 0, 0);
124
- bottom: 100%;
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
- &:hover::after {
128
- transform: translate3d(calc(0% + -16px), -5px, 0);
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
- // Bottom position tooltips
133
- #{VAR.$parent-selector} [role~="tooltip"][data-microtip-position|="bottom"] {
134
- &::before {
135
- 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;
136
- height: 6px;
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
- &::after {
147
- margin-top: 11px;
148
- transform: translate3d(-50%, -10px, 0);
149
- top: 100%;
150
- left: 50%;
118
+ &:hover::after {
119
+ transform: translate3d(calc(-100% + 16px), -5px, 0);
120
+ }
151
121
  }
152
122
 
153
- &:hover::before {
154
- transform: translate3d(-50%, 0, 0);
155
- }
156
-
157
- &:hover::after {
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
- &:hover::after {
169
- transform: translate3d(calc(-100% + 16px), 0, 0);
129
+ &:hover::after {
130
+ transform: translate3d(calc(0% + -16px), -5px, 0);
131
+ }
170
132
  }
171
- }
172
133
 
173
- #{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="bottom-right"] {
174
- &::after {
175
- transform: translate3d(calc(0% + -16px), -10px, 0);
176
- top: 100%;
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
- &:hover::after {
180
- transform: translate3d(calc(0% + -16px), 0, 0);
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
- // Left position tooltips
185
- #{VAR.$parent-selector} [role~="tooltip"][data-microtip-position="left"] {
186
- &::before,
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
- &::before {
196
- 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;
197
- height: 18px;
198
- width: 6px;
199
- margin-right: 5px;
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
- &::after {
204
- margin-right: 11px;
181
+ &:hover::after {
182
+ transform: translate3d(calc(0% + -16px), 0, 0);
183
+ }
205
184
  }
206
185
 
207
- &:hover::before,
208
- &:hover::after {
209
- transform: translate3d(0, -50%, 0);
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
- &::before,
216
- &::after {
217
- bottom: auto;
218
- left: 100%;
219
- top: 50%;
220
- transform: translate3d(-10px, -50%, 0);
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
- &::before {
224
- 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;
225
- height: 18px;
226
- width: 6px;
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
- &::after {
232
- margin-left: 11px;
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
- &:hover::before,
236
- &:hover::after {
237
- transform: translate3d(0, -50%, 0);
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
- * Transform Utilities
6
- *
7
- * - Translate (X, Y, Z)
8
- * - Scale
9
- * - Rotate
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 VAR.$generate-utility-classes {
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},
@@ -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
- * Transition Utilities
6
- *
7
- * - .transition: Default transition for common properties
8
- * - .transition-{property}: Transition specific properties
9
- * - .duration-{time}: Set transition duration
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 VAR.$generate-utility-classes {
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
- * Typography Utilities
12
- *
13
- * Classes:
14
- * - Font Size: .text-xs, .text-sm, .text-base, etc.
15
- * - Font Weight: .font-thin, .font-normal, .font-bold, etc.
16
- * - Line Height: .leading-none, .leading-tight, .leading-normal, etc.
17
- * - Text Align: .text-left, .text-center, .text-right, .text-justify
18
- * - Text Transform: .uppercase, .lowercase, .capitalize, .normal-case
19
- * - Text Style: .italic, .not-italic
20
- * - Text Decoration: .underline, .line-through, .no-underline
21
- * - Text Overflow: .truncate
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
- * Text size utility
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 VAR.$generate-utility-classes {
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
- * Z-Index Utilities
12
- *
13
- * Classes:
14
- * - z-index values: .z-0, .z-10, .z-20, etc.
15
- * - Named z-index levels: .z-auto, .z-base, .z-dropdown, etc.
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
- * Apply a z-index value
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
- * Generate z-index utility classes
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 VAR.$generate-utility-classes {
127
+ @if FN.feature-enabled("z-index") {
135
128
  // Generate base utilities
136
129
  @include z-index-utilities;
137
130