layout-style-css 2.1.1 → 3.0.1

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 (81) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +127 -143
  3. package/dist/core.css +2 -1
  4. package/dist/foundation.css +194 -0
  5. package/dist/layout-style-css.css +527 -984
  6. package/dist/layout-style-css.min.css +1 -1
  7. package/dist/personalities/bauhaus.css +13 -42
  8. package/dist/personalities/bento.css +16 -40
  9. package/dist/personalities/brutalism.css +13 -33
  10. package/dist/personalities/cyberpunk.css +12 -32
  11. package/dist/personalities/f-pattern.css +16 -45
  12. package/dist/personalities/maximalist.css +16 -48
  13. package/dist/personalities/minimal-saas.css +7 -33
  14. package/dist/personalities/mondrian.css +12 -40
  15. package/dist/personalities/neumorphism.css +15 -39
  16. package/dist/personalities/retro-glass.css +14 -42
  17. package/dist/personalities/retrofuturism.css +12 -32
  18. package/dist/personalities/split-screen.css +24 -36
  19. package/dist/personalities/synthwave.css +13 -41
  20. package/dist/personalities/tactile.css +15 -32
  21. package/dist/personalities/y2k.css +13 -33
  22. package/dist/personalities/z-pattern.css +16 -46
  23. package/dist/personalities.css +1 -1
  24. package/dist/primitives.css +27 -63
  25. package/dist/recipes.css +92 -175
  26. package/dist/utilities.css +39 -104
  27. package/dist/wrappers.css +28 -108
  28. package/docs/wiki/Contributing.md +3 -1
  29. package/docs/wiki/Demo-And-GitHub-Pages.md +24 -33
  30. package/docs/wiki/Getting-Started.md +39 -27
  31. package/docs/wiki/Home.md +21 -27
  32. package/docs/wiki/Installation-And-CDN.md +47 -42
  33. package/docs/wiki/Layout-Primitives.md +48 -34
  34. package/docs/wiki/Layout-Recipes.md +42 -33
  35. package/docs/wiki/Layout-Styles.md +60 -26
  36. package/docs/wiki/Migrating-To-3.0.md +205 -0
  37. package/docs/wiki/Release-And-Publishing.md +36 -51
  38. package/docs/wiki/Security-And-Support.md +18 -22
  39. package/docs/wiki/UI-Style-Kit-Compatibility.md +21 -30
  40. package/docs/wiki/_Sidebar.md +12 -15
  41. package/manifest.json +98 -0
  42. package/package.json +33 -28
  43. package/personalities.json +147 -0
  44. package/CONTRIBUTING.md +0 -55
  45. package/SECURITY.md +0 -50
  46. package/demo/assets/apple-touch-icon.svg +0 -7
  47. package/demo/assets/favicon.svg +0 -7
  48. package/demo/assets/social-card.png +0 -0
  49. package/demo/browserconfig.xml +0 -9
  50. package/demo/demo.css +0 -523
  51. package/demo/demo.js +0 -605
  52. package/demo/index.html +0 -325
  53. package/demo/robots.txt +0 -4
  54. package/demo/site.webmanifest +0 -23
  55. package/demo/sitemap.xml +0 -9
  56. package/dist/integrations/ui-style-kit.css +0 -175
  57. package/dist/legacy.css +0 -822
  58. package/styles/core.css +0 -6
  59. package/styles/integrations/ui-style-kit.css +0 -175
  60. package/styles/legacy.css +0 -173
  61. package/styles/personalities/bauhaus.css +0 -49
  62. package/styles/personalities/bento.css +0 -46
  63. package/styles/personalities/brutalism.css +0 -39
  64. package/styles/personalities/cyberpunk.css +0 -39
  65. package/styles/personalities/f-pattern.css +0 -51
  66. package/styles/personalities/maximalist.css +0 -54
  67. package/styles/personalities/minimal-saas.css +0 -39
  68. package/styles/personalities/mondrian.css +0 -47
  69. package/styles/personalities/neumorphism.css +0 -46
  70. package/styles/personalities/retro-glass.css +0 -47
  71. package/styles/personalities/retrofuturism.css +0 -39
  72. package/styles/personalities/split-screen.css +0 -41
  73. package/styles/personalities/synthwave.css +0 -48
  74. package/styles/personalities/tactile.css +0 -39
  75. package/styles/personalities/y2k.css +0 -39
  76. package/styles/personalities/z-pattern.css +0 -52
  77. package/styles/personalities.css +0 -18
  78. package/styles/primitives.css +0 -219
  79. package/styles/recipes.css +0 -278
  80. package/styles/utilities.css +0 -162
  81. package/styles/wrappers.css +0 -174
