stylegallery 0.1.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/AGENTS.md +156 -0
- package/CATALOG.md +69 -0
- package/DOMAINS.md +65 -0
- package/GOVERNANCE.md +222 -0
- package/GUIDE.md +59 -0
- package/README.md +313 -0
- package/consumer-reference/adapters/style-dictionary.config.mjs +36 -0
- package/consumer-reference/agent-native/README.md +157 -0
- package/consumer-reference/agent-native/registry.json +640 -0
- package/consumer-reference/agent-native/schema/agent-native.schema.json +848 -0
- package/consumer-reference/agent-native/schema/epistemic.schema.json +14 -0
- package/consumer-reference/agent-native/schema/execution.schema.json +12 -0
- package/consumer-reference/agent-native/schema/identity.schema.json +10 -0
- package/consumer-reference/agent-native/schema/learning.schema.json +12 -0
- package/consumer-reference/agent-native/schema/manifest.schema.json +6 -0
- package/consumer-reference/agent-native/schema/operation.schema.json +12 -0
- package/consumer-reference/agent-native/schema/protocol-binding.schema.json +9 -0
- package/consumer-reference/agent-native/schema/retrieval.schema.json +10 -0
- package/consumer-reference/baselines/calibration.json +260 -0
- package/consumer-reference/baselines/manifest.json +21 -0
- package/consumer-reference/contract.md +83 -0
- package/consumer-reference/fixtures/consumer-conformance/e2e-fixture.mjs +282 -0
- package/consumer-reference/fixtures/consumer-conformance/manifest.json +102 -0
- package/consumer-reference/fixtures/consumer-conformance/runtime-proof.mjs +32 -0
- package/consumer-reference/fixtures/consumer-conformance/valid-migration-result.json +18 -0
- package/consumer-reference/fixtures/consumer-conformance/valid-migration.json +142 -0
- package/consumer-reference/fixtures/invalid-stable-ended-support.json +19 -0
- package/consumer-reference/fixtures/promotion/invalid-blocking-evidence.json +26 -0
- package/consumer-reference/fixtures/promotion/invalid-count-only.json +29 -0
- package/consumer-reference/fixtures/promotion/invalid-missing-owner-migration.json +25 -0
- package/consumer-reference/fixtures/promotion/invalid-normative-bypass-no-regression.json +25 -0
- package/consumer-reference/fixtures/promotion/invalid-related-counted-independent.json +45 -0
- package/consumer-reference/fixtures/promotion/invalid-stable-ended-support.json +26 -0
- package/consumer-reference/fixtures/promotion/manifest.json +15 -0
- package/consumer-reference/fixtures/promotion/valid-deferred-example.json +67 -0
- package/consumer-reference/fixtures/promotion/valid-normative-bypass.json +67 -0
- package/consumer-reference/fixtures/token-portability/invalid-cycle.json +7 -0
- package/consumer-reference/fixtures/token-portability/invalid-dangling-alias.json +6 -0
- package/consumer-reference/fixtures/token-portability/invalid-extends.json +4 -0
- package/consumer-reference/fixtures/token-portability/invalid-json-pointer.json +7 -0
- package/consumer-reference/fixtures/token-portability/invalid-resolver.json +9 -0
- package/consumer-reference/fixtures/token-portability/invalid-type-mismatch.json +10 -0
- package/consumer-reference/fixtures/token-portability/invalid-unknown-reserved.json +6 -0
- package/consumer-reference/fixtures/token-portability/invalid-untested-type.json +6 -0
- package/consumer-reference/fixtures/token-portability/valid-border.json +14 -0
- package/consumer-reference/fixtures/token-portability/valid-reference.json +32 -0
- package/consumer-reference/fixtures/token-portability/valid-whole-alias.json +7 -0
- package/consumer-reference/fixtures/valid-deprecated.json +21 -0
- package/consumer-reference/fixtures/valid-experimental.json +19 -0
- package/consumer-reference/generated/manifest.json +40 -0
- package/consumer-reference/generated/tokens.css +12 -0
- package/consumer-reference/index.md +32 -0
- package/consumer-reference/policies/shared-experimental.json +37 -0
- package/consumer-reference/schema/ax-evidence.schema.json +30 -0
- package/consumer-reference/schema/baseline-manifest.schema.json +55 -0
- package/consumer-reference/schema/calibration-record.schema.json +190 -0
- package/consumer-reference/schema/capture-session.schema.json +161 -0
- package/consumer-reference/schema/component-state.schema.json +150 -0
- package/consumer-reference/schema/consumer-conformance-record.schema.json +365 -0
- package/consumer-reference/schema/dom-evidence.schema.json +38 -0
- package/consumer-reference/schema/evidence-record.schema.json +81 -0
- package/consumer-reference/schema/fixture-manifest.schema.json +32 -0
- package/consumer-reference/schema/item.schema.json +188 -0
- package/consumer-reference/schema/page-evidence-manifest.schema.json +216 -0
- package/consumer-reference/schema/page-evidence-session.schema.json +119 -0
- package/consumer-reference/schema/portable-tokens.schema.json +104 -0
- package/consumer-reference/schema/promotion-rfc.schema.json +219 -0
- package/consumer-reference/schema/runtime-evidence-manifest.schema.json +33 -0
- package/consumer-reference/schema/visual-evidence.schema.json +31 -0
- package/design-engineering/consumer-migration-readiness.md +124 -0
- package/design-engineering/index.md +28 -0
- package/design-engineering/interface-craft.md +107 -0
- package/design-engineering/reference-profiles/external-adaptation/index.md +12 -0
- package/design-engineering/reference-profiles/governed-local/editorial/components/button.component.json +125 -0
- package/design-engineering/reference-profiles/governed-local/editorial/evidence/button.evidence.json +3504 -0
- package/design-engineering/reference-profiles/governed-local/editorial/fixtures/button.fixture.json +65 -0
- package/design-engineering/reference-profiles/governed-local/editorial/generated/evidence-coverage.md +23 -0
- package/design-engineering/reference-profiles/governed-local/editorial/generated/keyboard-matrix.md +19 -0
- package/design-engineering/reference-profiles/governed-local/editorial/generated/state-matrix.md +21 -0
- package/design-engineering/reference-profiles/governed-local/editorial/local-foundations.json +12 -0
- package/design-engineering/reference-profiles/governed-local/editorial/profile.json +43 -0
- package/design-engineering/reference-profiles/governed-local/editorial/states/button.states.json +195 -0
- package/design-engineering/reference-profiles/governed-local/editorial/tokens.dtcg.json +17 -0
- package/design-engineering/reference-profiles/governed-local/index.md +26 -0
- package/design-engineering/reference-profiles/governed-local/terminal/components/button.component.json +125 -0
- package/design-engineering/reference-profiles/governed-local/terminal/evidence/button.evidence.json +3504 -0
- package/design-engineering/reference-profiles/governed-local/terminal/fixtures/button.fixture.json +65 -0
- package/design-engineering/reference-profiles/governed-local/terminal/generated/evidence-coverage.md +23 -0
- package/design-engineering/reference-profiles/governed-local/terminal/generated/keyboard-matrix.md +19 -0
- package/design-engineering/reference-profiles/governed-local/terminal/generated/state-matrix.md +21 -0
- package/design-engineering/reference-profiles/governed-local/terminal/local-foundations.json +12 -0
- package/design-engineering/reference-profiles/governed-local/terminal/profile.json +43 -0
- package/design-engineering/reference-profiles/governed-local/terminal/states/button.states.json +195 -0
- package/design-engineering/reference-profiles/governed-local/terminal/tokens.dtcg.json +17 -0
- package/design-engineering/reference-profiles/index.md +19 -0
- package/game-ui/classification.md +82 -0
- package/game-ui/index.md +35 -0
- package/game-ui/reference-record.md +62 -0
- package/game-ui/screen-hierarchy.md +107 -0
- package/game-ui/unity/architecture.md +166 -0
- package/game-ui/unity/cli-loop.md +84 -0
- package/game-ui/unity/data/unity-technologies-public-repositories.json +26654 -0
- package/game-ui/unity/org-wiki.md +146 -0
- package/game-ui/unity/repository-map.md +102 -0
- package/game-ui/unity/ui-systems.md +85 -0
- package/guides/decision-tree.md +149 -0
- package/guides/documentation-mode-taxonomy.md +157 -0
- package/guides/layout-brief.md +220 -0
- package/guides/vocabulary.md +148 -0
- package/guides/webpage-generation-workflow.md +185 -0
- package/index.md +36 -0
- package/layout/index.md +26 -0
- package/motion/index.md +24 -0
- package/motion/practice-reference.md +145 -0
- package/motion/review-workflow.md +86 -0
- package/motion/vocabulary.md +82 -0
- package/package.json +78 -0
- package/patterns/centering/center.md +87 -0
- package/patterns/centering/index.md +6 -0
- package/patterns/centering/super-center.md +89 -0
- package/patterns/containment/box.md +87 -0
- package/patterns/containment/clamped-card.md +86 -0
- package/patterns/containment/content-limiter.md +87 -0
- package/patterns/containment/fluid-styles.md +86 -0
- package/patterns/containment/index.md +8 -0
- package/patterns/grid-repetition/card-grid.md +88 -0
- package/patterns/grid-repetition/columns.md +87 -0
- package/patterns/grid-repetition/dense-grid.md +88 -0
- package/patterns/grid-repetition/grid-wrapper.md +89 -0
- package/patterns/grid-repetition/index.md +12 -0
- package/patterns/grid-repetition/masonry-approx.md +87 -0
- package/patterns/grid-repetition/page-grid.md +90 -0
- package/patterns/grid-repetition/ram-grid.md +88 -0
- package/patterns/grid-repetition/twelve-span-grid.md +92 -0
- package/patterns/in-line-grouping/badge-list.md +94 -0
- package/patterns/in-line-grouping/breadcrumb.md +89 -0
- package/patterns/in-line-grouping/cluster.md +89 -0
- package/patterns/in-line-grouping/deconstructed-pancake.md +92 -0
- package/patterns/in-line-grouping/index.md +13 -0
- package/patterns/in-line-grouping/pagination.md +89 -0
- package/patterns/in-line-grouping/reel.md +90 -0
- package/patterns/in-line-grouping/split-nav.md +97 -0
- package/patterns/in-line-grouping/tab-strip.md +88 -0
- package/patterns/in-line-grouping/wrap-row.md +89 -0
- package/patterns/index.md +13 -0
- package/patterns/media-fit/frame.md +95 -0
- package/patterns/media-fit/icon-frame.md +87 -0
- package/patterns/media-fit/index.md +6 -0
- package/patterns/overlay-exception/imposter.md +95 -0
- package/patterns/overlay-exception/index.md +6 -0
- package/patterns/overlay-exception/overlay-stack.md +89 -0
- package/patterns/split-sidebar/index.md +12 -0
- package/patterns/split-sidebar/list-detail.md +95 -0
- package/patterns/split-sidebar/main-with-rail.md +95 -0
- package/patterns/split-sidebar/media-object.md +102 -0
- package/patterns/split-sidebar/sidebar.md +101 -0
- package/patterns/split-sidebar/split-screen.md +92 -0
- package/patterns/split-sidebar/sticky-aside.md +97 -0
- package/patterns/split-sidebar/supporting-pane.md +95 -0
- package/patterns/split-sidebar/switcher.md +93 -0
- package/patterns/stacking/feed.md +88 -0
- package/patterns/stacking/index.md +8 -0
- package/patterns/stacking/line-up.md +95 -0
- package/patterns/stacking/stack.md +87 -0
- package/patterns/stacking/step-nav.md +88 -0
- package/patterns/viewport-shell/cover.md +90 -0
- package/patterns/viewport-shell/fixed-sidenav-shell.md +97 -0
- package/patterns/viewport-shell/holy-grail.md +112 -0
- package/patterns/viewport-shell/index.md +11 -0
- package/patterns/viewport-shell/panel-layout.md +95 -0
- package/patterns/viewport-shell/scroll-body-shell.md +93 -0
- package/patterns/viewport-shell/sticky-footer.md +92 -0
- package/patterns/viewport-shell/sticky-header.md +86 -0
- package/platform-guides/apple-interaction.md +89 -0
- package/platform-guides/index.md +26 -0
- package/quality/claim-records/index.md +3 -0
- package/quality/claim-records/samples.md +92 -0
- package/quality/claim-records/stylegallery-multidomain-scope.md +42 -0
- package/quality/claims.md +77 -0
- package/quality/evidence/accessibility.md +58 -0
- package/quality/evidence/consumer-migration.md +42 -0
- package/quality/evidence/design-rationale.md +34 -0
- package/quality/evidence/executable-evidence.md +79 -0
- package/quality/evidence/families.md +56 -0
- package/quality/evidence/hci-evaluation.md +36 -0
- package/quality/evidence/index.md +16 -0
- package/quality/evidence/pattern-contract-audit.md +96 -0
- package/quality/evidence/search-metadata-polyhierarchy.md +86 -0
- package/quality/evidence/sources.md +43 -0
- package/quality/evidence/tokens.md +33 -0
- package/quality/evidence/visual-qa.md +41 -0
- package/quality/gates/accessibility-evidence.md +60 -0
- package/quality/gates/consumer-migration-evidence.md +53 -0
- package/quality/gates/design-claim.md +56 -0
- package/quality/gates/harmony-evaluation.md +78 -0
- package/quality/gates/index.md +13 -0
- package/quality/gates/layout.md +52 -0
- package/quality/gates/rationale.md +53 -0
- package/quality/gates/visual-evidence.md +47 -0
- package/quality/index.md +55 -0
- package/quality/principles.md +58 -0
- package/recipes/article-page.md +52 -0
- package/recipes/command-surface.md +55 -0
- package/recipes/dashboard.md +56 -0
- package/recipes/form-flow.md +55 -0
- package/recipes/homepage.md +89 -0
- package/recipes/index.md +13 -0
- package/recipes/list-detail.md +55 -0
- package/recipes/primitive-to-recipe-matrix.md +83 -0
- package/recipes/saas-settings.md +52 -0
- package/scripts/agent-native/a2a-projection.mjs +248 -0
- package/scripts/agent-native/agui-projection.mjs +178 -0
- package/scripts/agent-native/canonical-json.mjs +109 -0
- package/scripts/agent-native/cli-adapter.mjs +68 -0
- package/scripts/agent-native/events.mjs +113 -0
- package/scripts/agent-native/execution.mjs +227 -0
- package/scripts/agent-native/fixture.mjs +159 -0
- package/scripts/agent-native/identity.mjs +184 -0
- package/scripts/agent-native/immutable-store.mjs +102 -0
- package/scripts/agent-native/knowledge.mjs +168 -0
- package/scripts/agent-native/learning-records.mjs +244 -0
- package/scripts/agent-native/learning.mjs +247 -0
- package/scripts/agent-native/mcp-adapter.mjs +173 -0
- package/scripts/agent-native/queries.mjs +173 -0
- package/scripts/agent-native/registry.mjs +154 -0
- package/scripts/agent-native/retrieval.mjs +171 -0
- package/scripts/agent-native/self-description.mjs +160 -0
- package/scripts/artifact-metadata.mjs +20 -0
- package/scripts/audit-evidence-freshness.mjs +308 -0
- package/scripts/baseline-contract.mjs +189 -0
- package/scripts/baseline-schema-parity.mjs +40 -0
- package/scripts/build-reference-artifacts.mjs +127 -0
- package/scripts/calibration-raw-contract.mjs +172 -0
- package/scripts/capture-session-contract.mjs +187 -0
- package/scripts/component-state-artifact-fixture.mjs +44 -0
- package/scripts/component-state-contract.mjs +99 -0
- package/scripts/component-state-semantics.mjs +128 -0
- package/scripts/component-state-workflow-contract.mjs +67 -0
- package/scripts/component-state-workflow-negative-cases.mjs +64 -0
- package/scripts/consumer-conformance-contract.mjs +198 -0
- package/scripts/consumer-evidence-governance-contract.mjs +210 -0
- package/scripts/consumer-reference-case-runner.mjs +93 -0
- package/scripts/consumer-reference-schema.mjs +155 -0
- package/scripts/create-component-state-session.mjs +100 -0
- package/scripts/create-page-evidence-session.mjs +139 -0
- package/scripts/domain-document-boundaries.mjs +40 -0
- package/scripts/domain-validation-checks.mjs +141 -0
- package/scripts/evidence-artifact-contract.mjs +191 -0
- package/scripts/finalize-component-state-evidence.mjs +165 -0
- package/scripts/finalize-page-evidence.mjs +197 -0
- package/scripts/generate-consumer-reference-evidence.mjs +154 -0
- package/scripts/generate-patterns.mjs +218 -0
- package/scripts/governance-matrix-contract.mjs +73 -0
- package/scripts/governance-matrix-negative-cases.mjs +114 -0
- package/scripts/governance-policy-contract.mjs +49 -0
- package/scripts/governance-test-fixture.mjs +321 -0
- package/scripts/governance-workflow-negative-cases.mjs +241 -0
- package/scripts/governed-profile-registry.mjs +125 -0
- package/scripts/json-schema-formats.mjs +31 -0
- package/scripts/markdown-structure.mjs +45 -0
- package/scripts/page-artifact-metadata.mjs +124 -0
- package/scripts/page-evidence-contract.mjs +297 -0
- package/scripts/page-evidence-fixture.mjs +271 -0
- package/scripts/pattern-data.mjs +325 -0
- package/scripts/profile-record-contract.mjs +140 -0
- package/scripts/promotion-attestation-contract.mjs +91 -0
- package/scripts/promotion-boundary-test-contract.mjs +92 -0
- package/scripts/promotion-fixture-inventory.mjs +109 -0
- package/scripts/promotion-governance-contract.mjs +28 -0
- package/scripts/reference-artifact-path-contract.mjs +28 -0
- package/scripts/reference-profile-contract.mjs +114 -0
- package/scripts/reference-token-contract.mjs +156 -0
- package/scripts/run-consumer-page-evidence-ci.mjs +170 -0
- package/scripts/sg-mcp.mjs +16 -0
- package/scripts/sg.mjs +27 -0
- package/scripts/strict-json.mjs +72 -0
- package/scripts/summarize-sentinel-calibration.mjs +98 -0
- package/scripts/test-agent-adapter-conformance.mjs +250 -0
- package/scripts/test-agent-conformance-receipt.mjs +106 -0
- package/scripts/test-agent-events.mjs +81 -0
- package/scripts/test-agent-execution-effects.mjs +114 -0
- package/scripts/test-agent-execution-fixtures.mjs +140 -0
- package/scripts/test-agent-execution-kernel.mjs +39 -0
- package/scripts/test-agent-execution-learning.mjs +130 -0
- package/scripts/test-agent-execution-lifecycle.mjs +143 -0
- package/scripts/test-agent-execution-safety.mjs +158 -0
- package/scripts/test-agent-execution-views.mjs +117 -0
- package/scripts/test-agent-identity-integrity-cases.mjs +160 -0
- package/scripts/test-agent-knowledge-kernel.mjs +183 -0
- package/scripts/test-agent-learning.mjs +246 -0
- package/scripts/test-agent-mcp.mjs +246 -0
- package/scripts/test-agent-native-schemas.mjs +215 -0
- package/scripts/test-agent-projections.mjs +249 -0
- package/scripts/test-agent-registry-mcp-integrity.mjs +215 -0
- package/scripts/test-agent-registry-mutations.mjs +110 -0
- package/scripts/test-audit-evidence-freshness.mjs +177 -0
- package/scripts/test-component-state-sentinel.mjs +35 -0
- package/scripts/test-component-state-source-contract.mjs +83 -0
- package/scripts/test-consumer-conformance-sentinel.mjs +165 -0
- package/scripts/test-consumer-reference-sentinel.mjs +31 -0
- package/scripts/test-generate-consumer-reference-evidence.mjs +124 -0
- package/scripts/test-json-cli-output.mjs +151 -0
- package/scripts/test-json-schema-formats.mjs +40 -0
- package/scripts/test-reference-adapters.mjs +199 -0
- package/scripts/test-renderer-purity.mjs +34 -0
- package/scripts/test-sg-cli.mjs +129 -0
- package/scripts/test-summarize-sentinel-calibration.mjs +226 -0
- package/scripts/test-validate-baseline-manifest.mjs +234 -0
- package/scripts/test-validate-component-state-artifacts.mjs +243 -0
- package/scripts/test-validate-component-state.mjs +106 -0
- package/scripts/test-validate-consumer-conformance.mjs +427 -0
- package/scripts/test-validate-consumer-reference-cli.mjs +69 -0
- package/scripts/test-validate-consumer-reference.mjs +263 -0
- package/scripts/test-validate-domains.mjs +357 -0
- package/scripts/test-validate-governance.mjs +292 -0
- package/scripts/test-validate-ia.mjs +262 -0
- package/scripts/test-validate-okf.mjs +73 -0
- package/scripts/test-validate-page-evidence.mjs +302 -0
- package/scripts/test-validate-patterns.mjs +157 -0
- package/scripts/test-validate-promotion-rfc.mjs +250 -0
- package/scripts/test-validate-reference-profiles.mjs +170 -0
- package/scripts/test-validate-unity-org-wiki.mjs +57 -0
- package/scripts/test-validate-unity-source-contracts.mjs +67 -0
- package/scripts/test-validate-vocabulary.mjs +174 -0
- package/scripts/test-validate-webpage-workflow.mjs +293 -0
- package/scripts/validate-baseline-manifest.mjs +44 -0
- package/scripts/validate-catalog.mjs +65 -0
- package/scripts/validate-component-state.mjs +141 -0
- package/scripts/validate-consumer-conformance.mjs +477 -0
- package/scripts/validate-consumer-reference.mjs +288 -0
- package/scripts/validate-domains.mjs +237 -0
- package/scripts/validate-governance.mjs +248 -0
- package/scripts/validate-ia.mjs +136 -0
- package/scripts/validate-links.mjs +66 -0
- package/scripts/validate-okf.mjs +104 -0
- package/scripts/validate-page-evidence.mjs +191 -0
- package/scripts/validate-patterns.mjs +246 -0
- package/scripts/validate-promotion-rfc.mjs +224 -0
- package/scripts/validate-reference-artifacts.mjs +125 -0
- package/scripts/validate-renderer-purity.mjs +56 -0
- package/scripts/validate-unity-org-wiki.mjs +146 -0
- package/scripts/validate-unity-source-contracts.mjs +107 -0
- package/scripts/validate-vocabulary.mjs +115 -0
- package/scripts/validate-webpage-workflow.mjs +254 -0
- package/scripts/visual-expectation-contract.mjs +20 -0
- package/scripts/workflow-action-contract.mjs +163 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Quality Gate
|
|
3
|
+
title: Rationale Gate
|
|
4
|
+
description: Decision-rationale contract for quality gate judgments.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Rationale Gate
|
|
8
|
+
|
|
9
|
+
The rationale gate records why a claim is accepted, rejected, blocked, or deferred.
|
|
10
|
+
|
|
11
|
+
## Required Rationale
|
|
12
|
+
|
|
13
|
+
Record:
|
|
14
|
+
|
|
15
|
+
- the question being decided;
|
|
16
|
+
- considered options;
|
|
17
|
+
- criteria used to compare options;
|
|
18
|
+
- selected option;
|
|
19
|
+
- warrant connecting evidence to the decision;
|
|
20
|
+
- counterclaim or limitation;
|
|
21
|
+
- debt, owner, and review trigger when accepted.
|
|
22
|
+
|
|
23
|
+
## Evidence
|
|
24
|
+
|
|
25
|
+
Useful rationale evidence includes:
|
|
26
|
+
|
|
27
|
+
- structured claim records;
|
|
28
|
+
- local repository constraints;
|
|
29
|
+
- cited design-rationale, HCI, accessibility, or tooling sources;
|
|
30
|
+
- rendered evidence;
|
|
31
|
+
- accessibility evidence;
|
|
32
|
+
- task or persona review;
|
|
33
|
+
- user or participant evidence when the claim requires it.
|
|
34
|
+
|
|
35
|
+
## Blocking Conditions
|
|
36
|
+
|
|
37
|
+
Block a rationale when:
|
|
38
|
+
|
|
39
|
+
- it hides a tradeoff;
|
|
40
|
+
- it lists sources without saying what each source can and cannot support;
|
|
41
|
+
- it accepts accessibility debt without affected users and a review trigger;
|
|
42
|
+
- it reopens layout scope without naming the local repo rule being changed.
|
|
43
|
+
|
|
44
|
+
## Boundary
|
|
45
|
+
|
|
46
|
+
Rationale does not need to be long. It needs to make the claim, warrant, evidence, and limitation inspectable.
|
|
47
|
+
|
|
48
|
+
When a rationale contains a high-impact design claim, route it through the [structured quality claim template](../claims.md#claim-record-template) or link to an existing claim record.
|
|
49
|
+
|
|
50
|
+
## IA Navigation
|
|
51
|
+
|
|
52
|
+
Parent: [Gate Contracts](index.md).
|
|
53
|
+
Next: [Evidence References](../evidence/index.md) when a gate needs admissible support.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Quality Gate
|
|
3
|
+
title: Visual Evidence Gate
|
|
4
|
+
description: Rendered evidence requirements and limits for visual QA claims.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Visual Evidence Gate
|
|
8
|
+
|
|
9
|
+
Visual QA evidence precedes visual judgment.
|
|
10
|
+
|
|
11
|
+
## Scope
|
|
12
|
+
|
|
13
|
+
Use this gate when a claim depends on rendered output, visual state, hierarchy, surface treatment, motion, or responsive visual behavior.
|
|
14
|
+
|
|
15
|
+
## Accepted Evidence
|
|
16
|
+
|
|
17
|
+
- screenshots across required viewports and states;
|
|
18
|
+
- visual diffs against an approved baseline;
|
|
19
|
+
- Storybook or equivalent state-level captures;
|
|
20
|
+
- reduced-motion before/after evidence when motion is declared;
|
|
21
|
+
- notes that identify what changed, what was expected, and what remains interpretive.
|
|
22
|
+
|
|
23
|
+
## Required Boundary Language
|
|
24
|
+
|
|
25
|
+
- Screenshot diffs show rendered change, not usability.
|
|
26
|
+
- A stable visual diff does not prove accessibility.
|
|
27
|
+
- Generated images, GPT Image references, and screenshots are not accessibility proof.
|
|
28
|
+
- A visual QA pass does not prove brand fit or aesthetic quality.
|
|
29
|
+
- Visual review must cite the principle, task, state, or brief it evaluates.
|
|
30
|
+
|
|
31
|
+
## Blocking Conditions
|
|
32
|
+
|
|
33
|
+
Block a rendered-evidence claim when:
|
|
34
|
+
|
|
35
|
+
- no capture exists for the state being discussed;
|
|
36
|
+
- an unapproved visual diff changes a declared contract;
|
|
37
|
+
- a screenshot hides essential text, focus, state, or overflow evidence;
|
|
38
|
+
- the claim uses rendered stability to erase accessibility or task failures.
|
|
39
|
+
|
|
40
|
+
## Boundary
|
|
41
|
+
|
|
42
|
+
Visual QA creates evidence. The design claim gate decides whether that evidence supports the claim.
|
|
43
|
+
|
|
44
|
+
## IA Navigation
|
|
45
|
+
|
|
46
|
+
Parent: [Gate Contracts](index.md).
|
|
47
|
+
Next: [Evidence References](../evidence/index.md) when a gate needs admissible support.
|
package/quality/index.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Quality Gates
|
|
2
|
+
|
|
3
|
+
`quality/` is shared StyleGallery infrastructure for deciding whether Layout, Motion, Design Engineering, Game UI, and Platform Guides claims are admissible.
|
|
4
|
+
|
|
5
|
+
This shared layer does not make the repository a visual design system. Layout pattern files still own spatial structure only; domain guidance cannot bypass these gates. Quality gates explain how claims are framed, what evidence can support them, and when review or debt is required.
|
|
6
|
+
|
|
7
|
+
The [Consumer Reference Receiver Contract](../consumer-reference/contract.md) is adjacent shared infrastructure: it routes an optional consumer-owned record without turning Quality or Layout into owners of profile values.
|
|
8
|
+
|
|
9
|
+
## Concepts
|
|
10
|
+
|
|
11
|
+
- [Quality principles](principles.md) - Principles shared by the quality gate layer.
|
|
12
|
+
- [Controlled vocabulary](../guides/vocabulary.md) - Canonical terms for claims, gates, warrants, boundaries, evidence families, harmony, and debt.
|
|
13
|
+
- [Structured quality claims](claims.md) - Claim-record template, high-impact scope, and low-risk prose boundary.
|
|
14
|
+
- [Gate index](gates/index.md) - Gate contracts for layout, design claims, visual evidence, accessibility evidence, and rationale.
|
|
15
|
+
- [Evidence index](evidence/index.md) - Reference sources and evidence boundaries for design-side claims.
|
|
16
|
+
- [Claim records](claim-records/index.md) - Filled examples for high-impact claims.
|
|
17
|
+
- [Accessibility evidence register](evidence/accessibility.md) - Classification for accessibility claims: automated, manual, user, or debt.
|
|
18
|
+
- [Executable evidence coverage](evidence/executable-evidence.md) - Validator, fixture, CI, rendered-evidence, and review boundaries.
|
|
19
|
+
- [Consumer migration evidence gate](gates/consumer-migration-evidence.md) - Blocking contract for a declared consumer migration.
|
|
20
|
+
- [Consumer migration evidence](evidence/consumer-migration.md) - Claim boundaries for runtime and source-bound page evidence.
|
|
21
|
+
|
|
22
|
+
## Admission Model
|
|
23
|
+
|
|
24
|
+
Every non-layout design claim should follow this chain:
|
|
25
|
+
|
|
26
|
+
```txt
|
|
27
|
+
principle -> claim -> context -> warrant -> evidence family -> verification protocol -> boundary/debt
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Evidence is not the gate. Evidence supports a claim only when the principle, gate, warrant, and boundary are explicit.
|
|
31
|
+
|
|
32
|
+
High-impact claims use the [claim record template](claims.md#claim-record-template). Low-risk prose can stay as prose when it does not approve, block, redirect, or hand off implementation work.
|
|
33
|
+
|
|
34
|
+
## Tree-Test Findability QA
|
|
35
|
+
|
|
36
|
+
Findability QA checks whether a reader can choose the correct route for a task without already knowing the repository structure.
|
|
37
|
+
|
|
38
|
+
Use this script for lightweight tree tests:
|
|
39
|
+
|
|
40
|
+
| Scenario | Start | Expected primary route | PASS condition |
|
|
41
|
+
| --- | --- | --- | --- |
|
|
42
|
+
| Build a homepage from raw content. | [README](../README.md) | [Webpage Generation Workflow](../guides/webpage-generation-workflow.md) | The reader chooses the workflow before a recipe or catalog entry. |
|
|
43
|
+
| Choose a layout for a screen with unknown constraints. | [README](../README.md) | [Layout Planning Guide](../GUIDE.md) | The reader starts with planning instead of a primitive. |
|
|
44
|
+
| Find a primitive for a known spatial problem. | [README](../README.md) | [Layout Pattern Catalog](../CATALOG.md) | The reader reaches the generated catalog. |
|
|
45
|
+
| Browse all spatial families. | [OKF index](../index.md) | [Pattern Categories](../patterns/index.md) | The reader reaches category-level browsing. |
|
|
46
|
+
| Verify whether a claim has enough evidence. | [README](../README.md) | [Quality Gates](index.md) | The reader reaches gates before evidence references. |
|
|
47
|
+
| Inspect validator coverage. | [Quality Gates](index.md) | [Executable Evidence Coverage](evidence/executable-evidence.md) | The reader can name what each validator proves and cannot prove. |
|
|
48
|
+
| Name an observed motion effect. | [README](../README.md) | [Motion Vocabulary](../motion/vocabulary.md) | The first selected route is Motion and the term reference is reached within two hops. |
|
|
49
|
+
| Review product-level interface craft. | [README](../README.md) | [Interface Craft Decisions](../design-engineering/interface-craft.md) | The first selected route is Design Engineering and shared quality gates remain visible. |
|
|
50
|
+
| Compare an Apple interaction convention. | [README](../README.md) | [Apple Interaction](../platform-guides/apple-interaction.md) | The first selected route is Platform Guides and source/version limits are reached within two hops. |
|
|
51
|
+
| Declare whether a consumer reference applies. | [README](../README.md) | [Consumer Reference](../consumer-reference/index.md) | The handoff reaches the shared contract without classifying it as a sixth domain. |
|
|
52
|
+
| Prove a consumer migration preserves declared behavior. | [README](../README.md) | [Consumer Migration Readiness](../design-engineering/consumer-migration-readiness.md) | The reader reaches the Design Engineering method and its evidence gate within two hops. |
|
|
53
|
+
| Find the authority route for uGUI, UI Toolkit, or NGUI. | [README](../README.md) | [Unity UI Systems](../game-ui/unity/ui-systems.md) | The first selected route is Game UI, and the system-specific source and version boundary is reached within three hops. |
|
|
54
|
+
|
|
55
|
+
Record `PASS` only when the expected primary route is the first route selected. A link resolving successfully is not enough; the selected route must match the task intent.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Quality Guide
|
|
3
|
+
title: Quality Principles
|
|
4
|
+
description: Shared principles for the StyleGallery quality gate layer.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Quality Principles
|
|
8
|
+
|
|
9
|
+
These principles govern the `quality/` layer. They sit beside the layout pattern contract and do not change the scope of reusable pattern CSS.
|
|
10
|
+
|
|
11
|
+
## Principles
|
|
12
|
+
|
|
13
|
+
1. Principles before evidence
|
|
14
|
+
- A source, screenshot, scan, or token file becomes useful only when attached to a clear claim.
|
|
15
|
+
- Do not use evidence pages as a link dump or hidden rulebook.
|
|
16
|
+
|
|
17
|
+
2. Layout remains spatial
|
|
18
|
+
- Layout gates own structure, flow, sizing, alignment, spacing mechanics, scrolling, ratio, containment, source order, and focus order.
|
|
19
|
+
- Brand, typography voice, color expression, shadow, animation, decoration, and product visual identity stay outside reusable pattern CSS.
|
|
20
|
+
|
|
21
|
+
3. Accessibility precedes taste
|
|
22
|
+
- Accessibility and task completion outrank visual preference.
|
|
23
|
+
- Automated accessibility scans assist evaluation; they do not determine accessibility by themselves.
|
|
24
|
+
|
|
25
|
+
4. Visual QA evidence precedes visual judgment
|
|
26
|
+
- Rendered captures, state screenshots, and visual diffs should exist before visual critique claims.
|
|
27
|
+
- Screenshot diffs show rendered change, not usability.
|
|
28
|
+
|
|
29
|
+
5. Subjective review needs a warrant
|
|
30
|
+
- A subjective objection can block only when tied to a principle, task, brief, persona, accessibility risk, provenance risk, or missing evidence.
|
|
31
|
+
- Otherwise it is a review note or design debt, not a gate failure.
|
|
32
|
+
|
|
33
|
+
6. Tokens are contract surfaces
|
|
34
|
+
- Design tokens can support consistency, portability, and source lineage.
|
|
35
|
+
- A token file does not prove visual quality.
|
|
36
|
+
|
|
37
|
+
7. Debt stays visible
|
|
38
|
+
- Accepted design or accessibility debt must name the affected users, evidence gap, owner, and review trigger.
|
|
39
|
+
- Critical accessibility or task-completion failures are not ordinary debt.
|
|
40
|
+
|
|
41
|
+
## Outcomes
|
|
42
|
+
|
|
43
|
+
- `pass`: evidence satisfies the gate within its stated boundary.
|
|
44
|
+
- `review_required`: evidence exists, but human judgment is required.
|
|
45
|
+
- `blocked`: a principle, accessibility requirement, task requirement, provenance boundary, or evidence requirement is violated.
|
|
46
|
+
- `informational`: useful reference, but not an admissible quality claim.
|
|
47
|
+
|
|
48
|
+
## Guardrail Vocabulary
|
|
49
|
+
|
|
50
|
+
- `accessibility precedence`: accessibility and task completion outrank taste.
|
|
51
|
+
- `visual QA limits`: rendered evidence supports review but does not decide design quality alone.
|
|
52
|
+
- `screenshot diff limits`: screenshot diffs show rendered change, not usability.
|
|
53
|
+
- `automated accessibility scan limits`: automated scans assist evaluation, not determine accessibility.
|
|
54
|
+
|
|
55
|
+
## IA Navigation
|
|
56
|
+
|
|
57
|
+
Parent: [Quality Gates](index.md).
|
|
58
|
+
Next: [Gate Contracts](gates/index.md) for claim-specific pass and block conditions.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Recipe
|
|
3
|
+
title: Article Page
|
|
4
|
+
description: Compose readable prose with optional supporting aside content.
|
|
5
|
+
screen_type: Article page
|
|
6
|
+
primary_user_task: Read a long document while referencing supporting material.
|
|
7
|
+
spatial_model: Constrained reading column with nearby supplemental content.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Article Page
|
|
11
|
+
|
|
12
|
+
## Recommended Pattern Stack
|
|
13
|
+
|
|
14
|
+
- [content-limiter](../patterns/containment/content-limiter.md)
|
|
15
|
+
- [sticky-aside](../patterns/split-sidebar/sticky-aside.md)
|
|
16
|
+
- [stack](../patterns/stacking/stack.md)
|
|
17
|
+
|
|
18
|
+
## DOM And Source Order
|
|
19
|
+
|
|
20
|
+
Place the article before supplemental aside content when the article is the primary reading path. Use headings to expose document structure before adding layout classes.
|
|
21
|
+
|
|
22
|
+
## Scroll Ownership
|
|
23
|
+
|
|
24
|
+
The document owns scrolling. The aside may become sticky, but it should not introduce an independent scroll container unless the aside content is longer than the viewport and has a declared overflow behavior.
|
|
25
|
+
|
|
26
|
+
## Accessibility Expectations
|
|
27
|
+
|
|
28
|
+
- Focus expectation: Article links and controls follow the article's DOM order before moving to supplemental aside content unless the aside is the active task.
|
|
29
|
+
- Scroll expectation: Sticky aside behavior must not cover headings, anchors, or focused links while the document scrolls.
|
|
30
|
+
- Cognitive risk: Supplemental content can interrupt reading flow; keep references close to the article section they support.
|
|
31
|
+
|
|
32
|
+
## Responsive Behavior
|
|
33
|
+
|
|
34
|
+
At narrow widths, aside content should fall into document flow after the related article region. Keep references close to the content they support.
|
|
35
|
+
|
|
36
|
+
## Constraints And Change Points
|
|
37
|
+
|
|
38
|
+
Make the reading measure explicit through `max-inline-size`. Use section gaps for major article regions and stack gaps for local prose groups.
|
|
39
|
+
|
|
40
|
+
## When Not To Use
|
|
41
|
+
|
|
42
|
+
Do not use sticky aside behavior when supplemental content must be read in sequence as part of the main article.
|
|
43
|
+
|
|
44
|
+
## Related Patterns
|
|
45
|
+
|
|
46
|
+
- [sidebar](../patterns/split-sidebar/sidebar.md)
|
|
47
|
+
- [box](../patterns/containment/box.md)
|
|
48
|
+
|
|
49
|
+
## IA Navigation
|
|
50
|
+
|
|
51
|
+
Parent: [Layout Recipes](index.md).
|
|
52
|
+
Next: [Quality Gates](../quality/index.md) for claim checks, or [Layout Pattern Catalog](../CATALOG.md) when replacing a primitive.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Recipe
|
|
3
|
+
title: Command Surface
|
|
4
|
+
description: Compose a tool-heavy shell with stable command and content regions.
|
|
5
|
+
screen_type: Command surface
|
|
6
|
+
primary_user_task: Repeatedly execute commands while inspecting or editing content.
|
|
7
|
+
spatial_model: Stable shell regions with wrapping or scrolling command rows.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Command Surface
|
|
11
|
+
|
|
12
|
+
## Recommended Pattern Stack
|
|
13
|
+
|
|
14
|
+
- [scroll-body-shell](../patterns/viewport-shell/scroll-body-shell.md)
|
|
15
|
+
- [split-nav](../patterns/in-line-grouping/split-nav.md)
|
|
16
|
+
- [wrap-row](../patterns/in-line-grouping/wrap-row.md)
|
|
17
|
+
|
|
18
|
+
## DOM And Source Order
|
|
19
|
+
|
|
20
|
+
Place primary commands before secondary command groups when they operate on the same surface. Keep command labels and controlled regions connected by accessible names or headings.
|
|
21
|
+
|
|
22
|
+
## Scroll Ownership
|
|
23
|
+
|
|
24
|
+
The shell body owns content scrolling. Command rows should wrap when possible; use [reel](../patterns/in-line-grouping/reel.md) only when horizontal scanning is part of the interaction model.
|
|
25
|
+
|
|
26
|
+
## Accessibility Checklist
|
|
27
|
+
|
|
28
|
+
- Source order: Put primary commands before secondary commands and before the content region they affect when the command is the task entry point.
|
|
29
|
+
- Focus expectation: Keyboard focus must reach every command, preserve visible focus, and return to the edited or inspected content after command execution when appropriate.
|
|
30
|
+
- Scroll expectation: Keep fixed command regions outside the body scroll container; if command groups overflow horizontally, provide a named scroll model and keyboard path.
|
|
31
|
+
- Semantic risk: Icon-only or compact commands need accessible names, state, and grouping before layout classes compress them.
|
|
32
|
+
- Cognitive risk: Tool-heavy surfaces increase recognition and mode burden; keep command grouping stable and avoid moving commands between breakpoints without a documented overflow model.
|
|
33
|
+
- Verification method: Pair `automated` accessible-name checks with `manual` keyboard traversal, focus-return, and mode-state review; reserve `debt` for commands that intentionally require later assistive-technology testing.
|
|
34
|
+
|
|
35
|
+
## Responsive Behavior
|
|
36
|
+
|
|
37
|
+
At narrow widths, command groups should wrap into stable rows or move into a declared overflow region. Do not let command text resize the shell.
|
|
38
|
+
|
|
39
|
+
## Constraints And Change Points
|
|
40
|
+
|
|
41
|
+
Set explicit gaps for command groups and explicit shell height when the body scrolls internally. Keep fixed command regions outside the body scroll container.
|
|
42
|
+
|
|
43
|
+
## When Not To Use
|
|
44
|
+
|
|
45
|
+
Do not use this recipe for a simple content page with one or two actions. A [cluster](../patterns/in-line-grouping/cluster.md) inside normal document flow is enough.
|
|
46
|
+
|
|
47
|
+
## Related Patterns
|
|
48
|
+
|
|
49
|
+
- [reel](../patterns/in-line-grouping/reel.md)
|
|
50
|
+
- [panel-layout](../patterns/viewport-shell/panel-layout.md)
|
|
51
|
+
|
|
52
|
+
## IA Navigation
|
|
53
|
+
|
|
54
|
+
Parent: [Layout Recipes](index.md).
|
|
55
|
+
Next: [Quality Gates](../quality/index.md) for claim checks, or [Layout Pattern Catalog](../CATALOG.md) when replacing a primitive.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Recipe
|
|
3
|
+
title: Dashboard
|
|
4
|
+
description: Compose repeated panels and action clusters on a page grid.
|
|
5
|
+
screen_type: Dashboard
|
|
6
|
+
primary_user_task: Scan and compare repeated status, metric, or workflow panels.
|
|
7
|
+
spatial_model: Page grid containing repeated local grids and action groups.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Dashboard
|
|
11
|
+
|
|
12
|
+
## Recommended Pattern Stack
|
|
13
|
+
|
|
14
|
+
- [page-grid](../patterns/grid-repetition/page-grid.md)
|
|
15
|
+
- [card-grid](../patterns/grid-repetition/card-grid.md)
|
|
16
|
+
- [cluster](../patterns/in-line-grouping/cluster.md)
|
|
17
|
+
|
|
18
|
+
## DOM And Source Order
|
|
19
|
+
|
|
20
|
+
Order panels by decision priority, not by visual symmetry. Headings and filters should precede the regions they control.
|
|
21
|
+
|
|
22
|
+
## Scroll Ownership
|
|
23
|
+
|
|
24
|
+
Prefer normal document scrolling. Introduce internal scroll containers only for panels whose independent scroll state is part of the task.
|
|
25
|
+
|
|
26
|
+
## Accessibility Checklist
|
|
27
|
+
|
|
28
|
+
- Source order: Order panels by the decision path a reader should follow; do not let grid placement make lower-priority panels read first.
|
|
29
|
+
- Focus expectation: Filters, chart controls, and panel actions must follow the same priority order as their controlled regions.
|
|
30
|
+
- Scroll expectation: If a panel scrolls internally, name the panel, keep its heading outside or at the start of that scroll region, and verify focus is not trapped inside it.
|
|
31
|
+
- Semantic risk: Repeated metric cards can become anonymous groups; use headings, table/list semantics, or labelled regions before applying grid classes.
|
|
32
|
+
- Cognitive risk: Dense dashboards increase comparison load; group metrics by task and avoid relying on position or color alone to explain status.
|
|
33
|
+
- Verification method: Combine `automated` landmark/heading/contrast checks with `manual` keyboard, source-order, and cognitive walkthrough evidence; use `user` evidence for task-completion claims.
|
|
34
|
+
|
|
35
|
+
## Responsive Behavior
|
|
36
|
+
|
|
37
|
+
Let repeated panels reflow through grid constraints before adding viewport breakpoints. Action clusters should wrap before they overflow.
|
|
38
|
+
|
|
39
|
+
## Constraints And Change Points
|
|
40
|
+
|
|
41
|
+
Make page gutters, panel gaps, and minimum panel widths explicit. Avoid hiding a panel's overflow unless the panel has a declared fixed block size.
|
|
42
|
+
|
|
43
|
+
## When Not To Use
|
|
44
|
+
|
|
45
|
+
Do not use this recipe for a single focused workflow. A [form flow](form-flow.md) or [content-limiter](../patterns/containment/content-limiter.md) is usually clearer.
|
|
46
|
+
|
|
47
|
+
## Related Patterns
|
|
48
|
+
|
|
49
|
+
- [ram-grid](../patterns/grid-repetition/ram-grid.md)
|
|
50
|
+
- [dense-grid](../patterns/grid-repetition/dense-grid.md)
|
|
51
|
+
- [wrap-row](../patterns/in-line-grouping/wrap-row.md)
|
|
52
|
+
|
|
53
|
+
## IA Navigation
|
|
54
|
+
|
|
55
|
+
Parent: [Layout Recipes](index.md).
|
|
56
|
+
Next: [Quality Gates](../quality/index.md) for claim checks, or [Layout Pattern Catalog](../CATALOG.md) when replacing a primitive.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Recipe
|
|
3
|
+
title: Form Flow
|
|
4
|
+
description: Compose sequential form content with constrained width and reachable actions.
|
|
5
|
+
screen_type: Form flow
|
|
6
|
+
primary_user_task: Complete a sequence of related inputs.
|
|
7
|
+
spatial_model: Single primary column with grouped fields and action placement.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Form Flow
|
|
11
|
+
|
|
12
|
+
## Recommended Pattern Stack
|
|
13
|
+
|
|
14
|
+
- [content-limiter](../patterns/containment/content-limiter.md)
|
|
15
|
+
- [stack](../patterns/stacking/stack.md)
|
|
16
|
+
- [cluster](../patterns/in-line-grouping/cluster.md)
|
|
17
|
+
|
|
18
|
+
## DOM And Source Order
|
|
19
|
+
|
|
20
|
+
Keep labels, descriptions, fields, and errors adjacent in DOM order. Group related fields under semantic headings before adding layout classes.
|
|
21
|
+
|
|
22
|
+
## Scroll Ownership
|
|
23
|
+
|
|
24
|
+
Prefer document scrolling. If actions must remain visible, use a shell or footer pattern only after confirming it does not obscure validation messages or focus targets.
|
|
25
|
+
|
|
26
|
+
## Accessibility Checklist
|
|
27
|
+
|
|
28
|
+
- Source order: Keep each label, description, input, hint, and error adjacent in DOM order, even when groups are visually split into columns.
|
|
29
|
+
- Focus expectation: Keyboard focus must move through fields, validation messages, and actions in the same sequence a user completes the form.
|
|
30
|
+
- Scroll expectation: Sticky or fixed actions must not cover focused fields, inline errors, or the first invalid field after submission.
|
|
31
|
+
- Semantic risk: Group related controls with fieldset/legend or labelled sections before adding stack or cluster layout classes.
|
|
32
|
+
- Cognitive risk: Long flows create memory burden; expose step context, error recovery, and required/optional state without depending on color alone.
|
|
33
|
+
- Verification method: Use `automated` form-name/error association checks where possible, then `manual` keyboard and error-recovery review; use `user` evidence for completion-rate or comprehension claims.
|
|
34
|
+
|
|
35
|
+
## Responsive Behavior
|
|
36
|
+
|
|
37
|
+
Field groups should stack naturally. Action groups should wrap before they overflow and should preserve a clear primary action position.
|
|
38
|
+
|
|
39
|
+
## Constraints And Change Points
|
|
40
|
+
|
|
41
|
+
Use readable inline constraints for the form body. Keep field gaps, group gaps, and action gaps separate so density can change without changing structure.
|
|
42
|
+
|
|
43
|
+
## When Not To Use
|
|
44
|
+
|
|
45
|
+
Do not use this recipe for a data-dense editor where users compare many fields at once. A dashboard or panel layout may be more appropriate.
|
|
46
|
+
|
|
47
|
+
## Related Patterns
|
|
48
|
+
|
|
49
|
+
- [sticky-footer](../patterns/viewport-shell/sticky-footer.md)
|
|
50
|
+
- [line-up](../patterns/stacking/line-up.md)
|
|
51
|
+
|
|
52
|
+
## IA Navigation
|
|
53
|
+
|
|
54
|
+
Parent: [Layout Recipes](index.md).
|
|
55
|
+
Next: [Quality Gates](../quality/index.md) for claim checks, or [Layout Pattern Catalog](../CATALOG.md) when replacing a primitive.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Recipe
|
|
3
|
+
title: Homepage
|
|
4
|
+
description: Compose raw content into a homepage or ordinary webpage before product-level visual styling.
|
|
5
|
+
screen_type: Homepage
|
|
6
|
+
primary_user_task: Understand the offer, find the right next path, and decide whether to act.
|
|
7
|
+
spatial_model: First-viewport hook followed by stacked explanation, proof, comparison, conversion, and navigation sections.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Homepage
|
|
11
|
+
|
|
12
|
+
Use this recipe when raw content needs to become a homepage, landing page, campaign page, or general webpage and no narrower recipe has been chosen yet.
|
|
13
|
+
|
|
14
|
+
## Recommended Pattern Stack
|
|
15
|
+
|
|
16
|
+
- [cover](../patterns/viewport-shell/cover.md)
|
|
17
|
+
- [content-limiter](../patterns/containment/content-limiter.md)
|
|
18
|
+
- [stack](../patterns/stacking/stack.md)
|
|
19
|
+
- [cluster](../patterns/in-line-grouping/cluster.md)
|
|
20
|
+
- [ram-grid](../patterns/grid-repetition/ram-grid.md)
|
|
21
|
+
- [frame](../patterns/media-fit/frame.md)
|
|
22
|
+
|
|
23
|
+
## Content-To-Layout Matching
|
|
24
|
+
|
|
25
|
+
Map content blocks to section jobs before selecting visual treatment.
|
|
26
|
+
|
|
27
|
+
- Hook: use `cover` or a constrained first section when the opening message needs viewport-level framing.
|
|
28
|
+
- Explain: use `content-limiter` and `stack` for readable copy and progressive disclosure.
|
|
29
|
+
- Prove: use `ram-grid`, `card-grid`, or `columns` for testimonials, metrics, logos, examples, or repeated evidence.
|
|
30
|
+
- Compare: use a grid or sidebar composition only when comparisons need alignment or nearby support.
|
|
31
|
+
- Convert: use `cluster` or `wrap-row` for CTA groups that must wrap before overflow.
|
|
32
|
+
- Navigate or retain: use footer, link clusters, or repeated navigation groups after the primary action path.
|
|
33
|
+
|
|
34
|
+
Reject this recipe when the page is primarily a document, dashboard, form, command surface, or list-detail workflow.
|
|
35
|
+
|
|
36
|
+
## DOM And Source Order
|
|
37
|
+
|
|
38
|
+
Order sections by the visitor's decision path, not by visual symmetry. Put the primary heading, explanation, proof, and action in semantic order before layout classes. Repeated proof should be a list when each item has the same role.
|
|
39
|
+
|
|
40
|
+
## Scroll Ownership
|
|
41
|
+
|
|
42
|
+
Prefer normal document scrolling. Avoid nested scroll regions unless a section has an explicit independent task, such as a horizontally scrolling media reel with named keyboard and overflow behavior.
|
|
43
|
+
|
|
44
|
+
## Accessibility Expectations
|
|
45
|
+
|
|
46
|
+
- Focus expectation: Navigation, primary CTA, proof links, and conversion actions follow the visitor decision path declared in DOM order.
|
|
47
|
+
- Scroll expectation: Any carousel, reel, sticky CTA, or first-viewport treatment must declare keyboard access and avoid hiding focused content.
|
|
48
|
+
- Cognitive risk: Marketing hierarchy can overstate meaning visually; headings, section jobs, and CTA labels must make the same path understandable without the generated image.
|
|
49
|
+
|
|
50
|
+
## Responsive Behavior
|
|
51
|
+
|
|
52
|
+
Let sections collapse through intrinsic sizing, content limits, wrapping action rows, and repeat grids before adding viewport breakpoints. Keep the first viewport readable on narrow screens; do not require a generated hero image to carry essential text.
|
|
53
|
+
|
|
54
|
+
## Constraints And Change Points
|
|
55
|
+
|
|
56
|
+
Declare content measure, section gaps, page gutters, repeat-grid minimums, media ratios, and CTA wrapping thresholds. Treat brand color, typography, shadows, borders, and motion as product-level decisions outside this recipe.
|
|
57
|
+
|
|
58
|
+
## GPT Image Reference
|
|
59
|
+
|
|
60
|
+
Use the [Webpage Generation Workflow](../guides/webpage-generation-workflow.md) before generating the GPT Image reference. The prompt should describe the approved semantic order, section jobs, pattern stack, constraints, and harmony notes. After generation, extract hierarchy, spacing, media treatment, and CTA priority; keep decorative styling in the consuming product.
|
|
61
|
+
|
|
62
|
+
Required preconditions before prompt:
|
|
63
|
+
|
|
64
|
+
- Use case, audience, section jobs, semantic order, pattern stack, scroll owner, constraints, and harmony evaluation are approved.
|
|
65
|
+
|
|
66
|
+
Image review extract-vs-ignore:
|
|
67
|
+
|
|
68
|
+
- Extract section rhythm, hierarchy, approximate spacing, media treatment, and CTA priority.
|
|
69
|
+
- Ignore decorative choices that belong to the consuming product or conflict with source order, accessibility, constraints, or content stress behavior.
|
|
70
|
+
|
|
71
|
+
## Harmony Evaluation
|
|
72
|
+
|
|
73
|
+
Use the [Harmony evaluation gate](../quality/gates/harmony-evaluation.md) before implementation. If hierarchy, rhythm, accessibility, or source order conflict with the visual reference, the layout contract wins and the image prompt should be regenerated.
|
|
74
|
+
|
|
75
|
+
## When Not To Use
|
|
76
|
+
|
|
77
|
+
Do not use this recipe to force marketing-page structure onto task-heavy apps, documentation, long articles, settings, or list-detail workflows.
|
|
78
|
+
|
|
79
|
+
## Related Patterns
|
|
80
|
+
|
|
81
|
+
- [page-grid](../patterns/grid-repetition/page-grid.md)
|
|
82
|
+
- [card-grid](../patterns/grid-repetition/card-grid.md)
|
|
83
|
+
- [sidebar](../patterns/split-sidebar/sidebar.md)
|
|
84
|
+
- [sticky-footer](../patterns/viewport-shell/sticky-footer.md)
|
|
85
|
+
|
|
86
|
+
## IA Navigation
|
|
87
|
+
|
|
88
|
+
Parent: [Layout Recipes](index.md).
|
|
89
|
+
Next: [Quality Gates](../quality/index.md) for claim checks, or [Layout Pattern Catalog](../CATALOG.md) when replacing a primitive.
|
package/recipes/index.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Layout Recipes
|
|
2
|
+
|
|
3
|
+
Recipes combine layout patterns into screen-level spatial models.
|
|
4
|
+
|
|
5
|
+
Use the [primitive to recipe matrix](primitive-to-recipe-matrix.md) when you need pattern coverage, slot classification, lineage, and substitution risk across recipes.
|
|
6
|
+
|
|
7
|
+
- [Homepage](homepage.md) - Content-led webpage composition with hero, proof, explanation, conversion, and navigation sections.
|
|
8
|
+
- [SaaS settings](saas-settings.md) - Fixed navigation with a constrained settings flow.
|
|
9
|
+
- [Dashboard](dashboard.md) - Repeated metric and panel regions on a page grid.
|
|
10
|
+
- [Article page](article-page.md) - Readable prose with supporting aside content.
|
|
11
|
+
- [List detail](list-detail.md) - Explorable list beside a detail region.
|
|
12
|
+
- [Form flow](form-flow.md) - Sequential form content with reachable actions.
|
|
13
|
+
- [Command surface](command-surface.md) - Tool-heavy shell with stable command regions.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Recipe
|
|
3
|
+
title: List Detail
|
|
4
|
+
description: Compose an explorable list beside its selected detail region.
|
|
5
|
+
screen_type: List detail
|
|
6
|
+
primary_user_task: Browse a collection and inspect one selected item.
|
|
7
|
+
spatial_model: Peer list and detail regions with explicit scroll ownership.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# List Detail
|
|
11
|
+
|
|
12
|
+
## Recommended Pattern Stack
|
|
13
|
+
|
|
14
|
+
- [list-detail](../patterns/split-sidebar/list-detail.md)
|
|
15
|
+
- [scroll-body-shell](../patterns/viewport-shell/scroll-body-shell.md)
|
|
16
|
+
- [stack](../patterns/stacking/stack.md)
|
|
17
|
+
|
|
18
|
+
## DOM And Source Order
|
|
19
|
+
|
|
20
|
+
Place list controls before list results. Place detail content after the list in DOM order unless the detail is the primary task entry point.
|
|
21
|
+
|
|
22
|
+
## Scroll Ownership
|
|
23
|
+
|
|
24
|
+
Name whether the list, the detail region, or the page body owns scrolling. Avoid making both list and detail scroll independently unless the task requires side-by-side comparison.
|
|
25
|
+
|
|
26
|
+
## Accessibility Checklist
|
|
27
|
+
|
|
28
|
+
- Source order: Put list controls before list results, then the selected detail, unless the detail is the primary entry point for the task.
|
|
29
|
+
- Focus expectation: Selecting a list item must either keep focus on the selected item with the detail announced by context, or move focus to the detail heading with a documented return path.
|
|
30
|
+
- Scroll expectation: If list and detail scroll independently, name both regions and verify keyboard users can reach and leave each scroll container.
|
|
31
|
+
- Semantic risk: The list, selected state, and detail region need roles, headings, or labels that expose their relationship before split-sidebar layout is applied.
|
|
32
|
+
- Cognitive risk: Users can lose context when selection changes the detail region; preserve selected state, count/position, and clear return behavior.
|
|
33
|
+
- Verification method: Use `automated` landmark/name checks, `manual` focus-return and scroll-container review, and `user` evidence for browse-and-compare task success claims.
|
|
34
|
+
|
|
35
|
+
## Responsive Behavior
|
|
36
|
+
|
|
37
|
+
At narrow widths, the list and detail regions should stack in a predictable order. Preserve focus return behavior when selecting an item changes the detail region.
|
|
38
|
+
|
|
39
|
+
## Constraints And Change Points
|
|
40
|
+
|
|
41
|
+
Set a minimum list width and a dominant detail width. Make shell height explicit when scroll ownership is internal to the viewport.
|
|
42
|
+
|
|
43
|
+
## When Not To Use
|
|
44
|
+
|
|
45
|
+
Do not use this recipe when the detail page is a full navigation destination. Use ordinary page navigation and a [content-limiter](../patterns/containment/content-limiter.md) instead.
|
|
46
|
+
|
|
47
|
+
## Related Patterns
|
|
48
|
+
|
|
49
|
+
- [supporting-pane](../patterns/split-sidebar/supporting-pane.md)
|
|
50
|
+
- [fixed-sidenav-shell](../patterns/viewport-shell/fixed-sidenav-shell.md)
|
|
51
|
+
|
|
52
|
+
## IA Navigation
|
|
53
|
+
|
|
54
|
+
Parent: [Layout Recipes](index.md).
|
|
55
|
+
Next: [Quality Gates](../quality/index.md) for claim checks, or [Layout Pattern Catalog](../CATALOG.md) when replacing a primitive.
|