ui-style-kit-css 2.2.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.
Files changed (63) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +100 -31
  3. package/STYLE-MAP.md +19 -0
  4. package/dist/ui-style-kit.css +18417 -1704
  5. package/dist/ui-style-kit.min.css +2 -2
  6. package/dist/ui-style-kit.visual.css +17709 -1446
  7. package/dist/ui-style-kit.visual.min.css +2 -2
  8. package/dist/ui-style-kit.with-bridge.css +18425 -1706
  9. package/dist/ui-style-kit.with-bridge.min.css +2 -2
  10. package/dist/visual/art-deco.css +4776 -0
  11. package/dist/visual/bauhaus.css +1809 -78
  12. package/dist/visual/bento.css +1825 -97
  13. package/dist/visual/brutalism.css +1774 -35
  14. package/dist/visual/clay.css +4789 -0
  15. package/dist/visual/cyberpunk.css +1765 -35
  16. package/dist/visual/data-terminal.css +4804 -0
  17. package/dist/visual/editorial-luxe.css +4804 -0
  18. package/dist/visual/industrial-utility.css +4797 -0
  19. package/dist/visual/maximalist.css +1771 -37
  20. package/dist/visual/minimal-saas.css +1801 -78
  21. package/dist/visual/neo-noir.css +4790 -0
  22. package/dist/visual/neumorphism.css +1807 -78
  23. package/dist/visual/organic-modern.css +4767 -0
  24. package/dist/visual/paper-editorial.css +4799 -0
  25. package/dist/visual/retro-glass.css +1786 -36
  26. package/dist/visual/retrofuturism.css +1759 -36
  27. package/dist/visual/tactile.css +1760 -36
  28. package/dist/visual/technical-blueprint.css +4791 -0
  29. package/dist/visual/y2k.css +1767 -35
  30. package/docs/ECOSYSTEM.md +8 -4
  31. package/docs/PUBLISHING.md +14 -10
  32. package/docs/STYLE-GUIDE.md +53 -13
  33. package/docs/TOKENS.md +10 -1
  34. package/docs/superpowers/plans/2026-08-29-preset-identity-system-refinement.md +649 -0
  35. package/docs/superpowers/specs/2026-08-29-preset-identity-system-refinement-design.md +212 -0
  36. package/manifest.json +160 -2
  37. package/package.json +63 -6
  38. package/styles/art-deco.css +683 -0
  39. package/styles/bauhaus.css +237 -3
  40. package/styles/bento.css +266 -7
  41. package/styles/brutalism.css +235 -3
  42. package/styles/clay.css +692 -0
  43. package/styles/components.css +608 -14
  44. package/styles/content-overflow.css +423 -4
  45. package/styles/cyberpunk.css +234 -3
  46. package/styles/data-terminal.css +691 -0
  47. package/styles/editorial-luxe.css +687 -0
  48. package/styles/industrial-utility.css +690 -0
  49. package/styles/interactive-surface-bridge.css +11 -5
  50. package/styles/interactive-surface-theme.css +11 -3
  51. package/styles/maximalist.css +238 -4
  52. package/styles/minimal-saas.css +234 -3
  53. package/styles/native-elements.css +64 -12
  54. package/styles/neo-noir.css +690 -0
  55. package/styles/neumorphism.css +234 -3
  56. package/styles/organic-modern.css +683 -0
  57. package/styles/paper-editorial.css +688 -0
  58. package/styles/retro-glass.css +242 -3
  59. package/styles/retrofuturism.css +233 -3
  60. package/styles/tactile.css +235 -3
  61. package/styles/technical-blueprint.css +686 -0
  62. package/styles/theme-colors.css +796 -5
  63. package/styles/y2k.css +237 -3
