@nuvoui/core 1.1.8 → 1.2.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 (39) hide show
  1. package/README.md +90 -35
  2. package/dist/nuvoui.css +28531 -0
  3. package/dist/nuvoui.css.map +1 -0
  4. package/dist/nuvoui.min.css +2 -1
  5. package/dist/nuvoui.min.css.map +1 -0
  6. package/package.json +48 -27
  7. package/src/styles/abstracts/_config.scss +157 -0
  8. package/src/styles/abstracts/_functions.scss +81 -0
  9. package/src/styles/abstracts/_index.scss +2 -0
  10. package/src/styles/base/_base.scss +2 -2
  11. package/src/styles/base/_index.scss +2 -0
  12. package/src/styles/base/_reset.scss +8 -6
  13. package/src/styles/index.scss +11 -30
  14. package/src/styles/layouts/_container.scss +7 -23
  15. package/src/styles/layouts/_flex.scss +116 -113
  16. package/src/styles/layouts/_grid.scss +70 -100
  17. package/src/styles/layouts/_index.scss +3 -0
  18. package/src/styles/mixins-map.scss +1 -1515
  19. package/src/styles/themes/_index.scss +1 -0
  20. package/src/styles/themes/_theme.scss +175 -55
  21. package/src/styles/utilities/_alignment.scss +9 -7
  22. package/src/styles/utilities/_animations.scss +65 -61
  23. package/src/styles/utilities/_borders.scss +283 -18
  24. package/src/styles/utilities/_colors.scss +68 -49
  25. package/src/styles/utilities/_container-queries.scss +19 -18
  26. package/src/styles/utilities/_display.scss +59 -57
  27. package/src/styles/utilities/_helpers.scss +110 -108
  28. package/src/styles/utilities/_index.scss +19 -0
  29. package/src/styles/utilities/_media-queries.scss +68 -15
  30. package/src/styles/utilities/_opacity.scss +51 -27
  31. package/src/styles/utilities/_position.scss +38 -37
  32. package/src/styles/utilities/_shadows.scss +195 -137
  33. package/src/styles/utilities/_sizing.scss +74 -71
  34. package/src/styles/utilities/_spacing.scss +117 -99
  35. package/src/styles/utilities/_tooltips.scss +153 -105
  36. package/src/styles/utilities/_transitions.scss +77 -73
  37. package/src/styles/utilities/_typography.scss +23 -26
  38. package/src/styles/utilities/_functions.scss +0 -84
  39. package/src/styles/utilities/_variables.scss +0 -126
@@ -1,7 +1,7 @@
1
1
  @use 'sass:math';
2
2
  @use 'sass:string';
3
3
  @use 'sass:meta';
4
- @use './variables' as *;
4
+ @use '../abstracts' as *;
5
5
 
6
6
 
7
7
  /**
@@ -73,9 +73,9 @@
73
73
  * @see flex, grid, display
74
74
  */
75
75
 
76
- //-----------------------------------------------
76
+ // -----------------------------------------------
77
77
  // HELPER FUNCTIONS
78
- //-----------------------------------------------
78
+ // -----------------------------------------------
79
79
 
80
80
  /**
81
81
  * @function format-unit-value
@@ -108,16 +108,16 @@
108
108
  }
109
109
 
110
110
 
111
- //-----------------------------------------------
111
+ // -----------------------------------------------
112
112
  // PADDING MIXINS
113
- //-----------------------------------------------
113
+ // -----------------------------------------------
114
114
 
115
115
  /**
116
116
  * @mixin p
117
117
  * @description Sets padding on all sides
118
118
  * @param {Number|String} $val - Padding value
119
119
  */
120
- @mixin p($val) { padding: format-unit-value($val); }
120
+ @mixin p($val) { & { padding: format-unit-value($val); }}
121
121
 
122
122
  /**
123
123
  * @mixin px
@@ -126,6 +126,7 @@
126
126
  */
127
127
  @mixin px($val) {
128
128
  $val: format-unit-value($val);
129
+
129
130
  padding-left: $val;
130
131
  padding-right: $val;
131
132
  }
