layout-style-css 2.1.0 → 3.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.
- package/README.md +124 -145
- package/dist/core.css +2 -1
- package/dist/foundation.css +194 -0
- package/dist/layout-style-css.css +527 -941
- package/dist/layout-style-css.min.css +1 -1
- package/dist/personalities/bauhaus.css +13 -39
- package/dist/personalities/bento.css +16 -37
- package/dist/personalities/brutalism.css +13 -30
- package/dist/personalities/cyberpunk.css +12 -29
- package/dist/personalities/f-pattern.css +16 -42
- package/dist/personalities/maximalist.css +16 -45
- package/dist/personalities/minimal-saas.css +7 -31
- package/dist/personalities/mondrian.css +12 -37
- package/dist/personalities/neumorphism.css +15 -39
- package/dist/personalities/retro-glass.css +14 -39
- package/dist/personalities/retrofuturism.css +12 -29
- 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 -30
- package/dist/personalities/z-pattern.css +16 -43
- package/dist/personalities.css +1 -1
- package/dist/primitives.css +27 -63
- package/dist/recipes.css +92 -167
- package/dist/utilities.css +39 -104
- package/dist/wrappers.css +28 -108
- package/package.json +12 -24
- package/CHANGELOG.md +0 -90
- 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 -787
- package/docs/wiki/Contributing.md +0 -36
- package/docs/wiki/Demo-And-GitHub-Pages.md +0 -53
- package/docs/wiki/Getting-Started.md +0 -51
- package/docs/wiki/Home.md +0 -33
- package/docs/wiki/Installation-And-CDN.md +0 -72
- package/docs/wiki/Layout-Primitives.md +0 -48
- package/docs/wiki/Layout-Recipes.md +0 -49
- package/docs/wiki/Layout-Styles.md +0 -33
- package/docs/wiki/Migrating-To-2.0.md +0 -186
- package/docs/wiki/Release-And-Publishing.md +0 -77
- package/docs/wiki/Security-And-Support.md +0 -36
- package/docs/wiki/UI-Style-Kit-Compatibility.md +0 -49
- package/docs/wiki/_Sidebar.md +0 -15
- 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 -46
- package/styles/personalities/bento.css +0 -43
- package/styles/personalities/brutalism.css +0 -36
- package/styles/personalities/cyberpunk.css +0 -36
- package/styles/personalities/f-pattern.css +0 -48
- package/styles/personalities/maximalist.css +0 -51
- package/styles/personalities/minimal-saas.css +0 -37
- package/styles/personalities/mondrian.css +0 -44
- package/styles/personalities/neumorphism.css +0 -46
- package/styles/personalities/retro-glass.css +0 -44
- package/styles/personalities/retrofuturism.css +0 -36
- 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 -36
- package/styles/personalities/z-pattern.css +0 -49
- package/styles/personalities.css +0 -18
- package/styles/primitives.css +0 -219
- package/styles/recipes.css +0 -270
- package/styles/utilities.css +0 -162
- package/styles/wrappers.css +0 -174
package/dist/wrappers.css
CHANGED
|
@@ -1,127 +1,45 @@
|
|
|
1
|
-
@layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities
|
|
1
|
+
@layer ly.reset, ly.tokens, ly.wrappers, ly.primitives, ly.recipes, ly.utilities, ly.personalities;
|
|
2
2
|
|
|
3
|
-
/*
|
|
4
|
-
Shared structural tokens and wrapper geometry. Theme, type, borders, shadows,
|
|
5
|
-
and interactive states remain outside Layout Style's ownership boundary.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
@layer ly.tokens {
|
|
9
|
-
:where(.ly-root) {
|
|
10
|
-
--ly-space-0: 0;
|
|
11
|
-
--ly-space-1: 0.25rem;
|
|
12
|
-
--ly-space-2: 0.5rem;
|
|
13
|
-
--ly-space-3: 0.75rem;
|
|
14
|
-
--ly-space-4: 1rem;
|
|
15
|
-
--ly-space-5: 1.5rem;
|
|
16
|
-
--ly-space-6: 2rem;
|
|
17
|
-
--ly-space-7: 3rem;
|
|
18
|
-
--ly-space-8: 4rem;
|
|
19
|
-
--ly-space-9: 6rem;
|
|
20
|
-
|
|
21
|
-
--ly-wrapper-compact: 40rem;
|
|
22
|
-
--ly-wrapper-prose: 68ch;
|
|
23
|
-
--ly-wrapper-content: 72rem;
|
|
24
|
-
--ly-wrapper-wide: 112rem;
|
|
25
|
-
--ly-wrapper-max: var(--ly-wrapper-content);
|
|
26
|
-
--ly-page-padding-inline: clamp(1rem, 4vw, 3rem);
|
|
27
|
-
--ly-safe-area-inline: max(
|
|
28
|
-
env(safe-area-inset-left, 0px),
|
|
29
|
-
env(safe-area-inset-right, 0px)
|
|
30
|
-
);
|
|
31
|
-
--ly-wrapper-gutter: max(var(--ly-page-padding-inline), var(--ly-safe-area-inline));
|
|
32
|
-
|
|
33
|
-
--ly-section-padding-block: clamp(3rem, 7vw, 6rem);
|
|
34
|
-
--ly-gap: var(--ly-space-5);
|
|
35
|
-
--ly-grid-gap: var(--ly-gap);
|
|
36
|
-
--ly-stack-gap: var(--ly-space-4);
|
|
37
|
-
--ly-cluster-gap: var(--ly-space-3);
|
|
38
|
-
--ly-cover-min: 100svh;
|
|
39
|
-
--ly-switcher-threshold: 42rem;
|
|
40
|
-
--ly-sidebar-size: 18rem;
|
|
41
|
-
--ly-sidebar-content-min: 50%;
|
|
42
|
-
--ly-grid-columns: 12;
|
|
43
|
-
--ly-grid-min: 16rem;
|
|
44
|
-
--ly-pane-size: 22rem;
|
|
45
|
-
--ly-media-size: 14rem;
|
|
46
|
-
--ly-reel-item-min: 16rem;
|
|
47
|
-
--ly-reel-item-max: 28rem;
|
|
48
|
-
--ly-scroll-max: 70svh;
|
|
49
|
-
--ly-frame-ratio: 16 / 9;
|
|
50
|
-
|
|
51
|
-
--ly-recipe-rail: 18rem;
|
|
52
|
-
--ly-recipe-aside: 22rem;
|
|
53
|
-
--ly-card-grid-min: 16rem;
|
|
54
|
-
--ly-gallery-min: 12rem;
|
|
55
|
-
--ly-card-size-sm: 10rem;
|
|
56
|
-
--ly-card-size-md: 14rem;
|
|
57
|
-
--ly-card-size-lg: 18rem;
|
|
58
|
-
--ly-header-height: 4.5rem;
|
|
59
|
-
--ly-z-header: 20;
|
|
60
|
-
|
|
61
|
-
/* V1 token aliases remain available so legacy selectors can preserve sizing. */
|
|
62
|
-
--ly-container-sm: var(--ly-wrapper-compact);
|
|
63
|
-
--ly-container-md: 56rem;
|
|
64
|
-
--ly-container-lg: var(--ly-wrapper-content);
|
|
65
|
-
--ly-container-xl: 88rem;
|
|
66
|
-
--ly-container-wide: var(--ly-wrapper-wide);
|
|
67
|
-
--ly-container-max: var(--ly-container-lg);
|
|
68
|
-
--ly-content-readable: var(--ly-wrapper-prose);
|
|
69
|
-
--ly-carousel-item-min: var(--ly-reel-item-min);
|
|
70
|
-
--ly-carousel-item-max: var(--ly-reel-item-max);
|
|
71
|
-
--ly-sidebar-min: 14rem;
|
|
72
|
-
--ly-sidebar-width: var(--ly-recipe-rail);
|
|
73
|
-
--ly-sidebar-max: var(--ly-recipe-aside);
|
|
74
|
-
--ly-pane-fixed: var(--ly-pane-size);
|
|
75
|
-
--ly-z-sidebar: 10;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
@layer ly.reset {
|
|
80
|
-
:where(.ly-root),
|
|
81
|
-
:where(.ly-root *) {
|
|
82
|
-
box-sizing: border-box;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
:where(.ly-root) {
|
|
86
|
-
min-inline-size: 0;
|
|
87
|
-
margin: 0;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
:where(.ly-root img),
|
|
91
|
-
:where(.ly-root svg),
|
|
92
|
-
:where(.ly-root video),
|
|
93
|
-
:where(.ly-root canvas) {
|
|
94
|
-
max-inline-size: 100%;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
3
|
+
/* Wrappers provide fluid measures and become the nearest responsive scope. */
|
|
97
4
|
|
|
98
5
|
@layer ly.wrappers {
|
|
99
6
|
.ly-wrapper {
|
|
100
|
-
/* Personalities provide only the plain-wrapper default; explicit variants stay authoritative. */
|
|
101
7
|
--ly-wrapper-max: var(--ly-personality-wrapper-max, var(--ly-wrapper-content));
|
|
8
|
+
--ly-wrapper-fluid-gutter: clamp(1rem, 3vw, 3rem);
|
|
9
|
+
--ly-wrapper-local-gutter: max(
|
|
10
|
+
var(--ly-wrapper-fluid-gutter),
|
|
11
|
+
var(--ly-safe-area-inline)
|
|
12
|
+
);
|
|
102
13
|
|
|
103
|
-
|
|
104
|
-
container-name: ly-wrapper;
|
|
14
|
+
container-name: ly-scope;
|
|
105
15
|
container-type: inline-size;
|
|
106
|
-
inline-size: min(100%, calc(var(--ly-wrapper-max) + (var(--ly-wrapper-gutter) * 2)));
|
|
16
|
+
inline-size: min(100%, calc(var(--ly-wrapper-max) + (var(--ly-wrapper-local-gutter) * 2)));
|
|
17
|
+
max-inline-size: 100%;
|
|
107
18
|
margin-inline: auto;
|
|
108
|
-
padding-inline: var(--ly-wrapper-gutter);
|
|
19
|
+
padding-inline: var(--ly-wrapper-local-gutter);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* Container-relative gutters enhance the universally valid viewport fallback. */
|
|
23
|
+
@supports (width: 1cqi) {
|
|
24
|
+
.ly-wrapper {
|
|
25
|
+
--ly-wrapper-fluid-gutter: clamp(1rem, 3cqi, 3rem);
|
|
26
|
+
}
|
|
109
27
|
}
|
|
110
28
|
|
|
111
29
|
.ly-wrapper--compact {
|
|
112
|
-
--ly-wrapper-max:
|
|
30
|
+
--ly-wrapper-max: var(--ly-wrapper-compact);
|
|
113
31
|
}
|
|
114
32
|
|
|
115
33
|
.ly-wrapper--prose {
|
|
116
|
-
--ly-wrapper-max:
|
|
34
|
+
--ly-wrapper-max: var(--ly-wrapper-prose);
|
|
117
35
|
}
|
|
118
36
|
|
|
119
37
|
.ly-wrapper--content {
|
|
120
|
-
--ly-wrapper-max:
|
|
38
|
+
--ly-wrapper-max: var(--ly-wrapper-content);
|
|
121
39
|
}
|
|
122
40
|
|
|
123
41
|
.ly-wrapper--wide {
|
|
124
|
-
--ly-wrapper-max:
|
|
42
|
+
--ly-wrapper-max: var(--ly-wrapper-wide);
|
|
125
43
|
}
|
|
126
44
|
|
|
127
45
|
.ly-wrapper--full {
|
|
@@ -129,18 +47,19 @@
|
|
|
129
47
|
}
|
|
130
48
|
|
|
131
49
|
.ly-wrapper--breakout {
|
|
50
|
+
--ly-wrapper-max: 100%;
|
|
132
51
|
--ly-breakout-content-size: min(
|
|
133
52
|
var(--ly-wrapper-content),
|
|
134
|
-
calc(100% - (var(--ly-wrapper-gutter) * 2))
|
|
53
|
+
calc(100% - (var(--ly-wrapper-local-gutter) * 2))
|
|
135
54
|
);
|
|
136
55
|
--ly-breakout-feature-size: min(
|
|
137
56
|
var(--ly-wrapper-wide),
|
|
138
|
-
calc(100% - (var(--ly-wrapper-gutter) * 2))
|
|
57
|
+
calc(100% - (var(--ly-wrapper-local-gutter) * 2))
|
|
139
58
|
);
|
|
140
59
|
|
|
141
60
|
display: grid;
|
|
142
61
|
grid-template-columns:
|
|
143
|
-
[full-start] minmax(min(100%, var(--ly-wrapper-gutter)), 1fr)
|
|
62
|
+
[full-start] minmax(min(100%, var(--ly-wrapper-local-gutter)), 1fr)
|
|
144
63
|
[feature-start] minmax(
|
|
145
64
|
0,
|
|
146
65
|
calc((var(--ly-breakout-feature-size) - var(--ly-breakout-content-size)) / 2)
|
|
@@ -150,7 +69,7 @@
|
|
|
150
69
|
0,
|
|
151
70
|
calc((var(--ly-breakout-feature-size) - var(--ly-breakout-content-size)) / 2)
|
|
152
71
|
)
|
|
153
|
-
[feature-end] minmax(min(100%, var(--ly-wrapper-gutter)), 1fr) [full-end];
|
|
72
|
+
[feature-end] minmax(min(100%, var(--ly-wrapper-local-gutter)), 1fr) [full-end];
|
|
154
73
|
inline-size: 100%;
|
|
155
74
|
padding-inline: 0;
|
|
156
75
|
}
|
|
@@ -158,6 +77,7 @@
|
|
|
158
77
|
.ly-wrapper--breakout > * {
|
|
159
78
|
grid-column: content;
|
|
160
79
|
min-inline-size: 0;
|
|
80
|
+
max-inline-size: 100%;
|
|
161
81
|
}
|
|
162
82
|
|
|
163
83
|
.ly-wrapper--breakout > :where(.ly-lane--content, [data-ly-lane="content"]) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "layout-style-css",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
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",
|
|
@@ -60,39 +60,27 @@
|
|
|
60
60
|
},
|
|
61
61
|
"exports": {
|
|
62
62
|
".": "./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
63
|
"./min.css": "./dist/layout-style-css.min.css",
|
|
67
64
|
"./core.css": "./dist/core.css",
|
|
65
|
+
"./foundation.css": "./dist/foundation.css",
|
|
68
66
|
"./wrappers.css": "./dist/wrappers.css",
|
|
69
67
|
"./primitives.css": "./dist/primitives.css",
|
|
70
68
|
"./recipes.css": "./dist/recipes.css",
|
|
71
69
|
"./utilities.css": "./dist/utilities.css",
|
|
72
70
|
"./personalities.css": "./dist/personalities.css",
|
|
73
71
|
"./personalities/*.css": "./dist/personalities/*.css",
|
|
74
|
-
"./integrations/ui-style-kit.css": "./dist/integrations/ui-style-kit.css",
|
|
75
|
-
"./legacy.css": "./dist/legacy.css",
|
|
76
72
|
"./package.json": "./package.json"
|
|
77
73
|
},
|
|
78
74
|
"files": [
|
|
79
|
-
"dist",
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"demo/robots.txt",
|
|
90
|
-
"demo/site.webmanifest",
|
|
91
|
-
"demo/sitemap.xml",
|
|
92
|
-
"README.md",
|
|
93
|
-
"CHANGELOG.md",
|
|
94
|
-
"CONTRIBUTING.md",
|
|
95
|
-
"SECURITY.md",
|
|
96
|
-
"LICENSE"
|
|
75
|
+
"dist/layout-style-css.css",
|
|
76
|
+
"dist/layout-style-css.min.css",
|
|
77
|
+
"dist/core.css",
|
|
78
|
+
"dist/foundation.css",
|
|
79
|
+
"dist/wrappers.css",
|
|
80
|
+
"dist/primitives.css",
|
|
81
|
+
"dist/recipes.css",
|
|
82
|
+
"dist/utilities.css",
|
|
83
|
+
"dist/personalities.css",
|
|
84
|
+
"dist/personalities/*.css"
|
|
97
85
|
]
|
|
98
86
|
}
|
package/CHANGELOG.md
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to `layout-style-css` are documented here. This project follows semantic versioning.
|
|
4
|
-
|
|
5
|
-
## [2.1.0] - 2026-07-20
|
|
6
|
-
|
|
7
|
-
### Changed
|
|
8
|
-
|
|
9
|
-
- Updated the ecosystem demo and documentation to use `ui-style-kit-css@2.1.0` visual CSS, `ui-style-kit-css/interactive-surface-theme.css`, `interactive-surface-css@1.5.0` state core, and Layout core as the canonical import order.
|
|
10
|
-
- Kept `layout-style-css/integrations/ui-style-kit.css` available as a frozen deprecated structural bridge for legacy UI-prefixed layout aliases.
|
|
11
|
-
- Updated release metadata and the GitHub Pages demo to identify the 2.1.0 package line.
|
|
12
|
-
|
|
13
|
-
### Tests
|
|
14
|
-
|
|
15
|
-
- Switched demo fixtures to consume the staged UI Style Kit 2.1 manifest, visual bundle, and token bridge while locking Interactive Surface to the released 1.5.0 package.
|
|
16
|
-
|
|
17
|
-
## [2.0.0] - 2026-07-19
|
|
18
|
-
|
|
19
|
-
### Breaking
|
|
20
|
-
|
|
21
|
-
- Rebuilt the package as a dependency-free, container-first layout system requiring Node.js 20 or newer for development scripts.
|
|
22
|
-
- Replaced size-tier wrappers with compact, prose, content, wide, full, and breakout semantics; wrappers now include fluid logical gutters and safe-area compensation.
|
|
23
|
-
- Standardized personalities, recipes, and regions on `data-ly-layout`, `data-ly-recipe`, and `data-ly-area`.
|
|
24
|
-
- Replaced root personality exports and companion `all-with-ui-kit*` aggregates with focused modules under `personalities/` and `integrations/`.
|
|
25
|
-
- Moved v1 containers, root hooks, columns, and recipe aliases into the opt-in `legacy.css` bundle for the v2 line; removal is scheduled for v3.
|
|
26
|
-
|
|
27
|
-
### Added
|
|
28
|
-
|
|
29
|
-
- Added stack, cluster, center, cover, switcher, sidebar, grid, split, panes, media, reel, frame, and bounded-scroll primitives.
|
|
30
|
-
- Added seven functional recipes that preserve mobile DOM, reading, and focus order while rearranging named areas at `48rem` and `64rem` container thresholds.
|
|
31
|
-
- Made every `data-ly-recipe` value a complete alternative to its matching class and kept explicit wrapper measures authoritative under all personalities.
|
|
32
|
-
- Added sixteen spatially distinct personalities across left-rail, right-rail, three-zone, mosaic, and equal-split families.
|
|
33
|
-
- Added explicit base, medium-container, and large-container order escape hatches with accessibility guidance.
|
|
34
|
-
- Added a maintainable interactive layout lab with allowlisted query state, copyable snippets, ecosystem modes, and rendered coverage at 375px, 768px, 1280px, and 1440px.
|
|
35
|
-
- Added a complete 1.x-to-2.0 migration guide, Node.js 20/22 CI, and Chromium, Firefox, and WebKit release verification.
|
|
36
|
-
|
|
37
|
-
### Integration
|
|
38
|
-
|
|
39
|
-
- Pinned `ui-style-kit-css@2.0.1` and `interactive-surface-css@1.4.0` as development fixtures only; the default package has no companion imports, peer dependencies, or runtime dependencies.
|
|
40
|
-
- Documented the all-three import order as UI Style Kit bridge, Interactive Surface `state-core.css`, Layout integration bridge, then Layout core.
|
|
41
|
-
- Kept the upcoming UI Style Kit revision as a follow-up outside this release.
|
|
42
|
-
- Preserved structural v1 `.ly-content` and `.ly-divider` compatibility while leaving the removed paint-owned `.ly-surface--raised` selector to UI Style Kit or application themes.
|
|
43
|
-
|
|
44
|
-
## [1.1.2] - 2026-07-08
|
|
45
|
-
|
|
46
|
-
### Fixed
|
|
47
|
-
|
|
48
|
-
- Reissued the release metadata, package lock, README install examples, wiki checklist, and publish workflow recovery tag under `1.1.2`.
|
|
49
|
-
- Kept the additive `1.1.1` CSS and documentation contract intact while moving the publish target to a clean patch version.
|
|
50
|
-
|
|
51
|
-
## [1.1.1] - 2026-07-05
|
|
52
|
-
|
|
53
|
-
### Added
|
|
54
|
-
|
|
55
|
-
- Added versioned wiki documentation under `docs/wiki` for installation, layout primitives, recipes, UI Style Kit compatibility, demo deployment, publishing, security, and contribution workflows.
|
|
56
|
-
- Added UI Style Kit-compatible structural aliases for `saas`, `bento`, `max`, `bau`, `tactile`, `neo`, `retro`, `brutal`, `cyber`, `y2k`, and `rg` prefixes.
|
|
57
|
-
- Added layout recipe helpers for button groups, card grids, card sizing, galleries, and carousels.
|
|
58
|
-
- Added F-Pattern, Z-Pattern, Split-Screen, Mondrian, and Synthwave layout styles.
|
|
59
|
-
- Added `layout-style-css/all-with-ui-kit-and-interactive-surface.css` for the three-library import path.
|
|
60
|
-
- Added direct `./dist/*.css` package exports for consumers that need generated dist files.
|
|
61
|
-
- Added `CHANGELOG.md`, `CONTRIBUTING.md`, and `SECURITY.md` to the release documentation set.
|
|
62
|
-
|
|
63
|
-
### Changed
|
|
64
|
-
|
|
65
|
-
- Reworked the demo mobile controls into a compact drawer so the sticky header does not consume the mobile viewport.
|
|
66
|
-
- Expanded the demo to cover app shell, wrappers, split layouts, sidebars, panes, button groups, card grids, card sizes, galleries, carousels, frames, and scroll areas.
|
|
67
|
-
- Updated README examples to use exported CSS entrypoints and valid CDN links.
|
|
68
|
-
- Updated npm release metadata, package file allowlist, and release verification scripts for the `1.1.1` package.
|
|
69
|
-
- Updated the npm publish workflow to publish from `release.published` events and explicit `workflow_dispatch` tags.
|
|
70
|
-
|
|
71
|
-
### Fixed
|
|
72
|
-
|
|
73
|
-
- Fixed README quick-start imports that referenced non-exported paths.
|
|
74
|
-
- Fixed malformed UI Style Kit CDN link markup in the README.
|
|
75
|
-
- Clarified responsive column utility documentation so class groups do not imply bare numeric class names.
|
|
76
|
-
- Preserved GitHub Pages artifact generation with a Pages-root `index.html`.
|
|
77
|
-
- Fixed the release automation path so draft releases can be published before the npm workflow runs.
|
|
78
|
-
|
|
79
|
-
### Security
|
|
80
|
-
|
|
81
|
-
- Kept the layout CSS contract free of visual properties owned by `ui-style-kit-css`.
|
|
82
|
-
- Kept the package CSS-only at runtime with no network calls, dynamic script execution, or secret handling.
|
|
83
|
-
- Added release verification coverage for npm pack contents and documentation completeness.
|
|
84
|
-
|
|
85
|
-
## [1.0.0]
|
|
86
|
-
|
|
87
|
-
### Added
|
|
88
|
-
|
|
89
|
-
- Initial public release of layout primitives, layout style files, generated dist bundles, and demo coverage.
|
|
90
|
-
|
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
|