@@ -0,0 +1,212 @@
1
+ # Preset Identity System Refinement Design
2
+
3
+ Date: 2026-08-29
4
+ Status: Approved and implemented for the 2.3.0 release candidate
5
+ Target release: `ui-style-kit-css@2.3.0`
6
+
7
+ ## Purpose
8
+
9
+ Refine all 20 UI presets so their public components and native-element fallbacks read as coherent design systems rather than a shared component library with isolated `clip-path` changes. The work corrects the demo regressions shown in the August 29 screenshots while preserving the existing public class API, theme names, modes, token roles, and companion-library compatibility.
10
+
11
+ ## Problem Statement
12
+
13
+ The current 2.3.0 candidate gives many presets a distinct cut-button polygon, spinner, or card decoration, but the identity is not carried consistently across the rest of the component vocabulary.
14
+
15
+ The most visible mechanisms are:
16
+
17
+ - The demo combines `button-outline-heavy` and `button-cut` on every `View Usage` action. This makes the outlined action inherit the same polygon-first treatment as the filled service-card action.
18
+ - Most `button-outline-heavy` rules share the same transparent background, two-pixel primary border, and hover fill. Only a few presets add meaningful material or depth differences.
19
+ - Native buttons and dialogs are driven by one shared geometry recipe. Preset variables alter radius and color, but do not establish a complete preset-specific control or surface identity.
20
+ - Most metrics use one generic card recipe. Bento's six-column tile helper can become too narrow inside the demo container, causing labels to wrap into unreadable columns.
21
+ - Several service-card actions stretch across the card because grid items stretch by default. A different polygon on the same full-width bar does not create a meaningfully different component.
22
+ - The existing tests require a clipped CTA and distinct composite signatures, but do not prove that the same identity vocabulary appears across filled actions, outlined actions, surfaces, metrics, and native fallbacks.
23
+
24
+ ## Goals
25
+
26
+ 1. Give every preset a recognizable and internally consistent component identity.
27
+ 2. Keep filled and outlined CTAs visibly related without making them identical.
28
+ 3. Make CTA width and alignment intentional for each preset family.
29
+ 4. Carry the identity into service cards, media scrims, metrics or tiles, feature strips, callout bars, dialogs, and native buttons.
30
+ 5. Correct Bento metric wrapping and other demo containment problems without changing consumer heading scales.
31
+ 6. Preserve all public classes, modes, themes, focused exports, deprecated structural helpers, bridge exports, and companion ownership order.
32
+ 7. Prevent future drift with a manifest-complete identity registry and focused contracts.
33
+
34
+ ## Non-Goals
35
+
36
+ - No new public class names.
37
+ - No removed or renamed classes, tokens, themes, modes, or exports.
38
+ - No color-theme redesign. Components continue to consume the active theme tokens.
39
+ - No changes to companion-library ownership or bridge activation.
40
+ - No commit, push, tag, GitHub release, or npm publication.
41
+ - No broad demo redesign outside the affected component specimens.
42
+
43
+ ## Design Principles
44
+
45
+ Each preset is defined across four connected axes:
46
+
47
+ 1. **Silhouette:** corner logic, contour, framing, and control proportion.
48
+ 2. **Border rhythm:** weight, doubling, offset, technical marks, or restrained hairlines.
49
+ 3. **Material and depth:** flat, raised, inset, frosted, glossy, printed, metallic, or luminous treatment.
50
+ 4. **Composition:** content alignment, action width, density, and placement.
51
+
52
+ Color remains independent. The active color scheme supplies semantic tokens; the UI preset supplies the geometry and material treatment.
53
+
54
+ ## Architecture
55
+
56
+ ### Manifest-driven identity registry
57
+
58
+ Add a JavaScript identity registry keyed by the 20 `manifest.json` preset IDs. Each entry records:
59
+
60
+ - preset ID and prefix;
61
+ - human-readable identity description;
62
+ - CTA composition family;
63
+ - required component selectors;
64
+ - stable identity markers for silhouette, border, depth, and alignment;
65
+ - expected native-element treatment markers.
66
+
67
+ The registry is an internal build and test source of truth, not a new public API. JavaScript exports and helpers will use JSDoc-compatible comments.
68
+
69
+ The registry will be validated against `manifest.json` in both directions: every manifest preset must have exactly one identity entry, and no identity entry may reference a removed preset. Tests will compute a normalized identity signature from the authored CSS and reject duplicate signatures.
70
+
71
+ Authored CSS remains in `styles/`. The registry will not hide arbitrary CSS declaration strings inside JavaScript. Instead, it describes the required design vocabulary and lets focused contracts validate the explicit rules in each preset stylesheet. Generated `dist/` files continue to come only from the existing build pipeline.
72
+
73
+ ### CTA role separation
74
+
75
+ The commercial demo will use:
76
+
77
+ - `button-primary button-cut` for the filled `Explore` service action;
78
+ - `button-outline-heavy` for the outlined `View Usage` callout action.
79
+
80
+ The outlined action will no longer stack `button-cut`. Each preset's `button-outline-heavy` rule will receive its own related geometry, border, material, and alignment treatment. The filled and outlined actions will share a motif, not an identical silhouette.
81
+
82
+ The public modifiers remain independently composable. Existing consumer markup that intentionally combines them will continue to work.
83
+
84
+ ### CTA composition families
85
+
86
+ CTA size and placement will follow the component identity rather than default grid stretching:
87
+
88
+ - **Precise and compact:** Minimal SaaS, Editorial Luxe, Industrial Utility, Technical Blueprint, Data Terminal, and Paper Editorial use content-sized actions aligned to the reading edge.
89
+ - **Tile and block:** Bento, Bauhaus, and Brutalism use deliberate block treatments with bounded widths, hard alignment, and stronger structural weight.
90
+ - **Soft and sculpted:** Neumorphism, Organic Modern, Clay, and Y2K use compact centered actions with raised, inset, pebble, inflated, or glossy material cues.
91
+ - **Elongated and atmospheric:** Retrofuturism, Cyberpunk, Retro Glass, and Neo Noir use controlled console or cinematic proportions without defaulting to the full card width.
92
+ - **Expressive and physical:** Maximalist and Tactile use offset poster-like or keycap-like actions with deliberate depth.
93
+
94
+ Mobile layouts may stretch actions only when the available width requires it. The action height, label flow, and focus indicator must remain intact.
95
+
96
+ ## Preset Identity Matrix
97
+
98
+ | Preset | Connected component identity |
99
+ | --- | --- |
100
+ | Minimal SaaS | Restrained single-corner fold, fine outline, low elevation, compact left-aligned controls. |
101
+ | Bento | Stepped tile corners, compact block proportions, nested tile borders, bounded block actions. |
102
+ | Maximalist | Skewed poster silhouette, layered fill, offset decoration, pronounced playful shadow. |
103
+ | Bauhaus | Asymmetric primary geometry, hard edges, opposing cuts, high-contrast structural blocks. |
104
+ | Tactile | Shallow chamfered keycap, bevel highlight, pressed depth, physical control spacing. |
105
+ | Neumorphism | Soft clipped surface, raised and inset paired shadows, quiet borders, centered controls. |
106
+ | Retrofuturism | Elongated console geometry, metallic rim, instrument-like framing, compact display labels. |
107
+ | Brutalism | Blunt cut, thick border, hard offset shadow, dense block alignment. |
108
+ | Cyberpunk | Multi-notch technical polygon, neon edge, console framing, luminous action emphasis. |
109
+ | Y2K | Glossy hexagonal capsule, reflective highlight, playful centered composition. |
110
+ | Retro Glass | Frosted angular tab, inner highlight, translucent framing, restrained glass depth. |
111
+ | Editorial Luxe | Slim bookplate, hairline or double framing, serif-led hierarchy, compact reading-edge action. |
112
+ | Organic Modern | Asymmetric pebble or leaf contour, soft layered depth, relaxed centered composition. |
113
+ | Industrial Utility | Octagonal hazard-control geometry, equipment border, compact operational density. |
114
+ | Technical Blueprint | Drafting-corner outline, technical ticks or inset rules, precise left alignment. |
115
+ | Art Deco | Symmetric chevron ends, double-rule framing, centered ornamental composition. |
116
+ | Clay | Inflated clipped pill, chunky soft shadow, compact centered action, sculpted surfaces. |
117
+ | Data Terminal | Terminal-bracket silhouette, luminous outline, monospace density, reading-edge command action. |
118
+ | Paper Editorial | Ticket or tab notch, inked offset edge, print rules, compact editorial action. |
119
+ | Neo Noir | Cinematic slant, high-contrast edge light, atmospheric framing, controlled elongated action. |
120
+
121
+ ## Component Treatment
122
+
123
+ ### Service cards and media scrims
124
+
125
+ Service cards will use the preset's silhouette, border rhythm, and depth treatment. The action will be explicitly sized and aligned. Media scrims will share the card contour and border treatment while retaining the proven high-contrast caption gradient and inherited caption foreground.
126
+
127
+ ### Metrics and Bento tiles
128
+
129
+ Metrics will preserve semantic value and label elements while applying preset-specific alignment and framing. Labels must remain readable without character-by-character wrapping.
130
+
131
+ Bento keeps its large/small tile hierarchy, but the six-column layout will activate only where its container can support it. At smaller container widths it will collapse to a balanced two-column layout, then one column. Tile minimum sizes and text wrapping rules will prevent the narrow cards shown in the screenshot.
132
+
133
+ ### Feature strips and callout bars
134
+
135
+ Feature strips and callout bars will use the same border and surface language as their preset's service card. The callout action remains visually subordinate to the filled service action but must still be a recognizable member of the same preset.
136
+
137
+ ### Native buttons and dialogs
138
+
139
+ Preset-scoped native overrides will extend the shared native foundation rather than replace it. They will adjust safe geometry, border, depth, typography, and alignment for unclassed buttons and dialogs.
140
+
141
+ Aggressive clipping will not be applied to text inputs or to dialog containers when it could cut content or focus indicators. Native controls retain minimum target size, visible focus, contrast roles, disabled behavior, busy-spinner containment, and bridge ownership rules.
142
+
143
+ ## Demo Changes
144
+
145
+ - Remove `button-cut` from the `View Usage` action.
146
+ - Add demo-only test hooks for primary and secondary commercial actions where needed.
147
+ - Preserve the two-column commercial grid at desktop and one-column layout on mobile.
148
+ - Make style-specific metric specimens container-aware.
149
+ - Keep native markup semantic and unclassed so the fallback selectors remain visible.
150
+ - Preserve the active color-scheme token artwork and media-scrim contrast fix.
151
+
152
+ ## Compatibility
153
+
154
+ - Existing class names and combined modifier markup remain valid.
155
+ - Preset styles continue to live in the `ui-style-kit.presets` cascade layer and override shared native foundations through scoped selectors.
156
+ - Interactive Surface remains responsible for state-core behavior when the bridge is attached.
157
+ - Layout Style remains responsible for layout composition outside component-owned internals.
158
+ - Focused preset exports and bridge bundles are regenerated from authored styles.
159
+ - No theme token role changes are expected.
160
+
161
+ ## Verification Strategy
162
+
163
+ ### Focused static and unit contracts
164
+
165
+ 1. Registry coverage exactly matches all 20 manifest presets and prefixes.
166
+ 2. Each preset exposes a complete identity signature across:
167
+ - `button-cut`;
168
+ - `button-outline-heavy`;
169
+ - service card or media surface;
170
+ - metric or preset-specific tile;
171
+ - callout bar;
172
+ - native button and dialog treatment.
173
+ 3. No two presets have the same normalized composite signature.
174
+ 4. The demo does not stack `button-cut` on `View Usage`.
175
+ 5. CTA composition declares an intentional width and alignment strategy.
176
+ 6. Bento contains container-aware large/small tile fallbacks.
177
+ 7. Public API, containment inventory, contrast, package, and generated-bundle contracts remain green.
178
+
179
+ ### Rendered geometry and accessibility
180
+
181
+ When the approved browser surface is available, verify all 20 presets at 1440px, 1024px, and 390px:
182
+
183
+ - filled and outlined actions are visibly related but distinct;
184
+ - action labels do not become vertical or overflow;
185
+ - metrics and Bento tiles do not collapse into narrow columns;
186
+ - dialogs and native buttons remain contained;
187
+ - focus indicators remain visible around clipped or framed controls;
188
+ - light, dark, contrast, reduced-motion, disabled, busy, and keyboard states remain usable;
189
+ - no page-level horizontal overflow is introduced.
190
+
191
+ If browser access remains blocked by the active browser policy, static and build evidence will be reported separately and rendered acceptance will remain explicitly unverified.
192
+
193
+ ### Final release gate
194
+
195
+ After focused checks and distribution regeneration, run the complete release gate only once at the end:
196
+
197
+ 1. `npm.cmd run release:verify`
198
+ 2. `git diff --check`
199
+ 3. package tarball inspection
200
+ 4. version-surface and generated-size synchronization checks
201
+ 5. final working-tree report
202
+
203
+ ## Acceptance Criteria
204
+
205
+ - All 20 presets have intentional, recognizable, and internally consistent component identities.
206
+ - The `Explore` and `View Usage` actions no longer look like the same generic clipped CTA.
207
+ - The five screenshot regressions are addressed at their underlying library or demo mechanism.
208
+ - Bento metrics remain readable at desktop, tablet, and mobile container widths.
209
+ - Native buttons and dialogs visibly inherit preset identity without losing accessibility.
210
+ - No public API is removed or renamed.
211
+ - Focused tests and the final local release gate pass, with rendered-browser limitations reported honestly.
212
+ - The final handoff remains an uncommitted local 2.3.0 release candidate.
package/manifest.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "breakingChange": "increment-schemaVersion-before-removing-or-renaming-fields"
6
6
  },
