stylegallery 0.1.4 → 0.1.7

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 (80) hide show
  1. package/DOMAINS.md +11 -9
  2. package/GOVERNANCE.md +8 -2
  3. package/LICENSE +28 -0
  4. package/LICENSE-DOCS +42 -0
  5. package/NOTICE +38 -0
  6. package/README.md +43 -6
  7. package/consumer-reference/agent-native/README.md +7 -7
  8. package/consumer-reference/agent-native/v2/admission-policy.json +241 -1
  9. package/consumer-reference/agent-native/v2/material-registry.json +1 -1
  10. package/consumer-reference/agent-native/v2/schema/admission-policy.schema.json +2 -2
  11. package/design-engineering/component-contract.md +114 -0
  12. package/design-engineering/decision-tree.md +70 -0
  13. package/design-engineering/index.md +60 -2
  14. package/design-engineering/loading-and-feedback.md +91 -0
  15. package/design-engineering/native-interaction-contracts.md +94 -0
  16. package/design-engineering/state-management/decision-tree.md +60 -0
  17. package/design-engineering/state-management/index.md +61 -0
  18. package/design-engineering/state-management/patterns/derived-state.md +85 -0
  19. package/design-engineering/state-management/patterns/draft-and-baseline.md +86 -0
  20. package/design-engineering/state-management/patterns/id-selection.md +85 -0
  21. package/design-engineering/state-management/patterns/identity-reset.md +89 -0
  22. package/design-engineering/state-management/patterns/latest-request-wins.md +94 -0
  23. package/design-engineering/state-management/patterns/optimistic-overlay.md +98 -0
  24. package/design-engineering/state-management/patterns/single-flight.md +92 -0
  25. package/design-engineering/state-management/patterns/single-owner.md +89 -0
  26. package/design-engineering/state-management/patterns/submitted-snapshot.md +107 -0
  27. package/design-engineering/state-management/patterns/unsaved-navigation.md +100 -0
  28. package/design-engineering/state-management/patterns/url-state.md +96 -0
  29. package/design-engineering/state-management/patterns/versioned-restore.md +95 -0
  30. package/design-engineering/state-management/recipes/delete-undo.md +65 -0
  31. package/design-engineering/state-management/recipes/index.md +64 -0
  32. package/design-engineering/state-management/recipes/multi-step-form.md +65 -0
  33. package/design-engineering/state-management/recipes/search-detail.md +65 -0
  34. package/design-engineering/state-management/recipes/settings-save.md +64 -0
  35. package/design-engineering/state-management/state-brief.md +83 -0
  36. package/design-engineering/state-management/verification.md +65 -0
  37. package/design-engineering/text-input-and-internationalization.md +91 -0
  38. package/design-engineering/worked-examples.md +129 -0
  39. package/design-terminology/comparison-workflow.md +98 -0
  40. package/design-terminology/conflict-cases.md +87 -55
  41. package/design-terminology/index.md +19 -5
  42. package/design-terminology/interaction-semantics.md +87 -0
  43. package/design-terminology/relation-types.md +12 -6
  44. package/design-terminology/source-vocabularies.md +33 -3
  45. package/design-terminology/token-semantics.md +90 -0
  46. package/design-terminology/typography-semantics.md +86 -0
  47. package/game-ui/decision-tree.md +81 -0
  48. package/game-ui/index.md +11 -1
  49. package/game-ui/screen-recipes.md +101 -0
  50. package/game-ui/verification-workflow.md +100 -0
  51. package/index.md +8 -0
  52. package/log.md +67 -0
  53. package/motion/accessible-motion.md +90 -0
  54. package/motion/decision-tree.md +70 -0
  55. package/motion/index.md +21 -2
  56. package/motion/interaction-recipes.md +170 -0
  57. package/motion/interruption-and-retargeting.md +90 -0
  58. package/motion/motion-brief.md +125 -0
  59. package/motion/observed-choreography.md +73 -0
  60. package/motion/rendering-and-performance.md +89 -0
  61. package/motion/review-workflow.md +8 -0
  62. package/motion/vocabulary.md +2 -2
  63. package/package.json +74 -8
  64. package/platform-guides/adaptation-workflow.md +76 -0
  65. package/platform-guides/adaptive-navigation.md +85 -0
  66. package/platform-guides/android-interaction.md +74 -0
  67. package/platform-guides/apple-interaction.md +9 -1
  68. package/platform-guides/compatibility-matrix.md +97 -0
  69. package/platform-guides/index.md +19 -2
  70. package/platform-guides/input-and-focus.md +91 -0
  71. package/platform-guides/preferences-and-accessibility.md +90 -0
  72. package/platform-guides/windows-interaction.md +75 -0
  73. package/recipes/homepage.md +8 -0
  74. package/scripts/compiler/README.md +112 -0
  75. package/scripts/compiler/cli.mjs +51 -0
  76. package/scripts/compiler/mcp.mjs +53 -0
  77. package/scripts/compiler/operations.mjs +70 -0
  78. package/scripts/compiler/runtime.mjs +156 -0
  79. package/scripts/sg-entry.mjs +20 -0
  80. package/scripts/sg-server.mjs +20 -0
