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.
- package/CHANGELOG.md +22 -0
- package/README.md +16 -12
- package/dist/foundation.css +12 -9
- package/dist/layout-style-css.css +307 -108
- package/dist/layout-style-css.min.css +1 -1
- package/dist/personalities/bauhaus.css +3 -10
- package/dist/personalities/bento.css +0 -10
- package/dist/personalities/brutalism.css +2 -10
- package/dist/personalities/cyberpunk.css +1 -1
- package/dist/personalities/data-terminal.css +13 -0
- package/dist/personalities/editorial.css +14 -0
- package/dist/personalities/f-pattern.css +3 -3
- package/dist/personalities/industrial-hmi.css +11 -0
- package/dist/personalities/maximalist.css +1 -10
- package/dist/personalities/mondrian.css +1 -1
- package/dist/personalities/neumorphism.css +3 -12
- package/dist/personalities/retro-glass.css +10 -10
- package/dist/personalities/retrofuturism.css +1 -1
- package/dist/personalities/split-screen.css +5 -5
- package/dist/personalities/synthwave.css +1 -1
- package/dist/personalities/tactile.css +3 -12
- package/dist/personalities/technical-blueprint.css +13 -0
- package/dist/personalities/y2k.css +8 -8
- package/dist/personalities/z-pattern.css +3 -3
- package/dist/personalities.css +4 -0
- package/dist/primitives.css +113 -2
- package/dist/recipes.css +83 -0
- package/dist/utilities.css +3 -0
- package/docs/wiki/Demo-And-GitHub-Pages.md +4 -2
- package/docs/wiki/Getting-Started.md +4 -2
- package/docs/wiki/Home.md +5 -2
- package/docs/wiki/Installation-And-CDN.md +3 -3
- package/docs/wiki/Layout-Personality-Reference.md +67 -0
- package/docs/wiki/Layout-Primitives.md +6 -2
- package/docs/wiki/Layout-Recipes.md +1 -1
- package/docs/wiki/Layout-Styles.md +6 -23
- package/docs/wiki/Migrating-To-3.2.md +70 -0
- package/docs/wiki/Release-And-Publishing.md +6 -6
- package/docs/wiki/UI-Style-Kit-Compatibility.md +6 -0
- package/docs/wiki/_Sidebar.md +2 -0
- package/manifest.json +33 -23
- package/package.json +3 -3
- package/personalities.json +75 -14
package/dist/recipes.css
CHANGED
|
@@ -194,4 +194,87 @@
|
|
|
194
194
|
grid-template-columns: var(--ly-dashboard-wide-columns);
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
+
|
|
198
|
+
/*
|
|
199
|
+
Feature-detected presence rules remove absent side tracks without changing
|
|
200
|
+
the canonical area vocabulary or personality-owned both-side topologies.
|
|
201
|
+
*/
|
|
202
|
+
@supports selector(:has(*)) {
|
|
203
|
+
@container ly-scope (min-width: 52rem) {
|
|
204
|
+
[data-ly-recipe="app-shell"]:not([data-ly-responsive="manual"]):has(
|
|
205
|
+
> [data-ly-area="sidebar"]
|
|
206
|
+
):not(:has(> [data-ly-area="aside"])) {
|
|
207
|
+
grid-template-areas:
|
|
208
|
+
"header header"
|
|
209
|
+
"sidebar main"
|
|
210
|
+
"footer footer";
|
|
211
|
+
grid-template-columns:
|
|
212
|
+
minmax(min(100%, var(--ly-recipe-rail)), auto)
|
|
213
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr);
|
|
214
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
[data-ly-recipe="app-shell"]:not([data-ly-responsive="manual"]):not(
|
|
218
|
+
:has(> [data-ly-area="sidebar"])
|
|
219
|
+
):has(> [data-ly-area="aside"]) {
|
|
220
|
+
grid-template-areas:
|
|
221
|
+
"header header"
|
|
222
|
+
"main aside"
|
|
223
|
+
"footer footer";
|
|
224
|
+
grid-template-columns:
|
|
225
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr)
|
|
226
|
+
minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
|
|
227
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
[data-ly-recipe="app-shell"]:not([data-ly-responsive="manual"]):not(
|
|
231
|
+
:has(> [data-ly-area="sidebar"])
|
|
232
|
+
):not(:has(> [data-ly-area="aside"])) {
|
|
233
|
+
grid-template-areas:
|
|
234
|
+
"header"
|
|
235
|
+
"main"
|
|
236
|
+
"footer";
|
|
237
|
+
grid-template-columns:
|
|
238
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr);
|
|
239
|
+
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
@container ly-scope (min-width: 72rem) {
|
|
244
|
+
[data-ly-recipe="app-shell"]:not([data-ly-responsive="manual"]):has(
|
|
245
|
+
> [data-ly-area="sidebar"]
|
|
246
|
+
):not(:has(> [data-ly-area="aside"])) {
|
|
247
|
+
grid-template-areas:
|
|
248
|
+
"sidebar header"
|
|
249
|
+
"sidebar main"
|
|
250
|
+
"sidebar footer";
|
|
251
|
+
grid-template-columns:
|
|
252
|
+
minmax(min(100%, var(--ly-recipe-rail)), auto)
|
|
253
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
[data-ly-recipe="app-shell"]:not([data-ly-responsive="manual"]):not(
|
|
257
|
+
:has(> [data-ly-area="sidebar"])
|
|
258
|
+
):has(> [data-ly-area="aside"]) {
|
|
259
|
+
grid-template-areas:
|
|
260
|
+
"header header"
|
|
261
|
+
"main aside"
|
|
262
|
+
"footer footer";
|
|
263
|
+
grid-template-columns:
|
|
264
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr)
|
|
265
|
+
minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
[data-ly-recipe="app-shell"]:not([data-ly-responsive="manual"]):not(
|
|
269
|
+
:has(> [data-ly-area="sidebar"])
|
|
270
|
+
):not(:has(> [data-ly-area="aside"])) {
|
|
271
|
+
grid-template-areas:
|
|
272
|
+
"header"
|
|
273
|
+
"main"
|
|
274
|
+
"footer";
|
|
275
|
+
grid-template-columns:
|
|
276
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
197
280
|
}
|
package/dist/utilities.css
CHANGED
|
@@ -14,7 +14,10 @@
|
|
|
14
14
|
.ly-span-2 { grid-column: span 2; }
|
|
15
15
|
.ly-span-3 { grid-column: span 3; }
|
|
16
16
|
.ly-span-4 { grid-column: span 4; }
|
|
17
|
+
.ly-span-6 { grid-column: span 6; }
|
|
17
18
|
.ly-span-full { grid-column: 1 / -1; }
|
|
19
|
+
.ly-row-span-2 { grid-row: span 2; }
|
|
20
|
+
.ly-row-span-3 { grid-row: span 3; }
|
|
18
21
|
|
|
19
22
|
.ly-gap-0 { gap: var(--ly-space-0); }
|
|
20
23
|
.ly-gap-1 { gap: var(--ly-space-1); }
|
|
@@ -6,7 +6,9 @@ The v3 demo is an intrinsic responsive workbench, not a fixed-device screenshot
|
|
|
6
6
|
|
|
7
7
|
- Independent preview width and height
|
|
8
8
|
- Automatic and manual recipe responsiveness
|
|
9
|
-
- Wrapper, recipe, and all
|
|
9
|
+
- Wrapper, recipe, and all twenty personality profiles sourced from generated metadata
|
|
10
|
+
- Independent recommended and compatible UI-pairing guidance
|
|
11
|
+
- Visible Mosaic, Action Bar, and content-resilience fixtures within the selected preview allocation
|
|
10
12
|
- Layout-only, Layout plus UI, and all-three ecosystem modes
|
|
11
13
|
- Live rendered dimensions and active topology
|
|
12
14
|
- Copy-ready canonical attribute markup
|
|
@@ -30,7 +32,7 @@ npm run test:demo:quick
|
|
|
30
32
|
npm run test:demo:all
|
|
31
33
|
```
|
|
32
34
|
|
|
33
|
-
The full matrix runs in Chromium, Firefox, and WebKit. It checks meaningful DOM, unchanged source/focus order, automatic and manual topologies, nearest-container behavior, short-height escape hatches, zero-width tracks, overlap, and unintended overflow.
|
|
35
|
+
The full matrix runs in Chromium, Firefox, and WebKit. It checks meaningful DOM, unchanged source/focus order, automatic and manual topologies, nearest-container behavior, short-height escape hatches, Mosaic thresholds, Action Bar wrapping/stickiness, reachable two-axis Scroll overflow, zero-width tracks, overlap, and unintended document overflow.
|
|
34
36
|
|
|
35
37
|
## GitHub Pages
|
|
36
38
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Getting Started
|
|
2
2
|
|
|
3
|
-
Install `layout-style-css@3.
|
|
3
|
+
Install `layout-style-css@3.2.0` and import the root bundle:
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install layout-style-css@3.
|
|
6
|
+
npm install layout-style-css@3.2.0
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
```js
|
|
@@ -64,5 +64,7 @@ Keep mobile DOM order authoritative. The package never changes reading or focus
|
|
|
64
64
|
- [Layout Primitives](Layout-Primitives.md)
|
|
65
65
|
- [Layout Recipes](Layout-Recipes.md)
|
|
66
66
|
- [Layout Styles](Layout-Styles.md)
|
|
67
|
+
- [Layout Personality Reference](Layout-Personality-Reference.md)
|
|
67
68
|
- [Migrating To 3.0](Migrating-To-3.0.md)
|
|
68
69
|
- [Migrating To 3.1](Migrating-To-3.1.md)
|
|
70
|
+
- [Migrating To 3.2](Migrating-To-3.2.md)
|
package/docs/wiki/Home.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Layout Style CSS v3
|
|
2
2
|
|
|
3
|
-
`layout-style-css@3.
|
|
3
|
+
`layout-style-css@3.2.0` is the current release candidate. It remains a dependency-free, CSS-only structural system for layouts that adapt to available width and height.
|
|
4
4
|
|
|
5
5
|
## Contract
|
|
6
6
|
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
- Normal density is the zero-configuration default; compact and spacious contexts can be nested locally.
|
|
10
10
|
- Seven `data-ly-recipe` values enhance a semantic stacked fallback.
|
|
11
11
|
- `data-ly-responsive="manual"` transfers topology ownership to application CSS.
|
|
12
|
-
-
|
|
12
|
+
- Twenty `data-ly-layout` profiles tune one shared responsive engine.
|
|
13
|
+
- Mosaic, Action Bar, area-aware App Shell behavior, and guarded content floors remain structural and CSS-only.
|
|
13
14
|
- `100dvh` behavior and the `44rem`/`30rem` height tiers avoid short-screen traps.
|
|
14
15
|
- The mobile DOM order remains the reading, keyboard, and focus order.
|
|
15
16
|
|
|
@@ -22,8 +23,10 @@ Layout owns structure. UI Style Kit owns paint. Interactive Surface owns interac
|
|
|
22
23
|
- [Layout Primitives](Layout-Primitives.md)
|
|
23
24
|
- [Layout Recipes](Layout-Recipes.md)
|
|
24
25
|
- [Layout Styles](Layout-Styles.md)
|
|
26
|
+
- [Layout Personality Reference](Layout-Personality-Reference.md)
|
|
25
27
|
- [Migrating To 3.0](Migrating-To-3.0.md)
|
|
26
28
|
- [Migrating To 3.1](Migrating-To-3.1.md)
|
|
29
|
+
- [Migrating To 3.2](Migrating-To-3.2.md)
|
|
27
30
|
- [Demo And GitHub Pages](Demo-And-GitHub-Pages.md)
|
|
28
31
|
- [Release And Publishing](Release-And-Publishing.md)
|
|
29
32
|
- [Security And Support](Security-And-Support.md)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
## Package
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npm install layout-style-css@3.
|
|
12
|
+
npm install layout-style-css@3.2.0
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
```js
|
|
@@ -36,11 +36,11 @@ Package and bundler defaults (`main`, `style`, and the root export) use the read
|
|
|
36
36
|
## CDN
|
|
37
37
|
|
|
38
38
|
```html
|
|
39
|
-
<link rel="stylesheet" href="https://unpkg.com/layout-style-css@3.
|
|
39
|
+
<link rel="stylesheet" href="https://unpkg.com/layout-style-css@3.2.0/dist/layout-style-css.min.css">
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
```html
|
|
43
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.
|
|
43
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.2.0/dist/layout-style-css.min.css">
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
The CDN paths include `/dist/` because CDN clients address files in the published tarball, while package import maps use the public exports.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Layout Personality Reference
|
|
2
|
+
|
|
3
|
+
Layout Style CSS v3.2 publishes twenty `data-ly-layout` personalities. Each one is a structural token profile consumed by the shared responsive engine; it does not own color, type, borders, shadows, interaction state, or an independent breakpoint system.
|
|
4
|
+
|
|
5
|
+
Layout owns structure. UI Style Kit owns paint. Interactive Surface owns interaction styling.
|
|
6
|
+
|
|
7
|
+
## Geometry Targets
|
|
8
|
+
|
|
9
|
+
These are the canonical release values. Preferred wrapper refers to the default `.ly-wrapper` measure selected by the personality.
|
|
10
|
+
|
|
11
|
+
| Layout | Preferred wrapper | Profile gap | Grid min | Rail | Aside | Other required behavior |
|
|
12
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
13
|
+
| Minimal SaaS | `88rem` | `--ly-space-5` (1.5rem) | `16rem` | `15rem` | `16rem` | Keep split `1.05fr / 0.95fr`; conservative shared topology |
|
|
14
|
+
| Bento | `112rem` | `--ly-space-4` (1rem) | `12rem` | `14rem` | `18rem` | Keep card `14rem`, gallery `11rem`; remove old four-track shell; canonical Mosaic consumer |
|
|
15
|
+
| Maximalist | `100%` | `--ly-space-3` (0.75rem) | `10rem` | `15rem` | `18rem` | Keep card `13rem`, gallery `10rem`; remove old four-track shell |
|
|
16
|
+
| Bauhaus | `96rem` | `--ly-space-2` (0.5rem) | `13rem` | `14rem` | `18rem` | Remove old four-track shell; set split bias `0.7fr / 1.3fr`; canonical Mosaic consumer |
|
|
17
|
+
| Tactile | `96rem` | `--ly-space-4` (1rem) | `15rem` | `17rem` | `20rem` | Preserve List Detail bias `0.5fr / 0.9fr`; remove left sidebar/aside stacking topology |
|
|
18
|
+
| Neumorphism | `84rem` | `--ly-space-6` (2rem) | `17rem` | `17rem` | `22rem` | Remove persistent-right-sidebar topology; preserve List Detail `1.1fr / 0.7fr` |
|
|
19
|
+
| Retrofuturism | `106rem` | `--ly-space-5` (1.5rem) | `14rem` | `14rem` | `17rem` | Preserve current dual-rail wide topology |
|
|
20
|
+
| Brutalism | `100%` | `--ly-space-1` (0.25rem) | `14rem` | `16rem` | `18rem` | Remove persistent-right-sidebar topology; canonical Mosaic consumer |
|
|
21
|
+
| Cyberpunk | `112rem` | `--ly-space-4` (1rem) | `12rem` | `13rem` | `19rem` | Preserve current wide topology |
|
|
22
|
+
| Y2K | `100%` | `--ly-space-2` (0.5rem) | `13rem` | `18rem` | `16rem` | Wide shell uses global header/footer with persistent dual rails; Mosaic consumer |
|
|
23
|
+
| Retro Glass | `100%` | `--ly-space-2` (0.5rem) | `15rem` | `16rem` | `17rem` | Wide shell uses global header/footer with dual-rail desktop workbench; Mosaic consumer |
|
|
24
|
+
| F-pattern | `92rem` | `--ly-space-4` (1rem) | `14rem` | `16rem` | `18rem` | Preserve Split Hero `1.8fr / 0.8fr` |
|
|
25
|
+
| Z-pattern | `108rem` | `--ly-space-5` (1.5rem) | `14rem` | `17rem` | `19rem` | Preserve Split Hero `1.5fr / 0.5fr` and current directional weighting |
|
|
26
|
+
| Split Screen | `100%` | `--ly-space-4` (1rem) | `20rem` | `24rem` | `24rem` | Preserve equal-half App Shell, Split Hero, and List Detail behavior |
|
|
27
|
+
| Mondrian | `112rem` | `--ly-space-3` (0.75rem) | `11rem` | `13rem` | `18rem` | Preserve asymmetric wide composition |
|
|
28
|
+
| Synthwave | `112rem` | `--ly-space-6` (2rem) | `14rem` | `16rem` | `20rem` | Preserve three-zone wide shell and `20rem` Reel item minimum |
|
|
29
|
+
| Technical Blueprint | `100%` | `--ly-space-1` (0.25rem) | `10rem` | `11rem` | `26rem` | Split bias `2.2fr / 0.8fr`; technical-canvas-dominant; Mosaic consumer |
|
|
30
|
+
| Data Terminal | `100%` | `--ly-space-1` (0.25rem) | `10rem` | `12rem` | `18rem` | Band-dense command/data composition; card/gallery mins `10rem`; no new Band primitive in 3.2 |
|
|
31
|
+
| Industrial HMI | `100%` | `--ly-space-2` (0.5rem) | `11rem` | `7rem` | `32rem` | Narrow persistent nav + dominant process canvas + large controls rail |
|
|
32
|
+
| Editorial | `108rem` | `--ly-space-6` (2rem) | `16rem` | `10rem` | `18rem` | Split bias `1.65fr / 0.75fr`; default Frame ratio `4 / 5`; publication-first composition |
|
|
33
|
+
|
|
34
|
+
## Purpose, Responsive Intent, and Pairing
|
|
35
|
+
|
|
36
|
+
Narrow layouts preserve semantic DOM order as a single stack. Medium layouts use the shared recipe thresholds. Wide behavior below describes each personality's defining enhancement. “Canonical” means Mosaic is a primary expression of the personality; “useful” means it is supported but optional.
|
|
37
|
+
|
|
38
|
+
| Layout | Purpose and canonical spatial model | Wide intent | Recommended UI | Compatible UI | Mosaic | Action Bar |
|
|
39
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
40
|
+
| Minimal SaaS | Content-first application shell with conservative whitespace | Shared rail/content/aside topology | `minimal-saas` | `organic-modern` | Optional | Useful for forms |
|
|
41
|
+
| Bento | Heterogeneous modular tile dashboard | Shared shell with compact intrinsic tile grids | `bento` | None listed | Canonical | Useful |
|
|
42
|
+
| Maximalist | Maximum content density rather than maximum whitespace | Shared shell with dense card and gallery tracks | `maximalist` | None listed | Useful | Common |
|
|
43
|
+
| Bauhaus | Low-gap geometric asymmetry | Shared shell; media-biased Split | `bauhaus` | `art-deco` | Canonical | Useful |
|
|
44
|
+
| Tactile | Broad task workspace with physical grouping | Shared shell; secondary-biased List Detail | `tactile` | `clay` | Optional | Common |
|
|
45
|
+
| Neumorphism | Bounded configuration and readiness workspace | Shared shell; primary-biased List Detail | `neumorphism` | None listed | Optional | Common |
|
|
46
|
+
| Retrofuturism | Dual-rail workstation | Persistent navigation and settings rails | `retrofuturism` | None listed | Useful | Common |
|
|
47
|
+
| Brutalism | Near-zero-gap operational control grid | Shared area-aware shell at full width | `brutalism` | None listed | Canonical | Common |
|
|
48
|
+
| Cyberpunk | Broad operational shell with compact navigation and substantial settings rail | Preserved asymmetric operational topology | `cyberpunk` | None listed | Useful | Common |
|
|
49
|
+
| Y2K | Dense portal with persistent dual rails | Global header/footer around sidebar, main, and aside | `y2k` | None listed | Useful | Common |
|
|
50
|
+
| Retro Glass | Desktop workbench with global chrome and dual rails | Global header/footer around sidebar, main, and aside | `retro-glass` | None listed | Useful | Common |
|
|
51
|
+
| F-pattern | Strong top-left and primary-content reading priority | Content-biased Split Hero | Any visual preset | None listed | Optional | Useful |
|
|
52
|
+
| Z-pattern | Deliberate diagonal attention path | Strong directional Split Hero weighting | Any visual preset | None listed | Optional | Useful |
|
|
53
|
+
| Split Screen | Equal-priority dual workspaces | Equal halves across shell, hero, and detail | Any visual preset | None listed | Optional | Common |
|
|
54
|
+
| Mondrian | Asymmetric modular blocks | Preserved asymmetric wide composition | Any visual preset | None listed | Useful | Useful |
|
|
55
|
+
| Synthwave | Neon workstation geometry independent of paint | Preserved three-zone shell and broad Reel items | `cyberpunk`, `retrofuturism` | None listed | Useful | Common |
|
|
56
|
+
| Technical Blueprint | Engineering sheet and canvas workspace | Dominant technical canvas with supporting inspector | `technical-blueprint` | None listed | Canonical | Common |
|
|
57
|
+
| Data Terminal | Horizontal telemetry and command bands | Dense full-width data composition | `data-terminal` | `neo-noir` | Useful | Common |
|
|
58
|
+
| Industrial HMI | Supervisory process canvas with instrument rail | Narrow persistent navigation and large controls aside | `industrial-utility` | None listed | Useful | Common |
|
|
59
|
+
| Editorial | Publication composition with readable text and dominant media | Asymmetric editorial Split and portrait Frame | `editorial-luxe`, `paper-editorial` | None listed | Optional | Useful |
|
|
60
|
+
|
|
61
|
+
## Area-Aware Shells
|
|
62
|
+
|
|
63
|
+
Automatic App Shell enhancement removes an absent sidebar or aside instead of reserving an empty track. Technical Blueprint, Data Terminal, Editorial, Neumorphism, and Brutalism use this shared behavior when a reference omits a side region. Y2K and Retro Glass keep global header/footer rows with both rails when all areas are present. `data-ly-responsive="manual"` remains a stacked, application-owned fallback.
|
|
64
|
+
|
|
65
|
+
## Pairing Is Advisory
|
|
66
|
+
|
|
67
|
+
`layout-style-css/personalities.json` is the machine-readable source for `recommendedVisualPresets` and `compatibleVisualPresets`. Layout selection never changes `data-ui`, `data-theme`, or `data-mode`. UI-only presets such as `clay`, `neo-noir`, `art-deco`, `organic-modern`, `industrial-utility`, `editorial-luxe`, and `paper-editorial` are not layout personality IDs.
|
|
@@ -36,19 +36,23 @@ Use content for conventional page content and workspace for task-oriented applic
|
|
|
36
36
|
- `.ly-switcher` wraps when its intrinsic threshold is no longer feasible.
|
|
37
37
|
- `.ly-sidebar` keeps a preferred rail while the content can meet its minimum.
|
|
38
38
|
- `.ly-grid` uses auto-fit tracks and `--ly-grid-min`.
|
|
39
|
+
- `.ly-mosaic` uses one column by default, six columns at `42rem`, and twelve columns at `72rem`; span and row-span utilities activate only at supported tiers.
|
|
39
40
|
- `.ly-split` creates balanced intrinsic regions.
|
|
40
41
|
- `.ly-panes` creates a preferred workspace rail and flexible pane.
|
|
41
42
|
- `.ly-media` wraps media and content without a viewport breakpoint.
|
|
43
|
+
- `.ly-action-bar` wraps start/end workflow groups in DOM order; `.ly-action-bar--sticky` uses height-aware sticky behavior and safe-area padding.
|
|
42
44
|
|
|
43
45
|
## Frame And Overflow
|
|
44
46
|
|
|
45
47
|
- `.ly-frame` keeps a configurable aspect ratio.
|
|
46
48
|
- `.ly-reel` is the deliberate horizontal-flow primitive.
|
|
47
|
-
- `.ly-scroll` owns vertical overflow without imposing a height cap.
|
|
49
|
+
- `.ly-scroll` owns horizontal and vertical overflow without imposing a height cap.
|
|
48
50
|
- `.ly-scroll--bounded` applies the stable `--ly-scroll-max` cap.
|
|
49
51
|
- `.ly-scroll--viewport` applies the height-aware `--ly-scroll-viewport-max` cap.
|
|
50
52
|
|
|
51
|
-
In normal use, only `.ly-reel`
|
|
53
|
+
In normal use, only `.ly-reel` and `.ly-scroll` introduce intentional horizontal scrolling, and only `.ly-scroll` and its modifiers introduce intentional vertical scrolling. Other wrappers, primitives, and recipes clamp to their available inline size.
|
|
54
|
+
|
|
55
|
+
Mosaic never uses `grid-auto-flow: dense`; visual spans do not change reading or focus order. Action Bar groups also wrap without visual reordering.
|
|
52
56
|
|
|
53
57
|
## Height Behavior
|
|
54
58
|
|
|
@@ -18,7 +18,7 @@ Recipe roots also establish `ly-scope`, so child compositions can respond withou
|
|
|
18
18
|
|
|
19
19
|
`manifest.json` publishes the same ownership under `thresholds.recipes`, in addition to the generic `containerMinWidths` and `viewportMaxHeights` arrays. The release gate checks those mappings against authored queries and verifies public-token liveness.
|
|
20
20
|
|
|
21
|
-
App Shell base, medium, and wide topologies own matching row definitions. Header and footer tracks remain intrinsic while the main workspace
|
|
21
|
+
App Shell base, medium, and wide topologies own matching row definitions. Automatic enhancement is area-aware: a missing direct-child sidebar, aside, or both removes the corresponding empty track. Full-area personality shells keep their approved topology, and manual responsiveness remains stacked. Header and footer tracks remain intrinsic while the guarded main workspace consumes `--ly-recipe-main-min: 20rem`.
|
|
22
22
|
|
|
23
23
|
## Areas
|
|
24
24
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Layout Styles
|
|
2
2
|
|
|
3
|
-
The
|
|
3
|
+
The twenty `data-ly-layout` values are focused token and topology profiles:
|
|
4
4
|
|
|
5
|
-
`minimal-saas`, `bauhaus`, `tactile`, `
|
|
5
|
+
`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`, and `editorial`.
|
|
6
6
|
|
|
7
7
|
```html
|
|
8
8
|
<body class="ly-root" data-ly-layout="bento">
|
|
@@ -23,7 +23,7 @@ Every profile feeds the same wrapper, primitive, and recipe engine. Profiles tun
|
|
|
23
23
|
|
|
24
24
|
A profile must remain visibly distinct through at least two spatial characteristics. Personality files may not declare their own `@container`, viewport, or orientation breakpoint systems.
|
|
25
25
|
|
|
26
|
-
When a profile supplies an App Shell area template, its matching row definition must contain the same number of rows and keep the main workspace on the flexible track.
|
|
26
|
+
When a profile supplies an App Shell area template, its matching row definition must contain the same number of rows and keep the main workspace on the flexible track. Other profiles inherit the shared area-aware App Shell, which removes absent direct-child side tracks without changing DOM order.
|
|
27
27
|
|
|
28
28
|
## Density Contexts
|
|
29
29
|
|
|
@@ -37,26 +37,9 @@ The personality name does not promise colors, typography, borders, shadows, or i
|
|
|
37
37
|
|
|
38
38
|
## Visual Pairing Guidance
|
|
39
39
|
|
|
40
|
-
[`layout-style-css/personalities.json`](../../personalities.json) is the public, machine-readable pairing source used by the demo. Its
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
| --- | --- |
|
|
44
|
-
| Minimal SaaS | Native match: `minimal-saas` |
|
|
45
|
-
| Bento | Native match: `bento` |
|
|
46
|
-
| Maximalist | Native match: `maximalist` |
|
|
47
|
-
| Bauhaus | Native match: `bauhaus` |
|
|
48
|
-
| Tactile | Native match: `tactile` |
|
|
49
|
-
| Neumorphism | Native match: `neumorphism` |
|
|
50
|
-
| Retrofuturism | Native match: `retrofuturism` |
|
|
51
|
-
| Brutalism | Native match: `brutalism` |
|
|
52
|
-
| Cyberpunk | Native match: `cyberpunk` |
|
|
53
|
-
| Y2K | Native match: `y2k` |
|
|
54
|
-
| Retro Glass | Native match: `retro-glass` |
|
|
55
|
-
| F-pattern | Any visual preset; this is structure only |
|
|
56
|
-
| Z-pattern | Any visual preset; this is structure only |
|
|
57
|
-
| Split Screen | Any visual preset; this is structure only |
|
|
58
|
-
| Mondrian | Any visual preset; this is structure only |
|
|
59
|
-
| Synthwave | Recommended: `cyberpunk` or `retrofuturism`; the browser contract verifies each preset's distinct rendered article shadow while retaining `data-ly-layout="synthwave"` |
|
|
40
|
+
[`layout-style-css/personalities.json`](../../personalities.json) is the public, machine-readable pairing source used by the demo. Its recommended and compatible arrays are guidance, never dependencies: `data-ly-layout`, `data-ly-density`, `data-ui`, `data-theme`, and `data-mode` are independently selectable on the same document.
|
|
41
|
+
|
|
42
|
+
See the [Layout Personality Reference](Layout-Personality-Reference.md) for the canonical 20-profile geometry, responsive intent, Mosaic role, and full pairing matrix.
|
|
60
43
|
|
|
61
44
|
## Customization
|
|
62
45
|
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Migrating To 3.2
|
|
2
|
+
|
|
3
|
+
Layout Style CSS 3.2 is additive: existing v3 selectors, package exports, semantic areas, automatic recipe thresholds, and manual-responsive behavior are retained. The release expands composition APIs, makes automatic content tracks more resilient, and grows the layout personality inventory from sixteen to twenty.
|
|
4
|
+
|
|
5
|
+
## Mosaic
|
|
6
|
+
|
|
7
|
+
Use `.ly-mosaic` for deliberate heterogeneous tile geometry. It starts as one column, becomes six columns at `42rem`, and becomes twelve columns at `72rem`, based on the nearest `ly-scope` container.
|
|
8
|
+
|
|
9
|
+
```html
|
|
10
|
+
<section class="ly-mosaic">
|
|
11
|
+
<article class="ly-span-6 ly-row-span-2">Primary canvas</article>
|
|
12
|
+
<article class="ly-span-4">Signal health</article>
|
|
13
|
+
<article class="ly-span-full">System status</article>
|
|
14
|
+
</section>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Span utilities collapse below their supported tier, and Mosaic never uses dense auto-placement. DOM, reading, keyboard, and focus order remain authoritative. Set `data-ly-responsive="manual"` on the Mosaic when application CSS owns its columns.
|
|
18
|
+
|
|
19
|
+
## Action Bar
|
|
20
|
+
|
|
21
|
+
Use `.ly-action-bar` with `data-ly-actions="start"` and `data-ly-actions="end"` groups for workflow controls. The groups wrap in DOM order; the end group moves to the logical edge when space allows.
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<div class="ly-action-bar ly-action-bar--sticky">
|
|
25
|
+
<div data-ly-actions="start"><button>Save draft</button></div>
|
|
26
|
+
<div data-ly-actions="end"><button>Publish</button></div>
|
|
27
|
+
</div>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The sticky modifier uses `--ly-sticky-position`, honors the block-end safe area, and becomes normal flow in the shallow-height tier so required actions remain reachable.
|
|
31
|
+
|
|
32
|
+
## Area-Aware App Shell
|
|
33
|
+
|
|
34
|
+
The automatic, feature-detected area-aware App Shell no longer reserves empty columns when the direct-child sidebar, aside, or both are absent. Full five-area shells retain their personality-approved topology. Browsers without the required selector support keep the safe shared layout, and `data-ly-responsive="manual"` remains application-owned.
|
|
35
|
+
|
|
36
|
+
## Content Resilience
|
|
37
|
+
|
|
38
|
+
- `--ly-recipe-main-min: 20rem` now guards automatic App Shell, Dashboard, and Docs primary tracks.
|
|
39
|
+
- Both List Detail tracks retain the `--ly-pane-min` floor.
|
|
40
|
+
- Both Split Hero tracks retain the `--ly-split-min` floor.
|
|
41
|
+
- `.ly-scroll` now exposes horizontal as well as vertical overflow with reachable scrollbars instead of clipping legitimate wide content.
|
|
42
|
+
- Long labels, paragraphs, URLs, tables, code, and diagram-like content remain reachable rather than being hidden to preserve a desktop composition.
|
|
43
|
+
|
|
44
|
+
UI Style Kit 2.4 companion fixtures should allow their content boxes to shrink and wrap while leaving deliberate wide tables, code, or technical canvases inside `.ly-scroll`. Do not apply generic `overflow: hidden` to a required structural region.
|
|
45
|
+
|
|
46
|
+
## New Personality IDs
|
|
47
|
+
|
|
48
|
+
- `technical-blueprint`: full-width engineering canvas with a `2.2fr / 0.8fr` Split bias.
|
|
49
|
+
- `data-terminal`: dense full-width data composition with `10rem` grid, card, and gallery minima.
|
|
50
|
+
- `industrial-hmi`: full-width supervisory shell with a `7rem` rail and `32rem` aside.
|
|
51
|
+
- `editorial`: `108rem` publication composition with a `1.65fr / 0.75fr` Split and `4 / 5` Frame.
|
|
52
|
+
|
|
53
|
+
See [Layout Personality Reference](Layout-Personality-Reference.md) for the canonical twenty-profile geometry and visual-preset pairings.
|
|
54
|
+
|
|
55
|
+
## Existing Geometry Changes
|
|
56
|
+
|
|
57
|
+
- Bento removes its old four-track App Shell and remains a canonical Mosaic profile.
|
|
58
|
+
- Maximalist reduces its profile gap to `--ly-space-3` while preserving dense card and gallery minima.
|
|
59
|
+
- Bauhaus reduces its gap to `--ly-space-2`, removes its old shell, and adds a `0.7fr / 1.3fr` Split bias.
|
|
60
|
+
- Tactile moves to the `96rem` workspace measure and removes its old sidebar/aside stacking topology.
|
|
61
|
+
- Neumorphism removes its persistent-right-sidebar topology and increases its aside preference to `22rem`.
|
|
62
|
+
- Brutalism becomes full width, uses `--ly-space-1`, and removes its persistent-right-sidebar topology.
|
|
63
|
+
- Y2K becomes full width with a global header/footer and persistent dual rails.
|
|
64
|
+
- Retro Glass becomes full width with a global header/footer and dual-rail desktop workbench.
|
|
65
|
+
|
|
66
|
+
Retrofuturism, Cyberpunk, Split Screen, Mondrian, Synthwave, and the other profiles not listed above preserve their approved topology and defining recipe biases.
|
|
67
|
+
|
|
68
|
+
## Pairing Metadata
|
|
69
|
+
|
|
70
|
+
Every entry in `layout-style-css/personalities.json` now has both `recommendedVisualPresets` and additive `compatibleVisualPresets` arrays. These values are guidance only: changing `data-ly-layout` never changes the independently selected `data-ui`, `data-theme`, `data-mode`, or density.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Release And Publishing
|
|
2
2
|
|
|
3
|
-
This guide describes the release gate for `layout-style-css@3.
|
|
3
|
+
This guide describes the release gate for `layout-style-css@3.2.0`. Running verification does not publish, tag, push, create a GitHub Release, or change the npm registry.
|
|
4
4
|
|
|
5
5
|
## Local Candidate Gate
|
|
6
6
|
|
|
@@ -23,20 +23,20 @@ The package's `prepublishOnly` script runs `npm run release:verify`, so a direct
|
|
|
23
23
|
|
|
24
24
|
The immutable cross-repository pins require this exact remote sequence:
|
|
25
25
|
|
|
26
|
-
1.
|
|
26
|
+
1. Use the published UI Style Kit 2.4.0 fixture ref containing `835aa4474c49b7b766d3f5a923f023725bc14331`.
|
|
27
27
|
2. Push and merge Interactive Surface CSS and Layout Style CSS with merge commits so their reviewed commit SHAs remain reachable.
|
|
28
28
|
3. Update and verify the final UI companion pins against those merged companion commits.
|
|
29
29
|
4. Push the final UI branch, rerun its ecosystem preflight, and merge UI with a merge commit.
|
|
30
30
|
5. Do not squash, rebase, or delete the only remote refs until every pinned commit is reachable through merged ancestry.
|
|
31
31
|
|
|
32
|
-
The
|
|
32
|
+
The UI fixture SHA is deliberately stable: companion workflows use it to load the reviewed preflight implementation and final 2.4.0 package contract before Layout Style CSS is published.
|
|
33
33
|
|
|
34
34
|
## Candidate Inspection
|
|
35
35
|
|
|
36
36
|
Confirm:
|
|
37
37
|
|
|
38
|
-
- package version is `3.
|
|
39
|
-
- intended tag would be `v3.
|
|
38
|
+
- package version is `3.2.0`
|
|
39
|
+
- intended tag would be `v3.2.0`
|
|
40
40
|
- runtime and peer dependencies are empty
|
|
41
41
|
- exact exports and tarball files match the v3 contract
|
|
42
42
|
- generated CSS matches authored sources
|
|
@@ -50,7 +50,7 @@ Only after explicit approval:
|
|
|
50
50
|
1. Commit the verified candidate.
|
|
51
51
|
2. Push the intended branch.
|
|
52
52
|
3. Merge through the repository's normal review policy.
|
|
53
|
-
4. Create the exact `v3.
|
|
53
|
+
4. Create the exact `v3.2.0` tag from the protected release commit.
|
|
54
54
|
5. Publish the GitHub Release.
|
|
55
55
|
6. Let the protected npm workflow verify the tag and publish with provenance.
|
|
56
56
|
7. Confirm the GitHub Release, tag, and npm registry state independently.
|
|
@@ -35,6 +35,12 @@ Put canonical structural hooks in markup:
|
|
|
35
35
|
|
|
36
36
|
The `ly-*` hooks control structure. Companion classes and data attributes can paint or animate the same elements without taking over layout.
|
|
37
37
|
|
|
38
|
+
## Pairing Guidance
|
|
39
|
+
|
|
40
|
+
`layout-style-css/personalities.json` publishes independent `recommendedVisualPresets` and `compatibleVisualPresets` arrays. The Layout Lab displays both for the selected personality but never changes the user's `data-ui` selection. See [Layout Personality Reference](Layout-Personality-Reference.md) for the complete matrix.
|
|
41
|
+
|
|
42
|
+
For UI Style Kit 2.4 content, allow long labels and paragraphs to wrap and keep required structural regions shrink-safe. Put legitimately wide tables, code, or technical canvases inside `.ly-scroll`; do not conceal them with generic clipping.
|
|
43
|
+
|
|
38
44
|
## v3 Boundary
|
|
39
45
|
|
|
40
46
|
The deprecated v2 UI-prefixed structural bridge is not shipped. Migrate bridge aliases to canonical Layout hooks; do not copy the bridge into application CSS. See [Migrating To 3.0](Migrating-To-3.0.md).
|
package/docs/wiki/_Sidebar.md
CHANGED
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
- [Layout Primitives](Layout-Primitives)
|
|
5
5
|
- [Layout Recipes](Layout-Recipes)
|
|
6
6
|
- [Layout Styles](Layout-Styles)
|
|
7
|
+
- [Layout Personality Reference](Layout-Personality-Reference)
|
|
7
8
|
- [Companion Compatibility](UI-Style-Kit-Compatibility)
|
|
8
9
|
- [Migrating To 3.0](Migrating-To-3.0)
|
|
9
10
|
- [Migrating To 3.1](Migrating-To-3.1)
|
|
11
|
+
- [Migrating To 3.2](Migrating-To-3.2)
|
|
10
12
|
- [Demo And GitHub Pages](Demo-And-GitHub-Pages)
|
|
11
13
|
- [Release And Publishing](Release-And-Publishing)
|
|
12
14
|
- [Security And Support](Security-And-Support)
|
package/manifest.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"breakingChange": "increment-schemaVersion-before-removing-or-renaming-fields"
|
|
6
6
|
},
|
|
7
7
|
"name": "layout-style-css",
|
|
8
|
-
"version": "3.
|
|
8
|
+
"version": "3.2.0",
|
|
9
9
|
"entrypoints": {
|
|
10
10
|
"default": "./dist/layout-style-css.css",
|
|
11
11
|
"minified": "./dist/layout-style-css.min.css",
|
|
@@ -24,41 +24,46 @@
|
|
|
24
24
|
"deprecated": []
|
|
25
25
|
},
|
|
26
26
|
"wrappers": ["compact", "prose", "content", "workspace", "wide", "full", "breakout"],
|
|
27
|
-
"primitives": ["page", "header", "footer", "main", "section", "surface", "readable", "stack", "cluster", "center", "cover", "switcher", "sidebar", "grid", "split", "panes", "media", "reel", "frame", "scroll"],
|
|
27
|
+
"primitives": ["page", "header", "footer", "main", "section", "surface", "readable", "stack", "cluster", "center", "cover", "switcher", "sidebar", "grid", "mosaic", "action-bar", "split", "panes", "media", "reel", "frame", "scroll"],
|
|
28
28
|
"recipes": ["app-shell", "dashboard", "docs", "list-detail", "split-hero", "gallery", "card-grid"],
|
|
29
29
|
"areas": ["header", "nav", "sidebar", "main", "aside", "footer", "content", "media", "actions", "primary", "secondary"],
|
|
30
|
-
"personalities": ["minimal-saas", "bento", "maximalist", "bauhaus", "tactile", "neumorphism", "retrofuturism", "brutalism", "cyberpunk", "y2k", "retro-glass", "f-pattern", "z-pattern", "split-screen", "mondrian", "synthwave"],
|
|
30
|
+
"personalities": ["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", "editorial"],
|
|
31
31
|
"personalityPairings": [
|
|
32
|
-
{ "id": "minimal-saas", "label": "Minimal SaaS", "visualCompatibility": "native", "recommendedVisualPresets": ["minimal-saas"] },
|
|
33
|
-
{ "id": "bento", "label": "Bento", "visualCompatibility": "native", "recommendedVisualPresets": ["bento"] },
|
|
34
|
-
{ "id": "maximalist", "label": "Maximalist", "visualCompatibility": "native", "recommendedVisualPresets": ["maximalist"] },
|
|
35
|
-
{ "id": "bauhaus", "label": "Bauhaus", "visualCompatibility": "native", "recommendedVisualPresets": ["bauhaus"] },
|
|
36
|
-
{ "id": "tactile", "label": "Tactile", "visualCompatibility": "native", "recommendedVisualPresets": ["tactile"] },
|
|
37
|
-
{ "id": "neumorphism", "label": "Neumorphism", "visualCompatibility": "native", "recommendedVisualPresets": ["neumorphism"] },
|
|
38
|
-
{ "id": "retrofuturism", "label": "Retrofuturism", "visualCompatibility": "native", "recommendedVisualPresets": ["retrofuturism"] },
|
|
39
|
-
{ "id": "brutalism", "label": "Brutalism", "visualCompatibility": "native", "recommendedVisualPresets": ["brutalism"] },
|
|
40
|
-
{ "id": "cyberpunk", "label": "Cyberpunk", "visualCompatibility": "native", "recommendedVisualPresets": ["cyberpunk"] },
|
|
41
|
-
{ "id": "y2k", "label": "Y2K", "visualCompatibility": "native", "recommendedVisualPresets": ["y2k"] },
|
|
42
|
-
{ "id": "retro-glass", "label": "Retro Glass", "visualCompatibility": "native", "recommendedVisualPresets": ["retro-glass"] },
|
|
43
|
-
{ "id": "f-pattern", "label": "F-pattern", "visualCompatibility": "any", "recommendedVisualPresets": [] },
|
|
44
|
-
{ "id": "z-pattern", "label": "Z-pattern", "visualCompatibility": "any", "recommendedVisualPresets": [] },
|
|
45
|
-
{ "id": "split-screen", "label": "Split Screen", "visualCompatibility": "any", "recommendedVisualPresets": [] },
|
|
46
|
-
{ "id": "mondrian", "label": "Mondrian", "visualCompatibility": "any", "recommendedVisualPresets": [] },
|
|
32
|
+
{ "id": "minimal-saas", "label": "Minimal SaaS", "visualCompatibility": "native", "recommendedVisualPresets": ["minimal-saas"], "compatibleVisualPresets": ["organic-modern"] },
|
|
33
|
+
{ "id": "bento", "label": "Bento", "visualCompatibility": "native", "recommendedVisualPresets": ["bento"], "compatibleVisualPresets": [] },
|
|
34
|
+
{ "id": "maximalist", "label": "Maximalist", "visualCompatibility": "native", "recommendedVisualPresets": ["maximalist"], "compatibleVisualPresets": [] },
|
|
35
|
+
{ "id": "bauhaus", "label": "Bauhaus", "visualCompatibility": "native", "recommendedVisualPresets": ["bauhaus"], "compatibleVisualPresets": ["art-deco"] },
|
|
36
|
+
{ "id": "tactile", "label": "Tactile", "visualCompatibility": "native", "recommendedVisualPresets": ["tactile"], "compatibleVisualPresets": ["clay"] },
|
|
37
|
+
{ "id": "neumorphism", "label": "Neumorphism", "visualCompatibility": "native", "recommendedVisualPresets": ["neumorphism"], "compatibleVisualPresets": [] },
|
|
38
|
+
{ "id": "retrofuturism", "label": "Retrofuturism", "visualCompatibility": "native", "recommendedVisualPresets": ["retrofuturism"], "compatibleVisualPresets": [] },
|
|
39
|
+
{ "id": "brutalism", "label": "Brutalism", "visualCompatibility": "native", "recommendedVisualPresets": ["brutalism"], "compatibleVisualPresets": [] },
|
|
40
|
+
{ "id": "cyberpunk", "label": "Cyberpunk", "visualCompatibility": "native", "recommendedVisualPresets": ["cyberpunk"], "compatibleVisualPresets": [] },
|
|
41
|
+
{ "id": "y2k", "label": "Y2K", "visualCompatibility": "native", "recommendedVisualPresets": ["y2k"], "compatibleVisualPresets": [] },
|
|
42
|
+
{ "id": "retro-glass", "label": "Retro Glass", "visualCompatibility": "native", "recommendedVisualPresets": ["retro-glass"], "compatibleVisualPresets": [] },
|
|
43
|
+
{ "id": "f-pattern", "label": "F-pattern", "visualCompatibility": "any", "recommendedVisualPresets": [], "compatibleVisualPresets": [] },
|
|
44
|
+
{ "id": "z-pattern", "label": "Z-pattern", "visualCompatibility": "any", "recommendedVisualPresets": [], "compatibleVisualPresets": [] },
|
|
45
|
+
{ "id": "split-screen", "label": "Split Screen", "visualCompatibility": "any", "recommendedVisualPresets": [], "compatibleVisualPresets": [] },
|
|
46
|
+
{ "id": "mondrian", "label": "Mondrian", "visualCompatibility": "any", "recommendedVisualPresets": [], "compatibleVisualPresets": [] },
|
|
47
47
|
{
|
|
48
48
|
"id": "synthwave",
|
|
49
49
|
"label": "Synthwave",
|
|
50
50
|
"visualCompatibility": "recommended",
|
|
51
51
|
"recommendedVisualPresets": ["cyberpunk", "retrofuturism"],
|
|
52
|
+
"compatibleVisualPresets": [],
|
|
52
53
|
"visualVerification": {
|
|
53
54
|
"method": "rendered-computed-style",
|
|
54
55
|
"test": "test/demo-smoke.test.mjs",
|
|
55
56
|
"computedProperties": {
|
|
56
|
-
"cyberpunk": { "boxShadow": "0px 0px
|
|
57
|
-
"retrofuturism": { "boxShadow": "0px
|
|
57
|
+
"cyberpunk": { "boxShadow": "0px 0px 12px" },
|
|
58
|
+
"retrofuturism": { "boxShadow": "0px 2.88px 6.72px" }
|
|
58
59
|
},
|
|
59
60
|
"assertion": "A visible browser contract fixture renders each preset's distinct article box-shadow while data-ly-layout remains synthwave."
|
|
60
61
|
}
|
|
61
|
-
}
|
|
62
|
+
},
|
|
63
|
+
{ "id": "technical-blueprint", "label": "Technical Blueprint", "visualCompatibility": "native", "recommendedVisualPresets": ["technical-blueprint"], "compatibleVisualPresets": [] },
|
|
64
|
+
{ "id": "data-terminal", "label": "Data Terminal", "visualCompatibility": "native", "recommendedVisualPresets": ["data-terminal"], "compatibleVisualPresets": ["neo-noir"] },
|
|
65
|
+
{ "id": "industrial-hmi", "label": "Industrial HMI", "visualCompatibility": "recommended", "recommendedVisualPresets": ["industrial-utility"], "compatibleVisualPresets": [] },
|
|
66
|
+
{ "id": "editorial", "label": "Editorial", "visualCompatibility": "recommended", "recommendedVisualPresets": ["editorial-luxe", "paper-editorial"], "compatibleVisualPresets": [] }
|
|
62
67
|
],
|
|
63
68
|
"containers": {
|
|
64
69
|
"names": ["ly-scope"],
|
|
@@ -73,6 +78,9 @@
|
|
|
73
78
|
"docs": { "wide": "48rem" },
|
|
74
79
|
"appShell": { "medium": "52rem", "wide": "72rem" },
|
|
75
80
|
"dashboard": { "medium": "52rem", "wide": "72rem" }
|
|
81
|
+
},
|
|
82
|
+
"compositions": {
|
|
83
|
+
"mosaic": { "medium": "42rem", "wide": "72rem" }
|
|
76
84
|
}
|
|
77
85
|
},
|
|
78
86
|
"tokens": {
|
|
@@ -88,10 +96,12 @@
|
|
|
88
96
|
"--ly-sticky-position", "--ly-cover-min",
|
|
89
97
|
"--ly-shell-min", "--ly-scroll-max", "--ly-scroll-viewport-max", "--ly-switcher-threshold",
|
|
90
98
|
"--ly-sidebar-size",
|
|
91
|
-
"--ly-sidebar-content-min", "--ly-grid-columns", "--ly-grid-min", "--ly-
|
|
99
|
+
"--ly-sidebar-content-min", "--ly-grid-columns", "--ly-grid-min", "--ly-mosaic-medium-columns",
|
|
100
|
+
"--ly-mosaic-wide-columns", "--ly-split-min",
|
|
92
101
|
"--ly-pane-min", "--ly-pane-size", "--ly-media-min", "--ly-media-size", "--ly-reel-item-min",
|
|
93
102
|
"--ly-reel-item-max", "--ly-frame-ratio", "--ly-split-primary", "--ly-split-secondary",
|
|
94
|
-
"--ly-recipe-
|
|
103
|
+
"--ly-recipe-main-min", "--ly-recipe-rail", "--ly-recipe-aside", "--ly-gallery-min",
|
|
104
|
+
"--ly-card-grid-min",
|
|
95
105
|
"--ly-app-shell-medium-areas", "--ly-app-shell-medium-columns", "--ly-app-shell-wide-areas",
|
|
96
106
|
"--ly-app-shell-wide-columns", "--ly-dashboard-medium-areas", "--ly-dashboard-medium-columns",
|
|
97
107
|
"--ly-dashboard-wide-areas", "--ly-dashboard-wide-columns", "--ly-docs-wide-areas",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "layout-style-css",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "Dependency-free structural CSS for responsive wrappers, composition primitives, recipes, utilities, and layout personalities.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -59,10 +59,10 @@
|
|
|
59
59
|
"css-tree": "3.2.1",
|
|
60
60
|
"interactive-surface-css": "1.5.0",
|
|
61
61
|
"stylelint": "17.14.0",
|
|
62
|
-
"ui-style-kit-css": "2.
|
|
62
|
+
"ui-style-kit-css": "2.4.0"
|
|
63
63
|
},
|
|
64
64
|
"overrides": {
|
|
65
|
-
"fast-uri": "3.1.
|
|
65
|
+
"fast-uri": "3.1.7",
|
|
66
66
|
"js-yaml": "4.3.1",
|
|
67
67
|
"nanoid": "3.3.18",
|
|
68
68
|
"postcss": "8.5.23"
|