layout-style-css 1.0.0 → 1.1.2

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 (37) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/CONTRIBUTING.md +50 -0
  3. package/README.md +205 -16
  4. package/SECURITY.md +45 -0
  5. package/demo/assets/social-card.png +0 -0
  6. package/demo/index.html +358 -82
  7. package/dist/layout-all.css +5 -0
  8. package/dist/layout-base.css +67 -0
  9. package/dist/layout-style-css.css +571 -0
  10. package/dist/layout-style-css.min.css +1 -1
  11. package/dist/layout-style-f-pattern.css +76 -0
  12. package/dist/layout-style-mondrian.css +77 -0
  13. package/dist/layout-style-split-screen.css +62 -0
  14. package/dist/layout-style-synthwave.css +88 -0
  15. package/dist/layout-style-z-pattern.css +76 -0
  16. package/dist/layout-ui-style-kit-bridge.css +115 -0
  17. package/docs/wiki/Contributing.md +30 -0
  18. package/docs/wiki/Demo-And-GitHub-Pages.md +39 -0
  19. package/docs/wiki/Getting-Started.md +68 -0
  20. package/docs/wiki/Home.md +48 -0
  21. package/docs/wiki/Installation-And-CDN.md +58 -0
  22. package/docs/wiki/Layout-Primitives.md +57 -0
  23. package/docs/wiki/Layout-Recipes.md +80 -0
  24. package/docs/wiki/Layout-Styles.md +43 -0
  25. package/docs/wiki/Release-And-Publishing.md +69 -0
  26. package/docs/wiki/Security-And-Support.md +34 -0
  27. package/docs/wiki/UI-Style-Kit-Compatibility.md +54 -0
  28. package/docs/wiki/_Sidebar.md +14 -0
  29. package/package.json +12 -2
  30. package/styles/layout-base.css +67 -0
  31. package/styles/layout-style-f-pattern.css +76 -0
  32. package/styles/layout-style-mondrian.css +77 -0
  33. package/styles/layout-style-split-screen.css +62 -0
  34. package/styles/layout-style-synthwave.css +88 -0
  35. package/styles/layout-style-z-pattern.css +76 -0
  36. package/styles/layout-ui-style-kit-bridge.css +115 -0
  37. package/demo/assets/social-card.svg +0 -17
