ui-style-kit-css 2.0.4 → 2.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/CHANGELOG.md CHANGED
@@ -2,6 +2,29 @@
2
2
 
3
3
  All notable changes to **UI Style Kit CSS** will be documented here.
4
4
 
5
+ ## [2.1.0] - 2026-07-20
6
+
7
+ ### Added
8
+
9
+ - Added visual-only full, minified, and focused preset entrypoints for applications that own their structural layout.
10
+ - Added `manifest.json` with preset entrypoints, themes, modes, composed class capabilities, deprecated structural suffixes, and native-part ownership classifications.
11
+ - Added a canonical `interactive-surface-theme.css` bridge that supplies public tokens and paint while leaving interaction mechanics to `interactive-surface-css/state-core.css`.
12
+ - Added CSS Tree AST contract coverage for generated class retention, export targets, cascade layers, and bridge ownership boundaries.
13
+ - Added exact `@axe-core/playwright` representative scans and a sharded 990-combination UI matrix across presets, themes, modes, and browser engines.
14
+ - Added manifest-backed demo control data and real `showModal()` dialog coverage for themed native backdrop behavior.
15
+
16
+ ### Changed
17
+
18
+ - Rebuilt combined output around the ordered `theme_colors`, `native_elements`, `components`, `presets`, and `compat_layout` layers.
19
+ - Moved shared component foundations into `components` and isolated retained prefixed structural helpers in `compat_layout`.
20
+ - Formatted generated CSS through Lightning CSS and pinned `css-tree` exactly for deterministic AST partitioning.
21
+ - Increased native and custom checkbox/radio targets to the WCAG 2.2 24px minimum and tightened demo accessibility semantics.
22
+
23
+ ### Deprecated
24
+
25
+ - Deprecated the `page`, `container`, `section`, `grid`, `stack`, `cluster`, and `split` prefixed structural suffixes for removal in v3.
26
+ - Deprecated the stateful `interactive-surface-bridge` and `with-bridge` integration paths while preserving their existing behavior.
27
+
5
28
  ## [2.0.4] - 2026-07-20
6
29
 
7
30
  ### Added
package/README.md CHANGED
@@ -9,7 +9,7 @@ It is separate from, but complementary to, **Interactive Surface CSS**. Use **UI
9
9
 
10
10
  ## Current Release
11
11
 
12
- `v2.0.4` is the current v2 correctness patch. It adds parser-based minification, restores valid native file-button and modal-backdrop styling, routes status foregrounds through semantic `on-*` tokens, and retains the shared content-overflow and responsive coverage work without changing the CSS API.
12
+ `v2.1.0` introduces a visual-only public API, a machine-readable capability manifest, a five-layer build architecture, and a canonical token-only Interactive Surface theme bridge. Existing default and focused entrypoints remain compatible, including their deprecated structural helpers, and parser-based minification remains exactly pinned.
13
13
 
