stylegallery 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +4 -1
- package/DOMAINS.md +2 -6
- package/GOVERNANCE.md +10 -9
- package/README.md +23 -127
- package/consumer-reference/agent-native/v2/admission-policy.json +646 -0
- package/consumer-reference/agent-native/v2/material-registry.json +1 -0
- package/consumer-reference/agent-native/v2/schema/admission-policy.schema.json +50 -0
- package/consumer-reference/agent-native/v2/schema/material-manifest.schema.json +17 -0
- package/consumer-reference/agent-native/v2/schema/material-record.schema.json +20 -0
- package/consumer-reference/contract.md +1 -1
- package/consumer-reference/index.md +5 -3
- package/layout/index.md +124 -0
- package/log.md +51 -0
- package/package.json +181 -22
- package/scripts/agent-native/v2/experimental-extension-registry.mjs +143 -0
- package/scripts/agent-native/v2/extensions/a2a-projection.mjs +264 -0
- package/scripts/agent-native/v2/extensions/agui-projection.mjs +191 -0
- package/scripts/agent-native/v2/material-admission.mjs +295 -0
- package/scripts/agent-native/v2/material-cli-adapter.mjs +134 -0
- package/scripts/agent-native/v2/material-context.mjs +251 -0
- package/scripts/agent-native/v2/material-identity.mjs +71 -0
- package/scripts/agent-native/v2/material-mcp-adapter.mjs +253 -0
- package/scripts/agent-native/v2/material-operation-registry.mjs +123 -0
- package/scripts/agent-native/v2/material-queries.mjs +398 -0
- package/scripts/agent-native/v2/material-registry.mjs +319 -0
- package/scripts/sg-material-mcp.mjs +98 -0
- package/scripts/sg-material.mjs +27 -0
- package/consumer-reference/adapters/style-dictionary.config.mjs +0 -36
- package/consumer-reference/baselines/calibration.json +0 -260
- package/consumer-reference/baselines/manifest.json +0 -21
- package/consumer-reference/fixtures/consumer-conformance/e2e-fixture.mjs +0 -282
- package/consumer-reference/fixtures/consumer-conformance/manifest.json +0 -102
- package/consumer-reference/fixtures/consumer-conformance/runtime-proof.mjs +0 -32
- package/consumer-reference/fixtures/consumer-conformance/valid-migration-result.json +0 -18
- package/consumer-reference/fixtures/consumer-conformance/valid-migration.json +0 -142
- package/consumer-reference/fixtures/invalid-stable-ended-support.json +0 -19
- package/consumer-reference/fixtures/promotion/invalid-blocking-evidence.json +0 -26
- package/consumer-reference/fixtures/promotion/invalid-count-only.json +0 -29
- package/consumer-reference/fixtures/promotion/invalid-missing-owner-migration.json +0 -25
- package/consumer-reference/fixtures/promotion/invalid-normative-bypass-no-regression.json +0 -25
- package/consumer-reference/fixtures/promotion/invalid-related-counted-independent.json +0 -45
- package/consumer-reference/fixtures/promotion/invalid-stable-ended-support.json +0 -26
- package/consumer-reference/fixtures/promotion/manifest.json +0 -15
- package/consumer-reference/fixtures/promotion/valid-deferred-example.json +0 -67
- package/consumer-reference/fixtures/promotion/valid-normative-bypass.json +0 -67
- package/consumer-reference/fixtures/token-portability/invalid-cycle.json +0 -7
- package/consumer-reference/fixtures/token-portability/invalid-dangling-alias.json +0 -6
- package/consumer-reference/fixtures/token-portability/invalid-extends.json +0 -4
- package/consumer-reference/fixtures/token-portability/invalid-json-pointer.json +0 -7
- package/consumer-reference/fixtures/token-portability/invalid-resolver.json +0 -9
- package/consumer-reference/fixtures/token-portability/invalid-type-mismatch.json +0 -10
- package/consumer-reference/fixtures/token-portability/invalid-unknown-reserved.json +0 -6
- package/consumer-reference/fixtures/token-portability/invalid-untested-type.json +0 -6
- package/consumer-reference/fixtures/token-portability/valid-border.json +0 -14
- package/consumer-reference/fixtures/token-portability/valid-reference.json +0 -32
- package/consumer-reference/fixtures/token-portability/valid-whole-alias.json +0 -7
- package/consumer-reference/fixtures/valid-deprecated.json +0 -21
- package/consumer-reference/fixtures/valid-experimental.json +0 -19
- package/consumer-reference/generated/manifest.json +0 -40
- package/consumer-reference/generated/tokens.css +0 -12
- package/consumer-reference/policies/shared-experimental.json +0 -37
- package/consumer-reference/schema/ax-evidence.schema.json +0 -30
- package/consumer-reference/schema/baseline-manifest.schema.json +0 -55
- package/consumer-reference/schema/calibration-record.schema.json +0 -190
- package/consumer-reference/schema/capture-session.schema.json +0 -161
- package/consumer-reference/schema/component-state.schema.json +0 -150
- package/consumer-reference/schema/consumer-conformance-record.schema.json +0 -365
- package/consumer-reference/schema/dom-evidence.schema.json +0 -38
- package/consumer-reference/schema/evidence-record.schema.json +0 -81
- package/consumer-reference/schema/fixture-manifest.schema.json +0 -32
- package/consumer-reference/schema/item.schema.json +0 -188
- package/consumer-reference/schema/page-evidence-manifest.schema.json +0 -216
- package/consumer-reference/schema/page-evidence-session.schema.json +0 -119
- package/consumer-reference/schema/portable-tokens.schema.json +0 -104
- package/consumer-reference/schema/promotion-rfc.schema.json +0 -219
- package/consumer-reference/schema/runtime-evidence-manifest.schema.json +0 -33
- package/consumer-reference/schema/visual-evidence.schema.json +0 -31
- package/design-engineering/consumer-migration-readiness.md +0 -124
- package/design-engineering/interface-craft.md +0 -107
- package/design-engineering/reference-profiles/external-adaptation/index.md +0 -12
- package/design-engineering/reference-profiles/governed-local/editorial/components/button.component.json +0 -125
- package/design-engineering/reference-profiles/governed-local/editorial/evidence/button.evidence.json +0 -3504
- package/design-engineering/reference-profiles/governed-local/editorial/fixtures/button.fixture.json +0 -65
- package/design-engineering/reference-profiles/governed-local/editorial/generated/evidence-coverage.md +0 -23
- package/design-engineering/reference-profiles/governed-local/editorial/generated/keyboard-matrix.md +0 -19
- package/design-engineering/reference-profiles/governed-local/editorial/generated/state-matrix.md +0 -21
- package/design-engineering/reference-profiles/governed-local/editorial/local-foundations.json +0 -12
- package/design-engineering/reference-profiles/governed-local/editorial/states/button.states.json +0 -195
- package/design-engineering/reference-profiles/governed-local/editorial/tokens.dtcg.json +0 -17
- package/design-engineering/reference-profiles/governed-local/terminal/components/button.component.json +0 -125
- package/design-engineering/reference-profiles/governed-local/terminal/evidence/button.evidence.json +0 -3504
- package/design-engineering/reference-profiles/governed-local/terminal/fixtures/button.fixture.json +0 -65
- package/design-engineering/reference-profiles/governed-local/terminal/generated/evidence-coverage.md +0 -23
- package/design-engineering/reference-profiles/governed-local/terminal/generated/keyboard-matrix.md +0 -19
- package/design-engineering/reference-profiles/governed-local/terminal/generated/state-matrix.md +0 -21
- package/design-engineering/reference-profiles/governed-local/terminal/local-foundations.json +0 -12
- package/design-engineering/reference-profiles/governed-local/terminal/profile.json +0 -43
- package/design-engineering/reference-profiles/governed-local/terminal/states/button.states.json +0 -195
- package/design-engineering/reference-profiles/governed-local/terminal/tokens.dtcg.json +0 -17
- package/game-ui/classification.md +0 -82
- package/game-ui/reference-record.md +0 -62
- package/game-ui/screen-hierarchy.md +0 -107
- package/game-ui/unity/architecture.md +0 -166
- package/game-ui/unity/cli-loop.md +0 -84
- package/game-ui/unity/data/unity-technologies-public-repositories.json +0 -26654
- package/game-ui/unity/org-wiki.md +0 -146
- package/game-ui/unity/repository-map.md +0 -102
- package/game-ui/unity/ui-systems.md +0 -85
- package/motion/practice-reference.md +0 -145
- package/motion/review-workflow.md +0 -86
- package/motion/vocabulary.md +0 -82
- package/platform-guides/apple-interaction.md +0 -89
- package/scripts/agent-native/events.mjs +0 -113
- package/scripts/agent-native/immutable-store.mjs +0 -102
- package/scripts/artifact-metadata.mjs +0 -20
- package/scripts/audit-evidence-freshness.mjs +0 -308
- package/scripts/baseline-contract.mjs +0 -189
- package/scripts/baseline-schema-parity.mjs +0 -40
- package/scripts/build-reference-artifacts.mjs +0 -127
- package/scripts/calibration-raw-contract.mjs +0 -172
- package/scripts/capture-session-contract.mjs +0 -187
- package/scripts/component-state-artifact-fixture.mjs +0 -44
- package/scripts/component-state-contract.mjs +0 -99
- package/scripts/component-state-semantics.mjs +0 -128
- package/scripts/component-state-workflow-contract.mjs +0 -67
- package/scripts/component-state-workflow-negative-cases.mjs +0 -64
- package/scripts/consumer-conformance-contract.mjs +0 -198
- package/scripts/consumer-evidence-governance-contract.mjs +0 -210
- package/scripts/consumer-reference-case-runner.mjs +0 -93
- package/scripts/consumer-reference-schema.mjs +0 -155
- package/scripts/create-component-state-session.mjs +0 -100
- package/scripts/create-page-evidence-session.mjs +0 -139
- package/scripts/domain-document-boundaries.mjs +0 -40
- package/scripts/domain-validation-checks.mjs +0 -141
- package/scripts/evidence-artifact-contract.mjs +0 -191
- package/scripts/finalize-component-state-evidence.mjs +0 -165
- package/scripts/finalize-page-evidence.mjs +0 -197
- package/scripts/generate-consumer-reference-evidence.mjs +0 -154
- package/scripts/generate-patterns.mjs +0 -218
- package/scripts/governance-matrix-contract.mjs +0 -73
- package/scripts/governance-matrix-negative-cases.mjs +0 -114
- package/scripts/governance-policy-contract.mjs +0 -49
- package/scripts/governance-test-fixture.mjs +0 -321
- package/scripts/governance-workflow-negative-cases.mjs +0 -241
- package/scripts/governed-profile-registry.mjs +0 -125
- package/scripts/json-schema-formats.mjs +0 -31
- package/scripts/markdown-structure.mjs +0 -45
- package/scripts/page-artifact-metadata.mjs +0 -124
- package/scripts/page-evidence-contract.mjs +0 -297
- package/scripts/page-evidence-fixture.mjs +0 -271
- package/scripts/pattern-data.mjs +0 -325
- package/scripts/profile-record-contract.mjs +0 -140
- package/scripts/promotion-attestation-contract.mjs +0 -91
- package/scripts/promotion-boundary-test-contract.mjs +0 -92
- package/scripts/promotion-fixture-inventory.mjs +0 -109
- package/scripts/promotion-governance-contract.mjs +0 -28
- package/scripts/reference-artifact-path-contract.mjs +0 -28
- package/scripts/reference-profile-contract.mjs +0 -114
- package/scripts/reference-token-contract.mjs +0 -156
- package/scripts/run-consumer-page-evidence-ci.mjs +0 -170
- package/scripts/summarize-sentinel-calibration.mjs +0 -98
- package/scripts/test-agent-adapter-conformance.mjs +0 -250
- package/scripts/test-agent-conformance-receipt.mjs +0 -106
- package/scripts/test-agent-events.mjs +0 -81
- package/scripts/test-agent-execution-effects.mjs +0 -114
- package/scripts/test-agent-execution-fixtures.mjs +0 -140
- package/scripts/test-agent-execution-kernel.mjs +0 -39
- package/scripts/test-agent-execution-learning.mjs +0 -130
- package/scripts/test-agent-execution-lifecycle.mjs +0 -143
- package/scripts/test-agent-execution-safety.mjs +0 -158
- package/scripts/test-agent-execution-views.mjs +0 -117
- package/scripts/test-agent-identity-integrity-cases.mjs +0 -160
- package/scripts/test-agent-knowledge-kernel.mjs +0 -183
- package/scripts/test-agent-learning.mjs +0 -246
- package/scripts/test-agent-mcp.mjs +0 -246
- package/scripts/test-agent-native-schemas.mjs +0 -215
- package/scripts/test-agent-projections.mjs +0 -249
- package/scripts/test-agent-registry-mcp-integrity.mjs +0 -215
- package/scripts/test-agent-registry-mutations.mjs +0 -110
- package/scripts/test-audit-evidence-freshness.mjs +0 -177
- package/scripts/test-component-state-sentinel.mjs +0 -35
- package/scripts/test-component-state-source-contract.mjs +0 -83
- package/scripts/test-consumer-conformance-sentinel.mjs +0 -165
- package/scripts/test-consumer-reference-sentinel.mjs +0 -31
- package/scripts/test-generate-consumer-reference-evidence.mjs +0 -124
- package/scripts/test-json-cli-output.mjs +0 -151
- package/scripts/test-json-schema-formats.mjs +0 -40
- package/scripts/test-reference-adapters.mjs +0 -199
- package/scripts/test-renderer-purity.mjs +0 -34
- package/scripts/test-sg-cli.mjs +0 -129
- package/scripts/test-summarize-sentinel-calibration.mjs +0 -226
- package/scripts/test-validate-baseline-manifest.mjs +0 -234
- package/scripts/test-validate-component-state-artifacts.mjs +0 -243
- package/scripts/test-validate-component-state.mjs +0 -106
- package/scripts/test-validate-consumer-conformance.mjs +0 -427
- package/scripts/test-validate-consumer-reference-cli.mjs +0 -69
- package/scripts/test-validate-consumer-reference.mjs +0 -263
- package/scripts/test-validate-domains.mjs +0 -357
- package/scripts/test-validate-governance.mjs +0 -292
- package/scripts/test-validate-ia.mjs +0 -262
- package/scripts/test-validate-okf.mjs +0 -73
- package/scripts/test-validate-page-evidence.mjs +0 -302
- package/scripts/test-validate-patterns.mjs +0 -157
- package/scripts/test-validate-promotion-rfc.mjs +0 -250
- package/scripts/test-validate-reference-profiles.mjs +0 -170
- package/scripts/test-validate-unity-org-wiki.mjs +0 -57
- package/scripts/test-validate-unity-source-contracts.mjs +0 -67
- package/scripts/test-validate-vocabulary.mjs +0 -174
- package/scripts/test-validate-webpage-workflow.mjs +0 -293
- package/scripts/validate-baseline-manifest.mjs +0 -44
- package/scripts/validate-catalog.mjs +0 -65
- package/scripts/validate-component-state.mjs +0 -141
- package/scripts/validate-consumer-conformance.mjs +0 -477
- package/scripts/validate-consumer-reference.mjs +0 -288
- package/scripts/validate-domains.mjs +0 -237
- package/scripts/validate-governance.mjs +0 -248
- package/scripts/validate-ia.mjs +0 -136
- package/scripts/validate-links.mjs +0 -66
- package/scripts/validate-okf.mjs +0 -104
- package/scripts/validate-page-evidence.mjs +0 -191
- package/scripts/validate-patterns.mjs +0 -246
- package/scripts/validate-promotion-rfc.mjs +0 -224
- package/scripts/validate-reference-artifacts.mjs +0 -125
- package/scripts/validate-renderer-purity.mjs +0 -56
- package/scripts/validate-unity-org-wiki.mjs +0 -146
- package/scripts/validate-unity-source-contracts.mjs +0 -107
- package/scripts/validate-vocabulary.mjs +0 -115
- package/scripts/validate-webpage-workflow.mjs +0 -254
- package/scripts/visual-expectation-contract.mjs +0 -20
- package/scripts/workflow-action-contract.mjs +0 -163
package/design-engineering/reference-profiles/governed-local/terminal/fixtures/button.fixture.json
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schema_version": "1.0",
|
|
3
|
-
"fixture_id": "terminal-button-runtime",
|
|
4
|
-
"component_id": "button",
|
|
5
|
-
"profile_id": "terminal-reference-profile",
|
|
6
|
-
"component_record": "../components/button.component.json",
|
|
7
|
-
"state_record": "../states/button.states.json",
|
|
8
|
-
"scenarios": [
|
|
9
|
-
{
|
|
10
|
-
"id": "action-disabled-busy",
|
|
11
|
-
"semantic_mode": "action",
|
|
12
|
-
"label": "Command unavailable",
|
|
13
|
-
"activation_key": "Enter",
|
|
14
|
-
"required_channels": [
|
|
15
|
-
"visual",
|
|
16
|
-
"dom",
|
|
17
|
-
"ax"
|
|
18
|
-
]
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"id": "action-focused",
|
|
22
|
-
"semantic_mode": "action",
|
|
23
|
-
"label": "Run command",
|
|
24
|
-
"activation_key": "Enter",
|
|
25
|
-
"required_channels": [
|
|
26
|
-
"visual",
|
|
27
|
-
"dom",
|
|
28
|
-
"ax"
|
|
29
|
-
]
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"id": "action-loading-busy",
|
|
33
|
-
"semantic_mode": "action",
|
|
34
|
-
"label": "Command running",
|
|
35
|
-
"activation_key": "Enter",
|
|
36
|
-
"required_channels": [
|
|
37
|
-
"visual",
|
|
38
|
-
"dom",
|
|
39
|
-
"ax"
|
|
40
|
-
]
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
"id": "disclosure-expanded-loading",
|
|
44
|
-
"semantic_mode": "disclosure",
|
|
45
|
-
"label": "Show process log",
|
|
46
|
-
"activation_key": "Enter",
|
|
47
|
-
"required_channels": [
|
|
48
|
-
"visual",
|
|
49
|
-
"dom",
|
|
50
|
-
"ax"
|
|
51
|
-
]
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"id": "toggle-focused-pressed",
|
|
55
|
-
"semantic_mode": "toggle",
|
|
56
|
-
"label": "Pin output",
|
|
57
|
-
"activation_key": "Space",
|
|
58
|
-
"required_channels": [
|
|
59
|
-
"visual",
|
|
60
|
-
"dom",
|
|
61
|
-
"ax"
|
|
62
|
-
]
|
|
63
|
-
}
|
|
64
|
-
]
|
|
65
|
-
}
|
package/design-engineering/reference-profiles/governed-local/terminal/generated/evidence-coverage.md
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Generated Evidence
|
|
3
|
-
title: "terminal button evidence coverage"
|
|
4
|
-
description: "Claim-scoped evidence channels and artifacts derived from canonical JSON."
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!-- Generated from canonical JSON. Do not edit. -->
|
|
8
|
-
# terminal button evidence coverage
|
|
9
|
-
|
|
10
|
-
Claim boundary: Scenario artifacts are evidence, not visual regression baselines or accessibility certification.
|
|
11
|
-
|
|
12
|
-
| Scenario | Required channels | Recorded channels | Pass records | Artifacts |
|
|
13
|
-
| --- | --- | --- | --- | --- |
|
|
14
|
-
| <code>action-disabled-busy</code> | <code>visual</code>, <code>dom</code>, <code>ax</code> | <code>ax</code>, <code>dom</code>, <code>visual</code> | 3 | <code>runtime/terminal-action-disabled-busy.ax.json</code><br><code>runtime/terminal-action-disabled-busy.dom.json</code><br><code>runtime/terminal-action-disabled-busy.png</code> |
|
|
15
|
-
| <code>action-focused</code> | <code>visual</code>, <code>dom</code>, <code>ax</code> | <code>ax</code>, <code>dom</code>, <code>visual</code> | 3 | <code>runtime/terminal-action-focused.ax.json</code><br><code>runtime/terminal-action-focused.dom.json</code><br><code>runtime/terminal-action-focused.png</code> |
|
|
16
|
-
| <code>action-loading-busy</code> | <code>visual</code>, <code>dom</code>, <code>ax</code> | <code>ax</code>, <code>dom</code>, <code>visual</code> | 3 | <code>runtime/terminal-action-loading-busy.ax.json</code><br><code>runtime/terminal-action-loading-busy.dom.json</code><br><code>runtime/terminal-action-loading-busy.png</code> |
|
|
17
|
-
| <code>disclosure-expanded-loading</code> | <code>visual</code>, <code>dom</code>, <code>ax</code> | <code>ax</code>, <code>dom</code>, <code>visual</code> | 3 | <code>runtime/terminal-disclosure-expanded-loading.ax.json</code><br><code>runtime/terminal-disclosure-expanded-loading.dom.json</code><br><code>runtime/terminal-disclosure-expanded-loading.png</code> |
|
|
18
|
-
| <code>toggle-focused-pressed</code> | <code>visual</code>, <code>dom</code>, <code>ax</code> | <code>ax</code>, <code>dom</code>, <code>visual</code> | 3 | <code>runtime/terminal-toggle-focused-pressed.ax.json</code><br><code>runtime/terminal-toggle-focused-pressed.dom.json</code><br><code>runtime/terminal-toggle-focused-pressed.png</code> |
|
|
19
|
-
|
|
20
|
-
## IA Navigation
|
|
21
|
-
|
|
22
|
-
Parent: [Keyboard Matrix](keyboard-matrix.md).
|
|
23
|
-
Next: [Reference Profiles](../../../index.md).
|
package/design-engineering/reference-profiles/governed-local/terminal/generated/keyboard-matrix.md
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Generated Evidence
|
|
3
|
-
title: "terminal button keyboard matrix"
|
|
4
|
-
description: "Keyboard behavior and live fixture coverage derived from canonical JSON."
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!-- Generated from canonical JSON. Do not edit. -->
|
|
8
|
-
# terminal button keyboard matrix
|
|
9
|
-
|
|
10
|
-
| Mode | Element | Role | Keys | Behavior | Runtime scenario |
|
|
11
|
-
| --- | --- | --- | --- | --- | --- |
|
|
12
|
-
| <code>action</code> | button | button | <code>Enter</code>, <code>Space</code> | <code>invoke</code> | <code>action-loading-busy</code> |
|
|
13
|
-
| <code>disclosure</code> | button | button | <code>Enter</code>, <code>Space</code> | <code>control</code> | <code>disclosure-expanded-loading</code> |
|
|
14
|
-
| <code>toggle</code> | button | button | <code>Enter</code>, <code>Space</code> | <code>toggle</code> | <code>toggle-focused-pressed</code> |
|
|
15
|
-
|
|
16
|
-
## IA Navigation
|
|
17
|
-
|
|
18
|
-
Parent: [State Matrix](state-matrix.md).
|
|
19
|
-
Next: [Evidence Coverage](evidence-coverage.md).
|
package/design-engineering/reference-profiles/governed-local/terminal/generated/state-matrix.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Generated Evidence
|
|
3
|
-
title: "terminal button state matrix"
|
|
4
|
-
description: "Compound state sets and channel expectations derived from canonical JSON."
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!-- Generated from canonical JSON. Do not edit. -->
|
|
8
|
-
# terminal button state matrix
|
|
9
|
-
|
|
10
|
-
| Scenario | Mode | State set | ARIA | Visual | Activation |
|
|
11
|
-
| --- | --- | --- | --- | --- | --- |
|
|
12
|
-
| <code>action-disabled-busy</code> | action | <code>busy</code>, <code>disabled</code> | <code>aria-busy=true</code><br><code>aria-disabled=true</code> | <code>busy</code>, <code>disabled</code> | suppressed |
|
|
13
|
-
| <code>action-focused</code> | action | <code>focus</code> | none | <code>focus</code>, <code>ready</code> | allowed |
|
|
14
|
-
| <code>action-loading-busy</code> | action | <code>busy</code>, <code>focus</code>, <code>loading</code> | <code>aria-busy=true</code> | <code>busy</code>, <code>focus</code>, <code>loading</code> | suppressed |
|
|
15
|
-
| <code>disclosure-expanded-loading</code> | disclosure | <code>busy</code>, <code>expanded</code>, <code>focus</code>, <code>loading</code> | <code>aria-busy=true</code><br><code>aria-expanded=true</code> | <code>busy</code>, <code>expanded</code>, <code>focus</code>, <code>loading</code> | allowed |
|
|
16
|
-
| <code>toggle-focused-pressed</code> | toggle | <code>focus</code>, <code>pressed</code> | <code>aria-pressed=true</code> | <code>focus</code>, <code>pressed</code> | allowed |
|
|
17
|
-
|
|
18
|
-
## IA Navigation
|
|
19
|
-
|
|
20
|
-
Parent: [Governed Local Profiles](../../index.md).
|
|
21
|
-
Next: [Keyboard Matrix](keyboard-matrix.md).
|
package/design-engineering/reference-profiles/governed-local/terminal/local-foundations.json
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"bindings": {
|
|
3
|
-
"accent": "{color.accent}",
|
|
4
|
-
"body_font_family": "SFMono-Regular, Consolas, monospace",
|
|
5
|
-
"canvas": "{color.screen}",
|
|
6
|
-
"content_rhythm": "{space.rhythm}",
|
|
7
|
-
"text": "{color.ink}"
|
|
8
|
-
},
|
|
9
|
-
"identity": "Dark high-density operator terminal",
|
|
10
|
-
"profile_id": "terminal-reference-profile",
|
|
11
|
-
"schema_version": "1.0"
|
|
12
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"artifact_mode": "governed_local",
|
|
3
|
-
"component_records": ["components/button.component.json"],
|
|
4
|
-
"default": false,
|
|
5
|
-
"environment_assumptions": {
|
|
6
|
-
"reset": {
|
|
7
|
-
"body_margin": "0",
|
|
8
|
-
"box_sizing": "border-box",
|
|
9
|
-
"figure_margin": "0"
|
|
10
|
-
},
|
|
11
|
-
"user_agent_styles": "Preserve semantic browser defaults except for the declared reset."
|
|
12
|
-
},
|
|
13
|
-
"example_only": true,
|
|
14
|
-
"evidence_records": ["evidence/button.evidence.json"],
|
|
15
|
-
"fixture_independence": "related",
|
|
16
|
-
"fixture_records": ["fixtures/button.fixture.json"],
|
|
17
|
-
"generated_records": ["generated/evidence-coverage.md", "generated/keyboard-matrix.md", "generated/state-matrix.md"],
|
|
18
|
-
"handoff": {
|
|
19
|
-
"record": "design-engineering/reference-profiles/governed-local/terminal/profile.json",
|
|
20
|
-
"status": "declared"
|
|
21
|
-
},
|
|
22
|
-
"id": "terminal-reference-profile",
|
|
23
|
-
"layout_source_sha": "775430bbaf4ee208a642220f440f6926d79c90a3",
|
|
24
|
-
"local_foundations": "local-foundations.json",
|
|
25
|
-
"maturity": "experimental",
|
|
26
|
-
"owner": {
|
|
27
|
-
"enforcement": "placeholder",
|
|
28
|
-
"name": "Design Engineering owner"
|
|
29
|
-
},
|
|
30
|
-
"profile_kind": "governed_local",
|
|
31
|
-
"related_fixture_set_id": "layout-identity-adversarial-pair",
|
|
32
|
-
"review_independence": "single_account",
|
|
33
|
-
"schema_version": "1.0",
|
|
34
|
-
"selection": {
|
|
35
|
-
"method": "profile_path",
|
|
36
|
-
"required": true
|
|
37
|
-
},
|
|
38
|
-
"support": {
|
|
39
|
-
"status": "active"
|
|
40
|
-
},
|
|
41
|
-
"state_records": ["states/button.states.json"],
|
|
42
|
-
"tokens": "tokens.dtcg.json"
|
|
43
|
-
}
|
package/design-engineering/reference-profiles/governed-local/terminal/states/button.states.json
DELETED
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schema_version": "1.0",
|
|
3
|
-
"record_kind": "state_set",
|
|
4
|
-
"component_id": "button",
|
|
5
|
-
"profile_id": "terminal-reference-profile",
|
|
6
|
-
"visual_environments": [
|
|
7
|
-
{
|
|
8
|
-
"id": "darwin-arm64-chromium-1228",
|
|
9
|
-
"browser": "Google Chrome for Testing 149.0.7827.55",
|
|
10
|
-
"browser_revision": "chromium-1228",
|
|
11
|
-
"container_image": "local-host:25.5.0",
|
|
12
|
-
"platform": "darwin/arm64",
|
|
13
|
-
"playwright": "1.61.0",
|
|
14
|
-
"viewport": "1024x768"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"id": "linux-amd64-chromium-1228",
|
|
18
|
-
"browser": "Google Chrome for Testing 149.0.7827.55",
|
|
19
|
-
"browser_revision": "chromium-1228",
|
|
20
|
-
"container_image": "mcr.microsoft.com/playwright:v1.61.0-noble@sha256:57b65fdc9ceabe0ef613124c7bbe2babcf9362c4d85e382fe3b03604e84b428a",
|
|
21
|
-
"platform": "linux/amd64",
|
|
22
|
-
"playwright": "1.61.0",
|
|
23
|
-
"viewport": "1024x768"
|
|
24
|
-
}
|
|
25
|
-
],
|
|
26
|
-
"scenarios": [
|
|
27
|
-
{
|
|
28
|
-
"id": "action-disabled-busy",
|
|
29
|
-
"semantic_mode": "action",
|
|
30
|
-
"states": [
|
|
31
|
-
"busy",
|
|
32
|
-
"disabled"
|
|
33
|
-
],
|
|
34
|
-
"aria": {
|
|
35
|
-
"busy": "true",
|
|
36
|
-
"disabled": "true"
|
|
37
|
-
},
|
|
38
|
-
"expected": {
|
|
39
|
-
"visual": [
|
|
40
|
-
"busy",
|
|
41
|
-
"disabled"
|
|
42
|
-
],
|
|
43
|
-
"visual_image": [
|
|
44
|
-
{ "environment_id": "darwin-arm64-chromium-1228", "sha256": "sha256:d346be9e96750f636f29078d17d9871a04c2f4442b6849b029fa754c2795674e", "width": 640, "height": 56 },
|
|
45
|
-
{ "environment_id": "linux-amd64-chromium-1228", "sha256": "sha256:f28ac192821773d5d692ad978075da5b1480971e3b3bc9be8983e3eb2cd43484", "width": 640, "height": 56 }
|
|
46
|
-
],
|
|
47
|
-
"dom": {
|
|
48
|
-
"active": "false",
|
|
49
|
-
"aria-busy": "true",
|
|
50
|
-
"disabled": "true",
|
|
51
|
-
"role": "button"
|
|
52
|
-
},
|
|
53
|
-
"ax": {
|
|
54
|
-
"busy": true,
|
|
55
|
-
"disabled": true,
|
|
56
|
-
"focused": false,
|
|
57
|
-
"role": "button"
|
|
58
|
-
},
|
|
59
|
-
"activation": "suppressed"
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"id": "action-focused",
|
|
64
|
-
"semantic_mode": "action",
|
|
65
|
-
"states": [
|
|
66
|
-
"focus"
|
|
67
|
-
],
|
|
68
|
-
"aria": {},
|
|
69
|
-
"expected": {
|
|
70
|
-
"visual": [
|
|
71
|
-
"focus",
|
|
72
|
-
"ready"
|
|
73
|
-
],
|
|
74
|
-
"visual_image": [
|
|
75
|
-
{ "environment_id": "darwin-arm64-chromium-1228", "sha256": "sha256:39b96bc2459e2f0f442ce7b709f22e46b44f49b17c52d61940dff0246108ec48", "width": 640, "height": 56 },
|
|
76
|
-
{ "environment_id": "linux-amd64-chromium-1228", "sha256": "sha256:7497f0542e2a4b77749ee47cfa7f575b640bad737c652a71610e9f86f8e5f2b8", "width": 640, "height": 56 }
|
|
77
|
-
],
|
|
78
|
-
"dom": {
|
|
79
|
-
"active": "true",
|
|
80
|
-
"role": "button"
|
|
81
|
-
},
|
|
82
|
-
"ax": {
|
|
83
|
-
"focused": true,
|
|
84
|
-
"role": "button"
|
|
85
|
-
},
|
|
86
|
-
"activation": "allowed"
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"id": "action-loading-busy",
|
|
91
|
-
"semantic_mode": "action",
|
|
92
|
-
"states": [
|
|
93
|
-
"busy",
|
|
94
|
-
"focus",
|
|
95
|
-
"loading"
|
|
96
|
-
],
|
|
97
|
-
"aria": {
|
|
98
|
-
"busy": "true"
|
|
99
|
-
},
|
|
100
|
-
"expected": {
|
|
101
|
-
"visual": [
|
|
102
|
-
"busy",
|
|
103
|
-
"focus",
|
|
104
|
-
"loading"
|
|
105
|
-
],
|
|
106
|
-
"visual_image": [
|
|
107
|
-
{ "environment_id": "darwin-arm64-chromium-1228", "sha256": "sha256:05cbe173a8274cfa7e6aab05713d1cb925820a7412bffceadb94d83498c17747", "width": 640, "height": 56 },
|
|
108
|
-
{ "environment_id": "linux-amd64-chromium-1228", "sha256": "sha256:1521023b829210f899d2f56750e362cbfc30e8d6045f6f78a6c553a43bf610c4", "width": 640, "height": 56 }
|
|
109
|
-
],
|
|
110
|
-
"dom": {
|
|
111
|
-
"active": "true",
|
|
112
|
-
"aria-busy": "true",
|
|
113
|
-
"role": "button"
|
|
114
|
-
},
|
|
115
|
-
"ax": {
|
|
116
|
-
"busy": true,
|
|
117
|
-
"focused": true,
|
|
118
|
-
"role": "button"
|
|
119
|
-
},
|
|
120
|
-
"activation": "suppressed"
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
"id": "disclosure-expanded-loading",
|
|
125
|
-
"semantic_mode": "disclosure",
|
|
126
|
-
"states": [
|
|
127
|
-
"busy",
|
|
128
|
-
"expanded",
|
|
129
|
-
"focus",
|
|
130
|
-
"loading"
|
|
131
|
-
],
|
|
132
|
-
"aria": {
|
|
133
|
-
"busy": "true",
|
|
134
|
-
"expanded": "true"
|
|
135
|
-
},
|
|
136
|
-
"expected": {
|
|
137
|
-
"visual": [
|
|
138
|
-
"busy",
|
|
139
|
-
"expanded",
|
|
140
|
-
"focus",
|
|
141
|
-
"loading"
|
|
142
|
-
],
|
|
143
|
-
"visual_image": [
|
|
144
|
-
{ "environment_id": "darwin-arm64-chromium-1228", "sha256": "sha256:d8c7ba056dd2a61ce6c85d8ec6bf56733cdc34da07678dd9b4175c7de9ab926a", "width": 640, "height": 88 },
|
|
145
|
-
{ "environment_id": "linux-amd64-chromium-1228", "sha256": "sha256:7cef4e68a5a3df50c1705c7b88936bf0988317e2f6bed92ae5c04992388126a3", "width": 640, "height": 91 }
|
|
146
|
-
],
|
|
147
|
-
"dom": {
|
|
148
|
-
"active": "true",
|
|
149
|
-
"aria-busy": "true",
|
|
150
|
-
"aria-expanded": "true",
|
|
151
|
-
"role": "button"
|
|
152
|
-
},
|
|
153
|
-
"ax": {
|
|
154
|
-
"busy": true,
|
|
155
|
-
"expanded": true,
|
|
156
|
-
"focused": true,
|
|
157
|
-
"role": "button"
|
|
158
|
-
},
|
|
159
|
-
"activation": "allowed"
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
"id": "toggle-focused-pressed",
|
|
164
|
-
"semantic_mode": "toggle",
|
|
165
|
-
"states": [
|
|
166
|
-
"focus",
|
|
167
|
-
"pressed"
|
|
168
|
-
],
|
|
169
|
-
"aria": {
|
|
170
|
-
"pressed": "true"
|
|
171
|
-
},
|
|
172
|
-
"expected": {
|
|
173
|
-
"visual": [
|
|
174
|
-
"focus",
|
|
175
|
-
"pressed"
|
|
176
|
-
],
|
|
177
|
-
"visual_image": [
|
|
178
|
-
{ "environment_id": "darwin-arm64-chromium-1228", "sha256": "sha256:838229be984b8bda1ebfe6095564f1093df18fdd2ca1e6c3d5b5c086162d4692", "width": 640, "height": 56 },
|
|
179
|
-
{ "environment_id": "linux-amd64-chromium-1228", "sha256": "sha256:1c105821f16a028e974bdf00590e3d9aee8042016ee341f4efe56b4a525b867d", "width": 640, "height": 56 }
|
|
180
|
-
],
|
|
181
|
-
"dom": {
|
|
182
|
-
"active": "true",
|
|
183
|
-
"aria-pressed": "true",
|
|
184
|
-
"role": "button"
|
|
185
|
-
},
|
|
186
|
-
"ax": {
|
|
187
|
-
"focused": true,
|
|
188
|
-
"pressed": true,
|
|
189
|
-
"role": "button"
|
|
190
|
-
},
|
|
191
|
-
"activation": "allowed"
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
]
|
|
195
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"color": {
|
|
3
|
-
"$type": "color",
|
|
4
|
-
"accent": { "$value": { "alpha": 1, "colorSpace": "srgb", "components": [0.25, 0.92, 0.55] } },
|
|
5
|
-
"ink": { "$value": { "alpha": 1, "colorSpace": "srgb", "components": [0.76, 0.95, 0.83] } },
|
|
6
|
-
"screen": { "$value": { "alpha": 1, "colorSpace": "srgb", "components": [0.02, 0.05, 0.04] } }
|
|
7
|
-
},
|
|
8
|
-
"duration": {
|
|
9
|
-
"$type": "duration",
|
|
10
|
-
"feedback": { "$value": { "unit": "ms", "value": 80 } }
|
|
11
|
-
},
|
|
12
|
-
"space": {
|
|
13
|
-
"$type": "dimension",
|
|
14
|
-
"page": { "$value": { "unit": "rem", "value": 1 } },
|
|
15
|
-
"rhythm": { "$value": { "unit": "rem", "value": 0.5 } }
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Domain Guide
|
|
3
|
-
title: Game UI Classification
|
|
4
|
-
description: Engine-neutral method for classifying game interfaces by player task, presentation, input, state, and motion.
|
|
5
|
-
domain: game-ui
|
|
6
|
-
lifecycle: experimental
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Game UI Classification
|
|
10
|
-
|
|
11
|
-
Primary role: game-interface classification guide.
|
|
12
|
-
|
|
13
|
-
## Repository Boundary
|
|
14
|
-
|
|
15
|
-
This guide proposes a local, project-neutral taxonomy for classifying observable game-interface behavior without assuming a specific engine or art direction. Its player-task classes and classification axes are review tools, not a universal ontology. It does not turn a visual genre into a functional category or authorize decorative properties in reusable Layout patterns.
|
|
16
|
-
|
|
17
|
-
## Reusable Method
|
|
18
|
-
|
|
19
|
-
1. Capture the rendered screen or interaction in context.
|
|
20
|
-
2. Assign one primary player-task class.
|
|
21
|
-
3. Add secondary classes only when the same surface genuinely composes responsibilities.
|
|
22
|
-
4. Record visual language, input, state, motion, and implementation as separate axes.
|
|
23
|
-
5. Attach evidence for default, exceptional, and transitional states.
|
|
24
|
-
6. State what is observed, inferred, and still unverified.
|
|
25
|
-
|
|
26
|
-
## Player-Task Classes
|
|
27
|
-
|
|
28
|
-
| Primary class | Player question | Typical examples |
|
|
29
|
-
| --- | --- | --- |
|
|
30
|
-
| `hud` | What is happening during play right now? | Health, ammo, objective, marker, cooldown |
|
|
31
|
-
| `navigation` | Where can I go next? | Main menu, pause menu, chapter or mode selection |
|
|
32
|
-
| `dialog` | What decision or interruption needs attention? | Confirmation, reconnect, privacy, system notice |
|
|
33
|
-
| `inventory` | What do I own, equip, compare, or improve? | Loadout, stash, equipment, crafting, upgrade |
|
|
34
|
-
| `progression` | What did I unlock or how am I advancing? | Results, level up, rewards, rank change |
|
|
35
|
-
| `commerce` | What can I acquire and at what cost? | Shop, offer, product detail, currency shortage |
|
|
36
|
-
| `tutorial` | What action should I learn or perform? | Coach mark, forced step, contextual hint |
|
|
37
|
-
| `narrative` | What story or authored event is being presented? | Dialogue, boss intro, cinematic overlay |
|
|
38
|
-
| `system-status` | Is the application ready and connected? | Splash, loading, sign-in, reconnect, patch status |
|
|
39
|
-
| `input-surface` | How do I directly control the game? | Virtual stick, action button, key binding |
|
|
40
|
-
|
|
41
|
-
## Classification Axes
|
|
42
|
-
|
|
43
|
-
| Axis | Example values | Evidence requirement |
|
|
44
|
-
| --- | --- | --- |
|
|
45
|
-
| World relationship | `diegetic`, `spatial`, `overlay`, `full-screen` | Capture placement relative to play space |
|
|
46
|
-
| Material character | `flat-graphic`, `framed`, `skeuomorphic`, `translucent`, `textural` | Capture repeated surface treatment |
|
|
47
|
-
| Genre signal | `tactical`, `industrial`, `fantasy-ornamental`, `arcade`, `horror`, `casual` | Show repeated shape, type, icon, and material cues |
|
|
48
|
-
| Information density | `sparse`, `standard`, `dense` | Count simultaneous choices and information groups |
|
|
49
|
-
| Emphasis model | `typographic`, `icon-led`, `character-led`, `item-led`, `effect-led` | Identify first and second attention targets |
|
|
50
|
-
| Input | pointer, keyboard, gamepad, touch, gaze, mixed | Exercise every declared input mode |
|
|
51
|
-
| Motion role | affordance, activation, state change, transition, value change, reward, guidance, ambient | Record trigger, properties, timing, and interruption |
|
|
52
|
-
|
|
53
|
-
## Opinionated Guidance
|
|
54
|
-
|
|
55
|
-
- Organize the gallery first by player task, then filter by presentation and implementation axes.
|
|
56
|
-
- Use two or three visual tags supported by repeated evidence.
|
|
57
|
-
- Classify independent player-task regions separately when a screen composes them.
|
|
58
|
-
- Do not infer style or behavior from project, prefab, widget, scene, or class names alone.
|
|
59
|
-
|
|
60
|
-
## Platform-Specific Guidance
|
|
61
|
-
|
|
62
|
-
Record engine, UI framework, render space, scaling policy, navigation system, text system, and motion system as implementation evidence. Route detailed engine hierarchy and API guidance to the matching engine-specific Game UI guide.
|
|
63
|
-
|
|
64
|
-
## Unsupported Absolutes
|
|
65
|
-
|
|
66
|
-
- A genre label does not establish a visual style.
|
|
67
|
-
- A screenshot does not prove responsive behavior, focus behavior, or motion interruption.
|
|
68
|
-
- A production project's folder structure is not a universal architecture.
|
|
69
|
-
- Similar appearance does not prove equivalent accessibility, performance, or interaction behavior.
|
|
70
|
-
|
|
71
|
-
## Verification Contract
|
|
72
|
-
|
|
73
|
-
Verify narrow and wide surfaces, every declared input mode, long localized text, empty and loading states, disabled and error states, repeated open and close, rapid selection changes, and interrupted motion where relevant.
|
|
74
|
-
|
|
75
|
-
## Source, License, And Attribution
|
|
76
|
-
|
|
77
|
-
This page is a locally authored, project-neutral proposed taxonomy. It reproduces no game assets, project-specific hierarchy, or upstream implementation samples.
|
|
78
|
-
|
|
79
|
-
## IA Navigation
|
|
80
|
-
|
|
81
|
-
Parent: [Game UI](index.md).
|
|
82
|
-
Next: [Game UI Screen Hierarchy](screen-hierarchy.md).
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Domain Guide
|
|
3
|
-
title: Game UI Reference Record
|
|
4
|
-
description: Minimum evidence record for adding a game-interface reference to StyleGallery.
|
|
5
|
-
domain: game-ui
|
|
6
|
-
lifecycle: experimental
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Game UI Reference Record
|
|
10
|
-
|
|
11
|
-
Primary role: gallery evidence template.
|
|
12
|
-
|
|
13
|
-
## Repository Boundary
|
|
14
|
-
|
|
15
|
-
This record captures enough context to compare a game UI reference without importing its assets, source hierarchy, or implementation assumptions as gallery policy.
|
|
16
|
-
|
|
17
|
-
## Reusable Method
|
|
18
|
-
|
|
19
|
-
Complete the record from rendered evidence first, then add hierarchy and implementation facts. Mark unknown fields instead of guessing from names.
|
|
20
|
-
|
|
21
|
-
## Minimum Record
|
|
22
|
-
|
|
23
|
-
| Field | Required content |
|
|
24
|
-
| --- | --- |
|
|
25
|
-
| Identity | Entry name, source, capture date, source revision or version |
|
|
26
|
-
| Player task | One primary class and justified secondary classes |
|
|
27
|
-
| Presentation | Two or three visual-language tags with rendered evidence |
|
|
28
|
-
| Hierarchy | Root, layer, screen, region, component, and control ownership |
|
|
29
|
-
| Platform | Engine, UI framework, relevant package or runtime versions |
|
|
30
|
-
| Surface | Render space, aspect ratios, safe area, scaling policy |
|
|
31
|
-
| Input | Supported modes, initial focus, navigation, cancellation, focus return |
|
|
32
|
-
| States | Default, selected, disabled, loading, error, empty, modal |
|
|
33
|
-
| Motion | Role, trigger, properties, timing, interruption, completion |
|
|
34
|
-
| Evidence | Screen capture, recording, hierarchy capture, relevant source paths |
|
|
35
|
-
| Boundary | Observed facts, inferences, unknowns, and reuse restrictions |
|
|
36
|
-
|
|
37
|
-
## Opinionated Guidance
|
|
38
|
-
|
|
39
|
-
Prefer a complete record to a large screenshot collection missing state, hierarchy, or input evidence. It must explain the classification and what remains unproven.
|
|
40
|
-
|
|
41
|
-
## Platform-Specific Guidance
|
|
42
|
-
|
|
43
|
-
Use the matching engine-specific Game UI guide to fill implementation fields. Engine terms supplement this record; they do not replace the engine-neutral player-task and hierarchy roles.
|
|
44
|
-
|
|
45
|
-
## Unsupported Absolutes
|
|
46
|
-
|
|
47
|
-
- A source path is not rendered evidence.
|
|
48
|
-
- A polished capture is not proof of edge-state behavior.
|
|
49
|
-
- A single aspect ratio or input mode is not broad platform coverage.
|
|
50
|
-
|
|
51
|
-
## Verification Contract
|
|
52
|
-
|
|
53
|
-
Reject an entry if its primary player task, rendered state, source identity, or evidence boundary is unknown. Keep incomplete entries in draft; do not infer missing facts.
|
|
54
|
-
|
|
55
|
-
## Source, License, And Attribution
|
|
56
|
-
|
|
57
|
-
Record source licensing and reuse restrictions per entry. Do not copy protected game assets into the repository merely to make the record self-contained.
|
|
58
|
-
|
|
59
|
-
## IA Navigation
|
|
60
|
-
|
|
61
|
-
Parent: [Game UI](index.md).
|
|
62
|
-
Next: [Unity UI Architecture](unity/architecture.md).
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Domain Guide
|
|
3
|
-
title: Game UI Screen Hierarchy
|
|
4
|
-
description: Engine-neutral ownership model for composing game-interface shells, screens, layers, regions, components, and controls.
|
|
5
|
-
domain: game-ui
|
|
6
|
-
lifecycle: experimental
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Game UI Screen Hierarchy
|
|
10
|
-
|
|
11
|
-
Primary role: engine-neutral hierarchy guide.
|
|
12
|
-
|
|
13
|
-
## Repository Boundary
|
|
14
|
-
|
|
15
|
-
This hierarchy describes interface responsibility, not a required scene graph or prefab tree. Engines may realize the same roles through scenes, widgets, documents, entities, prefabs, or runtime objects.
|
|
16
|
-
|
|
17
|
-
## Reusable Method
|
|
18
|
-
|
|
19
|
-
Read a game UI hierarchy from ownership outward:
|
|
20
|
-
|
|
21
|
-
1. Identify the lifetime owner.
|
|
22
|
-
2. Identify the active player task.
|
|
23
|
-
3. Separate persistent, replaceable, modal, transient, and world-linked layers.
|
|
24
|
-
4. Name screen regions by responsibility.
|
|
25
|
-
5. Find repeated components and atomic controls.
|
|
26
|
-
6. Record navigation, input blocking, sorting, focus, and teardown ownership.
|
|
27
|
-
|
|
28
|
-
## Reference Hierarchy
|
|
29
|
-
|
|
30
|
-
```text
|
|
31
|
-
Application UI Root
|
|
32
|
-
├── Persistent Services
|
|
33
|
-
│ ├── Input and Focus Routing
|
|
34
|
-
│ ├── Loading and Blocking
|
|
35
|
-
│ ├── Notifications
|
|
36
|
-
│ └── Accessibility and Localization
|
|
37
|
-
├── Screen Host
|
|
38
|
-
│ └── Active Screen
|
|
39
|
-
│ ├── Screen Header
|
|
40
|
-
│ ├── Primary Region
|
|
41
|
-
│ ├── Supporting Region
|
|
42
|
-
│ └── Screen Actions
|
|
43
|
-
├── HUD Layer
|
|
44
|
-
│ ├── Player Status
|
|
45
|
-
│ ├── World Status
|
|
46
|
-
│ ├── Objectives
|
|
47
|
-
│ └── Context Actions
|
|
48
|
-
├── Modal Layer
|
|
49
|
-
│ ├── Blocker
|
|
50
|
-
│ └── Dialog or Popup Stack
|
|
51
|
-
├── Transient Layer
|
|
52
|
-
│ ├── Toasts
|
|
53
|
-
│ ├── Tooltips
|
|
54
|
-
│ └── Reward and Feedback Effects
|
|
55
|
-
└── World-Linked UI
|
|
56
|
-
├── Markers
|
|
57
|
-
├── Labels
|
|
58
|
-
└── Interaction Prompts
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
## Hierarchy Roles
|
|
62
|
-
|
|
63
|
-
| Level | Owns | Must not silently own |
|
|
64
|
-
| --- | --- | --- |
|
|
65
|
-
| Application root | Cross-screen lifetime, global routing, top-level sorting | Screen-specific business state |
|
|
66
|
-
| Layer host | Ordering, visibility policy, input blocking | Individual component presentation |
|
|
67
|
-
| Screen | One primary player task and its navigation boundary | Unrelated global services |
|
|
68
|
-
| Region | A stable information or action responsibility | Whole-screen lifecycle |
|
|
69
|
-
| Component | Reusable stateful presentation unit | Global navigation policy |
|
|
70
|
-
| Control | One direct interaction or value presentation | Hidden cross-screen side effects |
|
|
71
|
-
|
|
72
|
-
## Composition Rules
|
|
73
|
-
|
|
74
|
-
- Keep persistent services independent from replaceable screen content.
|
|
75
|
-
- Assign explicit ownership for modal blocking and modal content.
|
|
76
|
-
- Separate popup stacks, notifications, tooltips, and reward effects when their lifetime, input, sorting, or interruption responsibilities differ.
|
|
77
|
-
- Distinguish world-linked UI from screen-space HUD by camera, target, and lifetime ownership, not shared visual tokens.
|
|
78
|
-
- Prefer explicit data and state inputs for repeated list cells, slots, tabs, meters, and buttons over implicit global-state access.
|
|
79
|
-
- Preserve logical navigation order when visual sorting or animation changes.
|
|
80
|
-
|
|
81
|
-
## Opinionated Guidance
|
|
82
|
-
|
|
83
|
-
A shallow tree is not automatically better than a deep tree. Prefer boundaries that make lifetime, input, sorting, and reuse obvious. Undocumented nodes used only to offset animation, scaling, or masking side effects are a fragility signal.
|
|
84
|
-
|
|
85
|
-
## Platform-Specific Guidance
|
|
86
|
-
|
|
87
|
-
Map these roles to the target engine without copying the hierarchy literally. See [Unity UI Architecture](unity/architecture.md) for Unity Scene, Canvas, prefab, and runtime mapping.
|
|
88
|
-
|
|
89
|
-
## Unsupported Absolutes
|
|
90
|
-
|
|
91
|
-
- Do not require one root Canvas, widget tree, or scene for every game.
|
|
92
|
-
- Do not equate folder nesting with runtime ownership.
|
|
93
|
-
- Do not assume a prefab, widget, or component boundary is also a navigation boundary.
|
|
94
|
-
- Do not infer input blocking or render order from hierarchy position alone.
|
|
95
|
-
|
|
96
|
-
## Verification Contract
|
|
97
|
-
|
|
98
|
-
Trace one screen from creation through teardown. Record its creator, sorting layer, input blocker, focus entry and return, what survives screen changes, and modal or transition interruption behavior.
|
|
99
|
-
|
|
100
|
-
## Source, License, And Attribution
|
|
101
|
-
|
|
102
|
-
This page synthesizes recurring hierarchy responsibilities observed across game UI implementations without reproducing any project-specific object tree.
|
|
103
|
-
|
|
104
|
-
## IA Navigation
|
|
105
|
-
|
|
106
|
-
Parent: [Game UI](index.md).
|
|
107
|
-
Next: [Game UI Reference Record](reference-record.md).
|