7
7
  "name": "ui-style-kit-css",
8
- "version": "2.2.0",
8
+ "version": "2.3.0",
9
9
  "cascadeLayers": [
10
10
  "ui-style-kit.theme_colors",
11
11
  "ui-style-kit.native_elements",
@@ -112,6 +112,87 @@
112
112
  "default": "./retro-glass.css",
113
113
  "visual": "./visual/retro-glass.css"
114
114
  }
115
+ },
116
+ {
117
+ "id": "editorial-luxe",
118
+ "label": "Editorial Luxe",
119
+ "prefix": "luxe",
120
+ "entrypoints": {
121
+ "default": "./editorial-luxe.css",
122
+ "visual": "./visual/editorial-luxe.css"
123
+ }
124
+ },
125
+ {
126
+ "id": "organic-modern",
127
+ "label": "Organic Modern",
128
+ "prefix": "organic",
129
+ "entrypoints": {
130
+ "default": "./organic-modern.css",
131
+ "visual": "./visual/organic-modern.css"
132
+ }
133
+ },
134
+ {
135
+ "id": "industrial-utility",
136
+ "label": "Industrial Utility",
137
+ "prefix": "utility",
138
+ "entrypoints": {
139
+ "default": "./industrial-utility.css",
140
+ "visual": "./visual/industrial-utility.css"
141
+ }
142
+ },
143
+ {
144
+ "id": "technical-blueprint",
145
+ "label": "Technical Blueprint",
146
+ "prefix": "blueprint",
147
+ "entrypoints": {
148
+ "default": "./technical-blueprint.css",
149
+ "visual": "./visual/technical-blueprint.css"
150
+ }
151
+ },
152
+ {
153
+ "id": "art-deco",
154
+ "label": "Art Deco",
155
+ "prefix": "deco",
156
+ "entrypoints": {
157
+ "default": "./art-deco.css",
158
+ "visual": "./visual/art-deco.css"
159
+ }
160
+ },
161
+ {
162
+ "id": "clay",
163
+ "label": "Clay",
164
+ "prefix": "clay",
165
+ "entrypoints": {
166
+ "default": "./clay.css",
167
+ "visual": "./visual/clay.css"
168
+ }
169
+ },
170
+ {
171
+ "id": "data-terminal",
172
+ "label": "Data Terminal",
173
+ "prefix": "terminal",
174
+ "entrypoints": {
175
+ "default": "./data-terminal.css",
176
+ "visual": "./visual/data-terminal.css"
177
+ }
178
+ },
179
+ {
180
+ "id": "paper-editorial",
181
+ "label": "Paper Editorial",
182
+ "prefix": "paper",
183
+ "entrypoints": {
184
+ "default": "./paper-editorial.css",
185
+ "visual": "./visual/paper-editorial.css"
186
+ }
187
+ },
188
+ {
189
+ "id": "neo-noir",
190
+ "label": "Neo-Noir",
191
+ "prefix": "noir",
192
+ "entrypoints": {
193
+ "default": "./neo-noir.css",
194
+ "visual": "./visual/neo-noir.css"
195
+ }
115
196
  }