@@ -1,25 +1,16 @@
1
- # UI Style Kit Compatibility
1
+ # Companion Library Compatibility
2
2
 
3
- Layout Style CSS is dependency-free. `ui-style-kit-css@2.1.0` is the released visual fixture for 2.1 ecosystem verification and is not a runtime or peer dependency.
3
+ Layout Style CSS v3 has no bridge, peer dependency, or companion import.
4
4
 
5
- ## Ownership Boundary
5
+ ## Ownership
6
6
 
7
- | Package | Owns |
8
- | --- | --- |
9
- | `layout-style-css` | Wrappers, containment, flow, areas, grids, spans, recipes, and spatial personalities. |
10
- | `ui-style-kit-css` | Color, typography, borders, shadows, native controls, component paint, themes, and modes. |
11
- | `interactive-surface-css` | Interaction-state styling. |
7
+ Layout owns structure. UI Style Kit owns paint. Interactive Surface owns interaction styling.
12
8
 
13
- ## Explicit Imports
14
-
15
- Layout plus UI:
16
-
17
- ```js
18
- import "ui-style-kit-css/visual.css";
19
- import "layout-style-css";
20
- ```
9
+ - Layout: wrappers, containment, measures, flow, tracks, grid areas, ratios, overflow bounds, and responsive topology
10
+ - UI Style Kit: color, typography, borders, radii, shadows, component paint, and theme roles
11
+ - Interactive Surface: hover, focus, pressed, selected, disabled, loading, and other interaction-state styling
21
12
 
22
- All three libraries:
13
+ ## Explicit Imports
23
14
 
24
15
  ```js
25
16
  import "ui-style-kit-css/visual.css";
@@ -28,22 +19,22 @@ import "interactive-surface-css/state-core.css";
28
19
  import "layout-style-css";
29
20
  ```
30
21
 
31
- The Layout integration bridge contains structural mappings but no package imports. It remains available as deprecated compatibility for legacy UI-prefixed structural aliases. The removed `all-with-ui-kit*` aggregates have no v2 replacement because dependency ownership stays with the application.
22
+ Applications may use Layout alone, Layout plus UI Style Kit, or all three. The default Layout bundle never imports or assumes either companion.
32
23
 
33
- ## Structural Aliases
24
+ ## Markup
34
25
 
35
- The bridge supports the `saas`, `bento`, `max`, `bau`, `tactile`, `neo`, `retro`, `brutal`, `cyber`, `y2k`, and `rg` prefixes for container, section, stack, cluster, grid, split, button-group, card-grid, card-size, gallery, and carousel structure.
26
+ Put canonical structural hooks in markup:
36
27
 
37
- Visual component names remain owned by UI Style Kit. The bridge does not map color, typography, border, shadow, theme, or interaction tokens.
38
-
39
- The removed v1 `.ly-surface--raised` selector is not restored by `legacy.css`; its radius and raised paint belong to UI Style Kit or application theme styling. Likewise, the legacy `.ly-divider` alias supplies structural size and spacing only, leaving the visible separator to the UI layer.
28
+ ```html
29
+ <body class="ly-root" data-ly-layout="minimal-saas" data-ui="minimal-saas">
30
+ <main class="ly-wrapper" data-ly-recipe="dashboard">
31
+ <header data-ly-area="header" class="saas-card">Dashboard</header>
32
+ </main>
33
+ </body>
34
+ ```
40
35
 
41
- ## Compatibility Baseline
36
+ The `ly-*` hooks control structure. Companion classes and data attributes can paint or animate the same elements without taking over layout.
42
37
 
