|
1 | 1 | # Demo And GitHub Pages |
2 | 2 |
|
3 | | -The interactive layout lab lives in `demo/index.html`, `demo/demo.css`, and `demo/demo.js`. GitHub Pages serves a generated artifact from `output/github-pages/`. |
| 3 | +The v3 demo is an intrinsic responsive workbench, not a fixed-device screenshot gallery. |
4 | 4 |
|
5 | | -## Local Gates |
| 5 | +## Controls |
6 | 6 |
|
7 | | -The quick gate uses Chromium and a representative rendered matrix: |
| 7 | +- Independent preview width and height |
| 8 | +- Automatic and manual recipe responsiveness |
| 9 | +- Wrapper, recipe, and all sixteen personality profiles |
| 10 | +- Layout-only, Layout plus UI, and all-three ecosystem modes |
| 11 | +- Live rendered dimensions and active topology |
| 12 | +- Copy-ready canonical attribute markup |
8 | 13 |
|
9 | | -```bash |
10 | | -npm run test:demo:quick |
11 | | -``` |
| 14 | +Device presets cover the release allocations: |
12 | 15 |
|
13 | | -Run one complete engine matrix: |
| 16 | +- Phone portrait: `360 × 800` |
| 17 | +- Phone landscape: `800 × 360` |
| 18 | +- Tablet portrait: `768 × 1024` |
| 19 | +- Tablet landscape: `1024 × 768` |
| 20 | +- Desktop landscape: `1440 × 900` |
| 21 | +- Desktop portrait: `900 × 1440` |
14 | 22 |
|
15 | | -```bash |
16 | | -npm run test:demo:chromium |
17 | | -npm run test:demo:firefox |
18 | | -npm run test:demo:webkit |
19 | | -``` |
| 23 | +Threshold controls also cover one rem below and above `42rem`, `44rem`, `48rem`, `52rem`, and `72rem`, plus the `30rem` and `44rem` height tiers. |
20 | 24 |
|
21 | | -Run all supported engines: |
| 25 | +## Local Verification |
22 | 26 |
|
23 | 27 | ```bash |
| 28 | +npm run build |
| 29 | +npm run test:demo:quick |
24 | 30 | npm run test:demo:all |
25 | 31 | ``` |
26 | 32 |
|
27 | | -The full matrix exercises current evergreen Chromium, Firefox, and WebKit at 375px, 768px, 1280px, and 1440px, plus nested containers around the `48rem` and `64rem` core thresholds and the personality-specific signatures. |
28 | | - |
29 | | -## Rendered Contracts |
30 | | - |
31 | | -The smoke suite verifies: |
32 | | - |
33 | | -- all wrappers, recipes, and personalities |
34 | | -- stable DOM and keyboard focus order |
35 | | -- named-area transitions at both container thresholds |
36 | | -- no meaningful horizontal overflow |
37 | | -- bounded scrolling |
38 | | -- accessible mobile controls |
39 | | -- layout-only, Layout plus UI, and all-three ecosystem modes |
40 | | -- pinned `ui-style-kit-css@2.1.0` visual, token bridge, and manifest behavior plus released `interactive-surface-css@1.5.0` |
41 | | - |
42 | | -The demo query parser uses explicit allowlists and writes generated imports and markup with `textContent`. |
| 33 | +The full matrix runs in Chromium, Firefox, and WebKit. It checks meaningful DOM, unchanged source/focus order, automatic and manual topologies, nearest-container behavior, short-height escape hatches, zero-width tracks, overlap, and unintended overflow. |
43 | 34 |
|
44 | | -## Pages Artifact |
| 35 | +## GitHub Pages |
45 | 36 |
|
46 | 37 | ```bash |
47 | 38 | npm run pages:build |
48 | | -node test/pages-artifact.test.mjs |
| 39 | +npm run test:pages |
49 | 40 | ``` |
50 | 41 |
|
51 | | -The generated root contains the demo, metadata assets, `.nojekyll`, and `dist/`. The build rewrites only known parent-relative Layout Style paths, preserving external companion URLs and canonical metadata. |
| 42 | +The Pages artifact is written to `output/github-pages`, carries a root `index.html`, includes the generated v3 distribution, and rewrites the demo's parent-relative Layout import to the artifact-local `./dist` path. |
52 | 43 |
|
53 | | -The Pages workflow installs Chromium, runs the quick package gate, builds and tests the artifact, then uploads it. Repository Pages must be enabled with GitHub Actions as the source before deployment. |
| 44 | +`pages.yml` verifies repository Pages configuration before package work, runs the package check, installs Chromium for the rendered gate, validates the artifact, and deploys the saved artifact. Deployment is separate from local implementation. |
0 commit comments