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.
Files changed (346) hide show
  1. package/AGENTS.md +156 -0
  2. package/CATALOG.md +69 -0
  3. package/DOMAINS.md +65 -0
  4. package/GOVERNANCE.md +222 -0
  5. package/GUIDE.md +59 -0
  6. package/README.md +313 -0
  7. package/consumer-reference/adapters/style-dictionary.config.mjs +36 -0
  8. package/consumer-reference/agent-native/README.md +157 -0
  9. package/consumer-reference/agent-native/registry.json +640 -0
  10. package/consumer-reference/agent-native/schema/agent-native.schema.json +848 -0
  11. package/consumer-reference/agent-native/schema/epistemic.schema.json +14 -0
  12. package/consumer-reference/agent-native/schema/execution.schema.json +12 -0
  13. package/consumer-reference/agent-native/schema/identity.schema.json +10 -0
  14. package/consumer-reference/agent-native/schema/learning.schema.json +12 -0
  15. package/consumer-reference/agent-native/schema/manifest.schema.json +6 -0
  16. package/consumer-reference/agent-native/schema/operation.schema.json +12 -0
  17. package/consumer-reference/agent-native/schema/protocol-binding.schema.json +9 -0
  18. package/consumer-reference/agent-native/schema/retrieval.schema.json +10 -0
  19. package/consumer-reference/baselines/calibration.json +260 -0
  20. package/consumer-reference/baselines/manifest.json +21 -0
  21. package/consumer-reference/contract.md +83 -0
  22. package/consumer-reference/fixtures/consumer-conformance/e2e-fixture.mjs +282 -0
  23. package/consumer-reference/fixtures/consumer-conformance/manifest.json +102 -0
  24. package/consumer-reference/fixtures/consumer-conformance/runtime-proof.mjs +32 -0
  25. package/consumer-reference/fixtures/consumer-conformance/valid-migration-result.json +18 -0
  26. package/consumer-reference/fixtures/consumer-conformance/valid-migration.json +142 -0
  27. package/consumer-reference/fixtures/invalid-stable-ended-support.json +19 -0
  28. package/consumer-reference/fixtures/promotion/invalid-blocking-evidence.json +26 -0
  29. package/consumer-reference/fixtures/promotion/invalid-count-only.json +29 -0
  30. package/consumer-reference/fixtures/promotion/invalid-missing-owner-migration.json +25 -0
  31. package/consumer-reference/fixtures/promotion/invalid-normative-bypass-no-regression.json +25 -0
  32. package/consumer-reference/fixtures/promotion/invalid-related-counted-independent.json +45 -0
  33. package/consumer-reference/fixtures/promotion/invalid-stable-ended-support.json +26 -0
  34. package/consumer-reference/fixtures/promotion/manifest.json +15 -0
  35. package/consumer-reference/fixtures/promotion/valid-deferred-example.json +67 -0
  36. package/consumer-reference/fixtures/promotion/valid-normative-bypass.json +67 -0
  37. package/consumer-reference/fixtures/token-portability/invalid-cycle.json +7 -0
  38. package/consumer-reference/fixtures/token-portability/invalid-dangling-alias.json +6 -0
  39. package/consumer-reference/fixtures/token-portability/invalid-extends.json +4 -0
  40. package/consumer-reference/fixtures/token-portability/invalid-json-pointer.json +7 -0
  41. package/consumer-reference/fixtures/token-portability/invalid-resolver.json +9 -0
  42. package/consumer-reference/fixtures/token-portability/invalid-type-mismatch.json +10 -0
  43. package/consumer-reference/fixtures/token-portability/invalid-unknown-reserved.json +6 -0
  44. package/consumer-reference/fixtures/token-portability/invalid-untested-type.json +6 -0
  45. package/consumer-reference/fixtures/token-portability/valid-border.json +14 -0
  46. package/consumer-reference/fixtures/token-portability/valid-reference.json +32 -0
  47. package/consumer-reference/fixtures/token-portability/valid-whole-alias.json +7 -0
  48. package/consumer-reference/fixtures/valid-deprecated.json +21 -0
  49. package/consumer-reference/fixtures/valid-experimental.json +19 -0
  50. package/consumer-reference/generated/manifest.json +40 -0
  51. package/consumer-reference/generated/tokens.css +12 -0
  52. package/consumer-reference/index.md +32 -0
  53. package/consumer-reference/policies/shared-experimental.json +37 -0
  54. package/consumer-reference/schema/ax-evidence.schema.json +30 -0
  55. package/consumer-reference/schema/baseline-manifest.schema.json +55 -0
  56. package/consumer-reference/schema/calibration-record.schema.json +190 -0
  57. package/consumer-reference/schema/capture-session.schema.json +161 -0
  58. package/consumer-reference/schema/component-state.schema.json +150 -0
  59. package/consumer-reference/schema/consumer-conformance-record.schema.json +365 -0
  60. package/consumer-reference/schema/dom-evidence.schema.json +38 -0
  61. package/consumer-reference/schema/evidence-record.schema.json +81 -0
  62. package/consumer-reference/schema/fixture-manifest.schema.json +32 -0
  63. package/consumer-reference/schema/item.schema.json +188 -0
  64. package/consumer-reference/schema/page-evidence-manifest.schema.json +216 -0
  65. package/consumer-reference/schema/page-evidence-session.schema.json +119 -0
  66. package/consumer-reference/schema/portable-tokens.schema.json +104 -0
  67. package/consumer-reference/schema/promotion-rfc.schema.json +219 -0
  68. package/consumer-reference/schema/runtime-evidence-manifest.schema.json +33 -0
  69. package/consumer-reference/schema/visual-evidence.schema.json +31 -0
  70. package/design-engineering/consumer-migration-readiness.md +124 -0
  71. package/design-engineering/index.md +28 -0
  72. package/design-engineering/interface-craft.md +107 -0
  73. package/design-engineering/reference-profiles/external-adaptation/index.md +12 -0
  74. package/design-engineering/reference-profiles/governed-local/editorial/components/button.component.json +125 -0
  75. package/design-engineering/reference-profiles/governed-local/editorial/evidence/button.evidence.json +3504 -0
  76. package/design-engineering/reference-profiles/governed-local/editorial/fixtures/button.fixture.json +65 -0
  77. package/design-engineering/reference-profiles/governed-local/editorial/generated/evidence-coverage.md +23 -0
  78. package/design-engineering/reference-profiles/governed-local/editorial/generated/keyboard-matrix.md +19 -0
  79. package/design-engineering/reference-profiles/governed-local/editorial/generated/state-matrix.md +21 -0
  80. package/design-engineering/reference-profiles/governed-local/editorial/local-foundations.json +12 -0
  81. package/design-engineering/reference-profiles/governed-local/editorial/profile.json +43 -0
  82. package/design-engineering/reference-profiles/governed-local/editorial/states/button.states.json +195 -0
  83. package/design-engineering/reference-profiles/governed-local/editorial/tokens.dtcg.json +17 -0
  84. package/design-engineering/reference-profiles/governed-local/index.md +26 -0
  85. package/design-engineering/reference-profiles/governed-local/terminal/components/button.component.json +125 -0
  86. package/design-engineering/reference-profiles/governed-local/terminal/evidence/button.evidence.json +3504 -0
  87. package/design-engineering/reference-profiles/governed-local/terminal/fixtures/button.fixture.json +65 -0
  88. package/design-engineering/reference-profiles/governed-local/terminal/generated/evidence-coverage.md +23 -0
  89. package/design-engineering/reference-profiles/governed-local/terminal/generated/keyboard-matrix.md +19 -0
  90. package/design-engineering/reference-profiles/governed-local/terminal/generated/state-matrix.md +21 -0
  91. package/design-engineering/reference-profiles/governed-local/terminal/local-foundations.json +12 -0
  92. package/design-engineering/reference-profiles/governed-local/terminal/profile.json +43 -0
  93. package/design-engineering/reference-profiles/governed-local/terminal/states/button.states.json +195 -0
  94. package/design-engineering/reference-profiles/governed-local/terminal/tokens.dtcg.json +17 -0
  95. package/design-engineering/reference-profiles/index.md +19 -0
  96. package/game-ui/classification.md +82 -0
  97. package/game-ui/index.md +35 -0
  98. package/game-ui/reference-record.md +62 -0
  99. package/game-ui/screen-hierarchy.md +107 -0
  100. package/game-ui/unity/architecture.md +166 -0
  101. package/game-ui/unity/cli-loop.md +84 -0
  102. package/game-ui/unity/data/unity-technologies-public-repositories.json +26654 -0
  103. package/game-ui/unity/org-wiki.md +146 -0
  104. package/game-ui/unity/repository-map.md +102 -0
  105. package/game-ui/unity/ui-systems.md +85 -0
  106. package/guides/decision-tree.md +149 -0
  107. package/guides/documentation-mode-taxonomy.md +157 -0
  108. package/guides/layout-brief.md +220 -0
  109. package/guides/vocabulary.md +148 -0
  110. package/guides/webpage-generation-workflow.md +185 -0
  111. package/index.md +36 -0
  112. package/layout/index.md +26 -0
  113. package/motion/index.md +24 -0
  114. package/motion/practice-reference.md +145 -0
  115. package/motion/review-workflow.md +86 -0
  116. package/motion/vocabulary.md +82 -0
  117. package/package.json +78 -0
  118. package/patterns/centering/center.md +87 -0
  119. package/patterns/centering/index.md +6 -0
  120. package/patterns/centering/super-center.md +89 -0
  121. package/patterns/containment/box.md +87 -0
  122. package/patterns/containment/clamped-card.md +86 -0
  123. package/patterns/containment/content-limiter.md +87 -0
  124. package/patterns/containment/fluid-styles.md +86 -0
  125. package/patterns/containment/index.md +8 -0
  126. package/patterns/grid-repetition/card-grid.md +88 -0
  127. package/patterns/grid-repetition/columns.md +87 -0
  128. package/patterns/grid-repetition/dense-grid.md +88 -0
  129. package/patterns/grid-repetition/grid-wrapper.md +89 -0
  130. package/patterns/grid-repetition/index.md +12 -0
  131. package/patterns/grid-repetition/masonry-approx.md +87 -0
  132. package/patterns/grid-repetition/page-grid.md +90 -0
  133. package/patterns/grid-repetition/ram-grid.md +88 -0
  134. package/patterns/grid-repetition/twelve-span-grid.md +92 -0
  135. package/patterns/in-line-grouping/badge-list.md +94 -0
  136. package/patterns/in-line-grouping/breadcrumb.md +89 -0
  137. package/patterns/in-line-grouping/cluster.md +89 -0
  138. package/patterns/in-line-grouping/deconstructed-pancake.md +92 -0
  139. package/patterns/in-line-grouping/index.md +13 -0
  140. package/patterns/in-line-grouping/pagination.md +89 -0
  141. package/patterns/in-line-grouping/reel.md +90 -0
  142. package/patterns/in-line-grouping/split-nav.md +97 -0
  143. package/patterns/in-line-grouping/tab-strip.md +88 -0
  144. package/patterns/in-line-grouping/wrap-row.md +89 -0
  145. package/patterns/index.md +13 -0
  146. package/patterns/media-fit/frame.md +95 -0
  147. package/patterns/media-fit/icon-frame.md +87 -0
  148. package/patterns/media-fit/index.md +6 -0
  149. package/patterns/overlay-exception/imposter.md +95 -0
  150. package/patterns/overlay-exception/index.md +6 -0
  151. package/patterns/overlay-exception/overlay-stack.md +89 -0
  152. package/patterns/split-sidebar/index.md +12 -0
  153. package/patterns/split-sidebar/list-detail.md +95 -0
  154. package/patterns/split-sidebar/main-with-rail.md +95 -0
  155. package/patterns/split-sidebar/media-object.md +102 -0
  156. package/patterns/split-sidebar/sidebar.md +101 -0
  157. package/patterns/split-sidebar/split-screen.md +92 -0
  158. package/patterns/split-sidebar/sticky-aside.md +97 -0
  159. package/patterns/split-sidebar/supporting-pane.md +95 -0
  160. package/patterns/split-sidebar/switcher.md +93 -0
  161. package/patterns/stacking/feed.md +88 -0
  162. package/patterns/stacking/index.md +8 -0
  163. package/patterns/stacking/line-up.md +95 -0
  164. package/patterns/stacking/stack.md +87 -0
  165. package/patterns/stacking/step-nav.md +88 -0
  166. package/patterns/viewport-shell/cover.md +90 -0
  167. package/patterns/viewport-shell/fixed-sidenav-shell.md +97 -0
  168. package/patterns/viewport-shell/holy-grail.md +112 -0
  169. package/patterns/viewport-shell/index.md +11 -0
  170. package/patterns/viewport-shell/panel-layout.md +95 -0
  171. package/patterns/viewport-shell/scroll-body-shell.md +93 -0
  172. package/patterns/viewport-shell/sticky-footer.md +92 -0
  173. package/patterns/viewport-shell/sticky-header.md +86 -0
  174. package/platform-guides/apple-interaction.md +89 -0
  175. package/platform-guides/index.md +26 -0
  176. package/quality/claim-records/index.md +3 -0
  177. package/quality/claim-records/samples.md +92 -0
  178. package/quality/claim-records/stylegallery-multidomain-scope.md +42 -0
  179. package/quality/claims.md +77 -0
  180. package/quality/evidence/accessibility.md +58 -0
  181. package/quality/evidence/consumer-migration.md +42 -0
  182. package/quality/evidence/design-rationale.md +34 -0
  183. package/quality/evidence/executable-evidence.md +79 -0
  184. package/quality/evidence/families.md +56 -0
  185. package/quality/evidence/hci-evaluation.md +36 -0
  186. package/quality/evidence/index.md +16 -0
  187. package/quality/evidence/pattern-contract-audit.md +96 -0
  188. package/quality/evidence/search-metadata-polyhierarchy.md +86 -0
  189. package/quality/evidence/sources.md +43 -0
  190. package/quality/evidence/tokens.md +33 -0
  191. package/quality/evidence/visual-qa.md +41 -0
  192. package/quality/gates/accessibility-evidence.md +60 -0
  193. package/quality/gates/consumer-migration-evidence.md +53 -0
  194. package/quality/gates/design-claim.md +56 -0
  195. package/quality/gates/harmony-evaluation.md +78 -0
  196. package/quality/gates/index.md +13 -0
  197. package/quality/gates/layout.md +52 -0
  198. package/quality/gates/rationale.md +53 -0
  199. package/quality/gates/visual-evidence.md +47 -0
  200. package/quality/index.md +55 -0
  201. package/quality/principles.md +58 -0
  202. package/recipes/article-page.md +52 -0
  203. package/recipes/command-surface.md +55 -0
  204. package/recipes/dashboard.md +56 -0
  205. package/recipes/form-flow.md +55 -0
  206. package/recipes/homepage.md +89 -0
  207. package/recipes/index.md +13 -0
  208. package/recipes/list-detail.md +55 -0
  209. package/recipes/primitive-to-recipe-matrix.md +83 -0
  210. package/recipes/saas-settings.md +52 -0
  211. package/scripts/agent-native/a2a-projection.mjs +248 -0
  212. package/scripts/agent-native/agui-projection.mjs +178 -0
  213. package/scripts/agent-native/canonical-json.mjs +109 -0
  214. package/scripts/agent-native/cli-adapter.mjs +68 -0
  215. package/scripts/agent-native/events.mjs +113 -0
  216. package/scripts/agent-native/execution.mjs +227 -0
  217. package/scripts/agent-native/fixture.mjs +159 -0
  218. package/scripts/agent-native/identity.mjs +184 -0
  219. package/scripts/agent-native/immutable-store.mjs +102 -0
  220. package/scripts/agent-native/knowledge.mjs +168 -0
  221. package/scripts/agent-native/learning-records.mjs +244 -0
  222. package/scripts/agent-native/learning.mjs +247 -0
  223. package/scripts/agent-native/mcp-adapter.mjs +173 -0
  224. package/scripts/agent-native/queries.mjs +173 -0
  225. package/scripts/agent-native/registry.mjs +154 -0
  226. package/scripts/agent-native/retrieval.mjs +171 -0
  227. package/scripts/agent-native/self-description.mjs +160 -0
  228. package/scripts/artifact-metadata.mjs +20 -0
  229. package/scripts/audit-evidence-freshness.mjs +308 -0
  230. package/scripts/baseline-contract.mjs +189 -0
  231. package/scripts/baseline-schema-parity.mjs +40 -0
  232. package/scripts/build-reference-artifacts.mjs +127 -0
  233. package/scripts/calibration-raw-contract.mjs +172 -0
  234. package/scripts/capture-session-contract.mjs +187 -0
  235. package/scripts/component-state-artifact-fixture.mjs +44 -0
  236. package/scripts/component-state-contract.mjs +99 -0
  237. package/scripts/component-state-semantics.mjs +128 -0
  238. package/scripts/component-state-workflow-contract.mjs +67 -0
  239. package/scripts/component-state-workflow-negative-cases.mjs +64 -0
  240. package/scripts/consumer-conformance-contract.mjs +198 -0
  241. package/scripts/consumer-evidence-governance-contract.mjs +210 -0
  242. package/scripts/consumer-reference-case-runner.mjs +93 -0
  243. package/scripts/consumer-reference-schema.mjs +155 -0
  244. package/scripts/create-component-state-session.mjs +100 -0
  245. package/scripts/create-page-evidence-session.mjs +139 -0
  246. package/scripts/domain-document-boundaries.mjs +40 -0
  247. package/scripts/domain-validation-checks.mjs +141 -0
  248. package/scripts/evidence-artifact-contract.mjs +191 -0
  249. package/scripts/finalize-component-state-evidence.mjs +165 -0
  250. package/scripts/finalize-page-evidence.mjs +197 -0
  251. package/scripts/generate-consumer-reference-evidence.mjs +154 -0
  252. package/scripts/generate-patterns.mjs +218 -0
  253. package/scripts/governance-matrix-contract.mjs +73 -0
  254. package/scripts/governance-matrix-negative-cases.mjs +114 -0
  255. package/scripts/governance-policy-contract.mjs +49 -0
  256. package/scripts/governance-test-fixture.mjs +321 -0
  257. package/scripts/governance-workflow-negative-cases.mjs +241 -0
  258. package/scripts/governed-profile-registry.mjs +125 -0
  259. package/scripts/json-schema-formats.mjs +31 -0
  260. package/scripts/markdown-structure.mjs +45 -0
  261. package/scripts/page-artifact-metadata.mjs +124 -0
  262. package/scripts/page-evidence-contract.mjs +297 -0
  263. package/scripts/page-evidence-fixture.mjs +271 -0
  264. package/scripts/pattern-data.mjs +325 -0
  265. package/scripts/profile-record-contract.mjs +140 -0
  266. package/scripts/promotion-attestation-contract.mjs +91 -0
  267. package/scripts/promotion-boundary-test-contract.mjs +92 -0
  268. package/scripts/promotion-fixture-inventory.mjs +109 -0
  269. package/scripts/promotion-governance-contract.mjs +28 -0
  270. package/scripts/reference-artifact-path-contract.mjs +28 -0
  271. package/scripts/reference-profile-contract.mjs +114 -0
  272. package/scripts/reference-token-contract.mjs +156 -0
  273. package/scripts/run-consumer-page-evidence-ci.mjs +170 -0
  274. package/scripts/sg-mcp.mjs +16 -0
  275. package/scripts/sg.mjs +27 -0
  276. package/scripts/strict-json.mjs +72 -0
  277. package/scripts/summarize-sentinel-calibration.mjs +98 -0
  278. package/scripts/test-agent-adapter-conformance.mjs +250 -0
  279. package/scripts/test-agent-conformance-receipt.mjs +106 -0
  280. package/scripts/test-agent-events.mjs +81 -0
  281. package/scripts/test-agent-execution-effects.mjs +114 -0
  282. package/scripts/test-agent-execution-fixtures.mjs +140 -0
  283. package/scripts/test-agent-execution-kernel.mjs +39 -0
  284. package/scripts/test-agent-execution-learning.mjs +130 -0
  285. package/scripts/test-agent-execution-lifecycle.mjs +143 -0
  286. package/scripts/test-agent-execution-safety.mjs +158 -0
  287. package/scripts/test-agent-execution-views.mjs +117 -0
  288. package/scripts/test-agent-identity-integrity-cases.mjs +160 -0
  289. package/scripts/test-agent-knowledge-kernel.mjs +183 -0
  290. package/scripts/test-agent-learning.mjs +246 -0
  291. package/scripts/test-agent-mcp.mjs +246 -0
  292. package/scripts/test-agent-native-schemas.mjs +215 -0
  293. package/scripts/test-agent-projections.mjs +249 -0
  294. package/scripts/test-agent-registry-mcp-integrity.mjs +215 -0
  295. package/scripts/test-agent-registry-mutations.mjs +110 -0
  296. package/scripts/test-audit-evidence-freshness.mjs +177 -0
  297. package/scripts/test-component-state-sentinel.mjs +35 -0
  298. package/scripts/test-component-state-source-contract.mjs +83 -0
  299. package/scripts/test-consumer-conformance-sentinel.mjs +165 -0
  300. package/scripts/test-consumer-reference-sentinel.mjs +31 -0
  301. package/scripts/test-generate-consumer-reference-evidence.mjs +124 -0
  302. package/scripts/test-json-cli-output.mjs +151 -0
  303. package/scripts/test-json-schema-formats.mjs +40 -0
  304. package/scripts/test-reference-adapters.mjs +199 -0
  305. package/scripts/test-renderer-purity.mjs +34 -0
  306. package/scripts/test-sg-cli.mjs +129 -0
  307. package/scripts/test-summarize-sentinel-calibration.mjs +226 -0
  308. package/scripts/test-validate-baseline-manifest.mjs +234 -0
  309. package/scripts/test-validate-component-state-artifacts.mjs +243 -0
  310. package/scripts/test-validate-component-state.mjs +106 -0
  311. package/scripts/test-validate-consumer-conformance.mjs +427 -0
  312. package/scripts/test-validate-consumer-reference-cli.mjs +69 -0
  313. package/scripts/test-validate-consumer-reference.mjs +263 -0
  314. package/scripts/test-validate-domains.mjs +357 -0
  315. package/scripts/test-validate-governance.mjs +292 -0
  316. package/scripts/test-validate-ia.mjs +262 -0
  317. package/scripts/test-validate-okf.mjs +73 -0
  318. package/scripts/test-validate-page-evidence.mjs +302 -0
  319. package/scripts/test-validate-patterns.mjs +157 -0
  320. package/scripts/test-validate-promotion-rfc.mjs +250 -0
  321. package/scripts/test-validate-reference-profiles.mjs +170 -0
  322. package/scripts/test-validate-unity-org-wiki.mjs +57 -0
  323. package/scripts/test-validate-unity-source-contracts.mjs +67 -0
  324. package/scripts/test-validate-vocabulary.mjs +174 -0
  325. package/scripts/test-validate-webpage-workflow.mjs +293 -0
  326. package/scripts/validate-baseline-manifest.mjs +44 -0
  327. package/scripts/validate-catalog.mjs +65 -0
  328. package/scripts/validate-component-state.mjs +141 -0
  329. package/scripts/validate-consumer-conformance.mjs +477 -0
  330. package/scripts/validate-consumer-reference.mjs +288 -0
  331. package/scripts/validate-domains.mjs +237 -0
  332. package/scripts/validate-governance.mjs +248 -0
  333. package/scripts/validate-ia.mjs +136 -0
  334. package/scripts/validate-links.mjs +66 -0
  335. package/scripts/validate-okf.mjs +104 -0
  336. package/scripts/validate-page-evidence.mjs +191 -0
  337. package/scripts/validate-patterns.mjs +246 -0
  338. package/scripts/validate-promotion-rfc.mjs +224 -0
  339. package/scripts/validate-reference-artifacts.mjs +125 -0
  340. package/scripts/validate-renderer-purity.mjs +56 -0
  341. package/scripts/validate-unity-org-wiki.mjs +146 -0
  342. package/scripts/validate-unity-source-contracts.mjs +107 -0
  343. package/scripts/validate-vocabulary.mjs +115 -0
  344. package/scripts/validate-webpage-workflow.mjs +254 -0
  345. package/scripts/visual-expectation-contract.mjs +20 -0
  346. package/scripts/workflow-action-contract.mjs +163 -0
