ui-style-kit-css 2.5.0 → 2.6.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/CHANGELOG.md +29 -0
- package/README.md +84 -59
- package/dist/ui-style-kit.css +4089 -3591
- package/dist/ui-style-kit.min.css +3 -3
- package/dist/ui-style-kit.visual.css +4089 -3591
- package/dist/ui-style-kit.visual.min.css +3 -3
- package/dist/ui-style-kit.with-bridge.css +4089 -3591
- package/dist/ui-style-kit.with-bridge.min.css +3 -3
- package/dist/visual/art-deco.css +696 -339
- package/dist/visual/bauhaus.css +2 -2
- package/dist/visual/bento.css +2 -2
- package/dist/visual/brutalism.css +485 -170
- package/dist/visual/clay.css +2 -2
- package/dist/visual/cyberpunk.css +578 -263
- package/dist/visual/data-terminal.css +577 -262
- package/dist/visual/editorial-luxe.css +580 -265
- package/dist/visual/industrial-utility.css +644 -329
- package/dist/visual/maximalist.css +562 -247
- package/dist/visual/minimal-saas.css +511 -196
- package/dist/visual/neo-noir.css +2 -2
- package/dist/visual/neumorphism.css +534 -219
- package/dist/visual/organic-modern.css +2 -2
- package/dist/visual/paper-editorial.css +659 -344
- package/dist/visual/retro-glass.css +590 -275
- package/dist/visual/retrofuturism.css +539 -224
- package/dist/visual/tactile.css +552 -237
- package/dist/visual/technical-blueprint.css +618 -295
- package/dist/visual/y2k.css +521 -206
- package/docs/ART-DECO.md +2 -2
- package/docs/ECOSYSTEM.md +6 -6
- package/docs/PUBLISHING.md +7 -7
- package/docs/RELEASE-2.6.0.md +36 -0
- package/docs/STYLE-GUIDE.md +10 -0
- package/manifest.json +212 -179
- package/package.json +29 -1
- package/styles/art-deco.css +64 -1
- package/styles/bauhaus.css +8 -0
- package/styles/bento.css +10 -2
- package/styles/brutalism.css +8 -0
- package/styles/clay.css +11 -3
- package/styles/clean-defaults.css +295 -0
- package/styles/component-composition.css +829 -0
- package/styles/components.css +3 -3
- package/styles/cyberpunk.css +8 -0
- package/styles/data-terminal.css +8 -0
- package/styles/editorial-luxe.css +8 -0
- package/styles/industrial-utility.css +8 -0
- package/styles/interactive-surface-theme.css +23 -23
- package/styles/maximalist.css +8 -0
- package/styles/minimal-saas.css +8 -0
- package/styles/native-elements.css +7 -0
- package/styles/neo-noir.css +8 -0
- package/styles/neumorphism.css +8 -0
- package/styles/organic-modern.css +8 -0
- package/styles/paper-editorial.css +8 -0
- package/styles/retro-glass.css +8 -0
- package/styles/retrofuturism.css +8 -0
- package/styles/tactile.css +8 -0
- package/styles/technical-blueprint.css +16 -1
- package/styles/theme-colors.css +3 -0
- package/styles/y2k.css +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,35 @@ All notable changes to **UI Style Kit CSS** will be documented here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [2.6.0] - 2026-09-28
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Added library-wide clean defaults with a 2px element spacing fallback, compact control padding floors, `.usk-flush`/`.flush`, and `.usk-underline` utilities.
|
|
12
|
+
- Added canonical self-contained `presets/<name>.css` exports for all 20 UI styles while retaining the combined runtime-switching bundle and existing focused aliases.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Made decorative underlines opt-in while preserving native edit-notation elements such as `u`, `ins`, `del`, and `s`.
|
|
17
|
+
- Extended preset-native paint with complete secondary, accent, and semantic foreground pairs for companion surface integrations.
|
|
18
|
+
- Made the Interactive Surface bridge inherit each preset's native radius so clipped and squared identities are not rounded by the integration layer.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Corrected Interactive Surface reference-palette resolution so omitted `data-theme` values use each preset's native surface and foreground pairs instead of mismatched light fallbacks.
|
|
23
|
+
- Repaired late Bento and Clay reference colors identified by the rendered all-preset contrast audit.
|
|
24
|
+
- Prevented semantic checkbox, radio, and switch markup from painting a second native choice control beside its authored control surface.
|
|
25
|
+
- Protected current-page pagination foregrounds from broad preset anchor rules.
|
|
26
|
+
- Centered semantic avatar fallback content and constrained nested chip remove actions without requiring React-specific styling hooks.
|
|
27
|
+
- Normalized semantic SVG icon geometry through `data-ui-icon` so close marks and other reusable icons align without framework-owned CSS.
|
|
28
|
+
- Insets checkbox, radio, and switch surfaces; vertically centers controls; optically centers avatar initials; and keeps nested chip actions subordinate to their labels.
|
|
29
|
+
- Added `data-pagination-kind="page|direction"` geometry so page numbers remain slightly smaller than Previous and Next bookends.
|
|
30
|
+
|
|
31
|
+
### Tests
|
|
32
|
+
|
|
33
|
+
- Added release contracts proving every standalone preset resolves without CSS imports, scopes itself to the correct `data-ui` value, and exposes the canonical `.usk-*` component API.
|
|
34
|
+
- Expanded rendered contrast, component-composition, semantic-layout, and reference-palette coverage for the corrected library-owned styles.
|
|
35
|
+
|
|
7
36
|
## [2.5.0] - 2026-09-26
|
|
8
37
|
|
|
9
38
|
### Added
|
package/README.md
CHANGED
|
@@ -9,17 +9,17 @@ It is separate from, but complementary to, **Interactive Surface CSS** and **Lay
|
|
|
9
9
|
|
|
10
10
|
## Current release
|
|
11
11
|
|
|
12
|
-
Version `v2.
|
|
12
|
+
Version `v2.6.0` is a backward-compatible component-quality and delivery release. It gives every UI system a canonical self-contained `presets/<name>.css` import, keeps the all-style runtime-switching bundles, and hardens the universal `.usk-*` component contract across all 20 presets. New markup should use `.usk-*`; generated `.ui-*` aliases remain available for existing consumers.
|
|
13
13
|
|
|
14
14
|
The available browser matrix continues to cover 20 presets × 25 themes × 3 modes × 3 engines (4,500 combinations). The `v2.4.1` theme additions and Signal Yellow contrast corrections remain unchanged.
|
|
15
15
|
|
|
16
|
-
The `v2.4.0` baseline introduced complete native-control identities, native light/dark/contrast palettes when `data-theme` is omitted, a palette-aware color workbench, a unified demo with style-specific components, and exactly pinned parser-based minification. See the [2.
|
|
16
|
+
The `v2.4.0` baseline introduced complete native-control identities, native light/dark/contrast palettes when `data-theme` is omitted, a palette-aware color workbench, a unified demo with style-specific components, and exactly pinned parser-based minification. See the [2.6.0 release notes](docs/RELEASE-2.6.0.md) for the current scope and verification boundaries.
|
|
17
17
|
|
|
18
18
|
[Showcase website](https://foscat.github.io/ui-style-kit-css/)
|
|
19
19
|
|
|
20
20
|
## How the library fits together
|
|
21
21
|
|
|
22
|
-
UI Style Kit CSS owns visual identity: themes, semantic `.
|
|
22
|
+
UI Style Kit CSS owns visual identity: themes, semantic `.usk-*` component paint, native HTML styling, and the advanced prefixed class API. It can be used alone, or paired with the sibling libraries when a project needs structural layout primitives or richer interaction-state behavior.
|
|
23
23
|
|
|
24
24
|
```mermaid
|
|
25
25
|
flowchart LR
|
|
@@ -56,11 +56,11 @@ These libraries stay standalone, but the current aligned set is:
|
|
|
56
56
|
|
|
57
57
|
| Library | Aligned version | Owns |
|
|
58
58
|
|---|---:|---|
|
|
59
|
-
| `ui-style-kit-css@2.
|
|
59
|
+
| `ui-style-kit-css@2.6.0` | current release | visual identity, color themes, UI paint, native HTML styling, content wrapping, and bridge tokens |
|
|
60
60
|
| `interactive-surface-css@1.7.3` | compatible state release | interaction-state primitives, surface behavior, state layers, and input affordances |
|
|
61
61
|
| `layout-style-css@3.2.3` | compatible structural release | structural wrappers, grids, sections, app shells, and layout recipes |
|
|
62
62
|
|
|
63
|
-
UI Style Kit `2.
|
|
63
|
+
UI Style Kit `2.6.0` is the current release and is aligned with the reviewed Interactive Surface `1.7.3` and Layout Style `3.2.3` releases. The validated minimum remains `ui-style-kit-css@2.1.0`, `interactive-surface-css@1.5.0`, and `layout-style-css@3.0.0`.
|
|
64
64
|
|
|
65
65
|
Use one, two, or all three depending on the project. UI Style Kit does not require the sibling libraries, and the optional bridge only maps shared `--usk-*` roles into Interactive Surface tokens when consumers import it.
|
|
66
66
|
|
|
@@ -76,7 +76,7 @@ For import order, ownership boundaries, and adoption paths, see the [Ecosystem g
|
|
|
76
76
|
- 25 shared color schemes
|
|
77
77
|
- `light`, `dark`, and `contrast` modes
|
|
78
78
|
- Native preset colors when no shared theme is selected
|
|
79
|
-
- Combined CSS bundle and per-style
|
|
79
|
+
- Combined CSS bundle and canonical self-contained per-style imports
|
|
80
80
|
- Visual-only full and focused entrypoints for consumer-owned layouts
|
|
81
81
|
- Machine-readable `manifest.json` preset, theme, mode, class, and native-part capabilities
|
|
82
82
|
- Shared `theme-colors.css`, `native-elements.css`, and `content-overflow.css` layers for all UI systems
|
|
@@ -117,10 +117,22 @@ import "ui-style-kit-css";
|
|
|
117
117
|
|
|
118
118
|
Use `ui-style-kit-css/visual.css` for the same 75-selector semantic runtime API without the deprecated prefixed layout selectors. The generated default, visual, and with-bridge bundles all support all 20 `data-ui` values.
|
|
119
119
|
|
|
120
|
-
Applications fixed to one preset can use
|
|
120
|
+
Applications fixed to one preset can use its canonical self-contained entrypoint. It includes the shared foundations, preset paint, and semantic aliases scoped to that preset, with no unresolved CSS `@import` statements:
|
|
121
121
|
|
|
122
122
|
```js
|
|
123
|
-
import "ui-style-kit-css/
|
|
123
|
+
import "ui-style-kit-css/presets/minimal-saas.css";
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The existing `ui-style-kit-css/visual/<preset>.css` paths remain supported aliases to the same generated files.
|
|
127
|
+
|
|
128
|
+
For applications that let a user switch styles at runtime, import the all-style bundle once and update `data-ui`. Theme and mode remain independent attributes:
|
|
129
|
+
|
|
130
|
+
```js
|
|
131
|
+
import "ui-style-kit-css";
|
|
132
|
+
|
|
133
|
+
document.documentElement.dataset.ui = "cyberpunk";
|
|
134
|
+
document.documentElement.dataset.theme = "arctic-indigo";
|
|
135
|
+
document.documentElement.dataset.mode = "dark";
|
|
124
136
|
```
|
|
125
137
|
|
|
126
138
|
The exact preset, theme, mode, class, and native-part capability matrix is available from `ui-style-kit-css/manifest.json`.
|
|
@@ -135,12 +147,14 @@ import "ui-style-kit-css/minimal-saas.css";
|
|
|
135
147
|
import "ui-style-kit-css/styles/minimal-saas.css";
|
|
136
148
|
```
|
|
137
149
|
|
|
138
|
-
Compatible standalone style files continue to import the shared color-scheme, native-element fallback,
|
|
150
|
+
Compatible standalone style files continue to import the shared color-scheme, native-element fallback, content-overflow, and clean-default layers. Bundlers that understand CSS `@import` resolve them automatically. If your build pipeline does not resolve CSS imports, import the shared dependencies before the style file:
|
|
139
151
|
|
|
140
152
|
```js
|
|
141
153
|
import "ui-style-kit-css/theme-colors.css";
|
|
142
154
|
import "ui-style-kit-css/native-elements.css";
|
|
143
155
|
import "ui-style-kit-css/content-overflow.css";
|
|
156
|
+
import "ui-style-kit-css/component-composition.css";
|
|
157
|
+
import "ui-style-kit-css/clean-defaults.css";
|
|
144
158
|
import "ui-style-kit-css/minimal-saas.css";
|
|
145
159
|
```
|
|
146
160
|
|
|
@@ -163,21 +177,32 @@ The older stateful bridge and combined bundle remain public, deprecated compatib
|
|
|
163
177
|
|
|
164
178
|
The default and visual-only bundles do **not** include either bridge. That keeps UI paint independent and prevents accidental duplicate bridge imports.
|
|
165
179
|
|
|
166
|
-
When the bridge is attached, add `.interactive-surface` to interactable elements and use `data-surface-variant` plus `data-surface-level="1"`, `"2"`, or `"3"` to opt into the visible rest, hover, active, and focus treatments. The bridge inherits
|
|
180
|
+
When the bridge is attached, add `.interactive-surface` to interactable elements and use `data-surface-variant` plus `data-surface-level="1"`, `"2"`, or `"3"` to opt into the visible rest, hover, active, and focus treatments. The bridge inherits resolved `--usk-native-*` paint pairs and radius geometry first, so both shared themes and a preset's reference palette retain matched foregrounds, backgrounds, and corner identity.
|
|
181
|
+
|
|
182
|
+
### Clean defaults
|
|
183
|
+
|
|
184
|
+
Every element inside a themed UI root receives a 2px margin and padding fallback before preset-specific declarations are applied. Preset spacing still wins when it is roomier. Technical Blueprint is exempt because its drafting grammar intentionally joins controls and measured structures. Add `.usk-flush` (recommended) or its concise `.flush` alias to an element that intentionally needs zero margin and padding in every other style. Buttons and badges receive a 2px block and 4px inline padding floor when a preset does not provide roomier values.
|
|
185
|
+
|
|
186
|
+
Decorative underlines are disabled by default across UI roots. Add `.usk-underline` to opt an element back into an underline. Native `u`, `ins`, `del`, and `s` elements keep their semantic text decoration.
|
|
187
|
+
|
|
188
|
+
Semantic `.usk-check`, `.usk-radio`, and `.usk-switch` wrappers keep their native input focusable but visually hide it, leaving the authored control or switch track as the only painted affordance. Their visible controls are vertically centered and inset from the wrapper edge.
|
|
189
|
+
|
|
190
|
+
SVG icons marked with `data-ui-icon` receive stable `1em` square geometry, block alignment, and visible overflow from the CSS library. Component libraries can provide semantic SVG markup without adding framework-specific icon classes or styles. Avatar initials receive optical centering, removable chips constrain their nested action to a subordinate 24px square, and pagination can distinguish compact page numbers from larger bookends with `data-pagination-kind="page|direction"`.
|
|
167
191
|
|
|
168
192
|
### Bundle size guide
|
|
169
193
|
|
|
170
194
|
| Import | Raw | Gzip | Best for |
|
|
171
195
|
|---|---:|---:|---|
|
|
172
|
-
| `ui-style-kit-css/dist/ui-style-kit.min.css` | ~
|
|
173
|
-
| `ui-style-kit-css/visual.min.css` | ~
|
|
174
|
-
| `ui-style-kit-css/with-bridge.css` | ~
|
|
196
|
+
| `ui-style-kit-css/dist/ui-style-kit.min.css` | ~2445 KB | ~419 KB | Compatible runtime UI-system switchers and demos |
|
|
197
|
+
| `ui-style-kit-css/visual.min.css` | ~2429 KB | ~417 KB | Runtime visual switching with consumer-owned layout |
|
|
198
|
+
| `ui-style-kit-css/with-bridge.css` | ~2814 KB | ~444 KB | Deprecated runtime switcher plus stateful bridge |
|
|
175
199
|
| `ui-style-kit-css/theme-colors.css` | ~64 KB | ~8 KB | Shared color schemes for standalone style imports |
|
|
176
|
-
| `ui-style-kit-css/native-elements.css` | ~
|
|
200
|
+
| `ui-style-kit-css/native-elements.css` | ~32 KB | ~5 KB | Shared native HTML fallback styling |
|
|
177
201
|
| `ui-style-kit-css/content-overflow.css` | ~20 KB | ~3 KB | Shared long-text containment for standalone style imports |
|
|
202
|
+
| `ui-style-kit-css/clean-defaults.css` | <10 KB | <2 KB | Shared spacing floors and opt-in flush/underline utilities |
|
|
178
203
|
| `ui-style-kit-css/interactive-surface-theme.css` | ~9 KB | ~1 KB | Canonical token-and-paint bridge for Interactive Surface state core |
|
|
179
|
-
| `ui-style-kit-css/visual/minimal-saas.css` | ~
|
|
180
|
-
| `ui-style-kit-css/visual/industrial-utility.css` | ~
|
|
204
|
+
| `ui-style-kit-css/visual/minimal-saas.css` | ~314 KB | ~46 KB | Focused Minimal SaaS, including semantic aliases and shared foundations |
|
|
205
|
+
| `ui-style-kit-css/visual/industrial-utility.css` | ~403 KB | ~56 KB | Focused Industrial Utility, including its instrumentation styles |
|
|
181
206
|
|
|
182
207
|
## CDN usage
|
|
183
208
|
|
|
@@ -198,11 +223,11 @@ For production, pin the exact approved release rather than relying on `latest`:
|
|
|
198
223
|
```html
|
|
199
224
|
<body data-ui="minimal-saas" data-theme="arctic-indigo" data-mode="light">
|
|
200
225
|
<main>
|
|
201
|
-
<article class="
|
|
226
|
+
<article class="usk-card">
|
|
202
227
|
<h1>UI Style Kit CSS</h1>
|
|
203
228
|
<p>Switch UI systems, themes, and modes without changing component classes.</p>
|
|
204
|
-
<button class="
|
|
205
|
-
<span class="
|
|
229
|
+
<button class="usk-button" data-ui-variant="primary">Primary Action</button>
|
|
230
|
+
<span class="usk-spinner" role="status" aria-label="Loading"></span>
|
|
206
231
|
</article>
|
|
207
232
|
</main>
|
|
208
233
|
</body>
|
|
@@ -216,7 +241,7 @@ document.body.dataset.theme = "midnight-gold";
|
|
|
216
241
|
document.body.dataset.mode = "dark";
|
|
217
242
|
```
|
|
218
243
|
|
|
219
|
-
This changes the semantic components' visual preset without replacing their DOM nodes or rewriting their `.
|
|
244
|
+
This changes the semantic components' visual preset without replacing their DOM nodes or rewriting their `.usk-*` classes.
|
|
220
245
|
|
|
221
246
|
### Native palettes and None
|
|
222
247
|
|
|
@@ -234,61 +259,61 @@ The demo labels this choice **None — style defaults**. Do not assign the liter
|
|
|
234
259
|
|
|
235
260
|
## Semantic component API
|
|
236
261
|
|
|
237
|
-
`manifest.json#semanticComponentApi` is the authoritative specification for the implemented generic component API. Its 75 selectors keep the same class names while `data-ui` changes across all 20 presets. `implementationStatus` records the two retained `.
|
|
262
|
+
`manifest.json#semanticComponentApi` is the authoritative specification for the implemented generic component API. Its 75 canonical `.usk-*` selectors keep the same class names while `data-ui` changes across all 20 presets. `classNamespaces.compatibility` records the generated `.ui-*` migration alias. `implementationStatus` records the two retained `.usk-spinner` and `.usk-tooltip` hooks, the 73 generated semantic aliases, and an empty pending set.
|
|
238
263
|
|
|
239
264
|
| Role | Generic selectors | Switching coverage |
|
|
240
265
|
|---|---|---|
|
|
241
|
-
| Buttons | `.
|
|
242
|
-
| Card | `.
|
|
243
|
-
| Forms | `.
|
|
244
|
-
| Choice controls | `.
|
|
245
|
-
| Badge | `.
|
|
246
|
-
| Alert | `.
|
|
247
|
-
| Navigation | `.
|
|
248
|
-
| Table | `.
|
|
249
|
-
| Progress | `.
|
|
250
|
-
| Toolbar | `.
|
|
251
|
-
| Tabs | `.
|
|
252
|
-
| Pagination | `.
|
|
253
|
-
| Breadcrumb | `.
|
|
254
|
-
| Skeleton | `.
|
|
255
|
-
| Empty state | `.
|
|
256
|
-
| Metric | `.
|
|
257
|
-
| Chip | `.
|
|
258
|
-
| Avatar | `.
|
|
259
|
-
| Stepper | `.
|
|
260
|
-
| Toast | `.
|
|
261
|
-
| Popover | `.
|
|
262
|
-
| Menu | `.
|
|
263
|
-
| Segmented control | `.
|
|
264
|
-
| File upload | `.
|
|
265
|
-
| Listbox | `.
|
|
266
|
-
| Existing generic hooks | `.
|
|
266
|
+
| Buttons | `.usk-button`, `.usk-icon-button` | all 20 presets |
|
|
267
|
+
| Card | `.usk-card` | all 20 presets |
|
|
268
|
+
| Forms | `.usk-field`, `.usk-label`, `.usk-help-text`, `.usk-input`, `.usk-select`, `.usk-textarea` | all 20 presets |
|
|
269
|
+
| Choice controls | `.usk-check`, `.usk-check-control`, `.usk-radio`, `.usk-radio-control`, `.usk-switch`, `.usk-switch-track`, `.usk-switch-thumb` | all 20 presets |
|
|
270
|
+
| Badge | `.usk-badge` | all 20 presets |
|
|
271
|
+
| Alert | `.usk-alert`, `.usk-alert-title`, `.usk-alert-body` | all 20 presets |
|
|
272
|
+
| Navigation | `.usk-nav`, `.usk-nav-link` | all 20 presets |
|
|
273
|
+
| Table | `.usk-table`, `.usk-table-wrap` | all 20 presets |
|
|
274
|
+
| Progress | `.usk-progress`, `.usk-progress-bar` | all 20 presets |
|
|
275
|
+
| Toolbar | `.usk-toolbar` | all 20 presets |
|
|
276
|
+
| Tabs | `.usk-tabs`, `.usk-tab-list`, `.usk-tab`, `.usk-tab-panel` | all 20 presets |
|
|
277
|
+
| Pagination | `.usk-pagination`, `.usk-pagination-item`, `.usk-pagination-link` | all 20 presets |
|
|
278
|
+
| Breadcrumb | `.usk-breadcrumb`, `.usk-breadcrumb-list`, `.usk-breadcrumb-item`, `.usk-breadcrumb-link`, `.usk-breadcrumb-separator` | all 20 presets |
|
|
279
|
+
| Skeleton | `.usk-skeleton` | all 20 presets |
|
|
280
|
+
| Empty state | `.usk-empty-state`, `.usk-empty-state-icon`, `.usk-empty-state-title`, `.usk-empty-state-body`, `.usk-empty-state-actions` | all 20 presets |
|
|
281
|
+
| Metric | `.usk-metric`, `.usk-metric-label`, `.usk-metric-value`, `.usk-metric-detail` | all 20 presets |
|
|
282
|
+
| Chip | `.usk-chip`, `.usk-chip-group` | all 20 presets |
|
|
283
|
+
| Avatar | `.usk-avatar`, `.usk-avatar-group` | all 20 presets |
|
|
284
|
+
| Stepper | `.usk-stepper`, `.usk-step`, `.usk-step-marker`, `.usk-step-label` | all 20 presets |
|
|
285
|
+
| Toast | `.usk-toast-stack`, `.usk-toast`, `.usk-toast-title`, `.usk-toast-body`, `.usk-toast-actions` | all 20 presets |
|
|
286
|
+
| Popover | `.usk-popover` | all 20 presets |
|
|
287
|
+
| Menu | `.usk-menu`, `.usk-menu-item`, `.usk-menu-group`, `.usk-menu-separator` | all 20 presets |
|
|
288
|
+
| Segmented control | `.usk-segmented-control`, `.usk-segment` | all 20 presets |
|
|
289
|
+
| File upload | `.usk-file-upload`, `.usk-dropzone` | all 20 presets |
|
|
290
|
+
| Listbox | `.usk-listbox`, `.usk-listbox-option` | all 20 presets |
|
|
291
|
+
| Existing generic hooks | `.usk-spinner`, `.usk-tooltip` | all 20 presets |
|
|
267
292
|
|
|
268
293
|
Semantic paint variants use context-constrained `data-ui-variant`. Omit it for the neutral treatment.
|
|
269
294
|
|
|
270
295
|
| Selector | `data-ui-variant` values |
|
|
271
296
|
|---|---|
|
|
272
|
-
| `.
|
|
273
|
-
| `.
|
|
274
|
-
| `.
|
|
275
|
-
| `.
|
|
276
|
-
| `.
|
|
297
|
+
| `.usk-button` | `primary`, `secondary`, `warning`, `danger`, `ghost` |
|
|
298
|
+
| `.usk-badge` | `primary`, `secondary`, `success`, `warning`, `danger` |
|
|
299
|
+
| `.usk-alert` | `success`, `warning`, `danger` |
|
|
300
|
+
| `.usk-chip` | `primary`, `secondary`, `success`, `warning`, `danger` |
|
|
301
|
+
| `.usk-toast` | `info`, `success`, `warning`, `danger` |
|
|
277
302
|
|
|
278
303
|
Skeleton shape uses `data-shape="text|circle|block"`. Step workflow presentation uses `data-state="complete|current|upcoming|error"`; React and application code remain responsible for behavior and ARIA state.
|
|
279
304
|
|
|
280
305
|
```html
|
|
281
306
|
<body data-ui="minimal-saas" data-theme="arctic-indigo" data-mode="light">
|
|
282
|
-
<button class="
|
|
283
|
-
<article class="
|
|
307
|
+
<button class="usk-button" data-ui-variant="primary">Save</button>
|
|
308
|
+
<article class="usk-card">...</article>
|
|
284
309
|
</body>
|
|
285
310
|
```
|
|
286
311
|
|
|
287
|
-
Modal and dialog roles deliberately
|
|
312
|
+
Modal and dialog roles deliberately stay outside the 75-selector preset-paint alias contract and use native `<dialog>` semantics. The optional `component-composition.css` entrypoint supplies framework-neutral `.usk-modal` geometry; there is no generic `.usk-dialog` paint alias. The semantic API also does not define `data-ui-state`, `data-ui-size`, or `data-ui-placement`; continue to use native and ARIA state hooks, `.is-active`, and `[data-ui-tooltip-anchor]` where supported.
|
|
288
313
|
|
|
289
314
|
Preset-prefixed classes remain supported compatibility and advanced APIs. Partial preset extras, typography and paint utilities, surface/size/placement helpers, shape and accessibility utilities, and the deprecated `page`, `container`, `section`, `grid`, `stack`, `cluster`, and `split` structural aliases remain prefix-bound rather than entering the generic contract.
|
|
290
315
|
|
|
291
|
-
For example, a fixed Minimal SaaS integration may continue to use `<button class="saas-button saas-button-primary">`. Prefer `.
|
|
316
|
+
For example, a fixed Minimal SaaS integration may continue to use `<button class="saas-button saas-button-primary">`. Prefer `.usk-button` plus `data-ui-variant="primary"` when markup must survive runtime preset changes.
|
|
292
317
|
|
|
293
318
|
## UI systems
|
|
294
319
|
|
|
@@ -441,7 +466,7 @@ The shared native layer covers common native elements, including:
|
|
|
441
466
|
- tables and captions
|
|
442
467
|
- `details`, `summary`, `dialog`, `progress`, `meter`, `menu`, `search`, `optgroup`, and `option`
|
|
443
468
|
- loading indicators through `<prefix>-spinner`, `<prefix>-loading-spinner`, and busy native buttons with `aria-busy="true"`
|
|
444
|
-
- tooltip surfaces through `<prefix>-tooltip`, `<prefix>-tooltip-arrow`, `.
|
|
469
|
+
- tooltip surfaces through `<prefix>-tooltip`, `<prefix>-tooltip-arrow`, `.usk-tooltip`, `[role="tooltip"]`, and `[data-tooltip]`
|
|
445
470
|
|
|
446
471
|
CSS improves accessibility presentation, but it cannot guarantee accessibility by itself. Use semantic HTML, real labels, keyboard-safe JavaScript, meaningful link/button text, and correct ARIA state management.
|
|
447
472
|
|
|
@@ -459,7 +484,7 @@ Every style includes theme-driven spinner utilities:
|
|
|
459
484
|
<button class="saas-button saas-button-primary" aria-busy="true">Saving</button>
|
|
460
485
|
```
|
|
461
486
|
|
|
462
|
-
Spinner track, stroke, and accent colors come from the native palette or active `data-theme` and `data-mode`, while geometry, motion cadence, depth, and busy-button indicators follow the active UI preset. The generic `.
|
|
487
|
+
Spinner track, stroke, and accent colors come from the native palette or active `data-theme` and `data-mode`, while geometry, motion cadence, depth, and busy-button indicators follow the active UI preset. The generic `.usk-spinner`, `.loading-spinner`, and `[data-loading-spinner]` hooks receive the same preset identity inside any `[data-ui="..."]` scope.
|
|
463
488
|
|
|
464
489
|
## Tooltip surfaces
|
|
465
490
|
|
|
@@ -472,7 +497,7 @@ Every style includes visible tooltip utilities with the same API and preset-spec
|
|
|
472
497
|
</span>
|
|
473
498
|
```
|
|
474
499
|
|
|
475
|
-
Inside a `[data-ui="..."]` scope, generic `.
|
|
500
|
+
Inside a `[data-ui="..."]` scope, generic `.usk-tooltip`, `[role="tooltip"]`, and `[data-tooltip]` hooks inherit the active UI system.
|
|
476
501
|
|
|
477
502
|
## Font overrides
|
|
478
503
|
|