@volverjs/style 0.1.29 → 0.1.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 (158) hide show
  1. package/design-tokens.json +503 -7
  2. package/dist/base.css +1 -1
  3. package/dist/components/vv-alert.css +1 -1
  4. package/dist/components/vv-attachment-group.css +1 -0
  5. package/dist/components/vv-attachment.css +1 -0
  6. package/dist/components/vv-avatar.css +1 -1
  7. package/dist/components/vv-badge.css +1 -1
  8. package/dist/components/vv-breadcrumb.css +1 -1
  9. package/dist/components/vv-bubble-group.css +1 -0
  10. package/dist/components/vv-bubble.css +1 -0
  11. package/dist/components/vv-button.css +1 -1
  12. package/dist/components/vv-calendar.css +1 -0
  13. package/dist/components/vv-checkbox-group.css +1 -1
  14. package/dist/components/vv-checkbox.css +1 -1
  15. package/dist/components/vv-command.css +1 -0
  16. package/dist/components/vv-dialog.css +1 -1
  17. package/dist/components/vv-dropdown-action.css +1 -1
  18. package/dist/components/vv-dropdown-option.css +1 -1
  19. package/dist/components/vv-empty.css +1 -0
  20. package/dist/components/vv-field.css +1 -0
  21. package/dist/components/vv-input-file.css +1 -1
  22. package/dist/components/vv-input-otp.css +1 -0
  23. package/dist/components/vv-input-range.css +1 -1
  24. package/dist/components/vv-input-text.css +1 -1
  25. package/dist/components/vv-item-group.css +1 -0
  26. package/dist/components/vv-item.css +1 -0
  27. package/dist/components/vv-kbd-group.css +1 -0
  28. package/dist/components/vv-kbd.css +1 -0
  29. package/dist/components/vv-marker.css +1 -0
  30. package/dist/components/vv-message-scroller.css +1 -0
  31. package/dist/components/vv-message.css +1 -0
  32. package/dist/components/vv-nav.css +1 -1
  33. package/dist/components/vv-pagination.css +1 -0
  34. package/dist/components/vv-popover.css +1 -0
  35. package/dist/components/vv-progress.css +1 -1
  36. package/dist/components/vv-prose.css +1 -0
  37. package/dist/components/vv-questionnaire.css +1 -0
  38. package/dist/components/vv-radio-group.css +1 -1
  39. package/dist/components/vv-radio.css +1 -1
  40. package/dist/components/vv-select.css +1 -1
  41. package/dist/components/vv-separator.css +1 -0
  42. package/dist/components/vv-sidebar.css +1 -0
  43. package/dist/components/vv-spinner.css +1 -0
  44. package/dist/components/vv-table.css +1 -1
  45. package/dist/components/vv-text.css +1 -1
  46. package/dist/components/vv-textarea.css +1 -1
  47. package/dist/components.css +1 -1
  48. package/dist/export.css +1 -1
  49. package/dist/props/colors.css +1 -1
  50. package/dist/props/input.css +1 -1
  51. package/dist/props.css +1 -1
  52. package/dist/themes/dark/components.css +1 -1
  53. package/dist/themes/dark/props.css +1 -1
  54. package/dist/themes/dark/volver.css +1 -1
  55. package/dist/utilities/colors.css +1 -1
  56. package/dist/utilities/layout.css +1 -1
  57. package/dist/utilities.css +1 -1
  58. package/dist/volver.css +1 -1
  59. package/package.json +64 -16
  60. package/src/_config.scss +23 -0
  61. package/src/_preflight.scss +14 -2
  62. package/src/base.scss +1 -1
  63. package/src/components/index.scss +28 -0
  64. package/src/components/vv-attachment-group.scss +17 -0
  65. package/src/components/vv-attachment.scss +17 -0
  66. package/src/components/vv-bubble-group.scss +17 -0
  67. package/src/components/vv-bubble.scss +17 -0
  68. package/src/components/vv-calendar.scss +25 -0
  69. package/src/components/vv-command.scss +17 -0
  70. package/src/components/vv-empty.scss +17 -0
  71. package/src/components/vv-field.scss +25 -0
  72. package/src/components/vv-input-otp.scss +17 -0
  73. package/src/components/vv-item-group.scss +17 -0
  74. package/src/components/vv-item.scss +39 -0
  75. package/src/components/vv-kbd-group.scss +17 -0
  76. package/src/components/vv-kbd.scss +17 -0
  77. package/src/components/vv-marker.scss +17 -0
  78. package/src/components/vv-message-scroller.scss +24 -0
  79. package/src/components/vv-message.scss +25 -0
  80. package/src/components/vv-pagination.scss +17 -0
  81. package/src/components/vv-popover.scss +17 -0
  82. package/src/components/vv-prose.scss +17 -0
  83. package/src/components/vv-questionnaire.scss +28 -0
  84. package/src/components/vv-separator.scss +17 -0
  85. package/src/components/vv-sidebar.scss +17 -0
  86. package/src/components/vv-spinner.scss +27 -0
  87. package/src/presets/_outlined-fields.scss +346 -0
  88. package/src/props/colors.scss +6 -0
  89. package/src/settings/_colors.scss +161 -61
  90. package/src/settings/_index.scss +26 -0
  91. package/src/settings/_input.scss +11 -2
  92. package/src/settings/components/_choice.scss +104 -0
  93. package/src/settings/components/_vv-alert.scss +37 -12
  94. package/src/settings/components/_vv-attachment-group.scss +10 -0
  95. package/src/settings/components/_vv-attachment.scss +135 -0
  96. package/src/settings/components/_vv-avatar.scss +19 -9
  97. package/src/settings/components/_vv-badge.scss +47 -14
  98. package/src/settings/components/_vv-breadcrumb.scss +1 -1
  99. package/src/settings/components/_vv-bubble-group.scss +31 -0
  100. package/src/settings/components/_vv-bubble.scss +69 -0
  101. package/src/settings/components/_vv-button.scss +55 -13
  102. package/src/settings/components/_vv-calendar.scss +102 -0
  103. package/src/settings/components/_vv-checkbox-group.scss +33 -2
  104. package/src/settings/components/_vv-checkbox.scss +8 -3
  105. package/src/settings/components/_vv-command.scss +99 -0
  106. package/src/settings/components/_vv-dialog.scss +129 -26
  107. package/src/settings/components/_vv-dropdown-action.scss +3 -2
  108. package/src/settings/components/_vv-dropdown-option.scss +3 -3
  109. package/src/settings/components/_vv-empty.scss +71 -0
  110. package/src/settings/components/_vv-field.scss +111 -0
  111. package/src/settings/components/_vv-input-file.scss +8 -8
  112. package/src/settings/components/_vv-input-otp.scss +55 -0
  113. package/src/settings/components/_vv-input-range.scss +3 -3
  114. package/src/settings/components/_vv-input-text.scss +7 -7
  115. package/src/settings/components/_vv-item-group.scss +68 -0
  116. package/src/settings/components/_vv-item.scss +201 -0
  117. package/src/settings/components/_vv-kbd-group.scss +9 -0
  118. package/src/settings/components/_vv-kbd.scss +20 -0
  119. package/src/settings/components/_vv-marker.scss +32 -0
  120. package/src/settings/components/_vv-message-scroller.scss +65 -0
  121. package/src/settings/components/_vv-message.scss +95 -0
  122. package/src/settings/components/_vv-nav.scss +7 -3
  123. package/src/settings/components/_vv-pagination.scss +78 -0
  124. package/src/settings/components/_vv-popover.scss +53 -0
  125. package/src/settings/components/_vv-progress.scss +4 -4
  126. package/src/settings/components/_vv-prose.scss +274 -0
  127. package/src/settings/components/_vv-questionnaire.scss +77 -0
  128. package/src/settings/components/_vv-radio.scss +7 -3
  129. package/src/settings/components/_vv-select.scss +6 -6
  130. package/src/settings/components/_vv-separator.scss +79 -0
  131. package/src/settings/components/_vv-sidebar.scss +91 -0
  132. package/src/settings/components/_vv-spinner.scss +26 -0
  133. package/src/settings/components/_vv-table.scss +63 -0
  134. package/src/settings/components/_vv-text.scss +3 -3
  135. package/src/settings/components/_vv-textarea.scss +7 -7
  136. package/src/themes/dark/components/_vv-checkbox.scss +27 -0
  137. package/src/themes/dark/components/_vv-radio.scss +27 -0
  138. package/src/themes/dark/components/index.scss +2 -0
  139. package/src/themes/dark/props/_colors.scss +6 -0
  140. package/src/themes/dark/settings/_colors.scss +97 -32
  141. package/src/themes/dark/settings/_index.scss +2 -0
  142. package/src/themes/dark/settings/_input.scss +4 -8
  143. package/src/themes/dark/settings/components/_choice.scss +15 -0
  144. package/src/themes/dark/settings/components/_vv-alert.scss +6 -48
  145. package/src/themes/dark/settings/components/_vv-avatar.scss +1 -16
  146. package/src/themes/dark/settings/components/_vv-badge.scss +1 -32
  147. package/src/themes/dark/settings/components/_vv-button.scss +0 -15
  148. package/src/themes/dark/settings/components/_vv-checkbox.scss +7 -0
  149. package/src/themes/dark/settings/components/_vv-dropdown-action.scss +2 -3
  150. package/src/themes/dark/settings/components/_vv-dropdown-option.scss +2 -19
  151. package/src/themes/dark/settings/components/_vv-nav.scss +2 -15
  152. package/src/themes/dark/settings/components/_vv-radio.scss +7 -0
  153. package/src/tools/_functions.scss +430 -2
  154. package/src/tools/mixin-modules/_bem.scss +5 -39
  155. package/src/tools/mixin-modules/_states.scss +77 -0
  156. package/src/tools/mixin-modules/_theme.scss +135 -121
  157. package/src/utilities/colors.scss +49 -4
  158. package/src/utilities/layout.scss +25 -0
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "bugs": {
25
25
  "url": "https://github.com/volverjs/style/issues"
26
26
  },
