@excom/valence 0.1.0
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.
- package/.rush/temp/chunked-rush-logs/valence.apply-exports.chunks.jsonl +1 -0
- package/.rush/temp/chunked-rush-logs/valence.build_package-metas.chunks.jsonl +1 -0
- package/.rush/temp/operation/apply-exports/all.log +1 -0
- package/.rush/temp/operation/apply-exports/log-chunks.jsonl +1 -0
- package/.rush/temp/operation/apply-exports/state.json +3 -0
- package/.rush/temp/operation/build_package-metas/all.log +1 -0
- package/.rush/temp/operation/build_package-metas/log-chunks.jsonl +1 -0
- package/.rush/temp/operation/build_package-metas/state.json +3 -0
- package/.rush/temp/shrinkwrap-deps.json +3 -0
- package/basic-vars.css +395 -0
- package/basic.css +3 -0
- package/package.json +35 -0
- package/rush-logs/valence.apply-exports.cache.log +1 -0
- package/rush-logs/valence.apply-exports.log +1 -0
- package/rush-logs/valence.build_package-metas.cache.log +1 -0
- package/rush-logs/valence.build_package-metas.log +1 -0
- package/src/aliases.css +125 -0
- package/src/apply.css +54 -0
- package/src/components/accordion.css +134 -0
- package/src/components/card.css +54 -0
- package/src/components/dropdown.css +235 -0
- package/src/components/group.css +119 -0
- package/src/components/loading.css +41 -0
- package/src/components/modal.css +172 -0
- package/src/components/nav.css +198 -0
- package/src/components/popover.css +83 -0
- package/src/components/progress.css +88 -0
- package/src/components/tooltip.css +209 -0
- package/src/content/button.css +184 -0
- package/src/content/code.css +68 -0
- package/src/content/embedded.css +49 -0
- package/src/content/figure.css +17 -0
- package/src/content/link.css +79 -0
- package/src/content/misc.css +29 -0
- package/src/content/table.css +144 -0
- package/src/content/typography.css +218 -0
- package/src/forms/basics.css +415 -0
- package/src/forms/checkbox-radio-switch.css +163 -0
- package/src/forms/input-color.css +27 -0
- package/src/forms/input-date.css +66 -0
- package/src/forms/input-file.css +37 -0
- package/src/forms/input-range.css +109 -0
- package/src/forms/input-search.css +52 -0
- package/src/layout/abstract.css +9 -0
- package/src/layout/container.css +43 -0
- package/src/layout/document.css +45 -0
- package/src/layout/grid.css +24 -0
- package/src/layout/landmarks.css +54 -0
- package/src/layout/overflow-auto.css +33 -0
- package/src/layout/section.css +10 -0
- package/src/mixins.basic.css +308 -0
- package/src/mixins.default.css +49 -0
- package/src/util.default.css +55 -0
- package/src/utilities/accessibility.css +69 -0
- package/src/utilities/opt-outs.css +32 -0
- package/support/demos/accordion.html +18 -0
- package/support/demos/aliases.html +6 -0
- package/support/demos/button.html +14 -0
- package/support/demos/card.html +8 -0
- package/support/demos/checkboxes.html +22 -0
- package/support/demos/code.html +6 -0
- package/support/demos/container.html +15 -0
- package/support/demos/css-variables.html +14 -0
- package/support/demos/dropdown.html +17 -0
- package/support/demos/embedded.html +7 -0
- package/support/demos/forms.html +18 -0
- package/support/demos/grid.html +13 -0
- package/support/demos/group.html +14 -0
- package/support/demos/input.html +11 -0
- package/support/demos/landmarks.html +20 -0
- package/support/demos/link.html +7 -0
- package/support/demos/loading.html +5 -0
- package/support/demos/modal.html +18 -0
- package/support/demos/nav.html +39 -0
- package/support/demos/opt-outs.html +8 -0
- package/support/demos/overflow-auto.html +12 -0
- package/support/demos/popover.html +6 -0
- package/support/demos/progress.html +4 -0
- package/support/demos/range.html +6 -0
- package/support/demos/schemes.html +12 -0
- package/support/demos/select.html +13 -0
- package/support/demos/table.html +18 -0
- package/support/demos/textarea.html +7 -0
- package/support/demos/tooltip.html +7 -0
- package/support/demos/typography.html +18 -0
- package/support/docs/ACCORDION.md +26 -0
- package/support/docs/ALIASES.md +35 -0
- package/support/docs/BUTTON.md +28 -0
- package/support/docs/CARD.md +23 -0
- package/support/docs/CHECKBOXES.md +21 -0
- package/support/docs/CODE.md +18 -0
- package/support/docs/CONTAINER.md +24 -0
- package/support/docs/CSS_VARIABLES.md +44 -0
- package/support/docs/DROPDOWN.md +22 -0
- package/support/docs/EMBEDDED.md +18 -0
- package/support/docs/FORMS.md +44 -0
- package/support/docs/GRID.md +19 -0
- package/support/docs/GROUP.md +24 -0
- package/support/docs/INPUT.md +26 -0
- package/support/docs/LANDMARKS.md +25 -0
- package/support/docs/LINK.md +23 -0
- package/support/docs/LOADING.md +15 -0
- package/support/docs/MODAL.md +36 -0
- package/support/docs/NAV.md +25 -0
- package/support/docs/OPT_OUTS.md +31 -0
- package/support/docs/OVERFLOW_AUTO.md +15 -0
- package/support/docs/POPOVER.md +19 -0
- package/support/docs/PROGRESS.md +14 -0
- package/support/docs/RANGE.md +16 -0
- package/support/docs/README.md +70 -0
- package/support/docs/SCHEMES.md +20 -0
- package/support/docs/SELECT.md +18 -0
- package/support/docs/TABLE.md +29 -0
- package/support/docs/TEXTAREA.md +16 -0
- package/support/docs/THEMES.md +39 -0
- package/support/docs/TOOLTIP.md +18 -0
- package/support/docs/TYPOGRAPHY.md +29 -0
- package/support/docs-sections.json +45 -0
- package/support/flat-vars.css +197 -0
- package/support/flat.css +4 -0
- package/support/package-meta.json +1820 -0
- package/support/paper-vars.css +203 -0
- package/support/paper.css +4 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"kind":"O","text":"Invoking: cd \"$RUSH_PROJECT_FOLDER\" && node ../heft-rig/scripts/apply-exports.mjs \n"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"kind":"O","text":"Invoking: node node_modules/@excom/heft-rig/scripts/build-package-metas.mjs \n"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Invoking: cd "$RUSH_PROJECT_FOLDER" && node ../heft-rig/scripts/apply-exports.mjs
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"kind":"O","text":"Invoking: cd \"$RUSH_PROJECT_FOLDER\" && node ../heft-rig/scripts/apply-exports.mjs \n"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Invoking: node node_modules/@excom/heft-rig/scripts/build-package-metas.mjs
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"kind":"O","text":"Invoking: node node_modules/@excom/heft-rig/scripts/build-package-metas.mjs \n"}
|
package/basic-vars.css
ADDED
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
* Theme: basic. Pico-faithful default tokens.
|
|
3
|
+
*
|
|
4
|
+
* - Global tokens (`:root`, `:host`)
|
|
5
|
+
* - Responsive font-size breakpoints
|
|
6
|
+
* - Element-level overrides (h1-h6, code, forms, ...)
|
|
7
|
+
* - Light scheme (default + `[data-scheme="light"]`)
|
|
8
|
+
* - Dark scheme (`prefers-color-scheme` or `[data-scheme="dark"]`)
|
|
9
|
+
*
|
|
10
|
+
* Values from Pico v2.1.1 compiled output; `--pico-*` renamed `--v-*`.
|
|
11
|
+
* ============================================================ */
|
|
12
|
+
|
|
13
|
+
@import "./src/mixins.basic.css";
|
|
14
|
+
|
|
15
|
+
@layer {
|
|
16
|
+
:host,
|
|
17
|
+
:root {
|
|
18
|
+
@mixin scheme-constants;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Responsive root font size */
|
|
22
|
+
@media (min-width: 576px) {
|
|
23
|
+
:host,
|
|
24
|
+
:root {
|
|
25
|
+
--v-font-size: 106.25%;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
@media (min-width: 768px) {
|
|
29
|
+
:host,
|
|
30
|
+
:root {
|
|
31
|
+
--v-font-size: 112.5%;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
@media (min-width: 1024px) {
|
|
35
|
+
:host,
|
|
36
|
+
:root {
|
|
37
|
+
--v-font-size: 118.75%;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
@media (min-width: 1280px) {
|
|
41
|
+
:host,
|
|
42
|
+
:root {
|
|
43
|
+
--v-font-size: 125%;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
@media (min-width: 1536px) {
|
|
47
|
+
:host,
|
|
48
|
+
:root {
|
|
49
|
+
--v-font-size: 131.25%;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/* Link */
|
|
53
|
+
:--link {
|
|
54
|
+
--v-text-decoration: underline;
|
|
55
|
+
}
|
|
56
|
+
:--link.contrast,
|
|
57
|
+
:--link.secondary {
|
|
58
|
+
--v-text-decoration: underline;
|
|
59
|
+
}
|
|
60
|
+
/* Typography */
|
|
61
|
+
|
|
62
|
+
:--button,
|
|
63
|
+
[type="submit"],
|
|
64
|
+
[type="reset"],
|
|
65
|
+
[type="file"]::file-selector-button {
|
|
66
|
+
--v-font-size: 1rem;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
input,
|
|
70
|
+
optgroup,
|
|
71
|
+
select,
|
|
72
|
+
textarea {
|
|
73
|
+
--v-font-size: 1rem;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
:--pre,
|
|
77
|
+
:--code,
|
|
78
|
+
:--kbd,
|
|
79
|
+
:--samp,
|
|
80
|
+
:--popover,
|
|
81
|
+
[role="tooltip"] {
|
|
82
|
+
--v-font-size: 0.75em;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
:--sub,
|
|
86
|
+
:--sup {
|
|
87
|
+
--v-font-size: 0.75em;
|
|
88
|
+
}
|
|
89
|
+
:--small {
|
|
90
|
+
--v-font-size: 0.875em;
|
|
91
|
+
}
|
|
92
|
+
:--heading {
|
|
93
|
+
--v-font-weight: 700;
|
|
94
|
+
}
|
|
95
|
+
:--h1 {
|
|
96
|
+
--v-font-size: 2rem;
|
|
97
|
+
--v-line-height: 1.125;
|
|
98
|
+
--v-typography-spacing-top: 3rem;
|
|
99
|
+
}
|
|
100
|
+
:--h2 {
|
|
101
|
+
--v-font-size: 1.75rem;
|
|
102
|
+
--v-line-height: 1.15;
|
|
103
|
+
--v-typography-spacing-top: 2.625rem;
|
|
104
|
+
}
|
|
105
|
+
:--h3 {
|
|
106
|
+
--v-font-size: 1.5rem;
|
|
107
|
+
--v-line-height: 1.175;
|
|
108
|
+
--v-typography-spacing-top: 2.25rem;
|
|
109
|
+
}
|
|
110
|
+
:--h4 {
|
|
111
|
+
--v-font-size: 1.25rem;
|
|
112
|
+
--v-line-height: 1.2;
|
|
113
|
+
--v-typography-spacing-top: 1.874rem;
|
|
114
|
+
}
|
|
115
|
+
:--h5 {
|
|
116
|
+
--v-font-size: 1.125rem;
|
|
117
|
+
--v-line-height: 1.225;
|
|
118
|
+
--v-typography-spacing-top: 1.6875rem;
|
|
119
|
+
}
|
|
120
|
+
:--h6 {
|
|
121
|
+
--v-font-size: 1rem;
|
|
122
|
+
--v-line-height: 1.25;
|
|
123
|
+
--v-typography-spacing-top: 1.5rem;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* Table */
|
|
127
|
+
:--tfoot :--td,
|
|
128
|
+
:--tfoot :--th,
|
|
129
|
+
:--thead :--td,
|
|
130
|
+
:--thead :--th {
|
|
131
|
+
--v-font-weight: 600;
|
|
132
|
+
--v-border-width: 0.1875rem;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* Code */
|
|
136
|
+
:--code,
|
|
137
|
+
:--kbd,
|
|
138
|
+
:--pre,
|
|
139
|
+
:--samp {
|
|
140
|
+
--v-font-family: var(--v-font-family-monospace);
|
|
141
|
+
}
|
|
142
|
+
:--kbd {
|
|
143
|
+
--v-font-weight: bolder;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Inputs and Selects */
|
|
147
|
+
:where(select, textarea),
|
|
148
|
+
input:not(
|
|
149
|
+
[type="submit"],
|
|
150
|
+
[type="button"],
|
|
151
|
+
[type="reset"],
|
|
152
|
+
[type="checkbox"],
|
|
153
|
+
[type="radio"],
|
|
154
|
+
[type="file"]
|
|
155
|
+
) {
|
|
156
|
+
--v-outline-width: 0.0625rem;
|
|
157
|
+
}
|
|
158
|
+
[type="search"] {
|
|
159
|
+
--v-border-radius: 5rem;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/* Checkboxes, Radios and Switches */
|
|
163
|
+
[type="checkbox"],
|
|
164
|
+
[type="radio"] {
|
|
165
|
+
--v-border-width: 0.125rem;
|
|
166
|
+
}
|
|
167
|
+
[type="checkbox"][role="switch"] {
|
|
168
|
+
--v-border-width: 0.1875rem;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/* Dropdown */
|
|
172
|
+
:--details.dropdown :--summary:not([role="button"]) {
|
|
173
|
+
--v-outline-width: 0.0625rem;
|
|
174
|
+
}
|
|
175
|
+
:--nav :--details.dropdown :--summary:focus-visible {
|
|
176
|
+
--v-outline-width: 0.125rem;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* Group / search */
|
|
180
|
+
:--search {
|
|
181
|
+
--v-border-radius: 5rem;
|
|
182
|
+
}
|
|
183
|
+
:--group:has(:--button.secondary:focus, [type="submit"].secondary:focus),
|
|
184
|
+
:--search:has(:--button.secondary:focus, [type="submit"].secondary:focus) {
|
|
185
|
+
--v-group-box-shadow-focus-with-button: 0 0 0 var(--v-outline-width)
|
|
186
|
+
var(--v-secondary-focus);
|
|
187
|
+
}
|
|
188
|
+
:--group:has(:--button.contrast:focus, [type="submit"].contrast:focus),
|
|
189
|
+
:--search:has(:--button.contrast:focus, [type="submit"].contrast:focus) {
|
|
190
|
+
--v-group-box-shadow-focus-with-button: 0 0 0 var(--v-outline-width)
|
|
191
|
+
var(--v-contrast-focus);
|
|
192
|
+
}
|
|
193
|
+
:--group :--button,
|
|
194
|
+
:--group [type="submit"],
|
|
195
|
+
:--search :--button,
|
|
196
|
+
:--search [type="submit"] {
|
|
197
|
+
--v-form-element-spacing-horizontal: 2rem;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* White chevron on accordion / dropdown buttons */
|
|
201
|
+
:--details :--summary[role="button"]:not(.outline)::after {
|
|
202
|
+
filter: brightness(0) invert(1);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/* White loading icon on filled buttons */
|
|
206
|
+
[aria-busy="true"]:not(input, select, textarea):is(
|
|
207
|
+
:--button,
|
|
208
|
+
[type="submit"],
|
|
209
|
+
[type="reset"]
|
|
210
|
+
):not(.outline)::before {
|
|
211
|
+
filter: brightness(0) invert(1);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/* Light scheme (default; force with `[data-scheme="light"]`) */
|
|
215
|
+
:host(:not([data-scheme="dark"])),
|
|
216
|
+
:root:not([data-scheme="dark"]),
|
|
217
|
+
[data-scheme="light"] {
|
|
218
|
+
@mixin scheme-light;
|
|
219
|
+
}
|
|
220
|
+
:host(:not([data-scheme="dark"]))
|
|
221
|
+
input:is(
|
|
222
|
+
[type="submit"],
|
|
223
|
+
[type="button"],
|
|
224
|
+
[type="reset"],
|
|
225
|
+
[type="checkbox"],
|
|
226
|
+
[type="radio"],
|
|
227
|
+
[type="file"]
|
|
228
|
+
),
|
|
229
|
+
:root:not([data-scheme="dark"])
|
|
230
|
+
input:is(
|
|
231
|
+
[type="submit"],
|
|
232
|
+
[type="button"],
|
|
233
|
+
[type="reset"],
|
|
234
|
+
[type="checkbox"],
|
|
235
|
+
[type="radio"],
|
|
236
|
+
[type="file"]
|
|
237
|
+
),
|
|
238
|
+
[data-scheme="light"]
|
|
239
|
+
input:is(
|
|
240
|
+
[type="submit"],
|
|
241
|
+
[type="button"],
|
|
242
|
+
[type="reset"],
|
|
243
|
+
[type="checkbox"],
|
|
244
|
+
[type="radio"],
|
|
245
|
+
[type="file"]
|
|
246
|
+
) {
|
|
247
|
+
--v-form-element-focus-color: var(--v-primary-focus);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* Dark scheme (auto via `prefers-color-scheme: dark`) */
|
|
251
|
+
@media only screen and (prefers-color-scheme: dark) {
|
|
252
|
+
:host(:not([data-scheme])),
|
|
253
|
+
:root:not([data-scheme]) {
|
|
254
|
+
@mixin scheme-dark;
|
|
255
|
+
}
|
|
256
|
+
:host(:not([data-scheme]))
|
|
257
|
+
input:is(
|
|
258
|
+
[type="submit"],
|
|
259
|
+
[type="button"],
|
|
260
|
+
[type="reset"],
|
|
261
|
+
[type="checkbox"],
|
|
262
|
+
[type="radio"],
|
|
263
|
+
[type="file"]
|
|
264
|
+
),
|
|
265
|
+
:root:not([data-scheme])
|
|
266
|
+
input:is(
|
|
267
|
+
[type="submit"],
|
|
268
|
+
[type="button"],
|
|
269
|
+
[type="reset"],
|
|
270
|
+
[type="checkbox"],
|
|
271
|
+
[type="radio"],
|
|
272
|
+
[type="file"]
|
|
273
|
+
) {
|
|
274
|
+
--v-form-element-focus-color: var(--v-primary-focus);
|
|
275
|
+
}
|
|
276
|
+
:host(:not([data-scheme]))
|
|
277
|
+
:--details
|
|
278
|
+
:--summary[role="button"].contrast:not(.outline)::after,
|
|
279
|
+
:root:not([data-scheme])
|
|
280
|
+
:--details
|
|
281
|
+
:--summary[role="button"].contrast:not(.outline)::after {
|
|
282
|
+
filter: brightness(0);
|
|
283
|
+
}
|
|
284
|
+
:host(:not([data-scheme]))
|
|
285
|
+
[aria-busy="true"]:not(input, select, textarea).contrast:is(
|
|
286
|
+
:--button,
|
|
287
|
+
[type="submit"],
|
|
288
|
+
[type="reset"]
|
|
289
|
+
):not(.outline)::before,
|
|
290
|
+
:root:not([data-scheme])
|
|
291
|
+
[aria-busy="true"]:not(input, select, textarea).contrast:is(
|
|
292
|
+
:--button,
|
|
293
|
+
[type="submit"],
|
|
294
|
+
[type="reset"]
|
|
295
|
+
):not(.outline)::before {
|
|
296
|
+
filter: brightness(0);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/* Dark scheme (force with `[data-scheme="dark"]`) */
|
|
301
|
+
[data-scheme="dark"] {
|
|
302
|
+
@mixin scheme-dark;
|
|
303
|
+
}
|
|
304
|
+
[data-scheme="dark"]
|
|
305
|
+
input:is(
|
|
306
|
+
[type="submit"],
|
|
307
|
+
[type="button"],
|
|
308
|
+
[type="reset"],
|
|
309
|
+
[type="checkbox"],
|
|
310
|
+
[type="radio"],
|
|
311
|
+
[type="file"]
|
|
312
|
+
) {
|
|
313
|
+
--v-form-element-focus-color: var(--v-primary-focus);
|
|
314
|
+
}
|
|
315
|
+
[data-scheme="dark"]
|
|
316
|
+
:--details
|
|
317
|
+
:--summary[role="button"].contrast:not(.outline)::after {
|
|
318
|
+
filter: brightness(0);
|
|
319
|
+
}
|
|
320
|
+
[data-scheme="dark"]
|
|
321
|
+
[aria-busy="true"]:not(input, select, textarea).contrast:is(
|
|
322
|
+
:--button,
|
|
323
|
+
[type="submit"],
|
|
324
|
+
[type="reset"]
|
|
325
|
+
):not(.outline)::before {
|
|
326
|
+
filter: brightness(0);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/* Native accent color (from schemes.scss) */
|
|
330
|
+
[type="checkbox"],
|
|
331
|
+
[type="radio"],
|
|
332
|
+
[type="range"],
|
|
333
|
+
:--progress {
|
|
334
|
+
accent-color: var(--v-primary);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/* Responsive spacing: landmarks / sections + cards */
|
|
338
|
+
@define-mixin section-spacing {
|
|
339
|
+
/* sm */
|
|
340
|
+
@media (min-width: 576px) {
|
|
341
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 1.25);
|
|
342
|
+
}
|
|
343
|
+
/* md */
|
|
344
|
+
@media (min-width: 768px) {
|
|
345
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 1.5);
|
|
346
|
+
}
|
|
347
|
+
/* lg */
|
|
348
|
+
@media (min-width: 1024px) {
|
|
349
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 1.75);
|
|
350
|
+
}
|
|
351
|
+
/* xl */
|
|
352
|
+
@media (min-width: 1280px) {
|
|
353
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 2);
|
|
354
|
+
}
|
|
355
|
+
/* xxl */
|
|
356
|
+
@media (min-width: 1536px) {
|
|
357
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 2.25);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
:--section {
|
|
361
|
+
@mixin section-spacing;
|
|
362
|
+
}
|
|
363
|
+
body {
|
|
364
|
+
@mixin abstract-wrapper {
|
|
365
|
+
> :--header,
|
|
366
|
+
> :--main,
|
|
367
|
+
> :--footer {
|
|
368
|
+
@mixin section-spacing;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
:--article {
|
|
374
|
+
@media (min-width: 576px) {
|
|
375
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 1.25);
|
|
376
|
+
--v-block-spacing-horizontal: calc(var(--v-spacing) * 1.25);
|
|
377
|
+
}
|
|
378
|
+
@media (min-width: 768px) {
|
|
379
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 1.5);
|
|
380
|
+
--v-block-spacing-horizontal: calc(var(--v-spacing) * 1.5);
|
|
381
|
+
}
|
|
382
|
+
@media (min-width: 1024px) {
|
|
383
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 1.75);
|
|
384
|
+
--v-block-spacing-horizontal: calc(var(--v-spacing) * 1.75);
|
|
385
|
+
}
|
|
386
|
+
@media (min-width: 1280px) {
|
|
387
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 2);
|
|
388
|
+
--v-block-spacing-horizontal: calc(var(--v-spacing) * 2);
|
|
389
|
+
}
|
|
390
|
+
@media (min-width: 1536px) {
|
|
391
|
+
--v-block-spacing-vertical: calc(var(--v-spacing) * 2.25);
|
|
392
|
+
--v-block-spacing-horizontal: calc(var(--v-spacing) * 2.25);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
package/basic.css
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@excom/valence",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Semantic CSS with class / ARIA aliases for native HTML and custom elements",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"engines": {
|
|
7
|
+
"node": ">=24.13.0"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"dependencies": {},
|
|
11
|
+
"peerDependencies": {},
|
|
12
|
+
"devDependencies": {
|
|
13
|
+
"@excom/heft-rig": "^0.1.0"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"url": "excom-dev/nucleus",
|
|
17
|
+
"directory": "packages/valence"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/excom-dev/nucleus/tree/main/packages/valence/support/docs/README.md",
|
|
20
|
+
"bugs": "https://github.com/excom-dev/nucleus/issues",
|
|
21
|
+
"keywords": [
|
|
22
|
+
"valence"
|
|
23
|
+
],
|
|
24
|
+
"excom": {
|
|
25
|
+
"packageType": "library"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "node node_modules/@excom/heft-rig/scripts/vite-build.mjs",
|
|
29
|
+
"build:watch": "node node_modules/@excom/heft-rig/scripts/vite-build-watch.mjs",
|
|
30
|
+
"format": "node node_modules/@excom/heft-rig/scripts/format.mjs",
|
|
31
|
+
"test": "node node_modules/@excom/heft-rig/scripts/vitest.mjs",
|
|
32
|
+
"coverage": "node node_modules/@excom/heft-rig/scripts/coverage.mjs",
|
|
33
|
+
"build:package-metas": "node node_modules/@excom/heft-rig/scripts/build-package-metas.mjs"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Project does not have a rush-project.json configuration file, or one provided by a rig, so it does not support caching.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Invoking: cd "$RUSH_PROJECT_FOLDER" && node ../heft-rig/scripts/apply-exports.mjs
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Project does not have a rush-project.json configuration file, or one provided by a rig, so it does not support caching.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Invoking: node node_modules/@excom/heft-rig/scripts/build-package-metas.mjs
|
package/src/aliases.css
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
* Element aliases. Each tag alias is a `@custom-selector` that expands to:
|
|
3
|
+
* 1. native tag (`article`)
|
|
4
|
+
* 2. role alias (`[role="article"]`)
|
|
5
|
+
* 3. class alias (`.tag-article`)
|
|
6
|
+
*
|
|
7
|
+
* Only for elements that can be styled/behaved generically. `input`
|
|
8
|
+
* cannot; `dialog` can (`[open]` ≡ `[aria-expanded="true"]`).
|
|
9
|
+
*
|
|
10
|
+
* - No aliases for inimitable natives (input, textarea, …).
|
|
11
|
+
* - State like `[open]` must also use `:is(dialog)` so it hits the
|
|
12
|
+
* right element. Same for `:not()`.
|
|
13
|
+
* - No `>` / `+`: these aliases get used inside `:not()`.
|
|
14
|
+
* - State aliases: `:--{el}--{name}`. No class aliases for states
|
|
15
|
+
* (aria / data only). Nested under the element alias
|
|
16
|
+
* (`:--details { &:--details--open { } }`). Assert against the
|
|
17
|
+
* right element (`:not([aria-valuenow])` breaks native `progress`).
|
|
18
|
+
* - No pseudo-elements: `postcss-custom-selectors` wraps in `:is()`,
|
|
19
|
+
* which breaks them. See `modal.css` backdrop.
|
|
20
|
+
* - This file is tag synonyms only, exclusive to the `@custom-selector`.
|
|
21
|
+
* Mixin-style aliases (no clear element) live elsewhere.
|
|
22
|
+
* ============================================================ */
|
|
23
|
+
|
|
24
|
+
/* No ARIA role: HTML AAM maps <details> to no corresponding role. ARIA 1.3 mentions "group" but adoption is inconsistent and would collide with :--group. */
|
|
25
|
+
@custom-selector :--details details, .tag-details;
|
|
26
|
+
|
|
27
|
+
@custom-selector :--details--open [open], [aria-expanded="true"];
|
|
28
|
+
/* No ARIA role: <summary>'s implicit role is "button" per HTML AAM, but exposing that here would collide with :--button. The disclosure state belongs on the parent <details>, not on summary. */
|
|
29
|
+
@custom-selector :--summary summary, .tag-summary;
|
|
30
|
+
|
|
31
|
+
@custom-selector :--dialog dialog, [role="dialog"], .tag-dialog;
|
|
32
|
+
@custom-selector :--dialog--open :is(dialog)[open], [aria-expanded="true"];
|
|
33
|
+
/* No native tag. Child of `:--dialog`, or next sibling of `content-drawer`. */
|
|
34
|
+
@custom-selector :--dialog-backdrop-aliases [role="presentation"], .tag-backdrop;
|
|
35
|
+
|
|
36
|
+
/* Popover is a global HTML attribute (Popover API), not a tag. */
|
|
37
|
+
@custom-selector :--popover [popover], .tag-popover;
|
|
38
|
+
@custom-selector :--popover--open :popover-open, [aria-expanded="true"];
|
|
39
|
+
|
|
40
|
+
@custom-selector :--header header, [role="header"], .tag-header;
|
|
41
|
+
@custom-selector :--footer footer, [role="footer"], .tag-footer;
|
|
42
|
+
|
|
43
|
+
@custom-selector :--nav nav, [role="navigation"], .tag-nav;
|
|
44
|
+
@custom-selector :--main main, [role="main"], .tag-main;
|
|
45
|
+
@custom-selector :--section section, [role="section"], .tag-section;
|
|
46
|
+
@custom-selector :--article article, [role="article"], .tag-article;
|
|
47
|
+
@custom-selector :--aside aside, [role="complementary"], .tag-aside;
|
|
48
|
+
|
|
49
|
+
@custom-selector :--link a, [role="link"], .tag-link;
|
|
50
|
+
|
|
51
|
+
@custom-selector :--button button, [role="button"], [type="button"], .tag-button;
|
|
52
|
+
@custom-selector :--button--disabled [disabled], [aria-disabled="true"];
|
|
53
|
+
|
|
54
|
+
@custom-selector :--list ul, ol, [role="list"], .tag-list;
|
|
55
|
+
@custom-selector :--li li, [role="listitem"], .tag-li;
|
|
56
|
+
@custom-selector :--tree [role="tree"], .tag-tree;
|
|
57
|
+
/* No ARIA role: <label> maps to no corresponding role per HTML AAM. */
|
|
58
|
+
@custom-selector :--label label, [role="label"], .tag-label;
|
|
59
|
+
@custom-selector :--group [role="group"], .tag-group;
|
|
60
|
+
@custom-selector :--search [role="search"], .tag-search;
|
|
61
|
+
|
|
62
|
+
@custom-selector :--progress progress, [role="progressbar"], .tag-progress;
|
|
63
|
+
@custom-selector :--progress-aliases [role="progressbar"], .tag-progress;
|
|
64
|
+
@custom-selector :--progress--value [value], [aria-valuenow];
|
|
65
|
+
@custom-selector :--progress--indeterminate :is(progress):indeterminate, :is([role="progressbar"], .tag-progress):not(:--progress--value);
|
|
66
|
+
|
|
67
|
+
/* No ARIA role: <pre> maps to no corresponding role per HTML AAM. */
|
|
68
|
+
@custom-selector :--pre pre, .tag-pre;
|
|
69
|
+
@custom-selector :--code code, [role="code"], .tag-code;
|
|
70
|
+
/* No ARIA role: <kbd> maps to no corresponding role per HTML AAM. */
|
|
71
|
+
@custom-selector :--kbd kbd, .tag-kbd;
|
|
72
|
+
/* No ARIA role: <samp> maps to no corresponding role per HTML AAM. */
|
|
73
|
+
@custom-selector :--samp samp, .tag-samp;
|
|
74
|
+
|
|
75
|
+
@custom-selector :--img img, [role="img"], .tag-img;
|
|
76
|
+
|
|
77
|
+
@custom-selector :--figure figure, [role="figure"], .tag-figure;
|
|
78
|
+
@custom-selector :--figcaption figcaption, [role="caption"]:is(figure *, [role="figure"] *), .tag-figcaption;
|
|
79
|
+
|
|
80
|
+
@custom-selector :--hr hr, [role="separator"], .tag-hr;
|
|
81
|
+
|
|
82
|
+
@custom-selector :--table table, [role="table"], .tag-table;
|
|
83
|
+
@custom-selector :--tr tr, [role="row"], .tag-tr;
|
|
84
|
+
@custom-selector :--th th, [role="columnheader"], [role="rowheader"], [scope="col"], [scope="row"], .tag-th;
|
|
85
|
+
@custom-selector :--th--sort [aria-sort];
|
|
86
|
+
@custom-selector :--th--sort-asc [aria-sort="ascending"];
|
|
87
|
+
@custom-selector :--th--sort-desc [aria-sort="descending"];
|
|
88
|
+
@custom-selector :--td td, [role="cell"], [role="gridcell"], .tag-td;
|
|
89
|
+
@custom-selector :--thead-th th:not([scope="row"]), [role="columnheader"], [scope="col"], .tag-th-col;
|
|
90
|
+
@custom-selector :--thead thead, [role="rowgroup"]:has(:--thead-th), .tag-thead;
|
|
91
|
+
@custom-selector :--tbody-th th:not([scope="col"]), [role="rowheader"], [scope="row"], .tag-th-row;
|
|
92
|
+
@custom-selector :--tbody tbody, [role="rowgroup"]:has(:--tbody-th, :--td), .tag-tbody;
|
|
93
|
+
/* No ARIA role: <tfoot> shares [role="rowgroup"] with thead/tbody and there is no positional/structural cue to disambiguate it (no equivalent of :--thead-th / :--tbody-th for footer cells). */
|
|
94
|
+
@custom-selector :--tfoot tfoot, .tag-tfoot;
|
|
95
|
+
|
|
96
|
+
@custom-selector :--p p, [role="paragraph"], .tag-p;
|
|
97
|
+
/* No ARIA role: <address> maps to no corresponding role per HTML AAM. */
|
|
98
|
+
@custom-selector :--address address, .tag-address;
|
|
99
|
+
@custom-selector :--blockquote blockquote, [role="blockquote"], .tag-blockquote;
|
|
100
|
+
/* No ARIA role: <dl> maps to no corresponding role per HTML AAM (the legacy "definitionlist" role was removed; "list" is in :--list and would lose dl-specific semantics). */
|
|
101
|
+
@custom-selector :--dl dl, .tag-dl;
|
|
102
|
+
@custom-selector :--form form, [role="form"], .tag-form;
|
|
103
|
+
/* No ARIA role: <hgroup> maps to no corresponding role per HTML AAM. */
|
|
104
|
+
@custom-selector :--hgroup hgroup, .tag-hgroup;
|
|
105
|
+
/* No ARIA role on the ul-/ol-specific aliases: their implicit role is "list", which is already exposed via :--list. Adding [role="list"] here would make any role="list" element match :--ul AND :--ol simultaneously, defeating the tag-specific intent (e.g. ul-only square markers). */
|
|
106
|
+
@custom-selector :--ul ul, .tag-ul;
|
|
107
|
+
@custom-selector :--ol ol, .tag-ol;
|
|
108
|
+
@custom-selector :--small small, .tag-small;
|
|
109
|
+
@custom-selector :--note [role="note"], .tag-note;
|
|
110
|
+
@custom-selector :--b b, .tag-b;
|
|
111
|
+
@custom-selector :--strong strong, .tag-strong;
|
|
112
|
+
@custom-selector :--sub sub, .tag-sub;
|
|
113
|
+
@custom-selector :--sup sup, .tag-sup;
|
|
114
|
+
@custom-selector :--h1 h1, [role="heading"][aria-level="1"], .tag-h1;
|
|
115
|
+
@custom-selector :--h2 h2, [role="heading"][aria-level="2"], .tag-h2;
|
|
116
|
+
@custom-selector :--h3 h3, [role="heading"][aria-level="3"], .tag-h3;
|
|
117
|
+
@custom-selector :--h4 h4, [role="heading"][aria-level="4"], .tag-h4;
|
|
118
|
+
@custom-selector :--h5 h5, [role="heading"][aria-level="5"], .tag-h5;
|
|
119
|
+
@custom-selector :--h6 h6, [role="heading"][aria-level="6"], .tag-h6;
|
|
120
|
+
@custom-selector :--heading h1, h2, h3, h4, h5, h6, [role="heading"], .tag-heading;
|
|
121
|
+
@custom-selector :--mark mark, [role="mark"], .tag-mark;
|
|
122
|
+
@custom-selector :--ins ins, [role="insertion"], .tag-ins;
|
|
123
|
+
@custom-selector :--del del, [role="deletion"], .tag-del;
|
|
124
|
+
/* No ARIA role: <abbr> maps to no corresponding role per HTML AAM (the legacy "acronym" role was deprecated). */
|
|
125
|
+
@custom-selector :--abbr abbr, .tag-abbr;
|
package/src/apply.css
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
* Apply every framework mixin.
|
|
3
|
+
*
|
|
4
|
+
* Mixins: `mixins.default.css`. Theme tokens: `<theme>-vars.css`.
|
|
5
|
+
*
|
|
6
|
+
* Element / alias styles sit in an anonymous `@layer` so consumer
|
|
7
|
+
* and custom-element sheets can override them. Class-only utilities
|
|
8
|
+
* stay unlayered: unlayered beats every `@layer` (including later
|
|
9
|
+
* anonymous `@layer { }` from custom elements imported after Valence.css),
|
|
10
|
+
* so `.grid` / `.abstract` still win at equal specificity.
|
|
11
|
+
* ============================================================ */
|
|
12
|
+
|
|
13
|
+
@layer {
|
|
14
|
+
@mixin module-document;
|
|
15
|
+
@mixin module-landmarks;
|
|
16
|
+
@mixin module-section;
|
|
17
|
+
|
|
18
|
+
@mixin module-typography;
|
|
19
|
+
@mixin module-link;
|
|
20
|
+
@mixin module-button;
|
|
21
|
+
@mixin module-table;
|
|
22
|
+
@mixin module-embedded;
|
|
23
|
+
@mixin module-code;
|
|
24
|
+
@mixin module-figure;
|
|
25
|
+
@mixin module-misc;
|
|
26
|
+
|
|
27
|
+
@mixin module-basics;
|
|
28
|
+
@mixin module-checkbox-radio-switch;
|
|
29
|
+
@mixin module-input-color;
|
|
30
|
+
@mixin module-input-date;
|
|
31
|
+
@mixin module-input-file;
|
|
32
|
+
@mixin module-input-range;
|
|
33
|
+
@mixin module-input-search;
|
|
34
|
+
|
|
35
|
+
@mixin module-accordion;
|
|
36
|
+
@mixin module-card;
|
|
37
|
+
@mixin module-dropdown;
|
|
38
|
+
@mixin module-group;
|
|
39
|
+
@mixin module-loading;
|
|
40
|
+
@mixin module-modal;
|
|
41
|
+
@mixin module-nav;
|
|
42
|
+
@mixin module-popover;
|
|
43
|
+
@mixin module-progress;
|
|
44
|
+
@mixin module-tooltip;
|
|
45
|
+
|
|
46
|
+
@mixin module-accessibility;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/* Class-only utilities. Unlayered, so they beat layered CE styles. */
|
|
50
|
+
@mixin module-abstract;
|
|
51
|
+
@mixin module-container;
|
|
52
|
+
@mixin module-grid;
|
|
53
|
+
@mixin module-overflow-auto;
|
|
54
|
+
@mixin module-opt-outs;
|