116
197
  ],
117
198
  "themes": [
@@ -124,7 +205,17 @@
124
205
  "desert-sage",
125
206
  "rose-quartz",
126
207
  "cyber-lime",
127
- "arctic-indigo"
208
+ "arctic-indigo",
209
+ "chrome-navy",
210
+ "recycled-emerald",
211
+ "industrial-orange",
212
+ "performance-red",
213
+ "heritage-brass",
214
+ "service-blue-red",
215
+ "newsprint-crimson",
216
+ "foundry-amber",
217
+ "soft-orchid",
218
+ "electric-noir"
128
219
  ],
129
220
  "modes": [
130
221
  "light",
@@ -591,6 +682,7 @@
591
682
  "badge",
592
683
  "badge-danger",
593
684
  "badge-primary",
685
+ "badge-seal",
594
686
  "badge-secondary",
595
687
  "badge-success",
596
688
  "badge-warning",
@@ -598,27 +690,39 @@
598
690
  "bg-secondary",
599
691
  "border",
600
692
  "button",
693
+ "button-cut",
601
694
  "button-danger",
602
695
  "button-ghost",
696
+ "button-outline-heavy",
603
697
  "button-pill",
604
698
  "button-primary",
605
699
  "button-secondary",
700
+ "callout-bar",
606
701
  "card",
702
+ "card-accent-edge",
703
+ "card-feature",
704
+ "card-media",
705
+ "card-service",
607
706
  "check",
608
707
  "check-control",
609
708
  "copy",
610
709
  "disabled",
611
710
  "divider",
711
+ "eyebrow",
712
+ "feature-item",
713
+ "feature-strip",
612
714
  "field",
613
715
  "heading",
614
716
  "help-text",
615
717
  "hover-lift",
616
718
  "icon-button",
719
+ "icon-medallion",
617
720
  "input",
618
721
  "inset",
619
722
  "kicker",
620
723
  "label",
621
724
  "loading-spinner",
725
+ "media-scrim",
622
726
  "nav",
623
727
  "nav-link",
624
728
  "panel",
@@ -709,6 +813,60 @@
709
813
  ],