27
- "version": "0.1.29",
27
+ "version": "0.1.30",
28
28
  "engines": {
29
29
  "node": ">= 20.x"
30
30
  },
@@ -45,26 +45,26 @@
45
45
  ],
46
46
  "devDependencies": {
47
47
  "@eslint/js": "^10.0.1",
48
- "@iconify/vue": "^5.0.1",
48
+ "@iconify/vue": "^5.0.3",
49
49
  "@nabla/vite-plugin-eslint": "^3.0.1",
50
- "@types/node": "^26.4.1",
51
- "@vitejs/plugin-vue": "^6.0.8",
52
- "@vueuse/core": "^14.4.0",
50
+ "@types/node": "^26.6.4",
51
+ "@vitejs/plugin-vue": "^6.0.9",
52
+ "@vueuse/core": "^15.0.0",
53
53
  "@vueuse/head": "^2.0.0",
54
- "eslint": "^10.10.0",
54
+ "eslint": "^10.12.0",
55
55
  "eslint-config-prettier": "^10.1.8",
56
56
  "eslint-plugin-prettier": "^5.5.6",
57
- "eslint-plugin-vue": "^10.11.0",
57
+ "eslint-plugin-vue": "^10.11.1",
58
58
  "glob": "^13.0.6",
59
- "globals": "^17.12.0",
59
+ "globals": "^17.13.0",
60
60
  "icss-utils": "^5.1.0",
61
- "markdown-it": "^15.0.1",
61
+ "markdown-it": "^15.0.2",
62
62
  "markdown-it-anchor": "^10.0.0",
63
63
  "markdown-it-prism": "^4.0.0",
64
- "postcss": "^8.5.28",
64
+ "postcss": "^8.5.29",
65
65
  "postcss-html": "^2.0.0",
66
- "postcss-preset-env": "^11.5.2",
67
- "prettier": "^3.9.6",
66
+ "postcss-preset-env": "^11.6.1",
67
+ "prettier": "^3.9.9",
68
68
  "prism-themes": "^1.9.0",
69
69
  "prismjs": "^1.30.0",
70
70
  "reduce-css-calc": "^2.1.8",
@@ -72,14 +72,14 @@
72
72
  "remark-frontmatter": "^5.0.0",
73
73
  "remark-gfm": "^4.0.1",
74
74
  "remark-lint": "^10.0.1",
75
- "sass-embedded": "^1.104.0",
76
- "stylelint": "^17.15.0",
75
+ "sass-embedded": "^1.105.1",
76
+ "stylelint": "^17.16.0",
77
77
  "stylelint-config-recommended-scss": "^17.0.1",
78
78
  "stylelint-config-recommended-vue": "^2.0.0",
79
79
  "stylelint-config-standard-scss": "^17.0.0",
80
80
  "unplugin-auto-import": "^21.1.0",
81
81
  "unplugin-vue-components": "^32.1.0",
82
- "vite": "^8.2.2",
82
+ "vite": "^8.3.3",
83
83
  "vite-plugin-css-export": "^3.1.0",
84
84
  "vite-plugin-handlebars": "^2.0.3",
85
85
  "vite-plugin-markdown": "^2.2.0",
@@ -88,7 +88,7 @@
88
88
  "vite-plugin-vue-layouts": "^0.11.0",
89
89
  "vite-ssg": "^28.3.0",
90
90
  "vite-ssg-sitemap": "^0.10.0",
91
- "vue": "^3.5.42",
91
+ "vue": "^3.5.43",
92
92
  "vue-live": "^2.5.4",
93
93
  "vue-router": "^5.3.1"
94
94
  },
