@vegastack/design-tokens 0.7.0 → 0.7.18
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/dist/base.css +44 -9
- package/package.json +1 -1
package/dist/base.css
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
REBUILT BY THE SHADCN RESET (Batch 1, 2026-09-18). This file is now upstream's own base layer
|
|
5
5
|
plus exactly the decisions `docs/plans/2026-09-18-shadcn-reset/decisions.md` marks **ours**:
|
|
6
6
|
|
|
7
|
-
FOC-1 one global :focus-visible
|
|
7
|
+
FOC-1 one global :focus-visible cue; components restate nothing
|
|
8
|
+
FOC-13 no focus rings except Tabs: the cue is a background tint (MK 2026-09-25)
|
|
8
9
|
FOC-7 the forced-colours fallback for text entry
|
|
9
10
|
MOT-5 the reduced-motion reset (and the one sanctioned !important)
|
|
10
11
|
INT-1 the hand cursor, on a wider selector list than shadcn's --pointer rule
|
|
@@ -59,12 +60,41 @@
|
|
|
59
60
|
@apply font-sans;
|
|
60
61
|
}
|
|
61
62
|
|
|
62
|
-
/* FOC-1 — the SINGLE focus affordance in the system
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
/* FOC-1 + FOC-13 — the SINGLE focus affordance in the system, and it is NOT a ring.
|
|
64
|
+
No focus ring anywhere except Tabs (MK 2026-09-25): a keyboard user sees a subtle background
|
|
65
|
+
TINT — `accent` at 50%, laid over whatever fill the control already has as a background IMAGE,
|
|
66
|
+
so a primary button, a chip, a row and a menu item all show it without any component
|
|
67
|
+
restating it. Text entry (text inputs, textarea, contenteditable) keeps its border tint
|
|
68
|
+
(FOC-3) and takes no fill. Tabs — the triggers and the panel — keep the 2px `ring` outline,
|
|
69
|
+
which FOC-2 binds to the near-black / near-white ink. Components carry no focus ring of their
|
|
70
|
+
own (FOC-6), and `design-lint`'s `no-focus-ring-glow` rule rejects any focus ring or outline
|
|
71
|
+
class, so one cannot creep back through a later upstream pull. */
|
|
67
72
|
:focus-visible {
|
|
73
|
+
outline: none;
|
|
74
|
+
}
|
|
75
|
+
:focus-visible:not(
|
|
76
|
+
textarea,
|
|
77
|
+
[contenteditable="true"],
|
|
78
|
+
[role="tab"],
|
|
79
|
+
[role="tabpanel"],
|
|
80
|
+
input:not(
|
|
81
|
+
[type="range"],
|
|
82
|
+
[type="radio"],
|
|
83
|
+
[type="checkbox"],
|
|
84
|
+
[type="button"],
|
|
85
|
+
[type="submit"],
|
|
86
|
+
[type="reset"],
|
|
87
|
+
[type="color"],
|
|
88
|
+
[type="file"]
|
|
89
|
+
)
|
|
90
|
+
) {
|
|
91
|
+
background-image: linear-gradient(
|
|
92
|
+
color-mix(in oklch, var(--accent) 50%, transparent),
|
|
93
|
+
color-mix(in oklch, var(--accent) 50%, transparent)
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
[role="tab"]:focus-visible,
|
|
97
|
+
[role="tabpanel"]:focus-visible {
|
|
68
98
|
@apply outline-2 outline-offset-1 outline-ring;
|
|
69
99
|
}
|
|
70
100
|
|
|
@@ -99,8 +129,10 @@
|
|
|
99
129
|
/* FOC-7 — preserve the focus contract when authored colours are replaced by a forced-colours
|
|
100
130
|
palette. */
|
|
101
131
|
@media (forced-colors: active) {
|
|
132
|
+
/* Forced colours drop the background tint, so the outline comes back here — and only here. */
|
|
102
133
|
:focus-visible {
|
|
103
|
-
outline
|
|
134
|
+
outline: 2px solid Highlight;
|
|
135
|
+
outline-offset: 1px;
|
|
104
136
|
}
|
|
105
137
|
|
|
106
138
|
/* Text-entry focus (FOC-3). Every text-entry control signals focus with a border TINT and strips
|
|
@@ -140,9 +172,12 @@
|
|
|
140
172
|
* Users who set `prefers-reduced-motion: reduce` MUST have animations and transitions neutralised
|
|
141
173
|
* even over component-authored durations; `!important` is the standard, intentional mechanism for
|
|
142
174
|
* this reset (it has to win against any animated rule, including ones defined later or with higher
|
|
143
|
-
* specificity). This is the SOLE
|
|
175
|
+
* specificity). This is the SOLE hand-written `!important` in the token CSS, and
|
|
144
176
|
* `design-lint --token-css` FAILS on any `!important` outside this block. Do not add `!important`
|
|
145
|
-
* to win a specificity fight elsewhere; restructure the selector or token instead.
|
|
177
|
+
* to win a specificity fight elsewhere; restructure the selector or token instead. (Component
|
|
178
|
+
* class strings are a separate ledger: Tailwind's `!` modifier compiles to `!important` too, and
|
|
179
|
+
* `design-lint`'s `important` rule allows it only in the counted, upstream-verbatim cases listed
|
|
180
|
+
* in its `IMPORTANT_MODIFIER_EXEMPTIONS`.)
|
|
146
181
|
* ──────────────────────────────────────────────────────────────────────────────────────────────*/
|
|
147
182
|
@media (prefers-reduced-motion: reduce) {
|
|
148
183
|
*,
|