@@ -0,0 +1,97 @@
1
+ ---
2
+ type: Layout Pattern
3
+ name: fixed-sidenav-shell
4
+ title: fixed-sidenav-shell
5
+ category: Viewport / Shell
6
+ description: Keep side navigation stable while main content scrolls.
7
+ primary_spatial_problem: Keep side navigation stable while main content scrolls.
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: Pattern owns the named scroll container.
14
+ source_lineage: https://carbondesignsystem.com/elements/2x-grid/overview/
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
+ # fixed-sidenav-shell
22
+
23
+ ## When To Use
24
+
25
+ Use this pattern when you need to keep side navigation stable while main content scrolls.
26
+
27
+ ## HTML
28
+
29
+ ```html
30
+ <section class="fixed_sidenav_shell" aria-label="Settings">
31
+ <nav class="fixed_sidenav_shell_list"><a href="#">Profile</a><a href="#">Billing</a></nav>
32
+ <main class="fixed_sidenav_shell_main">Editable settings form scrolls independently</main>
33
+ </section>
34
+ ```
35
+
36
+ ## CSS
37
+
38
+ ```css
39
+ .fixed_sidenav_shell {
40
+ display: grid;
41
+ grid-template-columns: 16rem minmax(0, 1fr);
42
+ grid-template-rows: minmax(0, 1fr);
43
+ max-block-size: 100dvh;
44
+ }
45
+
46
+ .fixed_sidenav_shell_list {
47
+ min-block-size: 0;
48
+ }
49
+
50
+ .fixed_sidenav_shell_main {
51
+ min-block-size: 0;
52
+ overflow: auto;
53
+ }
54
+ ```
55
+
56
+ ## Core Properties
57
+
58
+ - `display`, `grid-template-columns`, `grid-template-rows`, `max-block-size`, `min-block-size`, `overflow` define the spatial behavior for this pattern.
59
+
60
+ ## Properties That Break The Layout If Removed
61
+
62
+ - Removing `display`, `grid-template-columns`, `grid-template-rows`, `max-block-size`, `min-block-size`, `overflow` 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
+ - fluid 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
+ Pattern owns the named 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: Pattern owns the named scroll container.
79
+ - Cognitive risk: Medium: scroll ownership can hide context, controls, or return points if it is not named in the consuming layout.
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 `fixed_sidenav_shell` 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: [Viewport / Shell 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,112 @@
1
+ ---
2
+ type: Layout Pattern
3
+ name: holy-grail
4
+ title: holy-grail
5
+ category: Viewport / Shell
6
+ description: Place header, footer, sidebars, and main content in a resilient shell.
7
+ primary_spatial_problem: Place header, footer, sidebars, and main content in a resilient shell.
8
+ secondary_spatial_problems: none
9
+ layout_axis: both
10
+ content_shape: mixed
11
+ responsiveness: breakpointed
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
+ # holy-grail
22
+
23
+ ## When To Use
24
+
25
+ Use this pattern when you need to place header, footer, sidebars, and main content in a resilient shell.
26
+
27
+ ## HTML
28
+
29
+ ```html
30
+ <section class="holy_grail" aria-label="News page">
31
+ <header class="holy_grail_header">Daily briefing</header>
32
+ <aside class="holy_grail_left">Topic navigation</aside>
33
+ <main class="holy_grail_main">Lead story and article stream</main>
34
+ <aside class="holy_grail_right">Market snapshot</aside>
35
+ <footer class="holy_grail_footer">Edition links</footer>
36
+ </section>
37
+ ```
38
+
39
+ ## CSS
40
+
41
+ ```css
42
+ .holy_grail {
43
+ display: grid;
44
+ gap: 1rem;
45
+ grid-template: "header header header" auto "left main right" 1fr "footer footer footer" auto / minmax(12rem, auto) 1fr minmax(12rem, auto);
46
+ min-block-size: 100dvh;
47
+ }
48
+
49
+ .holy_grail_header {
50
+ grid-area: header;
51
+ }
52
+
53
+ .holy_grail_left {
54
+ grid-area: left;
55
+ }
56
+
57
+ .holy_grail_main {
58
+ grid-area: main;
59
+ min-inline-size: 0;
60
+ }
61
+
62
+ .holy_grail_right {
63
+ grid-area: right;
64
+ }
65
+
66
+ .holy_grail_footer {
67
+ grid-area: footer;
68
+ }
69
+ ```
70
+
71
+ ## Core Properties
72
+
73
+ - `display`, `gap`, `grid-template`, `min-block-size`, `grid-area`, `min-inline-size` define the spatial behavior for this pattern.
74
+
75
+ ## Properties That Break The Layout If Removed
76
+
77
+ - Removing `display`, `gap`, `grid-template`, `min-block-size`, `grid-area`, `min-inline-size` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
78
+
79
+ ## Constraints And Change Points
80
+
81
+ - breakpointed responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
82
+ - Keep the HTML class hooks and CSS selectors in one-to-one agreement.
83
+
84
+ ## Scroll Ownership
85
+
86
+ No internal scroll container.
87
+
88
+ ## Accessibility And Source Order Notes
89
+
90
+ - Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
91
+ - DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
92
+ - Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
93
+ - Scroll expectation: No internal scroll container.
94
+ - Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
95
+
96
+ ## Browser And Fallback Notes
97
+
98
+ 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.
99
+
100
+ ## Composition Notes
101
+
102
+ Use `holy_grail` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
103
+
104
+ ## Anti-patterns
105
+
106
+ - Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
107
+ - Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
108
+
109
+ ## IA Navigation
110
+
111
+ Parent: [Viewport / Shell patterns](index.md) in [Pattern Categories](../index.md).
112
+ 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,11 @@
1
+ # Viewport / Shell
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
+ - [cover](cover.md) - Keep a central region balanced between optional header and footer.
6
+ - [holy-grail](holy-grail.md) - Place header, footer, sidebars, and main content in a resilient shell.
7
+ - [sticky-footer](sticky-footer.md) - Keep footer at the bottom when content is short.
8
+ - [sticky-header](sticky-header.md) - Keep a header visible above a scrolling content region.
9
+ - [scroll-body-shell](scroll-body-shell.md) - Keep shell regions fixed while only the body scrolls.
10
+ - [fixed-sidenav-shell](fixed-sidenav-shell.md) - Keep side navigation stable while main content scrolls.
11
+ - [panel-layout](panel-layout.md) - Create predictable main and utility panels.
@@ -0,0 +1,95 @@
1
+ ---
2
+ type: Layout Pattern
3
+ name: panel-layout
4
+ title: panel-layout
5
+ category: Viewport / Shell
6
+ description: Create predictable main and utility panels.
7
+ primary_spatial_problem: Create predictable main and utility panels.
8
+ secondary_spatial_problems: none
9
+ layout_axis: inline
10
+ content_shape: mixed
11
+ responsiveness: reflow
12
+ constraints: Uses only local class hooks and explicit layout constraints.
13
+ scroll_ownership: No internal scroll container.
14
+ source_lineage: https://carbondesignsystem.com/elements/2x-grid/overview/
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
+ # panel-layout
22
+
23
+ ## When To Use
24
+
25
+ Use this pattern when you need to create predictable main and utility panels.
26
+
27
+ ## HTML
28
+
29
+ ```html
30
+ <section class="panel_layout" aria-label="Console workspace">
31
+ <main class="panel_layout_main">Query editor</main>
32
+ <aside class="panel_layout_side">Execution history</aside>
33
+ </section>
34
+ ```
35
+
36
+ ## CSS
37
+
38
+ ```css
39
+ .panel_layout {
40
+ display: grid;
41
+ gap: 1rem;
42
+ grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr));
43
+ }
44
+
45
+ .panel_layout_main {
46
+ min-inline-size: 0;
47
+ }
48
+
49
+ .panel_layout_side {
50
+ min-inline-size: 0;
51
+ }
52
+ ```
53
+
54
+ ## Core Properties
55
+
56
+ - `display`, `gap`, `grid-template-columns`, `min-inline-size` define the spatial behavior for this pattern.
57
+
58
+ ## Properties That Break The Layout If Removed
59
+
60
+ - Removing `display`, `gap`, `grid-template-columns`, `min-inline-size` 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
+ - reflow 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: Medium: reflow can change spatial adjacency, so labels, controls, and related content must remain adjacent in DOM order.
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 `panel_layout` 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: [Viewport / Shell 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,93 @@
1
+ ---
2
+ type: Layout Pattern
3
+ name: scroll-body-shell
4
+ title: scroll-body-shell
5
+ category: Viewport / Shell
6
+ description: Keep shell regions fixed while only the body scrolls.
7
+ primary_spatial_problem: Keep shell regions fixed while only the body scrolls.
8
+ secondary_spatial_problems: none
9
+ layout_axis: block
10
+ content_shape: mixed
11
+ responsiveness: fluid
12
+ constraints: Uses only local class hooks and explicit layout constraints.
13
+ scroll_ownership: Pattern owns the named scroll container.
14
+ source_lineage: https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/overflow
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
+ # scroll-body-shell
22
+
23
+ ## When To Use
24
+
25
+ Use this pattern when you need to keep shell regions fixed while only the body scrolls.
26
+
27
+ ## HTML
28
+
29
+ ```html
30
+ <section class="scroll_body_shell" aria-label="Inbox">
31
+ <header>Inbox filters</header>
32
+ <main class="scroll_body_shell_body">Message list owns vertical scrolling</main>
33
+ <footer>Selected message actions</footer>
34
+ </section>
35
+ ```
36
+
37
+ ## CSS
38
+
39
+ ```css
40
+ .scroll_body_shell {
41
+ display: grid;
42
+ grid-template-rows: auto minmax(0, 1fr) auto;
43
+ max-block-size: 100dvh;
44
+ }
45
+
46
+ .scroll_body_shell_body {
47
+ min-block-size: 0;
48
+ overflow: auto;
49
+ }
50
+ ```
51
+
52
+ ## Core Properties
53
+
54
+ - `display`, `grid-template-rows`, `max-block-size`, `min-block-size`, `overflow` define the spatial behavior for this pattern.
55
+
56
+ ## Properties That Break The Layout If Removed
57
+
58
+ - Removing `display`, `grid-template-rows`, `max-block-size`, `min-block-size`, `overflow` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
59
+
60
+ ## Constraints And Change Points
61
+
62
+ - fluid responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
63
+ - Keep the HTML class hooks and CSS selectors in one-to-one agreement.
64
+
65
+ ## Scroll Ownership
66
+
67
+ Pattern owns the named scroll container.
68
+
69
+ ## Accessibility And Source Order Notes
70
+
71
+ - Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
72
+ - DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
73
+ - Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
74
+ - Scroll expectation: Pattern owns the named scroll container.
75
+ - Cognitive risk: Medium: scroll ownership can hide context, controls, or return points if it is not named in the consuming layout.
76
+
77
+ ## Browser And Fallback Notes
78
+
79
+ 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.
80
+
81
+ ## Composition Notes
82
+
83
+ Use `scroll_body_shell` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
84
+
85
+ ## Anti-patterns
86
+
87
+ - Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
88
+ - Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
89
+
90
+ ## IA Navigation
91
+
92
+ Parent: [Viewport / Shell patterns](index.md) in [Pattern Categories](../index.md).
93
+ 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,92 @@
1
+ ---
2
+ type: Layout Pattern
3
+ name: sticky-footer
4
+ title: sticky-footer
5
+ category: Viewport / Shell
6
+ description: Keep footer at the bottom when content is short.
7
+ primary_spatial_problem: Keep footer at the bottom when content is short.
8
+ secondary_spatial_problems: none
9
+ layout_axis: block
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://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
+ # sticky-footer
22
+
23
+ ## When To Use
24
+
25
+ Use this pattern when you need to keep footer at the bottom when content is short.
26
+
27
+ ## HTML
28
+
29
+ ```html
30
+ <section class="sticky_footer" aria-label="Account setup">
31
+ <header>Account setup</header>
32
+ <main class="sticky_footer_main">Profile fields and preferences</main>
33
+ <footer><button>Save profile</button></footer>
34
+ </section>
35
+ ```
36
+
37
+ ## CSS
38
+
39
+ ```css
40
+ .sticky_footer {
41
+ display: grid;
42
+ grid-template-rows: auto 1fr auto;
43
+ min-block-size: 100dvh;
44
+ }
45
+
46
+ .sticky_footer_main {
47
+ min-block-size: 0;
48
+ }
49
+ ```
50
+
51
+ ## Core Properties
52
+
53
+ - `display`, `grid-template-rows`, `min-block-size` define the spatial behavior for this pattern.
54
+
55
+ ## Properties That Break The Layout If Removed
56
+
57
+ - Removing `display`, `grid-template-rows`, `min-block-size` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
58
+
59
+ ## Constraints And Change Points
60
+
61
+ - fluid responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
62
+ - Keep the HTML class hooks and CSS selectors in one-to-one agreement.
63
+
64
+ ## Scroll Ownership
65
+
66
+ No internal scroll container.
67
+
68
+ ## Accessibility And Source Order Notes
69
+
70
+ - Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
71
+ - DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
72
+ - Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
73
+ - Scroll expectation: No internal scroll container.
74
+ - Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
75
+
76
+ ## Browser And Fallback Notes
77
+
78
+ 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.
79
+
80
+ ## Composition Notes
81
+
82
+ Use `sticky_footer` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
83
+
84
+ ## Anti-patterns
85
+
86
+ - Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
87
+ - Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
88
+
89
+ ## IA Navigation
90
+
91
+ Parent: [Viewport / Shell patterns](index.md) in [Pattern Categories](../index.md).
92
+ 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,86 @@
1
+ ---
2
+ type: Layout Pattern
3
+ name: sticky-header
4
+ title: sticky-header
5
+ category: Viewport / Shell
6
+ description: Keep a header visible above a scrolling content region.
7
+ primary_spatial_problem: Keep a header visible above a scrolling content region.
8
+ secondary_spatial_problems: none
9
+ layout_axis: block
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://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/position
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
+ # sticky-header
22
+
23
+ ## When To Use
24
+
25
+ Use this pattern when you need to keep a header visible above a scrolling content region.
26
+
27
+ ## HTML
28
+
29
+ ```html
30
+ <header class="sticky_header">
31
+ <nav aria-label="Repository"><a href="#">Code</a><a href="#">Issues</a><a href="#">Pull requests</a></nav>
32
+ </header>
33
+ ```
34
+
35
+ ## CSS
36
+
37
+ ```css
38
+ .sticky_header {
39
+ inset-block-start: 0;
40
+ position: sticky;
41
+ z-index: 1;
42
+ }
43
+ ```
44
+
45
+ ## Core Properties
46
+
47
+ - `inset-block-start`, `position`, `z-index` define the spatial behavior for this pattern.
48
+
49
+ ## Properties That Break The Layout If Removed
50
+
51
+ - Removing `inset-block-start`, `position`, `z-index` changes the pattern from its documented layout responsibility back toward ordinary flow or an unsafe fixed arrangement.
52
+
53
+ ## Constraints And Change Points
54
+
55
+ - fluid responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
56
+ - Keep the HTML class hooks and CSS selectors in one-to-one agreement.
57
+
58
+ ## Scroll Ownership
59
+
60
+ No internal scroll container.
61
+
62
+ ## Accessibility And Source Order Notes
63
+
64
+ - Semantic role expectation: Preserve the HTML sample's landmark, list, navigation, form, figure, or article roles; layout classes must not replace semantic elements.
65
+ - DOM order expectation: Keep semantic elements, DOM order, reading order, and focus order independent from the visual placement created by the layout classes.
66
+ - Focus risk: Any interactive descendants follow DOM order; do not use this pattern to create a visual order that keyboard focus cannot follow.
67
+ - Scroll expectation: No internal scroll container.
68
+ - Cognitive risk: Low: the pattern should preserve ordinary reading flow when semantic order is already correct.
69
+
70
+ ## Browser And Fallback Notes
71
+
72
+ 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.
73
+
74
+ ## Composition Notes
75
+
76
+ Use `sticky_header` as the stable pattern root and compose additional layout behavior outside that root unless the child class is part of the documented relationship.
77
+
78
+ ## Anti-patterns
79
+
80
+ - Do not add color, border, shadow, typography, or animation rules to reusable pattern CSS.
81
+ - Do not use this pattern to repair unclear HTML structure; make the DOM roles legible first.
82
+
83
+ ## IA Navigation
84
+
85
+ Parent: [Viewport / Shell patterns](index.md) in [Pattern Categories](../index.md).
86
+ 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: Domain Guide
3
+ title: Apple Interaction As A Comparative Reference
4
+ description: Bounded comparison of Apple interaction themes with explicit web-adaptation and provenance limits.
5
+ domain: platform-guides
6
+ lifecycle: experimental
7
+ source_repository: https://github.com/emilkowalski/skills
8
+ source_path: skills/apple-design/SKILL.md
9
+ source_revision: 220e8607c90b17337d210125777b7b695f26c221
10
+ platform: Apple platforms
11
+ platform_version: verify-current
12
+ reviewed_on: 2026-07-11
13
+ ---
14
+
15
+ # Apple Interaction As A Comparative Reference
16
+
17
+ Primary role: platform comparison guide.
18
+
19
+ ## Repository Boundary
20
+
21
+ This page uses selected Apple-platform interaction themes as comparative questions. It does not reproduce Apple guidance, establish affiliation, prescribe imitation, or treat a native implementation value as valid for the web.
22
+
23
+ Current official Apple documentation is required for Apple-specific claims. Current web standards and browser documentation are required for web adaptation. Local rendered, device, accessibility, and performance evidence is required for product conclusions.
24
+
25
+ ## Reusable Method
26
+
27
+ For each proposed comparison:
28
+
29
+ 1. Name the user task, platform, OS/API version, input method, and state transition.
30
+ 2. Describe the observable behavior without branded terminology.
31
+ 3. Identify the platform convention and its current official source.
32
+ 4. Separate the reusable interaction question from native implementation details.
33
+ 5. Define the web adaptation, including unavailable or materially different capabilities.
34
+ 6. Verify the adapted behavior on its real surface and record what remains unproven.
35
+
36
+ ## Comparative Questions
37
+
38
+ | Theme | Question to investigate | Required evidence | Boundary |
39
+ | --- | --- | --- | --- |
40
+ | Response | Does feedback begin close enough to input to preserve cause and effect? | Interaction recording and input-state trace | No universal latency value is implied. |
41
+ | Direct manipulation | Does the presented state follow, cancel, and resume from user input coherently? | Repeated drag/reversal test on target input modes | One-to-one tracking is not always required. |
42
+ | Interruption | Can new input redirect a transition without jumping or locking control? | Mid-transition retarget and reversal evidence | Springs are one option, not a requirement. |
43
+ | Velocity continuity | Does release-to-settle behavior avoid an observable seam? | Gesture and presented-state recording | Native velocity APIs and web libraries differ. |
44
+ | Spatial consistency | Can the reader understand where content came from and where it returns? | Before/intermediate/after render plus source/focus order | Visual path cannot override semantic order. |
45
+ | Recoverability | Can a user cancel, reverse, undo, or safely recover where the task requires it? | Task and error-path evidence | Confirmation is not universally preferable to undo. |
46
+ | Wayfinding | Can the interface answer location, available destinations, contents, and exit? | Navigation task evidence | Familiar platform placement may not transfer across products. |
47
+ | Soft boundaries | Would progressive resistance communicate a limit better than a hard stop? | Comparative prototype and input/device evidence | The resistance curve is not standardized across platforms. |
48
+ | Multimodal feedback | Do visual, audio, and haptic cues share a clear cause and useful purpose? | Device timing and accessibility evidence | Web haptics/audio are not native equivalents and may be unavailable. |
49
+ | Adaptive presentation | Does the interface remain usable across text size, contrast, transparency, motion preference, input, and viewport changes? | Relevant preference and constraint matrix | A platform feature name does not prove web accessibility. |
50
+
51
+ ## Opinionated Guidance
52
+
53
+ Momentum-aware settling, source-anchored transitions, progressive boundary resistance, and carefully coordinated feedback can be useful hypotheses for directly manipulated interfaces. Translucent materials, system typography, haptics, and visual delight are product and platform choices outside reusable Layout pattern CSS.
54
+
55
+ ## Platform-Specific Guidance
56
+
57
+ - iOS/macOS gesture physics, native spring APIs, Dynamic Type, system materials, haptics, and SwiftUI/UIKit behavior must be labeled as Apple-specific.
58
+ - Any value described as shipped by Apple requires a direct, current official source and version.
59
+ - A web mapping must identify browser support, input differences, accessibility behavior, and fallback semantics.
60
+ - `backdrop-filter`, the Vibration API, web media queries, and JavaScript animation libraries are not equivalents merely because they can approximate one visible effect.
61
+
62
+ ## Unsupported Absolutes
63
+
64
+ - Do not call an upstream formula or parameter an exact Apple implementation without a primary official source.
65
+ - Do not require direct manipulation to track one-to-one in every context.
66
+ - Do not require audio and haptic events on one exact frame as a universal web contract.
67
+ - Do not claim translucent chrome is generally superior to opaque structure.
68
+ - Do not adopt a single spring configuration as a safe default across tasks.
69
+ - Do not import a named set of Apple principles as StyleGallery's shared principles.
70
+ - Do not infer native behavior, platform affiliation, or accessibility from visual similarity.
71
+
72
+ ## Verification Contract
73
+
74
+ Record the official platform source and version, the web-standard or browser source for adaptation, the exact target devices and input modes, relevant user preferences, and the observed pass/fail behavior. Use a real interactive prototype for interaction claims. State explicitly when native behavior cannot be reproduced or verified on the web.
75
+
76
+ Review this page when Apple changes the cited convention, the web platform changes the adaptation surface, the source revision changes, or local testing contradicts the guidance. `platform_version: verify-current` prevents this experimental page from masquerading as a version-pinned platform contract.
77
+
78
+ ## Source, License, And Attribution
79
+
80
+ - Upstream inspiration: [apple-design/SKILL.md](https://github.com/emilkowalski/skills/blob/220e8607c90b17337d210125777b7b695f26c221/skills/apple-design/SKILL.md)
81
+ - Snapshot: `220e8607c90b17337d210125777b7b695f26c221`
82
+ - Upstream license: MIT, Copyright (c) 2026 Emil Kowalski.
83
+ - Reuse form: independent method rewrite; upstream prose, tables, code, exact-value sequences, Apple/WWDC-derived expression, and quotations were not retained.
84
+ - Evidence boundary: the upstream artifact is a practitioner interpretation and provenance record, not an official Apple or web-platform source.
85
+
86
+ ## IA Navigation
87
+
88
+ Parent: [Platform Guides](index.md).
89
+ Next: [Layout](../layout/index.md).