43
- | Library | Verified fixture | Consumer requirement |
44
- | --- | --- | --- |
45
- | Layout Style CSS | `2.1.1` | Required for this API |
46
- | UI Style Kit CSS | `2.1.0` visual CSS and manifest | Optional released fixture |
47
- | Interactive Surface CSS | `1.5.0` `state-core.css` | Optional released fixture |
38
+ ## v3 Boundary
48
39
 
49
- Current evergreen Chromium, Firefox, and WebKit are covered by the release gate.
40
+ 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).
@@ -1,15 +1,12 @@
1
- # Wiki Navigation
2
-
3
- - [Home](Home.md)
4
- - [Getting Started](Getting-Started.md)
5
- - [Installation And CDN](Installation-And-CDN.md)
6
- - [Layout Primitives](Layout-Primitives.md)
7
- - [Layout Recipes](Layout-Recipes.md)
8
- - [Layout Styles](Layout-Styles.md)
9
- - [UI Style Kit Compatibility](UI-Style-Kit-Compatibility.md)
10
- - [Migrating To 2.0](Migrating-To-2.0.md)
11
- - [Demo And GitHub Pages](Demo-And-GitHub-Pages.md)
12
- - [Release And Publishing](Release-And-Publishing.md)
13
- - [Security And Support](Security-And-Support.md)
14
- - [Contributing](Contributing.md)
15
-
1
+ - [Home](Home)
2
+ - [Getting Started](Getting-Started)
3
+ - [Installation And CDN](Installation-And-CDN)
4
+ - [Layout Primitives](Layout-Primitives)
5
+ - [Layout Recipes](Layout-Recipes)
6
+ - [Layout Styles](Layout-Styles)
7
+ - [Companion Compatibility](UI-Style-Kit-Compatibility)
8
+ - [Migrating To 3.0](Migrating-To-3.0)
9
+ - [Demo And GitHub Pages](Demo-And-GitHub-Pages)
10
+ - [Release And Publishing](Release-And-Publishing)
11
+ - [Security And Support](Security-And-Support)
12
+ - [Contributing](Contributing)
package/manifest.json ADDED
@@ -0,0 +1,98 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "schemaPolicy": {
4
+ "compatibility": "additive-within-major",
5
+ "breakingChange": "increment-schemaVersion-before-removing-or-renaming-fields"
6
+ },
7
+ "name": "layout-style-css",
8
+ "version": "3.0.1",
9
+ "entrypoints": {
10
+ "default": "./dist/layout-style-css.css",
11
+ "minified": "./dist/layout-style-css.min.css",
12
+ "core": "./dist/core.css",
13
+ "foundation": "./dist/foundation.css",
14
+ "wrappers": "./dist/wrappers.css",
15
+ "primitives": "./dist/primitives.css",
16
+ "recipes": "./dist/recipes.css",
17
+ "utilities": "./dist/utilities.css",
18
+ "personalities": "./dist/personalities.css",
19
+ "personalityModules": "./dist/personalities/*.css",
20
+ "personalityMetadata": "./personalities.json"
21
+ },
22
+ "selectors": {
23
+ "stable": [".ly-root", ".ly-wrapper"],
24
+ "deprecated": []
25
+ },
26
+ "wrappers": ["compact", "prose", "content", "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"],
28
+ "recipes": ["app-shell", "dashboard", "docs", "list-detail", "split-hero", "gallery", "card-grid"],
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"],
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": [] },
47
+ {
48
+ "id": "synthwave",
49
+ "label": "Synthwave",
50
+ "visualCompatibility": "recommended",
51
+ "recommendedVisualPresets": ["cyberpunk", "retrofuturism"],
52
+ "visualVerification": {
53
+ "method": "rendered-computed-style",
54
+ "test": "test/demo-smoke.test.mjs",
55
+ "computedProperties": {
56
+ "cyberpunk": { "boxShadow": "0px 0px 18px" },
57
+ "retrofuturism": { "boxShadow": "0px 10px 30px" }
58
+ },
59
+ "assertion": "A visible browser contract fixture renders each preset's distinct article box-shadow while data-ly-layout remains synthwave."
60
+ }
61
+ }
62
+ ],
63
+ "containers": {
64
+ "names": ["ly-scope"],
65
+ "type": "inline-size"
66
+ },
67
+ "thresholds": {
68
+ "containerMinWidths": ["42rem", "44rem", "48rem", "52rem", "72rem"],
69
+ "viewportMaxHeights": ["44rem", "30rem"]
70
+ },
71
+ "tokens": {
72
+ "geometry": [
73
+ "--ly-space-0", "--ly-space-1", "--ly-space-2", "--ly-space-3", "--ly-space-4",
74
+ "--ly-space-5", "--ly-space-6", "--ly-space-7", "--ly-space-8", "--ly-space-9",
75
+ "--ly-wrapper-compact", "--ly-wrapper-prose", "--ly-wrapper-content", "--ly-wrapper-wide",
76
+ "--ly-page-padding-inline", "--ly-safe-area-inline", "--ly-safe-area-block-start",
77
+ "--ly-safe-area-block-end", "--ly-wrapper-gutter", "--ly-wrapper-max", "--ly-profile-gap",
78
+ "--ly-gap", "--ly-grid-gap", "--ly-stack-gap", "--ly-cluster-gap",
79
+ "--ly-section-padding-block", "--ly-header-height", "--ly-sticky-position", "--ly-cover-min",
80
+ "--ly-shell-min", "--ly-scroll-max", "--ly-switcher-threshold", "--ly-sidebar-size",
81
+ "--ly-sidebar-content-min", "--ly-grid-columns", "--ly-grid-min", "--ly-split-min",
82
+ "--ly-pane-min", "--ly-pane-size", "--ly-media-min", "--ly-media-size", "--ly-reel-item-min",
83
+ "--ly-reel-item-max", "--ly-frame-ratio", "--ly-split-primary", "--ly-split-secondary",
84
+ "--ly-recipe-rail", "--ly-recipe-aside", "--ly-gallery-min", "--ly-card-grid-min",
85
+ "--ly-app-shell-medium-areas", "--ly-app-shell-medium-columns", "--ly-app-shell-wide-areas",
86
+ "--ly-app-shell-wide-columns", "--ly-dashboard-medium-areas", "--ly-dashboard-medium-columns",
87
+ "--ly-dashboard-wide-areas", "--ly-dashboard-wide-columns", "--ly-docs-wide-areas",
88
+ "--ly-docs-wide-columns", "--ly-list-detail-wide-areas", "--ly-list-detail-wide-columns",
89
+ "--ly-split-hero-wide-areas", "--ly-split-hero-wide-columns", "--ly-center-max",
90
+ "--ly-cover-padding", "--ly-z-header", "--ly-split-align", "--ly-media-align",
91
+ "--ly-split-hero-align"
92
+ ]
93
+ },
94
+ "companions": {
95
+ "ui-style-kit-css": ">=2.1.0 <3.0.0",
96
+ "interactive-surface-css": ">=1.5.0 <2.0.0"
97
+ }
98
+ }
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "layout-style-css",
3
- "version": "2.1.1",
3
+ "version": "3.0.1",
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",
7
- "homepage": "https://github.com/Foscat/layout-style-css#readme",
7
+ "homepage": "https://foscat.github.io/Layout-Style-CSS/",
8
8
  "repository": {
9
9
  "type": "git",
10
10
  "url": "git+https://github.com/Foscat/layout-style-css.git"
@@ -24,7 +24,7 @@
24
24
  "shell-layouts"
25
25
  ],