710
814
  "retro-glass": [
711
815
  "console"
816
+ ],
817
+ "editorial-luxe": [
818
+ "empty-state",
819
+ "metric",
820
+ "metric-label",
821
+ "metric-value"
822
+ ],
823
+ "organic-modern": [
824
+ "empty-state",
825
+ "metric",
826
+ "metric-label",
827
+ "metric-value"
828
+ ],
829
+ "industrial-utility": [
830
+ "empty-state",
831
+ "metric",
832
+ "metric-label",
833
+ "metric-value"
834
+ ],
835
+ "technical-blueprint": [
836
+ "empty-state",
837
+ "metric",
838
+ "metric-label",
839
+ "metric-value"
840
+ ],
841
+ "art-deco": [
842
+ "empty-state",
843
+ "metric",
844
+ "metric-label",
845
+ "metric-value"
846
+ ],
847
+ "clay": [
848
+ "empty-state",
849
+ "metric",
850
+ "metric-label",
851
+ "metric-value"
852
+ ],
853
+ "data-terminal": [
854
+ "empty-state",
855
+ "metric",
856
+ "metric-label",
857
+ "metric-value"
858
+ ],
859
+ "paper-editorial": [
860
+ "empty-state",
861
+ "metric",
862
+ "metric-label",
863
+ "metric-value"
864
+ ],
865
+ "neo-noir": [
866
+ "empty-state",
867
+ "metric",
868
+ "metric-label",
869
+ "metric-value"
712
870
  ]
