layout-style-css 3.0.2 → 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 +42 -0
- package/README.md +35 -14
- package/dist/core.css +1 -1
- package/dist/foundation.css +168 -24
- package/dist/layout-style-css.css +486 -159
- package/dist/layout-style-css.min.css +1 -1
- package/dist/personalities/bauhaus.css +4 -11
- package/dist/personalities/bento.css +1 -11
- package/dist/personalities/brutalism.css +3 -11
- package/dist/personalities/cyberpunk.css +2 -2
- package/dist/personalities/data-terminal.css +13 -0
- package/dist/personalities/editorial.css +14 -0
- package/dist/personalities/f-pattern.css +4 -4
- package/dist/personalities/industrial-hmi.css +11 -0
- package/dist/personalities/maximalist.css +2 -11
- package/dist/personalities/minimal-saas.css +1 -1
- package/dist/personalities/mondrian.css +2 -2
- package/dist/personalities/neumorphism.css +4 -13
- package/dist/personalities/retro-glass.css +11 -11
- package/dist/personalities/retrofuturism.css +2 -2
- package/dist/personalities/split-screen.css +6 -6
- package/dist/personalities/synthwave.css +2 -2
- package/dist/personalities/tactile.css +4 -13
- package/dist/personalities/technical-blueprint.css +13 -0
- package/dist/personalities/y2k.css +9 -9
- package/dist/personalities/z-pattern.css +4 -4
- package/dist/personalities.css +5 -1
- package/dist/primitives.css +122 -4
- package/dist/recipes.css +84 -1
- package/dist/utilities.css +14 -35
- package/dist/wrappers.css +5 -1
- package/docs/wiki/Demo-And-GitHub-Pages.md +4 -2
- package/docs/wiki/Getting-Started.md +11 -4
- package/docs/wiki/Home.md +7 -2
- package/docs/wiki/Installation-And-CDN.md +6 -5
- package/docs/wiki/Layout-Personality-Reference.md +67 -0
- package/docs/wiki/Layout-Primitives.md +16 -3
- package/docs/wiki/Layout-Recipes.md +3 -1
- package/docs/wiki/Layout-Styles.md +10 -23
- package/docs/wiki/Migrating-To-3.1.md +62 -0
- 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 +3 -0
- package/manifest.json +48 -28
- package/package.json +3 -3
- package/personalities.json +76 -14
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,48 @@
|
|
|
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
|
+
|
|
27
|
+
## [3.1.0] - 2026-08-25
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- Added compact, normal, and spacious density contexts that can be applied at the root or to a nested layout subtree.
|
|
32
|
+
- Added the `96rem` workspace Wrapper, all ten local gap utilities, explicit bounded and viewport-relative Scroll modifiers, and recipe-owned threshold metadata.
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- Made normal section spacing more conservative while retaining the former marketing rhythm through spacious density.
|
|
37
|
+
- Made gap utilities local to the element carrying the class and made base Scroll rely on its containing layout for height constraints.
|
|
38
|
+
|
|
39
|
+
### Migration
|
|
40
|
+
|
|
41
|
+
- Use spacious density for the former section rhythm, explicit inherited gap tokens for a shared spacing context, and `ly-scroll--viewport` for the former viewport-relative Scroll behavior.
|
|
42
|
+
|
|
43
|
+
### Tests
|
|
44
|
+
|
|
45
|
+
- Added density, workspace utilization, nested-gap isolation, Scroll-mode, public-token liveness, threshold metadata, cross-height, generated-output, package, and Pages contracts.
|
|
46
|
+
|
|
5
47
|
## [3.0.2] - 2026-08-25
|
|
6
48
|
|
|
7
49
|
### Fixed
|
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.0
|
|
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.0
|
|
16
|
+
npm install layout-style-css@3.2.0
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Most applications need one import:
|
|
@@ -44,6 +44,17 @@ Use `.ly-root` as the responsive boundary and keep the mobile DOM order authorit
|
|
|
44
44
|
|
|
45
45
|
`.ly-root`, wrappers, and recipe roots establish the named `ly-scope` inline-size container. A recipe works directly in the root; when it is nested in a wrapper, it responds to that nearest wrapper.
|
|
46
46
|
|
|
47
|
+
## Density Contexts
|
|
48
|
+
|
|
49
|
+
Normal density is the zero-configuration default. Use `data-ly-density="compact"`, `data-ly-density="normal"`, or `data-ly-density="spacious"` on `.ly-root` or any nested layout subtree. A nested density explicitly resets inherited gaps and section rhythm, so task controls can remain compact inside a spacious marketing page.
|
|
50
|
+
|
|
51
|
+
```html
|
|
52
|
+
<main class="ly-root" data-ly-density="normal">
|
|
53
|
+
<section data-ly-density="compact">Dense application controls</section>
|
|
54
|
+
<section data-ly-density="spacious">Campaign presentation</section>
|
|
55
|
+
</main>
|
|
56
|
+
```
|
|
57
|
+
|
|
47
58
|
## Wrappers
|
|
48
59
|
|
|
49
60
|
Wrappers are optional measure and nesting controls. Every wrapper uses logical properties, fluid container-relative gutters, safe-area compensation, and shrink-safe sizing.
|
|
@@ -54,6 +65,7 @@ Wrappers are optional measure and nesting controls. Every wrapper uses logical p
|
|
|
54
65
|
| `.ly-wrapper--compact` | `40rem` compact measure |
|
|
55
66
|
| `.ly-wrapper--prose` | `68ch` reading measure |
|
|
56
67
|
| `.ly-wrapper--content` | `72rem` content measure |
|
|
68
|
+
| `.ly-wrapper--workspace` | `96rem` task-oriented application measure |
|
|
57
69
|
| `.ly-wrapper--wide` | `112rem` wide measure |
|
|
58
70
|
| `.ly-wrapper--full` | Full available inline size |
|
|
59
71
|
| `.ly-wrapper--breakout` | Clamped content, feature, and full lanes |
|
|
@@ -75,11 +87,13 @@ All lanes clamp to the available inline size, including allocations from 320px t
|
|
|
75
87
|
The core includes:
|
|
76
88
|
|
|
77
89
|
- `.ly-stack`, `.ly-cluster`, `.ly-center`, and `.ly-cover`
|
|
78
|
-
- `.ly-switcher`, `.ly-sidebar`, `.ly-grid`, and `.ly-split`
|
|
90
|
+
- `.ly-switcher`, `.ly-sidebar`, `.ly-grid`, `.ly-mosaic`, and `.ly-split`
|
|
79
91
|
- `.ly-panes` and `.ly-media`
|
|
80
|
-
- `.ly-reel`, `.ly-frame`, and `.ly-scroll`
|
|
92
|
+
- `.ly-action-bar`, `.ly-reel`, `.ly-frame`, and `.ly-scroll`
|
|
93
|
+
|
|
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.
|
|
81
95
|
|
|
82
|
-
|
|
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.
|
|
83
97
|
|
|
84
98
|
## Automatic Recipe Engine
|
|
85
99
|
|
|
@@ -95,7 +109,9 @@ Recipes use attributes only. The stacked semantic source order is always safe, a
|
|
|
95
109
|
| `data-ly-recipe="gallery"` | Intrinsic tracks; no topology breakpoint |
|
|
96
110
|
| `data-ly-recipe="card-grid"` | Intrinsic tracks; no topology breakpoint |
|
|
97
111
|
|
|
98
|
-
|
|
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
|
+
|
|
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.
|
|
99
115
|
|
|
100
116
|
Canonical regions use `data-ly-area`, including `header`, `sidebar`, `nav`, `main`, `aside`, `footer`, `content`, `media`, `actions`, `primary`, and `secondary`.
|
|
101
117
|
|
|
@@ -139,12 +155,14 @@ Use the public height, gap, measure, ratio, rail, media, card, and grid-minimum
|
|
|
139
155
|
|
|
140
156
|
## Personalities
|
|
141
157
|
|
|
142
|
-
Set one of
|
|
158
|
+
Set one of twenty canonical `data-ly-layout` values on `.ly-root`:
|
|
143
159
|
|
|
144
|
-
`minimal-saas`, `bauhaus`, `tactile`, `
|
|
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`.
|
|
145
161
|
|
|
146
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.
|
|
147
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
|
+
|
|
148
166
|
## Public Exports
|
|
149
167
|
|
|
150
168
|
| Import | Contents |
|
|
@@ -157,12 +175,12 @@ Each personality is a token/topology profile consumed by the shared recipe engin
|
|
|
157
175
|
| `layout-style-css/primitives.css` | Intrinsic composition primitives |
|
|
158
176
|
| `layout-style-css/recipes.css` | Seven attribute-only recipes |
|
|
159
177
|
| `layout-style-css/utilities.css` | Small structural utility set |
|
|
160
|
-
| `layout-style-css/personalities.css` | All
|
|
178
|
+
| `layout-style-css/personalities.css` | All twenty profiles |
|
|
161
179
|
| `layout-style-css/personalities/minimal-saas.css` | One profile; substitute any public personality name |
|
|
162
180
|
| `layout-style-css/personalities.json` | Public layout-to-visual pairing recommendations |
|
|
163
181
|
| `layout-style-css/package.json` | Package metadata |
|
|
164
182
|
|
|
165
|
-
The cascade order is `ly.reset`, `ly.tokens`, `ly.wrappers`, `ly.primitives`, `ly.recipes`, `ly.utilities`, and `ly.
|
|
183
|
+
The cascade order is `ly.reset`, `ly.tokens`, `ly.wrappers`, `ly.primitives`, `ly.recipes`, `ly.utilities`, `ly.personalities`, and `ly.context`. Unlayered application CSS remains stronger than every library layer.
|
|
166
184
|
|
|
167
185
|
## Ecosystem Imports
|
|
168
186
|
|
|
@@ -177,18 +195,18 @@ import "layout-style-css";
|
|
|
177
195
|
|
|
178
196
|
This order lets UI Style Kit establish paint and theme roles, Interactive Surface add interaction states, and Layout apply structure.
|
|
179
197
|
|
|
180
|
-
`data-ly-layout`, `data-ui`, `data-theme`, and `data-mode` are independently selectable. See [Layout Styles](docs/wiki/Layout-Styles.md#visual-pairing-guidance) for the full recommendation matrix; pairings are never dependencies.
|
|
198
|
+
`data-ly-layout`, `data-ly-density`, `data-ui`, `data-theme`, and `data-mode` are independently selectable. See [Layout Styles](docs/wiki/Layout-Styles.md#visual-pairing-guidance) for the full recommendation matrix; pairings are never dependencies.
|
|
181
199
|
|
|
182
200
|
## CDN
|
|
183
201
|
|
|
184
202
|
```html
|
|
185
|
-
<link rel="stylesheet" href="https://unpkg.com/layout-style-css@3.0
|
|
186
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@3.0
|
|
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">
|
|
187
205
|
```
|
|
188
206
|
|
|
189
207
|
## Clean-Break Migration
|
|
190
208
|
|
|
191
|
-
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
|
|
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.
|
|
192
210
|
|
|
193
211
|
## Demo And Verification
|
|
194
212
|
|
|
@@ -213,7 +231,10 @@ npm run release:verify
|
|
|
213
231
|
- [Layout Primitives](docs/wiki/Layout-Primitives.md)
|
|
214
232
|
- [Layout Recipes](docs/wiki/Layout-Recipes.md)
|
|
215
233
|
- [Layout Styles](docs/wiki/Layout-Styles.md)
|
|
234
|
+
- [Layout Personality Reference](docs/wiki/Layout-Personality-Reference.md)
|
|
216
235
|
- [Migrating To 3.0](docs/wiki/Migrating-To-3.0.md)
|
|
236
|
+
- [Migrating To 3.1](docs/wiki/Migrating-To-3.1.md)
|
|
237
|
+
- [Migrating To 3.2](docs/wiki/Migrating-To-3.2.md)
|
|
217
238
|
- [Demo And GitHub Pages](docs/wiki/Demo-And-GitHub-Pages.md)
|
|
218
239
|
- [Release And Publishing](docs/wiki/Release-And-Publishing.md)
|
|
219
240
|
- [Security And Support](docs/wiki/Security-And-Support.md)
|
package/dist/core.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities;
|
|
1
|
+
@layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities, ly.context;
|
|
2
2
|
|
|
3
3
|
@import url("./foundation.css");
|
|
4
4
|
@import url("./wrappers.css");
|
package/dist/foundation.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities;
|
|
1
|
+
@layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities, ly.context;
|
|
2
2
|
|
|
3
3
|
/*
|
|
4
4
|
Foundation owns only shared spatial tokens, containment, and defensive
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
--ly-wrapper-compact: 40rem;
|
|
22
22
|
--ly-wrapper-prose: 68ch;
|
|
23
23
|
--ly-wrapper-content: 72rem;
|
|
24
|
+
--ly-wrapper-workspace: 96rem;
|
|
24
25
|
--ly-wrapper-wide: 112rem;
|
|
25
26
|
--ly-page-padding-inline: clamp(1rem, 3vw, 3rem);
|
|
26
27
|
--ly-safe-area-inline: max(
|
|
@@ -36,19 +37,22 @@
|
|
|
36
37
|
--ly-grid-gap: var(--ly-gap);
|
|
37
38
|
--ly-stack-gap: var(--ly-space-4);
|
|
38
39
|
--ly-cluster-gap: var(--ly-space-3);
|
|
39
|
-
--ly-section-padding-block: clamp(
|
|
40
|
-
--ly-section-padding-block-compact: clamp(
|
|
40
|
+
--ly-section-padding-block: clamp(2rem, 4vh, 4rem);
|
|
41
|
+
--ly-section-padding-block-compact: clamp(1rem, 2.5vh, 2rem);
|
|
41
42
|
--ly-header-height: 4.5rem;
|
|
42
43
|
--ly-sticky-position: sticky;
|
|
43
44
|
--ly-cover-min: 100vh;
|
|
44
45
|
--ly-shell-min: 100vh;
|
|
45
|
-
--ly-scroll-max:
|
|
46
|
+
--ly-scroll-max: 50rem;
|
|
47
|
+
--ly-scroll-viewport-max: min(70vh, 50rem);
|
|
46
48
|
|
|
47
49
|
--ly-switcher-threshold: 42rem;
|
|
48
50
|
--ly-sidebar-size: 18rem;
|
|
49
51
|
--ly-sidebar-content-min: 50%;
|
|
50
52
|
--ly-grid-columns: 12;
|
|
51
53
|
--ly-grid-min: 16rem;
|
|
54
|
+
--ly-mosaic-medium-columns: 6;
|
|
55
|
+
--ly-mosaic-wide-columns: 12;
|
|
52
56
|
--ly-split-min: 20rem;
|
|
53
57
|
--ly-pane-min: 18rem;
|
|
54
58
|
--ly-pane-size: 22rem;
|
|
@@ -60,6 +64,7 @@
|
|
|
60
64
|
--ly-split-primary: 1fr;
|
|
61
65
|
--ly-split-secondary: 1fr;
|
|
62
66
|
|
|
67
|
+
--ly-recipe-main-min: 20rem;
|
|
63
68
|
--ly-recipe-rail: 18rem;
|
|
64
69
|
--ly-recipe-aside: 22rem;
|
|
65
70
|
--ly-gallery-min: 12rem;
|
|
@@ -74,7 +79,7 @@
|
|
|
74
79
|
--ly-app-shell-medium-rows: auto auto minmax(0, 1fr) auto;
|
|
75
80
|
--ly-app-shell-medium-columns:
|
|
76
81
|
minmax(min(100%, var(--ly-recipe-rail)), auto)
|
|
77
|
-
minmax(
|
|
82
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr);
|
|
78
83
|
--ly-app-shell-wide-areas:
|
|
79
84
|
"sidebar header header"
|
|
80
85
|
"sidebar main aside"
|
|
@@ -82,7 +87,7 @@
|
|
|
82
87
|
--ly-app-shell-wide-rows: auto minmax(0, 1fr) auto;
|
|
83
88
|
--ly-app-shell-wide-columns:
|
|
84
89
|
minmax(min(100%, var(--ly-recipe-rail)), auto)
|
|
85
|
-
minmax(
|
|
90
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr)
|
|
86
91
|
minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
|
|
87
92
|
|
|
88
93
|
--ly-dashboard-medium-areas:
|
|
@@ -91,7 +96,7 @@
|
|
|
91
96
|
"main aside"
|
|
92
97
|
"footer footer";
|
|
93
98
|
--ly-dashboard-medium-columns:
|
|
94
|
-
minmax(
|
|
99
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr)
|
|
95
100
|
minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
|
|
96
101
|
--ly-dashboard-wide-areas:
|
|
97
102
|
"nav header header"
|
|
@@ -99,7 +104,7 @@
|
|
|
99
104
|
"nav footer footer";
|
|
100
105
|
--ly-dashboard-wide-columns:
|
|
101
106
|
minmax(min(100%, var(--ly-recipe-rail)), auto)
|
|
102
|
-
minmax(
|
|
107
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr)
|
|
103
108
|
minmax(min(100%, var(--ly-recipe-aside)), 0.35fr);
|
|
104
109
|
|
|
105
110
|
--ly-docs-wide-areas:
|
|
@@ -109,19 +114,19 @@
|
|
|
109
114
|
"footer footer";
|
|
110
115
|
--ly-docs-wide-columns:
|
|
111
116
|
minmax(min(100%, var(--ly-recipe-rail)), auto)
|
|
112
|
-
minmax(
|
|
117
|
+
minmax(min(100%, var(--ly-recipe-main-min)), 1fr);
|
|
113
118
|
--ly-list-detail-wide-areas:
|
|
114
119
|
"primary secondary"
|
|
115
120
|
"actions actions";
|
|
116
121
|
--ly-list-detail-wide-columns:
|
|
117
|
-
minmax(min(100%, var(--ly-pane-size)), 0.7fr)
|
|
118
|
-
minmax(
|
|
122
|
+
minmax(min(100%, max(var(--ly-pane-min), var(--ly-pane-size))), 0.7fr)
|
|
123
|
+
minmax(min(100%, var(--ly-pane-min)), 1fr);
|
|
119
124
|
--ly-split-hero-wide-areas:
|
|
120
125
|
"content media"
|
|
121
126
|
"actions media";
|
|
122
127
|
--ly-split-hero-wide-columns:
|
|
123
|
-
minmax(
|
|
124
|
-
minmax(
|
|
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));
|
|
125
130
|
|
|
126
131
|
container-name: ly-scope;
|
|
127
132
|
container-type: inline-size;
|
|
@@ -141,7 +146,7 @@
|
|
|
141
146
|
:where(.ly-root) {
|
|
142
147
|
--ly-cover-min: 100dvh;
|
|
143
148
|
--ly-shell-min: 100dvh;
|
|
144
|
-
--ly-scroll-max: min(70dvh, 50rem);
|
|
149
|
+
--ly-scroll-viewport-max: min(70dvh, 50rem);
|
|
145
150
|
}
|
|
146
151
|
}
|
|
147
152
|
}
|
|
@@ -172,19 +177,19 @@
|
|
|
172
177
|
--ly-grid-gap: var(--ly-gap);
|
|
173
178
|
--ly-stack-gap: min(var(--ly-space-4), 3vh);
|
|
174
179
|
--ly-cluster-gap: min(var(--ly-space-3), 2vh);
|
|
175
|
-
--ly-section-padding-block: clamp(1.
|
|
176
|
-
--ly-section-padding-block-compact: clamp(0.75rem,
|
|
180
|
+
--ly-section-padding-block: clamp(1.25rem, 4vh, 2rem);
|
|
181
|
+
--ly-section-padding-block-compact: clamp(0.75rem, 2vh, 1.25rem);
|
|
177
182
|
--ly-header-height: 3.5rem;
|
|
178
|
-
--ly-scroll-max: min(62vh, 34rem);
|
|
183
|
+
--ly-scroll-viewport-max: min(62vh, 34rem);
|
|
179
184
|
}
|
|
180
185
|
|
|
181
186
|
@supports (height: 100dvh) {
|
|
182
187
|
:where(.ly-root) {
|
|
183
188
|
--ly-stack-gap: min(var(--ly-space-4), 3dvh);
|
|
184
189
|
--ly-cluster-gap: min(var(--ly-space-3), 2dvh);
|
|
185
|
-
--ly-section-padding-block: clamp(1.
|
|
186
|
-
--ly-section-padding-block-compact: clamp(0.75rem,
|
|
187
|
-
--ly-scroll-max: min(62dvh, 34rem);
|
|
190
|
+
--ly-section-padding-block: clamp(1.25rem, 4dvh, 2rem);
|
|
191
|
+
--ly-section-padding-block-compact: clamp(0.75rem, 2dvh, 1.25rem);
|
|
192
|
+
--ly-scroll-viewport-max: min(62dvh, 34rem);
|
|
188
193
|
}
|
|
189
194
|
}
|
|
190
195
|
}
|
|
@@ -194,15 +199,154 @@
|
|
|
194
199
|
--ly-cover-min: auto;
|
|
195
200
|
--ly-shell-min: auto;
|
|
196
201
|
--ly-sticky-position: static;
|
|
197
|
-
--ly-section-padding-block: var(--ly-space-
|
|
198
|
-
--ly-section-padding-block-compact: var(--ly-space-
|
|
199
|
-
--ly-scroll-max: max(12rem, calc(100vh - 8rem));
|
|
202
|
+
--ly-section-padding-block: var(--ly-space-4);
|
|
203
|
+
--ly-section-padding-block-compact: var(--ly-space-2);
|
|
204
|
+
--ly-scroll-viewport-max: max(12rem, calc(100vh - 8rem));
|
|
200
205
|
}
|
|
201
206
|
|
|
202
207
|
@supports (height: 100dvh) {
|
|
203
208
|
:where(.ly-root) {
|
|
204
|
-
--ly-scroll-max: max(12rem, calc(100dvh - 8rem));
|
|
209
|
+
--ly-scroll-viewport-max: max(12rem, calc(100dvh - 8rem));
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
@layer ly.context {
|
|
216
|
+
:where(
|
|
217
|
+
.ly-root[data-ly-density="compact"],
|
|
218
|
+
.ly-root [data-ly-density="compact"]
|
|
219
|
+
) {
|
|
220
|
+
--ly-gap: var(--ly-space-3);
|
|
221
|
+
--ly-grid-gap: var(--ly-space-3);
|
|
222
|
+
--ly-stack-gap: var(--ly-space-3);
|
|
223
|
+
--ly-cluster-gap: var(--ly-space-2);
|
|
224
|
+
--ly-section-padding-block: clamp(1rem, 2.5vh, 2rem);
|
|
225
|
+
--ly-section-padding-block-compact: clamp(0.5rem, 1.5vh, 1rem);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
:where(
|
|
229
|
+
.ly-root[data-ly-density="normal"],
|
|
230
|
+
.ly-root [data-ly-density="normal"]
|
|
231
|
+
) {
|
|
232
|
+
--ly-gap: var(--ly-profile-gap);
|
|
233
|
+
--ly-grid-gap: var(--ly-gap);
|
|
234
|
+
--ly-stack-gap: var(--ly-space-4);
|
|
235
|
+
--ly-cluster-gap: var(--ly-space-3);
|
|
236
|
+
--ly-section-padding-block: clamp(2rem, 4vh, 4rem);
|
|
237
|
+
--ly-section-padding-block-compact: clamp(1rem, 2.5vh, 2rem);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
:where(
|
|
241
|
+
.ly-root[data-ly-density="spacious"],
|
|
242
|
+
.ly-root [data-ly-density="spacious"]
|
|
243
|
+
) {
|
|
244
|
+
--ly-gap: max(var(--ly-profile-gap), var(--ly-space-6));
|
|
245
|
+
--ly-grid-gap: var(--ly-gap);
|
|
246
|
+
--ly-stack-gap: var(--ly-space-5);
|
|
247
|
+
--ly-cluster-gap: var(--ly-space-4);
|
|
248
|
+
--ly-section-padding-block: clamp(3rem, 7vh, 6rem);
|
|
249
|
+
--ly-section-padding-block-compact: clamp(1.5rem, 3.5vh, 3rem);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
@media (max-height: 44rem) {
|
|
253
|
+
:where(
|
|
254
|
+
.ly-root[data-ly-density="compact"],
|
|
255
|
+
.ly-root [data-ly-density="compact"]
|
|
256
|
+
) {
|
|
257
|
+
--ly-gap: var(--ly-space-3);
|
|
258
|
+
--ly-grid-gap: var(--ly-space-3);
|
|
259
|
+
--ly-stack-gap: var(--ly-space-3);
|
|
260
|
+
--ly-cluster-gap: var(--ly-space-2);
|
|
261
|
+
--ly-section-padding-block: clamp(0.75rem, 2vh, 1.25rem);
|
|
262
|
+
--ly-section-padding-block-compact: var(--ly-space-2);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
:where(
|
|
266
|
+
.ly-root[data-ly-density="normal"],
|
|
267
|
+
.ly-root [data-ly-density="normal"]
|
|
268
|
+
) {
|
|
269
|
+
--ly-gap: min(var(--ly-profile-gap), var(--ly-space-4));
|
|
270
|
+
--ly-grid-gap: var(--ly-gap);
|
|
271
|
+
--ly-stack-gap: var(--ly-space-4);
|
|
272
|
+
--ly-cluster-gap: var(--ly-space-3);
|
|
273
|
+
--ly-section-padding-block: clamp(1.25rem, 4vh, 2rem);
|
|
274
|
+
--ly-section-padding-block-compact: clamp(0.75rem, 2vh, 1.25rem);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
:where(
|
|
278
|
+
.ly-root[data-ly-density="spacious"],
|
|
279
|
+
.ly-root [data-ly-density="spacious"]
|
|
280
|
+
) {
|
|
281
|
+
--ly-gap: var(--ly-space-5);
|
|
282
|
+
--ly-grid-gap: var(--ly-space-5);
|
|
283
|
+
--ly-stack-gap: var(--ly-space-4);
|
|
284
|
+
--ly-cluster-gap: var(--ly-space-3);
|
|
285
|
+
--ly-section-padding-block: clamp(1.5rem, 6vh, 3rem);
|
|
286
|
+
--ly-section-padding-block-compact: clamp(0.75rem, 3vh, 1.25rem);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
@supports (height: 100dvh) {
|
|
290
|
+
:where(
|
|
291
|
+
.ly-root[data-ly-density="compact"],
|
|
292
|
+
.ly-root [data-ly-density="compact"]
|
|
293
|
+
) {
|
|
294
|
+
--ly-section-padding-block: clamp(0.75rem, 2dvh, 1.25rem);
|
|
205
295
|
}
|
|
296
|
+
|
|
297
|
+
:where(
|
|
298
|
+
.ly-root[data-ly-density="normal"],
|
|
299
|
+
.ly-root [data-ly-density="normal"]
|
|
300
|
+
) {
|
|
301
|
+
--ly-section-padding-block: clamp(1.25rem, 4dvh, 2rem);
|
|
302
|
+
--ly-section-padding-block-compact: clamp(0.75rem, 2dvh, 1.25rem);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
:where(
|
|
306
|
+
.ly-root[data-ly-density="spacious"],
|
|
307
|
+
.ly-root [data-ly-density="spacious"]
|
|
308
|
+
) {
|
|
309
|
+
--ly-section-padding-block: clamp(1.5rem, 6dvh, 3rem);
|
|
310
|
+
--ly-section-padding-block-compact: clamp(0.75rem, 3dvh, 1.25rem);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
@media (max-height: 30rem) {
|
|
316
|
+
:where(
|
|
317
|
+
.ly-root[data-ly-density="compact"],
|
|
318
|
+
.ly-root [data-ly-density="compact"]
|
|
319
|
+
) {
|
|
320
|
+
--ly-gap: var(--ly-space-2);
|
|
321
|
+
--ly-grid-gap: var(--ly-space-2);
|
|
322
|
+
--ly-stack-gap: var(--ly-space-2);
|
|
323
|
+
--ly-cluster-gap: var(--ly-space-1);
|
|
324
|
+
--ly-section-padding-block: var(--ly-space-3);
|
|
325
|
+
--ly-section-padding-block-compact: var(--ly-space-2);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
:where(
|
|
329
|
+
.ly-root[data-ly-density="normal"],
|
|
330
|
+
.ly-root [data-ly-density="normal"]
|
|
331
|
+
) {
|
|
332
|
+
--ly-gap: var(--ly-space-3);
|
|
333
|
+
--ly-grid-gap: var(--ly-space-3);
|
|
334
|
+
--ly-stack-gap: var(--ly-space-3);
|
|
335
|
+
--ly-cluster-gap: var(--ly-space-2);
|
|
336
|
+
--ly-section-padding-block: var(--ly-space-4);
|
|
337
|
+
--ly-section-padding-block-compact: var(--ly-space-2);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
:where(
|
|
341
|
+
.ly-root[data-ly-density="spacious"],
|
|
342
|
+
.ly-root [data-ly-density="spacious"]
|
|
343
|
+
) {
|
|
344
|
+
--ly-gap: var(--ly-space-4);
|
|
345
|
+
--ly-grid-gap: var(--ly-space-4);
|
|
346
|
+
--ly-stack-gap: var(--ly-space-4);
|
|
347
|
+
--ly-cluster-gap: var(--ly-space-3);
|
|
348
|
+
--ly-section-padding-block: var(--ly-space-5);
|
|
349
|
+
--ly-section-padding-block-compact: var(--ly-space-3);
|
|
206
350
|
}
|
|
207
351
|
}
|
|
208
352
|
}
|