@volverjs/style 0.1.2-beta.3 → 0.1.2-beta.30

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 (188) hide show
  1. package/README.md +40 -40
  2. package/dist/components/vv-accordion.css +1 -0
  3. package/dist/components/vv-alert.css +1 -0
  4. package/dist/components/vv-avatar.css +1 -0
  5. package/dist/components/vv-badge.css +1 -1
  6. package/dist/components/vv-breadcrumb.css +1 -0
  7. package/dist/components/vv-button-group.css +1 -1
  8. package/dist/components/vv-button.css +1 -1
  9. package/dist/components/vv-card.css +1 -1
  10. package/dist/components/vv-checkbox-group.css +1 -0
  11. package/dist/components/vv-checkbox.css +1 -0
  12. package/dist/components/vv-dialog.css +1 -1
  13. package/dist/components/vv-dropdown.css +1 -1
  14. package/dist/components/vv-input-text.css +1 -1
  15. package/dist/components/vv-nav.css +1 -0
  16. package/dist/components/vv-progress.css +1 -1
  17. package/dist/components/vv-radio-group.css +1 -0
  18. package/dist/components/vv-radio.css +1 -0
  19. package/dist/components/vv-select.css +1 -1
  20. package/dist/components/vv-skeleton.css +1 -0
  21. package/dist/components/vv-tab.css +1 -0
  22. package/dist/components/vv-table.css +1 -1
  23. package/dist/components/vv-text.css +1 -1
  24. package/dist/components/vv-textarea.css +1 -1
  25. package/dist/components/vv-toast.css +1 -0
  26. package/dist/components/vv-tooltip.css +1 -0
  27. package/dist/components.css +1 -1
  28. package/dist/export.css +1 -1
  29. package/dist/props/background.css +1 -1
  30. package/dist/props/colors.css +1 -1
  31. package/dist/props/filters.css +1 -1
  32. package/dist/props/input.css +1 -1
  33. package/dist/props/spacing.css +1 -1
  34. package/dist/props/transitions.css +1 -0
  35. package/dist/props.css +1 -1
  36. package/dist/reset.css +1 -1
  37. package/dist/themes/dark/components.css +1 -1
  38. package/dist/themes/dark/props.css +1 -1
  39. package/dist/themes/dark/volver.css +1 -0
  40. package/dist/utilities/backgrounds.css +1 -1
  41. package/dist/utilities/borders.css +1 -1
  42. package/dist/utilities/colors.css +1 -1
  43. package/dist/utilities/effects.css +1 -1
  44. package/dist/utilities/filters.css +1 -1
  45. package/dist/utilities/flexbox.css +1 -1
  46. package/dist/utilities/grid.css +1 -1
  47. package/dist/utilities/interactivity.css +1 -0
  48. package/dist/utilities/layout.css +1 -1
  49. package/dist/utilities/sizing.css +1 -1
  50. package/dist/utilities/spacing.css +1 -1
  51. package/dist/utilities/transitions.css +1 -0
  52. package/dist/utilities/typography.css +1 -1
  53. package/dist/utilities.css +1 -1
  54. package/dist/volver.css +1 -0
  55. package/package.json +163 -118
  56. package/src/_config.scss +19 -11
  57. package/src/_context.scss +3 -3
  58. package/src/_preflight.scss +412 -0
  59. package/src/components/index.scss +25 -17
  60. package/src/components/vv-accordion.scss +13 -0
  61. package/src/components/vv-alert.scss +13 -0
  62. package/src/components/vv-avatar.scss +13 -0
  63. package/src/components/vv-badge.scss +3 -2
  64. package/src/components/vv-breadcrumb.scss +13 -0
  65. package/src/components/vv-button-group.scss +15 -18
  66. package/src/components/vv-button.scss +5 -8
  67. package/src/components/vv-card.scss +3 -2
  68. package/src/components/vv-checkbox-group.scss +13 -0
  69. package/src/components/{vv-input-checkbox.scss → vv-checkbox.scss} +7 -6
  70. package/src/components/vv-dialog.scss +3 -2
  71. package/src/components/vv-dropdown.scss +3 -2
  72. package/src/components/vv-input-text.scss +6 -5
  73. package/src/components/vv-nav.scss +13 -0
  74. package/src/components/vv-progress.scss +3 -2
  75. package/src/components/vv-radio-group.scss +13 -0
  76. package/src/components/{vv-input-radio.scss → vv-radio.scss} +6 -5
  77. package/src/components/vv-select.scss +6 -5
  78. package/src/components/vv-skeleton.scss +14 -0
  79. package/src/components/vv-tab.scss +13 -0
  80. package/src/components/vv-table.scss +3 -2
  81. package/src/components/vv-text.scss +3 -2
  82. package/src/components/vv-textarea.scss +6 -5
  83. package/src/components/vv-toast.scss +13 -0
  84. package/src/components/vv-tooltip.scss +33 -0
  85. package/src/export.scss +62 -6
  86. package/src/props/background.scss +1 -1
  87. package/src/props/borders.scss +1 -1
  88. package/src/props/colors.scss +1 -1
  89. package/src/props/effects.scss +1 -1
  90. package/src/props/filters.scss +2 -1
  91. package/src/props/index.scss +12 -12
  92. package/src/props/input.scss +1 -1
  93. package/src/props/layout.scss +1 -1
  94. package/src/props/media.scss +1 -1
  95. package/src/props/sizing.scss +1 -1
  96. package/src/props/spacing.scss +2 -2
  97. package/src/props/{animation.scss → transitions.scss} +53 -2
  98. package/src/props/typography.scss +2 -2
  99. package/src/reset.scss +1 -1
  100. package/src/settings/_background.scss +6 -1
  101. package/src/settings/_breakpoints.scss +2 -0
  102. package/src/settings/_colors.scss +16 -2
  103. package/src/settings/_effects.scss +47 -2
  104. package/src/settings/_filters.scss +9 -0
  105. package/src/settings/_index.scss +40 -31
  106. package/src/settings/_input.scss +8 -6
  107. package/src/settings/_interactivity.scss +39 -0
  108. package/src/settings/_spacing.scss +1 -0
  109. package/src/settings/_transitions.scss +44 -0
  110. package/src/settings/components/_vv-accordion.scss +134 -0
  111. package/src/settings/components/_vv-alert.scss +161 -0
  112. package/src/settings/components/_vv-avatar.scss +55 -0
  113. package/src/settings/components/_vv-badge.scss +58 -18
  114. package/src/settings/components/_vv-breadcrumb.scss +95 -0
  115. package/src/settings/components/_vv-button-group.scss +4 -0
  116. package/src/settings/components/_vv-button.scss +121 -15
  117. package/src/settings/components/_vv-card.scss +4 -3
  118. package/src/settings/components/{_vv-input-checkbox-group.scss → _vv-checkbox-group.scss} +2 -1
  119. package/src/settings/components/{_vv-input-checkbox.scss → _vv-checkbox.scss} +46 -10
  120. package/src/settings/components/_vv-dialog.scss +71 -89
  121. package/src/settings/components/_vv-input-text.scss +83 -37
  122. package/src/settings/components/_vv-nav.scss +142 -0
  123. package/src/settings/components/_vv-progress.scss +1 -1
  124. package/src/settings/components/_vv-radio-group.scss +3 -0
  125. package/src/settings/components/{_vv-input-radio.scss → _vv-radio.scss} +34 -4
  126. package/src/settings/components/_vv-select.scss +77 -12
  127. package/src/settings/components/_vv-skeleton.scss +22 -0
  128. package/src/settings/components/_vv-tab.scss +16 -0
  129. package/src/settings/components/_vv-table.scss +22 -3
  130. package/src/settings/components/_vv-text.scss +20 -1
  131. package/src/settings/components/_vv-textarea.scss +49 -24
  132. package/src/settings/components/_vv-toast.scss +259 -0
  133. package/src/settings/components/_vv-tooltip.scss +74 -0
  134. package/src/themes/dark/_context.scss +7 -4
  135. package/src/themes/dark/components/_vv-button.scss +3 -5
  136. package/src/themes/dark/components/index.scss +1 -2
  137. package/src/themes/dark/props/_background.scss +2 -2
  138. package/src/themes/dark/props/_colors.scss +2 -2
  139. package/src/themes/dark/props/_input.scss +15 -0
  140. package/src/themes/dark/props/index.scss +3 -2
  141. package/src/themes/dark/settings/_background.scss +9 -4
  142. package/src/themes/dark/settings/_colors.scss +25 -10
  143. package/src/themes/dark/settings/_index.scss +4 -4
  144. package/src/themes/dark/settings/_input.scss +8 -0
  145. package/src/themes/dark/settings/components/_vv-button.scss +10 -10
  146. package/src/themes/dark/volver.scss +5 -0
  147. package/src/tools/_breakpoints.scss +7 -7
  148. package/src/tools/_index.scss +3 -3
  149. package/src/tools/_mixins.scss +200 -37
  150. package/src/utilities/backgrounds.scss +15 -8
  151. package/src/utilities/borders.scss +22 -9
  152. package/src/utilities/colors.scss +9 -5
  153. package/src/utilities/effects.scss +23 -5
  154. package/src/utilities/filters.scss +15 -4
  155. package/src/utilities/flexbox.scss +26 -8
  156. package/src/utilities/grid.scss +25 -9
  157. package/src/utilities/index.scss +13 -12
  158. package/src/utilities/interactivity.scss +10 -0
  159. package/src/utilities/layout.scss +27 -14
  160. package/src/utilities/sizing.scss +23 -26
  161. package/src/utilities/spacing.scss +1 -1
  162. package/src/utilities/transitions.scss +47 -0
  163. package/src/utilities/typography.scss +34 -17
  164. package/src/volver.scss +14 -0
  165. package/dist/components/vv-collapse.css +0 -1
  166. package/dist/components/vv-input-checkbox-group.css +0 -1
  167. package/dist/components/vv-input-checkbox.css +0 -1
  168. package/dist/components/vv-input-radio-group.css +0 -1
  169. package/dist/components/vv-input-radio.css +0 -1
  170. package/dist/preflight.css +0 -1
  171. package/dist/props/animation.css +0 -1
  172. package/dist/style.css +0 -1
  173. package/dist/themes/dark/style.css +0 -1
  174. package/dist/utilities/animation.css +0 -1
  175. package/src/assets/24consulting.svg +0 -63
  176. package/src/assets/volverjs.svg +0 -15
  177. package/src/components/vv-collapse.scss +0 -12
  178. package/src/components/vv-input-checkbox-group.scss +0 -12
  179. package/src/components/vv-input-radio-group.scss +0 -12
  180. package/src/preflight.scss +0 -281
  181. package/src/settings/_animation.scss +0 -9
  182. package/src/settings/components/_vv-collapse.scss +0 -111
  183. package/src/settings/components/_vv-input-radio-group.scss +0 -1
  184. package/src/style.scss +0 -14
  185. package/src/themes/dark/components/_vv-input-checkbox.scss +0 -24
  186. package/src/themes/dark/settings/components/_vv-input-checkbox.scss +0 -26
  187. package/src/themes/dark/style.scss +0 -5
  188. package/src/utilities/animation.scss +0 -8