@@ -100,29 +100,52 @@
100
100
  "./components/vv-accordion-group": "./dist/components/vv-accordion-group.css",
101
101
  "./components/vv-alert": "./dist/components/vv-alert.css",
102
102
  "./components/vv-alert-group": "./dist/components/vv-alert-group.css",
103
+ "./components/vv-attachment": "./dist/components/vv-attachment.css",
104
+ "./components/vv-attachment-group": "./dist/components/vv-attachment-group.css",
103
105
  "./components/vv-avatar": "./dist/components/vv-avatar.css",
104
106
  "./components/vv-avatar-group": "./dist/components/vv-avatar-group.css",
105
107
  "./components/vv-badge": "./dist/components/vv-badge.css",
106
108
  "./components/vv-breadcrumb": "./dist/components/vv-breadcrumb.css",
109
+ "./components/vv-bubble": "./dist/components/vv-bubble.css",
110
+ "./components/vv-bubble-group": "./dist/components/vv-bubble-group.css",
107
111
  "./components/vv-button": "./dist/components/vv-button.css",
108
112
  "./components/vv-button-group": "./dist/components/vv-button-group.css",
113
+ "./components/vv-calendar": "./dist/components/vv-calendar.css",
109
114
  "./components/vv-card": "./dist/components/vv-card.css",
