layout-style-css 1.1.2 → 2.1.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 +81 -44
- package/CONTRIBUTING.md +55 -50
- package/LICENSE +21 -21
- package/README.md +236 -636
- package/SECURITY.md +50 -45
- package/demo/assets/apple-touch-icon.svg +7 -7
- package/demo/assets/favicon.svg +7 -7
- package/demo/browserconfig.xml +9 -9
- package/demo/demo.css +523 -0
- package/demo/demo.js +605 -0
- package/demo/index.html +325 -976
- package/demo/robots.txt +4 -4
- package/demo/site.webmanifest +23 -23
- package/demo/sitemap.xml +9 -9
- package/dist/core.css +6 -0
- package/{styles/layout-ui-style-kit-bridge.css → dist/integrations/ui-style-kit.css} +175 -170
- package/dist/layout-style-css.css +1473 -1903
- package/dist/layout-style-css.min.css +1 -1
- package/dist/legacy.css +787 -0
- package/dist/personalities/bauhaus.css +46 -0
- package/dist/personalities/bento.css +43 -0
- package/dist/personalities/brutalism.css +36 -0
- package/dist/personalities/cyberpunk.css +36 -0
- package/dist/personalities/f-pattern.css +48 -0
- package/dist/personalities/maximalist.css +51 -0
- package/dist/personalities/minimal-saas.css +37 -0
- package/dist/personalities/mondrian.css +44 -0
- package/dist/personalities/neumorphism.css +46 -0
- package/dist/personalities/retro-glass.css +44 -0
- package/dist/personalities/retrofuturism.css +36 -0
- package/dist/personalities/split-screen.css +41 -0
- package/dist/personalities/synthwave.css +48 -0
- package/dist/personalities/tactile.css +39 -0
- package/dist/personalities/y2k.css +36 -0
- package/dist/personalities/z-pattern.css +49 -0
- package/dist/personalities.css +18 -0
- package/dist/primitives.css +219 -0
- package/dist/recipes.css +270 -0
- package/dist/utilities.css +162 -0
- package/dist/wrappers.css +174 -0
- package/docs/wiki/Contributing.md +36 -30
- package/docs/wiki/Demo-And-GitHub-Pages.md +53 -39
- package/docs/wiki/Getting-Started.md +51 -68
- package/docs/wiki/Home.md +33 -48
- package/docs/wiki/Installation-And-CDN.md +72 -58
- package/docs/wiki/Layout-Primitives.md +48 -57
- package/docs/wiki/Layout-Recipes.md +49 -80
- package/docs/wiki/Layout-Styles.md +33 -43
- package/docs/wiki/Migrating-To-2.0.md +186 -0
- package/docs/wiki/Release-And-Publishing.md +77 -69
- package/docs/wiki/Security-And-Support.md +36 -34
- package/docs/wiki/UI-Style-Kit-Compatibility.md +49 -54
- package/docs/wiki/_Sidebar.md +15 -14
- package/package.json +98 -107
- package/styles/core.css +6 -0
- package/{dist/layout-ui-style-kit-bridge.css → styles/integrations/ui-style-kit.css} +175 -170
- package/styles/legacy.css +173 -0
- package/styles/personalities/bauhaus.css +46 -0
- package/styles/personalities/bento.css +43 -0
- package/styles/personalities/brutalism.css +36 -0
- package/styles/personalities/cyberpunk.css +36 -0
- package/styles/personalities/f-pattern.css +48 -0
- package/styles/personalities/maximalist.css +51 -0
- package/styles/personalities/minimal-saas.css +37 -0
- package/styles/personalities/mondrian.css +44 -0
- package/styles/personalities/neumorphism.css +46 -0
- package/styles/personalities/retro-glass.css +44 -0
- package/styles/personalities/retrofuturism.css +36 -0
- package/styles/personalities/split-screen.css +41 -0
- package/styles/personalities/synthwave.css +48 -0
- package/styles/personalities/tactile.css +39 -0
- package/styles/personalities/y2k.css +36 -0
- package/styles/personalities/z-pattern.css +49 -0
- package/styles/personalities.css +18 -0
- package/styles/primitives.css +219 -0
- package/styles/recipes.css +270 -0
- package/styles/utilities.css +162 -0
- package/styles/wrappers.css +174 -0
- package/dist/layout-all-with-ui-kit-and-interactive-surface.css +0 -3
- package/dist/layout-all-with-ui-kit.css +0 -2
- package/dist/layout-all.css +0 -18
- package/dist/layout-base.css +0 -539
- package/dist/layout-style-bauhaus.css +0 -70
- package/dist/layout-style-bento.css +0 -76
- package/dist/layout-style-brutalism.css +0 -70
- package/dist/layout-style-cyberpunk.css +0 -70
- package/dist/layout-style-f-pattern.css +0 -76
- package/dist/layout-style-maximalist.css +0 -93
- package/dist/layout-style-minimal-saas.css +0 -67
- package/dist/layout-style-mondrian.css +0 -77
- package/dist/layout-style-neumorphism.css +0 -72
- package/dist/layout-style-retro-glass.css +0 -82
- package/dist/layout-style-retrofuturism.css +0 -71
- package/dist/layout-style-split-screen.css +0 -62
- package/dist/layout-style-synthwave.css +0 -88
- package/dist/layout-style-tactile.css +0 -70
- package/dist/layout-style-y2k.css +0 -72
- package/dist/layout-style-z-pattern.css +0 -76
- package/styles/layout-base.css +0 -539
- package/styles/layout-style-bauhaus.css +0 -70
- package/styles/layout-style-bento.css +0 -76
- package/styles/layout-style-brutalism.css +0 -70
- package/styles/layout-style-cyberpunk.css +0 -70
- package/styles/layout-style-f-pattern.css +0 -76
- package/styles/layout-style-maximalist.css +0 -93
- package/styles/layout-style-minimal-saas.css +0 -67
- package/styles/layout-style-mondrian.css +0 -77
- package/styles/layout-style-neumorphism.css +0 -72
- package/styles/layout-style-retro-glass.css +0 -82
- package/styles/layout-style-retrofuturism.css +0 -71
- package/styles/layout-style-split-screen.css +0 -62
- package/styles/layout-style-synthwave.css +0 -88
- package/styles/layout-style-tactile.css +0 -70
- package/styles/layout-style-y2k.css +0 -72
- package/styles/layout-style-z-pattern.css +0 -76
package/docs/wiki/Home.md
CHANGED
|
@@ -1,48 +1,33 @@
|
|
|
1
|
-
# Layout Style CSS Wiki
|
|
2
|
-
|
|
3
|
-
Version
|
|
4
|
-
|
|
5
|
-
## Start Here
|
|
6
|
-
|
|
7
|
-
| Page | Purpose |
|
|
8
|
-
| --- | --- |
|
|
9
|
-
| [Getting Started](Getting-Started.md) | First
|
|
10
|
-
| [Installation And CDN](Installation-And-CDN.md) |
|
|
11
|
-
| [Layout Primitives](Layout-Primitives.md) |
|
|
12
|
-
| [Layout Recipes](Layout-Recipes.md) |
|
|
13
|
-
| [Layout Styles](Layout-Styles.md) |
|
|
14
|
-
| [UI Style Kit Compatibility](UI-Style-Kit-Compatibility.md) |
|
|
15
|
-
| [
|
|
16
|
-
| [
|
|
17
|
-
| [
|
|
18
|
-
| [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
import "layout-style-css/all-with-ui-kit-and-interactive-surface.css";
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Wiki Source
|
|
38
|
-
|
|
39
|
-
This `docs/wiki` directory is the versioned source for the GitHub Wiki. Keeping it in the main repository makes docs reviewable with code changes and keeps npm package documentation aligned with the release.
|
|
40
|
-
|
|
41
|
-
When GitHub Wiki is enabled, mirror these files into the wiki repository:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
git clone https://github.com/Foscat/Layout-Style-CSS.wiki.git layout-style-css-wiki
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
Copy the Markdown files from `docs/wiki/`, commit, and push from the wiki clone.
|
|
48
|
-
|
|
1
|
+
# Layout Style CSS Wiki
|
|
2
|
+
|
|
3
|
+
Version 2.1.0 is a container-first, dependency-free layout library. It ships semantic wrappers, composition primitives, seven recipes, sixteen layout personalities, focused exports, a v2-only compatibility bundle, and refreshed ecosystem fixtures for UI Style Kit CSS 2.1 and Interactive Surface CSS 1.5.
|
|
4
|
+
|
|
5
|
+
## Start Here
|
|
6
|
+
|
|
7
|
+
| Page | Purpose |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| [Getting Started](Getting-Started.md) | First wrapper, recipe, and personality. |
|
|
10
|
+
| [Installation And CDN](Installation-And-CDN.md) | Exact package exports and ecosystem import order. |
|
|
11
|
+
| [Layout Primitives](Layout-Primitives.md) | Wrappers and composition primitives. |
|
|
12
|
+
| [Layout Recipes](Layout-Recipes.md) | Named recipes, areas, and mobile ordering. |
|
|
13
|
+
| [Layout Styles](Layout-Styles.md) | Sixteen spatial personalities. |
|
|
14
|
+
| [UI Style Kit Compatibility](UI-Style-Kit-Compatibility.md) | Structural bridge and ownership boundaries. |
|
|
15
|
+
| [Migrating To 2.0](Migrating-To-2.0.md) | Complete 1.x selector and export mapping. |
|
|
16
|
+
| [Demo And GitHub Pages](Demo-And-GitHub-Pages.md) | Interactive lab, browser matrix, and Pages artifact. |
|
|
17
|
+
| [Release And Publishing](Release-And-Publishing.md) | Release verification and separately approved publish steps. |
|
|
18
|
+
| [Security And Support](Security-And-Support.md) | Supported versions and reporting. |
|
|
19
|
+
| [Contributing](Contributing.md) | Source, generated output, testing, and review rules. |
|
|
20
|
+
|
|
21
|
+
## Ownership
|
|
22
|
+
|
|
23
|
+
Layout Style CSS owns spatial behavior: containment, wrappers, flow, grids, areas, spans, sizing, and responsive arrangement. UI Style Kit owns visual paint. Interactive Surface owns interaction-state styling.
|
|
24
|
+
|
|
25
|
+
The package has no runtime or peer dependencies. `ui-style-kit-css@2.1.0` and `interactive-surface-css@1.5.0` are released registry fixtures used to prove optional integration.
|
|
26
|
+
|
|
27
|
+
## Supported Baseline
|
|
28
|
+
|
|
29
|
+
- Node.js 20 or newer for package development
|
|
30
|
+
- Current evergreen Chromium, Firefox, and WebKit
|
|
31
|
+
- Mobile-first DOM order with core thresholds at `48rem` and `64rem`, plus tested personality-specific overrides
|
|
32
|
+
|
|
33
|
+
The deprecated UI structural bridge remains available for existing UI-prefixed layout aliases, but canonical 2.1 examples use UI Style Kit visual CSS, the UI token bridge, Interactive Surface `state-core.css`, and Layout core.
|
|
@@ -1,58 +1,72 @@
|
|
|
1
|
-
# Installation And CDN
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## npm
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install layout-style-css
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
|
20
|
-
|
|
|
21
|
-
| `layout-style-css` |
|
|
22
|
-
| `layout-style-css/
|
|
23
|
-
| `layout-style-css/
|
|
24
|
-
| `layout-style-css/
|
|
25
|
-
| `layout-style-css/
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
##
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
# Installation And CDN
|
|
2
|
+
|
|
3
|
+
Layout Style CSS 2.0 is dependency-free and has no peer dependency contract. Node.js 20 or newer is required only for package development and verification.
|
|
4
|
+
|
|
5
|
+
## npm
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install layout-style-css@2.1.0
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Focused Exports
|
|
12
|
+
|
|
13
|
+
| Import | Purpose |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| `layout-style-css` | Full v2 core and all personalities. |
|
|
16
|
+
| `layout-style-css/min.css` | Minified full bundle. |
|
|
17
|
+
| `layout-style-css/core.css` | Wrappers, primitives, recipes, and utilities. |
|
|
18
|
+
| `layout-style-css/wrappers.css` | Wrapper tokens and containment. |
|
|
19
|
+
| `layout-style-css/primitives.css` | Composition primitives. |
|
|
20
|
+
| `layout-style-css/recipes.css` | Seven recipe roots and named areas. |
|
|
21
|
+
| `layout-style-css/utilities.css` | Structural utility layer. |
|
|
22
|
+
| `layout-style-css/personalities.css` | All personalities. |
|
|
23
|
+
| `layout-style-css/personalities/minimal-saas.css` | One personality; replace the name as needed. |
|
|
24
|
+
| `layout-style-css/integrations/ui-style-kit.css` | Import-free structural UI bridge. |
|
|
25
|
+
| `layout-style-css/legacy.css` | Full v2 bundle with v1 aliases. |
|
|
26
|
+
|
|
27
|
+
The old `all-with-ui-kit*`, `all.css`, `base.css`, `bridge.css`, and root personality exports do not exist in v2.
|
|
28
|
+
|
|
29
|
+
## Import Modes
|
|
30
|
+
|
|
31
|
+
Standalone:
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
import "layout-style-css";
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Layout plus UI Style Kit:
|
|
38
|
+
|
|
39
|
+
```js
|
|
40
|
+
import "ui-style-kit-css/visual.css";
|
|
41
|
+
import "layout-style-css";
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
All three libraries, in required order:
|
|
45
|
+
|
|
46
|
+
```js
|
|
47
|
+
import "ui-style-kit-css/visual.css";
|
|
48
|
+
import "ui-style-kit-css/interactive-surface-theme.css";
|
|
49
|
+
import "interactive-surface-css/state-core.css";
|
|
50
|
+
import "layout-style-css";
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
The first import block is deprecated compatibility for legacy UI-prefixed structural aliases. Canonical 2.1 imports use the released `ui-style-kit-css@2.1.0` visual CSS, `ui-style-kit-css/interactive-surface-theme.css`, released `interactive-surface-css@1.5.0` state core, and Layout core.
|
|
54
|
+
|
|
55
|
+
## CDN
|
|
56
|
+
|
|
57
|
+
Layout only:
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<link rel="stylesheet" href="https://unpkg.com/layout-style-css@2.1.0/dist/layout-style-css.min.css">
|
|
61
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@2.1.0/dist/layout-style-css.min.css">
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
For optional companions, preserve the same order as the package imports: UI Style Kit visual CSS, UI Style Kit `interactive-surface-theme.css`, Interactive Surface 1.5.0 `state-core.css`, then Layout core. Load `layout-style-css/integrations/ui-style-kit.css` only for deprecated structural aliases.
|
|
65
|
+
|
|
66
|
+
## Browser Baseline
|
|
67
|
+
|
|
68
|
+
Current evergreen Chromium, Firefox, and WebKit are supported. Core container-driven enhancements activate at `48rem` and `64rem`; personalities may use personality-specific thresholds. Unsupported container-query environments retain the mobile source-order fallback.
|
|
69
|
+
|
|
70
|
+
## Source Ownership
|
|
71
|
+
|
|
72
|
+
`styles/` contains authored CSS. `dist/` is generated. Consumers should use package exports or CDN dist files, never internal source paths.
|
|
@@ -1,57 +1,48 @@
|
|
|
1
|
-
# Layout Primitives
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
|
18
|
-
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
| `.ly-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
| `.ly-
|
|
33
|
-
| `.ly-
|
|
34
|
-
| `.ly-
|
|
35
|
-
| `.ly-
|
|
36
|
-
| `.ly-
|
|
37
|
-
| `.ly-
|
|
38
|
-
| `.ly-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
| `.ly-row`, `.ly-col` | Flex row and column utilities. |
|
|
50
|
-
| `.ly-surface` | Structural surface hook with no visual styling. |
|
|
51
|
-
| `.ly-frame` | Aspect-ratio media or content frame. |
|
|
52
|
-
| `.ly-scroll-area` | Bounded scroll area. |
|
|
53
|
-
|
|
54
|
-
## Utility Rules
|
|
55
|
-
|
|
56
|
-
Utilities set layout variables, spacing, flow, visibility, overflow, or ratios. They must not introduce color, typography, borders, shadows, theme modes, or component paint.
|
|
57
|
-
|
|
1
|
+
# Layout Primitives
|
|
2
|
+
|
|
3
|
+
V2 primitives are structural, mobile-first, and safe to use without a visual design system.
|
|
4
|
+
|
|
5
|
+
## Semantic Wrappers
|
|
6
|
+
|
|
7
|
+
`.ly-wrapper` defaults to the `72rem` content measure and establishes an inline-size container. Fluid logical gutters include safe-area insets.
|
|
8
|
+
|
|
9
|
+
Layout personalities can provide a distinct measure for the plain `.ly-wrapper`. Explicit semantic wrapper variants always keep the measures below, so changing the demo wrapper control produces a real structural change under every personality.
|
|
10
|
+
|
|
11
|
+
| Selector | Measure or behavior |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| `.ly-wrapper--compact` | `40rem` |
|
|
14
|
+
| `.ly-wrapper--prose` | `68ch` |
|
|
15
|
+
| `.ly-wrapper--content` | `72rem`, also the default |
|
|
16
|
+
| `.ly-wrapper--wide` | `112rem` |
|
|
17
|
+
| `.ly-wrapper--full` | Full available inline size |
|
|
18
|
+
| `.ly-wrapper--breakout` | Content, feature, and full lanes |
|
|
19
|
+
|
|
20
|
+
Breakout children use `.ly-lane--content`, `.ly-lane--feature`, `.ly-lane--full`, or equivalent `data-ly-lane` attributes.
|
|
21
|
+
|
|
22
|
+
## Composition
|
|
23
|
+
|
|
24
|
+
| Primitive | Contract |
|
|
25
|
+
| --- | --- |
|
|
26
|
+
| `.ly-stack` | Vertical flow with a shared stack gap. |
|
|
27
|
+
| `.ly-cluster` | Wrapping inline group. |
|
|
28
|
+
| `.ly-center` | Centered element with a bounded measure. |
|
|
29
|
+
| `.ly-cover` | Full-height vertical composition with an optional centered child. |
|
|
30
|
+
| `.ly-switcher` | Wrapping equal items based on available inline size. |
|
|
31
|
+
| `.ly-sidebar` | Side and content regions that wrap safely. |
|
|
32
|
+
| `.ly-grid` | Explicit structural grid; `.ly-grid--auto` uses auto-fit. |
|
|
33
|
+
| `.ly-split` | One column, then two columns from `48rem`. |
|
|
34
|
+
| `.ly-panes` | One column with two- and three-pane variants. |
|
|
35
|
+
| `.ly-media` | Media, content, and action areas. |
|
|
36
|
+
| `.ly-reel` | Bounded horizontal flow with scroll snapping. |
|
|
37
|
+
| `.ly-frame` | Stable aspect-ratio frame. |
|
|
38
|
+
| `.ly-scroll` | Bounded scrolling with overscroll containment. |
|
|
39
|
+
|
|
40
|
+
Primitives respond to their nearest wrapper or recipe container at the `48rem` and `64rem` core thresholds. They do not set color, typography, borders, shadows, or interaction states.
|
|
41
|
+
|
|
42
|
+
For v1 migrations, `legacy.css` keeps `.ly-content` as `min-inline-size: 0` and preserves only the minimum block size and spacing of `.ly-divider`. A visible divider is paint and must come from UI Style Kit or the application theme; `.ly-surface--raised` is removed for the same ownership reason.
|
|
43
|
+
|
|
44
|
+
## Structural Utilities
|
|
45
|
+
|
|
46
|
+
The utility module includes grid column variables, spans, gaps, padding, sizing, overflow, alignment, frame ratios, visibility, and explicit order escape hatches.
|
|
47
|
+
|
|
48
|
+
Ordering families are available at base, medium container (`ly-md-*`), and large container (`ly-lg-*`) sizes. They include first, normal, last, and numeric values 1 through 6. Visual reordering can conflict with reading and focus order; see [Migrating To 2.0](Migrating-To-2.0.md) before using them.
|
|
@@ -1,80 +1,49 @@
|
|
|
1
|
-
# Layout Recipes
|
|
2
|
-
|
|
3
|
-
Recipes are
|
|
4
|
-
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
##
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
<
|
|
44
|
-
</
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
```html
|
|
52
|
-
<div class="ly-card-grid">
|
|
53
|
-
<article class="saas-card ly-card-sm">Compact</article>
|
|
54
|
-
<article class="saas-card ly-card-md">Standard</article>
|
|
55
|
-
<article class="saas-card ly-card-lg">Feature</article>
|
|
56
|
-
</div>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## Gallery
|
|
60
|
-
|
|
61
|
-
```html
|
|
62
|
-
<div class="ly-gallery">
|
|
63
|
-
<figure class="ly-frame ly-frame-4x3">Image</figure>
|
|
64
|
-
<figure class="ly-frame ly-frame-4x3">Image</figure>
|
|
65
|
-
<figure class="ly-frame ly-frame-4x3">Image</figure>
|
|
66
|
-
</div>
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
## Carousel
|
|
70
|
-
|
|
71
|
-
```html
|
|
72
|
-
<div class="ly-carousel">
|
|
73
|
-
<article class="ly-surface ly-card-md">Step one</article>
|
|
74
|
-
<article class="ly-surface ly-card-md">Step two</article>
|
|
75
|
-
<article class="ly-surface ly-card-md">Step three</article>
|
|
76
|
-
</div>
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
The carousel recipe provides horizontal flow and scroll snapping without adding visual chrome.
|
|
80
|
-
|
|
1
|
+
# Layout Recipes
|
|
2
|
+
|
|
3
|
+
Recipes are inline-size containers with an authoritative single-column mobile fallback. At the `48rem` and `64rem` core thresholds, named grid areas rearrange without changing DOM, reading, or focus order. Layout personalities can layer personality-specific thresholds over those core recipes.
|
|
4
|
+
|
|
5
|
+
## Public Hooks
|
|
6
|
+
|
|
7
|
+
Use `data-ly-recipe` with one of:
|
|
8
|
+
|
|
9
|
+
- `app-shell`
|
|
10
|
+
- `dashboard`
|
|
11
|
+
- `docs`
|
|
12
|
+
- `list-detail`
|
|
13
|
+
- `split-hero`
|
|
14
|
+
- `gallery`
|
|
15
|
+
- `card-grid`
|
|
16
|
+
|
|
17
|
+
The attribute is the complete recipe API, not metadata for a class. A root with only `data-ly-recipe="docs"` receives the same mobile fallback, containment, named areas, and responsive geometry as `.ly-docs`; the class form remains available as an equivalent option.
|
|
18
|
+
|
|
19
|
+
Use `data-ly-area` with `header`, `nav`, `main`, `aside`, `footer`, `content`, `media`, `actions`, `primary`, or `secondary`.
|
|
20
|
+
|
|
21
|
+
## Application Recipe
|
|
22
|
+
|
|
23
|
+
```html
|
|
24
|
+
<div class="ly-wrapper ly-wrapper--wide">
|
|
25
|
+
<section class="ly-app-shell" data-ly-recipe="app-shell">
|
|
26
|
+
<header data-ly-area="header">Toolbar</header>
|
|
27
|
+
<nav data-ly-area="nav" aria-label="Application">Navigation</nav>
|
|
28
|
+
<main data-ly-area="main">Workspace</main>
|
|
29
|
+
<aside data-ly-area="aside">Inspector</aside>
|
|
30
|
+
<footer data-ly-area="footer">Status</footer>
|
|
31
|
+
</section>
|
|
32
|
+
</div>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Place regions in the order that makes sense on a narrow screen. The recipe uses named areas for wide-container placement and never uses CSS `order`.
|
|
36
|
+
|
|
37
|
+
## Content And Media Recipes
|
|
38
|
+
|
|
39
|
+
`docs` creates a documentation shell. `list-detail` arranges primary, secondary, and action regions. `split-hero` arranges content, media, and actions. `gallery` and `card-grid` create responsive repeated-item grids.
|
|
40
|
+
|
|
41
|
+
```html
|
|
42
|
+
<section class="ly-split-hero" data-ly-recipe="split-hero">
|
|
43
|
+
<div data-ly-area="content">Primary message</div>
|
|
44
|
+
<figure data-ly-area="media">Media</figure>
|
|
45
|
+
<div data-ly-area="actions">Actions</div>
|
|
46
|
+
</section>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Built-in recipes never use an order utility. If application-specific visual order is unavoidable, review the warning in [Layout Primitives](Layout-Primitives.md) and test keyboard and assistive-technology behavior.
|
|
@@ -1,43 +1,33 @@
|
|
|
1
|
-
# Layout Styles
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
|
12
|
-
|
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `
|
|
18
|
-
| `
|
|
19
|
-
| `
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
| `
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
Most applications only need `data-layout`. The class and `layout-style` selectors are provided for integration flexibility.
|
|
35
|
-
|
|
36
|
-
## Mixing UI And Layout
|
|
37
|
-
|
|
38
|
-
```html
|
|
39
|
-
<body data-ui="cyberpunk" data-layout="synthwave" data-theme="cyber-lime" data-mode="dark">
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
This is supported because layout styles do not target `data-ui`.
|
|
43
|
-
|
|
1
|
+
# Layout Styles
|
|
2
|
+
|
|
3
|
+
V2 calls spatial styles “personalities” and selects them with the canonical `data-ly-layout` hook on `.ly-root`.
|
|
4
|
+
|
|
5
|
+
```html
|
|
6
|
+
<body class="ly-root" data-ly-layout="synthwave">...</body>
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Sixteen Personalities
|
|
10
|
+
|
|
11
|
+
| Family | Personality | Spatial character |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| Left rail | `minimal-saas` | Restrained application rail and measured workspace. |
|
|
14
|
+
| Left rail | `bauhaus` | Modular columns and assertive structural rhythm. |
|
|
15
|
+
| Left rail | `tactile` | Heavier instrument rail and chunky spacing. |
|
|
16
|
+
| Left rail | `cyberpunk` | Narrow command rail and dense track rhythm. |
|
|
17
|
+
| Left rail | `f-pattern` | Top-and-left scan emphasis. |
|
|
18
|
+
| Right rail | `brutalism` | Raw workspace with a strong right support rail. |
|
|
19
|
+
| Right rail | `neumorphism` | Roomy central workspace and detached right rail. |
|
|
20
|
+
| Right rail | `y2k` | Centered hub with a dock-like support region. |
|
|
21
|
+
| Right rail | `retro-glass` | Broad stage with a floating right utility zone. |
|
|
22
|
+
| Right rail | `z-pattern` | Diagonal reading path into a right support rail. |
|
|
23
|
+
| Three zone | `retrofuturism` | Panoramic bridge with symmetric support zones. |
|
|
24
|
+
| Three zone | `mondrian` | Asymmetric block composition. |
|
|
25
|
+
| Three zone | `synthwave` | Cinematic center stage with flanking zones. |
|
|
26
|
+
| Mosaic | `bento` | Full-width modular tile rhythm. |
|
|
27
|
+
| Mosaic | `maximalist` | Staggered editorial spans and broad measure. |
|
|
28
|
+
| Equal split | `split-screen` | Two equally weighted primary regions. |
|
|
29
|
+
|
|
30
|
+
Every personality changes at least two structural characteristics, such as area placement, shell direction, grid/span rhythm, wrapper measure, or responsive threshold. Personalities never set UI paint or change DOM order.
|
|
31
|
+
|
|
32
|
+
The v1 `data-layout`, `layout-style`, `.ly-layout-*`, and `.ly-style-*` hooks are available only through `layout-style-css/legacy.css`. New code must use `data-ly-layout`.
|
|
33
|
+
|