layout-style-css 1.1.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +33 -8
  2. package/CONTRIBUTING.md +12 -7
  3. package/README.md +231 -636
  4. package/SECURITY.md +11 -6
  5. package/demo/demo.css +523 -0
  6. package/demo/demo.js +520 -0
  7. package/demo/index.html +323 -976
  8. package/demo/site.webmanifest +1 -1
  9. package/demo/sitemap.xml +1 -1
  10. package/dist/core.css +6 -0
  11. package/dist/{layout-ui-style-kit-bridge.css → integrations/ui-style-kit.css} +13 -8
  12. package/dist/layout-style-css.css +1473 -1903
  13. package/dist/layout-style-css.min.css +1 -1
  14. package/dist/legacy.css +787 -0
  15. package/dist/personalities/bauhaus.css +46 -0
  16. package/dist/personalities/bento.css +43 -0
  17. package/dist/personalities/brutalism.css +36 -0
  18. package/dist/personalities/cyberpunk.css +36 -0
  19. package/dist/personalities/f-pattern.css +48 -0
  20. package/dist/personalities/maximalist.css +51 -0
  21. package/dist/personalities/minimal-saas.css +37 -0
  22. package/dist/personalities/mondrian.css +44 -0
  23. package/dist/personalities/neumorphism.css +46 -0
  24. package/dist/personalities/retro-glass.css +44 -0
  25. package/dist/personalities/retrofuturism.css +36 -0
  26. package/dist/personalities/split-screen.css +41 -0
  27. package/dist/personalities/synthwave.css +48 -0
  28. package/dist/personalities/tactile.css +39 -0
  29. package/dist/personalities/y2k.css +36 -0
  30. package/dist/personalities/z-pattern.css +49 -0
  31. package/dist/personalities.css +18 -0
  32. package/dist/primitives.css +219 -0
  33. package/dist/recipes.css +270 -0
  34. package/dist/utilities.css +162 -0
  35. package/dist/wrappers.css +174 -0
  36. package/docs/wiki/Contributing.md +36 -30
  37. package/docs/wiki/Demo-And-GitHub-Pages.md +53 -39
  38. package/docs/wiki/Getting-Started.md +51 -68
  39. package/docs/wiki/Home.md +33 -48
  40. package/docs/wiki/Installation-And-CDN.md +73 -58
  41. package/docs/wiki/Layout-Primitives.md +48 -57
  42. package/docs/wiki/Layout-Recipes.md +49 -80
  43. package/docs/wiki/Layout-Styles.md +33 -43
  44. package/docs/wiki/Migrating-To-2.0.md +186 -0
  45. package/docs/wiki/Release-And-Publishing.md +75 -69
  46. package/docs/wiki/Security-And-Support.md +36 -34
  47. package/docs/wiki/UI-Style-Kit-Compatibility.md +50 -54
  48. package/docs/wiki/_Sidebar.md +15 -14
  49. package/package.json +36 -45
  50. package/styles/core.css +6 -0
  51. package/styles/{layout-ui-style-kit-bridge.css → integrations/ui-style-kit.css} +13 -8
  52. package/styles/legacy.css +173 -0
  53. package/styles/personalities/bauhaus.css +46 -0
  54. package/styles/personalities/bento.css +43 -0
  55. package/styles/personalities/brutalism.css +36 -0
  56. package/styles/personalities/cyberpunk.css +36 -0
  57. package/styles/personalities/f-pattern.css +48 -0
  58. package/styles/personalities/maximalist.css +51 -0
  59. package/styles/personalities/minimal-saas.css +37 -0
  60. package/styles/personalities/mondrian.css +44 -0
  61. package/styles/personalities/neumorphism.css +46 -0
  62. package/styles/personalities/retro-glass.css +44 -0
  63. package/styles/personalities/retrofuturism.css +36 -0
  64. package/styles/personalities/split-screen.css +41 -0
  65. package/styles/personalities/synthwave.css +48 -0
  66. package/styles/personalities/tactile.css +39 -0
  67. package/styles/personalities/y2k.css +36 -0
  68. package/styles/personalities/z-pattern.css +49 -0
  69. package/styles/personalities.css +18 -0
  70. package/styles/primitives.css +219 -0
  71. package/styles/recipes.css +270 -0
  72. package/styles/utilities.css +162 -0
  73. package/styles/wrappers.css +174 -0
  74. package/dist/layout-all-with-ui-kit-and-interactive-surface.css +0 -3
  75. package/dist/layout-all-with-ui-kit.css +0 -2
  76. package/dist/layout-all.css +0 -18
  77. package/dist/layout-base.css +0 -539
  78. package/dist/layout-style-bauhaus.css +0 -70
  79. package/dist/layout-style-bento.css +0 -76
  80. package/dist/layout-style-brutalism.css +0 -70
  81. package/dist/layout-style-cyberpunk.css +0 -70
  82. package/dist/layout-style-f-pattern.css +0 -76
  83. package/dist/layout-style-maximalist.css +0 -93
  84. package/dist/layout-style-minimal-saas.css +0 -67
  85. package/dist/layout-style-mondrian.css +0 -77
  86. package/dist/layout-style-neumorphism.css +0 -72
  87. package/dist/layout-style-retro-glass.css +0 -82
  88. package/dist/layout-style-retrofuturism.css +0 -71
  89. package/dist/layout-style-split-screen.css +0 -62
  90. package/dist/layout-style-synthwave.css +0 -88
  91. package/dist/layout-style-tactile.css +0 -70
  92. package/dist/layout-style-y2k.css +0 -72
  93. package/dist/layout-style-z-pattern.css +0 -76
  94. package/styles/layout-base.css +0 -539
  95. package/styles/layout-style-bauhaus.css +0 -70
  96. package/styles/layout-style-bento.css +0 -76
  97. package/styles/layout-style-brutalism.css +0 -70
  98. package/styles/layout-style-cyberpunk.css +0 -70
  99. package/styles/layout-style-f-pattern.css +0 -76
  100. package/styles/layout-style-maximalist.css +0 -93
  101. package/styles/layout-style-minimal-saas.css +0 -67
  102. package/styles/layout-style-mondrian.css +0 -77
  103. package/styles/layout-style-neumorphism.css +0 -72
  104. package/styles/layout-style-retro-glass.css +0 -82
  105. package/styles/layout-style-retrofuturism.css +0 -71
  106. package/styles/layout-style-split-screen.css +0 -62
  107. package/styles/layout-style-synthwave.css +0 -88
  108. package/styles/layout-style-tactile.css +0 -70
  109. package/styles/layout-style-y2k.css +0 -72
  110. 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 1.1.2 documents the professional library contract for `layout-style-css`: install paths, package exports, layout primitives, recipes, UI Style Kit compatibility, demo deployment, security, and release workflow.