package/CHANGELOG.md ADDED
@@ -0,0 +1,53 @@
1
+ # Changelog
2
+
3
+ All notable changes to `layout-style-css` are documented here.
4
+
5
+ This project follows semantic versioning. The `1.1.2` release is a patch recovery for the `1.1.1` package and keeps the existing `ly-*` public contract intact.
6
+
7
+ ## [1.1.2] - 2026-07-08
8
+
9
+ ### Fixed
10
+
11
+ - Reissued the release metadata, package lock, README install examples, wiki checklist, and publish workflow recovery tag under `1.1.2`.
12
+ - Kept the additive `1.1.1` CSS and documentation contract intact while moving the publish target to a clean patch version.
13
+
14
+ ## [1.1.1] - 2026-07-05
15
+
16
+ ### Added
17
+
18
+ - Added versioned wiki documentation under `docs/wiki` for installation, layout primitives, recipes, UI Style Kit compatibility, demo deployment, publishing, security, and contribution workflows.
19
+ - Added UI Style Kit-compatible structural aliases for `saas`, `bento`, `max`, `bau`, `tactile`, `neo`, `retro`, `brutal`, `cyber`, `y2k`, and `rg` prefixes.
20
+ - Added layout recipe helpers for button groups, card grids, card sizing, galleries, and carousels.
21
+ - Added F-Pattern, Z-Pattern, Split-Screen, Mondrian, and Synthwave layout styles.
22
+ - Added `layout-style-css/all-with-ui-kit-and-interactive-surface.css` for the three-library import path.
23
+ - Added direct `./dist/*.css` package exports for consumers that need generated dist files.
24
+ - Added `CHANGELOG.md`, `CONTRIBUTING.md`, and `SECURITY.md` to the release documentation set.
25
+
26
+ ### Changed
27
+
28
+ - Reworked the demo mobile controls into a compact drawer so the sticky header does not consume the mobile viewport.
29
+ - Expanded the demo to cover app shell, wrappers, split layouts, sidebars, panes, button groups, card grids, card sizes, galleries, carousels, frames, and scroll areas.
30
+ - Updated README examples to use exported CSS entrypoints and valid CDN links.
31
+ - Updated npm release metadata, package file allowlist, and release verification scripts for the `1.1.1` package.
32
+ - Updated the npm publish workflow to publish from `release.published` events and explicit `workflow_dispatch` tags.
33
+
34
+ ### Fixed
35
+
36
+ - Fixed README quick-start imports that referenced non-exported paths.
37
+ - Fixed malformed UI Style Kit CDN link markup in the README.
38
+ - Clarified responsive column utility documentation so class groups do not imply bare numeric class names.
39
+ - Preserved GitHub Pages artifact generation with a Pages-root `index.html`.
40
+ - Fixed the release automation path so draft releases can be published before the npm workflow runs.
41
+
42
+ ### Security
43
+
44
+ - Kept the layout CSS contract free of visual properties owned by `ui-style-kit-css`.
45
+ - Kept the package CSS-only at runtime with no network calls, dynamic script execution, or secret handling.
46
+ - Added release verification coverage for npm pack contents and documentation completeness.
47
+
48
+ ## [1.0.0]
49
+
50
+ ### Added
51
+
52
+ - Initial public release of layout primitives, layout style files, generated dist bundles, and demo coverage.
53
+
@@ -0,0 +1,50 @@
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 test
12
+ ```
13
+
14
+ Run the full release gate before opening a release PR:
15
+
16
+ ```bash
17
+ npm run release:verify
18
+ ```
19
+
20
+ ## Development Rules
21
+
22
+ - Keep authored CSS in `styles/`.
23
+ - Regenerate `dist/` with `npm run build`; do not hand-edit generated dist files.
24
+ - Keep public layout classes prefixed with `ly-`.
25
+ - Leave colors, typography, borders, shadows, native controls, focus states, themes, and modes to `ui-style-kit-css`.
26
+ - Add structural aliases in `styles/layout-ui-style-kit-bridge.css` only when they map to layout primitives or layout recipes.
27
+ - Update README, `docs/wiki`, and `CHANGELOG.md` when a public class, export, recipe, release workflow, or package behavior changes.
28
+
29
+ ## Testing Expectations
30
+
31
+ Every change that affects public behavior should update or preserve:
32
+
33
+ - `test/layout-css-contract.test.mjs` for package, CSS, docs, and tarball contracts.
34
+ - `test/demo-smoke.test.mjs` for rendered demo behavior.
35
+ - `test/pages-artifact.test.mjs` for GitHub Pages output.
36
+ - `stylelint` for authored CSS formatting.
37
+
38
+ ## Review Checklist
39
+
40
+ - The package remains publishable as a public npm library.
41
+ - The npm tarball contains only intended release files.
42
+ - README examples use exported package entrypoints.
43
+ - Documentation links resolve to versioned files.
44
+ - Demo controls remain compact on mobile and tablet viewports.
45
+ - New CSS does not introduce UI Style Kit-owned visual declarations.
46
+
47
+ ## Wiki Updates
48
+
49
+ 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.
50
+
package/README.md CHANGED
@@ -4,6 +4,28 @@ Responsive CSS layout primitives for shell-first interfaces.
4
4
 
5
5
  `layout-style-css` gives applications a small, predictable composition layer: wrappers, app shells, grids, panes, sidebars, split sections, spacing utilities, and switchable layout personalities. It is designed to pair with `ui-style-kit-css@2.0.1`, while keeping layout decisions independent from visual theme decisions.
6
6
 
7
+ ## Documentation And Wiki
8
+
9
+ The versioned wiki source lives in this repository so docs can be reviewed with code changes and shipped with the npm package:
10
+
11
+ | Resource | Use it for |
12
+ | --- | --- |
13
+ | [Wiki home](docs/wiki/Home.md) | Release overview and navigation. |
14
+ | [Getting started](docs/wiki/Getting-Started.md) | First install, first shell, and switching layouts. |
15
+ | [Installation and CDN](docs/wiki/Installation-And-CDN.md) | npm, bundler, CDN, and package entrypoint guidance. |
16
+ | [Layout primitives](docs/wiki/Layout-Primitives.md) | Wrapper, shell, grid, pane, frame, and utility contracts. |
17
+ | [Layout recipes](docs/wiki/Layout-Recipes.md) | Copyable app shell, button group, card grid, gallery, and carousel patterns. |
18
+ | [Layout styles](docs/wiki/Layout-Styles.md) | All layout personalities, including F-Pattern, Z-Pattern, Split-Screen, Mondrian, and Synthwave. |
19
+ | [UI Style Kit compatibility](docs/wiki/UI-Style-Kit-Compatibility.md) | Prefix aliases and the boundary between structure and visual styling. |
20
+ | [Demo and GitHub Pages](docs/wiki/Demo-And-GitHub-Pages.md) | Demo QA, Pages artifact behavior, and deployment setup. |
21
+ | [Release and publishing](docs/wiki/Release-And-Publishing.md) | v1.1.2 release checklist, npm verification, and tag guidance. |
22
+ | [Security and support](docs/wiki/Security-And-Support.md) | Security model, supported versions, and reporting path. |
23
+ | [Contributing](docs/wiki/Contributing.md) | Local development, CSS rules, and review expectations. |
24
+ | [Wiki sidebar source](docs/wiki/_Sidebar.md) | Navigation file for a GitHub Wiki mirror. |
25
+ | [Changelog](CHANGELOG.md) | Version history. |
26
+ | [Project contributing guide](CONTRIBUTING.md) | Repository-level contribution workflow. |
27
+ | [Security policy](SECURITY.md) | Repository-level security policy. |
28
+
7
29
  ## Why It Exists
8
30
 
9
31
  Modern UI systems often mix two concerns:
@@ -15,14 +37,30 @@ This package owns the spatial layer only. That separation lets you change layout
15
37
 
16
38
  ## Install
17
39
 
40
+ Use as a standalone layout system with all styles or just one layout personality.
41
+
18
42
  ```bash