@@ -137,6 +138,7 @@
137
138
  */
138
139
  @mixin py($val) {
139
140
  $val: format-unit-value($val);
141
+
140
142
  padding-top: $val;
141
143
  padding-bottom: $val;
142
144
  }
@@ -169,9 +171,9 @@
169
171
  */
170
172
  @mixin pl($val) { $val: format-unit-value($val); padding-left: $val; }
171
173
 
172
- //-----------------------------------------------
174
+ // -----------------------------------------------
173
175
  // MARGIN MIXINS
174
- //-----------------------------------------------
176
+ // -----------------------------------------------
175
177
 
176
178
  /**
177
179
  * @mixin m
@@ -187,6 +189,7 @@
187
189
  */
188
190
  @mixin mx($val) {
189
191
  $val: format-unit-value($val);
192
+
190
193
  margin-left: $val;
191
194
  margin-right: $val;
192
195
  }
@@ -198,6 +201,7 @@
198
201
  */
199
202
  @mixin my($val) {
200
203
  $val: format-unit-value($val);
204
+
201
205
  margin-top: $val;
202
206
  margin-bottom: $val;
203
207
  }
@@ -249,27 +253,39 @@
249
253
  @mixin mx-auto { @include ml-auto; @include mr-auto; }
250
254
 
251
255
 
252
- //-----------------------------------------------
256
+ // -----------------------------------------------
253
257
  // SPACING MIXINS
254
- //-----------------------------------------------
258
+ // -----------------------------------------------
255
259
 
256
260
  /**
257
261
  * @mixin space-y
258
262
  * @description Adds vertical spacing between direct children
259
263
  * @param {Number|String} $i - Space amount
260
264
  */
261
- @mixin space-y($i) { & > * + * { $i: format-unit-value($i); margin-top: $i; } }
265
+ @mixin space-y($i) {
266
+ & > * + * {
267
+ $i: format-unit-value($i);
268
+
269
+ margin-top: $i;
270
+ }
271
+ }
262
272
 
263
273
  /**
264
274
  * @mixin space-x
265
275
  * @description Adds horizontal spacing between direct children
266
276
  * @param {Number|String} $i - Space amount
267
277
  */
268
- @mixin space-x($i) { & > * + * { $i: format-unit-value($i); margin-left: $i; } }
278
+ @mixin space-x($i) {
279
+ & > * + * {
280
+ $i: format-unit-value($i);
281
+
282
+ margin-left: $i;
283
+ }
284
+ }
269
285
 
270
- //-----------------------------------------------
286
+ // -----------------------------------------------
271
287
  // GAP MIXINS
272
- //-----------------------------------------------
288
+ // -----------------------------------------------
273
289
 
274
290
  /**
275
291
  * @mixin gap
@@ -292,91 +308,93 @@
292
308
  */
293
309
  @mixin gap-y($val) { $val: format-unit-value($val); row-gap: $val; }
294
310
 