110
115
  "./components/vv-checkbox": "./dist/components/vv-checkbox.css",
111
116
  "./components/vv-checkbox-group": "./dist/components/vv-checkbox-group.css",
117
+ "./components/vv-command": "./dist/components/vv-command.css",
112
118
  "./components/vv-dialog": "./dist/components/vv-dialog.css",
113
119
  "./components/vv-dropdown": "./dist/components/vv-dropdown.css",
114
120
  "./components/vv-dropdown-action": "./dist/components/vv-dropdown-action.css",
115
121
  "./components/vv-dropdown-optgroup": "./dist/components/vv-dropdown-optgroup.css",
116
122
  "./components/vv-dropdown-option": "./dist/components/vv-dropdown-option.css",
123
+ "./components/vv-empty": "./dist/components/vv-empty.css",
124
+ "./components/vv-field": "./dist/components/vv-field.css",
117
125
  "./components/vv-input-file": "./dist/components/vv-input-file.css",
126
+ "./components/vv-input-otp": "./dist/components/vv-input-otp.css",
118
127
  "./components/vv-input-range": "./dist/components/vv-input-range.css",
119
128
  "./components/vv-input-text": "./dist/components/vv-input-text.css",
129
+ "./components/vv-item": "./dist/components/vv-item.css",
130
+ "./components/vv-item-group": "./dist/components/vv-item-group.css",
131
+ "./components/vv-kbd": "./dist/components/vv-kbd.css",
132
+ "./components/vv-kbd-group": "./dist/components/vv-kbd-group.css",
133
+ "./components/vv-marker": "./dist/components/vv-marker.css",
134
+ "./components/vv-message": "./dist/components/vv-message.css",
135
+ "./components/vv-message-scroller": "./dist/components/vv-message-scroller.css",
120
136
  "./components/vv-nav": "./dist/components/vv-nav.css",
137
+ "./components/vv-pagination": "./dist/components/vv-pagination.css",
138
+ "./components/vv-popover": "./dist/components/vv-popover.css",
121
139
  "./components/vv-progress": "./dist/components/vv-progress.css",
140
+ "./components/vv-prose": "./dist/components/vv-prose.css",
141
+ "./components/vv-questionnaire": "./dist/components/vv-questionnaire.css",
122
142
  "./components/vv-radio": "./dist/components/vv-radio.css",
123
143
  "./components/vv-radio-group": "./dist/components/vv-radio-group.css",
124
144
  "./components/vv-select": "./dist/components/vv-select.css",
145
+ "./components/vv-separator": "./dist/components/vv-separator.css",
146
+ "./components/vv-sidebar": "./dist/components/vv-sidebar.css",
125
147
  "./components/vv-skeleton": "./dist/components/vv-skeleton.css",
