layout-style-css 3.1.0 → 3.2.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 (43) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +16 -12
  3. package/dist/foundation.css +12 -9
  4. package/dist/layout-style-css.css +307 -108
  5. package/dist/layout-style-css.min.css +1 -1
  6. package/dist/personalities/bauhaus.css +3 -10
  7. package/dist/personalities/bento.css +0 -10
  8. package/dist/personalities/brutalism.css +2 -10
  9. package/dist/personalities/cyberpunk.css +1 -1
  10. package/dist/personalities/data-terminal.css +13 -0
  11. package/dist/personalities/editorial.css +14 -0
  12. package/dist/personalities/f-pattern.css +3 -3
  13. package/dist/personalities/industrial-hmi.css +11 -0
  14. package/dist/personalities/maximalist.css +1 -10
  15. package/dist/personalities/mondrian.css +1 -1
  16. package/dist/personalities/neumorphism.css +3 -12
  17. package/dist/personalities/retro-glass.css +10 -10
  18. package/dist/personalities/retrofuturism.css +1 -1
  19. package/dist/personalities/split-screen.css +5 -5
  20. package/dist/personalities/synthwave.css +1 -1
  21. package/dist/personalities/tactile.css +3 -12
  22. package/dist/personalities/technical-blueprint.css +13 -0
  23. package/dist/personalities/y2k.css +8 -8
  24. package/dist/personalities/z-pattern.css +3 -3
  25. package/dist/personalities.css +4 -0
  26. package/dist/primitives.css +113 -2
  27. package/dist/recipes.css +83 -0
  28. package/dist/utilities.css +3 -0
  29. package/docs/wiki/Demo-And-GitHub-Pages.md +4 -2
  30. package/docs/wiki/Getting-Started.md +4 -2
  31. package/docs/wiki/Home.md +5 -2
  32. package/docs/wiki/Installation-And-CDN.md +3 -3
  33. package/docs/wiki/Layout-Personality-Reference.md +67 -0
  34. package/docs/wiki/Layout-Primitives.md +6 -2
  35. package/docs/wiki/Layout-Recipes.md +1 -1
  36. package/docs/wiki/Layout-Styles.md +6 -23
  37. package/docs/wiki/Migrating-To-3.2.md +70 -0
  38. package/docs/wiki/Release-And-Publishing.md +6 -6
  39. package/docs/wiki/UI-Style-Kit-Compatibility.md +6 -0
  40. package/docs/wiki/_Sidebar.md +2 -0
  41. package/manifest.json +33 -23
  42. package/package.json +3 -3
  43. package/personalities.json +75 -14
package/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  All notable changes to `layout-style-css` are documented here. This project follows semantic versioning.
4
4
 
5
+ ## [3.2.0] - 2026-09-08
6
+
7
+ ### Added
8
+
9
+ - Added Mosaic and Action Bar compositions for responsive dashboards, task bars, and workflow surfaces that need stable DOM order and wrapping actions.
10
+ - Added four specialized layout personalities: Technical Blueprint, Data Terminal, Industrial HMI, and Editorial.
11
+ - Added the Layout Personality Reference and the 3.2 migration guide covering Mosaic, Action Bar, area-aware App Shell behavior, Scroll, and content resilience.
12
+
13
+ ### Changed
14
+
15
+ - Made App Shell area-aware so absent direct-child side regions do not reserve empty tracks while complete shells preserve their approved topology.
16
+ - Hardened layout content tracks and Scroll behavior so long labels, technical content, tables, and all-three-library fixtures remain usable with UI Style Kit 2.4.0.
17
+ - Expanded personality pairing metadata with recommended and compatible visual presets for the complete 20-layout inventory.
18
+
19
+ ### Security
20
+
21
+ - Updated the audited `fast-uri` override to the fixed 3.1.7 line while keeping runtime and peer dependencies empty.
22
+
23
+ ### Tests
24
+
25
+ - Added focused and rendered coverage for Mosaic, Action Bar, area-aware shells, pairing metadata, generated artifacts, release documentation, Pages output, and the final UI Style Kit 2.4.0 ecosystem fixture.
26
+
5
27
  ## [3.1.0] - 2026-08-25
6
28
 
7
29
  ### Added
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Zero-configuration, dependency-free structural CSS that responds to the width and height a layout actually receives.
4
4
 