4
-
5
- ## Start Here
6
-
7
- | Page | Purpose |
8
- | --- | --- |
9
- | [Getting Started](Getting-Started.md) | First install, first shell, and switching layout personalities. |
10
- | [Installation And CDN](Installation-And-CDN.md) | npm, bundler, CDN, and export guidance. |
11
- | [Layout Primitives](Layout-Primitives.md) | Core `ly-*` wrappers, grids, panes, frames, and utilities. |
12
- | [Layout Recipes](Layout-Recipes.md) | Copyable patterns for common application surfaces. |
13
- | [Layout Styles](Layout-Styles.md) | All layout personalities and when to use them. |
14
- | [UI Style Kit Compatibility](UI-Style-Kit-Compatibility.md) | Prefix aliases and ownership boundaries. |
15
- | [Demo And GitHub Pages](Demo-And-GitHub-Pages.md) | Demo QA and Pages deployment. |
16
- | [Release And Publishing](Release-And-Publishing.md) | npm v1.1.2 verification and publish checklist. |
17
- | [Security And Support](Security-And-Support.md) | Security model, supported versions, and reporting path. |
18
- | [Contributing](Contributing.md) | Contribution workflow and review expectations. |
19
-
20
- ## Library Positioning
21
-
22
- `layout-style-css` is the spatial layer for front-end products. It owns wrappers, spacing, shells, grids, split views, panes, layout recipes, and switchable layout personalities. It does not own paint, typography, component borders, shadows, native controls, focus states, themes, or modes.
23
-
24
- The recommended pairing is:
25
-
26
- ```js
27
- import "ui-style-kit-css/with-bridge.css";
28
- import "layout-style-css/all.css";
29
- ```
30
-
31
- Use the three-library path only when a project also needs Interactive Surface behavior:
32
-
33
- ```js
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.0.0 is a container-first, dependency-free layout library. It ships semantic wrappers, composition primitives, seven recipes, sixteen layout personalities, focused exports, and a v2-only compatibility bundle.
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.0.1` and `interactive-surface-css@1.4.0` are development 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 UI Style Kit revision is a documented follow-up, not part of this 2.0 release.
@@ -1,58 +1,73 @@
1
- # Installation And CDN
2
-
3
- This package ships authored source files, generated dist files, and importable entrypoints for bundlers and CDNs.
4
-
5
- ## npm
6
-
7
- ```bash
8
- npm install layout-style-css ui-style-kit-css@2.0.1
9
- ```
10
-
11
- The default entry is the full flattened layout-only CSS:
12
-
13
- ```js
14
- import "layout-style-css";
15
- ```
16
-
17
- ## Entry Points
18
-
19
- | Import | Purpose |
20
- | --- | --- |
21
- | `layout-style-css` | Full flattened layout-only CSS. |
22
- | `layout-style-css/min.css` | Minified layout-only CSS. |
23
- | `layout-style-css/base.css` | Base primitives only. |
24
- | `layout-style-css/bridge.css` | UI Style Kit naming bridge only. |
25
- | `layout-style-css/all.css` | Import-based bundle for all layout files. |
26
- | `layout-style-css/all-with-ui-kit.css` | UI Style Kit plus Layout Style CSS. |
27
- | `layout-style-css/all-with-ui-kit-and-interactive-surface.css` | UI Style Kit, Interactive Surface, and Layout Style CSS. |
28
- | `layout-style-css/<layout>.css` | One layout style, such as `layout-style-css/synthwave.css`. |
29
- | `layout-style-css/dist/*.css` | Direct generated dist files for advanced consumers. |
30
-
31
- ## CDN
32
-
33
- Layout-only:
34
-
35
- ```html
36
- <link rel="stylesheet" href="https://unpkg.com/layout-style-css@1/dist/layout-style-css.min.css">
37
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@1/dist/layout-style-css.min.css">
38
- ```
39
-
40
- Recommended UI Style Kit pairing:
41
-
42
- ```html
43
- <link rel="stylesheet" href="https://unpkg.com/ui-style-kit-css@2.0.1/dist/ui-style-kit.with-bridge.min.css">
44
- <link rel="stylesheet" href="https://unpkg.com/layout-style-css@1/dist/layout-style-css.min.css">
45
- ```
46
-
47
- Three-library pairing:
48
-
49
- ```html
50
- <link rel="stylesheet" href="https://unpkg.com/ui-style-kit-css@2.0.1/dist/ui-style-kit.with-bridge.min.css">
51
- <link rel="stylesheet" href="https://unpkg.com/layout-style-css@1/dist/layout-style-css.min.css">
52
- <link rel="stylesheet" href="https://unpkg.com/interactive-surface-css@1.2.5/dist/interactive-surface.min.css">
53
- ```
54
-
55
- ## Package Ownership
56
-
57
- `styles/` is source. `dist/` is generated by `npm run build`. Consumers should import package entrypoints or dist files, not source files inside `styles/`.
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.0.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/with-bridge.css";
41
+ import "layout-style-css/integrations/ui-style-kit.css";
42
+ import "layout-style-css";
43
+ ```
44
+
45
+ All three libraries, in required order:
46
+
47
+ ```js
48
+ import "ui-style-kit-css/with-bridge.css";
49
+ import "interactive-surface-css/state-core.css";
50
+ import "layout-style-css/integrations/ui-style-kit.css";
51
+ import "layout-style-css";
52
+ ```
53
+
54
+ `ui-style-kit-css@2.0.1` and `interactive-surface-css@1.4.0` are tested integration fixtures, not runtime dependencies. The next UI Style Kit revision is a follow-up release.
55
+
56
+ ## CDN
57
+
58
+ Layout only:
59
+
60
+ ```html
61
+ <link rel="stylesheet" href="https://unpkg.com/layout-style-css@2.0.0/dist/layout-style-css.min.css">
62
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@2.0.0/dist/layout-style-css.min.css">
63
+ ```
64
+
65
+ For optional companions, preserve the same order as the package imports: UI Style Kit bridge, Interactive Surface 1.4.0 `state-core.css`, Layout integration bridge, then Layout core.
66
+
67
+ ## Browser Baseline
68
+
69
+ 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.
70
+
71
+ ## Source Ownership
72
+
73
+ `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
- Primitives are the stable `ly-*` classes that make the package useful without committing to one layout personality.
4
-
5
- ## Root And Page
6
-
7
- | Class | Purpose |
8
- | --- | --- |
9
- | `.ly-root` | Scope layout variables and box sizing. |
10
- | `.ly-page` | Full-height page wrapper. |
11
- | `.ly-header`, `.ly-footer`, `.ly-main` | Basic document regions. |
12
-
13
- ## Wrappers
14
-
15
- Use `.ly-wrapper` for new markup. `.ly-container` remains supported for compatibility.
16
-
17
- | Class | Purpose |
18
- | --- | --- |
19
- | `.ly-wrapper` | Responsive centered content wrapper. |
20
- | `.ly-wrapper--sm` | Small wrapper. |
21
- | `.ly-wrapper--md` | Medium wrapper. |
22
- | `.ly-wrapper--lg` | Large wrapper. |
23
- | `.ly-wrapper--xl` | Extra-large wrapper. |
24
- | `.ly-wrapper--wide` | Wide application wrapper. |
25
- | `.ly-wrapper--fluid` | Full-width wrapper with responsive padding. |
26
- | `.ly-wrapper--readable` | Readable content wrapper based on line length. |
27
-
28
- ## Shells And Regions
29
-
30
- | Class | Purpose |
31
- | --- | --- |
32
- | `.ly-app-shell` | Header, sidebar, and main application shell. |
33
- | `.ly-app-header` | Header region inside the app shell. |
34
- | `.ly-app-sidebar` | Sidebar region inside the app shell. |
35
- | `.ly-app-main` | Main content region inside the app shell. |
36
- | `.ly-sidebar-layout` | Local content plus secondary sidebar. |
37
- | `.ly-split` | Two-part split layout. |
38
- | `.ly-panes`, `.ly-panes--two`, `.ly-panes--three` | Adaptive pane layouts. |
39
-
40
- ## Composition
41
-
42
- | Class | Purpose |
43
- | --- | --- |
44
- | `.ly-section` | Vertical section spacing. |
45
- | `.ly-stack` | Vertical rhythm. |
46
- | `.ly-cluster` | Wrapping horizontal group. |
47
- | `.ly-grid` | Grid foundation. |
48
- | `.ly-grid--auto` | Responsive auto-fit grid. |
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 stable combinations of primitives. They are intended to be copied into applications and paired with UI Style Kit component classes.
4
-
5
- ## App Shell
6
-
7
- ```html
8
- <div class="ly-app-shell">
9
- <aside class="ly-app-sidebar ly-pad-6">Navigation</aside>
10
- <header class="ly-app-header ly-pad-4">Toolbar</header>
11
- <main class="ly-app-main">
12
- <section class="ly-wrapper ly-wrapper--wide ly-section">Workspace</section>
13
- </main>
14
- </div>
15
- ```
16
-
17
- ## Content Wrapper
18
-
19
- ```html
20
- <article class="ly-wrapper ly-wrapper--readable ly-section ly-stack">
21
- <h1>Documentation</h1>
22
- <p>Readable content stays centered and responsive.</p>
23
- </article>
24
- ```
25
-
26
- ## Split Screen
27
-
28
- ```html
29
- <section class="ly-wrapper ly-wrapper--xl ly-section">
30
- <div class="ly-split">
31
- <div class="ly-stack">Primary content</div>
32
- <aside class="ly-frame ly-surface ly-pad-6">Preview</aside>
33
- </div>
34
- </section>
35
- ```
36
-
37
- ## Button Group
38
-
39
- ```html
40
- <div class="ly-button-group">
41
- <button class="saas-button">Save</button>
42
- <button class="saas-button-secondary">Preview</button>
43
- <button class="saas-button-secondary">Export</button>
44
- </div>
45
- ```
46
-
47
- Button groups wrap without forcing every button to full parent width on mobile.
48
-
49
- ## Card Grid And Card Size
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
- Layout styles change spatial behavior without changing UI paint. Select them with `data-layout`, `layout-style`, `.ly-layout-*`, or `.ly-style-*`.
4
-
5
- ## Available Styles
6
-
7
- | Style | Best for |
8
- | --- | --- |
9
- | `minimal-saas` | Quiet SaaS dashboards, admin tools, and predictable workspaces. |
10
- | `bento` | Modular dashboards with repeated card surfaces. |
11
- | `maximalist` | Editorial pages and feature-heavy product screens. |
12
- | `bauhaus` | Strict modular grids and structured presentation. |
13
- | `tactile` | Instrument panels and control-heavy interfaces. |
14
- | `neumorphism` | Centered island layouts and roomy product surfaces. |
15
- | `retrofuturism` | Panoramic shells and wide staged views. |
16
- | `brutalism` | Full-bleed slabs and abrupt sectional hierarchy. |
17
- | `cyberpunk` | Dense command surfaces and narrow utility rails. |
18
- | `y2k` | Centered hub shells with dock-like support regions. |
19
- | `retro-glass` | Layered top-frame shells with floating utility rails. |
20
- | `f-pattern` | Western reading paths with strong top and left scan zones. |
21
- | `z-pattern` | Landing and promotional flows that move diagonally across the viewport. |
22
- | `split-screen` | Two competing focal points with equal weight. |
23
- | `mondrian` | Asymmetric rectangular block compositions. |
24
- | `synthwave` | Cinematic preview flows and retro-futuristic stage layouts. |
25
-
26
- ## Selector Contract
27
-
28
- ```html
29
- <body data-layout="synthwave" layout-style="synthwave" class="ly-root">
30
- <main class="ly-layout-synthwave ly-style-synthwave">...</main>
31
- </body>
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
+