@@ -0,0 +1,90 @@
1
+ ---
2
+ type: Domain Guide
3
+ title: Token Semantics And Resolution
4
+ description: Compare semantic roles, references, groups, resolver contexts, and runtime values without treating their names as interchangeable.
5
+ domain: design-terminology
6
+ lifecycle: experimental
7
+ provenance_kind: local
8
+ reviewed_on: 2026-09-21
9
+ ---
10
+
11
+ # Token Semantics And Resolution
12
+
13
+ Primary role: source-specific token terminology comparison.
14
+
15
+ ## Repository Boundary
16
+
17
+ This page compares vocabulary and the decisions obscured by ambiguous token names. It imports no token values, themes, or compiler behavior. [Consumer Reference](../consumer-reference/index.md) owns interchange/evidence infrastructure; consumer profiles own their values and implementation. Layout's token boundary remains unchanged.
18
+
19
+ Canonical term and relation records live in [Cross-System Term Cases](conflict-cases.md). This guide explains their use; it does not establish a second term registry.
20
+
21
+ ## Reusable Method
22
+
23
+ When a handoff says “alias,” “semantic,” or “theme,” identify whether it refers to design intent, a reference edge, organization, context selection, or a runtime representation. Record the named source before choosing an equivalence relation. Inspect the exported structure separately from the visual result.
24
+
25
+ ### Sources And Distinctions
26
+
27
+ | Source | Source-backed distinction | Question for a handoff |
28
+ | --- | --- | --- |
29
+ | [Fluent 2 tokens](https://fluent2.microsoft.design/design-tokens) | Global tokens hold context-independent values; alias tokens add semantic meaning. | Does “alias” name a semantic layer in this system? |
30
+ | [DTCG Format 2025.10](https://www.designtokens.org/tr/2025.10/format/) | A token value may reference another token; groups organize records. | Does “alias” name a reference relationship in an interchange document? |
31
+ | [Carbon color overview](https://carbondesignsystem.com/elements/color/overview/) | Color tokens preserve roles across themes while assigned values can change. | Is the role stable across every theme being compared? |
32
+ | [Carbon color usage](https://carbondesignsystem.com/elements/color/usage/) | Contextual color tokens depend on the layer where they are used. | Is the surrounding layer part of value resolution? |
33
+ | [DTCG Resolver 2025.10](https://www.designtokens.org/tr/2025.10/resolver/) | Modifiers conditionally select sources through contexts; ordered resolution determines the resulting token set. | Where are the selected contexts and conflict order recorded? |
34
+ | [CSS Custom Properties Level 1](https://www.w3.org/TR/css-variables-1/) | Custom properties participate in CSS runtime value substitution and the cascade. | Which original semantics and metadata remain after translation? |
35
+
36
+ All six source surfaces were inspected on 2026-09-21. DTCG 2025.10 modules are Community Group reports, not W3C Recommendations. The Fluent and Carbon pages are dated system documentation, not guarantees about every package release.
37
+
38
+ ### Alias Is Not One Decision
39
+
40
+ The recorded `fluent.alias-token` / `dtcg.alias` relation is `partial_overlap`. A semantic token may use a reference, but a reference edge does not itself prove a semantic role. A reference between two raw values illustrates the non-semantic region; a consumer's exported semantic value may be flattened and no longer retain its reference edge.
41
+
42
+ The `fluent.alias-token` / `carbon.color-token` relation is also scoped overlap. Both can express role-oriented color decisions, but their vocabularies and non-color coverage differ. This is not permission to rename one system's tokens after another's or assert that their role sets are identical.
43
+
44
+ ### Grouping Is Not Context Selection
45
+
46
+ The recorded `dtcg.resolver-modifier` / `dtcg.group` relation is `not_comparable` for organization-versus-resolution. Ask where a context is selected, where sources are ordered, and where a group is merely a path. A directory or group named `dark` does not independently explain how a consumer chooses dark appearance.
47
+
48
+ This distinction also prevents confusing a token system's theme with a user's complete preference state. A selected theme does not determine text scaling, reduced motion, or every platform accessibility preference; those adaptation decisions belong to [Platform Guides](../platform-guides/preferences-and-accessibility.md).
49
+
50
+ ### Worked Handoff: Same Color, Different Meaning
51
+
52
+ Two consumer roles happen to resolve to the same displayed color in one theme. Preserve the roles separately when their purposes differ. Equality of an output value is evidence of that output only; it does not justify merging source concepts.
53
+
54
+ | Handoff field | Proposed content | Why it matters |
55
+ | --- | --- | --- |
56
+ | Source term | Source-qualified identifier and locator | Keeps a role name attached to its own vocabulary. |
57
+ | Comparison scope | The particular translation being considered | Prevents a local mapping from becoming universal equivalence. |
58
+ | Context | Theme, layer, or resolver inputs actually selected | Makes value resolution reproducible. |
59
+ | Output representation | Target format and adapter version | Separates serialization from semantic intent. |
60
+ | Retained/lost information | Role, reference edges, metadata, and unsupported structures | Exposes lossy translation. |
61
+ | Verification | Structural check plus rendered state evidence if appearance is claimed | Avoids treating a valid file as a usable component. |
62
+
63
+ The fields are a local analysis aid. They do not expand this repository's closed token adapter or admit arbitrary DTCG features into existing schemas.
64
+
65
+ ## Opinionated Guidance
66
+
67
+ Prefer source-qualified names in cross-system discussions. Before merging tokens, compare responsibilities across contexts, not just matching values in a screenshot. Keep compiler inputs explicit enough that another consumer can explain how an output was obtained.
68
+
69
+ ## Platform-Specific Guidance
70
+
71
+ An exported custom property, native resource, or tool variable can consume translated design information without preserving the full source contract. The concrete adapter owns unit conversion, missing features, and runtime context. Comparative vocabulary cannot certify that adapter.
72
+
73
+ ## Unsupported Absolutes
74
+
75
+ A reference is not proof of semantic intent. A group is not automatically a theme selector. The same value is not the same role. A valid DTCG document is not a declaration that StyleGallery supports every feature in that document.
76
+
77
+ ## Verification Contract
78
+
79
+ Recheck both source locators for each relied-on relation and record the scope and direction. Probe a matching value with different roles, a changed theme, a contextual layer change, and a flattened export. Inspect the actual adapter if making a round-trip or runtime claim.
80
+
81
+ These are proposed checks. Only source readings and Markdown record consistency are claimed here; no token pipeline or product rendering was executed. Re-review when a vocabulary, module version, or adapter contract changes.
82
+
83
+ ## Source, License, And Attribution
84
+
85
+ Locally authored synthesis; no source token values or upstream expression are copied. Terminology reliance: `fluent.alias-token`, `fluent.global-token`, `carbon.color-token`, `dtcg.alias`, `dtcg.token`, `dtcg.group`, `dtcg.resolver-modifier`, and `css.custom-property`. Relations used: `partial_overlap`, `implementation_representation`, and `not_comparable`. Named sources were rechecked 2026-09-21; local relations remain author judgments, not independent semantic approval. `consumer_reference: not_applicable` because no consumer profile or adapter record is selected.
86
+
87
+ ## IA Navigation
88
+
89
+ Parent: [Design Terminology](index.md).
90
+ Next: [Typography Semantics](typography-semantics.md).
@@ -0,0 +1,86 @@
1
+ ---
2
+ type: Domain Guide
3
+ title: Typography Roles, Styles, And Representations
4
+ description: Compare named type roles, native scaling behavior, composite token records, and CSS output without inventing universal size mappings.
5
+ domain: design-terminology
6
+ lifecycle: experimental
7
+ provenance_kind: local
8
+ reviewed_on: 2026-09-21
9
+ ---
10
+
11
+ # Typography Roles, Styles, And Representations
12
+
13
+ Primary role: typography vocabulary comparison.
14
+
15
+ ## Repository Boundary
16
+
17
+ This guide compares source-specific meanings. It defines no StyleGallery type scale, font choice, size, density, or visual token. Product typography belongs to its consumer; Layout owns spatial behavior. [Term Cases](conflict-cases.md) is the canonical record for the term identifiers and relations used here.
18
+
19
+ ## Reusable Method
20
+
21
+ Identify whether “style” means a semantic role, a bundle of values, a collection of role slots, a native scaling behavior, or a runtime declaration. Compare sources at that level. Then record what information is lost when the result is serialized or rendered elsewhere.
22
+
23
+ ### Source Findings
24
+
25
+ | Source | Bounded meaning | Boundary to retain |
26
+ | --- | --- | --- |
27
+ | [Apple HIG typography](https://developer.apple.com/design/human-interface-guidelines/typography) | Text styles combine typographic attributes into a hierarchy and participate in system text-size adaptation. | A single exported size does not encode the complete native scaling behavior. |
28
+ | [Fluent 2 typography](https://fluent2.microsoft.design/typography) | The type ramp supplies named styles and roles for a selected target platform. | A role label does not specify one universal font or numeric size across platforms. |
29
+ | [Material 3 in Compose](https://developer.android.com/develop/ui/compose/designsystems/material3#typography) | The `Typography` class models the Material 3 type scale using named style slots. | This is the system's Compose implementation surface, not an interchange specification. |
30
+ | [DTCG typography type](https://www.designtokens.org/tr/2025.10/format/#typography) | The composite record includes family, size, weight, letter spacing, and line height. | The record does not itself implement platform text scaling. |
31
+ | [CSS font shorthand](https://www.w3.org/TR/css-fonts-4/#font-prop) | `font` is a runtime shorthand over defined font properties and line height. | It does not encode every typographic property or the original role metadata. |
32
+
33
+ Read on 2026-09-21. Apple content was inspected through the official documentation JSON. Material and Fluent references are dated product documentation. DTCG Format 2025.10 is a Community Group report; CSS Fonts Level 4 is a standards-track publication. Actual font availability and rendering require target evidence.
34
+
35
+ ### Comparing A Style With A Record
36
+
37
+ `apple.text-style` and `dtcg.typography` have `partial_overlap` for exchanging typographic attributes. Some attributes can be represented in both. Apple's style is also connected to native text-size behavior, while an interchange record can describe styles outside Apple's system. An exporter must explain the scope of a match.
38
+
39
+ `css.font` → `dtcg.typography` is an `implementation_representation` relation scoped to partial typography output. A consumer must emit additional properties such as letter spacing separately when needed and retain provenance outside the shorthand. This relation does not promise a reversible conversion.
40
+
41
+ ### Comparing Role Collections
42
+
43
+ `material3.typography` and `fluent.type-ramp` have `partial_overlap` for named typography roles. Both help organize hierarchy, but the role inventories, defaults, and implementation surfaces differ. Matching two names containing “body” does not prove equivalent intended use or visual results.
44
+
45
+ A collection of styles and one style are different abstraction levels. Before declaring `broader_than`, demonstrate proper set containment with comparable instances; a class that contains fields is not automatically a broader semantic concept than those fields.
46
+
47
+ ### Worked Handoff: Dense Review Surface
48
+
49
+ A consumer wants more records visible while retaining readable annotations and controls. Separate the density decision from typography translation. Density might change spacing, optional detail, or command presentation; it need not mean scaling every font down.
50
+
51
+ | Decision | Evidence to request | Translation failure |
52
+ | --- | --- | --- |
53
+ | Role mapping | Task purpose and named source roles | Similar labels map headings to ordinary labels. |
54
+ | Value representation | Output properties and units | A composite style loses a required property. |
55
+ | Scaling | Target user setting and the resulting style behavior | A static export ignores larger-text settings. |
56
+ | Font fallback | Actual fonts and representative scripts | A role looks acceptable only with a locally installed font. |
57
+ | Reading hierarchy | Long and localized content on the target surface | Compact labels obscure the main task. |
58
+
59
+ This is a proposed consumer investigation, not evidence that a particular type scale improves reading speed. For product adaptation, use [Preferences And Accessibility](../platform-guides/preferences-and-accessibility.md); for editing behavior, use [Text Input And Internationalization](../design-engineering/text-input-and-internationalization.md).
60
+
61
+ ## Opinionated Guidance
62
+
63
+ Preserve semantic roles even when two styles currently share values. Judge a translation by the declared task, retained attributes, and target scaling behavior. Treat a visual match at one size as a narrow observation.
64
+
65
+ ## Platform-Specific Guidance
66
+
67
+ Points, CSS pixels, and scale-aware native units must be interpreted by the selected runtime. Native text-style names do not become CSS breakpoints or shared Layout tokens. Font fallback and script shaping require actual rendering; a vocabulary comparison cannot establish them.
68
+
69
+ ## Unsupported Absolutes
70
+
71
+ A type ramp is not a universal accessibility standard. A typography token is not a complete native text-style behavior. CSS `font` is not a lossless export of all typography information. More visible rows do not prove higher task efficiency.
72
+
73
+ ## Verification Contract
74
+
75
+ Record source roles, relation scope, output representation, scaling inputs, and any omitted information. Probe default and enlarged text, missing fonts, long labels, multiple scripts, and the actual target's line metrics. Keep file validation separate from visual and user-task evidence.
76
+
77
+ These probes are unexecuted. Source meaning was reviewed; runtime rendering and reading performance were not measured. Re-review when role definitions, format versions, platform scaling, or adapter behavior changes.
78
+
79
+ ## Source, License, And Attribution
80
+
81
+ Locally authored synthesis without imported type values or source examples. Terminology reliance: `apple.text-style`, `fluent.type-ramp`, `material3.typography`, `dtcg.typography`, and `css.font`; relation types: `partial_overlap` and `implementation_representation`. Named sources were rechecked 2026-09-21; this is author review, not independent semantic approval. `consumer_reference: not_applicable` because no consumer typography record is selected.
82
+
83
+ ## IA Navigation
84
+
85
+ Parent: [Design Terminology](index.md).
86
+ Next: [Token Semantics And Resolution](token-semantics.md).
@@ -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 Classification](classification.md).
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,72 @@
1
1
  # StyleGallery Log
2
2
 
3
+ ## 2026-09-22
4
+
5
+ - Prepared `stylegallery@0.1.7` with direct website capture, transcription, and workflow commands in the SG CLI and MCP. The compiler remains a separately installed checkout; frozen v1 knowledge entrypoints remain available.
6
+ - Routed faithful reconstruction, adaptation, and sale-package work through the compiler's task-aware workflow. Reconstruction prioritizes usable original media, additional observation, explicit replacement decisions, and visual QA. The automatic sale-edition builder is labeled as a package preview.
7
+ - Added compiler transport, cancellation, packaged-install, and local real-capture checks. These verify the integration; they do not establish an improvement in clone quality.
8
+
9
+ Implementation handoff: `consumer_reference: consumer-reference/agent-native/registry.json`.
10
+
11
+ Consumer reference: declared
12
+ Consumer reference record: consumer-reference/agent-native/registry.json
13
+
14
+ ## 2026-09-21
15
+
16
+ Understood as: substantially enrich Motion, Design Engineering, Platform Guides, and Design Terminology with primary-source research integrated into governed local documents. The user excluded Layout and Game UI from this work.
17
+
18
+ - Added twelve local research guides: motion accessibility/interruption/rendering; native interaction contracts, multilingual input, and asynchronous feedback; platform adaptation/preferences/input; and token, interaction, and typography semantics. Each separates source-backed findings, local proposals, failure cases, and unexecuted verification scenarios.
19
+ - Inspected 66 cited official source pages on 2026-09-21. Recorded source status and target-version limits; read Apple page bodies through official documentation JSON when the HTML reader exposed a JavaScript shell. Preserved prior source-review dates for unrelated term records.
20
+ - Added fourteen source-qualified terms and nine scoped relations, bringing the terminology tables to twenty-five terms and seventeen relations. These are author-reviewed experimental judgments, not independent semantic approval.
21
+ - Registered the twelve leaves in domain membership, local navigation, the closed Material v2 admission set, and npm packaging. The admitted corpus has 181 documents. New guidance remains experimental and does not add profile values, native implementations, or a domain.
22
+ - Verified Markdown structure, links, IA, governance, domain membership, terminology, consumer handoffs, and material admission in an isolated checkout of the research changes. Domain/terminology/governance, consumer/evidence, and frozen-v1 regression suites passed; package installation and CLI/MCP retrieval passed. Fixed the package inventory test's omission of the three existing license/notice files while preserving its exact allow-list assertion.
23
+ - Checked every cited URL and fragment. Applied two fresh-reader corrections to the term-comparison method and contributor verification route. Eight author-selected search probes retrieved the intended guide within the first two results; these are retrieval smoke checks, not an independent usability evaluation. No browser, native IME, assistive-technology, or product performance execution is claimed.
24
+
25
+ Implementation handoff: `consumer_reference: consumer-reference/agent-native/registry.json`.
26
+
27
+ Consumer reference: declared
28
+ Consumer reference record: consumer-reference/agent-native/registry.json
29
+
30
+ Terminology reliance: `dtcg.alias`, `fluent.alias-token`, `fluent.global-token`, `carbon.color-token`, `dtcg.resolver-modifier`, `html.popover`, `apple.popover`, `html.dialog`, `aria.dialog`, `apple.text-style`, `fluent.type-ramp`, `material3.typography`, `dtcg.typography`, `css.font`, `dtcg.token`, `dtcg.group`, and `css.custom-property`. Relation types used: `partial_overlap`, `implementation_representation`, and `not_comparable`. Named sources for these terms were rechecked on 2026-09-21; the older Figma, historical-format, component/pattern, and Layout relations retain their original review scope. Direct locators and boundaries are in [Term Cases](design-terminology/conflict-cases.md).
31
+
32
+ ## 2026-09-09
33
+
34
+ - 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.
35
+ - 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.
36
+ - 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.
37
+ - 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.
38
+
39
+ - 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.
40
+ - 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.
41
+
42
+ - Added an independent Toss-inspired homepage study that composes the existing Homepage recipe and Layout patterns inside a standalone product layer.
43
+ - Added original generated hero and travel imagery, responsive navigation, keyboard-operated asset tabs, section progress, reduced-motion behavior, and explicit horizontal service-rail ownership.
44
+ - 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.
45
+
46
+ Implementation handoff: `consumer_reference: not_applicable`.
47
+
48
+ Consumer reference: not_applicable
49
+ Consumer reference reason: This standalone visual study selects no consumer-reference profile or record.
50
+
51
+ ## 2026-09-08
52
+
53
+ - Prepared npm release `stylegallery@0.1.5` with the complete six-domain, 147-document Material v2 corpus and the README compatibility repair.
54
+ - 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.
55
+ - 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.
56
+ - 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.
57
+ - Examples remain expected behavior rather than claimed runtime evidence. Domain leaves remain `experimental`; no lifecycle promotion or consumer adoption is claimed.
58
+
59
+ - 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.
60
+ - 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.
61
+ - 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.
62
+
63
+ Implementation handoff: `consumer_reference: consumer-reference/agent-native/registry.json`.
64
+
65
+ Consumer reference: declared
66
+ Consumer reference record: consumer-reference/agent-native/registry.json
67
+
68
+ 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).
69
+
3
70
  ## 2026-08-18
4
71
 
5
72
  - 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.