14
14
  [Showcase website](https://foscat.github.io/ui-style-kit-css/)
15
15
 
@@ -50,9 +50,11 @@ These libraries stay standalone, but the current aligned set is:
50
50
 
51
51
  | Library | Aligned version | Owns |
52
52
  |---|---:|---|
53
- | `ui-style-kit-css@2.0.4` | source release target | visual identity, color themes, UI paint, native HTML styling, content wrapping, and bridge tokens |
54
- | `interactive-surface-css@1.3.0` | latest published sibling | interaction-state primitives, surface behavior, state layers, and input affordances |
55
- | `layout-style-css@1.1.2` | latest published sibling | structural wrappers, grids, sections, app shells, and layout recipes |
53
+ | `ui-style-kit-css@2.1.0` | staged source target | visual identity, color themes, UI paint, native HTML styling, content wrapping, and bridge tokens |
54
+ | `interactive-surface-css@1.5.0` | published release | interaction-state primitives, surface behavior, state layers, and input affordances |
55
+ | `layout-style-css@2.1.0` | staged source target | structural wrappers, grids, sections, app shells, and layout recipes |
56
+
57
+ UI Style Kit `2.1.0` and Layout Style `2.1.0` remain staged source targets until their release approvals complete. Interactive Surface `1.5.0` is the released companion state engine for this upgrade path.
56
58
 
57
59
  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.
58
60
 
@@ -64,6 +66,8 @@ For import order, ownership boundaries, and adoption paths, see the [Ecosystem g
64
66
  - 10 shared color schemes
65
67
  - `light`, `dark`, and `contrast` modes
66
68
  - Combined CSS bundle and per-style production imports
69
+ - Visual-only full and focused entrypoints for consumer-owned layouts
70
+ - Machine-readable `manifest.json` preset, theme, mode, class, and native-part capabilities
67
71
  - Shared `theme-colors.css`, `native-elements.css`, and `content-overflow.css` layers for all UI systems
68
72
  - Scoped native HTML element coverage, including semantic containers and inline text elements
69
73
  - Visible `:focus-visible` defaults
@@ -72,7 +76,8 @@ For import order, ownership boundaries, and adoption paths, see the [Ecosystem g
72
76
  - Theme-driven card, panel, control, page-background, and spinner defaults
73
77
  - Visible tooltip classes and native `[role="tooltip"]` styling inside each UI scope
74
78
  - Font-family override variables for body, headings, controls, and mono text
75
- - Optional bridge tokens, visible state layers, and an opt-in bridge bundle for `interactive-surface-css`
79
+ - Canonical token-and-paint-only theme bridge for `interactive-surface-css/state-core.css`
80
+ - Deprecated stateful bridge exports retained unchanged for backward compatibility
76
81
  - Reduced-motion, high-contrast, forced-colors, and print support
77
82
  - Cascade-layered CSS for easier consumer overrides
78
83
  - No runtime dependencies
@@ -91,7 +96,15 @@ Use a single style import for production apps that use one visual system:
91
96
  import "ui-style-kit-css/minimal-saas.css";
92
97
  ```
93
98
 
94
- In `v2.0.4`, standalone style files import the shared color-scheme layer from `styles/theme-colors.css`, the shared native-element fallback layer from `styles/native-elements.css`, and the shared content-overflow layer from `styles/content-overflow.css`. Bundlers that understand CSS `@import` will resolve them automatically. If your build pipeline does not resolve CSS imports, import the shared dependencies before the style file:
99
+ The existing focused entrypoints retain the v2 structural helpers. New integrations that already own layout should use a focused visual-only entrypoint:
100
+
101
+ ```js
102
+ import "ui-style-kit-css/visual/minimal-saas.css";
103
+ ```
104
+
105
+ Use `ui-style-kit-css/visual.css` for runtime preset switching without the deprecated prefixed layout selectors. The exact preset, theme, mode, class, and native-part capability matrix is available from `ui-style-kit-css/manifest.json`.
106
+
107
+ In `v2.1.0`, legacy standalone style files continue to import the shared color-scheme, native-element fallback, and content-overflow 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:
95
108
 
96
109
  ```js
97
110
  import "ui-style-kit-css/theme-colors.css";
@@ -113,7 +126,15 @@ Use the full bundle when users need to switch `data-ui` systems at runtime:
113
126
  import "ui-style-kit-css/dist/ui-style-kit.css";
114
127
  ```
115
128
 
116
- Use the opt-in bridge bundle when you want UI Style Kit CSS and the Interactive Surface bridge in one import:
129
+ For the canonical state-only integration, import visual paint, the token-only theme bridge, and Interactive Surface state mechanics as separate ownership layers:
130
+
131
+ ```js
132
+ import "ui-style-kit-css/visual/minimal-saas.css";
133
+ import "ui-style-kit-css/interactive-surface-theme.css";
134
+ import "interactive-surface-css/state-core.css";
135
+ ```
136
+
137
+ The older stateful bridge and combined bundle remain available for compatibility, but they are deprecated and have not been redirected to the token-only behavior:
117
138
 
118
139
  ```js
119
140
  import "ui-style-kit-css/with-bridge.css";
@@ -126,7 +147,7 @@ import "ui-style-kit-css/minimal-saas.css";
126
147
  import "ui-style-kit-css/interactive-surface-bridge";
127
148
  ```
128
149
 
129
- The default full bundle does **not** include the bridge. That keeps `dist/ui-style-kit.css` focused on UI systems and prevents accidental duplicate bridge imports.
150
+ The default and visual-only bundles do **not** include either bridge. That keeps UI paint independent and prevents accidental duplicate bridge imports.
130
151
 
131
152
  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 from shared `--usk-*` roles instead of duplicating per-theme or per-preset token maps.
132
153
 
@@ -134,11 +155,13 @@ When the bridge is attached, add `.interactive-surface` to interactable elements
134
155
 
135
156
  | Import | Raw | Gzip | Best for |
136
157
  |---|---:|---:|---|
137
- | `ui-style-kit-css/dist/ui-style-kit.min.css` | ~271 KB | ~35 KB | Runtime UI-system switchers and demos |
138
- | `ui-style-kit-css/with-bridge.css` | ~339 KB | ~40 KB | Runtime switchers plus Interactive Surface bridge |
158
+ | `ui-style-kit-css/dist/ui-style-kit.min.css` | ~299 KB | ~39 KB | Compatible runtime UI-system switchers and demos |
159
+ | `ui-style-kit-css/visual.min.css` | ~290 KB | ~38 KB | Runtime visual switching with consumer-owned layout |
160
+ | `ui-style-kit-css/with-bridge.css` | ~369 KB | ~44 KB | Deprecated runtime switcher plus stateful bridge |
139
161
  | `ui-style-kit-css/theme-colors.css` | ~25 KB | ~3 KB | Shared color schemes for standalone style imports |
140
- | `ui-style-kit-css/native-elements.css` | ~13 KB | ~2 KB | Shared native HTML fallback styling |
162
+ | `ui-style-kit-css/native-elements.css` | ~21 KB | ~3 KB | Shared native HTML fallback styling |
141
163
  | `ui-style-kit-css/content-overflow.css` | ~7 KB | ~1 KB | Shared long-text containment for standalone style imports |
164
+ | `ui-style-kit-css/interactive-surface-theme.css` | ~8 KB | ~1 KB | Canonical token-and-paint bridge for Interactive Surface state core |
142
165
  | Single style imports | ~26-28 KB | ~5-6 KB | Production apps with one visual system |
143
166
 
144
167
  ## CDN usage
@@ -149,10 +172,10 @@ Use the latest published NPM package:
149
172
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@latest/dist/ui-style-kit.min.css" />
150
173
  ```
151
174
 
152
- For production today, pin the latest published patch. Update this pin to `2.0.4` after that release is published:
175
+ For production, pin the exact approved release rather than relying on `latest`:
153
176
 
154
177
  ```html
155
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.0.3/dist/ui-style-kit.min.css" />
178
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ui-style-kit-css@2.1.0/dist/ui-style-kit.min.css" />
156
179
  ```
157
180
 
158
181
  ## Basic usage
@@ -244,6 +267,8 @@ CSS improves accessibility presentation, but it cannot guarantee accessibility b
244
267
 
245
268
  Semantic text utilities such as `saas-text-primary`, `saas-text-warning`, and `saas-text-danger` use the active theme palette directly. Filled UI such as buttons, badges, and busy states use compact `on-*` aliases like `--saas-on-primary` and `--saas-on-danger`.
246
269
 
270
+ For the full native-element and subpart support contract, including platform-owned picker and popup limitations, see [Native Element Coverage](docs/NATIVE-ELEMENTS.md).
271
+
247
272
  ## Loading states
248
273
 
249
274
  Every style includes theme-driven spinner utilities:
@@ -290,6 +315,8 @@ Override `--<prefix>-font-sans` and `--<prefix>-font-display` for the broadest c
290
315
 
291
316
  The library styles are wrapped in `@layer ui-style-kit.*`. Unlayered consumer CSS can override the library without specificity fights:
292
317
 
318
+ The declared order is `theme_colors`, `native_elements`, `components`, `presets`, then `compat_layout`. Visual-only entrypoints leave the final compatibility layer empty of deprecated structural selectors.
319
+
293
320
  ```css
294
321
  [data-ui="minimal-saas"][data-theme="arctic-indigo"] {
295
322
  --saas-radius-md: 1rem;
@@ -314,6 +341,7 @@ The color model is intentionally small: shared `--usk-*` RGB variables feed pref
314
341
  ```txt
315
342
  ui-style-kit-css/
316
343
  package.json
344
+ manifest.json
317
345
  README.md
318
346
  LICENSE
319
347
  CHANGELOG.md
@@ -321,11 +349,18 @@ ui-style-kit-css/
321
349
  dist/
322
350
  ui-style-kit.css
323
351
  ui-style-kit.min.css
352
+ ui-style-kit.visual.css
353
+ ui-style-kit.visual.min.css
324
354
  ui-style-kit.with-bridge.css
325
355
  ui-style-kit.with-bridge.min.css
356
+ visual/
357
+ minimal-saas.css
358
+ ...
326
359
  styles/
327
360
  theme-colors.css
328
361
  native-elements.css
362
+ components.css
363
+ compat-layout.css
329
364
  content-overflow.css
330
365
  minimal-saas.css
331
366
  bento.css
@@ -338,6 +373,7 @@ ui-style-kit-css/
338
373
  cyberpunk.css
339
374
  y2k.css
340
375
  retro-glass.css
376
+ interactive-surface-theme.css
341
377
  interactive-surface-bridge.css
342
378
  docs/
343
379
  TOKENS.md
@@ -351,10 +387,21 @@ The checked-in demo, favicon pack, and social preview image stay in the reposito
351
387
 
352
388
  ```bash
353
389
  npm run check
390
+ npm run test:e2e
391
+ npm run test:axe
392
+ npm run test:visual
393
+ npm run test:matrix
354
394
  npm run pack:dry-run
355
395
  ```
356
396
 
357
- `npm run check` rebuilds the bundles, runs stylelint, verifies package metadata, checks the documented class API, and validates contrast for base text/link pairs and filled component `on-*` pairs. Optional Playwright visual smoke tests are available through `npm run test:visual` after installing dev dependencies.
397
+ `npm run check` rebuilds the bundles, runs stylelint, verifies package metadata, checks the documented class API, and validates contrast for base text/link pairs and filled component `on-*` pairs. Browser release gates add all-engine Playwright coverage, representative Axe scans, curated visual smoke checks, and the sharded `11 presets x 10 themes x 3 modes x 3 engines` matrix.
398
+
399
+ ## v2.1.0 Architecture Notes
400
+
401
+ - Prefer `visual.css` or `visual/<preset>.css` when Layout Style CSS or application CSS owns structure.
402
+ - Existing root, minified, focused preset, `interactive-surface-bridge`, and `with-bridge` entrypoints preserve their v2 behavior.
403
+ - Treat `page`, `container`, `section`, `grid`, `stack`, `cluster`, and `split` suffixes as deprecated compatibility helpers; their removal is reserved for v3.
404
+ - Prefer `interactive-surface-theme.css` with `interactive-surface-css/state-core.css`. The old stateful bridge exports remain deprecated compatibility paths.
358
405
 
359
406
  ## v2.0.1 Migration Notes
360
407
 
@@ -363,7 +410,7 @@ The `v2.0.1` release line removes duplicated per-UI color-scheme blocks. Color s
363
410
  - Use `--usk-*-rgb` when defining or overriding a color scheme.
364
411
  - Continue using prefixed functional tokens such as `--saas-primary`, `--neo-card-bg`, and `--rg-on-primary` inside components.
365
412
  - Import `ui-style-kit-css/theme-colors.css`, `ui-style-kit-css/native-elements.css`, and `ui-style-kit-css/content-overflow.css` before standalone style files if your bundler does not follow CSS `@import`.
366
- - Keep using `ui-style-kit-css/interactive-surface-bridge` or `ui-style-kit-css/with-bridge.css` for the opt-in bridge. The bridge now inherits shared `--usk-*` roles and exposes three `data-surface-level` visual states while the default bundle remains bridge-free.
413
+ - Existing v2.0.1 integrations can keep using `ui-style-kit-css/interactive-surface-bridge` or `ui-style-kit-css/with-bridge.css`; those stateful compatibility paths are deprecated in v2.1.0. New integrations should compose the visual, theme-bridge, and state-core entrypoints documented above.
367
414
 
368
415
  ## License
369
416