ui-style-kit-css 2.1.0 → 2.3.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 +54 -0
- package/README.md +169 -54
- package/STYLE-MAP.md +55 -0
- package/dist/ui-style-kit.css +23744 -7015
- package/dist/ui-style-kit.min.css +2 -2
- package/dist/ui-style-kit.visual.css +22948 -6669
- package/dist/ui-style-kit.visual.min.css +2 -2
- package/dist/ui-style-kit.with-bridge.css +23941 -7205
- package/dist/ui-style-kit.with-bridge.min.css +2 -2
- package/dist/visual/art-deco.css +4776 -0
- package/dist/visual/bauhaus.css +1894 -147
- package/dist/visual/bento.css +1910 -166
- package/dist/visual/brutalism.css +1853 -98
- package/dist/visual/clay.css +4789 -0
- package/dist/visual/cyberpunk.css +1840 -94
- package/dist/visual/data-terminal.css +4804 -0
- package/dist/visual/editorial-luxe.css +4804 -0
- package/dist/visual/industrial-utility.css +4797 -0
- package/dist/visual/maximalist.css +1862 -112
- package/dist/visual/minimal-saas.css +1886 -147
- package/dist/visual/neo-noir.css +4790 -0
- package/dist/visual/neumorphism.css +1896 -151
- package/dist/visual/organic-modern.css +4767 -0
- package/dist/visual/paper-editorial.css +4799 -0
- package/dist/visual/retro-glass.css +1859 -93
- package/dist/visual/retrofuturism.css +1852 -113
- package/dist/visual/tactile.css +1851 -111
- package/dist/visual/technical-blueprint.css +4791 -0
- package/dist/visual/y2k.css +1840 -92
- package/docs/BRIDGE-MIGRATION.md +20 -0
- package/docs/ECOSYSTEM.md +39 -4
- package/docs/PUBLISHING.md +38 -13
- package/docs/STYLE-GUIDE.md +53 -13
- package/docs/TOKENS.md +50 -1
- package/docs/superpowers/plans/2026-08-29-preset-identity-system-refinement.md +649 -0
- package/docs/superpowers/specs/2026-08-29-preset-identity-system-refinement-design.md +212 -0
- package/manifest.json +482 -2
- package/package.json +77 -7
- package/styles/art-deco.css +683 -0
- package/styles/bauhaus.css +237 -3
- package/styles/bento.css +266 -7
- package/styles/brutalism.css +235 -3
- package/styles/clay.css +692 -0
- package/styles/components.css +608 -14
- package/styles/content-overflow.css +423 -4
- package/styles/cyberpunk.css +234 -3
- package/styles/data-terminal.css +691 -0
- package/styles/editorial-luxe.css +687 -0
- package/styles/industrial-utility.css +690 -0
- package/styles/interactive-surface-bridge.css +17 -10
- package/styles/interactive-surface-theme.css +17 -8
- package/styles/maximalist.css +238 -4
- package/styles/minimal-saas.css +234 -3
- package/styles/native-elements.css +80 -12
- package/styles/neo-noir.css +690 -0
- package/styles/neumorphism.css +234 -3
- package/styles/organic-modern.css +683 -0
- package/styles/paper-editorial.css +688 -0
- package/styles/retro-glass.css +242 -3
- package/styles/retrofuturism.css +233 -3
- package/styles/tactile.css +235 -3
- package/styles/technical-blueprint.css +686 -0
- package/styles/theme-colors.css +796 -5
- package/styles/y2k.css +237 -3
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Deprecated Interactive Surface Bridge Migration
|
|
2
|
+
|
|
3
|
+
The canonical integration for new applications is `ui-style-kit-css/visual.css`, `ui-style-kit-css/interactive-surface-theme.css`, `interactive-surface-css/state-core.css`, and `layout-style-css` in that order.
|
|
4
|
+
|
|
5
|
+
`interactive-surface-bridge` and `with-bridge` remain public v2 compatibility exports. They are deprecated because they include stateful bridge behavior that is no longer part of the canonical token-and-paint boundary. They are retained unchanged in v2 and will not be redirected to the token-only bridge.
|
|
6
|
+
|
|
7
|
+
The shared semantic path is separate from migration: a third-party token producer may load before `interactive-surface-css/standalone-preset.css`, but it does not reproduce UI Style Kit's specialized variant and level mappings. Existing bridge consumers should follow the canonical imports above when migrating.
|
|
8
|
+
|
|
9
|
+
## Retained deprecated imports
|
|
10
|
+
|
|
11
|
+
Existing integrations may continue to use either exported stateful path while scheduling their migration:
|
|
12
|
+
|
|
13
|
+
```js
|
|
14
|
+
import "ui-style-kit-css/interactive-surface-bridge";
|
|
15
|
+
import "ui-style-kit-css/interactive-surface-bridge.css";
|
|
16
|
+
import "ui-style-kit-css/with-bridge";
|
|
17
|
+
import "ui-style-kit-css/with-bridge.css";
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Do not combine a deprecated bridge import with `interactive-surface-theme.css`; select the legacy stateful path during migration or the canonical token-only path for new integration work.
|
package/docs/ECOSYSTEM.md
CHANGED
|
@@ -2,15 +2,46 @@
|
|
|
2
2
|
|
|
3
3
|
UI Style Kit CSS is the visual layer in the three-library CSS ecosystem. It can run alone, but it also has stable integration points for Interactive Surface CSS and Layout Style CSS.
|
|
4
4
|
|
|
5
|
+
`ecosystem-compatibility.json` is the authoritative source for supported ranges, validated combinations, canonical imports, and deprecated bridge metadata. UI Style Kit owns this file temporarily until a dedicated ecosystem fixture repository is introduced.
|
|
6
|
+
|
|
7
|
+
Its companion source records pin the exact published merge revisions used by integration and release verification. Update those immutable pins whenever a later companion release changes the validated contract.
|
|
8
|
+
|
|
9
|
+
## Remote Validation Sequence
|
|
10
|
+
|
|
11
|
+
The pinned Interactive Surface and Layout commits are published merge objects. Before a UI branch or pull request is expected to validate, verify each pinned SHA remains fetchable from its GitHub repository. The CI and publish workflows perform the same remote-object preflight, so they intentionally fail rather than silently substituting a mutable branch or stale registry artifact when either companion revision is unavailable.
|
|
12
|
+
|
|
5
13
|
## Aligned Versions
|
|
6
14
|
|
|
7
15
|
| Library | Current aligned version | Owns |
|
|
8
16
|
|---|---:|---|
|
|
9
|
-
| `ui-style-kit-css@2.
|
|
10
|
-
| `interactive-surface-css@1.
|
|
11
|
-
| `layout-style-css@
|
|
17
|
+
| `ui-style-kit-css@2.3.0` | current release target | visual identity, color themes, UI paint, native HTML styling, content wrapping, and bridge tokens |
|
|
18
|
+
| `interactive-surface-css@1.6.0` | compatible state release | interaction-state primitives, surface behavior, state layers, and input affordances |
|
|
19
|
+
| `layout-style-css@3.1.0` | compatible structural release | structural wrappers, grids, sections, app shells, and layout recipes |
|
|
20
|
+
|
|
21
|
+
The current combination is `ui-style-kit-css@2.3.0`, `interactive-surface-css@1.6.0`, and `layout-style-css@3.1.0`. UI Style Kit `2.3.0` is the current release target; the companion versions are published releases. Layout Style `3.1.0` is the compatible structural release. The validated minimum remains `ui-style-kit-css@2.1.0`, `interactive-surface-css@1.5.0`, and `layout-style-css@3.0.0`.
|
|
22
|
+
|
|
23
|
+
## Layout-to-visual pairing matrix
|
|
24
|
+
|
|
25
|
+
Pairings are recommendations, never dependencies. `data-ly-layout`, `data-ui`, `data-theme`, and `data-mode` remain independently selectable; `layout-style-css/personalities.json` publishes the machine-readable source.
|
|
26
|
+
|
|
27
|
+
| Layout personality | Visual guidance |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| Minimal SaaS, Bento, Maximalist, Bauhaus, Tactile, Neumorphism, Retrofuturism, Brutalism, Cyberpunk, Y2K, Retro Glass | Native UI Style Kit match with the same identifier |
|
|
30
|
+
| F-pattern, Z-pattern, Split Screen, Mondrian | Any UI Style Kit visual preset; these are structure-only layouts |
|
|
31
|
+
| Synthwave | Recommend `cyberpunk` or `retrofuturism`; Layout's rendered demo verifies each preset while keeping the synthwave layout selected |
|
|
12
32
|
|
|
13
|
-
|
|
33
|
+
## Shared semantic theming
|
|
34
|
+
|
|
35
|
+
UI Style Kit's complete, visual, and focused visual entrypoints produce the 12 package-neutral `--ui-*` control tokens under `[data-ui][data-theme][data-mode]`. A third-party theme may produce the same contract under its own scope; consumers do not need UI Style Kit-specific `--usk-*` values. Package-specific values remain first in consumer fallback chains, shared semantic values come second, and legacy values or literals remain last.
|
|
36
|
+
|
|
37
|
+
A third-party producer can theme Interactive Surface's complete standalone entry point without a package-specific adapter:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
import "third-party-theme/tokens.css";
|
|
41
|
+
import "interactive-surface-css/standalone-preset.css";
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
UI Style Kit can use the same portable path by loading `ui-style-kit-css/visual.css` before `interactive-surface-css/standalone-preset.css`. That composition provides the semantic control baseline. Use the canonical `interactive-surface-theme.css` plus `state-core.css` path when an application needs UI Style Kit's specialized variant, level, icon-role, and state-opacity mappings.
|
|
14
45
|
|
|
15
46
|
## Adoption Paths
|
|
16
47
|
|
|
@@ -57,3 +88,7 @@ import "layout-style-css";
|
|
|
57
88
|
- Layout Style CSS owns structural wrappers, layout recipes, grids, app shells, and section composition.
|
|
58
89
|
|
|
59
90
|
The canonical theme bridge does not make Interactive Surface a dependency of UI Style Kit. It only maps shared `--usk-*` roles to `--interactive-surface-*` tokens and provides paint; `state-core.css` continues to own interaction mechanics. The older `interactive-surface-bridge` and `with-bridge` exports are deprecated compatibility paths whose stateful behavior remains unchanged.
|
|
91
|
+
|
|
92
|
+
## Canonical ownership order
|
|
93
|
+
|
|
94
|
+
Load UI visual CSS first, UI interaction-theme paint second, Interactive Surface state core third, Layout CSS fourth, and application overrides last. Layout `3.1.0` no longer exports `integrations/ui-style-kit.css` or `legacy.css`; use its root or supported `foundation.css`, wrapper, primitive, recipe, utility, and personality entrypoints.
|
package/docs/PUBLISHING.md
CHANGED
|
@@ -1,38 +1,63 @@
|
|
|
1
1
|
# Publishing Guide
|
|
2
2
|
|
|
3
|
+
## 2.3.0 release workflow
|
|
4
|
+
|
|
5
|
+
Prepare `ui-style-kit-css@2.3.0` on its release branch, open a pull request against `main`, and merge only after the complete gate is green. The aligned companion set is `layout-style-css@3.1.0` and `interactive-surface-css@1.6.0`.
|
|
6
|
+
|
|
7
|
+
Do not push `v2.3.0` before the reviewed release commit is on `main`. A pushed version tag runs Release Version Alignment, which validates the tag/package/changelog contract and creates the GitHub Release; publishing that release triggers the protected npm workflow.
|
|
8
|
+
|
|
3
9
|
## Dry run
|
|
4
10
|
|
|
5
11
|
```bash
|
|
6
12
|
npm run release:verify
|
|
7
13
|
```
|
|
8
14
|
|
|
9
|
-
`npm run release:verify` is the non-publishing release gate. It runs `npm run check`, `npm run test:e2e`, `npm run test:axe`, `npm run test:visual`, `npm run test:matrix`,
|
|
15
|
+
`npm run release:verify` is the non-publishing release gate. It runs `npm run check`, `npm run test:e2e`, `npm run test:axe`, `npm run test:visual`, `npm run test:matrix`, the explicit UI-candidate release preflight, `npm audit --audit-level=moderate`, and `npm run pack:dry-run`.
|
|
16
|
+
|
|
17
|
+
`npm run release:preflight` validates the shared manifests and compatibility contract, queries npm for every exact minimum/current version, resolves every export from the candidate tarball, checks maintained documentation against installed packages, and reuses the current/minimum clean-install browser matrix. Normal UI preflight remains strict and queries `ui-style-kit-css@2.3.0` alongside every other documented exact version. The release workflows pass `--candidate-package ui-style-kit-css`, which excludes only that exact current version while it is absent from npm and still requires every published minimum and companion version. The gate performs no publish, tag, release, or deployment mutation and is therefore safe to execute on pull requests.
|
|
18
|
+
|
|
19
|
+
`npm run check` rebuilds dist CSS, runs stylelint, executes package and API contracts, validates all theme/mode contrast pairs, enforces the Browserslist compatibility contract through `check:compat`, verifies CSS ownership, and confirms package metadata. Browser gates cover regular demo flows, representative Axe scans, curated visual checks, and the sharded 3,600-combination matrix. `npm run check:ecosystem:packs` verifies standalone, pairwise, and all-three packed package compatibility for canonical visual/theme/state/layout imports and deprecated bridge imports in both supported matrices. `npm run pack:dry-run` shows the exact files that would publish.
|
|
20
|
+
|
|
21
|
+
`npm run check:ecosystem:current` packs this repository and the sibling `../Layout-Style-CSS` and `../Interactive-Surface-CSS` checkouts. It extracts imports from the explicitly maintained current documentation in all three repositories and resolves every documented specifier from the installed tarballs. Deprecated UI bridge guides are validated as a separate supported-compatibility class; changelogs and Layout migration guides are reviewed historical material rather than current setup. Use `-- --ui-spec <specifier>`, `-- --layout-repo <path>`, `-- --layout-spec <specifier>`, `-- --interactive-spec <specifier>`, `-- --interactive-repo <path>`, `-- --layout-docs-repo <path>`, or `-- --interactive-docs-repo <path>` when validating different package or documentation sources.
|
|
22
|
+
|
|
23
|
+
`npm run check:ecosystem:minimum` downloads and repacks the declared minimum published runtime versions: `ui-style-kit-css@2.1.0`, `interactive-surface-css@1.5.0`, and `layout-style-css@3.0.0`. Those tarballs predate the additive shared-manifest policy introduced on the coordinated branches, so the minimum matrix validates their exact installed versions and published CSS entry points; current packed heads retain the stricter manifest-schema and current-documentation checks. `npm run check:ecosystem:packs` runs current first and minimum second.
|
|
10
24
|
|
|
11
|
-
|
|
25
|
+
The current matrix checks `ui-style-kit-css@2.3.0` as the active candidate only while its exact npm version is absent, `interactive-surface-css@1.6.0` as a published release, and `layout-style-css@3.1.0` as a published release. The minimum published matrix remains `ui-style-kit-css@2.1.0`, `interactive-surface-css@1.5.0`, and `layout-style-css@3.0.0`.
|
|
12
26
|
|
|
13
|
-
|
|
27
|
+
Both matrices install fresh tarball consumers for UI only, Interaction only, Layout only, every pair, and all three. Chromium then checks selected theme paint, native and prefixed components, interaction focus/disabled/loading/selected/persistent states, Layout wrappers/primitives/recipes/personalities, console cleanliness, and an empty external-request log. Three text-free baselines under `tests/snapshots/clean-install/` cover the highest-risk integrated combinations.
|
|
14
28
|
|
|
15
|
-
`
|
|
29
|
+
Snapshot verification decodes PNG pixels, requires exact dimensions, ignores pixelmatch-classified antialias noise, uses a `0.1` color threshold, and permits at most `0.25%` differing pixels. The committed fixtures render at 720-721 by 261 pixels and therefore allow 469-470 changed pixels while rejecting the tested 42% meaningful change. A mismatch retains both `SCENARIO-actual.png` and `SCENARIO-diff.png` in the reported safe temporary directory. CI only validates committed baselines and never passes the generation flag. To intentionally refresh them locally, run the current checker with `--update-snapshots`, inspect all three images, and rerun without that flag.
|
|
30
|
+
|
|
31
|
+
The PR integration and npm-publish workflows read the companion repository and immutable revision pins from `ecosystem-compatibility.json`, then pack those coordinated reviewed artifacts. Advance those pins whenever a later release changes a companion contract. The current values pin the published Interactive Surface CSS merge at `b50a60d8ffd804d8227b1a16903c394556b88511` and the published Layout Style CSS merge at `afcb1fdf70d4635e35739e621ee1598400fed103`.
|
|
32
|
+
|
|
33
|
+
Use this exact bootstrap and merge sequence:
|
|
34
|
+
|
|
35
|
+
1. Verify the published Interactive Surface CSS and Layout Style CSS merge commits remain remotely reachable.
|
|
36
|
+
2. Update and review the final UI companion pins against those immutable merge commits.
|
|
37
|
+
3. Push the final UI branch, rerun its explicit UI-candidate ecosystem preflight, and merge UI with a merge commit.
|
|
38
|
+
4. Do not squash or rebase away reviewed release commits that remain part of the pinned verification history.
|
|
39
|
+
|
|
40
|
+
The workflows enforce immutable remote-object reachability and do not fall back to mutable branches or registry packages. The stable bootstrap ref lets companion workflows load the reviewed preflight implementation before the final UI commit references their heads.
|
|
41
|
+
|
|
42
|
+
`npm run build` synchronizes manifest-driven component and overflow inventories and uses exactly pinned CSS Tree parsing and Lightning CSS formatting/minification. Every transform resolves the package Browserslist policy through `browserslistToTargets`. Generated minified bundles retain the release banner while preserving grammar-sensitive selector and `calc()` whitespace.
|
|
16
43
|
|
|
17
44
|
The npm artifact is library-focused: `dist/`, `styles/`, docs, and metadata. Demo pages, favicon source assets, and social preview images remain checked in for GitHub Pages but are excluded from the tarball to keep package installs small.
|
|
18
45
|
|
|
19
46
|
## Publish
|
|
20
47
|
|
|
21
|
-
No package, tag, or registry release occurs without explicit approval.
|
|
48
|
+
No package, tag, or registry release occurs without explicit approval. Release tags must use the `v<package-version>` form and point to the reviewed commit on `main`.
|
|
22
49
|
|
|
23
|
-
|
|
50
|
+
Run the coordinated checked-out ecosystem proof from this repository:
|
|
24
51
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
4. Release `layout-style-css@2.1.0` after UI Style Kit 2.1 is live and Layout replaces its temporary GitHub UI fixture with the registry package.
|
|
29
|
-
5. Run the final all-three packed compatibility suite against the published packages.
|
|
52
|
+
```bash
|
|
53
|
+
npm run check:ecosystem:packs -- --layout-repo ../Layout-Style-CSS --interactive-repo ../Interactive-Surface-CSS --layout-docs-repo ../Layout-Style-CSS --interactive-docs-repo ../Interactive-Surface-CSS
|
|
54
|
+
```
|
|
30
55
|
|
|
31
56
|
```bash
|
|
32
57
|
npm publish
|
|
33
58
|
```
|
|
34
59
|
|
|
35
|
-
`prepublishOnly` runs `npm run release:verify`, so a direct `npm publish` still has the full release gate. For GitHub releases,
|
|
60
|
+
`prepublishOnly` runs `npm run release:verify`, so a direct `npm publish` still has the full release gate. For GitHub releases, push or dispatch the matching package tag, such as `v2.3.0`, only after the release PR is merged. The release workflows verify that `package.json`, `package-lock.json`, `CHANGELOG.md`, generated dist banners, and ecosystem pins are aligned before publishing.
|
|
36
61
|
|
|
37
62
|
## Versioning
|
|
38
63
|
|
|
@@ -42,4 +67,4 @@ npm run release:minor
|
|
|
42
67
|
npm run release:major
|
|
43
68
|
```
|
|
44
69
|
|
|
45
|
-
Use patch for fixes, minor for new themes
|
|
70
|
+
Use patch for compatible fixes, minor for new themes, presets, component capabilities, or browser-support contracts, and major for incompatible public API changes. The nine additional presets, ten additional schemes, universal component vocabulary, and compatibility contract make `2.3.0` a minor release.
|
package/docs/STYLE-GUIDE.md
CHANGED
|
@@ -2,22 +2,62 @@
|
|
|
2
2
|
|
|
3
3
|
| UI style | Best for |
|
|
4
4
|
|---|---|
|
|
5
|
-
| Minimal SaaS | Dashboards, admin tools, SaaS apps
|
|
6
|
-
| Bento UI | Landing pages,
|
|
7
|
-
| Maximalist / Playful | Creators, entertainment
|
|
8
|
-
| Bauhaus / Swiss Modern | Agencies,
|
|
9
|
-
|
|
|
10
|
-
| Neumorphism | Soft dashboards, experimental UI
|
|
11
|
-
| Retrofuturism | Futuristic product pages
|
|
12
|
-
| Brutalism | Bold
|
|
13
|
-
| Cyberpunk | Security, gaming, encryption,
|
|
14
|
-
| Y2K | Nostalgic, playful, music/
|
|
15
|
-
| Retro Glass | Futuristic
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
| Minimal SaaS | Dashboards, admin tools, SaaS apps |
|
|
6
|
+
| Bento UI | Landing pages, feature sections, showcases |
|
|
7
|
+
| Maximalist / Playful | Creators, entertainment, bold client sites |
|
|
8
|
+
| Bauhaus / Swiss Modern | Agencies, editorial layouts, design-forward brands |
|
|
9
|
+
| Skeuomorphic / Tactile | Premium tactile interfaces, control panels |
|
|
10
|
+
| Neumorphism | Soft dashboards, experimental UI |
|
|
11
|
+
| Retrofuturism | Futuristic portfolios and product pages |
|
|
12
|
+
| Brutalism | Bold creative websites |
|
|
13
|
+
| Cyberpunk | Security, gaming, encryption, tech demos |
|
|
14
|
+
| Y2K | Nostalgic, playful, fashion/music/event sites |
|
|
15
|
+
| Retro Glass | Futuristic glass dashboards and hero sections |
|
|
16
|
+
| Editorial Luxe | Luxury brands, architecture, hospitality, premium editorial sites |
|
|
17
|
+
| Organic Modern | Wellness, sustainability, hospitality, natural product brands |
|
|
18
|
+
| Industrial Utility | Operations software, manufacturing, logistics, fleet and equipment systems |
|
|
19
|
+
| Technical Blueprint | Engineering, architecture, technical documentation, scientific tools |
|
|
20
|
+
| Art Deco | Luxury, hospitality, heritage brands, events and distinctive showcases |
|
|
21
|
+
| Clay | Friendly SaaS, collaborative tools, education and approachable product sites |
|
|
22
|
+
| Data Terminal | Operator consoles, telemetry, infrastructure, monitoring and developer tools |
|
|
23
|
+
| Paper Editorial | News, magazines, journals, cultural sites and story-led publishing |
|
|
24
|
+
| Neo-Noir | Cinematic portfolios, nightlife, premium creative studios and dramatic product sites |
|
|
25
|
+
|
|
26
|
+
All styles share the same 20 color schemes through `styles/theme-colors.css`, so changing `data-theme` affects the active color scheme independently from the selected UI treatment.
|
|
18
27
|
|
|
19
28
|
Use `data-mode="contrast"` for high-contrast variants and pair it with semantic HTML for best accessibility outcomes.
|
|
20
29
|
|
|
30
|
+
## Preset identity and component roles
|
|
31
|
+
|
|
32
|
+
UI presets own geometry, material, spacing, depth, and typographic character. Color schemes own semantic color roles. A preset should therefore remain recognizable when its `data-theme` changes, while every component continues to consume the active theme tokens instead of fixed artwork colors.
|
|
33
|
+
|
|
34
|
+
| UI style | Repeated component identity |
|
|
35
|
+
|---|---|
|
|
36
|
+
| Minimal SaaS | Restrained single-corner folds and low-elevation outlines |
|
|
37
|
+
| Bento UI | Stepped tile edges and compact block composition |
|
|
38
|
+
| Maximalist / Playful | Skewed silhouettes, layered fills and pronounced shadows |
|
|
39
|
+
| Bauhaus / Swiss Modern | Asymmetric primary geometry and hard-edged composition |
|
|
40
|
+
| Skeuomorphic / Tactile | Chamfered physical keys, bevels and pressed depth |
|
|
41
|
+
| Neumorphism | Softly clipped surfaces with raised and inset shadows |
|
|
42
|
+
| Retrofuturism | Elongated console geometry and metallic rims |
|
|
43
|
+
| Brutalism | Blunt cuts, thick borders and offset shadows |
|
|
44
|
+
| Cyberpunk | Multi-notch technical polygons and luminous edges |
|
|
45
|
+
| Y2K | Glossy capsule geometry and playful depth |
|
|
46
|
+
| Retro Glass | Frosted angular tabs with inner highlights |
|
|
47
|
+
| Editorial Luxe | Slim bookplates, hairlines and restrained framing |
|
|
48
|
+
| Organic Modern | Asymmetric pebble and leaf contours with soft depth |
|
|
49
|
+
| Industrial Utility | Octagonal hazard-control geometry and dense framing |
|
|
50
|
+
| Technical Blueprint | Drafting-corner outlines and technical markings |
|
|
51
|
+
| Art Deco | Symmetric chevrons and double-rule framing |
|
|
52
|
+
| Clay | Inflated clipped pills and chunky soft shadows |
|
|
53
|
+
| Data Terminal | Terminal brackets and luminous operator outlines |
|
|
54
|
+
| Paper Editorial | Ticket or tab notches with inked offset edges |
|
|
55
|
+
| Neo-Noir | Cinematic slants and high-contrast edge lighting |
|
|
56
|
+
|
|
57
|
+
For filled service actions, compose `<prefix>-button`, `<prefix>-button-primary`, and `<prefix>-button-cut`. For framed callout actions, compose `<prefix>-button` and `<prefix>-button-outline-heavy`. These modifiers are independent; the library does not expose a `button-cta` class. Carry the same preset identity into service cards, media scrims, feature strips, callout bars, native actions, and dialogs rather than treating each specimen as isolated artwork.
|
|
58
|
+
|
|
59
|
+
Preset-specific grids must size from their own container. Bento feature tiles, for example, use intrinsic columns and only introduce a feature span when their container can support it, preventing metric labels from collapsing into vertical text.
|
|
60
|
+
|
|
21
61
|
## Visual regression baseline
|
|
22
62
|
|
|
23
63
|
The repository includes optional Playwright visual smoke checks:
|
package/docs/TOKENS.md
CHANGED
|
@@ -8,6 +8,46 @@ shared scheme channels -> prefixed aliases -> UI rules
|
|
|
8
8
|
|
|
9
9
|
`styles/theme-colors.css` defines the active scheme and mode once as `--usk-*` RGB channels. Each UI style maps those shared channels to its public prefix, then component rules consume prefixed functional variables. `styles/native-elements.css` owns native HTML fallback selectors and consumes `--usk-native-*` tokens that each preset maps back to its own public variables.
|
|
10
10
|
|
|
11
|
+
## Shared semantic token handshake
|
|
12
|
+
|
|
13
|
+
The existing `[data-ui][data-theme][data-mode]` native-token root publishes 12 fully typed `--ui-*` values. UI Style Kit is the primary producer, but the names are intentionally package-neutral so a third-party theme can produce the same contract. Consumer libraries treat these values as optional fallbacks: a package-specific override wins first, then the shared semantic value, then the consumer's legacy token and literal default.
|
|
14
|
+
|
|
15
|
+
| Shared token | CSS type | UI Style Kit source |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `--ui-color-bg` | `<color>` | `rgb(var(--usk-bg-rgb))` |
|
|
18
|
+
| `--ui-color-surface` | `<color>` | `var(--usk-native-surface-strong)` |
|
|
19
|
+
| `--ui-color-text` | `<color>` | `var(--usk-native-text)` |
|
|
20
|
+
| `--ui-color-muted` | `<color>` | `var(--usk-native-text-muted)` |
|
|
21
|
+
| `--ui-color-primary` | `<color>` | `var(--usk-native-primary)` |
|
|
22
|
+
| `--ui-color-on-primary` | `<color>` | `var(--usk-native-on-primary)` |
|
|
23
|
+
| `--ui-color-border` | `<color>` | `var(--usk-native-border)` |
|
|
24
|
+
| `--ui-radius-control` | `<length>` | `var(--usk-native-radius)` |
|
|
25
|
+
| `--ui-shadow-control` | `<shadow-list>` | `var(--usk-native-shadow)` |
|
|
26
|
+
| `--ui-focus-color` | `<color>` | `var(--usk-native-focus)` |
|
|
27
|
+
| `--ui-motion-duration` | `<time>` | `var(--usk-motion-duration)` |
|
|
28
|
+
| `--ui-motion-easing` | `<easing-function>` | `var(--usk-motion-easing)` |
|
|
29
|
+
|
|
30
|
+
The two motion sources are scalar values (`140ms` and `cubic-bezier(0.2, 0, 0.2, 1)`), not values derived from a transition shorthand. That keeps them valid wherever a consumer needs one duration or one easing function.
|
|
31
|
+
|
|
32
|
+
A third-party theme can provide the same handshake without importing UI Style Kit:
|
|
33
|
+
|
|
34
|
+
```css
|
|
35
|
+
[data-theme="partner"] {
|
|
36
|
+
--ui-color-surface: rgb(250 252 255);
|
|
37
|
+
--ui-color-text: rgb(18 28 45);
|
|
38
|
+
--ui-color-primary: rgb(20 92 180);
|
|
39
|
+
--ui-color-on-primary: white;
|
|
40
|
+
--ui-color-border: rgb(150 165 185);
|
|
41
|
+
--ui-radius-control: 0.75rem;
|
|
42
|
+
--ui-shadow-control: 0 8px 24px rgb(20 40 70 / 0.16);
|
|
43
|
+
--ui-focus-color: rgb(20 92 180);
|
|
44
|
+
--ui-motion-duration: 140ms;
|
|
45
|
+
--ui-motion-easing: cubic-bezier(0.2, 0, 0.2, 1);
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
UI Style Kit entrypoints publish all 12 values. Standalone consumer packages must remain complete when none of them are present.
|
|
50
|
+
|
|
11
51
|
## Prefixes
|
|
12
52
|
|
|
13
53
|
| UI style | Prefix |
|
|
@@ -23,6 +63,15 @@ shared scheme channels -> prefixed aliases -> UI rules
|
|
|
23
63
|
| Cyberpunk | `cyber` |
|
|
24
64
|
| Y2K | `y2k` |
|
|
25
65
|
| Retro Glass | `rg` |
|
|
66
|
+
| Editorial Luxe | `luxe` |
|
|
67
|
+
| Organic Modern | `organic` |
|
|
68
|
+
| Industrial Utility | `utility` |
|
|
69
|
+
| Technical Blueprint | `blueprint` |
|
|
70
|
+
| Art Deco | `deco` |
|
|
71
|
+
| Clay | `clay` |
|
|
72
|
+
| Data Terminal | `terminal` |
|
|
73
|
+
| Paper Editorial | `paper` |
|
|
74
|
+
| Neo-Noir | `noir` |
|
|
26
75
|
|
|
27
76
|
## Stable functional tokens
|
|
28
77
|
|
|
@@ -203,7 +252,7 @@ Loading indicators use theme variables by default:
|
|
|
203
252
|
--<prefix>-spinner-accent
|
|
204
253
|
```
|
|
205
254
|
|
|
206
|
-
The class utilities are `<prefix>-spinner`, `<prefix>-loading-spinner`, `<prefix>-spinner-sm`, and `<prefix>-spinner-lg`. Native buttons and prefixed buttons
|
|
255
|
+
The class utilities are `<prefix>-spinner`, `<prefix>-loading-spinner`, `<prefix>-spinner-sm`, and `<prefix>-spinner-lg`. Each preset owns its loader silhouette, cadence, and depth while consuming only these active theme roles. Native buttons and prefixed buttons render the matching preset-owned indicator when `aria-busy="true"` is present.
|
|
207
256
|
|
|
208
257
|
## Interactive Surface bridge tokens
|
|
209
258
|
|