19
- npm install layout-style-css ui-style-kit-css@2.0.1
43
+ # Install the full layout system
44
+ npm install layout-style-css@1.1.2
20
45
  ```
21
46
 
22
- Install Interactive Surface CSS only when you want the optional three-library bundle:
47
+ Then import whichever CSS entrypoints you need:
48
+
49
+ ```js
50
+ import "layout-style-css/base.css";
51
+ import "layout-style-css/minimal-saas.css";
52
+ ```
53
+
54
+ Pair with UI Style Kit CSS for a complete layout and visual system. Themes and layouts can mix and match UI styles. Set the vibe with color schemes that offer a range of moods, from minimal to maximal, from Bauhaus to Brutalism.
23
55
 
24
56
  ```bash
25
- npm install interactive-surface-css@1.2.5
57
+ npm install layout-style-css@1.1.2 ui-style-kit-css@2.0.1
58
+ ```
59
+
60
+ Additionally installing Interactive Surface CSS sets you up with a complete reactive layout and surface system.
61
+
62
+ ```bash
63
+ npm install layout-style-css@1.1.2 ui-style-kit-css@2.0.1 interactive-surface-css@1.2.5
26
64
  ```
27
65
 
28
66
  ## Quick Start
@@ -30,7 +68,17 @@ npm install interactive-surface-css@1.2.5
30
68
  Import UI Style Kit first, then the layout CSS:
31
69
 
32
70
  ```js
33
- import "ui-style-kit-css/dist/ui-style-kit.css";
71
+ import "interactive-surface-css/interactive-surface.css";
72
+ import "ui-style-kit-css/with-bridge.css";
73
+ import "layout-style-css/bridge.css";
74
+ ```
75
+
76
+ For a direct three-library setup, import each CSS entrypoint explicitly:
77
+
78
+ ```js
79
+ import "ui-style-kit-css/with-bridge.css";
80
+ import "interactive-surface-css/interactive-surface.css";
81
+ import "layout-style-css/bridge.css";
34
82
  import "layout-style-css";