5
- `layout-style-css@3.1.0` is the current additive v3 release. It provides intrinsic wrappers, composition primitives, seven semantic recipes, explicit local density controls, and sixteen spatial personalities. Layout owns structure; UI Style Kit owns paint; Interactive Surface owns interaction styling.
5
+ `layout-style-css@3.2.0` is the current v3 release candidate. It provides intrinsic wrappers, Mosaic and Action Bar compositions, seven semantic recipes, explicit local density controls, and twenty spatial personalities. Layout owns structure; UI Style Kit owns paint; Interactive Surface owns interaction styling.
6
6
 
7
7
  ## Requirements
8
8
 
@@ -13,7 +13,7 @@ Zero-configuration, dependency-free structural CSS that responds to the width an
13
13
  ## Install
14
14
 
15
15
  ```bash
16
- npm install layout-style-css@3.1.0
16
+ npm install layout-style-css@3.2.0
17
17
  ```
18
18
 
19
19
  Most applications need one import:
@@ -87,11 +87,11 @@ All lanes clamp to the available inline size, including allocations from 320px t
87
87
  The core includes:
88
88
 
89
89
  - `.ly-stack`, `.ly-cluster`, `.ly-center`, and `.ly-cover`
90
- - `.ly-switcher`, `.ly-sidebar`, `.ly-grid`, and `.ly-split`
90
+ - `.ly-switcher`, `.ly-sidebar`, `.ly-grid`, `.ly-mosaic`, and `.ly-split`
91
91
  - `.ly-panes` and `.ly-media`
92
- - `.ly-reel`, `.ly-frame`, and `.ly-scroll`
92
+ - `.ly-action-bar`, `.ly-reel`, `.ly-frame`, and `.ly-scroll`
93
93
 
94
- Grid and flex primitives wrap intrinsically whenever track wrapping can replace a query. Base `.ly-scroll` owns overflow but no height cap. Add `.ly-scroll--bounded` for the stable `--ly-scroll-max` cap or `.ly-scroll--viewport` for height-aware `--ly-scroll-viewport-max` behavior. Only `.ly-reel` deliberately scrolls horizontally; only the Scroll family deliberately creates vertical scrolling.
94
+ Grid and flex primitives wrap intrinsically whenever track wrapping can replace a query. Mosaic uses one, six, and twelve tracks at its base, `42rem`, and `72rem` tiers while keeping DOM order authoritative. Base `.ly-scroll` owns horizontal and vertical overflow but no height cap. Add `.ly-scroll--bounded` for the stable `--ly-scroll-max` cap or `.ly-scroll--viewport` for height-aware `--ly-scroll-viewport-max` behavior.
95
95
 
96
96
  Gap utilities `.ly-gap-0` through `.ly-gap-9` assign `gap` only on the element carrying the class. They do not alter inherited primitive gap variables. Override `--ly-gap`, `--ly-grid-gap`, `--ly-stack-gap`, or `--ly-cluster-gap` when a shared spacing context is intentional.
97
97
 
@@ -111,7 +111,7 @@ Recipes use attributes only. The stacked semantic source order is always safe, a
111
111
 
112
112
  The same ownership is available in `manifest.json` through `thresholds.recipes`, alongside the generic container-width and viewport-height arrays. Release checks verify every mapping against authored queries and require every public geometry token to reach a runtime CSS declaration.
113
113
 
114
- App Shell base, medium, and wide topologies own matching row definitions. This keeps the primary workspace flexible while header and footer tracks remain intrinsic, including personality-specific four-row topologies.
114
+ App Shell base, medium, and wide topologies own matching row definitions. The automatic shell is area-aware: absent direct-child side regions do not reserve empty tracks, while full shells preserve personality-approved geometry. `--ly-recipe-main-min: 20rem` guards automatic primary tracks.
115
115
 
116
116
  Canonical regions use `data-ly-area`, including `header`, `sidebar`, `nav`, `main`, `aside`, `footer`, `content`, `media`, `actions`, `primary`, and `secondary`.
117
117
 
@@ -155,12 +155,14 @@ Use the public height, gap, measure, ratio, rail, media, card, and grid-minimum
155
155
 
156
156
  ## Personalities
157
157
 
158
- Set one of sixteen canonical `data-ly-layout` values on `.ly-root`:
158
+ Set one of twenty canonical `data-ly-layout` values on `.ly-root`:
159
159
 
