@volverjs/style 0.1.2-beta.8 → 0.1.2

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 (180) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +53 -46
  3. package/dist/components/vv-accordion.css +1 -1
  4. package/dist/components/vv-alert.css +1 -0
  5. package/dist/components/vv-avatar.css +1 -0
  6. package/dist/components/vv-badge.css +1 -1
  7. package/dist/components/vv-breadcrumb.css +1 -1
  8. package/dist/components/vv-button-group.css +1 -1
  9. package/dist/components/vv-button.css +1 -1
  10. package/dist/components/vv-card.css +1 -1
  11. package/dist/components/vv-checkbox-group.css +1 -0
  12. package/dist/components/vv-checkbox.css +1 -0
  13. package/dist/components/vv-dialog.css +1 -1
  14. package/dist/components/vv-dropdown.css +1 -1
  15. package/dist/components/vv-input-text.css +1 -1
  16. package/dist/components/vv-nav.css +1 -1
  17. package/dist/components/vv-progress.css +1 -1
  18. package/dist/components/vv-radio-group.css +1 -0
  19. package/dist/components/vv-radio.css +1 -0
  20. package/dist/components/vv-select.css +1 -1
  21. package/dist/components/vv-skeleton.css +1 -0
  22. package/dist/components/vv-tab.css +1 -0
  23. package/dist/components/vv-table.css +1 -1
  24. package/dist/components/vv-text.css +1 -1
  25. package/dist/components/vv-textarea.css +1 -1
  26. package/dist/components/vv-toast.css +1 -0
  27. package/dist/components/vv-tooltip.css +1 -0
  28. package/dist/components.css +1 -1
  29. package/dist/export.css +1 -1
  30. package/dist/props/background.css +1 -1
  31. package/dist/props/breakpoints.css +1 -0
  32. package/dist/props/colors.css +1 -1
  33. package/dist/props/filters.css +1 -1
  34. package/dist/props/input.css +1 -1
  35. package/dist/props/layout.css +1 -1
  36. package/dist/props/spacing.css +1 -1
  37. package/dist/props/transitions.css +1 -0
  38. package/dist/props.css +1 -1
  39. package/dist/themes/dark/components.css +1 -1
  40. package/dist/themes/dark/props.css +1 -1
  41. package/dist/themes/dark/volver.css +1 -1
  42. package/dist/utilities/backgrounds.css +1 -1
  43. package/dist/utilities/borders.css +1 -1
  44. package/dist/utilities/colors.css +1 -1
  45. package/dist/utilities/effects.css +1 -1
  46. package/dist/utilities/filters.css +1 -1
  47. package/dist/utilities/flexbox.css +1 -1
  48. package/dist/utilities/interactivity.css +1 -0
  49. package/dist/utilities/layout.css +1 -1
  50. package/dist/utilities/sizing.css +1 -1
  51. package/dist/utilities/spacing.css +1 -1
  52. package/dist/utilities/transitions.css +1 -0
  53. package/dist/utilities/typography.css +1 -1
  54. package/dist/utilities.css +1 -1
  55. package/dist/volver.css +1 -1
  56. package/package.json +57 -37
  57. package/src/_config.scss +17 -11
  58. package/src/_context.scss +3 -3
  59. package/src/_preflight.scss +308 -247
  60. package/src/components/index.scss +25 -19
  61. package/src/components/vv-accordion.scss +3 -2
  62. package/src/components/vv-alert.scss +13 -0
  63. package/src/components/vv-avatar.scss +13 -0
  64. package/src/components/vv-badge.scss +3 -2
  65. package/src/components/vv-breadcrumb.scss +3 -2
  66. package/src/components/vv-button-group.scss +11 -10
  67. package/src/components/vv-button.scss +5 -8
  68. package/src/components/vv-card.scss +3 -2
  69. package/src/components/vv-checkbox-group.scss +13 -0
  70. package/src/components/{vv-input-checkbox.scss → vv-checkbox.scss} +7 -6
  71. package/src/components/vv-dialog.scss +3 -2
  72. package/src/components/vv-dropdown.scss +3 -2
  73. package/src/components/vv-input-text.scss +6 -5
  74. package/src/components/vv-nav.scss +3 -2
  75. package/src/components/vv-progress.scss +3 -2
  76. package/src/components/vv-radio-group.scss +13 -0
  77. package/src/components/{vv-input-radio.scss → vv-radio.scss} +6 -5
  78. package/src/components/vv-select.scss +6 -5
  79. package/src/components/vv-skeleton.scss +14 -0
  80. package/src/components/vv-tab.scss +13 -0
  81. package/src/components/vv-table.scss +3 -2
  82. package/src/components/vv-text.scss +3 -2
  83. package/src/components/vv-textarea.scss +6 -5
  84. package/src/components/vv-toast.scss +13 -0
  85. package/src/components/vv-tooltip.scss +33 -0
  86. package/src/export.scss +89 -27
  87. package/src/props/background.scss +1 -1
  88. package/src/props/borders.scss +1 -1
  89. package/src/props/breakpoints.scss +15 -0
  90. package/src/props/colors.scss +1 -1
  91. package/src/props/effects.scss +1 -1
  92. package/src/props/filters.scss +2 -1
  93. package/src/props/index.scss +13 -12
  94. package/src/props/input.scss +1 -1
  95. package/src/props/layout.scss +1 -1
  96. package/src/props/media.scss +1 -1
  97. package/src/props/sizing.scss +1 -1
  98. package/src/props/spacing.scss +2 -2
  99. package/src/props/{animation.scss → transitions.scss} +53 -2
  100. package/src/props/typography.scss +2 -2
  101. package/src/settings/_background.scss +6 -1
  102. package/src/settings/_breakpoints.scss +2 -0
  103. package/src/settings/_colors.scss +23 -4
  104. package/src/settings/_effects.scss +47 -2
  105. package/src/settings/_filters.scss +9 -0
  106. package/src/settings/_index.scss +40 -33
  107. package/src/settings/_input.scss +8 -6
  108. package/src/settings/_interactivity.scss +39 -0
  109. package/src/settings/_layout.scss +18 -10
  110. package/src/settings/_spacing.scss +1 -0
  111. package/src/settings/_transitions.scss +44 -0
  112. package/src/settings/components/_vv-accordion.scss +40 -34
  113. package/src/settings/components/_vv-alert.scss +161 -0
  114. package/src/settings/components/_vv-avatar.scss +55 -0
  115. package/src/settings/components/_vv-badge.scss +43 -11
  116. package/src/settings/components/_vv-breadcrumb.scss +23 -15
  117. package/src/settings/components/_vv-button-group.scss +4 -0
  118. package/src/settings/components/_vv-button.scss +30 -25
  119. package/src/settings/components/_vv-card.scss +2 -2
  120. package/src/settings/components/{_vv-input-checkbox-group.scss → _vv-checkbox-group.scss} +2 -1
  121. package/src/settings/components/{_vv-input-checkbox.scss → _vv-checkbox.scss} +46 -11
  122. package/src/settings/components/_vv-dialog.scss +71 -89
  123. package/src/settings/components/_vv-input-text.scss +83 -37
  124. package/src/settings/components/_vv-nav.scss +98 -13
  125. package/src/settings/components/_vv-progress.scss +1 -1
  126. package/src/settings/components/_vv-radio-group.scss +3 -0
  127. package/src/settings/components/{_vv-input-radio.scss → _vv-radio.scss} +33 -4
  128. package/src/settings/components/_vv-select.scss +34 -43
  129. package/src/settings/components/_vv-skeleton.scss +22 -0
  130. package/src/settings/components/_vv-tab.scss +16 -0
  131. package/src/settings/components/_vv-table.scss +8 -1
  132. package/src/settings/components/_vv-text.scss +20 -0
  133. package/src/settings/components/_vv-textarea.scss +49 -24
  134. package/src/settings/components/_vv-toast.scss +259 -0
  135. package/src/settings/components/_vv-tooltip.scss +74 -0
  136. package/src/themes/dark/_context.scss +7 -4
  137. package/src/themes/dark/components/_vv-button.scss +2 -4
  138. package/src/themes/dark/components/index.scss +1 -2
  139. package/src/themes/dark/props/_background.scss +1 -1
  140. package/src/themes/dark/props/_colors.scss +1 -1
  141. package/src/themes/dark/props/_input.scss +15 -0
  142. package/src/themes/dark/props/index.scss +3 -2
  143. package/src/themes/dark/settings/_background.scss +5 -0
  144. package/src/themes/dark/settings/_colors.scss +22 -2
  145. package/src/themes/dark/settings/_index.scss +4 -4
  146. package/src/themes/dark/settings/_input.scss +8 -0
  147. package/src/themes/dark/settings/components/_vv-button.scss +9 -9
  148. package/src/themes/dark/volver.scss +2 -2
  149. package/src/tools/_breakpoints.scss +7 -7
  150. package/src/tools/_functions.scss +95 -37
  151. package/src/tools/_index.scss +3 -3
  152. package/src/tools/_mixins.scss +166 -35
  153. package/src/utilities/backgrounds.scss +15 -8
  154. package/src/utilities/borders.scss +22 -9
  155. package/src/utilities/colors.scss +9 -5
  156. package/src/utilities/effects.scss +23 -5
  157. package/src/utilities/filters.scss +15 -4
  158. package/src/utilities/flexbox.scss +15 -8
  159. package/src/utilities/grid.scss +17 -9
  160. package/src/utilities/index.scss +13 -12
  161. package/src/utilities/interactivity.scss +10 -0
  162. package/src/utilities/layout.scss +35 -23
  163. package/src/utilities/sizing.scss +23 -26
  164. package/src/utilities/spacing.scss +1 -1
  165. package/src/utilities/transitions.scss +47 -0
  166. package/src/utilities/typography.scss +34 -17
  167. package/src/volver.scss +4 -4
  168. package/dist/components/vv-input-checkbox-group.css +0 -1
  169. package/dist/components/vv-input-checkbox.css +0 -1
  170. package/dist/components/vv-input-radio-group.css +0 -1
  171. package/dist/components/vv-input-radio.css +0 -1
  172. package/dist/props/animation.css +0 -1
  173. package/dist/utilities/animation.css +0 -1
  174. package/src/components/vv-input-checkbox-group.scss +0 -12
  175. package/src/components/vv-input-radio-group.scss +0 -12
  176. package/src/settings/_animation.scss +0 -9
  177. package/src/settings/components/_vv-input-radio-group.scss +0 -1
  178. package/src/themes/dark/components/_vv-input-checkbox.scss +0 -24
  179. package/src/themes/dark/settings/components/_vv-input-checkbox.scss +0 -26
  180. package/src/utilities/animation.scss +0 -8