35
83
  ```
36
84
 
@@ -39,10 +87,10 @@ Use one root element for UI style, layout style, theme, and mode:
39
87
  ```html
40
88
  <body
41
89
  class="ly-root"
42
- data-ui="minimal-saas"
43
- data-layout="minimal-saas"
44
- data-theme="arctic-indigo"
45
- data-mode="light"
90
+ data-ui="retro-glass"
91
+ data-layout="cyberpunk"
92
+ data-theme="ocean-steel"
93
+ data-mode="auto"
46
94
  >
47
95
  <div class="ly-app-shell">
48
96
  <aside class="ly-app-sidebar ly-pad-6">Navigation</aside>
@@ -70,11 +118,12 @@ Layout-only CDN entry:
70
118
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layout-style-css@1/dist/layout-style-css.min.css">
71
119
  ```
72
120
 
73
- Recommended CDN pairing with UI Style Kit:
121
+ Recommended CDN pairing with UI Style Kit and Interactive Surface:
74
122
 
75
123
  ```html
76
- <link rel="stylesheet" href="https://unpkg.com/ui-style-kit-css@2.0.1/dist/ui-style-kit.min.css">
124
+ <link rel="stylesheet" href="https://unpkg.com/ui-style-kit-css@2.0.1/dist/ui-style-kit.with-bridge.min.css">
77
125
  <link rel="stylesheet" href="https://unpkg.com/layout-style-css@1/dist/layout-style-css.min.css">
126
+ <link rel="stylesheet" href="https://unpkg.com/interactive-surface-css@1.2.5/dist/interactive-surface.min.css">
78
127
  ```
79
128
 
80
129
  ## Import Options
@@ -85,7 +134,7 @@ Recommended CDN pairing with UI Style Kit:
85
134
  | `import "layout-style-css/min.css";` | Minified layout-only CSS. |
86
135
  | `import "layout-style-css/all.css";` | Import-based bundle for all layout files. |
87
136
  | `import "layout-style-css/base.css";` | Base primitives only. |
88
- | `import "layout-style-css/minimal-saas.css";` | One layout personality. |
137
+ | `import "layout-style-css/minimal-saas.css";` | One layout personality; the same pattern works for every layout style export. |
89
138
  | `import "layout-style-css/all-with-ui-kit.css";` | UI Style Kit plus all layouts. |
90
139
  | `import "layout-style-css/all-with-ui-kit-and-interactive-surface.css";` | UI Style Kit, Interactive Surface, and all layouts. |
91
140
 
@@ -97,6 +146,49 @@ The three-library aggregate imports in this order:
97
146
  @import url("./layout-all.css");
98
147
  ```
99
148
 
149
+ ## UI Style Kit Naming Compatibility
150
+
151
+ Use the aggregate import when a project wants UI Style Kit visuals and Layout Style CSS structure from one package entry:
152
+
153
+ ```js
154
+ import "layout-style-css/all-with-ui-kit.css";
155
+ ```
156
+
157
+ The bridge intentionally aliases structural classes and layout recipes only. UI Style Kit still owns component paint, typography, borders, shadows, native controls, focus states, themes, and modes.
158
+
159
+ Supported UI-style prefixes are `saas`, `bento`, `max`, `bau`, `tactile`, `neo`, `retro`, `brutal`, `cyber`, `y2k`, and `rg`.
160
+
161
+ | Alias pattern | Maps to |
162
+ | --- | --- |
163
+ | `<prefix>-container` | `.ly-wrapper` |
164
+ | `<prefix>-section` | `.ly-section` |
165
+ | `<prefix>-stack` | `.ly-stack` |
166
+ | `<prefix>-cluster` | `.ly-cluster` |
167
+ | `<prefix>-grid` | `.ly-grid` |
168
+ | `<prefix>-split` | `.ly-split` |
169
+ | `<prefix>-button-group` | `.ly-button-group` |
170
+ | `<prefix>-card-grid` | `.ly-card-grid` |
171
+ | `<prefix>-card-sm`, `<prefix>-card-md`, `<prefix>-card-lg` | `.ly-card-sm`, `.ly-card-md`, `.ly-card-lg` |
172
+ | `<prefix>-gallery` | `.ly-gallery` |
173
+ | `<prefix>-carousel` | `.ly-carousel` |
174
+
175
+ Example:
176
+
177
+ ```html
178
+ <section class="saas-container saas-section">
179
+ <div class="saas-card-grid">
180
+ <article class="saas-card ly-card-md">Metric</article>
181
+ <article class="saas-card ly-card-md">Metric</article>
182
+ <article class="saas-card ly-card-md">Metric</article>
183
+ </div>
184
+
185
+ <div class="saas-button-group">
186
+ <button class="saas-button">Save</button>
187
+ <button class="saas-button-secondary">Export</button>
188
+ </div>
189
+ </section>
190
+ ```
191
+
100
192
  ## Responsive Wrapper API