713
871
  },
714
872
  "deprecatedStructuralSuffixes": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ui-style-kit-css",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "CSS theme and UI style preset library for accessible websites, dashboards, admin interfaces, and client-facing pages.",
5
5
  "style": "dist/ui-style-kit.css",
6
6
  "main": "dist/ui-style-kit.css",
@@ -141,7 +141,52 @@
141
141
  "./with-bridge.css": "./dist/ui-style-kit.with-bridge.css",
142
142
  "./dist/ui-style-kit.with-bridge.css": "./dist/ui-style-kit.with-bridge.css",
143
143
  "./dist/ui-style-kit.with-bridge.min.css": "./dist/ui-style-kit.with-bridge.min.css",
144
- "./manifest.json": "./manifest.json"
144
+ "./manifest.json": "./manifest.json",
145
+ "./visual/editorial-luxe.css": "./dist/visual/editorial-luxe.css",
146
+ "./styles/editorial-luxe": "./styles/editorial-luxe.css",
147
+ "./styles/editorial-luxe.css": "./styles/editorial-luxe.css",
148
+ "./editorial-luxe": "./styles/editorial-luxe.css",
149
+ "./editorial-luxe.css": "./styles/editorial-luxe.css",
150
+ "./visual/organic-modern.css": "./dist/visual/organic-modern.css",
151
+ "./styles/organic-modern": "./styles/organic-modern.css",
152
+ "./styles/organic-modern.css": "./styles/organic-modern.css",
153
+ "./organic-modern": "./styles/organic-modern.css",
154
+ "./organic-modern.css": "./styles/organic-modern.css",
155
+ "./visual/industrial-utility.css": "./dist/visual/industrial-utility.css",
156
+ "./styles/industrial-utility": "./styles/industrial-utility.css",
157
+ "./styles/industrial-utility.css": "./styles/industrial-utility.css",
158
+ "./industrial-utility": "./styles/industrial-utility.css",
159
+ "./industrial-utility.css": "./styles/industrial-utility.css",
160
+ "./visual/technical-blueprint.css": "./dist/visual/technical-blueprint.css",
161
+ "./styles/technical-blueprint": "./styles/technical-blueprint.css",
162
+ "./styles/technical-blueprint.css": "./styles/technical-blueprint.css",
163
+ "./technical-blueprint": "./styles/technical-blueprint.css",
164
+ "./technical-blueprint.css": "./styles/technical-blueprint.css",
165
+ "./visual/art-deco.css": "./dist/visual/art-deco.css",
166
+ "./styles/art-deco": "./styles/art-deco.css",
167
+ "./styles/art-deco.css": "./styles/art-deco.css",
168
+ "./art-deco": "./styles/art-deco.css",
169
+ "./art-deco.css": "./styles/art-deco.css",
170
+ "./visual/clay.css": "./dist/visual/clay.css",
171
+ "./styles/clay": "./styles/clay.css",
172
+ "./styles/clay.css": "./styles/clay.css",
173
+ "./clay": "./styles/clay.css",
174
+ "./clay.css": "./styles/clay.css",
175
+ "./visual/data-terminal.css": "./dist/visual/data-terminal.css",
176
+ "./styles/data-terminal": "./styles/data-terminal.css",
177
+ "./styles/data-terminal.css": "./styles/data-terminal.css",
178
+ "./data-terminal": "./styles/data-terminal.css",
179
+ "./data-terminal.css": "./styles/data-terminal.css",
180
+ "./visual/paper-editorial.css": "./dist/visual/paper-editorial.css",
181
+ "./styles/paper-editorial": "./styles/paper-editorial.css",
182
+ "./styles/paper-editorial.css": "./styles/paper-editorial.css",
183
+ "./paper-editorial": "./styles/paper-editorial.css",
184
+ "./paper-editorial.css": "./styles/paper-editorial.css",
185
+ "./visual/neo-noir.css": "./dist/visual/neo-noir.css",
186
+ "./styles/neo-noir": "./styles/neo-noir.css",
187
+ "./styles/neo-noir.css": "./styles/neo-noir.css",
188
+ "./neo-noir": "./styles/neo-noir.css",
189
+ "./neo-noir.css": "./styles/neo-noir.css"
145
190
  },
