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,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Pattern
|
|
3
|
+
name: split-nav
|
|
4
|
+
title: split-nav
|
|
5
|
+
category: In-line grouping
|
|
6
|
+
description: Separate primary and secondary nav actions in one row.
|
|
7
|
+
primary_spatial_problem: Separate primary and secondary nav actions in one row.
|
|
8
|
+
secondary_spatial_problems: none
|
|
9
|
+
layout_axis: inline
|
|
10
|
+
content_shape: mixed
|
|
11
|
+
responsiveness: wrap
|
|
12
|
+
constraints: Uses only local class hooks and explicit layout constraints.
|
|
13
|
+
scroll_ownership: No internal scroll container.
|
|
14
|
+
source_lineage: https://developer.mozilla.org/en-US/docs/Web/CSS/How_to/Layout_cookbook
|
|
15
|
+
lifecycle: generated
|
|
16
|
+
generated_from: scripts/generate-patterns.mjs, scripts/pattern-data.mjs
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
20
|
+
|
|
21
|
+
# split-nav
|
|
22
|
+
|
|
23
|
+
## When To Use
|
|
24
|
+
|
|
25
|
+
Use this pattern when you need to separate primary and secondary nav actions in one row.
|
|
26
|
+
|
|
27
|
+
## HTML
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<nav class="split_nav" aria-label="Documentation">
|
|
31
|
+
<section class="split_nav_primary"><a href="#">Guides</a><a href="#">API</a></section>
|
|
32
|
+
<section class="split_nav_secondary"><a href="#">Sign in</a></section>
|
|
33
|
+
</nav>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## CSS
|
|
37
|
+
|
|
38
|
+
```css
|
|
39
|
+
.split_nav {
|
|
40
|
+
align-items: center;
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-wrap: wrap;
|
|
43
|
+
gap: 0.75rem;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.split_nav_primary {
|
|
47
|
+
display: flex;
|
|
48
|
+
gap: 0.75rem;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.split_nav_secondary {
|
|
52
|
+
margin-inline-start: auto;
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Core Properties
|
|
57
|
+
|
|
58
|
+
- `align-items`, `display`, `flex-wrap`, `gap`, `margin-inline-start` define the spatial behavior for this pattern.
|
|
59
|
+
|
|
60
|
+
## Properties That Break The Layout If Removed
|
|
61
|
+
|
|
62
|
+
- Removing `align-items`, `display`, `flex-wrap`, `gap`, `margin-inline-start` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
|
|
63
|
+
|
|
64
|
+
## Constraints And Change Points
|
|
65
|
+
|
|
66
|
+
- wrap responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
|
|
67
|
+
- Keep the HTML class hooks and CSS selectors in one-to-one agreement.
|
|
68
|
+
|
|
69
|
+
## Scroll Ownership
|
|
70
|
+
|
|
71
|
+
No internal scroll container.
|
|
72
|
+
|
|
73
|
+
## Accessibility And Source Order Notes
|
|
74
|
+
|
|
75
|
+
- Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
|
|
76
|
+
- DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
|
|
77
|
+
- Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
|
|
78
|
+
- Scroll expectation: No internal scroll container.
|
|
79
|
+
- Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
|
|
80
|
+
|
|
81
|
+
## Browser And Fallback Notes
|
|
82
|
+
|
|
83
|
+
The CSS uses modern grid, flex, intrinsic sizing, logical properties, or positioning. If a target browser cannot support a property, fall back to ordinary block flow before adding decorative or script-driven layout behavior.
|
|
84
|
+
|
|
85
|
+
## Composition Notes
|
|
86
|
+
|
|
87
|
+
Use `split_nav` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
|
|
88
|
+
|
|
89
|
+
## Anti-patterns
|
|
90
|
+
|
|
91
|
+
- Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
|
|
92
|
+
- Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
|
|
93
|
+
|
|
94
|
+
## IA Navigation
|
|
95
|
+
|
|
96
|
+
Parent: [In-line grouping patterns](index.md) in [Pattern Categories](../index.md).
|
|
97
|
+
Next: [Layout Recipes](../../recipes/index.md) for screen-level composition, or return to the [Layout Pattern Catalog](../../CATALOG.md) when choosing another primitive.
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Pattern
|
|
3
|
+
name: tab-strip
|
|
4
|
+
title: tab-strip
|
|
5
|
+
category: In-line grouping
|
|
6
|
+
description: Keep peer tabs in one stable row that can wrap.
|
|
7
|
+
primary_spatial_problem: Keep peer tabs in one stable row that can wrap.
|
|
8
|
+
secondary_spatial_problems: none
|
|
9
|
+
layout_axis: inline
|
|
10
|
+
content_shape: mixed
|
|
11
|
+
responsiveness: wrap
|
|
12
|
+
constraints: Uses only local class hooks and explicit layout constraints.
|
|
13
|
+
scroll_ownership: No internal scroll container.
|
|
14
|
+
source_lineage: https://design-system.service.gov.uk/styles/layout/
|
|
15
|
+
lifecycle: generated
|
|
16
|
+
generated_from: scripts/generate-patterns.mjs, scripts/pattern-data.mjs
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
20
|
+
|
|
21
|
+
# tab-strip
|
|
22
|
+
|
|
23
|
+
## When To Use
|
|
24
|
+
|
|
25
|
+
Use this pattern when you need to keep peer tabs in one stable row that can wrap.
|
|
26
|
+
|
|
27
|
+
## HTML
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<nav class="tab_strip" aria-label="Report views">
|
|
31
|
+
<a href="#">Summary</a>
|
|
32
|
+
<a href="#">Cohorts</a>
|
|
33
|
+
<a href="#">Exports</a>
|
|
34
|
+
</nav>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## CSS
|
|
38
|
+
|
|
39
|
+
```css
|
|
40
|
+
.tab_strip {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-wrap: wrap;
|
|
43
|
+
gap: 0.75rem;
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Core Properties
|
|
48
|
+
|
|
49
|
+
- `display`, `flex-wrap`, `gap` define the spatial behavior for this pattern.
|
|
50
|
+
|
|
51
|
+
## Properties That Break The Layout If Removed
|
|
52
|
+
|
|
53
|
+
- Removing `display`, `flex-wrap`, `gap` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
|
|
54
|
+
|
|
55
|
+
## Constraints And Change Points
|
|
56
|
+
|
|
57
|
+
- wrap responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
|
|
58
|
+
- Keep the HTML class hooks and CSS selectors in one-to-one agreement.
|
|
59
|
+
|
|
60
|
+
## Scroll Ownership
|
|
61
|
+
|
|
62
|
+
No internal scroll container.
|
|
63
|
+
|
|
64
|
+
## Accessibility And Source Order Notes
|
|
65
|
+
|
|
66
|
+
- Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
|
|
67
|
+
- DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
|
|
68
|
+
- Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
|
|
69
|
+
- Scroll expectation: No internal scroll container.
|
|
70
|
+
- Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
|
|
71
|
+
|
|
72
|
+
## Browser And Fallback Notes
|
|
73
|
+
|
|
74
|
+
The CSS uses modern grid, flex, intrinsic sizing, logical properties, or positioning. If a target browser cannot support a property, fall back to ordinary block flow before adding decorative or script-driven layout behavior.
|
|
75
|
+
|
|
76
|
+
## Composition Notes
|
|
77
|
+
|
|
78
|
+
Use `tab_strip` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
|
|
79
|
+
|
|
80
|
+
## Anti-patterns
|
|
81
|
+
|
|
82
|
+
- Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
|
|
83
|
+
- Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
|
|
84
|
+
|
|
85
|
+
## IA Navigation
|
|
86
|
+
|
|
87
|
+
Parent: [In-line grouping patterns](index.md) in [Pattern Categories](../index.md).
|
|
88
|
+
Next: [Layout Recipes](../../recipes/index.md) for screen-level composition, or return to the [Layout Pattern Catalog](../../CATALOG.md) when choosing another primitive.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Pattern
|
|
3
|
+
name: wrap-row
|
|
4
|
+
title: wrap-row
|
|
5
|
+
category: In-line grouping
|
|
6
|
+
description: Wrap controls into rows with stable gaps.
|
|
7
|
+
primary_spatial_problem: Wrap controls into rows with stable gaps.
|
|
8
|
+
secondary_spatial_problems: none
|
|
9
|
+
layout_axis: inline
|
|
10
|
+
content_shape: mixed
|
|
11
|
+
responsiveness: wrap
|
|
12
|
+
constraints: Uses only local class hooks and explicit layout constraints.
|
|
13
|
+
scroll_ownership: No internal scroll container.
|
|
14
|
+
source_lineage: https://developer.mozilla.org/en-US/docs/Web/CSS/How_to/Layout_cookbook
|
|
15
|
+
lifecycle: generated
|
|
16
|
+
generated_from: scripts/generate-patterns.mjs, scripts/pattern-data.mjs
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
20
|
+
|
|
21
|
+
# wrap-row
|
|
22
|
+
|
|
23
|
+
## When To Use
|
|
24
|
+
|
|
25
|
+
Use this pattern when you need to wrap controls into rows with stable gaps.
|
|
26
|
+
|
|
27
|
+
## HTML
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<form class="wrap_row" aria-label="Filter tickets">
|
|
31
|
+
<label>Status <select></select></label>
|
|
32
|
+
<label>Owner <select></select></label>
|
|
33
|
+
<button>Apply filters</button>
|
|
34
|
+
</form>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## CSS
|
|
38
|
+
|
|
39
|
+
```css
|
|
40
|
+
.wrap_row {
|
|
41
|
+
align-items: center;
|
|
42
|
+
display: flex;
|
|
43
|
+
flex-wrap: wrap;
|
|
44
|
+
gap: 0.75rem;
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Core Properties
|
|
49
|
+
|
|
50
|
+
- `align-items`, `display`, `flex-wrap`, `gap` define the spatial behavior for this pattern.
|
|
51
|
+
|
|
52
|
+
## Properties That Break The Layout If Removed
|
|
53
|
+
|
|
54
|
+
- Removing `align-items`, `display`, `flex-wrap`, `gap` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
|
|
55
|
+
|
|
56
|
+
## Constraints And Change Points
|
|
57
|
+
|
|
58
|
+
- wrap responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
|
|
59
|
+
- Keep the HTML class hooks and CSS selectors in one-to-one agreement.
|
|
60
|
+
|
|
61
|
+
## Scroll Ownership
|
|
62
|
+
|
|
63
|
+
No internal scroll container.
|
|
64
|
+
|
|
65
|
+
## Accessibility And Source Order Notes
|
|
66
|
+
|
|
67
|
+
- Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
|
|
68
|
+
- DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
|
|
69
|
+
- Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
|
|
70
|
+
- Scroll expectation: No internal scroll container.
|
|
71
|
+
- Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
|
|
72
|
+
|
|
73
|
+
## Browser And Fallback Notes
|
|
74
|
+
|
|
75
|
+
The CSS uses modern grid, flex, intrinsic sizing, logical properties, or positioning. If a target browser cannot support a property, fall back to ordinary block flow before adding decorative or script-driven layout behavior.
|
|
76
|
+
|
|
77
|
+
## Composition Notes
|
|
78
|
+
|
|
79
|
+
Use `wrap_row` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
|
|
80
|
+
|
|
81
|
+
## Anti-patterns
|
|
82
|
+
|
|
83
|
+
- Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
|
|
84
|
+
- Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
|
|
85
|
+
|
|
86
|
+
## IA Navigation
|
|
87
|
+
|
|
88
|
+
Parent: [In-line grouping patterns](index.md) in [Pattern Categories](../index.md).
|
|
89
|
+
Next: [Layout Recipes](../../recipes/index.md) for screen-level composition, or return to the [Layout Pattern Catalog](../../CATALOG.md) when choosing another primitive.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Pattern Categories
|
|
2
|
+
|
|
3
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
4
|
+
|
|
5
|
+
- [Stacking](stacking/index.md)
|
|
6
|
+
- [Containment](containment/index.md)
|
|
7
|
+
- [Centering](centering/index.md)
|
|
8
|
+
- [In-line grouping](in-line-grouping/index.md)
|
|
9
|
+
- [Media / Fit](media-fit/index.md)
|
|
10
|
+
- [Viewport / Shell](viewport-shell/index.md)
|
|
11
|
+
- [Split / Sidebar](split-sidebar/index.md)
|
|
12
|
+
- [Grid / Repetition](grid-repetition/index.md)
|
|
13
|
+
- [Overlay / Exception](overlay-exception/index.md)
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Pattern
|
|
3
|
+
name: frame
|
|
4
|
+
title: frame
|
|
5
|
+
category: Media / Fit
|
|
6
|
+
description: Preserve media aspect ratio in a responsive slot.
|
|
7
|
+
primary_spatial_problem: Preserve media aspect ratio in a responsive slot.
|
|
8
|
+
secondary_spatial_problems: none
|
|
9
|
+
layout_axis: both
|
|
10
|
+
content_shape: mixed
|
|
11
|
+
responsiveness: fluid
|
|
12
|
+
constraints: Uses only local class hooks and explicit layout constraints.
|
|
13
|
+
scroll_ownership: No internal scroll container.
|
|
14
|
+
source_lineage: https://every-layout.dev/layouts/
|
|
15
|
+
lifecycle: generated
|
|
16
|
+
generated_from: scripts/generate-patterns.mjs, scripts/pattern-data.mjs
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
20
|
+
|
|
21
|
+
# frame
|
|
22
|
+
|
|
23
|
+
## When To Use
|
|
24
|
+
|
|
25
|
+
Use this pattern when you need to preserve media aspect ratio in a responsive slot.
|
|
26
|
+
|
|
27
|
+
## HTML
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<figure class="frame">
|
|
31
|
+
<img alt="Product walkthrough still" class="frame_media">
|
|
32
|
+
</figure>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## CSS
|
|
36
|
+
|
|
37
|
+
```css
|
|
38
|
+
.frame {
|
|
39
|
+
aspect-ratio: 16 / 9;
|
|
40
|
+
display: grid;
|
|
41
|
+
inline-size: 100%;
|
|
42
|
+
overflow: clip;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.frame_media {
|
|
46
|
+
block-size: 100%;
|
|
47
|
+
inline-size: 100%;
|
|
48
|
+
min-block-size: 0;
|
|
49
|
+
min-inline-size: 0;
|
|
50
|
+
object-fit: cover;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Core Properties
|
|
55
|
+
|
|
56
|
+
- `aspect-ratio`, `display`, `inline-size`, `overflow`, `block-size`, `min-block-size`, `min-inline-size`, `object-fit` define the spatial behavior for this pattern.
|
|
57
|
+
|
|
58
|
+
## Properties That Break The Layout If Removed
|
|
59
|
+
|
|
60
|
+
- Removing `aspect-ratio`, `display`, `inline-size`, `overflow`, `block-size`, `min-block-size`, `min-inline-size`, `object-fit` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
|
|
61
|
+
|
|
62
|
+
## Constraints And Change Points
|
|
63
|
+
|
|
64
|
+
- fluid responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
|
|
65
|
+
- Keep the HTML class hooks and CSS selectors in one-to-one agreement.
|
|
66
|
+
|
|
67
|
+
## Scroll Ownership
|
|
68
|
+
|
|
69
|
+
No internal scroll container.
|
|
70
|
+
|
|
71
|
+
## Accessibility And Source Order Notes
|
|
72
|
+
|
|
73
|
+
- Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
|
|
74
|
+
- DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
|
|
75
|
+
- Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
|
|
76
|
+
- Scroll expectation: No internal scroll container.
|
|
77
|
+
- Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
|
|
78
|
+
|
|
79
|
+
## Browser And Fallback Notes
|
|
80
|
+
|
|
81
|
+
The CSS uses modern grid, flex, intrinsic sizing, logical properties, or positioning. If a target browser cannot support a property, fall back to ordinary block flow before adding decorative or script-driven layout behavior.
|
|
82
|
+
|
|
83
|
+
## Composition Notes
|
|
84
|
+
|
|
85
|
+
Use `frame` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
|
|
86
|
+
|
|
87
|
+
## Anti-patterns
|
|
88
|
+
|
|
89
|
+
- Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
|
|
90
|
+
- Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
|
|
91
|
+
|
|
92
|
+
## IA Navigation
|
|
93
|
+
|
|
94
|
+
Parent: [Media / Fit patterns](index.md) in [Pattern Categories](../index.md).
|
|
95
|
+
Next: [Layout Recipes](../../recipes/index.md) for screen-level composition, or return to the [Layout Pattern Catalog](../../CATALOG.md) when choosing another primitive.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Pattern
|
|
3
|
+
name: icon-frame
|
|
4
|
+
title: icon-frame
|
|
5
|
+
category: Media / Fit
|
|
6
|
+
description: Keep an icon aligned inside a fixed square slot.
|
|
7
|
+
primary_spatial_problem: Keep an icon aligned inside a fixed square slot.
|
|
8
|
+
secondary_spatial_problems: none
|
|
9
|
+
layout_axis: both
|
|
10
|
+
content_shape: mixed
|
|
11
|
+
responsiveness: fixed
|
|
12
|
+
constraints: Uses only local class hooks and explicit layout constraints.
|
|
13
|
+
scroll_ownership: No internal scroll container.
|
|
14
|
+
source_lineage: https://every-layout.dev/layouts/
|
|
15
|
+
lifecycle: generated
|
|
16
|
+
generated_from: scripts/generate-patterns.mjs, scripts/pattern-data.mjs
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
20
|
+
|
|
21
|
+
# icon-frame
|
|
22
|
+
|
|
23
|
+
## When To Use
|
|
24
|
+
|
|
25
|
+
Use this pattern when you need to keep an icon aligned inside a fixed square slot.
|
|
26
|
+
|
|
27
|
+
## HTML
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<span class="icon_frame" aria-label="Calendar">
|
|
31
|
+
<svg aria-hidden="true" viewBox="0 0 24 24"></svg>
|
|
32
|
+
</span>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## CSS
|
|
36
|
+
|
|
37
|
+
```css
|
|
38
|
+
.icon_frame {
|
|
39
|
+
block-size: 2.5rem;
|
|
40
|
+
display: grid;
|
|
41
|
+
inline-size: 2.5rem;
|
|
42
|
+
place-items: center;
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Core Properties
|
|
47
|
+
|
|
48
|
+
- `block-size`, `display`, `inline-size`, `place-items` define the spatial behavior for this pattern.
|
|
49
|
+
|
|
50
|
+
## Properties That Break The Layout If Removed
|
|
51
|
+
|
|
52
|
+
- Removing `block-size`, `display`, `inline-size`, `place-items` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
|
|
53
|
+
|
|
54
|
+
## Constraints And Change Points
|
|
55
|
+
|
|
56
|
+
- fixed responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
|
|
57
|
+
- Keep the HTML class hooks and CSS selectors in one-to-one agreement.
|
|
58
|
+
|
|
59
|
+
## Scroll Ownership
|
|
60
|
+
|
|
61
|
+
No internal scroll container.
|
|
62
|
+
|
|
63
|
+
## Accessibility And Source Order Notes
|
|
64
|
+
|
|
65
|
+
- Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
|
|
66
|
+
- DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
|
|
67
|
+
- Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
|
|
68
|
+
- Scroll expectation: No internal scroll container.
|
|
69
|
+
- Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
|
|
70
|
+
|
|
71
|
+
## Browser And Fallback Notes
|
|
72
|
+
|
|
73
|
+
The CSS uses modern grid, flex, intrinsic sizing, logical properties, or positioning. If a target browser cannot support a property, fall back to ordinary block flow before adding decorative or script-driven layout behavior.
|
|
74
|
+
|
|
75
|
+
## Composition Notes
|
|
76
|
+
|
|
77
|
+
Use `icon_frame` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
|
|
78
|
+
|
|
79
|
+
## Anti-patterns
|
|
80
|
+
|
|
81
|
+
- Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
|
|
82
|
+
- Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
|
|
83
|
+
|
|
84
|
+
## IA Navigation
|
|
85
|
+
|
|
86
|
+
Parent: [Media / Fit patterns](index.md) in [Pattern Categories](../index.md).
|
|
87
|
+
Next: [Layout Recipes](../../recipes/index.md) for screen-level composition, or return to the [Layout Pattern Catalog](../../CATALOG.md) when choosing another primitive.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Media / Fit
|
|
2
|
+
|
|
3
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
4
|
+
|
|
5
|
+
- [icon-frame](icon-frame.md) - Keep an icon aligned inside a fixed square slot.
|
|
6
|
+
- [frame](frame.md) - Preserve media aspect ratio in a responsive slot.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Pattern
|
|
3
|
+
name: imposter
|
|
4
|
+
title: imposter
|
|
5
|
+
category: Overlay / Exception
|
|
6
|
+
description: Place an overlay region over a parent without changing document order.
|
|
7
|
+
primary_spatial_problem: Place an overlay region over a parent without changing document order.
|
|
8
|
+
secondary_spatial_problems: none
|
|
9
|
+
layout_axis: both
|
|
10
|
+
content_shape: mixed
|
|
11
|
+
responsiveness: fixed
|
|
12
|
+
constraints: Uses only local class hooks and explicit layout constraints.
|
|
13
|
+
scroll_ownership: No internal scroll container.
|
|
14
|
+
source_lineage: https://every-layout.dev/layouts/
|
|
15
|
+
lifecycle: generated
|
|
16
|
+
generated_from: scripts/generate-patterns.mjs, scripts/pattern-data.mjs
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
20
|
+
|
|
21
|
+
# imposter
|
|
22
|
+
|
|
23
|
+
## When To Use
|
|
24
|
+
|
|
25
|
+
Use this pattern when you need to place an overlay region over a parent without changing document order.
|
|
26
|
+
|
|
27
|
+
## HTML
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<section class="imposter_anchor" aria-label="Draft editor">
|
|
31
|
+
<p>Draft body text stays in normal document flow.</p>
|
|
32
|
+
<section class="imposter" aria-label="Modal placement">
|
|
33
|
+
<dialog open>Unsaved changes confirmation</dialog>
|
|
34
|
+
</section>
|
|
35
|
+
</section>
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## CSS
|
|
39
|
+
|
|
40
|
+
```css
|
|
41
|
+
.imposter_anchor {
|
|
42
|
+
position: relative;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.imposter {
|
|
46
|
+
display: grid;
|
|
47
|
+
inset: 0;
|
|
48
|
+
place-items: center;
|
|
49
|
+
position: absolute;
|
|
50
|
+
z-index: 1;
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Core Properties
|
|
55
|
+
|
|
56
|
+
- `position`, `display`, `inset`, `place-items`, `z-index` define the spatial behavior for this pattern.
|
|
57
|
+
|
|
58
|
+
## Properties That Break The Layout If Removed
|
|
59
|
+
|
|
60
|
+
- Removing `position`, `display`, `inset`, `place-items`, `z-index` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
|
|
61
|
+
|
|
62
|
+
## Constraints And Change Points
|
|
63
|
+
|
|
64
|
+
- fixed responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
|
|
65
|
+
- Keep the HTML class hooks and CSS selectors in one-to-one agreement.
|
|
66
|
+
|
|
67
|
+
## Scroll Ownership
|
|
68
|
+
|
|
69
|
+
No internal scroll container.
|
|
70
|
+
|
|
71
|
+
## Accessibility And Source Order Notes
|
|
72
|
+
|
|
73
|
+
- Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
|
|
74
|
+
- DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
|
|
75
|
+
- Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
|
|
76
|
+
- Scroll expectation: No internal scroll container.
|
|
77
|
+
- Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
|
|
78
|
+
|
|
79
|
+
## Browser And Fallback Notes
|
|
80
|
+
|
|
81
|
+
The CSS uses modern grid, flex, intrinsic sizing, logical properties, or positioning. If a target browser cannot support a property, fall back to ordinary block flow before adding decorative or script-driven layout behavior.
|
|
82
|
+
|
|
83
|
+
## Composition Notes
|
|
84
|
+
|
|
85
|
+
Use `imposter` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
|
|
86
|
+
|
|
87
|
+
## Anti-patterns
|
|
88
|
+
|
|
89
|
+
- Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
|
|
90
|
+
- Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
|
|
91
|
+
|
|
92
|
+
## IA Navigation
|
|
93
|
+
|
|
94
|
+
Parent: [Overlay / Exception patterns](index.md) in [Pattern Categories](../index.md).
|
|
95
|
+
Next: [Layout Recipes](../../recipes/index.md) for screen-level composition, or return to the [Layout Pattern Catalog](../../CATALOG.md) when choosing another primitive.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Overlay / Exception
|
|
2
|
+
|
|
3
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
4
|
+
|
|
5
|
+
- [imposter](imposter.md) - Place an overlay region over a parent without changing document order.
|
|
6
|
+
- [overlay-stack](overlay-stack.md) - Stack several regions into the same grid cell.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Layout Pattern
|
|
3
|
+
name: overlay-stack
|
|
4
|
+
title: overlay-stack
|
|
5
|
+
category: Overlay / Exception
|
|
6
|
+
description: Stack several regions into the same grid cell.
|
|
7
|
+
primary_spatial_problem: Stack several regions into the same grid cell.
|
|
8
|
+
secondary_spatial_problems: none
|
|
9
|
+
layout_axis: both
|
|
10
|
+
content_shape: mixed
|
|
11
|
+
responsiveness: fluid
|
|
12
|
+
constraints: Uses only local class hooks and explicit layout constraints.
|
|
13
|
+
scroll_ownership: No internal scroll container.
|
|
14
|
+
source_lineage: https://web.dev/articles/one-line-layouts
|
|
15
|
+
lifecycle: generated
|
|
16
|
+
generated_from: scripts/generate-patterns.mjs, scripts/pattern-data.mjs
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
<!-- Generated from `scripts/generate-patterns.mjs` and `scripts/pattern-data.mjs`. Do not hand-edit generated catalog or pattern docs; edit the source files and regenerate. -->
|
|
20
|
+
|
|
21
|
+
# overlay-stack
|
|
22
|
+
|
|
23
|
+
## When To Use
|
|
24
|
+
|
|
25
|
+
Use this pattern when you need to stack several regions into the same grid cell.
|
|
26
|
+
|
|
27
|
+
## HTML
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<section class="overlay_stack" aria-label="Map with controls">
|
|
31
|
+
<figure class="overlay_stack_item">Transit map</figure>
|
|
32
|
+
<form class="overlay_stack_item">Route search controls</form>
|
|
33
|
+
</section>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## CSS
|
|
37
|
+
|
|
38
|
+
```css
|
|
39
|
+
.overlay_stack {
|
|
40
|
+
display: grid;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.overlay_stack_item {
|
|
44
|
+
grid-area: 1 / 1;
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Core Properties
|
|
49
|
+
|
|
50
|
+
- `display`, `grid-area` define the spatial behavior for this pattern.
|
|
51
|
+
|
|
52
|
+
## Properties That Break The Layout If Removed
|
|
53
|
+
|
|
54
|
+
- Removing `display`, `grid-area` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
|
|
55
|
+
|
|
56
|
+
## Constraints And Change Points
|
|
57
|
+
|
|
58
|
+
- fluid responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
|
|
59
|
+
- Keep the HTML class hooks and CSS selectors in one-to-one agreement.
|
|
60
|
+
|
|
61
|
+
## Scroll Ownership
|
|
62
|
+
|
|
63
|
+
No internal scroll container.
|
|
64
|
+
|
|
65
|
+
## Accessibility And Source Order Notes
|
|
66
|
+
|
|
67
|
+
- Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
|
|
68
|
+
- DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
|
|
69
|
+
- Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
|
|
70
|
+
- Scroll expectation: No internal scroll container.
|
|
71
|
+
- Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
|
|
72
|
+
|
|
73
|
+
## Browser And Fallback Notes
|
|
74
|
+
|
|
75
|
+
The CSS uses modern grid, flex, intrinsic sizing, logical properties, or positioning. If a target browser cannot support a property, fall back to ordinary block flow before adding decorative or script-driven layout behavior.
|
|
76
|
+
|
|
77
|
+
## Composition Notes
|
|
78
|
+
|
|
79
|
+
Use `overlay_stack` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
|
|
80
|
+
|
|
81
|
+
## Anti-patterns
|
|
82
|
+
|
|
83
|
+
- Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
|
|
84
|
+
- Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
|
|
85
|
+
|
|
86
|
+
## IA Navigation
|
|
87
|
+
|
|
88
|
+
Parent: [Overlay / Exception patterns](index.md) in [Pattern Categories](../index.md).
|
|
89
|
+
Next: [Layout Recipes](../../recipes/index.md) for screen-level composition, or return to the [Layout Pattern Catalog](../../CATALOG.md) when choosing another primitive.
|