101
193
 
102
194
  Use `.ly-wrapper` for new markup. `.ly-container` remains supported for compatibility.
@@ -206,6 +298,82 @@ Use for inboxes, editors, queues, and preview workflows.
206
298
  </section>
207
299
  ```
208
300
 
301
+ ### Button Group
302
+
303
+ Use for responsive action rows that should wrap without forcing buttons to full-width.
304
+
305
+ ```html
306
+ <div class="ly-button-group">
307
+ <button class="saas-button">Save</button>
308
+ <button class="saas-button-secondary">Preview</button>
309
+ <button class="saas-button-secondary">Export</button>
310
+ </div>
311
+ ```
312
+
313
+ ### Card Grid
314
+
315
+ Use for repeated cards that need a resilient auto-fit layout.
316
+
317
+ ```html
318
+ <div class="ly-card-grid">
319
+ <article class="saas-card ly-card-md">Plan</article>
320
+ <article class="saas-card ly-card-md">Plan</article>
321
+ <article class="saas-card ly-card-md">Plan</article>
322
+ </div>
323
+ ```
324
+
325
+ The same structure can use UI-prefix aliases such as `.saas-card-grid`:
326
+
327
+ ```html
328
+ <div class="saas-card-grid">
329
+ <article class="saas-card saas-card-md">Plan</article>
330
+ <article class="saas-card saas-card-md">Plan</article>
331
+ </div>
332
+ ```
333
+
334
+ ### Card Size
335
+
336
+ Use card size helpers when a repeated surface needs consistent minimum block sizing.
337
+
338
+ ```html
339
+ <article class="ly-surface ly-card-sm">Compact card</article>
340
+ <article class="ly-surface ly-card-md">Standard card</article>
341
+ <article class="ly-surface ly-card-lg">Feature card</article>
342
+ ```
343
+
344
+ ### Gallery
345
+
346
+ Use for responsive media or object grids. Pair it with `.ly-frame` to keep ratios stable.
347
+
348
+ ```html
349
+ <div class="ly-gallery">
350
+ <figure class="ly-frame ly-frame-4x3">Media</figure>
351
+ <figure class="ly-frame ly-frame-4x3">Media</figure>
352
+ <figure class="ly-frame ly-frame-4x3">Media</figure>
353
+ </div>
354
+ ```
355
+
356
+ ### Carousel
357
+
358
+ Use for horizontal groups that need scroll snapping without adding visual chrome.
359
+
360
+ ```html
361
+ <div class="ly-carousel">
362
+ <article class="ly-surface ly-card-md">Step one</article>
363
+ <article class="ly-surface ly-card-md">Step two</article>
364
+ <article class="ly-surface ly-card-md">Step three</article>
365
+ </div>
366
+ ```
367
+
368
+ ### Frame And Scroll
369
+
370
+ Use frames for predictable media ratios and scroll areas for bounded panes.
371
+
372
+ ```html
373
+ <div class="ly-frame ly-frame-16x9">Preview</div>
374
+ <aside class="ly-scroll-area ly-overflow-auto">Scrollable content</aside>
375
+ ```
376
+
209
377
  ## Base Primitives
210
378
 
211
379
  | Class | Purpose |
@@ -219,6 +387,11 @@ Use for inboxes, editors, queues, and preview workflows.
219
387
  | `.ly-cluster` | Wrapping horizontal group. |
220
388
  | `.ly-grid` | CSS Grid foundation. |
221
389
  | `.ly-grid--auto` | Responsive auto-fit grid. |
390
+ | `.ly-button-group` | Wrapping action group with stable child sizing. |
391
+ | `.ly-card-grid` | Auto-fit card grid recipe. |
392
+ | `.ly-card-sm`, `.ly-card-md`, `.ly-card-lg` | Consistent minimum card block sizes. |
393
+ | `.ly-gallery` | Responsive gallery grid recipe. |
394
+ | `.ly-carousel` | Horizontal scroll-snap recipe. |
222
395
  | `.ly-row`, `.ly-col`, `.ly-col-*` | Flex row and column utilities. |
223
396
  | `.ly-app-shell` | Header/sidebar/main shell. |
224
397
  | `.ly-app-header`, `.ly-app-sidebar`, `.ly-app-main` | App shell regions. |
@@ -237,8 +410,8 @@ Utilities are composition-only. They set layout variables, spacing, flow, visibi
237
410
  | Class group | Purpose |
238
411
  | --- | --- |
239
412
  | `.ly-cols-1` through `.ly-cols-12`, `.ly-cols-16` | Set the base grid column count. |
240
- | `.ly-md-cols-1`, `2`, `3`, `4`, `6`, `8`, `12`, `16` | Change grid column count from the tablet breakpoint up. |
241
- | `.ly-lg-cols-1`, `2`, `3`, `4`, `6`, `8`, `12`, `16` | Change grid column count from the desktop breakpoint up. |
413
+ | `.ly-md-cols-{1,2,3,4,6,8,12,16}` | Change grid column count from the tablet breakpoint up. |
414
+ | `.ly-lg-cols-{1,2,3,4,6,8,12,16}` | Change grid column count from the desktop breakpoint up. |
242
415
  | `.ly-span-1` through `.ly-span-16` | Span a grid item across a fixed number of tracks. |
243
416
  | `.ly-span-full` | Span a grid item across the full grid. |
244
417
 
@@ -298,6 +471,11 @@ Each layout style file targets layout selectors only. It does not key off `data-
298
471
  | `cyberpunk` | `layout-style-cyberpunk.css` | Narrow utility rail with dense command workspace, compact gutters, and clipped panels. |