26
26
  "main": "dist/layout-style-css.css",
27
- "style": "dist/layout-style-css.min.css",
27
+ "style": "dist/layout-style-css.css",
28
28
  "unpkg": "dist/layout-style-css.min.css",
29
29
  "jsdelivr": "dist/layout-style-css.min.css",
30
30
  "scripts": {
@@ -32,7 +32,8 @@
32
32
  "pages:build": "node scripts/build-pages.mjs",
33
33
  "lint": "stylelint \"styles/**/*.css\" \"demo/**/*.css\"",
34
34
  "check:demo-js": "node --check demo/demo.js",
35
- "test:static": "node test/layout-css-contract.test.mjs && node test/release-docs-contract.test.mjs",
35
+ "check:ownership": "node scripts/check-css-ownership.mjs",
36
+ "test:static": "node --test --test-concurrency=1 test/manifest-contract.test.mjs test/ownership-boundaries.test.mjs test/package-contract.test.mjs test/release-preflight.test.mjs && node test/layout-css-contract.test.mjs && node test/release-docs-contract.test.mjs",
36
37
  "test:demo:quick": "node test/demo-smoke.test.mjs --quick --browser=chromium",
37
38
  "test:demo:chromium": "node test/demo-smoke.test.mjs --browser=chromium",
38
39
  "test:demo:firefox": "node test/demo-smoke.test.mjs --browser=firefox",
@@ -41,11 +42,12 @@
41
42
  "test:pages": "node test/pages-artifact.test.mjs",
42
43
  "test": "npm run test:static && npm run test:demo:quick && npm run test:pages",
43
44
  "test:full": "npm run test:static && npm run test:demo:all && npm run test:pages",
44
- "check": "npm run build && npm run lint && npm run check:demo-js && npm test && npm run pack:dry-run",
45
- "check:full": "npm run build && npm run lint && npm run check:demo-js && npm run test:full && npm run pack:dry-run",
45
+ "check": "npm run build && npm run check:ownership && npm run lint && npm run check:demo-js && npm test && npm run pack:dry-run",
46
+ "check:full": "npm run build && npm run check:ownership && npm run lint && npm run check:demo-js && npm run test:full && npm run pack:dry-run",
46
47
  "pack:dry-run": "npm pack --dry-run --ignore-scripts",
47
48
  "publish:dry-run": "npm publish --dry-run --access public --ignore-scripts",
48
- "release:verify": "npm run check:full && npm audit --audit-level=moderate && npm run publish:dry-run",
49
+ "release:preflight": "npm run build && node scripts/release-fixture-contract.mjs",
50
+ "release:verify": "npm run check:full && npm run release:preflight && npm audit --audit-level=moderate && npm run publish:dry-run",
49
51
  "prepack": "npm run build && npm run test:static",
50
52
  "prepublishOnly": "npm run release:verify"
51
53
  },