148
+ "./components/vv-spinner": "./dist/components/vv-spinner.css",
126
149
  "./components/vv-tab": "./dist/components/vv-tab.css",
127
150
  "./components/vv-table": "./dist/components/vv-table.css",
128
151
  "./components/vv-text": "./dist/components/vv-text.css",
@@ -151,29 +174,52 @@
151
174
  "./scss/components/vv-accordion-group": "./src/components/vv-accordion-group.scss",
152
175
  "./scss/components/vv-alert": "./src/components/vv-alert.scss",
153
176
  "./scss/components/vv-alert-group": "./src/components/vv-alert-group.scss",
177
+ "./scss/components/vv-attachment": "./src/components/vv-attachment.scss",
178
+ "./scss/components/vv-attachment-group": "./src/components/vv-attachment-group.scss",
154
179
  "./scss/components/vv-avatar": "./src/components/vv-avatar.scss",
155
180
  "./scss/components/vv-avatar-group": "./src/components/vv-avatar-group.scss",
156
181
  "./scss/components/vv-badge": "./src/components/vv-badge.scss",
157
182
  "./scss/components/vv-breadcrumb": "./src/components/vv-breadcrumb.scss",
183
+ "./scss/components/vv-bubble": "./src/components/vv-bubble.scss",
184
+ "./scss/components/vv-bubble-group": "./src/components/vv-bubble-group.scss",
158
185
  "./scss/components/vv-button": "./src/components/vv-button.scss",
159
186
  "./scss/components/vv-button-group": "./src/components/vv-button-group.scss",
187
+ "./scss/components/vv-calendar": "./src/components/vv-calendar.scss",
160
188
  "./scss/components/vv-card": "./src/components/vv-card.scss",
161
189
  "./scss/components/vv-checkbox": "./src/components/vv-checkbox.scss",
162
190
  "./scss/components/vv-checkbox-group": "./src/components/vv-checkbox-group.scss",
191
+ "./scss/components/vv-command": "./src/components/vv-command.scss",
163
192
  "./scss/components/vv-dialog": "./src/components/vv-dialog.scss",
164
193
  "./scss/components/vv-dropdown": "./src/components/vv-dropdown.scss",
165
194
  "./scss/components/vv-dropdown-action": "./src/components/vv-dropdown-action.scss",
166
195
  "./scss/components/vv-dropdown-optgroup": "./src/components/vv-dropdown-optgroup.scss",
167
196
  "./scss/components/vv-dropdown-option": "./src/components/vv-dropdown-option.scss",
197
+ "./scss/components/vv-empty": "./src/components/vv-empty.scss",
198
+ "./scss/components/vv-field": "./src/components/vv-field.scss",
168
199
  "./scss/components/vv-input-file": "./src/components/vv-input-file.scss",
200
+ "./scss/components/vv-input-otp": "./src/components/vv-input-otp.scss",
169
201
  "./scss/components/vv-input-range": "./src/components/vv-input-range.scss",
170
202
  "./scss/components/vv-input-text": "./src/components/vv-input-text.scss",
203
+ "./scss/components/vv-item": "./src/components/vv-item.scss",
204
+ "./scss/components/vv-item-group": "./src/components/vv-item-group.scss",
205
+ "./scss/components/vv-kbd": "./src/components/vv-kbd.scss",
206
+ "./scss/components/vv-kbd-group": "./src/components/vv-kbd-group.scss",
207
+ "./scss/components/vv-marker": "./src/components/vv-marker.scss",
208
+ "./scss/components/vv-message": "./src/components/vv-message.scss",
209
+ "./scss/components/vv-message-scroller": "./src/components/vv-message-scroller.scss",
171
210
  "./scss/components/vv-nav": "./src/components/vv-nav.scss",
211
+ "./scss/components/vv-pagination": "./src/components/vv-pagination.scss",
212
+ "./scss/components/vv-popover": "./src/components/vv-popover.scss",
172
213
  "./scss/components/vv-progress": "./src/components/vv-progress.scss",
214
+ "./scss/components/vv-prose": "./src/components/vv-prose.scss",
215
+ "./scss/components/vv-questionnaire": "./src/components/vv-questionnaire.scss",
173
216
  "./scss/components/vv-radio": "./src/components/vv-radio.scss",
174
217
  "./scss/components/vv-radio-group": "./src/components/vv-radio-group.scss",