299
472
  | `y2k` | `layout-style-y2k.css` | Centered hub shell with floating window rhythm and dock-like support regions. |
300
473
  | `retro-glass` | `layout-style-retro-glass.css` | Top-framed glass shell with a floating right utility rail and layered panes. |
474
+ | `f-pattern` | `layout-style-f-pattern.css` | F-Pattern scan path with a top band, persistent left rail, and heavier early content rows. |
475
+ | `z-pattern` | `layout-style-z-pattern.css` | Z-Pattern scan path that leads from a broad header into primary content and a right support rail. |
476
+ | `split-screen` | `layout-style-split-screen.css` | Split-Screen shell that gives main and support regions equal competing weight. |
477
+ | `mondrian` | `layout-style-mondrian.css` | Mondrian block composition with asymmetrical rectangular spans and compact gaps. |
478
+ | `synthwave` | `layout-style-synthwave.css` | Synthwave stage composition with wide cinematic content, dock-like support areas, and horizontal preview rhythm. |
301
479
 
302
480
  ## Mix And Match Contract
303
481
 
@@ -314,6 +492,8 @@ data-ui="cyberpunk" data-layout="maximalist" data-theme="arctic-indigo" data-mod
314
492
  data-ui="bauhaus" data-layout="retro-glass" data-theme="graphite-cyan" data-mode="dark"
315
493
  data-ui="minimal-saas" data-layout="bento" data-theme="ocean-steel" data-mode="light"
316
494
  data-ui="brutalism" data-layout="cyberpunk" data-theme="midnight-gold" data-mode="contrast"