package/src/export.scss CHANGED
@@ -3,7 +3,7 @@
3
3
  @use 'sass:string';
4
4
 
5
5
  // context
6
- @import 'context';
6
+ @use 'context' as *;
7
7
 
8
8
  :export {
9
9
  // ============================================================== */
@@ -13,21 +13,20 @@
13
13
  @if type-of($value) == 'map' {
14
14
  @each $subKey, $subValue in $value {
15
15
  @if type-of($value) not 'map' {
16
- @if not str-index($subKey, #{$key}) {
17
- #{'colors__' + $key}: $subValue;
18
- }
19
-
20
16
  @if not
21
17
  str-index($subKey, 'hue') and not
22
18
  str-index($subKey, 'saturation') and not
23
- str-index($subKey, 'lightness') and not
24
- str-index($subKey, #{$key})
19
+ str-index($subKey, 'lightness')
25
20
  {
26
- #{'colors__' + $key}-#{$subKey}: $subValue;
21
+ @if '' + $key == $subKey {
22
+ #{'colors__' + $key}: $subValue;
23
+ } @else {
24
+ #{'colors__' + $key + '-' + $subKey}: $subValue;
25
+ }
27
26
  }
28
27
  }
29
28
  }
30
- } @else {
29
+ } @else if $key != 'scheme' {
31
30
  #{'colors__' + $key}: $value;
32
31
  }
33
32
  }
@@ -45,7 +44,7 @@
45
44
  }
