stylegallery 0.1.4 → 0.1.6
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/DOMAINS.md +11 -9
- package/GOVERNANCE.md +7 -1
- package/README.md +18 -0
- package/consumer-reference/agent-native/v2/admission-policy.json +71 -1
- package/consumer-reference/agent-native/v2/material-registry.json +1 -1
- package/consumer-reference/agent-native/v2/schema/admission-policy.schema.json +2 -2
- package/design-engineering/component-contract.md +98 -0
- package/design-engineering/decision-tree.md +69 -0
- package/design-engineering/index.md +12 -2
- package/design-engineering/worked-examples.md +127 -0
- package/design-terminology/comparison-workflow.md +98 -0
- package/design-terminology/conflict-cases.md +42 -53
- package/design-terminology/index.md +13 -5
- package/design-terminology/relation-types.md +12 -6
- package/design-terminology/source-vocabularies.md +17 -3
- package/game-ui/decision-tree.md +81 -0
- package/game-ui/index.md +11 -1
- package/game-ui/screen-recipes.md +101 -0
- package/game-ui/verification-workflow.md +100 -0
- package/index.md +8 -0
- package/log.md +38 -0
- package/motion/decision-tree.md +70 -0
- package/motion/index.md +14 -2
- package/motion/interaction-recipes.md +164 -0
- package/motion/motion-brief.md +125 -0
- package/motion/review-workflow.md +8 -0
- package/motion/vocabulary.md +2 -2
- package/package.json +15 -1
- package/platform-guides/adaptation-workflow.md +76 -0
- package/platform-guides/android-interaction.md +74 -0
- package/platform-guides/apple-interaction.md +9 -1
- package/platform-guides/compatibility-matrix.md +97 -0
- package/platform-guides/index.md +13 -2
- package/platform-guides/windows-interaction.md +75 -0
- package/recipes/homepage.md +8 -0
|
@@ -18,22 +18,22 @@ Representative questions this domain answers: are Figma's variable, the DTCG des
|
|
|
18
18
|
|
|
19
19
|
## Promotion To Stable
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
Domain lifecycle decisions follow the [repository-owner policy](../DOMAINS.md#lifecycle-and-staleness). The following source, ownership, and machine-contract checks inform a proposed transition beyond `experimental`:
|
|
22
22
|
|
|
23
23
|
- A named review owner, secondary reviewer, freshness owner, and dispute resolver are recorded.
|
|
24
24
|
- A machine-readable registry with schema exists for terms, concepts, sources, and relations; until then `scripts/validate-design-terminology.mjs` enforces record consistency on the Markdown tables.
|
|
25
25
|
- A relation invariant validator derived from the forbidden error states in [Design Term Relations](relation-types.md) passes.
|
|
26
26
|
- Every term carries a direct source locator.
|
|
27
27
|
- Every relation names both sources and a non-trivial boundary.
|
|
28
|
-
- At least three representative user tasks are verified: judging same-label different-meaning, judging a cross-system relation, and separating a historical term from a current one.
|
|
29
28
|
- Representative findability queries return a target document or record.
|
|
30
29
|
- Unresolved semantic disputes: zero.
|
|
31
30
|
- Stale sources beyond their re-review trigger: zero.
|
|
32
|
-
|
|
31
|
+
|
|
32
|
+
Reader tasks, user studies, adoption counts, and attestations are neither required nor sufficient for a domain lifecycle change. Reader-task observations may support a separately scoped findability claim.
|
|
33
33
|
|
|
34
34
|
## Content Review Contract
|
|
35
35
|
|
|
36
|
-
Record consistency is enforced mechanically from v0.1 by `scripts/validate-design-terminology.mjs`, which parses the term and relation tables and rejects unknown types, unrecorded terms, empty boundaries,
|
|
36
|
+
Record consistency is enforced mechanically from v0.1 by `scripts/validate-design-terminology.mjs`, which parses the term and relation tables and rejects unknown types, duplicate or unrecorded terms, missing source locators, empty boundaries/scopes, conflicting directions, containment cycles, impossible calendar dates, invalid temporal relations, label mismatches, and orphan terms. Source meaning and authority remain review judgments. Human semantic review is a **stable-promotion gate only**, not a merge gate for `experimental` content; it covers every term and relation (not a sample) against this checklist:
|
|
37
37
|
|
|
38
38
|
- Is the source kind correct for each cited source?
|
|
39
39
|
- Does each term description match what its source actually supports?
|
|
@@ -47,6 +47,14 @@ The review result is recorded as: terms reviewed, relations reviewed, counts of
|
|
|
47
47
|
|
|
48
48
|
This domain is a working method template: consumers may fork it and re-record their own sources, terms, and relations. Forked records are consumer-owned and never feed values back into StyleGallery.
|
|
49
49
|
|
|
50
|
+
## Start Here
|
|
51
|
+
|
|
52
|
+
| Task | Route |
|
|
53
|
+
| --- | --- |
|
|
54
|
+
| Resolve a source-specific question and produce a scoped handoff. | [Design Term Comparison Workflow](comparison-workflow.md) |
|
|
55
|
+
|
|
56
|
+
These workflows and worked cases are usable experimental guidance. Expected-result tables are test designs; actual product, engine, and reader evidence must be recorded separately. Review on a failed task, a source change, or a changed ownership contract.
|
|
57
|
+
|
|
50
58
|
## Available Guides
|
|
51
59
|
|
|
52
60
|
- [Design Source Kinds](source-kinds.md) classifies what kind of thing a vocabulary source is before its terms are read.
|
|
@@ -62,4 +70,4 @@ This domain is a working method template: consumers may fork it and re-record th
|
|
|
62
70
|
## IA Navigation
|
|
63
71
|
|
|
64
72
|
Parent: [StyleGallery](../index.md).
|
|
65
|
-
Next: [Design
|
|
73
|
+
Next: [Design Term Comparison Workflow](comparison-workflow.md).
|
|
@@ -47,7 +47,9 @@ A relation record is invalid when any of the following holds:
|
|
|
47
47
|
- Either term lacks an official, named source.
|
|
48
48
|
- The boundary field is empty or restates the type without adding scope.
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
The Markdown validator enforces unique source-qualified term IDs, direct source locators, actual calendar dates, explicit scope and direction, identical labels for `same_label_different_meaning`, temporal status/event requirements, inverse consistency, and acyclic containment within each scope. It ignores fenced examples and HTML comments. Locators must be HTTPS or existing repository documents; the validator does not authenticate source ownership or evaluate semantic truth.
|
|
51
|
+
|
|
52
|
+
The term table has seven columns: identifier, label, source/kind with direct locator, concept, status, scope, and reviewed date. The relation table has seven: from, to, type, scope, direction, boundary, and reviewed date. Scope is a non-empty kebab-case comparison identifier. One directed pair has one relation per scope; a separately recorded inverse must agree. Symmetric types use `symmetric`; representation, containment, and temporal relations use `directional`; `near_equivalent` declares either explicitly. Self-relations are invalid. Boundaries must contain a substantive sentence; a length check can reject blanks but cannot establish semantic adequacy.
|
|
51
53
|
|
|
52
54
|
## Term Record Shape
|
|
53
55
|
|
|
@@ -55,18 +57,22 @@ These rules are the human contract for v0.1; when the structured registry lands,
|
|
|
55
57
|
term_id: figma.variable
|
|
56
58
|
label: Variable
|
|
57
59
|
source: figma # named source from source-vocabularies
|
|
60
|
+
source_url: https://help.figma.com/hc/en-us/articles/14506821864087-Overview-of-variables-collections-and-modes
|
|
58
61
|
source_kind: design-tool # from source-kinds
|
|
59
62
|
concept: named-design-value
|
|
60
63
|
status: current # current | deprecated | historical | unknown
|
|
61
64
|
scope: file-or-collection-bound
|
|
62
|
-
reviewed_on: 2026-08
|
|
65
|
+
reviewed_on: 2026-09-08
|
|
63
66
|
relations:
|
|
64
67
|
- target: dtcg.token
|
|
65
68
|
type: partial_overlap
|
|
69
|
+
scope: value-interchange
|
|
70
|
+
direction: symmetric
|
|
71
|
+
reviewed_on: 2026-09-08
|
|
66
72
|
boundary: >
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
Exportable design values overlap; prototype values need not be
|
|
74
|
+
tokens, and one scalar variable does not provide every composite
|
|
75
|
+
structure in the 2025.10 format.
|
|
70
76
|
```
|
|
71
77
|
|
|
72
78
|
In v0.1 this shape is authored as the Markdown tables in [Cross-System Term Cases](conflict-cases.md). A machine-readable registry holding terms, concepts, sources, and relations is a prerequisite for promoting this domain beyond `experimental`; until then Material v2 answers document search only, not structured crosswalk queries.
|
|
@@ -95,7 +101,7 @@ Every recorded relation names two term records, one type from the closed set, a
|
|
|
95
101
|
|
|
96
102
|
## Source, License, And Attribution
|
|
97
103
|
|
|
98
|
-
This page is a locally authored model.
|
|
104
|
+
This page is a locally authored model. The illustrative `figma.variable` and `dtcg.token` relation uses `partial_overlap`; its named sources were rechecked on 2026-09-08 as recorded in [Term Cases](conflict-cases.md). No upstream prose is reproduced.
|
|
99
105
|
|
|
100
106
|
## IA Navigation
|
|
101
107
|
|
|
@@ -31,10 +31,24 @@ This page inventories the named sources whose terms this domain records, with th
|
|
|
31
31
|
| [Fluent 2](https://fluent2.microsoft.design/) | Microsoft | `design-system` | `foundations`, `components`, `patterns`, tokens | Living site; reviewed page set | current | 2026-08-18 |
|
|
32
32
|
| [Carbon](https://carbondesignsystem.com/) | IBM | `design-system` | `foundations` including tokens, `components`, `patterns` | Living site; reviewed page set | current | 2026-08-18 |
|
|
33
33
|
| [Polaris](https://polaris.shopify.com/) | Shopify | `design-system` | `foundations` including design tokens, `components`, `patterns`, `icons` | Living site; package versions for code | current | 2026-08-18 |
|
|
34
|
-
| [Design Tokens Format](https://
|
|
34
|
+
| [Design Tokens Format](https://www.w3.org/community/reports/design-tokens/CG-FINAL-format-20251028/) | Design Tokens Community Group | `specification` | `token`, `group`, `alias` data model | Format Module 2025.10; Community Group report, not a W3C Recommendation | current | 2026-09-08 |
|
|
35
35
|
| [Figma](https://help.figma.com/hc/en-us) | Figma | `design-tool` | `variables`, `modes`, `components` as tool constructs | Product and help-center version | current | 2026-08-18 |
|
|
36
36
|
|
|
37
|
-
All entries cite official first-party URLs (`authority: official`); `retrieved_on` equals `reviewed_on
|
|
37
|
+
All entries cite official first-party URLs (`authority: official`); `retrieved_on` equals the corresponding `reviewed_on`. Entries retaining 2026-08-18 are prior bounded readings, not rechecked claims for the current session.
|
|
38
|
+
|
|
39
|
+
## Direct Sources For Current Term Records
|
|
40
|
+
|
|
41
|
+
The [Term Cases](conflict-cases.md) use this narrower source set, rechecked 2026-09-08. Locators in the term table point to the exact document or section, not a general vendor home page.
|
|
42
|
+
|
|
43
|
+
| Named source | Source kind | Reviewed surface and version | Re-review trigger |
|
|
44
|
+
| --- | --- | --- | --- |
|
|
45
|
+
| Figma | `design-tool` | [Variables, collections, modes](https://help.figma.com/hc/en-us/articles/14506821864087-Overview-of-variables-collections-and-modes) and [components](https://help.figma.com/hc/en-us/articles/360038662654-Guide-to-components-in-Figma); dated help pages | Tool data model or cited help meaning changes |
|
|
46
|
+
| DTCG | `specification` | [2025.10 Format](https://www.w3.org/community/reports/design-tokens/CG-FINAL-format-20251028/) and [Second Editors' Draft, 2022-06-14](https://www.designtokens.org/tr/second-editors-draft/format/) | A comparison changes version; retain the historical scope |
|
|
47
|
+
| CSSWG | `web-platform` | [CSS Custom Properties Level 1](https://www.w3.org/TR/css-variables-1/#defining-variables) | The cited runtime-value definition changes |
|
|
48
|
+
| Carbon | `design-system` | [What is Carbon](https://carbondesignsystem.com/all-about-carbon/what-is-carbon/) and [patterns overview](https://carbondesignsystem.com/patterns/overview/) | Component or pattern scope changes |
|
|
49
|
+
| StyleGallery | `pattern-library` | Local [Layout hub](../layout/index.md) and its repository contract | Layout ownership or pattern contract changes |
|
|
50
|
+
|
|
51
|
+
The DTCG 2022 reading is historical evidence of a draft, not an implementation recommendation. A direct locator and a recorded reading establish provenance for the local summary; independent semantic approval remains separate.
|
|
38
52
|
|
|
39
53
|
## Freshness Policy
|
|
40
54
|
|
|
@@ -42,7 +56,7 @@ Every recorded source carries: `source_url`, `source_kind`, a version boundary (
|
|
|
42
56
|
|
|
43
57
|
## Reading The Inventory
|
|
44
58
|
|
|
45
|
-
- Four of the seven sources are design systems; HIG is a platform guideline, DTCG is a specification, Figma is a tool. Horizontal comparison is valid only within a kind, or through typed relations with boundaries.
|
|
59
|
+
- Four of the seven broad browse sources are design systems; HIG is a platform guideline, DTCG is a specification, Figma is a tool. Horizontal comparison is valid only within a kind, or through typed relations with boundaries.
|
|
46
60
|
- `foundations` labels are near-equivalent as layer names, but each system decides what the layer contains.
|
|
47
61
|
- The DTCG row records an interchange format, not a published token set.
|
|
48
62
|
- Dates above are the reading bound; any later restructure is new evidence, not a back-fill.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Game UI Decision Tree
|
|
4
|
+
description: Select player-task recipes, ownership boundaries, and engine routes from the screen's purpose.
|
|
5
|
+
domain: game-ui
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
provenance_kind: local
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Game UI Decision Tree
|
|
11
|
+
|
|
12
|
+
Primary role: game screen planning route.
|
|
13
|
+
|
|
14
|
+
## Repository Boundary
|
|
15
|
+
|
|
16
|
+
This route selects game-interface responsibilities independently of engine and art direction. The [Classification](classification.md) remains the local taxonomy; the [Screen Hierarchy](screen-hierarchy.md) defines ownership roles.
|
|
17
|
+
|
|
18
|
+
## Reusable Method
|
|
19
|
+
|
|
20
|
+
1. Write the player's question while the interface is visible.
|
|
21
|
+
2. Choose one primary task class from the table below.
|
|
22
|
+
3. Decide whether play continues and which input actions must be blocked.
|
|
23
|
+
4. Assign lifetime, focus, sorting, and state ownership.
|
|
24
|
+
5. Adapt a [Screen Recipe](screen-recipes.md), then run the [Verification Workflow](verification-workflow.md).
|
|
25
|
+
|
|
26
|
+
## Player Task Route
|
|
27
|
+
|
|
28
|
+
| Player question | Primary class | Recipe |
|
|
29
|
+
| --- | --- | --- |
|
|
30
|
+
| What is happening during play? | `hud` | [Play status and input](screen-recipes.md#play-status-and-input) |
|
|
31
|
+
| How do I perform an action? | `input-surface` | [Play status and input](screen-recipes.md#play-status-and-input) |
|
|
32
|
+
| Where can I go, pause, or leave? | `navigation` | [Pause and navigation](screen-recipes.md#pause-and-navigation) |
|
|
33
|
+
| What decision requires attention? | `dialog` | [Blocking decisions and connection](screen-recipes.md#blocking-decisions-and-connection) |
|
|
34
|
+
| Is the game ready or connected? | `system-status` | [Blocking decisions and connection](screen-recipes.md#blocking-decisions-and-connection) |
|
|
35
|
+
| What can I equip or compare? | `inventory` | [Inventory and comparison](screen-recipes.md#inventory-and-comparison) |
|
|
36
|
+
| What have I earned or unlocked? | `progression` | [Results and progression](screen-recipes.md#results-and-progression) |
|
|
37
|
+
| What can I obtain, and at what cost? | `commerce` | [Offers and acquisition](screen-recipes.md#offers-and-acquisition) |
|
|
38
|
+
| What should I learn next? | `tutorial` | [Teaching and narrative](screen-recipes.md#teaching-and-narrative) |
|
|
39
|
+
| What story is being presented? | `narrative` | [Teaching and narrative](screen-recipes.md#teaching-and-narrative) |
|
|
40
|
+
|
|
41
|
+
If a screen contains several tasks, classify regions independently. A purchase confirmation inside an inventory screen is a dialog owned by a commerce operation; it is not another inventory slot.
|
|
42
|
+
|
|
43
|
+
## Ownership Decisions
|
|
44
|
+
|
|
45
|
+
| Decision | Record before implementing |
|
|
46
|
+
| --- | --- |
|
|
47
|
+
| Lifetime | Application, session, scene, screen, entity, or one operation |
|
|
48
|
+
| Play relationship | Continues, pauses locally, or requests a networked pause; identify authority |
|
|
49
|
+
| Input | Active action map, focus owner, pointer/gamepad coexistence, cancellation |
|
|
50
|
+
| Ordering | Screen, HUD, world-linked, modal, or transient host; name competing hosts |
|
|
51
|
+
| Data | Authoritative state versus preview, selection, pending operation and stale data |
|
|
52
|
+
| Exit | What is restored, destroyed, retained, or reconciled |
|
|
53
|
+
|
|
54
|
+
## Worked Selection
|
|
55
|
+
|
|
56
|
+
A loadout screen shows owned equipment, character attributes, and a purchase button for an unavailable slot. Inventory is primary; comparison is a supporting region. The purchase flow is commerce and any confirmation is a modal decision. Closing the modal returns to the same slot. Losing connection updates operation status without clearing the loadout selection. A server response after the screen closes belongs to the operation owner, not a destroyed view.
|
|
57
|
+
|
|
58
|
+
## Opinionated Guidance
|
|
59
|
+
|
|
60
|
+
Separate the player's task from visual genre. Assign one cancellation owner for each active layer so the same Back/Cancel input does not dismiss a dialog and its parent screen together.
|
|
61
|
+
|
|
62
|
+
## Platform-Specific Guidance
|
|
63
|
+
|
|
64
|
+
For Unity, select the [UI System](unity/ui-systems.md), map [Architecture](unity/architecture.md), then use the [CLI Loop](unity/cli-loop.md) for the declared stack. Other engines retain these role contracts but require their own verified API mapping; no cross-engine runtime equivalence is claimed.
|
|
65
|
+
|
|
66
|
+
## Unsupported Absolutes
|
|
67
|
+
|
|
68
|
+
A pause menu does not imply multiplayer simulation can pause. Hierarchy order does not prove input blocking, focus, or sorting. A taxonomy label does not establish rendered behavior.
|
|
69
|
+
|
|
70
|
+
## Verification Contract
|
|
71
|
+
|
|
72
|
+
Check one ordinary screen, one overlay composition, and one unexpected interruption such as disconnection or scene teardown. Every active layer needs a named lifetime, input, sorting, and exit owner. Revisit the route if a real player task cannot be classified without forcing unrelated responsibilities together.
|
|
73
|
+
|
|
74
|
+
## Source, License, And Attribution
|
|
75
|
+
|
|
76
|
+
Locally authored route and fictional loadout case. It imports no game assets, third-party hierarchy, or engine code.
|
|
77
|
+
|
|
78
|
+
## IA Navigation
|
|
79
|
+
|
|
80
|
+
Parent: [Game UI](index.md).
|
|
81
|
+
Next: [Game UI Screen Recipes](screen-recipes.md).
|
package/game-ui/index.md
CHANGED
|
@@ -14,6 +14,16 @@ The player-task classes and classification axes are a local taxonomy proposed fo
|
|
|
14
14
|
|
|
15
15
|
Interface In Game was reviewed on 2026-07-14 through its [home page](https://interfaceingame.com/), [games index](https://interfaceingame.com/games/), and representative records for [Team Fortress 2](https://interfaceingame.com/games/team-fortress-2/), [Genshin Impact (Mobile)](https://interfaceingame.com/games/genshin-impact-mobile/), and [Gris](https://interfaceingame.com/games/gris/). In this bounded sample, the site exposed site-local facets such as Genres, Themes, and Platforms, while screenshots used Elements. The sample informs the local separation of player task from other axes; it does not cover the archive or establish the site's full information model.
|
|
16
16
|
|
|
17
|
+
## Start Here
|
|
18
|
+
|
|
19
|
+
| Task | Route |
|
|
20
|
+
| --- | --- |
|
|
21
|
+
| Choose by player task and ownership. | [Game UI Decision Tree](decision-tree.md) |
|
|
22
|
+
| Compose all ten player-task classes with failure cases. | [Game UI Screen Recipes](screen-recipes.md) |
|
|
23
|
+
| Record input, state, hierarchy, and teardown evidence. | [Game UI Verification Workflow](verification-workflow.md) |
|
|
24
|
+
|
|
25
|
+
These workflows and worked cases are usable experimental guidance. Expected-result tables are test designs; actual product, engine, and reader evidence must be recorded separately. Review on a failed task, a source change, or a changed ownership contract.
|
|
26
|
+
|
|
17
27
|
## Available Guides
|
|
18
28
|
|
|
19
29
|
- [Game UI Classification](classification.md) separates player purpose from visual language, input, state, and motion.
|
|
@@ -32,4 +42,4 @@ Game UI describes interface purpose, screen composition, and how named engines c
|
|
|
32
42
|
## IA Navigation
|
|
33
43
|
|
|
34
44
|
Parent: [StyleGallery](../index.md).
|
|
35
|
-
Next: [Game UI
|
|
45
|
+
Next: [Game UI Decision Tree](decision-tree.md).
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Game UI Screen Recipes
|
|
4
|
+
description: Engine-neutral screen compositions with player task, lifetime, input, state, recovery, and acceptance cases.
|
|
5
|
+
domain: game-ui
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
provenance_kind: local
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Game UI Screen Recipes
|
|
11
|
+
|
|
12
|
+
Primary role: game screen composition catalog.
|
|
13
|
+
|
|
14
|
+
## Repository Boundary
|
|
15
|
+
|
|
16
|
+
These are fictional compositions of [Screen Hierarchy](screen-hierarchy.md) roles. They prescribe no engine tree, artwork, or reusable Layout CSS. Use the [Decision Tree](decision-tree.md) to select by player task; record real references with the [Reference Record](reference-record.md).
|
|
17
|
+
|
|
18
|
+
## Reusable Method
|
|
19
|
+
|
|
20
|
+
For the selected recipe, name the persistent owner, screen or entity owner, active input recipient, exceptional states, and exit behavior. Each acceptance case below is an expected result awaiting consumer execution.
|
|
21
|
+
|
|
22
|
+
## Play Status And Input
|
|
23
|
+
|
|
24
|
+
Primary classes: `hud` and separately classified `input-surface` regions. A session-owned HUD presents player status, objectives, and contextual prompts. Entity-linked markers follow entity lifetime; virtual controls own their active press/drag state. HUD data observes gameplay authority rather than predicting confirmed rewards or inventory changes.
|
|
25
|
+
|
|
26
|
+
Keep critical state understandable when an effect is absent. Distinguish zero value from unavailable data. Record how spectator, respawn, controller disconnection, and menus change visibility and input routing.
|
|
27
|
+
|
|
28
|
+
Acceptance case: open a blocking menu while an action is held; release the action, close the menu, and confirm no stuck input remains. Destroy a marked entity and confirm its marker and subscriptions are removed.
|
|
29
|
+
|
|
30
|
+
## Pause And Navigation
|
|
31
|
+
|
|
32
|
+
Primary class: `navigation`. A screen host owns destinations; a pause overlay owns its focus scope and return target. The simulation/session owner decides whether play pauses. Audio, background input, and timers have explicit policies.
|
|
33
|
+
|
|
34
|
+
Preserve navigation selection when opening settings and returning. Loading a new destination invalidates old screen callbacks. Cancel should consume one active layer at a time.
|
|
35
|
+
|
|
36
|
+
Acceptance case: pause → settings → confirmation → cancel three times. Verify each step closes only the intended layer and restores the previous selection. For network play, verify the UI does not claim the world is paused when it continues.
|
|
37
|
+
|
|
38
|
+
## Blocking Decisions And Connection
|
|
39
|
+
|
|
40
|
+
Primary classes: `dialog` or `system-status`. A modal host owns blocking and focus; a connection service owns retry state. Keep message, available actions, retry state, and outcome distinct. Only block input that conflicts with the required decision.
|
|
41
|
+
|
|
42
|
+
Reconnection success must reconcile the current screen, which may differ from the screen present at failure. A retry response from an earlier attempt cannot dismiss a newer failure. Define whether a system notice supersedes, queues behind, or composes with an existing modal.
|
|
43
|
+
|
|
44
|
+
Acceptance case: lose connection during an inventory operation, open a system notice, then receive an old retry response. The current error/operation state remains authoritative and dismissal leaves no invisible blocker.
|
|
45
|
+
|
|
46
|
+
## Inventory And Comparison
|
|
47
|
+
|
|
48
|
+
Primary class: `inventory`. A screen owns filters, selection, and focus history. The data service owns item identity and confirmed equipment; a detail region owns the selected item's presentation. List/grid cells receive explicit data and selection state.
|
|
49
|
+
|
|
50
|
+
Compare by stable item identity, not cell position. Separate selected, equipped, unavailable, pending, and failed states. Preserve selection where possible after filtering or sorting; document a fallback when the item disappears.
|
|
51
|
+
|
|
52
|
+
Acceptance case: select item A, request equip, select B, then resolve A. A's result updates inventory truth while detail remains on B. Test empty inventory, maximum content, long localized attributes, and a disabled first item.
|
|
53
|
+
|
|
54
|
+
## Results And Progression
|
|
55
|
+
|
|
56
|
+
Primary class: `progression`. The completed-match/session record owns final values; presentation may stage reveal of those values. Reveal completion does not grant rewards. Skip reveals the confirmed final state once; replaying a presentation cannot duplicate a grant.
|
|
57
|
+
|
|
58
|
+
Distinguish provisional, confirmed, and unavailable results. Preserve a readable result summary after a flourish. A disconnected client must not present an unconfirmed reward as owned.
|
|
59
|
+
|
|
60
|
+
Acceptance case: skip twice, navigate away, and reopen results. The grant count stays unchanged, and the same authoritative result is shown. Test zero rewards and a reward list longer than the visible region.
|
|
61
|
+
|
|
62
|
+
## Offers And Acquisition
|
|
63
|
+
|
|
64
|
+
Primary class: `commerce`. The catalog owns offer identity, the purchase service owns transaction outcome, and the UI owns selection and acknowledgement. Show the item, total cost, currency, and eligibility before commitment. Pending, rejected, cancelled, expired, and fulfilled are different states.
|
|
65
|
+
|
|
66
|
+
Do not derive success from a button effect or optimistic currency subtraction. Reconcile price/availability changes before accepting a commitment. Duplicate input must follow the transaction contract.
|
|
67
|
+
|
|
68
|
+
Acceptance case: change availability between selection and submission, fail a request, and retry. The UI explains the current offer and never reports an unconfirmed acquisition. Actual payments and platform purchasing rules require consumer-specific verification.
|
|
69
|
+
|
|
70
|
+
## Teaching And Narrative
|
|
71
|
+
|
|
72
|
+
Primary classes: `tutorial` or `narrative`. A step/story controller owns progress; presentation owns text, highlight, voice/subtitle synchronization, and skip controls. Identify whether gameplay continues and whether a teaching step intentionally restricts input.
|
|
73
|
+
|
|
74
|
+
A tutorial must explain a usable alternative when the expected device is absent. Narrative skip semantics distinguish advancing one line, finishing a scene, and suppressing future presentation. Progress must not depend only on a reveal animation finishing.
|
|
75
|
+
|
|
76
|
+
Acceptance case: switch input mode midway through a tutorial, interrupt dialogue with a system modal, and return. Prompts match the current input, the story/step index remains correct, and required instructions can still be read.
|
|
77
|
+
|
|
78
|
+
## Opinionated Guidance
|
|
79
|
+
|
|
80
|
+
Keep screens thin enough that authoritative data survives their teardown when needed. Give each modal, transient effect, and world marker an explicit owner even when they share visual treatment.
|
|
81
|
+
|
|
82
|
+
## Platform-Specific Guidance
|
|
83
|
+
|
|
84
|
+
Map roles through the engine-specific guides. Safe areas, scaling, text shaping, controller focus, and accessibility capabilities require the actual engine, version, and target platform. A browser prototype is not evidence of console or engine behavior.
|
|
85
|
+
|
|
86
|
+
## Unsupported Absolutes
|
|
87
|
+
|
|
88
|
+
These recipes are not a universal game UX taxonomy, tested architecture, or proof of accessibility. A successful screenshot cannot prove operation integrity, input isolation, or teardown.
|
|
89
|
+
|
|
90
|
+
## Verification Contract
|
|
91
|
+
|
|
92
|
+
Run the chosen acceptance case with every declared input, target aspect ratios/safe areas, long localization, error/empty states, and interruptions. Record observed results in the [Verification Workflow](verification-workflow.md). `consumer_reference: not_applicable` applies here because these fictional compositions select no consumer record. Review when a runtime observation contradicts an ownership or recovery rule.
|
|
93
|
+
|
|
94
|
+
## Source, License, And Attribution
|
|
95
|
+
|
|
96
|
+
Locally authored fictional recipes with no copied game assets or implementation. Player classes and hierarchy roles come from this domain's local contracts.
|
|
97
|
+
|
|
98
|
+
## IA Navigation
|
|
99
|
+
|
|
100
|
+
Parent: [Game UI](index.md).
|
|
101
|
+
Next: [Game UI Verification Workflow](verification-workflow.md).
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Game UI Verification Workflow
|
|
4
|
+
description: Convert a screen recipe into repeatable input, state, hierarchy, and teardown evidence.
|
|
5
|
+
domain: game-ui
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
provenance_kind: local
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Game UI Verification Workflow
|
|
11
|
+
|
|
12
|
+
Primary role: game-interface acceptance and evidence procedure.
|
|
13
|
+
|
|
14
|
+
## Repository Boundary
|
|
15
|
+
|
|
16
|
+
This workflow verifies a declared game-interface contract on a named runtime. It does not authenticate third-party captures or convert a hypothetical recipe into a real gallery reference. Shared [Quality Gates](../quality/index.md) determine what a claim's evidence can support.
|
|
17
|
+
|
|
18
|
+
## Reusable Method
|
|
19
|
+
|
|
20
|
+
1. Select a [Screen Recipe](screen-recipes.md), build/version, scene, starting data, and supported inputs.
|
|
21
|
+
2. Record the active hierarchy's lifetime, input, sorting, focus, and teardown owners.
|
|
22
|
+
3. Reset to known state before each scenario. Name any non-resettable external dependency.
|
|
23
|
+
4. Execute actions in order, including an exception or interruption.
|
|
24
|
+
5. Compare expected and actual state, selection, input recipient, and surviving objects.
|
|
25
|
+
6. Save artifacts with source/build identity; classify pass, fail, not-run, or not-applicable with a reason.
|
|
26
|
+
|
|
27
|
+
## Minimum Scenario Matrix
|
|
28
|
+
|
|
29
|
+
| Dimension | Scenario | Inspect |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| Entry | Open by each supported input | Correct screen and initial focus/selection |
|
|
32
|
+
| Navigation | Visit first, middle, last, and unavailable actions | Predictable order, visible target, no unreachable required action |
|
|
33
|
+
| Modality | Open overlay above a screen, then another interruption | Exactly the intended input recipient; world input policy |
|
|
34
|
+
| Cancellation | Back/Cancel during entry, request, and exit | One-layer dismissal; no click-through or stale blocker |
|
|
35
|
+
| Content | Empty, long localized text, unbroken identifiers, many rows | Readable critical information and reachable actions |
|
|
36
|
+
| Surface | Target aspect ratios, safe areas, scaled UI, constrained window | No obscured controls or accidental scroll ownership |
|
|
37
|
+
| Data | Delay, fail, supersede, and complete requests out of order | Current identities and truthful operation status |
|
|
38
|
+
| Device | Switch/disconnect a claimed input device | Updated prompts and a viable recovery action |
|
|
39
|
+
| Lifetime | Reopen repeatedly and change scene/session | No duplicate handlers, surviving blockers, or stale view updates |
|
|
40
|
+
|
|
41
|
+
This is a selection matrix. A title that supports no touch input records touch as not applicable; it does not claim a touch pass.
|
|
42
|
+
|
|
43
|
+
## Worked Scenario: Inventory With Confirmation
|
|
44
|
+
|
|
45
|
+
Precondition: local fictional test data has two items, A and B. The inventory is open with A selected; no real commerce operation is involved.
|
|
46
|
+
|
|
47
|
+
| Step | Action | Expected observation |
|
|
48
|
+
| --- | --- | --- |
|
|
49
|
+
| 1 | Navigate to B and open its action dialog | B remains selected beneath the dialog; focus enters the dialog |
|
|
50
|
+
| 2 | Press Cancel once | Only the dialog closes; focus/selection returns to B |
|
|
51
|
+
| 3 | Reopen and trigger a delayed operation | Dialog exposes pending state and the declared duplicate-input behavior |
|
|
52
|
+
| 4 | Close/change the screen, then resolve the operation | Data owner reconciles the result; destroyed views do not update |
|
|
53
|
+
| 5 | Reopen inventory | Confirmed data appears; selection follows the documented restore policy |
|
|
54
|
+
|
|
55
|
+
Actual result: `not_run`. This procedure is a test design, not engine execution evidence.
|
|
56
|
+
|
|
57
|
+
A separate [web inventory adaptation](../examples/domain-interactions/README.md) exercises nested dismissal, delayed equipment responses after view closure, selection restoration, and reward reveal. Its [local browser results](../examples/domain-interactions/verification.md) are browser evidence only. The native-engine scenario above remains `not_run`.
|
|
58
|
+
|
|
59
|
+
## Evidence Record Template
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
scenario: inventory-dialog-return
|
|
63
|
+
build_revision: # immutable source/build identity
|
|
64
|
+
runtime: # engine, UI stack, packages, OS, device
|
|
65
|
+
surface: # resolution, aspect ratio, safe area, UI scale, locale
|
|
66
|
+
input: # exercised mode and device
|
|
67
|
+
precondition: # scene, data, selection, connectivity
|
|
68
|
+
actions: # ordered, reproducible steps
|
|
69
|
+
expected: # visible state plus hierarchy/input assertions
|
|
70
|
+
actual: not_run
|
|
71
|
+
artifacts: # capture, recording, hierarchy trace, operation log
|
|
72
|
+
limitations: # missing channels, device scope, mocked dependencies
|
|
73
|
+
consumer_reference: not_applicable
|
|
74
|
+
consumer_reference_reason: This blank procedure selects no consumer-owned reference record.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Opinionated Guidance
|
|
78
|
+
|
|
79
|
+
Capture hierarchy and input evidence together when a screenshot could hide the failure. A visually dismissed overlay with an active blocker is a failed dismissal, regardless of its appearance.
|
|
80
|
+
|
|
81
|
+
## Platform-Specific Guidance
|
|
82
|
+
|
|
83
|
+
For Unity use the source-pinned [CLI Loop](unity/cli-loop.md) and its UI-stack-specific capabilities. If a runner cannot inspect focus or controller routing, mark those checks not-run and collect them on the real engine surface.
|
|
84
|
+
|
|
85
|
+
## Unsupported Absolutes
|
|
86
|
+
|
|
87
|
+
A successful editor inspection does not prove player-build behavior. Mocked operation responses do not prove a live service works. Device and accessibility coverage must be named explicitly.
|
|
88
|
+
|
|
89
|
+
## Verification Contract
|
|
90
|
+
|
|
91
|
+
A completed record binds actions and actual outcomes to a build and runtime, includes exceptional-state evidence, and lists missing coverage. Failed required cases need remediation and rerun. A real gallery entry must also satisfy the [Reference Record](reference-record.md). Review when input routing, engine version, hierarchy ownership, or the recipe changes.
|
|
92
|
+
|
|
93
|
+
## Source, License, And Attribution
|
|
94
|
+
|
|
95
|
+
Locally authored test procedure and fictional inventory scenario. No real game reference, asset license, or runtime result is implied.
|
|
96
|
+
|
|
97
|
+
## IA Navigation
|
|
98
|
+
|
|
99
|
+
Parent: [Game UI](index.md).
|
|
100
|
+
Next: [Game UI Reference Record](reference-record.md).
|
package/index.md
CHANGED
|
@@ -35,3 +35,11 @@ Primary role: OKF bundle map.
|
|
|
35
35
|
- [Quality gates](quality/index.md) - Principle-backed gates for admissible layout and design evidence claims.
|
|
36
36
|
- [Consumer migration evidence gate](quality/gates/consumer-migration-evidence.md) - Blocking contract for declared migration evidence.
|
|
37
37
|
- [Update log](log.md) - Bundle update history.
|
|
38
|
+
|
|
39
|
+
## Applied Workflows
|
|
40
|
+
|
|
41
|
+
- [Motion Decision Tree](motion/decision-tree.md) - Choose a behavior from the user task.
|
|
42
|
+
- [Design Engineering Decision Tree](design-engineering/decision-tree.md) - Route the uncertain product decision.
|
|
43
|
+
- [Game UI Decision Tree](game-ui/decision-tree.md) - Choose by player task and ownership.
|
|
44
|
+
- [Platform Adaptation Workflow](platform-guides/adaptation-workflow.md) - Record native facts, target decisions, and fallbacks.
|
|
45
|
+
- [Design Term Comparison Workflow](design-terminology/comparison-workflow.md) - Resolve a source-specific question and produce a scoped handoff.
|
package/log.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# StyleGallery Log
|
|
2
2
|
|
|
3
|
+
## 2026-09-09
|
|
4
|
+
|
|
5
|
+
- Added a full-page fixed-viewport scene-navigation example with chapter hashes/history, wheel-burst gating, keyboard and art-surface swipe navigation, native copy overflow, immediate reduced-motion transitions, and a complete reading escape.
|
|
6
|
+
- Extended Motion, Design Engineering, Platform Guides, and the Homepage composition route for this distinct navigation model. Kept visual values and controllers in the example layer.
|
|
7
|
+
- Preserved one device shell across Flow's scroll-controlled scenes and linked the new page through the Scroll Story Lab. Historical verification remains bound to its original source; follow-up checks have separate records.
|
|
8
|
+
- Prepared npm 0.1.6 with the cumulative governed-document updates. Runnable examples remain repository-only and are not added to the material admission or npm file inventory.
|
|
9
|
+
|
|
10
|
+
- Added scroll-story contracts to Motion, a product media handoff to Design Engineering, and browser target cases to Platform Guides. Linked the existing Homepage recipe without adding a new Layout pattern or changing domain lifecycle.
|
|
11
|
+
- Replaced the Flow transfer scene with three reversible scroll-controlled chapters and added a second product example, native CSS scrubbing, bounded image decoding, static reading, and deterministic/runtime checks in the Scroll Story Lab.
|
|
12
|
+
|
|
13
|
+
- Added an independent Toss-inspired homepage study that composes the existing Homepage recipe and Layout patterns inside a standalone product layer.
|
|
14
|
+
- Added original generated hero and travel imagery, responsive navigation, keyboard-operated asset tabs, section progress, reduced-motion behavior, and explicit horizontal service-rail ownership.
|
|
15
|
+
- Recorded real Chrome verification at desktop, tablet, and mobile viewport sizes with retained desktop and mobile screenshots. No reusable Layout CSS or consumer-reference profile values were changed.
|
|
16
|
+
|
|
17
|
+
Implementation handoff: `consumer_reference: not_applicable`.
|
|
18
|
+
|
|
19
|
+
Consumer reference: not_applicable
|
|
20
|
+
Consumer reference reason: This standalone visual study selects no consumer-reference profile or record.
|
|
21
|
+
|
|
22
|
+
## 2026-09-08
|
|
23
|
+
|
|
24
|
+
- Prepared npm release `stylegallery@0.1.5` with the complete six-domain, 147-document Material v2 corpus and the README compatibility repair.
|
|
25
|
+
- Added fourteen local guides across the five non-Layout domains: task selection, motion briefs and recipes, component contracts and worked examples, game screen recipes and verification, Apple/Android/Windows adaptation, and terminology comparison.
|
|
26
|
+
- Connected the guides through domain hubs and root routes, declared their membership/provenance, and included them in the closed 147-document material index and npm package. Layout retains its existing 46 patterns and spatial boundaries.
|
|
27
|
+
- Replaced unsupported aggregate term records with directly sourced records; corrected representation direction and the confusion between composition and set containment. The Markdown validator now checks dates, source locators, labels, scoped direction, temporal relations, inverse consistency, and containment cycles with negative fixtures.
|
|
28
|
+
- Examples remain expected behavior rather than claimed runtime evidence. Domain leaves remain `experimental`; no lifecycle promotion or consumer adoption is claimed.
|
|
29
|
+
|
|
30
|
+
- Follow-up runtime work added the [Interaction Lab](examples/domain-interactions/README.md), a standalone web adaptation with explicit mock responses. Its [verification notes](examples/domain-interactions/verification.md) bind actual browser observations to local source hashes and separate desktop execution from simulated viewport sizes, untested mobile devices, and untested native engines. Fixed the lab's modal Tab boundary after observing focus escape in the real browser.
|
|
31
|
+
- Fixed the v1 compatibility suite's stale README digest. Commit `d8bdf0bd5b5aec2fbc38e322a9ac7a1d31fd1332` had added material-v2 guidance and corrected the domain count without updating the test. The exact reviewed documentation digest is now checked separately; all 21 original core/source pins and six CLI output goldens remain unchanged. `npm run test:agent-native` passes.
|
|
32
|
+
- Integrated the current domain lifecycle policy from `main`: reader tasks and adoption counts do not authorize or block domain promotion. Refreshed active workflow/document seals and source-generated protocol inventories for the added validation and documentation; preserved job bytes, lifecycle decisions, external caller status, deadlines, and immutable archive bindings.
|
|
33
|
+
|
|
34
|
+
Implementation handoff: `consumer_reference: consumer-reference/agent-native/registry.json`.
|
|
35
|
+
|
|
36
|
+
Consumer reference: declared
|
|
37
|
+
Consumer reference record: consumer-reference/agent-native/registry.json
|
|
38
|
+
|
|
39
|
+
Terminology reliance: `figma.variable`, `figma.mode`, `figma.collection`, `figma.component`, `dtcg.token`, `dtcg.group`, `dtcg.token.draft2`, `css.custom-property`, `carbon.component`, `carbon.pattern`, and `stylegallery.pattern`. Relation types used in the records: `partial_overlap`, `implementation_representation`, `not_comparable`, `same_label_different_meaning`, and `near_equivalent`. Their named Figma, DTCG, CSSWG, Carbon, and local Layout sources were rechecked on 2026-09-08; this is an author review, not independent semantic approval. Direct locators and comparison boundaries are in [Term Cases](design-terminology/conflict-cases.md).
|
|
40
|
+
|
|
3
41
|
## 2026-08-18
|
|
4
42
|
|
|
5
43
|
- Added Design Terminology as the sixth governed domain: source-kind and concept-family classification separated as distinct axes, a typed term relation model, freshness-bounded source vocabularies, and cross-system conflict cases with three representative scenarios.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Motion Decision Tree
|
|
4
|
+
description: Choose a motion responsibility from a user task, state change, and failure case.
|
|
5
|
+
domain: motion
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
provenance_kind: local
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Motion Decision Tree
|
|
11
|
+
|
|
12
|
+
Primary role: motion selection workflow.
|
|
13
|
+
|
|
14
|
+
## Repository Boundary
|
|
15
|
+
|
|
16
|
+
Use this route to decide whether a product interaction needs motion and which behavior contract to write. Layout continues to own final geometry, semantic order, and scrolling. This route selects a responsibility, not a timing preset.
|
|
17
|
+
|
|
18
|
+
## Reusable Method
|
|
19
|
+
|
|
20
|
+
1. Write the before and after state without animation. If either is unusable, fix that state first.
|
|
21
|
+
2. Name the information motion would add: acknowledgement, continuity, progress, or guidance. If none is needed, use an immediate update.
|
|
22
|
+
3. Choose the first matching responsibility below; compose only when one transition has multiple explicit jobs.
|
|
23
|
+
4. Complete the [Motion Brief](motion-brief.md), including interruption and a reduced-motion path.
|
|
24
|
+
5. Use an [Interaction Recipe](interaction-recipes.md) and verify through the [Review Workflow](review-workflow.md).
|
|
25
|
+
|
|
26
|
+
## Selection Table
|
|
27
|
+
|
|
28
|
+
| Observed task | Choose | Failure to prevent | First verification |
|
|
29
|
+
| --- | --- | --- | --- |
|
|
30
|
+
| Explain an already rendered effect | [Vocabulary](vocabulary.md) | Inferring an API from appearance | Exact, ambiguous, and unknown observations |
|
|
31
|
+
| Acknowledge a command | [Action feedback](interaction-recipes.md#action-feedback) | Decorative feedback mistaken for successful completion | Pending, success, failure, repeated activation |
|
|
32
|
+
| Show or hide supporting content | [Disclosure](interaction-recipes.md#disclosure) | Hidden content retaining focus or delayed access to content | Keyboard activation and reversal |
|
|
33
|
+
| Enter or dismiss a modal task | [Modal transition](interaction-recipes.md#modal-transition) | Focus or input blocking tied to an animation timer | Focus entry, cancellation, return |
|
|
34
|
+
| Preserve identity when items move | [Reorder and filter](interaction-recipes.md#reorder-and-filter) | Visual movement changing logical reading order | Stable identity and focused-item removal |
|
|
35
|
+
| Explain an operation that takes time | [Progress and completion](interaction-recipes.md#progress-and-completion) | An invented percentage or success before confirmation | Delayed result, cancellation, failure |
|
|
36
|
+
| Follow direct manipulation | [Drag and settle](interaction-recipes.md#drag-and-settle) | A cancelled gesture committing data | Release, reversal, cancellation, alternative input |
|
|
37
|
+
| Explore a product through scroll-controlled chapters | [Scroll-driven story](interaction-recipes.md#scroll-driven-story) | Entry callbacks mistaken for continuous progress; inaccessible pinned content | Reverse, jump, middle reload, static reading |
|
|
38
|
+
| Navigate a whole page as fixed-viewport scenes | [Full-viewport scene navigation](interaction-recipes.md#full-viewport-scene-navigation) | Gesture bursts skipping chapters; trapped input or lost history | Burst, boundary, direct link, Back, Escape, native copy scroll |
|
|
39
|
+
| Decorate an idle surface | [Practice Reference](practice-reference.md) | Repetition competing with the user's task | Compare against removal and reduced motion |
|
|
40
|
+
|
|
41
|
+
## Worked Selection
|
|
42
|
+
|
|
43
|
+
A search result list changes after a filter selection. The task is to understand which results remain; it is not to watch every row arrive. Choose reorder/filter only if stable result identities can be preserved. Keep the filter control focused. Announce the resulting count separately from any visual interpolation. When no results remain, present an actionable empty state immediately. If identity cannot be mapped reliably, replace the list without implying continuity.
|
|
44
|
+
|
|
45
|
+
The decision record is a proposal until tested on the consuming product. It does not establish that motion improves search comprehension.
|
|
46
|
+
|
|
47
|
+
## Opinionated Guidance
|
|
48
|
+
|
|
49
|
+
Prefer one explanatory event over a sequence of unrelated effects. Evaluate high-frequency interactions with realistic repetition; a first-use recording can hide accumulated cost.
|
|
50
|
+
|
|
51
|
+
## Platform-Specific Guidance
|
|
52
|
+
|
|
53
|
+
Choose implementation APIs only after the behavior contract. Native gestures, browser navigation, scroll timelines, and animation libraries have different cancellation and lifetime behavior. Platform adaptation starts at [Platform Guides](../platform-guides/index.md).
|
|
54
|
+
|
|
55
|
+
## Unsupported Absolutes
|
|
56
|
+
|
|
57
|
+
An immediate update is a valid outcome. A recipe name does not imply a spring, compositor execution, fixed duration, or proven usability improvement.
|
|
58
|
+
|
|
59
|
+
## Verification Contract
|
|
60
|
+
|
|
61
|
+
For the selected row, verify normal completion, interruption, repeated input, the reduced-motion path, and a failed or empty result where relevant. Record the actual outcome separately from the expected outcome. Revisit this route when a task cannot find a suitable contract or two recipes imply conflicting ownership.
|
|
62
|
+
|
|
63
|
+
## Source, License, And Attribution
|
|
64
|
+
|
|
65
|
+
Locally authored selection workflow based on this domain's existing vocabulary and review contracts. No external code or expressive examples are adapted.
|
|
66
|
+
|
|
67
|
+
## IA Navigation
|
|
68
|
+
|
|
69
|
+
Parent: [Motion](index.md).
|
|
70
|
+
Next: [Motion Brief](motion-brief.md).
|
package/motion/index.md
CHANGED
|
@@ -8,6 +8,18 @@ In scope: naming observable motion, reviewing declared behavior, distinguishing
|
|
|
8
8
|
|
|
9
9
|
Out of scope: universal timing or easing rules, unmeasured performance claims, and permission to add animation or decorative properties to reusable Layout pattern CSS.
|
|
10
10
|
|
|
11
|
+
## Start Here
|
|
12
|
+
|
|
13
|
+
| Task | Route |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| Choose a behavior from the user task. | [Motion Decision Tree](decision-tree.md) |
|
|
16
|
+
| Record states, owners, interruption, and evidence. | [Motion Brief](motion-brief.md) |
|
|
17
|
+
| Build a scroll-driven product story and inspect runnable examples. | [Scroll-driven Story](interaction-recipes.md#scroll-driven-story) and [Scroll Story Lab](../examples/scroll-story/README.md) |
|
|
18
|
+
| Keep the page fixed while navigating between full-screen chapters. | [Full-viewport Scene Navigation](interaction-recipes.md#full-viewport-scene-navigation) and [runnable example](../examples/scene-navigation/README.md) |
|
|
19
|
+
| Apply feedback, disclosure, modal, reorder, progress, and drag contracts. | [Motion Interaction Recipes](interaction-recipes.md) |
|
|
20
|
+
|
|
21
|
+
These workflows and worked cases are usable experimental guidance. Expected-result tables are test designs; actual product, engine, and reader evidence must be recorded separately. Review on a failed task, a source change, or a changed ownership contract.
|
|
22
|
+
|
|
11
23
|
## Documents
|
|
12
24
|
|
|
13
25
|
- [Motion Vocabulary](vocabulary.md) maps observed behavior to implementation-neutral terms while preserving ambiguity.
|
|
@@ -16,9 +28,9 @@ Out of scope: universal timing or easing rules, unmeasured performance claims, a
|
|
|
16
28
|
|
|
17
29
|
## Domain Contract
|
|
18
30
|
|
|
19
|
-
See [StyleGallery Domains](../DOMAINS.md) for lifecycle, provenance, page membership, and
|
|
31
|
+
See [StyleGallery Domains](../DOMAINS.md) for lifecycle, provenance, page membership, and staleness rules.
|
|
20
32
|
|
|
21
33
|
## IA Navigation
|
|
22
34
|
|
|
23
35
|
Parent: [StyleGallery](../index.md).
|
|
24
|
-
Next: [Motion
|
|
36
|
+
Next: [Motion Decision Tree](decision-tree.md).
|