295
- //-----------------------------------------------
296
- // AUTO MARGIN UTILITY CLASSES
297
- //-----------------------------------------------
298
-
299
- .mx-auto { @include mx-auto; }
300
- .ml-auto { @include ml-auto; }
301
- .mr-auto { @include mr-auto; }
302
-
303
- //-----------------------------------------------
304
- // GAP AUTO CLASS
305
- //-----------------------------------------------
306
-
307
- .gap-auto { gap: auto; }
308
-
309
- //-----------------------------------------------
310
- // SPACING CLASSES
311
- //-----------------------------------------------
312
-
313
- @each $key, $value in $spacings {
314
- // Padding classes
315
- .p-#{$key} { @include p($value); }
316
- .px-#{$key} { @include px($value); }
317
- .py-#{$key} { @include py($value); }
318
- .pt-#{$key} { @include pt($value); }
319
- .pr-#{$key} { @include pr($value); }
320
- .pb-#{$key} { @include pb($value); }
321
- .pl-#{$key} { @include pl($value); }
322
-
323
- // Margin classes
324
- .m-#{$key} { @include m($value); }
325
- .mx-#{$key} { @include mx($value); }
326
- .my-#{$key} { @include my($value); }
327
- .mt-#{$key} { @include mt($value); }
328
- .mr-#{$key} { @include mr($value); }
329
- .mb-#{$key} { @include mb($value); }
330
- .ml-#{$key} { @include ml($value); }
331
-
332
- // Gap classes
333
- .gap-#{$key} { @include gap($value); }
334
- .gap-x-#{$key} { @include gap-x($value); }
335
- .gap-y-#{$key} { @include gap-y($value); }
336
-
337
- // Space classes
338
- .space-x-#{$key} { @include space-x($value); }
339
- .space-y-#{$key} { @include space-y($value); }
340
- }
311
+ @if $generate-utility-classes {
312
+ // -----------------------------------------------
313
+ // AUTO MARGIN UTILITY CLASSES
314
+ // -----------------------------------------------
315
+
316
+ .mx-auto { @include mx-auto; }
317
+ .ml-auto { @include ml-auto; }
318
+ .mr-auto { @include mr-auto; }
319
+
320
+ // -----------------------------------------------
321
+ // GAP AUTO CLASS
322
+ // -----------------------------------------------
323
+
324
+ .gap-auto { gap: auto; }
325
+
326
+ // -----------------------------------------------
327
+ // SPACING CLASSES
328
+ // -----------------------------------------------
329
+
330
+ @each $key, $value in $spacings {
331
+ // Padding classes
332
+ .p-#{$key} { @include p($value); }
333
+ .px-#{$key} { @include px($value); }
334
+ .py-#{$key} { @include py($value); }
335
+ .pt-#{$key} { @include pt($value); }
336
+ .pr-#{$key} { @include pr($value); }
337
+ .pb-#{$key} { @include pb($value); }
338
+ .pl-#{$key} { @include pl($value); }
339
+
340
+ // Margin classes
341
+ .m-#{$key} { @include m($value); }
342
+ .mx-#{$key} { @include mx($value); }
343
+ .my-#{$key} { @include my($value); }
344
+ .mt-#{$key} { @include mt($value); }
345
+ .mr-#{$key} { @include mr($value); }
346
+ .mb-#{$key} { @include mb($value); }
347
+ .ml-#{$key} { @include ml($value); }
348
+
349
+ // Gap classes
350
+ .gap-#{$key} { @include gap($value); }
351
+ .gap-x-#{$key} { @include gap-x($value); }
352
+ .gap-y-#{$key} { @include gap-y($value); }
353
+
354
+ // Space classes
355
+ .space-x-#{$key} { @include space-x($value); }
356
+ .space-y-#{$key} { @include space-y($value); }
357
+ }
341
358
 
342
359
 
343
- //-----------------------------------------------
344
- // RESPONSIVE SPACING CLASSES
345
- //-----------------------------------------------
346
-
347
- @each $breakpoint, $width in $breakpoints {
348
- @media (min-width: #{$width}) {
349
- .mx-auto\@#{$breakpoint} { @include mx-auto; }
350
- .ml-auto\@#{$breakpoint} { @include ml-auto; }
351
- .mr-auto\@#{$breakpoint} { @include mr-auto; }
352
-
353
- // Generate utilities from spacing map
354
- @each $key, $value in $spacings {
355
- // Padding classes
356
- .p-#{$key}\@#{$breakpoint} { @include p($value); }
357
- .px-#{$key}\@#{$breakpoint} { @include px($value); }
358
- .py-#{$key}\@#{$breakpoint} { @include py($value); }
359
- .pt-#{$key}\@#{$breakpoint} { @include pt($value); }
360
- .pr-#{$key}\@#{$breakpoint} { @include pr($value); }
361
- .pb-#{$key}\@#{$breakpoint} { @include pb($value); }
362
- .pl-#{$key}\@#{$breakpoint} { @include pl($value); }
363
-
364
- // Margin classes
365
- .m-#{$key}\@#{$breakpoint} { @include m($value); }
366
- .mx-#{$key}\@#{$breakpoint} { @include mx($value); }
367
- .my-#{$key}\@#{$breakpoint} { @include my($value); }
368
- .mt-#{$key}\@#{$breakpoint} { @include mt($value); }
369
- .mr-#{$key}\@#{$breakpoint} { @include mr($value); }
370
- .mb-#{$key}\@#{$breakpoint} { @include mb($value); }
371
- .ml-#{$key}\@#{$breakpoint} { @include ml($value); }
372
-
373
- .gap-#{$key}\@#{$breakpoint} { gap: $value; }
374
- .gap-x-#{$key}\@#{$breakpoint} { column-gap: $value; }
375
- .gap-y-#{$key}\@#{$breakpoint} { row-gap: $value; }
376
-
377
- // Space classes
378
- .space-x-#{$key}\@#{$breakpoint} { @include space-x($value); }
379
- .space-y-#{$key}\@#{$breakpoint} { @include space-y($value); }
380
- }
381
- }
360
+ // -----------------------------------------------
361
+ // RESPONSIVE SPACING CLASSES
362
+ // -----------------------------------------------
363
+
364
+ @each $breakpoint, $width in $breakpoints {
365
+ @media (min-width: #{$width}) {
366
+ .mx-auto\@#{$breakpoint} { @include mx-auto; }
367
+ .ml-auto\@#{$breakpoint} { @include ml-auto; }
368
+ .mr-auto\@#{$breakpoint} { @include mr-auto; }
369
+
370
+ // Generate utilities from spacing map
371
+ @each $key, $value in $spacings {
372
+ // Padding classes
373
+ .p-#{$key}\@#{$breakpoint} { @include p($value); }
374
+ .px-#{$key}\@#{$breakpoint} { @include px($value); }
375
+ .py-#{$key}\@#{$breakpoint} { @include py($value); }
376
+ .pt-#{$key}\@#{$breakpoint} { @include pt($value); }
377
+ .pr-#{$key}\@#{$breakpoint} { @include pr($value); }
378
+ .pb-#{$key}\@#{$breakpoint} { @include pb($value); }
379
+ .pl-#{$key}\@#{$breakpoint} { @include pl($value); }
380
+
381
+ // Margin classes
382
+ .m-#{$key}\@#{$breakpoint} { @include m($value); }
383
+ .mx-#{$key}\@#{$breakpoint} { @include mx($value); }
384
+ .my-#{$key}\@#{$breakpoint} { @include my($value); }
385
+ .mt-#{$key}\@#{$breakpoint} { @include mt($value); }
386
+ .mr-#{$key}\@#{$breakpoint} { @include mr($value); }
387
+ .mb-#{$key}\@#{$breakpoint} { @include mb($value); }
388
+ .ml-#{$key}\@#{$breakpoint} { @include ml($value); }
389
+
390
+ .gap-#{$key}\@#{$breakpoint} { gap: $value; }
391
+ .gap-x-#{$key}\@#{$breakpoint} { column-gap: $value; }
392
+ .gap-y-#{$key}\@#{$breakpoint} { row-gap: $value; }
393
+
394
+ // Space classes
395
+ .space-x-#{$key}\@#{$breakpoint} { @include space-x($value); }
396
+ .space-y-#{$key}\@#{$breakpoint} { @include space-y($value); }
397
+ }
398
+ }
399
+ }
382
400
  }
@@ -1,95 +1,130 @@
1
+ :root {
2
+ // Tooltip core variables
3
+ --tooltip-bg: rgba(17 17 17 / 90%);
4
+ --tooltip-shadow-color: rgb(0 0 0 / 20%);
5
+ --tooltip-text-color: #FFF;
1
6
 
7
+ // Animation variables
8
+ --microtip-transition-duration: 0.18s;
9
+ --microtip-transition-easing: ease-in-out;
10
+ --microtip-transition-delay: 0s;
2
11
 
3
- [data-tooltip][role~="tooltip"] {
4
- position: relative
12
+ // Typography variables
13
+ --microtip-font-size: 13px;
14
+ --microtip-font-weight: normal;
15
+ --microtip-text-transform: none;
16
+
17
+ // Sizing variables
18
+ --tooltip-small-width: 80px;
19
+ --tooltip-medium-width: 150px;
20
+ --tooltip-large-width: 260px;
21
+ --tooltip-border-radius: 4px;
5
22
  }
6
23
 
7
- [data-tooltip][role~="tooltip"]::before,
8
- [data-tooltip][role~="tooltip"]::after {
24
+ [data-tooltip][role~="tooltip"] {
25
+ position: relative;
26
+
27
+ &::before,
28
+ &::after {
9
29
  transform: translate3d(0, 0, 0);
10
30
  backface-visibility: hidden;
11
31
  will-change: transform;
12
32
  opacity: 0;
13
33
  pointer-events: none;
14
- transition: all var(--microtip-transition-duration, .18s) var(--microtip-transition-easing, ease-in-out) var(--microtip-transition-delay, 0s);
34
+ transition: all var(--microtip-transition-duration) var(--microtip-transition-easing)
35
+ var(--microtip-transition-delay);
15
36
  position: absolute;
16
37
  box-sizing: border-box;
17
38
  z-index: 10;
18
- transform-origin: top
19
- }
39
+ transform-origin: top;
40
+ }
20
41
 
21
- [data-tooltip][role~="tooltip"]::before {
42
+ &::before {
22
43
  background-size: 100% auto !important;
23
- content: ""
24
- }
44
+ content: "";
45
+ }
25
46
 
26
- [data-tooltip][role~="tooltip"]::after {
27
- background: var(--tooltip-bg); // todo: change to a variable
47
+ &::after {
48
+ background: var(--tooltip-bg);
28
49
  box-shadow: 0 3px 7px var(--tooltip-shadow-color);
29
- border-radius: 4px;
30
- color: #fff;
50
+ border-radius: var(--tooltip-border-radius);
51
+ color: var(--tooltip-text-color);
31
52
  content: attr(data-tooltip);
32
- font-size: var(--microtip-font-size, 13px);
33
- font-weight: var(--microtip-font-weight, normal);
34
- text-transform: var(--microtip-text-transform, none);
35
- padding: .5em 1em;
53
+ font-size: var(--microtip-font-size);
54
+ font-weight: var(--microtip-font-weight);
55
+ text-transform: var(--microtip-text-transform);
56
+ padding: 0.5em 1em;
36
57
  white-space: nowrap;
37
- box-sizing: content-box
38
- }
58
+ box-sizing: content-box;
59
+ }
39
60
 
40
- [data-tooltip][role~="tooltip"]:hover::before,
41
- [data-tooltip][role~="tooltip"]:hover::after,
42
- [data-tooltip][role~="tooltip"]:focus::before,
43
- [data-tooltip][role~="tooltip"]:focus::after {
61
+ &:hover::before,
62
+ &:hover::after,
63
+ &:focus::before,
64
+ &:focus::after {
44
65
  opacity: 1;
45
- pointer-events: auto
66
+ pointer-events: auto;
67
+ }
46
68
  }
47
69
 
48
- [role~="tooltip"][data-microtip-position|="top"]::before {
49
- 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;
70
+ // Top position tooltips
71
+ [role~="tooltip"][data-microtip-position|="top"] {
72
+ &::before {
73
+ 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")
74
+ no-repeat;
50
75
  height: 6px;
51
76
  width: 18px;
52
77
  margin-bottom: 5px;
53
78
  transform: translate3d(-50%, 0, 0);
54
79
  bottom: 100%;
55
- left: 50%
56
- }
80
+ left: 50%;
81
+ }
57
82
 
58
- [role~="tooltip"][data-microtip-position|="top"]::after {
83
+ &::after {
59
84
  margin-bottom: 11px;
60
85
  transform: translate3d(-50%, 0, 0);
61
86
  bottom: 100%;
62
- left: 50%
63
- }
87
+ left: 50%;
88
+ }
64
89
 
65
- [role~="tooltip"][data-microtip-position|="top"]:hover::before {
66
- transform: translate3d(-50%, -5px, 0)
90
+ &:hover::before {
91
+ transform: translate3d(-50%, -5px, 0);
92
+ }
67
93
  }
68
94
 
69
- [role~="tooltip"][data-microtip-position="top"]:hover::after {
70
- transform: translate3d(-50%, -5px, 0)
95
+ [role~="tooltip"][data-microtip-position="top"] {
96
+ &:hover::after {
97
+ transform: translate3d(-50%, -5px, 0);
98
+ }
71
99
  }
72
100
 
73
- [role~="tooltip"][data-microtip-position="top-left"]::after {
101
+ [role~="tooltip"][data-microtip-position="top-left"] {
102
+ &::after {
74
103
  transform: translate3d(calc(-100% + 16px), 0, 0);
75
- bottom: 100%
76
- }
104
+ bottom: 100%;
105
+ }
77
106
 
78
- [role~="tooltip"][data-microtip-position="top-left"]:hover::after {
79
- transform: translate3d(calc(-100% + 16px), -5px, 0)
107
+ &:hover::after {
108
+ transform: translate3d(calc(-100% + 16px), -5px, 0);
109
+ }
80
110
  }
81
111
 
82
- [role~="tooltip"][data-microtip-position="top-right"]::after {
112
+ [role~="tooltip"][data-microtip-position="top-right"] {
113
+ &::after {
83
114
  transform: translate3d(calc(0% + -16px), 0, 0);
84
- bottom: 100%
85
- }
115
+ bottom: 100%;
116
+ }
86
117
 
87
- [role~="tooltip"][data-microtip-position="top-right"]:hover::after {
88
- transform: translate3d(calc(0% + -16px), -5px, 0)
118
+ &:hover::after {
119
+ transform: translate3d(calc(0% + -16px), -5px, 0);
120
+ }
89
121
  }
90
122
 
91
- [role~="tooltip"][data-microtip-position|="bottom"]::before {
92
- 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;
123
+ // Bottom position tooltips
124
+ [role~="tooltip"][data-microtip-position|="bottom"] {
125
+ &::before {
126
+ 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")
127
+ no-repeat;
93
128
  height: 6px;
94
129
  width: 18px;
95
130
  margin-top: 5px;
@@ -97,104 +132,117 @@
97
132
  transform: translate3d(-50%, -10px, 0);
98
133
  bottom: auto;
99
134
  left: 50%;
100
- top: 100%
101
- }
135
+ top: 100%;
136
+ }
102
137
 
103
- [role~="tooltip"][data-microtip-position|="bottom"]::after {
138
+ &::after {
104
139
  margin-top: 11px;
105
140
  transform: translate3d(-50%, -10px, 0);
106
141
  top: 100%;
107
- left: 50%
108
- }
109
-
110
-
142
+ left: 50%;
143
+ }
111
144
 
112
- [role~="tooltip"][data-microtip-position|="bottom"]:hover::before {
113
- transform: translate3d(-50%, 0, 0)
145
+ &:hover::before {
146
+ transform: translate3d(-50%, 0, 0);
147
+ }
114
148
  }
115
149
 
116
-
117
- [role~="tooltip"][data-microtip-position="bottom"]:hover::after {
118
- transform: translate3d(-50%, 0, 0)
150
+ [role~="tooltip"][data-microtip-position="bottom"] {
151
+ &:hover::after {
152
+ transform: translate3d(-50%, 0, 0);
153
+ }
119
154
  }
120
155
 
121
- [role~="tooltip"][data-microtip-position="bottom-left"]::after {
156
+ [role~="tooltip"][data-microtip-position="bottom-left"] {
157
+ &::after {
122
158
  transform: translate3d(calc(-100% + 16px), -10px, 0);
123
- top: 100%
124
- }
159
+ top: 100%;
160
+ }
125
161
 
126
- [role~="tooltip"][data-microtip-position="bottom-left"]:hover::after {
127
- transform: translate3d(calc(-100% + 16px), 0, 0)
162
+ &:hover::after {
163
+ transform: translate3d(calc(-100% + 16px), 0, 0);
164
+ }
128
165
  }
129
166
 
130
- [role~="tooltip"][data-microtip-position="bottom-right"]::after {
167
+ [role~="tooltip"][data-microtip-position="bottom-right"] {
168
+ &::after {
131
169
  transform: translate3d(calc(0% + -16px), -10px, 0);
132
- top: 100%
133
- }
170
+ top: 100%;
171
+ }
134
172
 
135
- [role~="tooltip"][data-microtip-position="bottom-right"]:hover::after {
136
- transform: translate3d(calc(0% + -16px), 0, 0)
173
+ &:hover::after {
174
+ transform: translate3d(calc(0% + -16px), 0, 0);
175
+ }
137
176
  }
138
177
 
139
- [role~="tooltip"][data-microtip-position="left"]::before,
140
- [role~="tooltip"][data-microtip-position="left"]::after {
178
+ // Left position tooltips
179
+ [role~="tooltip"][data-microtip-position="left"] {
180
+ &::before,
181
+ &::after {
141
182
  inset: auto auto auto 100%;
142
- transform: translate3d(10px, -50%, 0)
143
- }
183
+ transform: translate3d(10px, -50%, 0);
184
+ }
144
185
 
145
- [role~="tooltip"][data-microtip-position="left"]::before {
146
- 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;
186
+ &::before {
187
+ 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")
188
+ no-repeat;
147
189
  height: 18px;
148
190
  width: 6px;
149
191
  margin-right: 5px;
150
- margin-bottom: 0
151
- }
192
+ margin-bottom: 0;
193
+ }
152
194
 
153
- [role~="tooltip"][data-microtip-position="left"]::after {
154
- margin-right: 11px
155
- }
195
+ &::after {
196
+ margin-right: 11px;
197
+ }
156
198
 
157
- [role~="tooltip"][data-microtip-position="left"]:hover::before,
158
- [role~="tooltip"][data-microtip-position="left"]:hover::after {
159
- transform: translate3d(0, -50%, 0)
199
+ &:hover::before,
200
+ &:hover::after {
201
+ transform: translate3d(0, -50%, 0);
202
+ }
160
203
  }
161
204
 
162
- [role~="tooltip"][data-microtip-position="right"]::before,
163
- [role~="tooltip"][data-microtip-position="right"]::after {
205
+ // Right position tooltips
206
+ [role~="tooltip"][data-microtip-position="right"] {
207
+ &::before,
208
+ &::after {
164
209
  bottom: auto;
165
210
  left: 100%;
166
211
  top: 50%;
167
- transform: translate3d(-10px, -50%, 0)
168
- }
212
+ transform: translate3d(-10px, -50%, 0);
213
+ }
169
214
 
170
- [role~="tooltip"][data-microtip-position="right"]::before {
171
- 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;
215
+ &::before {
216
+ 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")
217
+ no-repeat;
172
218
  height: 18px;
173
219
  width: 6px;
174
220
  margin-bottom: 0;
175
- margin-left: 5px
176
- }
221
+ margin-left: 5px;
222
+ }
177
223
 
178
- [role~="tooltip"][data-microtip-position="right"]::after {
179
- margin-left: 11px
180
- }
224
+ &::after {
225
+ margin-left: 11px;
226
+ }
181
227
 
182
- [role~="tooltip"][data-microtip-position="right"]:hover::before,
183
- [role~="tooltip"][data-microtip-position="right"]:hover::after {
184
- transform: translate3d(0, -50%, 0)
228
+ &:hover::before,
229
+ &:hover::after {
230
+ transform: translate3d(0, -50%, 0);
231
+ }
185
232
  }
186
233
 
234
+ // Tooltip sizes
187
235
  [role~="tooltip"][data-microtip-size="small"]::after {
188
- white-space: initial;
189
- width: 80px
236
+ white-space: initial;
237
+ width: var(--tooltip-small-width);
190
238
  }
191
239
 
192
240
  [role~="tooltip"][data-microtip-size="medium"]::after {
193
- white-space: initial;
194
- width: 150px
241
+ white-space: initial;
242
+ width: var(--tooltip-medium-width);
195
243
  }
196
244
 
197
245
  [role~="tooltip"][data-microtip-size="large"]::after {
198
- white-space: initial;
199
- width: 260px
200
- }
246
+ white-space: initial;
247
+ width: var(--tooltip-large-width);
248
+ }