46
45
 
47
46
  // breakpoints
48
- @each $key, $value in $breakpoints {
47
+ @each $key, $value in map.remove($breakpoints, 'xxs') {
49
48
  #{'breakpoints__' + $key}: $value;
50
49
  }
51
50
 
@@ -89,6 +88,11 @@
89
88
  #{'object-position__' + $key}: $value;
90
89
  }
91
90
 
91
+ // overflow
92
+ @each $key, $value in $overflow {
93
+ #{'overflow__' + $key}: $value;
94
+ }
95
+
92
96
  // position
93
97
  @each $index in $position {
94
98
  #{'position__' + $index}: $index;
@@ -191,55 +195,57 @@
191
195
  // ============================================================== */
192
196
  // #region SPACING
193
197
  // spacing & spacing-dynamic
194
- @each $size, $value in map.merge($spacing, $spacing-dynamic) {
198
+ @each $size, $value in $spacing {
199
+ spacing__#{$size}: $value;
200
+ }
201
+ @each $size, $value in $spacing-dynamic {
195
202
  @if type-of($value) == 'map' {
196
203
  @each $subKey, $subValue in $value {
197
204
  @if type-of($value) not 'map' {
198
- #{'spacers__' + $size}-#{$subKey}: $subValue;
205
+ spacing-dynamic__#{$size}__#{$subKey}: $subValue;
199
206
  }
200
207
  }
201
- } @else {
202
- #{'spacers__' + $size}: $value;
203
208
  }
204
209
  }
205
210
 
206
211
  // font-size & font-size-dynamic
207
- @each $size, $value in map.merge($font-size, $font-size-dynamic) {
212
+ @each $size, $value in $font-size {
213
+ font-size__#{$size}: $value;
214
+ }
215
+ @each $size, $value in $font-size-dynamic {
208
216
  @if type-of($value) == 'map' {
209
217
  @each $subKey, $subValue in $value {
210
218
  @if type-of($value) not 'map' {
211
- #{'font-size__' + $size}-#{$subKey}: $subValue;
219
+ font-size-dynamic__#{$size}__#{$subKey}: $subValue;
212
220
  }
213
221
  }
214
- } @else {
215
- #{'font-size__' + $size}: $value;
216
222
  }
217
223
  }
218
224
 
219
225
  // width spacer
220
226
  @each $key, $value in $width {
221
227
  $name: meta.inspect($key);
222
- $name: str-replace($name, '\\/', '/');
228
+ $name: str-replace($name, '\\/', '_');
223
229
 
224
- #{'width-spacer__' + $name}: $value;
230
+ #{'width__' + $name}: $value;
225
231
  }
226
232
 
227
233
  // height spacer
228
234
  @each $key, $value in $height {
229
235
  $name: meta.inspect($key);
230
- $name: str-replace($name, '\\/', '/');
236
+ $name: str-replace($name, '\\/', '_');
231
237
 
232
- #{'height-spacer__' + $name}: $value;
238
+ #{'height__' + $name}: $value;
233
239
  }
234
240
 
235
241
  // border radius
236
242
  @each $key, $value in $border-radius {
237
- #{'border-radius-spacer__' + $key}: $value;
243
+ #{'border-radius__' + $key}: $value;
238
244
  }
239
245
 
240
246
  // border width
241
247
  @each $key, $value in $border-width {
242
- #{'border-width-spacer__' + $key}: $value;
248
+ #{'border-width__' + $key}: $value;
243
249
  }
244
250
 
245
251
  // #endregion
@@ -402,9 +408,65 @@
402
408
 
403
409
  // ============================================================== */
404
410
  // #region EFFECTS
405
- // blend-mode
406
- @each $index in $blend-mode {
407
- #{'blend-mode__' + $index}: $index;
411
+ // box-shadow
412
+ @each $key, $value in $box-shadow {
413
+ #{'box-shadow__' + $key}: $value;
414
+ }
415
+
416
+ // opacity
417
+ @each $key, $value in $opacity {
418
+ #{'opacity__' + $key}: $value;
419
+ }
420
+
421
+ // mix-blend-mode
422
+ @each $index in $mix-blend-mode {
423
+ #{'mix-blend-mode__' + $index}: $index;
424
+ }
425
+
426
+ // background-blend-mode
427
+ @each $index in $background-blend-mode {
428
+ #{'background-blend-mode__' + $index}: $index;
429
+ }
430
+
431
+ // #endregion
432
+
433
+ // ============================================================== */
434
+ // #region FILTERS
435
+ // blur
436
+ @each $key, $value in $blur {
437
+ #{'blur__' + $key}: $value;
438
+ }
439
+
440
+ // brightness
441
+ @each $key, $value in $brightness {
442
+ #{'brightness__' + $key}: $value;
443
+ }
444
+
445
+ // saturation
446
+ @each $key, $value in $saturation {
447
+ #{'saturation__' + $key}: $value;
448
+ }
449
+
450
+ // #endregion
451
+
452
+ // ============================================================== */
453
+ // #region TRANSITIONS & ANIMATIONS
454
+ // transition property
455
+ @each $key, $value in $transition-property {
456
+ #{'transition-property__' + $key}: $value;
457
+ }
458
+
459
+ // transition duration
460
+ @each $key, $value in $transition-duration-delay {
461
+ #{'transition-duration-delay__' + $key}: $value;
462
+ }
463
+
464
+ @each $key, $value in $transition-timing-function {
465
+ #{'transition-timing-function__' + $key}: $value;
466
+ }
467
+
468
+ @each $key, $value in $animation {
469
+ #{'animation__' + $key}: $value;
408
470
  }
409
471
 
410
472
  // #endregion
@@ -1,4 +1,4 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
4
  @include spread-map-into-props($background-image, $prefix: bg);
@@ -1,4 +1,4 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
4
  @include spread-map-into-props($border-radius, $prefix: rounded);
@@ -0,0 +1,15 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ :where(:host, :root, .theme) {
5
+ @each $breakpoint, $breakpoint-value in $breakpoints {
6
+ @media screen and (min-width: $breakpoint-value) {
7
+ --breakpoint-key: #{$breakpoint};
8
+ --breakpoint-value: #{$breakpoint-value};
9
+ }
10
+ }
11
+ @include spread-map-into-props(
12
+ $map: map.remove($breakpoints, 'xxs'),
13
+ $prefix: breakpoint
14
+ );
15
+ }
@@ -1,4 +1,4 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
4
  @include spread-map-into-props($colors, $prefix: color);
@@ -1,4 +1,4 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
4
  @include spread-map-into-props($box-shadow, $prefix: shadow);
@@ -1,6 +1,7 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
4
  @include spread-map-into-props($blur, $prefix: blur);
5
5
  @include spread-map-into-props($brightness, $prefix: brightness);
6
+ @include spread-map-into-props($saturation, $prefix: saturate);
6
7
  }
@@ -1,12 +1,13 @@
1
- @import 'animation';
2
- @import 'background';
3
- @import 'borders';
4
- @import 'colors';
5
- @import 'effects';
6
- @import 'filters';
7
- @import 'layout';
8
- @import 'media';
9
- @import 'spacing';
10
- @import 'typography';
11
- @import 'sizing';
12
- @import 'input';
1
+ @use 'background';
2
+ @use 'borders';
3
+ @use 'breakpoints';
4
+ @use 'colors';
5
+ @use 'effects';
6
+ @use 'filters';
7
+ @use 'input';
8
+ @use 'layout';
9
+ @use 'media';
10
+ @use 'sizing';
11
+ @use 'spacing';
12
+ @use 'transitions';
13
+ @use 'typography';
@@ -1,4 +1,4 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
4
  @include spread-map-into-props($map: $input, $prefix: input);
@@ -1,4 +1,4 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
4
  @include spread-map-into-props($map: $aspect-ratio, $prefix: aspect);
@@ -1,4 +1,4 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  // motion
4
4
  @custom-media --motion-ok (prefers-reduced-motion: no-preference);
@@ -1,4 +1,4 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
4
  @include spread-map-into-props($width, $prefix: w);
@@ -1,5 +1,5 @@
1
1
  @use 'sass:map';
2
- @import '../context';
2
+ @use '../context' as *;
3
3
 
4
4
  :where(:host, :root, .theme) {
5
5
  // static
@@ -11,7 +11,7 @@
11
11
  @each $name, $sizes in $spacing-dynamic {
12
12
  @each $breakpoint, $size in $sizes {
13
13
  @if map-has-key($breakpoints, $breakpoint) {
14
- @include media-breakpoint-up($breakpoint) {
14
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
15
15
  $var: $size;
16
16
 
17
17
  // if is a static spacing
@@ -1,11 +1,45 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
+ // animation
4
5
  @media (prefers-reduced-motion: no-preference) {
5
- @include spread-map-into-props($animate, $prefix: animate);
6
+ // transition-property
7
+ @include spread-map-into-props(
8
+ $transition-property,
9
+ $prefix: transition-property
10
+ );
11
+
12
+ // duration
13
+ @include spread-map-into-props(
14
+ $transition-duration-delay,
15
+ $prefix: duration
16
+ );
17
+
18
+ // ease
19
+ @include spread-map-into-props(
20
+ $transition-timing-function,
21
+ $prefix: ease
22
+ );
23
+
24
+ // animation
25
+ @include spread-map-into-props($animation, animation);
26
+
27
+ // transition
28
+ @each $property, $value in $transition-property {
29
+ @if $property != 'none' {
30
+ --transition-#{$property}: var(
31
+ --transition-property-#{$property}
32
+ )
33
+ var(--duration-300)
34
+ var(--ease-in-out);
35
+ } @else {
36
+ --transition-#{$property}: none;
37
+ }
38
+ }
6
39
  }
7
40
  }
8
41
 
42
+ // keyframes
9
43
  @keyframes indeterminate {
10
44
  0% {
11
45
  transform: scaleX(0);
@@ -78,3 +112,20 @@
78
112
  background-position: -200% 0;
79
113
  }
80
114
  }
115
+
116
+ @keyframes pie-masks {
117
+ 0% {
118
+ opacity: 1;
119
+ }
120
+
121
+ 50%,
122
+ 100% {
123
+ opacity: 0;
124
+ }
125
+ }
126
+
127
+ @keyframes shine {
128
+ to {
129
+ background-position-x: -200%;
130
+ }
131
+ }
@@ -1,4 +1,4 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  :where(:host, :root, .theme) {
4
4
  // font-family
@@ -22,7 +22,7 @@
22
22
  @each $name, $sizes in $font-size-dynamic {
23
23
  @each $breakpoint, $size in $sizes {
24
24
  @if map-has-key($breakpoints, $breakpoint) {
25
- @include media-breakpoint-up($breakpoint) {
25
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
26
26
  $var: $size;
27
27
 
28
28
  // if is a static font-size
@@ -1,3 +1,6 @@
1
+ @use 'colors' as *;
2
+ @use '../tools/functions' as *;
3
+
1
4
  // background-attachment
2
5
  $background-attachment: (fixed, local, scroll) !default;
3
6
 
@@ -48,9 +51,11 @@ $background-image: (
48
51
  chevron:
49
52
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(#{hex-to-rgb($color-word)})' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"),
50
53
  grid:
51
- url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' width='32' height='32' fill='none' stroke='rgb(51 65 85 / 0.25)'%3E%3Cpath d='M0 .5H31.5V32'/%3E%3C/svg%3E"),
54
+ url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32' fill='none' stroke='rgb(51 65 85 / 0.25)'%3E%3Cpath d='M0 .5H31.5V32'/%3E%3C/svg%3E"),
52
55
  check:
53
56
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(#{hex-to-rgb($color-word)})' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E"),
54
57
  minus:
55
58
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(#{hex-to-rgb($color-word)})' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E"),
59
+ close:
60
+ url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(#{hex-to-rgb($color-word)})' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20L4 4m16 0L4 20'/%3E%3C/svg%3E"),
56
61
  ) !default;
@@ -1,3 +1,5 @@
1
+ @use '../tools/mixins' as *;
2
+
1
3
  $breakpoints: (
2
4
  xxs: 0,
3
5
  xs: 360px,
@@ -1,4 +1,6 @@
1
1
  @use 'sass:color';
2
+ @use 'sass:map';
3
+ @use '../tools/functions' as *;
2
4
 
3
5
  // color variables
4
6
  $color-scheme: light !default;
@@ -7,13 +9,21 @@ $color-black: #000 !default;
7
9
  $color-white: #fff !default;
8
10
  $color-brand: #1976d2 !default;
9
11
  $color-accent: #9c27b0 !default;
10
- $color-success: #21ba45 !default;
11
- $color-danger: #c10015 !default;
12
+ $color-success: #178230 !default;
13
+ $color-danger: #af2323 !default;
12
14
  $color-info: #31ccec !default;
13
15
  $color-warning: #f2c037 !default;
14
16
  $color-gray: hsl(color.hue($color-brand) 15% 50%) !default;
15
17
  $color-word: hsl(color.hue($color-brand) 15% 10%) !default;
16
18
  $color-surface: hsl(color.hue($color-brand) 10% 98%) !default;
19
+ $color-surface-palette: (
20
+ brand: hsl(var(--color-brand-hue) var(--color-brand-saturation) 90%),
21
+ accent: hsl(var(--color-accent-hue) var(--color-accent-saturation) 90%),
22
+ success: hsl(var(--color-success-hue) var(--color-success-saturation) 90%),
23
+ danger: hsl(var(--color-danger-hue) var(--color-danger-saturation) 90%),
24
+ info: hsl(var(--color-info-hue) var(--color-info-saturation) 90%),
25
+ warning: hsl(var(--color-warning-hue) var(--color-warning-saturation) 90%),
26
+ ) !default;
17
27
  $color-shadow: hsl(color.hue($color-brand) 50% 20%) !default;
18
28
  $color-backdrop: hsla(color.hue($color-brand) 50% 20% / 20%) !default;
19
29
  $color-alpha: hsla(0deg 0% 0% / 0%) !default;
@@ -31,8 +41,17 @@ $colors: (
31
41
  info: color-shades-map($color-info, 'info'),
32
42
  warning: color-shades-map($color-warning, 'warning'),
33
43
  gray: color-shades-map($color-gray, 'gray', $scale: 15%),
34
- word: color-lighten-map($color-word, 'word', $scale: 15%),
35
- surface: color-darken-map($color-surface, 'surface', $scale: 2%),
44
+ word: color-lighten-map($color-word, 'word', $scale: 12%, $fixed: true),
45
+ surface:
46
+ map.merge(
47
+ color-darken-map(
48
+ $color-surface,
49
+ 'surface',
50
+ $scale: 2%,
51
+ $fixed: true
52
+ ),
53
+ $color-surface-palette
54
+ ),
36
55
  shadow: hsla-map($color-shadow, 'shadow'),
37
56
  backdrop: hsla-map($color-backdrop, 'backdrop'),
38
57
  alpha: color-alpha-map($color-alpha, 'alpha', $steps: 5, $scale: 5%),
@@ -17,8 +17,33 @@ $box-shadow: (
17
17
  none: '0 0 #0000',
18
18
  ) !default;
19
19
 
20
- // blend-mode
21
- $blend-mode: (
20
+ // opacity
21
+ $opacity: (
22
+ 0: 0,
23
+ 5: 0.05,
24
+ 10: 0.1,
25
+ 15: 0.15,
26
+ 20: 0.2,
27
+ 25: 0.25,
28
+ 30: 0.3,
29
+ 35: 0.35,
30
+ 40: 0.4,
31
+ 45: 0.45,
32
+ 50: 0.5,
33
+ 55: 0.55,
34
+ 60: 0.6,
35
+ 65: 0.65,
36
+ 70: 0.7,
37
+ 75: 0.75,
38
+ 80: 0.8,
39
+ 85: 0.85,
40
+ 90: 0.9,
41
+ 95: 0.95,
42
+ 100: 1,
43
+ ) !default;
44
+
45
+ // mix blend-mode
46
+ $mix-blend-mode: (
22
47
  normal,
23
48
  multiply,
24
49
  screen,
@@ -37,3 +62,23 @@ $blend-mode: (
37
62
  luminosity,
38
63
  plus-lighter
39
64
  ) !default;
65
+
66
+ // background blend-mode
67
+ $background-blend-mode: (
68
+ normal,
69
+ multiply,
70
+ screen,
71
+ overlay,
72
+ darken,
73
+ lighten,
74
+ color-dodge,
75
+ color-burn,
76
+ hard-light,
77
+ soft-light,
78
+ difference,
79
+ exclusion,
80
+ hue,
81
+ saturation,
82
+ color,
83
+ luminosity
84
+ ) !default;
@@ -24,3 +24,12 @@ $brightness: (
24
24
  150: brightness(1.5),
25
25
  200: brightness(2),
26
26
  ) !default;
27
+
28
+ // saturation
29
+ $saturation: (
30
+ 0: saturate(0),
31
+ 50: saturate(0.5),
32
+ 100: saturate(1),
33
+ 150: saturate(1.5),
34
+ 200: saturate(2),
35
+ ) !default;
@@ -1,36 +1,43 @@
1
1
  // utilities and custom props
2
- @import 'animation';
3
- @import 'borders';
4
- @import 'breakpoints';
5
- @import 'colors';
6
- @import 'layout';
7
- @import 'filters';
8
- @import 'flexbox';
9
- @import 'grid';
10
- @import 'sizing';
11
- @import 'spacing';
12
- @import 'typography';
13
- @import 'background';
14
- @import 'effects';
15
- @import 'input';
2
+ @forward 'colors';
3
+ @forward 'background';
4
+ @forward 'borders';
5
+ @forward 'breakpoints';
6
+ @forward 'effects';
7
+ @forward 'filters';
8
+ @forward 'flexbox';
9
+ @forward 'grid';
10
+ @forward 'input';
11
+ @forward 'interactivity';
12
+ @forward 'layout';
13
+ @forward 'sizing';
14
+ @forward 'spacing';
15
+ @forward 'transitions';
16
+ @forward 'typography';
16
17
 
17
18
  // components
18
- @import 'components/vv-badge';
19
- @import 'components/vv-breadcrumb';
20
- @import 'components/vv-button';
21
- @import 'components/vv-button-group';
22
- @import 'components/vv-progress';
23
- @import 'components/vv-accordion';
24
- @import 'components/vv-dialog';
25
- @import 'components/vv-dropdown';
26
- @import 'components/vv-input-checkbox';
27
- @import 'components/vv-input-checkbox-group';
28
- @import 'components/vv-input-radio';
29
- @import 'components/vv-input-radio-group';
30
- @import 'components/vv-input-text';
31
- @import 'components/vv-nav';
32
- @import 'components/vv-textarea';
33
- @import 'components/vv-select';
34
- @import 'components/vv-table';
35
- @import 'components/vv-card';
36
- @import 'components/vv-text';
19
+ @forward 'components/vv-accordion';
20
+ @forward 'components/vv-alert';
21
+ @forward 'components/vv-badge';
22
+ @forward 'components/vv-breadcrumb';
23
+ @forward 'components/vv-button';
24
+ @forward 'components/vv-button-group';
25
+ @forward 'components/vv-card';
26
+ @forward 'components/vv-dialog';
27
+ @forward 'components/vv-dropdown';
28
+ @forward 'components/vv-checkbox-group';
29
+ @forward 'components/vv-checkbox';
30
+ @forward 'components/vv-radio-group';
31
+ @forward 'components/vv-radio';
32
+ @forward 'components/vv-avatar';
33
+ @forward 'components/vv-input-text';
34
+ @forward 'components/vv-nav';
35
+ @forward 'components/vv-progress';
36
+ @forward 'components/vv-select';
37
+ @forward 'components/vv-skeleton';
38
+ @forward 'components/vv-tab';
39
+ @forward 'components/vv-table';
40
+ @forward 'components/vv-text';
41
+ @forward 'components/vv-textarea';
42
+ @forward 'components/vv-toast';
43
+ @forward 'components/vv-tooltip';
@@ -2,17 +2,19 @@ $input: (
2
2
  display: flex,
3
3
  flex: 1,
4
4
  flex-direction: column,
5
- padding-top: var(--spacing-sm),
6
- padding-right: var(--spacing-sm),
7
- padding-bottom: var(--spacing-sm),
8
- padding-left: var(--spacing-sm),
5
+ spacing-top: var(--spacing-sm),
6
+ spacing-right: var(--spacing-sm),
7
+ spacing-bottom: var(--spacing-sm),
8
+ spacing-left: var(--spacing-sm),
9
9
  color: var(--color-word),
10
10
  background-color: var(--color-surface-1),
11
11
  gap: var(--spacing-md),
12
12
  line-height: var(--leading-normal),
13
13
  font-size: var(--text-16),
14
+ min-height: var(--spacing-50),
15
+ min-width: 0,
14
16
  label: (
15
- color: var(--color-word-3),
17
+ color: var(--color-word-2),
16
18
  display: block,
17
19
  font-size: var(--text-xs),
18
20
  gap: var(--spacing-xs),
@@ -32,7 +34,7 @@ $input: (
32
34
  hint: (
33
35
  display: block,
34
36
  font-size: var(--text-12),
35
- color: var(--color-word-4),
37
+ color: var(--color-word-2),
36
38
  gap: var(--spacing-8),
37
39
  white-space: nowrap,
38
40
  text-overflow: ellipsis,