@@ -54,45 +56,48 @@
54
56
  },
55
57
  "devDependencies": {
56
58
  "@playwright/test": "1.61.1",
59
+ "css-tree": "3.2.1",
57
60
  "interactive-surface-css": "1.5.0",
58
61
  "stylelint": "17.14.0",
59
62
  "ui-style-kit-css": "2.1.0"
60
63
  },
64
+ "overrides": {
65
+ "fast-uri": "3.1.5",
66
+ "js-yaml": "4.3.1",
67
+ "nanoid": "3.3.17",
68
+ "postcss": "8.5.23"
69
+ },
61
70
  "exports": {
62
71
  ".": "./dist/layout-style-css.css",
63
- "./css": "./dist/layout-style-css.css",
64
- "./css.css": "./dist/layout-style-css.css",
65
- "./min": "./dist/layout-style-css.min.css",
66
72
  "./min.css": "./dist/layout-style-css.min.css",
67
73
  "./core.css": "./dist/core.css",
74
+ "./foundation.css": "./dist/foundation.css",
68
75
  "./wrappers.css": "./dist/wrappers.css",
69
76
  "./primitives.css": "./dist/primitives.css",
70
77
  "./recipes.css": "./dist/recipes.css",
71
78
  "./utilities.css": "./dist/utilities.css",
72
79
  "./personalities.css": "./dist/personalities.css",
73
80
  "./personalities/*.css": "./dist/personalities/*.css",
74
- "./integrations/ui-style-kit.css": "./dist/integrations/ui-style-kit.css",
75
- "./legacy.css": "./dist/legacy.css",
81
+ "./personalities.json": "./personalities.json",
82
+ "./manifest.json": "./manifest.json",
76
83
  "./package.json": "./package.json"
77
84
  },