495
+ data-ui="cyberpunk" data-layout="synthwave" data-theme="cyber-lime" data-mode="dark"
496
+ data-ui="bauhaus" data-layout="mondrian" data-theme="graphite-cyan" data-mode="contrast"
317
497
  ```
318
498
 
319
499
  Supported layout selectors:
@@ -354,6 +534,8 @@ The artifact is written to `output/github-pages/` and contains:
354
534
  - generated `dist/` CSS
355
535
  - `.nojekyll`
356
536
 
537
+ Before the workflow can deploy, enable GitHub Pages in repository Settings > Pages and set the source to GitHub Actions.
538
+
357
539
  The repository includes a GitHub Actions workflow that verifies the package, builds the artifact, uploads it, and deploys it to GitHub Pages from `main` or `workflow_dispatch`.
358
540
 
359
541
  ## Package Files
@@ -378,6 +560,12 @@ demo/
378
560
  scripts/
379
561
  build.mjs
380
562
  build-pages.mjs
563
+ docs/wiki/
564
+ Home.md
565
+ *.md
566
+ CHANGELOG.md
567
+ CONTRIBUTING.md
568
+ SECURITY.md
381
569
  ```
382
570
 
383
571
  `styles/` is the authored source. `dist/` and `output/github-pages/` are generated.
@@ -404,8 +592,9 @@ The check command builds `dist/`, runs Stylelint, runs contract tests, runs resp
404
592
  Before publishing:
405
593
 
406
594
  ```bash
407
- npm view layout-style-css@1.0.0 version --json
595
+ npm view layout-style-css@1.1.2 version --json
408
596
  npm run release:verify
597
+ npm audit --audit-level=moderate
409
598
  ```
410
599
 
411
600
  Publish and verify:
@@ -413,7 +602,7 @@ Publish and verify:
413
602
  ```bash
414
603
  npm login
415
604
  npm publish --access public
416
- npm view layout-style-css@1.0.0
605
+ npm view layout-style-css@1.1.2
417
606
  ```
418
607
 
419
608
  After publish, verify these CDN URLs:
@@ -423,7 +612,7 @@ https://unpkg.com/layout-style-css@1/dist/layout-style-css.min.css
423
612
  https://cdn.jsdelivr.net/npm/layout-style-css@1/dist/layout-style-css.min.css
424
613
  ```
425
614
 
426
- Tag the release as `v1.0.0` in `Foscat/layout-style-css`.
615
+ Tag the release as `v1.1.2` in `Foscat/layout-style-css`. The npm publish workflow runs when that release is published and can be recovered manually from Actions with `release_tag` set to `v1.1.2`.
427
616
 
428
617
  ## Compatibility
429
618
 
package/SECURITY.md ADDED
@@ -0,0 +1,45 @@
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
+ | `1.1.x` | Yes |
10
+ | `1.0.x` | Security fixes only when practical |
11
+
12
+ ## Reporting A Vulnerability
13
+
14
+ 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.
15
+
16
+ Please include:
17
+
18
+ - affected version and package entrypoint
19
+ - affected selector, file, or demo behavior
20
+ - reproduction steps
21
+ - expected impact
22
+ - whether the issue affects package consumers, the demo, or GitHub Pages deployment
23
+
24
+ ## Security Model
25
+
26
+ The primary security risks for this package are supply-chain and documentation risks:
27
+
28
+ - incorrect package exports that make consumers import unexpected files
29
+ - malformed CDN examples that point to wrong assets
30
+ - accidental runtime JavaScript or network behavior in docs or demo code
31
+ - package contents that include secrets, build caches, or unrelated local files
32
+ - CSS that hides important controls or breaks keyboard-visible flows in the demo
33
+
34
+ The release gate verifies package contents, README imports, documentation links, CSS contracts, rendered demo behavior, and GitHub Pages artifact structure.
35
+
36
+ ## Dependency Checks
37
+
38
+ Run the local dependency audit before publishing:
39
+
40
+ ```bash
41
+ npm audit --audit-level=moderate
42
+ ```
43
+
44
+ The package also uses `npm run release:verify` to run build, lint, tests, pack dry-run, and publish dry-run checks.
45
+
Binary file