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.
- package/CHANGELOG.md +47 -0
- package/README.md +127 -143
- package/dist/core.css +2 -1
- package/dist/foundation.css +194 -0
- package/dist/layout-style-css.css +527 -984
- package/dist/layout-style-css.min.css +1 -1
- package/dist/personalities/bauhaus.css +13 -42
- package/dist/personalities/bento.css +16 -40
- package/dist/personalities/brutalism.css +13 -33
- package/dist/personalities/cyberpunk.css +12 -32
- package/dist/personalities/f-pattern.css +16 -45
- package/dist/personalities/maximalist.css +16 -48
- package/dist/personalities/minimal-saas.css +7 -33
- package/dist/personalities/mondrian.css +12 -40
- package/dist/personalities/neumorphism.css +15 -39
- package/dist/personalities/retro-glass.css +14 -42
- package/dist/personalities/retrofuturism.css +12 -32
- package/dist/personalities/split-screen.css +24 -36
- package/dist/personalities/synthwave.css +13 -41
- package/dist/personalities/tactile.css +15 -32
- package/dist/personalities/y2k.css +13 -33
- package/dist/personalities/z-pattern.css +16 -46
- package/dist/personalities.css +1 -1
- package/dist/primitives.css +27 -63
- package/dist/recipes.css +92 -175
- package/dist/utilities.css +39 -104
- package/dist/wrappers.css +28 -108
- package/docs/wiki/Contributing.md +3 -1
- package/docs/wiki/Demo-And-GitHub-Pages.md +24 -33
- package/docs/wiki/Getting-Started.md +39 -27
- package/docs/wiki/Home.md +21 -27
- package/docs/wiki/Installation-And-CDN.md +47 -42
- package/docs/wiki/Layout-Primitives.md +48 -34
- package/docs/wiki/Layout-Recipes.md +42 -33
- package/docs/wiki/Layout-Styles.md +60 -26
- package/docs/wiki/Migrating-To-3.0.md +205 -0
- package/docs/wiki/Release-And-Publishing.md +36 -51
- package/docs/wiki/Security-And-Support.md +18 -22
- package/docs/wiki/UI-Style-Kit-Compatibility.md +21 -30
- package/docs/wiki/_Sidebar.md +12 -15
- package/manifest.json +98 -0
- package/package.json +33 -28
- package/personalities.json +147 -0
- package/CONTRIBUTING.md +0 -55
- package/SECURITY.md +0 -50
- package/demo/assets/apple-touch-icon.svg +0 -7
- package/demo/assets/favicon.svg +0 -7
- package/demo/assets/social-card.png +0 -0
- package/demo/browserconfig.xml +0 -9
- package/demo/demo.css +0 -523
- package/demo/demo.js +0 -605
- package/demo/index.html +0 -325
- package/demo/robots.txt +0 -4
- package/demo/site.webmanifest +0 -23
- package/demo/sitemap.xml +0 -9
- package/dist/integrations/ui-style-kit.css +0 -175
- package/dist/legacy.css +0 -822
- package/styles/core.css +0 -6
- package/styles/integrations/ui-style-kit.css +0 -175
- package/styles/legacy.css +0 -173
- package/styles/personalities/bauhaus.css +0 -49
- package/styles/personalities/bento.css +0 -46
- package/styles/personalities/brutalism.css +0 -39
- package/styles/personalities/cyberpunk.css +0 -39
- package/styles/personalities/f-pattern.css +0 -51
- package/styles/personalities/maximalist.css +0 -54
- package/styles/personalities/minimal-saas.css +0 -39
- package/styles/personalities/mondrian.css +0 -47
- package/styles/personalities/neumorphism.css +0 -46
- package/styles/personalities/retro-glass.css +0 -47
- package/styles/personalities/retrofuturism.css +0 -39
- package/styles/personalities/split-screen.css +0 -41
- package/styles/personalities/synthwave.css +0 -48
- package/styles/personalities/tactile.css +0 -39
- package/styles/personalities/y2k.css +0 -39
- package/styles/personalities/z-pattern.css +0 -52
- package/styles/personalities.css +0 -18
- package/styles/primitives.css +0 -219
- package/styles/recipes.css +0 -278
- package/styles/utilities.css +0 -162
- package/styles/wrappers.css +0 -174
|
@@ -1,25 +1,16 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Companion Library Compatibility
|
|
2
2
|
|
|
3
|
-
Layout Style CSS
|
|
3
|
+
Layout Style CSS v3 has no bridge, peer dependency, or companion import.
|
|
4
4
|
|
|
5
|
-
## Ownership
|
|
5
|
+
## Ownership
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
24
|
+
## Markup
|
|
34
25
|
|
|
35
|
-
|
|
26
|
+
Put canonical structural hooks in markup:
|
|
36
27
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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).
|
package/docs/wiki/_Sidebar.md
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
- [
|
|
4
|
-
- [
|
|
5
|
-
- [
|
|
6
|
-
- [Layout
|
|
7
|
-
- [
|
|
8
|
-
- [
|
|
9
|
-
- [
|
|
10
|
-
- [
|
|
11
|
-
- [
|
|
12
|
-
- [
|
|
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": "
|
|
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.
|
|
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.
|
|
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
|
-
"
|
|
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:
|
|
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
|
-
"./
|
|
75
|
-
"./
|
|
81
|
+
"./personalities.json": "./personalities.json",
|
|
82
|
+
"./manifest.json": "./manifest.json",
|
|
76
83
|
"./package.json": "./package.json"
|
|
77
84
|
},
|
|
78
85
|
"files": [
|
|
79
|
-
"dist",
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
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
|
-
"
|
|
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>
|
package/demo/assets/favicon.svg
DELETED
|
@@ -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
|