78
85
  "files": [
79
- "dist",
80
- "styles",
81
- "docs/wiki",
82
- "demo/index.html",
83
- "demo/demo.css",
84
- "demo/demo.js",
85
- "demo/assets/apple-touch-icon.svg",
86
- "demo/assets/favicon.svg",
87
- "demo/assets/social-card.png",
88
- "demo/browserconfig.xml",
89
- "demo/robots.txt",
90
- "demo/site.webmanifest",
91
- "demo/sitemap.xml",
86
+ "dist/layout-style-css.css",
87
+ "dist/layout-style-css.min.css",
88
+ "dist/core.css",
89
+ "dist/foundation.css",
90
+ "dist/wrappers.css",
91
+ "dist/primitives.css",
92
+ "dist/recipes.css",
93
+ "dist/utilities.css",
94
+ "dist/personalities.css",
95
+ "dist/personalities/*.css",
96
+ "personalities.json",
97
+ "manifest.json",
92
98
  "README.md",
99
+ "LICENSE",
93
100
  "CHANGELOG.md",
94
- "CONTRIBUTING.md",
95
- "SECURITY.md",
96
- "LICENSE"
101
+ "docs/wiki"
97
102
  ]
98
103
  }
@@ -0,0 +1,147 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "generatedFrom": "manifest.json",
4
+ "selector": "data-ly-layout",
5
+ "independentSelectors": [
6
+ "data-ly-layout",
7
+ "data-ui",
8
+ "data-theme",
9
+ "data-mode"
10
+ ],
11
+ "personalities": [
12
+ {
13
+ "id": "minimal-saas",
14
+ "label": "Minimal SaaS",
15
+ "visualCompatibility": "native",
16
+ "recommendedVisualPresets": [
17
+ "minimal-saas"
18
+ ]
19
+ },
20
+ {
21
+ "id": "bento",
22
+ "label": "Bento",
23
+ "visualCompatibility": "native",
24
+ "recommendedVisualPresets": [
25
+ "bento"
26
+ ]
27
+ },
28
+ {
29
+ "id": "maximalist",
30
+ "label": "Maximalist",
31
+ "visualCompatibility": "native",
32
+ "recommendedVisualPresets": [
33
+ "maximalist"
34
+ ]
35
+ },
36
+ {
37
+ "id": "bauhaus",
38
+ "label": "Bauhaus",
39
+ "visualCompatibility": "native",
40
+ "recommendedVisualPresets": [
41
+ "bauhaus"
42
+ ]
43
+ },
44
+ {
45
+ "id": "tactile",
46
+ "label": "Tactile",
47
+ "visualCompatibility": "native",
48
+ "recommendedVisualPresets": [
49
+ "tactile"
50
+ ]
51
+ },
52
+ {
53
+ "id": "neumorphism",
54
+ "label": "Neumorphism",
55
+ "visualCompatibility": "native",
56
+ "recommendedVisualPresets": [
57
+ "neumorphism"
58
+ ]
59
+ },
60
+ {
61
+ "id": "retrofuturism",
62
+ "label": "Retrofuturism",
63
+ "visualCompatibility": "native",
64
+ "recommendedVisualPresets": [
65
+ "retrofuturism"
66
+ ]
67
+ },
68
+ {
69
+ "id": "brutalism",
70
+ "label": "Brutalism",
71
+ "visualCompatibility": "native",
72
+ "recommendedVisualPresets": [
73
+ "brutalism"
74
+ ]
75
+ },
76
+ {
77
+ "id": "cyberpunk",
78
+ "label": "Cyberpunk",
79
+ "visualCompatibility": "native",
80
+ "recommendedVisualPresets": [
81
+ "cyberpunk"
82
+ ]
83
+ },
84
+ {
85
+ "id": "y2k",
86
+ "label": "Y2K",
87
+ "visualCompatibility": "native",
88
+ "recommendedVisualPresets": [
89
+ "y2k"
90
+ ]
91
+ },
92
+ {
93
+ "id": "retro-glass",
94
+ "label": "Retro Glass",
95
+ "visualCompatibility": "native",
96
+ "recommendedVisualPresets": [
97
+ "retro-glass"
98
+ ]
99
+ },
100
+ {
101
+ "id": "f-pattern",
102
+ "label": "F-pattern",
103
+ "visualCompatibility": "any",
104
+ "recommendedVisualPresets": []
105
+ },
106
+ {
107
+ "id": "z-pattern",
108
+ "label": "Z-pattern",
109
+ "visualCompatibility": "any",
110
+ "recommendedVisualPresets": []
111
+ },
112
+ {
113
+ "id": "split-screen",
114
+ "label": "Split Screen",
115
+ "visualCompatibility": "any",
116
+ "recommendedVisualPresets": []
117
+ },
118
+ {
119
+ "id": "mondrian",
120
+ "label": "Mondrian",
121
+ "visualCompatibility": "any",
122
+ "recommendedVisualPresets": []
123
+ },
124
+ {
125
+ "id": "synthwave",
126
+ "label": "Synthwave",
127
+ "visualCompatibility": "recommended",
128
+ "recommendedVisualPresets": [
129
+ "cyberpunk",
130
+ "retrofuturism"
131
+ ],
132
+ "visualVerification": {
133
+ "method": "rendered-computed-style",
134
+ "test": "test/demo-smoke.test.mjs",
135
+ "computedProperties": {
136
+ "cyberpunk": {
137
+ "boxShadow": "0px 0px 18px"
138
+ },
139
+ "retrofuturism": {
140
+ "boxShadow": "0px 10px 30px"
141
+ }
142
+ },
143
+ "assertion": "A visible browser contract fixture renders each preset's distinct article box-shadow while data-ly-layout remains synthwave."
144
+ }
145
+ }
146
+ ]
147
+ }
package/CONTRIBUTING.md DELETED
@@ -1,55 +0,0 @@
1
- # Contributing
2
-
3
- Thanks for improving `layout-style-css`. This repository is a CSS layout library, so changes should keep structure, spacing, responsive behavior, and package contracts separate from visual styling.
4
-
5
- ## Local Setup
6
-
7
- ```bash
8
- npm install
9
- npm run build
10
- npm run lint
11
- npm run check:demo-js
12
- npm test
13
- ```
14
-
15
- Run the full release gate before opening a release PR:
16
-
17
- ```bash
18
- npm run release:verify
19
- ```
20
-
21
- ## Development Rules
22
-
23
- - Keep authored CSS in `styles/`.
24
- - Regenerate `dist/` with `npm run build`; do not hand-edit generated dist files.
25
- - Keep public layout classes prefixed with `ly-`.
26
- - Leave colors, typography, borders, shadows, native controls, focus states, themes, and modes to `ui-style-kit-css`.
27
- - Add structural aliases in `styles/integrations/ui-style-kit.css` only when they map to layout primitives or layout recipes.
28
- - Preserve semantic mobile DOM, reading, and focus order; built-in recipes must use named areas instead of `order`.
29
- - Test container behavior below and above `48rem` and `64rem`.
30
- - Update README, `docs/wiki`, and `CHANGELOG.md` when a public class, export, recipe, release workflow, or package behavior changes.
31
-
32
- ## Testing Expectations
33
-
34
- Every change that affects public behavior should update or preserve:
35
-
36
- - `test/layout-css-contract.test.mjs` for package, CSS, docs, and tarball contracts.
37
- - `test/release-docs-contract.test.mjs` for current documentation and workflow contracts.
38
- - `test/demo-smoke.test.mjs` for rendered demo behavior.
39
- - `test/pages-artifact.test.mjs` for GitHub Pages output.
40
- - `stylelint` for authored CSS formatting.
41
-
42
- ## Review Checklist
43
-
44
- - The package remains publishable as a public npm library.
45
- - The npm tarball contains only intended release files.
46
- - README examples use exported package entrypoints.
47
- - Documentation links resolve to versioned files.
48
- - Demo controls remain compact on mobile and tablet viewports.
49
- - Chromium, Firefox, and WebKit pass for release-facing rendered changes.
50
- - New CSS does not introduce UI Style Kit-owned visual declarations.
51
-
52
- ## Wiki Updates
53
-
54
- The source for the project wiki is `docs/wiki/`. If GitHub Wiki is enabled for the repository, mirror those files into the wiki remote after the main branch documentation is merged.
55
-
package/SECURITY.md DELETED
@@ -1,50 +0,0 @@
1
- # Security Policy
2
-
3
- `layout-style-css` is a CSS-only layout package. It does not execute JavaScript at runtime, make network requests, process user input, store credentials, or read secrets.
4
-
5
- ## Supported Versions
6
-
7
- | Version | Supported |
8
- | --- | --- |
9
- | `2.x` | Yes |
10
- | `1.1.x` | Migration support only |
11
- | `1.0.x` | No |
12
-
13
- ## Reporting A Vulnerability
14
-
15
- Use GitHub security advisories for private reports when available. If advisories are not enabled, open a minimal GitHub issue that avoids public exploit details and asks for a private coordination path.
16
-
17
- Please include:
18
-
19
- - affected version and package entrypoint
20
- - affected selector, file, or demo behavior
21
- - reproduction steps
22
- - expected impact
23
- - whether the issue affects package consumers, the demo, or GitHub Pages deployment
24
-
25
- ## Security Model
26
-
27
- The primary security risks for this package are supply-chain and documentation risks:
28
-
29
- - incorrect package exports that make consumers import unexpected files
30
- - malformed CDN examples that point to wrong assets
31
- - accidental runtime JavaScript or network behavior in docs or demo code
32
- - package contents that include secrets, build caches, or unrelated local files
33
- - CSS that hides important controls or breaks keyboard-visible flows in the demo
34
-
35
- The release gate verifies package contents, README imports, documentation links, CSS contracts, GitHub Pages artifact structure, and rendered behavior in Chromium, Firefox, and WebKit.
36
-
37
- ## Dependency Checks
38
-
39
- Run the local dependency audit before publishing:
40
-
41
- ```bash
42
- npm audit --audit-level=moderate
43
- ```
44
-
45
- The package also uses `npm run release:verify` to run build, lint, static, Pages, cross-browser, pack dry-run, and publish dry-run checks.
46
-
47
- The npm workflow validates a strict tag, exact peeled commit, protected-main ancestry, and package version before dependency lifecycle code runs. Publishing requires the protected `npm` GitHub Environment, emits npm provenance, and exposes `NODE_AUTH_TOKEN` only to the publish step. npm trusted publishing and immutable commit SHA pins for GitHub Actions remain follow-up hardening work.
48
-
49
- The demo's two exact-version companion CDN fixtures use SHA-384 subresource integrity with anonymous CORS. Their hashes are derived from the pinned local development fixtures and enforced by the rendered smoke contract.
50
-
@@ -1,7 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 180 180" role="img" aria-labelledby="title">
2
- <title id="title">layout-style-css app icon</title>
3
- <rect width="180" height="180" rx="40" fill="#111827"/>
4
- <rect x="30" y="34" width="40" height="112" rx="12" fill="#7dd3fc"/>
5
- <rect x="88" y="34" width="62" height="44" rx="12" fill="#fbbf24"/>
6
- <rect x="88" y="100" width="62" height="46" rx="12" fill="#f472b6"/>
7
- </svg>
@@ -1,7 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title">
2
- <title id="title">layout-style-css favicon</title>
3
- <rect width="64" height="64" rx="14" fill="#111827"/>
4
- <rect x="10" y="12" width="14" height="40" rx="4" fill="#7dd3fc"/>
5
- <rect x="30" y="12" width="24" height="16" rx="4" fill="#fbbf24"/>
6
- <rect x="30" y="36" width="24" height="16" rx="4" fill="#f472b6"/>
7
- </svg>
Binary file
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <browserconfig>
3
- <msapplication>
4
- <tile>
5
- <square150x150logo src="./assets/apple-touch-icon.svg"/>
6
- <TileColor>#111827</TileColor>
7
- </tile>
8
- </msapplication>
9
- </browserconfig>