160
- `minimal-saas`, `bauhaus`, `tactile`, `cyberpunk`, `f-pattern`, `brutalism`, `neumorphism`, `y2k`, `retro-glass`, `z-pattern`, `retrofuturism`, `mondrian`, `synthwave`, `bento`, `maximalist`, or `split-screen`.
160
+ `minimal-saas`, `bento`, `maximalist`, `bauhaus`, `tactile`, `neumorphism`, `retrofuturism`, `brutalism`, `cyberpunk`, `y2k`, `retro-glass`, `f-pattern`, `z-pattern`, `split-screen`, `mondrian`, `synthwave`, `technical-blueprint`, `data-terminal`, `industrial-hmi`, or `editorial`.
161
161
 
162
162
  Each personality is a token/topology profile consumed by the shared recipe engine. A profile changes at least two spatial characteristics—such as measure, gap, rail, media size, card minimum, or ratio—but does not declare its own container or viewport breakpoint system.
163
163
 
164
+ See the [Layout Personality Reference](docs/wiki/Layout-Personality-Reference.md) for canonical geometry, responsive intent, Mosaic usage, and recommended/compatible UI presets.
165
+
164
166
  ## Public Exports
165
167
 
166
168
  | Import | Contents |
@@ -173,7 +175,7 @@ Each personality is a token/topology profile consumed by the shared recipe engin
173
175
  | `layout-style-css/primitives.css` | Intrinsic composition primitives |
174
176
  | `layout-style-css/recipes.css` | Seven attribute-only recipes |
175
177
  | `layout-style-css/utilities.css` | Small structural utility set |
176
- | `layout-style-css/personalities.css` | All sixteen profiles |
178
+ | `layout-style-css/personalities.css` | All twenty profiles |
177
179
  | `layout-style-css/personalities/minimal-saas.css` | One profile; substitute any public personality name |
178
180
  | `layout-style-css/personalities.json` | Public layout-to-visual pairing recommendations |
179
181
  | `layout-style-css/package.json` | Package metadata |
@@ -198,13 +200,13 @@ This order lets UI Style Kit establish paint and theme roles, Interactive Surfac
198
200
  ## CDN
199
201
 
200
202
  ```html
201
- <link rel="stylesheet" href="https://unpkg.com/layout-style-css@3.1.0/dist/layout-style-css.min.css">
202
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.1.0/dist/layout-style-css.min.css">
203
+ <link rel="stylesheet" href="https://unpkg.com/layout-style-css@3.2.0/dist/layout-style-css.min.css">
204
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.2.0/dist/layout-style-css.min.css">
203
205
  ```
204
206
 
205
207
  ## Clean-Break Migration
206
208
 
207
- v3 has no compatibility bundle. It removes `legacy.css`, the deprecated UI Style Kit structural bridge, v1/v2 aliases, responsive `ly-md-*` and `ly-lg-*` utilities, and all visual-order utilities. See [Migrating To 3.0](docs/wiki/Migrating-To-3.0.md) for the major-version mappings and [Migrating To 3.1](docs/wiki/Migrating-To-3.1.md) for density, local gap, and Scroll behavior changes.
209
+ v3 has no compatibility bundle. It removes `legacy.css`, the deprecated UI Style Kit structural bridge, v1/v2 aliases, responsive `ly-md-*` and `ly-lg-*` utilities, and all visual-order utilities. See [Migrating To 3.0](docs/wiki/Migrating-To-3.0.md) for the major-version mappings, [Migrating To 3.1](docs/wiki/Migrating-To-3.1.md) for density and local-gap changes, and [Migrating To 3.2](docs/wiki/Migrating-To-3.2.md) for Mosaic, Action Bar, area-aware shells, and content resilience.
208
210
 
209
211
  ## Demo And Verification
210
212
 
@@ -229,8 +231,10 @@ npm run release:verify
229
231
  - [Layout Primitives](docs/wiki/Layout-Primitives.md)
230
232
  - [Layout Recipes](docs/wiki/Layout-Recipes.md)
231
233
  - [Layout Styles](docs/wiki/Layout-Styles.md)
234
+ - [Layout Personality Reference](docs/wiki/Layout-Personality-Reference.md)
232
235
  - [Migrating To 3.0](docs/wiki/Migrating-To-3.0.md)
233
236
  - [Migrating To 3.1](docs/wiki/Migrating-To-3.1.md)