@@ -0,0 +1,55 @@
1
+ $vv-avatar: (
2
+ display: inline-flex,
3
+ position: relative,
4
+ justify-content: center,
5
+ align-items: center,
6
+ font-size: var(--text-12),
7
+ line-height: var(--leading-none),
8
+ width: var(--spacing-28),
9
+ height: var(--spacing-28),
10
+ border-radius: var(--rounded),
11
+ background-position: center,
12
+ background-size: contain,
13
+ background-repeat: no-repeat,
14
+ color: var(--color-white),
15
+ object-fit: contain,
16
+ modifier: (
17
+ rounded: (
18
+ border-radius: var(--rounded-full),
19
+ overflow: hidden,
20
+ ),
21
+ md: (
22
+ font-size: var(--text-14),
23
+ width: var(--spacing-34),
24
+ height: var(--spacing-34),
25
+ ),
26
+ lg: (
27
+ font-size: var(--text-16),
28
+ width: var(--spacing-40),
29
+ height: var(--spacing-40),
30
+ ),
31
+ ),
32
+ state: (
33
+ focus: (
34
+ outline: var(--spacing-px) solid var(--color-brand),
35
+ outline-offset: var(--spacing-0),
36
+ ),
37
+ ),
38
+ element: (
39
+ badge: (
40
+ _alias: '> sup',
41
+ position: absolute,
42
+ top: 0,
43
+ right: 0,
44
+ transform: translate(50%, -50%),
45
+ box-shadow: var(--shadow-sm),
46
+ ),
47
+ image: (
48
+ _alias: '> img',
49
+ width: 100%,
50
+ height: 100%,
51
+ border-radius: inherit,
52
+ object-fit: inherit,
53
+ ),
54
+ ),
55
+ ) !default;
@@ -1,43 +1,83 @@
1
1
  $vv-badge: (
2
- border-radius: 1.0465em,
3
- background: var(--color-brand),
4
- color: var(--color-white),
5
- font-size: 0.6em,
6
- height: 2.093em,
7
- min-width: 2.093em,
8
- padding: 0.37em 0.475em,
2
+ --badge-font-size: 0.7rem,
3
+ --badge-color: var(--color-white),
4
+ --badge-background-color: var(--color-brand),
5
+ --badge-border-width: 0,
6
+ [font-size]: var(--badge-font-size),
7
+ [background-color]: var(--badge-background-color),
8
+ [color]: var(--badge-color),
9
+ [border-width]: var(--badge-border-width),
10
+ [border-color]: var(--badge-background-color),
11
+ border-style: solid,
12
+ border-radius: 0.5em,
13
+ min-height: 2em,
14
+ min-width: 2em,
15
+ padding: 0 0.5em,
9
16
  display: inline-flex,
10
17
  justify-content: center,
11
- font-weight: normal,
18
+ align-items: center,
19
+ gap: 0.5ch,
20
+ white-space: nowrap,
12
21
  font-family: var(--font-sans),
22
+ font-weight: var(--font-normal),
13
23
  text-shadow: none,
14
24
  state: (
15
25
  empty: (
16
26
  font-size: inherit,
17
- width: 0.5em,
18
- height: 0.5em,
19
27
  min-width: 0,
20
- border-radius: 0.25em,
28
+ min-height: 0,
29
+ [width]: var(--badge-font-size),
30
+ [height]: var(--badge-font-size),
31
+ [border-radius]: calc(var(--badge-font-size) * 0.5),
21
32
  padding: 0,
22
33
  ),
23
34
  ),
24
35
  modifier: (
36
+ sm: (
37
+ --badge-font-size: 0.6rem,
38
+ ),
39
+ rounded: (
40
+ border-radius: 1em,
41
+ ),
42
+ outline: (
43
+ --badge-border-width: var(--border),
44
+ [background-color]: transparent,
45
+ [color]: var(--badge-background-color),
46
+ ),
47
+ ghost: (
48
+ [background-color]: transparent,
49
+ [color]: var(--badge-background-color),
50
+ ),
25
51
  white: (
26
- background: alpha-color('white', 80%),
27
- color: var(--color-black),
52
+ --badge-background-color:
53
+ hsla(
54
+ var(--color-white-hue) var(--color-white-saturation)
55
+ var(--color-white-lightness) / 80%
56
+ ),
57
+ --badge-color: var(--color-black),
28
58
  ),
29
59
  black: (
30
- background: alpha-color('black', 80%),
31
- color: var(--color-white),
60
+ --badge-background-color:
61
+ hsla(
62
+ var(--color-black-hue) var(--color-black-saturation)
63
+ var(--color-black-lightness) / 80%
64
+ ),
65
+ --badge-color: var(--color-white),
32
66
  ),
33
67
  danger: (
34
- background: var(--color-danger),
68
+ --badge-background-color: var(--color-danger),
35
69
  ),
36
70
  success: (
37
- background: var(--color-success),
71
+ --badge-background-color: var(--color-success),
38
72
  ),
39
73
  warning: (
40
- background: var(--color-warning),
74
+ --badge-background-color: var(--color-warning),
75
+ ),
76
+ info: (
77
+ --badge-background-color: var(--color-info),
78
+ ),
79
+ accent: (
80
+ --badge-background-color: var(--color-accent),
41
81
  ),
42
82
  ),
43
83
  ) !default;