175
218
  "./scss/components/vv-select": "./src/components/vv-select.scss",
219
+ "./scss/components/vv-separator": "./src/components/vv-separator.scss",
220
+ "./scss/components/vv-sidebar": "./src/components/vv-sidebar.scss",
176
221
  "./scss/components/vv-skeleton": "./src/components/vv-skeleton.scss",
222
+ "./scss/components/vv-spinner": "./src/components/vv-spinner.scss",
177
223
  "./scss/components/vv-tab": "./src/components/vv-tab.scss",
178
224
  "./scss/components/vv-table": "./src/components/vv-table.scss",
179
225
  "./scss/components/vv-text": "./src/components/vv-text.scss",
@@ -184,6 +230,7 @@
184
230
  "./scss/functions": "./src/tools/_functions.scss",
185
231
  "./scss/mixins": "./src/tools/_mixins.scss",
186
232
  "./scss/preflight": "./src/_preflight.scss",
233
+ "./scss/presets/outlined-fields": "./src/presets/_outlined-fields.scss",
187
234
  "./scss/props": "./src/props/index.scss",
188
235
  "./scss/props/background": "./src/props/background.scss",
189
236
  "./scss/props/borders": "./src/props/borders.scss",
@@ -246,6 +293,7 @@
246
293
  "dev": "vite --port 3000 --open",
247
294
  "build": "node ./scripts/build.js && node ./scripts/generateDesignTokens.js",
248
295
  "design-tokens": "node ./scripts/generateDesignTokens.js",
296
+ "check:colors": "node ./scripts/checkColors.js",
249
297
  "styleguide": "vite-ssg build",
250
298
  "preview": "vite preview",
251
299
  "lint": "eslint .",