237
+ - [Migrating To 3.2](docs/wiki/Migrating-To-3.2.md)
234
238
  - [Demo And GitHub Pages](docs/wiki/Demo-And-GitHub-Pages.md)
235
239
  - [Release And Publishing](docs/wiki/Release-And-Publishing.md)
236
240
  - [Security And Support](docs/wiki/Security-And-Support.md)
@@ -51,6 +51,8 @@
51
51
  --ly-sidebar-content-min: 50%;
52
52
  --ly-grid-columns: 12;
53
53
  --ly-grid-min: 16rem;
54
+ --ly-mosaic-medium-columns: 6;
55
+ --ly-mosaic-wide-columns: 12;
54
56
  --ly-split-min: 20rem;
55
57
  --ly-pane-min: 18rem;
56
58
  --ly-pane-size: 22rem;
@@ -62,6 +64,7 @@
62
64
  --ly-split-primary: 1fr;
63
65
  --ly-split-secondary: 1fr;
64
66
 
67
+ --ly-recipe-main-min: 20rem;
65
68
  --ly-recipe-rail: 18rem;
66
69
  --ly-recipe-aside: 22rem;
67
70
  --ly-gallery-min: 12rem;
@@ -76,7 +79,7 @@
76
79
  --ly-app-shell-medium-rows: auto auto minmax(0, 1fr) auto;
77
80
  --ly-app-shell-medium-columns:
78
81
  minmax(min(100%, var(--ly-recipe-rail)), auto)
79
- minmax(0, 1fr);
82
+ minmax(min(100%, var(--ly-recipe-main-min)), 1fr);
80
83
  --ly-app-shell-wide-areas:
81
84
  "sidebar header header"
82
85
  "sidebar main aside"
@@ -84,7 +87,7 @@
84
87
  --ly-app-shell-wide-rows: auto minmax(0, 1fr) auto;
85
88
  --ly-app-shell-wide-columns:
86
89
  minmax(min(100%, var(--ly-recipe-rail)), auto)
87
- minmax(0, 1fr)
90
+ minmax(min(100%, var(--ly-recipe-main-min)), 1fr)
88
91
  minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
89
92
 
90
93
  --ly-dashboard-medium-areas:
@@ -93,7 +96,7 @@
93
96
  "main aside"
94
97
  "footer footer";
95
98
  --ly-dashboard-medium-columns:
96
- minmax(0, 1fr)
99
+ minmax(min(100%, var(--ly-recipe-main-min)), 1fr)
97
100
  minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
98
101
  --ly-dashboard-wide-areas:
99
102
  "nav header header"
@@ -101,7 +104,7 @@
101
104
  "nav footer footer";
102
105
  --ly-dashboard-wide-columns:
103
106
  minmax(min(100%, var(--ly-recipe-rail)), auto)
104
- minmax(0, 1fr)
107
+ minmax(min(100%, var(--ly-recipe-main-min)), 1fr)
105
108
  minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
106
109
 
107
110
  --ly-docs-wide-areas:
@@ -111,19 +114,19 @@
111
114
  "footer footer";
112
115
  --ly-docs-wide-columns:
113
116
  minmax(min(100%, var(--ly-recipe-rail)), auto)
114
- minmax(0, 1fr);
117
+ minmax(min(100%, var(--ly-recipe-main-min)), 1fr);
115
118
  --ly-list-detail-wide-areas:
116
119
  "primary secondary"
117
120
  "actions actions";
118
121
  --ly-list-detail-wide-columns:
119
- minmax(min(100%, var(--ly-pane-size)), 0.7fr)
120
- minmax(0, 1fr);
122
+ minmax(min(100%, max(var(--ly-pane-min), var(--ly-pane-size))), 0.7fr)
123
+ minmax(min(100%, var(--ly-pane-min)), 1fr);
121
124
  --ly-split-hero-wide-areas:
122
125
  "content media"
123
126
  "actions media";
124
127
  --ly-split-hero-wide-columns:
125
- minmax(0, var(--ly-split-primary, 1fr))
126
- minmax(0, var(--ly-split-secondary, 1fr));
128
+ minmax(min(100%, var(--ly-split-min)), var(--ly-split-primary, 1fr))
129
+ minmax(min(100%, var(--ly-split-min)), var(--ly-split-secondary, 1fr));
127
130
 
128
131
  container-name: ly-scope;
129
132
  container-type: inline-size;