@@ -0,0 +1,95 @@
1
+ $vv-breadcrumb: (
2
+ position: relative,
3
+ pseudo: (
4
+ after: (
5
+ position: absolute,
6
+ top: 0,
7
+ bottom: 0,
8
+ right: 0,
9
+ display: block,
10
+ width: var(--spacing-sm),
11
+ background:
12
+ linear-gradient(45deg, transparent, var(--color-surface)),
13
+ ),
14
+ ),
15
+ element: (
16
+ list: (
17
+ _alias: '> ol',
18
+ position: relative,
19
+ overflow: auto hidden,
20
+ overscroll-behavior-x: contain,
21
+ scroll-behavior: smooth,
22
+ scroll-snap-type: x mandatory,
23
+ scrollbar-width: none,
24
+ display: flex,
25
+ flex-wrap: no-wrap,
26
+ list-style: none,
27
+ padding: 0,
28
+ background: var(--color-surface),
29
+ white-space: nowrap,
30
+ pseudo: (
31
+ -webkit-scrollbar: (
32
+ width: 0,
33
+ height: 0,
34
+ ),
35
+ ),
36
+ ),
37
+ item: (
38
+ _alias: '> ol > li:has(a)',
39
+ display: inline-flex,
40
+ align-items: center,
41
+ color: var(--color-word-2),
42
+ pseudo: (
43
+ after: (
44
+ display: block,
45
+ margin-inline: 1ch,
46
+ width: calc(var(--leading-normal) * 1em),
47
+ height: calc(var(--leading-normal) * 1em),
48
+ background-image: var(--bg-chevron),
49
+ background-position: center,
50
+ background-size: 1em,
51
+ background-repeat: no-repeat,
52
+ transform: rotate(-90deg),
53
+ ),
54
+ ),
55
+ ),
56
+ item-active: (
57
+ _alias: '> ol > li:not(:has(a))',
58
+ display: inline-flex,
59
+ align-items: center,
60
+ font-weight: var(--font-bold),
61
+ padding-right: var(--spacing-16),
62
+ ),
63
+ link: (
64
+ _alias: '> ol > li > a',
65
+ state: (
66
+ hover: (
67
+ text-decoration: underline,
68
+ ),
69
+ focus-within: (
70
+ text-decoration: underline,
71
+ ),
72
+ active: (
73
+ color: var(--color-brand-darken-2),
74
+ ),
75
+ ),
76
+ ),
77
+ ),
78
+ modifier: (
79
+ multiline: (
80
+ element: (
81
+ list: (
82
+ flex-wrap: wrap,
83
+ ),
84
+ item: (
85
+ font-size: var(--text-12),
86
+ ),
87
+ item-active: (
88
+ width: 100%,
89
+ font-size: var(--text-18),
90
+ line-height: var(--leading-relaxed),
91
+ ),
92
+ ),
93
+ ),
94
+ ),
95
+ ) !default;
@@ -1,6 +1,10 @@
1
1
  $vv-button-group: (
2
2
  display: inline-flex,
3
+ flex-wrap: wrap,
4
+ min-width: 0,
5
+ max-width: 100%,
3
6
  align-items: center,
7
+ justify-content: center,
4
8
  gap: var(--spacing-4),
5
9
  modifier: (
6
10
  block: (
@@ -1,19 +1,21 @@
1
1
  $vv-button: (
2
+ --button-border-width: var(--border-2),
3
+ --button-line-height: var(--leading-normal),
4
+ [border-width]: var(--button-border-width),
5
+ [line-height]: var(--button-line-height),
2
6
  position: relative,
3
7
  background: var(--color-brand),
4
8
  border-radius: 0.5ch,
5
- border-width: var(--spacing-2),
6
9
  border-style: solid,
7
10
  border-color: var(--color-brand),
8
11
  color: var(--color-white),
9
12
  font-family: var(--font-sans),
10
13
  font-weight: var(--font-semibold),
11
14
  gap: 1ch,
12
- line-height: var(--leading-normal),
13
15
  padding-block: 0.75ch,
14
16
  padding-inline: 1.75ch,
15
17
  text-shadow: 0 1px 0 var(--color-gray-darken-5),
16
- transition: all 0.2s ease-in-out,
18
+ transition: var(--transition-all),
17
19
  will-change: all,
18
20
  min-width: 0,
19
21
  state: (
@@ -24,11 +26,16 @@ $vv-button: (
24
26
  hover: (
25
27
  background: var(--color-brand-darken-1),
26
28
  border-color: var(--color-brand-darken-1),
29
+ text-decoration: none,
27
30
  ),
28
31
  active: (
29
32
  background: var(--color-brand-darken-2),
30
33
  border-color: var(--color-brand-darken-2),
31
34
  ),
35
+ pressed: (
36
+ background: var(--color-brand-darken-2),
37
+ border-color: var(--color-brand-darken-2),
38
+ ),
32
39
  disabled: (
33
40
  opacity: 0.5,
34
41
  cursor: not-allowed,
@@ -45,6 +52,7 @@ $vv-button: (
45
52
  flex-shrink: 0,
46
53
  stroke-linecap: round,
47
54
  stroke-linejoin: round,
55
+ [min-height]: calc(var(--button-line-height) * 1em),
48
56
  ),
49
57
  label: (
50
58
  white-space: nowrap,
@@ -70,11 +78,14 @@ $vv-button: (
70
78
  background: var(--color-gray-darken-5),
71
79
  border-color: var(--color-gray-darken-5),
72
80
  ),
81
+ pressed: (
82
+ background: var(--color-gray-darken-5),
83
+ border-color: var(--color-gray-darken-5),
84
+ ),
73
85
  ),
74
86
  ),
75
87
  secondary: (
76
88
  background: var(--color-white),
77
- border-width: var(--spacing-2),
78
89
  border-style: solid,
79
90
  border-color: var(--color-gray-lighten-4),
80
91
  color: var(--color-word),
@@ -89,6 +100,9 @@ $vv-button: (
89
100
  active: (
90
101
  background: var(--color-gray-lighten-3),
91
102
  ),
103
+ pressed: (
104
+ background: var(--color-gray-lighten-4),
105
+ ),
92
106
  ),
93
107
  ),
94
108
  danger: (
@@ -107,17 +121,21 @@ $vv-button: (
107
121
  background: var(--color-danger-darken-2),
108
122
  border-color: var(--color-danger-darken-2),
109
123
  ),
124
+ pressed: (
125
+ background: var(--color-danger-darken-2),
126
+ border-color: var(--color-danger-darken-2),
127
+ ),
110
128
  ),
111
129
  ),
112
130
  ghost: (
113
131
  background: transparent,
114
132
  border-color: transparent,
115
- color: var(--color-gray),
133
+ color: var(--color-gray-darken-1),
116
134
  text-shadow: 0 1px 0 var(--color-gray-lighten-5),
117
135
  state: (
118
136
  focus-visible: (
119
137
  outline: var(--spacing-px) solid var(--color-gray-lighten-4),
120
- outline-offset: 0,
138
+ outline-offset: var(--spacing-0),
121
139
  ),
122
140
  hover: (
123
141
  background: var(--color-gray-lighten-5),
@@ -125,23 +143,30 @@ $vv-button: (
125
143
  active: (
126
144
  background: var(--color-gray-lighten-4),
127
145
  ),
146
+ pressed: (
147
+ background: var(--color-gray-lighten-4),
148
+ ),
128
149
  ),
129
150
  ),
130
- text: (
151
+ link: (
131
152
  background: transparent,
132
- border-color: var(--color-word),
133
- border-width: 0,
134
- border-radius: 0,
153
+ border-width: var(--border-0),
135
154
  padding: 0,
136
- color: var(--color-word),
137
- text-shadow: 0 1px 0 var(--color-gray-lighten-5),
155
+ color: var(--color-brand-darken-1),
156
+ font-weight: var(--font-normal),
157
+ text-shadow: none,
138
158
  state: (
139
159
  focus-visible: (
140
- color: var(--color-brand),
141
- outline: none,
160
+ outline: var(--spacing-px) solid
161
+ var(--color-brand-lighten-4),
162
+ outline-offset: var(--spacing-4),
142
163
  ),
143
164
  hover: (
144
- border-width: 0 0 1px 0,
165
+ text-decoration: underline,
166
+ text-underline-offset: var(--spacing-4),
167
+ ),
168
+ active: (
169
+ color: var(--color-brand-darken-3),
145
170
  ),
146
171
  ),
147
172
  ),
@@ -162,6 +187,10 @@ $vv-button: (
162
187
  border-color: var(--color-gray-lighten-4),
163
188
  background: var(--color-gray-lighten-4),
164
189
  ),
190
+ pressed: (
191
+ border-color: var(--color-gray-lighten-4),
192
+ background: var(--color-gray-lighten-4),
193
+ ),
165
194
  ),
166
195
  ),
167
196
  static-dark: (
@@ -181,6 +210,83 @@ $vv-button: (
181
210
  border-color: var(--color-gray-darken-3),
182
211
  background: var(--color-gray-darken-3),
183
212
  ),
213
+ pressed: (
214
+ border-color: var(--color-gray-darken-3),
215
+ background: var(--color-gray-darken-3),
216
+ ),
217
+ ),
218
+ ),
219
+ action: (
220
+ --button-border-width: var(--border),
221
+ --button-line-height: var(--leading-snug),
222
+ font-size: var(--text-14),
223
+ background: var(--color-surface-1),
224
+ color: var(--color-word-1),
225
+ border-color: var(--color-word-5),
226
+ font-weight: var(--font-normal),
227
+ padding-inline: 0.75ch,
228
+ padding-block: 0.5ch,
229
+ text-shadow: none,
230
+ state: (
231
+ focus-visible: (
232
+ outline: var(--spacing-px) solid var(--color-gray-lighten-4),
233
+ ),
234
+ hover: (
235
+ background: var(--color-surface-2),
236
+ ),
237
+ active: (
238
+ background: var(--color-surface-5),
239
+ ),
240
+ pressed: (
241
+ color: var(--color-white),
242
+ background: var(--color-gray),
243
+ border-color: var(--color-gray),
244
+ ),
245
+ ),
246
+ element: (
247
+ icon: (
248
+ margin-inline: -0.125ch,
249
+ block-size: calc(1em * var(--leading-snug)),
250
+ inline-size: calc(1em * var(--leading-snug)),
251
+ ),
252
+ ),
253
+ ),
254
+ action-quiet: (
255
+ --button-border-width: var(--border),
256
+ --button-line-height: var(--leading-snug),
257
+ font-size: var(--text-14),
258
+ background: transparent,
259
+ color: var(--color-word-1),
260
+ border-color: transparent,
261
+ font-weight: var(--font-normal),
262
+ padding-inline: 0.75ch,
263
+ padding-block: 0.5ch,
264
+ text-shadow: none,
265
+ state: (
266
+ focus-visible: (
267
+ outline: var(--spacing-px) solid var(--color-gray-lighten-4),
268
+ outline-offset: var(--spacing-0),
269
+ ),
270
+ hover: (
271
+ background: var(--color-surface-2),
272
+ border-color: var(--color-surface-2),
273
+ ),
274
+ active: (
275
+ background: var(--color-surface-5),
276
+ border-color: var(--color-surface-5),
277
+ ),
278
+ pressed: (
279
+ color: var(--color-white),
280
+ background: var(--color-gray),
281
+ border-color: var(--color-gray),
282
+ ),
283
+ ),
284
+ element: (
285
+ icon: (
286
+ margin-inline: -0.125ch,
287
+ block-size: calc(1em * var(--leading-snug)),
288
+ inline-size: calc(1em * var(--leading-snug)),
289
+ ),
184
290
  ),
185
291
  ),
186
292
  rounded: (
@@ -9,7 +9,7 @@ $vv-card: (
9
9
  border-bottom-width: var(--border),
10
10
  border-left-width: var(--border),
11
11
  border-style: none,
12
- border-radius: var(--border-8),
12
+ border-radius: var(--rounded-lg),
13
13
  margin: var(--spacing-0),
14
14
  background-color: var(--color-surface),
15
15
  box-shadow: var(--shadow-md),
@@ -19,7 +19,6 @@ $vv-card: (
19
19
  header: (
20
20
  _alias: '> header',
21
21
  overflow: hidden,
22
- font-size: var(--text-md),
23
22
  padding: var(--spacing-md),
24
23
  background-color: var(--color-surface-1),
25
24
  border-bottom: var(--border) solid var(--color-surface-4),
@@ -29,16 +28,18 @@ $vv-card: (
29
28
  display: block,
30
29
  width: 100%,
31
30
  height: auto,
31
+ object-fit: cover,
32
+ object-position: center,
32
33
  ),
33
34
  content: (
34
35
  padding: var(--spacing-md),
36
+ line-height: var(--leading-normal),
35
37
  flex-grow: 1,
36
38
  min-height: 0,
37
39
  overflow: auto,
38
40
  ),
39
41
  footer: (
40
42
  _alias: '> footer',
41
- background-color: var(--color-surface-1),
42
43
  border-top: var(--border) solid var(--color-surface-4),
43
44
  padding: var(--spacing-md),
44
45
  ),
@@ -1,7 +1,8 @@
1
- $vv-input-checkbox-group: (
1
+ $vv-checkbox-group: (
2
2
  display: var(--input-display),
3
3
  flex: var(--input-flex),
4
4
  flex-direction: var(--input-flex-direction),
5
+ min-width: var(--input-min-width),
5
6
  element: (
6
7
  legend: (
7
8
  _alias: '> legend',
@@ -1,6 +1,6 @@
1
- $vv-input-checkbox: (
1
+ $vv-checkbox: (
2
2
  display: inline-flex,
3
- flex-wrap: nowrap,
3
+ flex-wrap: wrap,
4
4
  align-items: center,
5
5
  cursor: pointer,
6
6
  user-select: none,
@@ -8,21 +8,18 @@ $vv-input-checkbox: (
8
8
  color: var(--input-color),
9
9
  font-size: var(--input-font-size),
10
10
  line-height: var(--input-line-height),
11
+ min-width: var(--input-min-width),
11
12
  state: (
12
13
  disabled: (
13
14
  opacity: 0.3,
14
15
  cursor: not-allowed,
15
16
  ),
16
- readonly: (
17
- cursor: default,
18
- pointer-events: none,
19
- ),
20
17
  ),
21
18
  element: (
22
19
  input: (
23
20
  _alias: "> input[type='checkbox']",
24
21
  border: var(--spacing-2) solid var(--input-color),
25
- width: var(--spacing-20),
22
+ min-width: var(--spacing-20),
26
23
  height: var(--spacing-20),
27
24
  margin: 0 var(--input-label-gap) 0 0,
28
25
  background-position: center,
@@ -43,19 +40,36 @@ $vv-input-checkbox: (
43
40
  ),
44
41
  ),
45
42
  ),
43
+ hint: (
44
+ _alias: '> small',
45
+ flex-basis: 100%,
46
+ display: var(--input-hint-display),
47
+ font-size: var(--input-hint-font-size),
48
+ color: var(--input-hint-color),
49
+ padding-top: var(--input-hint-gap),
50
+ white-space: var(--input-hint-white-space),
51
+ text-overflow: var(--input-hint-text-overflow),
52
+ overflow: var(--input-hint-overflow),
53
+ max-width: var(--input-hint-max-width),
54
+ ),
46
55
  ),
47
56
  modifier: (
57
+ readonly: (
58
+ opacity: 1,
59
+ cursor: default,
60
+ pointer-events: none,
61
+ ),
48
62
  switch: (
49
63
  element: (
50
64
  input: (
51
65
  border: 0,
52
- width: var(--spacing-44),
66
+ min-width: var(--spacing-44),
53
67
  height: var(--spacing-24),
54
68
  border-radius: var(--spacing-12),
55
69
  background-color: var(--color-word-5),
56
70
  position: relative,
57
71
  will-change: background-color,
58
- transition: background-color 0.2s ease-in-out,
72
+ transition: var(--transition-colors),
59
73
  pseudo: (
60
74
  after: (
61
75
  width: var(--spacing-20),
@@ -65,7 +79,7 @@ $vv-input-checkbox: (
65
79
  inset: var(--spacing-2) 0 0 var(--spacing-2),
66
80
  background: var(--color-white),
67
81
  will-change: transform,
68
- transition: transform 0.2s ease-in-out,
82
+ transition: var(--transition-transform),
69
83
  ),
70
84
  ),
71
85
  state: (
@@ -75,6 +89,14 @@ $vv-input-checkbox: (
75
89
  active: (
76
90
  background-color: var(--color-word-3),
77
91
  ),
92
+ indeterminate: (
93
+ background-image: none,
94
+ pseudo: (
95
+ after: (
96
+ transform: translateX(50%),
97
+ ),
98
+ ),
99
+ ),
78
100
  checked: (
79
101
  background-image: none,
80
102
  background-color: var(--color-brand),
@@ -88,5 +110,19 @@ $vv-input-checkbox: (
88
110
  ),
89
111
  ),
90
112
  ),
113
+ valid: (
114
+ element: (
115
+ hint: (
116
+ color: var(--input-valid-color),
117
+ ),
118
+ ),
119
+ ),
120
+ invalid: (
121
+ element: (
122
+ hint: (
123
+ color: var(--input-invalid-color),
124
+ ),
125
+ ),
126
+ ),
91
127
  ),
92
128
  ) !default;