package/src/_config.scss CHANGED
@@ -36,29 +36,52 @@ $components-names: (
36
36
  vv-accordion: $components-prefix + -accordion,
37
37
  vv-alert-group: $components-prefix + -alert-group,
38
38
  vv-alert: $components-prefix + -alert,
39
+ vv-attachment-group: $components-prefix + -attachment-group,
40
+ vv-attachment: $components-prefix + -attachment,
39
41
  vv-avatar-group: $components-prefix + -avatar-group,
40
42
  vv-avatar: $components-prefix + -avatar,
41
43
  vv-badge: $components-prefix + -badge,
42
44
  vv-breadcrumb: $components-prefix + -breadcrumb,
45
+ vv-bubble-group: $components-prefix + -bubble-group,
46
+ vv-bubble: $components-prefix + -bubble,
43
47
  vv-button-group: $components-prefix + -button-group,
44
48
  vv-button: $components-prefix + -button,
49
+ vv-calendar: $components-prefix + -calendar,
45
50
  vv-card: $components-prefix + -card,
46
51
  vv-checkbox-group: $components-prefix + -checkbox-group,
47
52
  vv-checkbox: $components-prefix + -checkbox,
53
+ vv-command: $components-prefix + -command,
48
54
  vv-dialog: $components-prefix + -dialog,
49
55
  vv-dropdown-action: $components-prefix + -dropdown-action,
50
56
  vv-dropdown-optgroup: $components-prefix + -dropdown-optgroup,
51
57
  vv-dropdown-option: $components-prefix + -dropdown-option,
52
58
  vv-dropdown: $components-prefix + -dropdown,
59
+ vv-empty: $components-prefix + -empty,
60
+ vv-field: $components-prefix + -field,
53
61
  vv-input-file: $components-prefix + -input-file,
62
+ vv-input-otp: $components-prefix + -input-otp,
54
63
  vv-input-range: $components-prefix + -input-range,
55
64
  vv-input-text: $components-prefix + -input-text,
65
+ vv-item-group: $components-prefix + -item-group,
66
+ vv-item: $components-prefix + -item,
67
+ vv-kbd-group: $components-prefix + -kbd-group,
68
+ vv-kbd: $components-prefix + -kbd,
69
+ vv-marker: $components-prefix + -marker,
70
+ vv-message-scroller: $components-prefix + -message-scroller,
71
+ vv-message: $components-prefix + -message,
56
72
  vv-nav: $components-prefix + -nav,
73
+ vv-pagination: $components-prefix + -pagination,
74
+ vv-popover: $components-prefix + -popover,
57
75
  vv-progress: $components-prefix + -progress,
76
+ vv-prose: $components-prefix + -prose,
77
+ vv-questionnaire: $components-prefix + -questionnaire,
58
78
  vv-radio-group: $components-prefix + -radio-group,
59
79
  vv-radio: $components-prefix + -radio,
60
80
  vv-select: $components-prefix + -select,
81
+ vv-separator: $components-prefix + -separator,
82
+ vv-sidebar: $components-prefix + -sidebar,
61
83
  vv-skeleton: $components-prefix + -skeleton,
84
+ vv-spinner: $components-prefix + -spinner,
62
85
  vv-tab: $components-prefix + -tab,
63
86
  vv-table: $components-prefix + -table,
64
87
  vv-text: $components-prefix + -text,
@@ -12,7 +12,16 @@
12
12
  @include layer(preflight, $use-css-layers, $layer-prefix) {
13
13
  @if $preflight {
14
14
  :where(.preflight) {
15
- :not(.preflight-revert *) {
15
+ // An element that carries a class of a component is drawn by that
16
+ // component and left alone here: the rules below sit at (0,1,0) and
17
+ // would win over the component's zero specificity rules, dressing a
18
+ // `button.vv-badge__button` as a primary button or a
19
+ // `label.vv-radio--segment` as a plain radio. Both arguments of the
20
+ // `:not()` weigh a class, so the specificity does not move. A bare
21
+ // child a component styles through an `_alias` has no class to tell
22
+ // it apart and is still dressed, except inside `vv-prose`, whose whole
23
+ // content is bare tags it draws itself.
24
+ :not(.preflight-revert *, .#{map.get($components-names, vv-prose)} *, [class*='#{$components-prefix}-']) {
16
25
  // typography
17
26
  &:where(h1, h2, h3, h4, h5, h6) {
18
27
  @extend %vv-text !optional;
@@ -145,8 +154,11 @@
145
154
  @extend %text-smaller !optional;
146
155
  }
147
156
 
157
+ // A filled color: the text takes its contrast token, not the
158
+ // word color, which is light in the dark theme
148
159
  &:where(mark) {
149
160
  @extend %bg-warning !optional;
161
+ @extend %text-warning-contrast !optional;
150
162
  }
151
163
 
152
164
  &:where(pre) {
@@ -170,7 +182,7 @@
170
182
  }
171
183
 
172
184
  // anchor
173
- &:where(a:not(.#{map.get($components-names, vv-button)})) {
185
+ &:where(a) {
174
186
  @extend %vv-text !optional;
175
187
  @extend %vv-text--link !optional;
176
188
 
package/src/base.scss CHANGED
@@ -7,7 +7,7 @@
7
7
  :where(:host, :root, .theme) {
8
8
  accent-color: var(--color-brand);
9
9
  background: var(--color-surface);
10
- caret-color: var(--color-brand);
10
+ caret-color: var(--color-brand-graphic);
11
11
  color-scheme: var(--color-scheme);
12
12
  color: var(--color-word);
13
13
  scrollbar-color: var(--color-brand);
@@ -12,6 +12,7 @@
12
12
  @use 'vv-dropdown-action';
13
13
  @use 'vv-dropdown-option';
14
14
  @use 'vv-dropdown-optgroup';
15
+ @use 'vv-empty';
15
16
  @use 'vv-checkbox';
16
17
  @use 'vv-checkbox-group';
17
18
  @use 'vv-radio';
@@ -19,14 +20,41 @@
19
20
  @use 'vv-avatar';
20
21
  @use 'vv-avatar-group';
21
22
  @use 'vv-input-text';
23
+ @use 'vv-item';
24
+ @use 'vv-item-group';
22
25
  @use 'vv-input-file';
23
26
  @use 'vv-input-range';
27
+
28
+ // After vv-checkbox and vv-radio: a switch used as its control takes the
29
+ // control's margin over its own
30
+ @use 'vv-field';
24
31
  @use 'vv-nav';
32
+ @use 'vv-pagination';
25
33
  @use 'vv-progress';
34
+ @use 'vv-prose';
26
35
  @use 'vv-select';
36
+ @use 'vv-separator';
27
37
  @use 'vv-skeleton';
38
+ @use 'vv-spinner';
28
39
  @use 'vv-tab';
29
40
  @use 'vv-table';
30
41
  @use 'vv-text';
31
42
  @use 'vv-textarea';
32
43
  @use 'vv-tooltip';
44
+ @use 'vv-attachment';
45
+ @use 'vv-attachment-group';
46
+ @use 'vv-bubble';
47
+
48
+ // After vv-bubble: the joined corners of a group win over the bubble's own
49
+ @use 'vv-bubble-group';
50
+ @use 'vv-marker';
51
+ @use 'vv-message';
52
+ @use 'vv-message-scroller';
53
+ @use 'vv-questionnaire';
54
+ @use 'vv-calendar';
55
+ @use 'vv-command';
56
+ @use 'vv-input-otp';
57
+ @use 'vv-kbd';
58
+ @use 'vv-kbd-group';
59
+ @use 'vv-popover';
60
+ @use 'vv-sidebar';
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-attachment-group);
6
+ $component-map: $vv-attachment-group;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-attachment);
6
+ $component-map: $vv-attachment;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-bubble-group);
6
+ $component-map: $vv-bubble-group;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-bubble);
6
+ $component-map: $vv-bubble;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,25 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-calendar);
6
+ $component-map: $vv-calendar;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ // The keyboard ring of a day. The shared `focus-visible` state leaves out
18
+ // `tabindex="-1"`, and a grid moved across with a roving tabindex gives it to
19
+ // every day but one, so the ring is written here, on the pseudo-class alone.
20
+ @include wrap-with-where($selector: '#{$component-selector}__day:focus-visible', $enabled: $zero-specificity-for-components) {
21
+ outline: var(--spacing-px) solid var(--color-brand-graphic);
22
+ outline-offset: var(--spacing-2);
23
+ }
24
+
25
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-command);
6
+ $component-map: $vv-command;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-empty);
6
+ $component-map: $vv-empty;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,25 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-field);
6
+ $component-map: $vv-field;
7
+
8
+ @include spread-map-into-bem(
9
+ $map: $component-map,
10
+ $block: $component-name,
11
+ $use-custom-props: $use-custom-props-for-components,
12
+ $zero-specificity: $zero-specificity-for-components,
13
+ $bps: $breakpoints
14
+ );
15
+
16
+ // disabled and readonly, from the attribute of the control
17
+ @include spread-map-into-control-states(
18
+ $map: $component-map,
19
+ $block: $component-name,
20
+ $control: '.#{$component-name}__control',
21
+ $states: ('disabled', 'readonly'),
22
+ $zero-specificity: $zero-specificity-for-components
23
+ );
24
+
25
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-input-otp);
6
+ $component-map: $vv-input-otp;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-item-group);
6
+ $component-map: $vv-item-group;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,39 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-item);
6
+ $component-map: $vv-item;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ // A title over a description carries the weight of a heading on every row,
18
+ // or a list of titles over grey descriptions reads as one run of grey. The
19
+ // step of weight a chosen or a current row takes would be lost next to it,
20
+ // so on those rows the surface and the bar carry the state alone. The map
21
+ // cannot say "a title that has a description beside it", and this rule comes
22
+ // after the state rules it has to win over at the same specificity.
23
+ @include wrap-with-where(
24
+ $selector: '#{$component-selector}__content:has(> #{$component-selector}__description) > #{$component-selector}__title',
25
+ $enabled: $zero-specificity-for-components
26
+ ) {
27
+ font-weight: var(--font-semibold);
28
+ }
29
+
30
+ // A row whose entry is disabled answers no pointer: the row itself never
31
+ // carries the attribute, so its hover state would still light it up
32
+ @include wrap-with-where(
33
+ $selector: '#{$component-selector}:has(> #{$component-selector}__entry:is(:disabled, [aria-disabled="true"]))',
34
+ $enabled: $zero-specificity-for-components
35
+ ) {
36
+ background-color: transparent;
37
+ }
38
+
39
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-kbd-group);
6
+ $component-map: $vv-kbd-group;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-kbd);
6
+ $component-map: $vv-kbd;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }
@@ -0,0 +1,17 @@
1
+ @use 'sass:map';
2
+ @use '../context' as *;
3
+
4
+ @include layer(components, $use-css-layers, $layer-prefix) {
5
+ $component-name: map.get($components-names, vv-marker);
6
+ $component-map: $vv-marker;
7
+ $component-selector: '.#{ $component-name}';
8
+
9
+ @include spread-map-into-bem(
10
+ $map: $component-map,
11
+ $block: $component-name,
12
+ $use-custom-props: $use-custom-props-for-components,
13
+ $zero-specificity: $zero-specificity-for-components,
14
+ $bps: $breakpoints
15
+ );
16
+
17
+ }