146
191
  "repository": {
147
192
  "type": "git",
@@ -154,27 +199,39 @@
154
199
  "engines": {
155
200
  "node": ">=20"
156
201
  },
202
+ "browserslist": [
203
+ "last 2 Chrome major versions",
204
+ "last 2 Edge major versions",
205
+ "last 2 Firefox major versions",
206
+ "Safari >= 16",
207
+ "iOS >= 16",
208
+ "not dead"
209
+ ],
157
210
  "type": "module",
158
211
  "devDependencies": {
159
212
  "@axe-core/playwright": "4.12.1",
160
213
  "@playwright/test": "~1.61.1",
214
+ "browserslist": "4.28.8",
161
215
  "css-tree": "3.2.1",
162
216
  "lightningcss": "1.33.0",
163
217
  "pixelmatch": "7.2.0",
164
218
  "pngjs": "7.0.0",
165
- "stylelint": "~17.14.0"
219
+ "stylelint": "~17.14.1"
166
220
  },
167
221
  "overrides": {
168
222
  "fast-uri": "3.1.5",
169
223
  "js-yaml": "4.3.1",
170
- "nanoid": "3.3.17",
224
+ "nanoid": "3.3.18",
171
225
  "postcss": "8.5.23"
172
226
  },
173
227
  "scripts": {
228
+ "generate:content-overflow": "node scripts/generate-content-overflow.mjs",
229
+ "generate:components": "node scripts/generate-expanded-components.mjs",
174
230
  "build": "node scripts/build.mjs",
175
231
  "lint": "stylelint \"styles/**/*.css\" \"demo/**/*.css\"",
176
232
  "check:contrast": "node scripts/check-contrast.mjs",
177
233
  "check:ownership": "node scripts/check-css-ownership.mjs",
234
+ "check:compat": "node scripts/check-browser-compatibility.mjs",
178
235
  "check:package": "node scripts/check-package.mjs",
179
236
  "test": "npm run test:unit",
180
237
  "test:unit": "node --test tests/*.test.js",
@@ -186,8 +243,8 @@
186
243
  "check:ecosystem:minimum": "node scripts/check-ecosystem-packs.mjs --matrix minimum --skip-docs",
187
244
  "check:ecosystem:packs": "npm run check:ecosystem:current && npm run check:ecosystem:minimum",
188
245
  "test:ecosystem:clean-install": "node --test tests/clean-install-ecosystem-contract.integration.mjs",
189
- "release:preflight": "npm run build && node scripts/release-preflight.mjs --layout-repo ../Layout-Style-CSS --interactive-repo ../Interactive-Surface-CSS --layout-docs-repo ../Layout-Style-CSS --interactive-docs-repo ../Interactive-Surface-CSS",
190
- "check": "npm run build && npm run lint && npm run test:unit && npm run check:contrast && npm run check:ownership && npm run check:package",
246
+ "release:preflight": "npm run build && node scripts/release-preflight.mjs --layout-repo ../Layout-Style-CSS --interactive-spec interactive-surface-css@1.6.0 --layout-docs-repo ../Layout-Style-CSS",
247
+ "check": "npm run build && npm run lint && npm run test:unit && npm run check:contrast && npm run check:compat && npm run check:ownership && npm run check:package",
191
248
  "pack:dry-run": "npm pack --dry-run",
192
249
  "prepack": "npm run check",
193
250
  "release:verify": "npm run check && npm run test:e2e && npm run test:axe && npm run test:visual && npm run test:matrix && npm run release:preflight -- --candidate-package ui-style-kit-css && npm audit --audit-level=moderate && npm run pack:dry-run",