stylegallery 0.1.3 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -1
- package/DOMAINS.md +13 -9
- package/GOVERNANCE.md +9 -1
- package/README.md +26 -5
- package/consumer-reference/agent-native/README.md +12 -1
- package/consumer-reference/agent-native/v2/admission-policy.json +176 -1
- package/consumer-reference/agent-native/v2/material-registry.json +1 -1
- package/consumer-reference/agent-native/v2/schema/admission-policy.schema.json +3 -3
- package/consumer-reference/agent-native/v2/schema/material-record.schema.json +1 -1
- package/design-engineering/component-contract.md +98 -0
- package/design-engineering/consumer-migration-readiness.md +124 -0
- package/design-engineering/decision-tree.md +69 -0
- package/design-engineering/index.md +12 -2
- package/design-engineering/interface-craft.md +107 -0
- package/design-engineering/worked-examples.md +127 -0
- package/design-terminology/comparison-workflow.md +98 -0
- package/design-terminology/concept-families.md +78 -0
- package/design-terminology/conflict-cases.md +109 -0
- package/design-terminology/index.md +73 -0
- package/design-terminology/relation-types.md +109 -0
- package/design-terminology/source-kinds.md +77 -0
- package/design-terminology/source-vocabularies.md +93 -0
- package/game-ui/classification.md +82 -0
- package/game-ui/decision-tree.md +81 -0
- package/game-ui/index.md +11 -1
- package/game-ui/reference-record.md +62 -0
- package/game-ui/screen-hierarchy.md +107 -0
- package/game-ui/screen-recipes.md +101 -0
- package/game-ui/unity/architecture.md +166 -0
- package/game-ui/unity/cli-loop.md +84 -0
- package/game-ui/unity/org-wiki.md +146 -0
- package/game-ui/unity/repository-map.md +102 -0
- package/game-ui/unity/ui-systems.md +85 -0
- package/game-ui/verification-workflow.md +100 -0
- package/guides/vocabulary.md +1 -1
- package/index.md +10 -1
- package/log.md +43 -0
- package/motion/decision-tree.md +70 -0
- package/motion/index.md +14 -2
- package/motion/interaction-recipes.md +164 -0
- package/motion/motion-brief.md +125 -0
- package/motion/practice-reference.md +145 -0
- package/motion/review-workflow.md +94 -0
- package/motion/vocabulary.md +82 -0
- package/package.json +36 -1
- package/platform-guides/adaptation-workflow.md +76 -0
- package/platform-guides/android-interaction.md +74 -0
- package/platform-guides/apple-interaction.md +97 -0
- package/platform-guides/compatibility-matrix.md +97 -0
- package/platform-guides/index.md +13 -2
- package/platform-guides/windows-interaction.md +75 -0
- package/quality/claim-records/design-terminology-domain-scope.md +57 -0
- package/quality/evidence/executable-evidence.md +1 -1
- package/quality/index.md +2 -2
- package/recipes/homepage.md +8 -0
- package/scripts/agent-native/v2/material-admission.mjs +1 -1
- package/scripts/agent-native/v2/material-identity.mjs +2 -2
- package/scripts/agent-native/v2/material-mcp-adapter.mjs +1 -1
- package/scripts/agent-native/v2/material-queries.mjs +60 -12
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Motion Vocabulary
|
|
4
|
+
description: Evidence-bounded method and reference for naming observable interface motion.
|
|
5
|
+
domain: motion
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
source_repository: https://github.com/emilkowalski/skills
|
|
8
|
+
source_path: skills/animation-vocabulary/SKILL.md
|
|
9
|
+
source_revision: 220e8607c90b17337d210125777b7b695f26c221
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Motion Vocabulary
|
|
13
|
+
|
|
14
|
+
Primary role: motion terminology reference.
|
|
15
|
+
|
|
16
|
+
## Repository Boundary
|
|
17
|
+
|
|
18
|
+
This page helps a reader name observed motion. It does not prescribe implementation, authorize motion in reusable Layout CSS, or make a product-quality judgment.
|
|
19
|
+
|
|
20
|
+
The terms are implementation-neutral. A framework, operating-system behavior, or branded example may illustrate a term only when clearly labeled and separately verified.
|
|
21
|
+
|
|
22
|
+
## Reusable Method
|
|
23
|
+
|
|
24
|
+
1. Record what changes: presence, position, scale, shape, state, scroll relationship, or feedback.
|
|
25
|
+
2. Record what coordinates the change: time, sequence, input, velocity, or viewport progress.
|
|
26
|
+
3. Compare the observation with the closest term families below.
|
|
27
|
+
4. Return one exact term only when the observed cues distinguish it.
|
|
28
|
+
5. When multiple terms remain plausible, return ordered candidates and state the missing observation.
|
|
29
|
+
6. When nothing matches, return `unknown`; do not invent a canonical winner.
|
|
30
|
+
|
|
31
|
+
## Term Families
|
|
32
|
+
|
|
33
|
+
| Term | Observed cues | Distinguish from | Implementation-neutral meaning | Evidence boundary |
|
|
34
|
+
| --- | --- | --- | --- | --- |
|
|
35
|
+
| Fade | Visibility changes without a necessary spatial path. | Reveal | A gradual visibility change. | Does not imply opacity is the implementation. |
|
|
36
|
+
| Slide | The element follows a directional path into, out of, or within a region. | Shared-element transition | A positional transition without necessarily preserving identity across views. | Direction and clipping must be observed. |
|
|
37
|
+
| Scale transition | Apparent size changes around an origin. | Morph | Size changes while the element's basic identity remains stable. | Does not establish the correct origin or amount. |
|
|
38
|
+
| Reveal | A boundary progressively exposes content. | Fade | Visibility is controlled by an advancing edge, mask, or equivalent boundary. | The masking mechanism may be unknown. |
|
|
39
|
+
| Stagger | Similar elements begin related changes at distinct offsets. | Orchestration | A repeated sequence pattern, usually across peers. | The offset value is product-specific. |
|
|
40
|
+
| Orchestration | Several motion events form one coordinated sequence. | Stagger | Coordination may include different elements, jobs, and timings. | Intent must be documented, not inferred from timing alone. |
|
|
41
|
+
| Crossfade | One state loses visibility while another gains it in the same region. | Morph | Identity is exchanged rather than geometrically transformed. | Overlap and source order need inspection. |
|
|
42
|
+
| Shared-element transition | A recognizable element appears to retain identity between states or views. | Layout animation | Continuity connects a source representation with a destination representation. | Identity continuity is a perception claim requiring rendered evidence. |
|
|
43
|
+
| Layout animation | A spatial change is visually interpolated instead of appearing instantly. | Shared-element transition | Position or size changes within the layout state of an element. | Does not endorse animating layout-triggering CSS properties. |
|
|
44
|
+
| Scroll-driven motion | Progress corresponds to scroll progress. | Scroll reveal | The scroll position continuously controls progress rather than merely triggering entry. | Browser and input behavior require local testing. |
|
|
45
|
+
| Parallax | Layers appear to travel at different rates during a shared movement. | Ordinary scroll | Relative speed creates a depth cue. | Depth, comfort, and reduced-motion outcomes are not guaranteed. |
|
|
46
|
+
| Spring motion | Response is modeled as a target-seeking dynamic system rather than a fixed timeline. | Bounce | A spring may settle without visible overshoot. | Parameters and perceived duration remain implementation-specific. |
|
|
47
|
+
| Bounce | Motion overshoots or reverses before settling. | Spring motion | Visible overshoot is the defining cue, regardless of implementation. | Playfulness and appropriateness are product judgments. |
|
|
48
|
+
| Interruptible motion | New input redirects a change from its current presented state. | Restarted animation | Continuity is maintained when the target changes mid-flight. | Requires interaction evidence, not source inspection alone. |
|
|
49
|
+
| Rubber-band response | Movement continues beyond a boundary with increasing resistance, then returns. | Bounce | Resistance is tied to boundary overshoot and direct manipulation. | Platform examples are not a universal physics contract. |
|
|
50
|
+
| Jank | Motion visibly misses expected visual continuity. | Intentional stepped motion | The discontinuity is unintended and associated with delivery or computation limits. | Frame or performance evidence is needed to attribute cause. |
|
|
51
|
+
|
|
52
|
+
## Opinionated Guidance
|
|
53
|
+
|
|
54
|
+
The family ordering favors what a reader can observe before implementation details. It is useful for retrieval, but it is not a complete ontology. Add a term only when contrastive repository cases show that existing terms and aliases cannot express the distinction.
|
|
55
|
+
|
|
56
|
+
## Platform-Specific Guidance
|
|
57
|
+
|
|
58
|
+
Names tied to iOS, macOS, a browser API, Motion, Framer Motion, React, or a component library are examples or implementation facets. Keep the cross-platform term primary and label the platform context separately.
|
|
59
|
+
|
|
60
|
+
## Unsupported Absolutes
|
|
61
|
+
|
|
62
|
+
- Do not call this vocabulary authoritative outside StyleGallery.
|
|
63
|
+
- Do not force the nearest term when the observation is incomplete.
|
|
64
|
+
- Do not attach universal FPS, GPU, duration, easing, or reduced-motion rules to a definition.
|
|
65
|
+
- Do not infer implementation technology from rendered appearance alone.
|
|
66
|
+
|
|
67
|
+
## Verification Contract
|
|
68
|
+
|
|
69
|
+
A vocabulary lookup should exercise exact, ambiguous, and unknown cases. Pass requires one justified term, an ordered candidate set with a stated distinction, or `unknown`; invented winners fail. A new term also requires contrastive exact, ambiguous, and unknown cases showing that the current vocabulary cannot express the distinction.
|
|
70
|
+
|
|
71
|
+
## Source, License, And Attribution
|
|
72
|
+
|
|
73
|
+
- Upstream inspiration: [animation-vocabulary/SKILL.md](https://github.com/emilkowalski/skills/blob/220e8607c90b17337d210125777b7b695f26c221/skills/animation-vocabulary/SKILL.md)
|
|
74
|
+
- Snapshot: `220e8607c90b17337d210125777b7b695f26c221`
|
|
75
|
+
- Upstream license: MIT, Copyright (c) 2026 Emil Kowalski.
|
|
76
|
+
- Reuse form: independent method rewrite; upstream prose, tables, code, examples, and distinctive ordering were not retained.
|
|
77
|
+
- Evidence boundary: the upstream artifact records practitioner terminology; it does not prove local performance, accessibility, usability, or quality.
|
|
78
|
+
|
|
79
|
+
## IA Navigation
|
|
80
|
+
|
|
81
|
+
Parent: [Motion](index.md).
|
|
82
|
+
Next: [Motion Review Workflow](review-workflow.md).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stylegallery",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "A governed gallery of portable interface knowledge with deterministic CLIs and read-only MCP servers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://github.com/changeroa/StyleGallery#readme",
|
|
@@ -47,11 +47,34 @@
|
|
|
47
47
|
"consumer-reference/agent-native/v2/schema/material-record.schema.json",
|
|
48
48
|
"consumer-reference/contract.md",
|
|
49
49
|
"consumer-reference/index.md",
|
|
50
|
+
"design-engineering/component-contract.md",
|
|
51
|
+
"design-engineering/consumer-migration-readiness.md",
|
|
52
|
+
"design-engineering/decision-tree.md",
|
|
50
53
|
"design-engineering/index.md",
|
|
54
|
+
"design-engineering/interface-craft.md",
|
|
51
55
|
"design-engineering/reference-profiles/governed-local/editorial/profile.json",
|
|
52
56
|
"design-engineering/reference-profiles/governed-local/index.md",
|
|
53
57
|
"design-engineering/reference-profiles/index.md",
|
|
58
|
+
"design-engineering/worked-examples.md",
|
|
59
|
+
"design-terminology/comparison-workflow.md",
|
|
60
|
+
"design-terminology/concept-families.md",
|
|
61
|
+
"design-terminology/conflict-cases.md",
|
|
62
|
+
"design-terminology/index.md",
|
|
63
|
+
"design-terminology/relation-types.md",
|
|
64
|
+
"design-terminology/source-kinds.md",
|
|
65
|
+
"design-terminology/source-vocabularies.md",
|
|
66
|
+
"game-ui/classification.md",
|
|
67
|
+
"game-ui/decision-tree.md",
|
|
54
68
|
"game-ui/index.md",
|
|
69
|
+
"game-ui/reference-record.md",
|
|
70
|
+
"game-ui/screen-hierarchy.md",
|
|
71
|
+
"game-ui/screen-recipes.md",
|
|
72
|
+
"game-ui/unity/architecture.md",
|
|
73
|
+
"game-ui/unity/cli-loop.md",
|
|
74
|
+
"game-ui/unity/org-wiki.md",
|
|
75
|
+
"game-ui/unity/repository-map.md",
|
|
76
|
+
"game-ui/unity/ui-systems.md",
|
|
77
|
+
"game-ui/verification-workflow.md",
|
|
55
78
|
"guides/decision-tree.md",
|
|
56
79
|
"guides/documentation-mode-taxonomy.md",
|
|
57
80
|
"guides/layout-brief.md",
|
|
@@ -60,7 +83,13 @@
|
|
|
60
83
|
"index.md",
|
|
61
84
|
"layout/index.md",
|
|
62
85
|
"log.md",
|
|
86
|
+
"motion/decision-tree.md",
|
|
63
87
|
"motion/index.md",
|
|
88
|
+
"motion/interaction-recipes.md",
|
|
89
|
+
"motion/motion-brief.md",
|
|
90
|
+
"motion/practice-reference.md",
|
|
91
|
+
"motion/review-workflow.md",
|
|
92
|
+
"motion/vocabulary.md",
|
|
64
93
|
"patterns/centering/center.md",
|
|
65
94
|
"patterns/centering/index.md",
|
|
66
95
|
"patterns/centering/super-center.md",
|
|
@@ -117,7 +146,13 @@
|
|
|
117
146
|
"patterns/viewport-shell/scroll-body-shell.md",
|
|
118
147
|
"patterns/viewport-shell/sticky-footer.md",
|
|
119
148
|
"patterns/viewport-shell/sticky-header.md",
|
|
149
|
+
"platform-guides/adaptation-workflow.md",
|
|
150
|
+
"platform-guides/android-interaction.md",
|
|
151
|
+
"platform-guides/apple-interaction.md",
|
|
152
|
+
"platform-guides/compatibility-matrix.md",
|
|
120
153
|
"platform-guides/index.md",
|
|
154
|
+
"platform-guides/windows-interaction.md",
|
|
155
|
+
"quality/claim-records/design-terminology-domain-scope.md",
|
|
121
156
|
"quality/claim-records/index.md",
|
|
122
157
|
"quality/claim-records/samples.md",
|
|
123
158
|
"quality/claim-records/stylegallery-multidomain-scope.md",
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Platform Adaptation Workflow
|
|
4
|
+
description: Compare a native convention with a target implementation through source, capability, fallback, and evidence records.
|
|
5
|
+
domain: platform-guides
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
provenance_kind: local
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Platform Adaptation Workflow
|
|
11
|
+
|
|
12
|
+
Primary role: platform comparison planning and handoff.
|
|
13
|
+
|
|
14
|
+
## Repository Boundary
|
|
15
|
+
|
|
16
|
+
Use a platform convention as a sourced comparison for a named task. The native platform owns its convention; the target's standards and actual runtime determine the adaptation. This workflow does not make a visual imitation equivalent to native behavior.
|
|
17
|
+
|
|
18
|
+
## Reusable Method
|
|
19
|
+
|
|
20
|
+
1. Name the task and target: native application, browser, embedded web view, or game engine.
|
|
21
|
+
2. Select [Apple](apple-interaction.md), [Android](android-interaction.md), or [Windows](windows-interaction.md) by source platform.
|
|
22
|
+
3. Record an official source, exact page section, version or dated reading, and re-review trigger.
|
|
23
|
+
4. Separate the observed/native fact from the transferable interaction question.
|
|
24
|
+
5. Choose an adaptation and an explicit fallback using the [Compatibility Matrix](compatibility-matrix.md).
|
|
25
|
+
6. Execute the target-specific acceptance cases and record what was not tested.
|
|
26
|
+
|
|
27
|
+
## Adaptation Record
|
|
28
|
+
|
|
29
|
+
| Field | Required content |
|
|
30
|
+
| --- | --- |
|
|
31
|
+
| Task | The user action, intended outcome, and affected state |
|
|
32
|
+
| Source context | Platform, OS/API or documentation version, source URL/section, review date |
|
|
33
|
+
| Source claim | The precise native fact supported by that source |
|
|
34
|
+
| Target context | Browser/OS/framework/device/input and relevant versions |
|
|
35
|
+
| Transferable question | What problem the convention helps investigate |
|
|
36
|
+
| Target decision | Implement, adapt, omit, or defer with a reason |
|
|
37
|
+
| Capability gap | Missing API, different input model, permission, or semantic difference |
|
|
38
|
+
| Fallback | A complete task path when the preferred capability is absent |
|
|
39
|
+
| Verification | Actions, expected and actual behavior, artifacts, source/build identity |
|
|
40
|
+
| Freshness | Source/API change or failed observation that triggers re-review |
|
|
41
|
+
| Handoff | `consumer_reference` record or `not_applicable` with a reason |
|
|
42
|
+
|
|
43
|
+
## Worked Comparison: Returning From Detail
|
|
44
|
+
|
|
45
|
+
Native source: Android's [predictive Back documentation](https://developer.android.com/guide/navigation/custom-back/predictive-back-gesture), reviewed 2026-09-08, describes gesture preview and cancellation. Transferable question: can a person understand and cancel a return before committing it?
|
|
46
|
+
|
|
47
|
+
Web decision: use the application's documented list/detail route and normal browser history. Restore the list's selection and relevant search state on return. Provide a visible return link where the task needs it. Do not intercept browser/system gestures merely to reproduce a preview.
|
|
48
|
+
|
|
49
|
+
Fallback: direct entry to a detail URL has no assumed prior list history; its visible parent link goes to the known collection route. Verification cases: navigate from a filtered list, return with browser Back, enter detail directly, cancel a local dialog before leaving, and return after the selected item is removed.
|
|
50
|
+
|
|
51
|
+
Actual result: `not_run`; this is a fictional adaptation proposal. `consumer_reference: not_applicable` because no consumer record is selected. The comparison claims neither native gesture support nor tested browser history restoration.
|
|
52
|
+
|
|
53
|
+
## Opinionated Guidance
|
|
54
|
+
|
|
55
|
+
Preserve the task and recovery path before reproducing the native effect. When a capability is absent, document an intentional complete alternative rather than a partially functioning control.
|
|
56
|
+
|
|
57
|
+
## Platform-Specific Guidance
|
|
58
|
+
|
|
59
|
+
The source platform and target platform are separate fields even when both run on the same device. A browser on Android does not expose every Android application API. A web view's embedding host may own navigation and permissions.
|
|
60
|
+
|
|
61
|
+
## Unsupported Absolutes
|
|
62
|
+
|
|
63
|
+
An official source establishes its own guidance, not target conformance. Similar appearance, shared vocabulary, or a matching API name is insufficient evidence of equivalent behavior.
|
|
64
|
+
|
|
65
|
+
## Verification Contract
|
|
66
|
+
|
|
67
|
+
A completed adaptation distinguishes source fact, local inference, target implementation, and actual observation. Verify unavailable capabilities, interrupted navigation, relevant preferences, and all claimed inputs. Re-review on a source change, target API change, or failed acceptance case; a review date alone is not proof of continuing support.
|
|
68
|
+
|
|
69
|
+
## Source, License, And Attribution
|
|
70
|
+
|
|
71
|
+
Locally authored comparison method and fictional example. The linked Android source was rechecked on 2026-09-08; prose and examples are independently written. Source access does not establish device execution.
|
|
72
|
+
|
|
73
|
+
## IA Navigation
|
|
74
|
+
|
|
75
|
+
Parent: [Platform Guides](index.md).
|
|
76
|
+
Next: [Platform Compatibility Matrix](compatibility-matrix.md).
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Android Interaction As A Comparative Reference
|
|
4
|
+
description: Source-bounded Android Back and adaptive-window guidance with explicit web translation and failure cases.
|
|
5
|
+
domain: platform-guides
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
provenance_kind: local
|
|
8
|
+
platform: Android applications
|
|
9
|
+
platform_version: dated official documentation; target OS and AndroidX versions required
|
|
10
|
+
reviewed_on: 2026-09-08
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Android Interaction As A Comparative Reference
|
|
14
|
+
|
|
15
|
+
Primary role: Android platform comparison guide.
|
|
16
|
+
|
|
17
|
+
## Repository Boundary
|
|
18
|
+
|
|
19
|
+
This guide compares Android application behavior with a consumer's target. It does not equate Android APIs with browser APIs or prescribe Material visual treatment. Record the actual OS, AndroidX/UI stack, and target device before implementation.
|
|
20
|
+
|
|
21
|
+
## Reusable Method
|
|
22
|
+
|
|
23
|
+
Use the [Adaptation Workflow](adaptation-workflow.md). Choose a specific native concern below, inspect its source, then write the target behavior and fallback independently of native visuals.
|
|
24
|
+
|
|
25
|
+
## Source-Bounded Conventions
|
|
26
|
+
|
|
27
|
+
| Concern | Official source and bounded fact | Transferable question |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| Back preview | [Predictive Back](https://developer.android.com/guide/navigation/custom-back/predictive-back-gesture) describes previewing a destination and cancelling a gesture; custom handling depends on the application stack | Is the destination understandable, and does cancelling preserve the current state? |
|
|
30
|
+
| Back ownership | The same source describes enabled callbacks and one recipient for a Back gesture | Which active layer consumes Back, and when does control return to the outer navigation owner? |
|
|
31
|
+
| Window adaptation | [Window size classes](https://developer.android.com/develop/adaptive-apps/guides/use-window-size-classes) classify available application window space for adaptive decisions | Does the screen adapt to its available space while preserving selection and task state? |
|
|
32
|
+
| Navigation transformation | [Responsive navigation](https://developer.android.com/develop/ui/views/layout/build-responsive-navigation) discusses changing navigation presentation with window conditions | Can the user reach the same destinations after presentation changes? |
|
|
33
|
+
|
|
34
|
+
These pages were read on 2026-09-08. They are a dated documentation set, not a pin of every Android release or package. Verify the implementation details for the selected runtime.
|
|
35
|
+
|
|
36
|
+
## Worked Adaptation: Compact List And Expanded Detail
|
|
37
|
+
|
|
38
|
+
Task: inspect a collection on a resizable surface. Native comparison: available window space can change the presentation. Target web decision: compose [List Detail](../recipes/list-detail.md), retain selected identity in application state, and let the Layout owner choose the fit constraint. Android's native units and class boundaries are not CSS breakpoints.
|
|
39
|
+
|
|
40
|
+
On a tight surface, the detail route can replace the list visually while preserving the query and selection. On a roomy surface, both can be visible. Returning must resolve a missing selected item explicitly. Changing presentation must not duplicate the current route or save unrelated navigation history entries.
|
|
41
|
+
|
|
42
|
+
| Action | Expected target behavior |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| Resize with item B selected | B remains the selected detail |
|
|
45
|
+
| Return to the list | Previous query remains available |
|
|
46
|
+
| Cancel an inner dialog | Dialog closes once; outer route stays put |
|
|
47
|
+
| Open detail directly | Parent navigation works without assuming prior history |
|
|
48
|
+
|
|
49
|
+
This is an unexecuted web proposal, not evidence of an Android build.
|
|
50
|
+
|
|
51
|
+
## Opinionated Guidance
|
|
52
|
+
|
|
53
|
+
Map Back, Up/parent navigation, dialog dismissal, and operation cancellation separately. They may share an icon or button position while changing different state.
|
|
54
|
+
|
|
55
|
+
## Platform-Specific Guidance
|
|
56
|
+
|
|
57
|
+
Android gesture progress, callback dispatch, activities, and AndroidX navigation belong to native or embedding-host code. A browser adaptation should use its supported navigation semantics. Record any web-view host integration as a separate implementation dependency.
|
|
58
|
+
|
|
59
|
+
## Unsupported Absolutes
|
|
60
|
+
|
|
61
|
+
Android window classes are not universal web breakpoints. A browser Back action is not necessarily an application's parent destination. A cancel animation does not prove the underlying operation was cancelled.
|
|
62
|
+
|
|
63
|
+
## Verification Contract
|
|
64
|
+
|
|
65
|
+
Test gesture completion/cancellation on the declared native device when claiming native behavior. For a web adaptation, test actual browser history, direct links, resizes, input modes, and dialog focus independently. Review when any cited convention or target navigation implementation changes.
|
|
66
|
+
|
|
67
|
+
## Source, License, And Attribution
|
|
68
|
+
|
|
69
|
+
Locally authored synthesis of the official Android pages linked above, rechecked 2026-09-08. No source code, tables, or native visual assets are reproduced. `consumer_reference: not_applicable` because this reference guide selects no consumer implementation record.
|
|
70
|
+
|
|
71
|
+
## IA Navigation
|
|
72
|
+
|
|
73
|
+
Parent: [Platform Guides](index.md).
|
|
74
|
+
Next: [Platform Compatibility Matrix](compatibility-matrix.md).
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Apple Interaction As A Comparative Reference
|
|
4
|
+
description: Bounded comparison of Apple interaction themes with explicit web-adaptation and provenance limits.
|
|
5
|
+
domain: platform-guides
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
source_repository: https://github.com/emilkowalski/skills
|
|
8
|
+
source_path: skills/apple-design/SKILL.md
|
|
9
|
+
source_revision: 220e8607c90b17337d210125777b7b695f26c221
|
|
10
|
+
platform: Apple platforms
|
|
11
|
+
platform_version: verify-current
|
|
12
|
+
reviewed_on: 2026-09-08
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Apple Interaction As A Comparative Reference
|
|
16
|
+
|
|
17
|
+
Primary role: platform comparison guide.
|
|
18
|
+
|
|
19
|
+
## Repository Boundary
|
|
20
|
+
|
|
21
|
+
This page uses selected Apple-platform interaction themes as comparative questions. It does not reproduce Apple guidance, establish affiliation, prescribe imitation, or treat a native implementation value as valid for the web.
|
|
22
|
+
|
|
23
|
+
Current official Apple documentation is required for Apple-specific claims. Current web standards and browser documentation are required for web adaptation. Local rendered, device, accessibility, and performance evidence is required for product conclusions.
|
|
24
|
+
|
|
25
|
+
## Reusable Method
|
|
26
|
+
|
|
27
|
+
For each proposed comparison:
|
|
28
|
+
|
|
29
|
+
1. Name the user task, platform, OS/API version, input method, and state transition.
|
|
30
|
+
2. Describe the observable behavior without branded terminology.
|
|
31
|
+
3. Identify the platform convention and its current official source.
|
|
32
|
+
4. Separate the reusable interaction question from native implementation details.
|
|
33
|
+
5. Define the web adaptation, including unavailable or materially different capabilities.
|
|
34
|
+
6. Verify the adapted behavior on its real surface and record what remains unproven.
|
|
35
|
+
|
|
36
|
+
## Official Source Review And Worked Adaptation
|
|
37
|
+
|
|
38
|
+
Official [HIG Motion](https://developer.apple.com/design/human-interface-guidelines/motion) and [HIG Accessibility](https://developer.apple.com/design/human-interface-guidelines/accessibility) were rechecked on 2026-09-08 through Apple's documentation data for [Motion](https://developer.apple.com/tutorials/data/design/human-interface-guidelines/motion.json) and [Accessibility](https://developer.apple.com/tutorials/data/design/human-interface-guidelines/accessibility.json). This is a dated living-document review, not a pin of shipped OS behavior. The motion guidance supports purposeful, optional motion and cancellation; it does not supply universal web animation parameters.
|
|
39
|
+
|
|
40
|
+
Worked proposal: a web settings disclosure opens immediately and keeps its trigger operable. Optional movement communicates the revealed region. Under reduced motion, the same content and controls remain available without unnecessary movement. Use [Motion Disclosure](../motion/interaction-recipes.md#disclosure) for the behavior contract and the [Adaptation Workflow](adaptation-workflow.md) for the source/target record.
|
|
41
|
+
|
|
42
|
+
Expected cases: open and close by keyboard, reverse while opening, enlarge the text, hide content while focus is inside, and change the motion preference. Actual result: `not_run`; this proposal is not a tested Apple or browser implementation. `consumer_reference: not_applicable` because the worked proposal selects no consumer-owned record.
|
|
43
|
+
|
|
44
|
+
## Comparative Questions
|
|
45
|
+
|
|
46
|
+
| Theme | Question to investigate | Required evidence | Boundary |
|
|
47
|
+
| --- | --- | --- | --- |
|
|
48
|
+
| Response | Does feedback begin close enough to input to preserve cause and effect? | Interaction recording and input-state trace | No universal latency value is implied. |
|
|
49
|
+
| Direct manipulation | Does the presented state follow, cancel, and resume from user input coherently? | Repeated drag/reversal test on target input modes | One-to-one tracking is not always required. |
|
|
50
|
+
| Interruption | Can new input redirect a transition without jumping or locking control? | Mid-transition retarget and reversal evidence | Springs are one option, not a requirement. |
|
|
51
|
+
| Velocity continuity | Does release-to-settle behavior avoid an observable seam? | Gesture and presented-state recording | Native velocity APIs and web libraries differ. |
|
|
52
|
+
| Spatial consistency | Can the reader understand where content came from and where it returns? | Before/intermediate/after render plus source/focus order | Visual path cannot override semantic order. |
|
|
53
|
+
| Recoverability | Can a user cancel, reverse, undo, or safely recover where the task requires it? | Task and error-path evidence | Confirmation is not universally preferable to undo. |
|
|
54
|
+
| Wayfinding | Can the interface answer location, available destinations, contents, and exit? | Navigation task evidence | Familiar platform placement may not transfer across products. |
|
|
55
|
+
| Soft boundaries | Would progressive resistance communicate a limit better than a hard stop? | Comparative prototype and input/device evidence | The resistance curve is not standardized across platforms. |
|
|
56
|
+
| Multimodal feedback | Do visual, audio, and haptic cues share a clear cause and useful purpose? | Device timing and accessibility evidence | Web haptics/audio are not native equivalents and may be unavailable. |
|
|
57
|
+
| Adaptive presentation | Does the interface remain usable across text size, contrast, transparency, motion preference, input, and viewport changes? | Relevant preference and constraint matrix | A platform feature name does not prove web accessibility. |
|
|
58
|
+
|
|
59
|
+
## Opinionated Guidance
|
|
60
|
+
|
|
61
|
+
Momentum-aware settling, source-anchored transitions, progressive boundary resistance, and carefully coordinated feedback can be useful hypotheses for directly manipulated interfaces. Translucent materials, system typography, haptics, and visual delight are product and platform choices outside reusable Layout pattern CSS.
|
|
62
|
+
|
|
63
|
+
## Platform-Specific Guidance
|
|
64
|
+
|
|
65
|
+
- iOS/macOS gesture physics, native spring APIs, Dynamic Type, system materials, haptics, and SwiftUI/UIKit behavior must be labeled as Apple-specific.
|
|
66
|
+
- Any value described as shipped by Apple requires a direct, current official source and version.
|
|
67
|
+
- A web mapping must identify browser support, input differences, accessibility behavior, and fallback semantics.
|
|
68
|
+
- `backdrop-filter`, the Vibration API, web media queries, and JavaScript animation libraries are not equivalents merely because they can approximate one visible effect.
|
|
69
|
+
|
|
70
|
+
## Unsupported Absolutes
|
|
71
|
+
|
|
72
|
+
- Do not call an upstream formula or parameter an exact Apple implementation without a primary official source.
|
|
73
|
+
- Do not require direct manipulation to track one-to-one in every context.
|
|
74
|
+
- Do not require audio and haptic events on one exact frame as a universal web contract.
|
|
75
|
+
- Do not claim translucent chrome is generally superior to opaque structure.
|
|
76
|
+
- Do not adopt a single spring configuration as a safe default across tasks.
|
|
77
|
+
- Do not import a named set of Apple principles as StyleGallery's shared principles.
|
|
78
|
+
- Do not infer native behavior, platform affiliation, or accessibility from visual similarity.
|
|
79
|
+
|
|
80
|
+
## Verification Contract
|
|
81
|
+
|
|
82
|
+
Record the official platform source and version, the web-standard or browser source for adaptation, the exact target devices and input modes, relevant user preferences, and the observed pass/fail behavior. Use a real interactive prototype for interaction claims. State explicitly when native behavior cannot be reproduced or verified on the web.
|
|
83
|
+
|
|
84
|
+
Review this page when Apple changes the cited convention, the web platform changes the adaptation surface, the source revision changes, or local testing contradicts the guidance. `platform_version: verify-current` prevents this experimental page from masquerading as a version-pinned platform contract.
|
|
85
|
+
|
|
86
|
+
## Source, License, And Attribution
|
|
87
|
+
|
|
88
|
+
- Upstream inspiration: [apple-design/SKILL.md](https://github.com/emilkowalski/skills/blob/220e8607c90b17337d210125777b7b695f26c221/skills/apple-design/SKILL.md)
|
|
89
|
+
- Snapshot: `220e8607c90b17337d210125777b7b695f26c221`
|
|
90
|
+
- Upstream license: MIT, Copyright (c) 2026 Emil Kowalski.
|
|
91
|
+
- Reuse form: independent method rewrite; upstream prose, tables, code, exact-value sequences, Apple/WWDC-derived expression, and quotations were not retained.
|
|
92
|
+
- Evidence boundary: the upstream artifact is a practitioner interpretation and provenance record, not an official Apple or web-platform source.
|
|
93
|
+
|
|
94
|
+
## IA Navigation
|
|
95
|
+
|
|
96
|
+
Parent: [Platform Guides](index.md).
|
|
97
|
+
Next: [Layout](../layout/index.md).
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Platform Compatibility Matrix
|
|
4
|
+
description: Separate transferable interaction intent from platform capabilities, target fallbacks, and required evidence.
|
|
5
|
+
domain: platform-guides
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
provenance_kind: local
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Platform Compatibility Matrix
|
|
11
|
+
|
|
12
|
+
Primary role: adaptation comparison and verification checklist.
|
|
13
|
+
|
|
14
|
+
## Repository Boundary
|
|
15
|
+
|
|
16
|
+
This matrix compares responsibilities, not API support versions. It is not a browser compatibility database. A row's target behavior is a proposed adaptation until verified on the consumer's named runtime.
|
|
17
|
+
|
|
18
|
+
## Reusable Method
|
|
19
|
+
|
|
20
|
+
Choose the relevant concern, read its platform source guide, record native facts and target decisions separately, and execute both the preferred and fallback paths. Use the [Adaptation Workflow](adaptation-workflow.md) for the handoff.
|
|
21
|
+
|
|
22
|
+
## Comparison Matrix
|
|
23
|
+
|
|
24
|
+
| Concern | Source route | Transferable intent | Target boundary and fallback | Required observation |
|
|
25
|
+
| --- | --- | --- | --- | --- |
|
|
26
|
+
| Motion preference | [Apple](apple-interaction.md) | Essential information remains available with less motion | Web preference handling belongs to [Motion recipes](../motion/interaction-recipes.md); retain static status | Change preference and interrupt an active transition |
|
|
27
|
+
| Return navigation | [Android](android-interaction.md) | Understand destination and preserve recoverable state | Browser history, parent links, and host Back are distinct; direct entry needs a known parent route | Normal return, direct entry, cancellation, missing prior item |
|
|
28
|
+
| Adaptive presentation | [Android](android-interaction.md) | Preserve the task as available space changes | Native units/class cutoffs do not define Layout breakpoints; use the target's content constraints | Resize without losing query, selection, or focus |
|
|
29
|
+
| Keyboard traversal | [Windows](windows-interaction.md) | Reach actions and move predictably within controls | Follow the chosen web semantic pattern; visible controls remain operable | Tab/reverse traversal, inner navigation, editing, dismissal |
|
|
30
|
+
| Shortcuts | [Windows](windows-interaction.md) | Efficient access to a named command | OS/browser-reserved keys may be unavailable; retain a visible command | Reserved key path, disabled command, active text editor |
|
|
31
|
+
| Multimodal feedback | [Apple](apple-interaction.md) | Communicate cause and result through available channels | Haptics/audio may be unavailable or inappropriate; retain essential visual/text feedback | Muted/unavailable channels and the actual target device |
|
|
32
|
+
| Translucent treatment | [Apple](apple-interaction.md) | Keep foreground hierarchy understandable | Native materials do not translate to CSS equivalence; an opaque treatment is a candidate fallback | Actual contrast/readability across backgrounds and preferences |
|
|
33
|
+
|
|
34
|
+
## Target Evidence Matrix
|
|
35
|
+
|
|
36
|
+
| Axis | Record | What a missing check means |
|
|
37
|
+
| --- | --- | --- |
|
|
38
|
+
| Runtime | Exact browser/app engine, OS, relevant library/SDK versions | No claim beyond the exercised runtime |
|
|
39
|
+
| Input | Keyboard, pointer, touch, controller, assistive technology as claimed | An untested mode is `not_run`, not a pass |
|
|
40
|
+
| Preferences | Motion, contrast, text sizing, other relevant settings | Source support does not prove local handling |
|
|
41
|
+
| Navigation | Direct entry, return, cancellation, nested overlays | A successful happy path leaves recovery unproven |
|
|
42
|
+
| Capability | Available, unavailable, denied, interrupted where relevant | Fallback behavior must be exercised independently |
|
|
43
|
+
| State | Normal, pending, failed, empty, stale or removed data | A screenshot of default state is insufficient |
|
|
44
|
+
|
|
45
|
+
## Scroll Story Target Cases
|
|
46
|
+
|
|
47
|
+
Use [Motion's scroll-story contract](../motion/interaction-recipes.md#scroll-driven-story) when the target is a browser scene controlled by scrolling. Record CSS timeline support at the tested version, feature-unavailable fallback, wheel/trackpad/keyboard/touch input actually used, browser history restoration, and resize/orientation changes. Viewport emulation is evidence of layout at that size, not of mobile hardware or touch physics.
|
|
48
|
+
|
|
49
|
+
Require readable static chapters when the stage cannot fit. Test reduced-motion changes during an active scene, not just the startup preference. The [Scroll Story Lab](../examples/scroll-story/README.md) supplies a target implementation and separates its observed results from untested runtime/device cases.
|
|
50
|
+
|
|
51
|
+
## Fixed-Viewport Scene Target Cases
|
|
52
|
+
|
|
53
|
+
The [scene-navigation contract](../motion/interaction-recipes.md#full-viewport-scene-navigation) adds input arbitration to scene rendering. Test wheel bursts and momentum tails, reverse gestures, horizontal input, modifier zoom, native copy scrolling at both edges, keyboard editing, visible navigation, direct hashes, and browser Back/Forward. Touch testing includes swipe start outside the owned art surface, cancellation, a second pointer, pinch zoom, and orientation changes.
|
|
54
|
+
|
|
55
|
+
The [worked example](../examples/scene-navigation/README.md) has desktop-emulated input evidence and an explicit reading escape. Physical trackpad behavior, browser chrome resizing on a phone, iOS Safari, Android, and assistive technology need separate actual-device runs. Never relabel CDP touch injection or a 375-pixel viewport as physical-device verification.
|
|
56
|
+
|
|
57
|
+
## Example Record
|
|
58
|
+
|
|
59
|
+
```yaml
|
|
60
|
+
concern: keyboard-traversal
|
|
61
|
+
source_guide: platform-guides/windows-interaction.md
|
|
62
|
+
target: # actual browser, OS, widget semantics and versions
|
|
63
|
+
decision: # the target interaction contract
|
|
64
|
+
fallback: # complete visible operation path
|
|
65
|
+
source_rechecked: # date and exact official locator
|
|
66
|
+
actual_result: not_run
|
|
67
|
+
limitations: # untested inputs, runtimes, and capabilities
|
|
68
|
+
consumer_reference: not_applicable
|
|
69
|
+
consumer_reference_reason: This blank comparison selects no consumer record.
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Opinionated Guidance
|
|
73
|
+
|
|
74
|
+
Test fallback paths deliberately rather than waiting for accidental unsupported hardware. A successful fallback should preserve the task, though its presentation may differ.
|
|
75
|
+
|
|
76
|
+
## Platform-Specific Guidance
|
|
77
|
+
|
|
78
|
+
Apple, Android, and Windows guide pages own their dated official-source sets. Recheck them for native claims and separately verify the target runtime. Game-engine adaptation routes to [Game UI](../game-ui/index.md).
|
|
79
|
+
|
|
80
|
+
## Unsupported Absolutes
|
|
81
|
+
|
|
82
|
+
No row claims visual, semantic, accessibility, or performance equivalence between platforms. No generic “mobile” or “desktop” label replaces the actual runtime/input matrix.
|
|
83
|
+
|
|
84
|
+
## Verification Contract
|
|
85
|
+
|
|
86
|
+
An adaptation is reviewable when each selected row has a target decision, fallback, observed result, and limitation. Missing capability or runtime evidence stays explicit. Review when a linked source, target capability, or failed user task changes the mapping.
|
|
87
|
+
|
|
88
|
+
The [Interaction Lab verification](../examples/domain-interactions/verification.md) records a macOS browser target for keyboard traversal, modal cancellation, history, content resizing, and reduced-motion preference changes. Small browser viewports are not mobile-device evidence; Android, iOS/iPadOS, Windows-native APIs, haptics, controllers, and assistive technology remain outside that run.
|
|
89
|
+
|
|
90
|
+
## Source, License, And Attribution
|
|
91
|
+
|
|
92
|
+
Locally authored comparison matrix derived from this domain's linked source reviews. Platform owners retain authority over their own conventions; no upstream table is reproduced.
|
|
93
|
+
|
|
94
|
+
## IA Navigation
|
|
95
|
+
|
|
96
|
+
Parent: [Platform Guides](index.md).
|
|
97
|
+
Next: [Platform Adaptation Workflow](adaptation-workflow.md).
|
package/platform-guides/index.md
CHANGED
|
@@ -8,6 +8,17 @@ In scope: comparative vocabulary, interaction questions, current official-source
|
|
|
8
8
|
|
|
9
9
|
Out of scope: affiliation, brand imitation, unsupported platform equivalence, and authority over web standards, accessibility, or Layout contracts.
|
|
10
10
|
|
|
11
|
+
## Start Here
|
|
12
|
+
|
|
13
|
+
| Task | Route |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| Record native facts, target decisions, and fallbacks. | [Platform Adaptation Workflow](adaptation-workflow.md) |
|
|
16
|
+
| Compare Back and adaptive window behavior. | [Android Interaction As A Comparative Reference](android-interaction.md) |
|
|
17
|
+
| Compare keyboard, focus, and commands. | [Windows Interaction As A Comparative Reference](windows-interaction.md) |
|
|
18
|
+
| Select target and fallback verification cases. | [Platform Compatibility Matrix](compatibility-matrix.md) |
|
|
19
|
+
|
|
20
|
+
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.
|
|
21
|
+
|
|
11
22
|
## Available Guides
|
|
12
23
|
|
|
13
24
|
- [Apple Interaction As A Comparative Reference](apple-interaction.md) turns selected interaction themes into questions for web adaptation without claiming platform equivalence.
|
|
@@ -18,9 +29,9 @@ A platform guide names the platform, source authority, version or review date, w
|
|
|
18
29
|
|
|
19
30
|
## Domain Contract
|
|
20
31
|
|
|
21
|
-
See [StyleGallery Domains](../DOMAINS.md) for lifecycle, provenance, page membership, and
|
|
32
|
+
See [StyleGallery Domains](../DOMAINS.md) for lifecycle, provenance, page membership, and staleness rules.
|
|
22
33
|
|
|
23
34
|
## IA Navigation
|
|
24
35
|
|
|
25
36
|
Parent: [StyleGallery](../index.md).
|
|
26
|
-
Next: [
|
|
37
|
+
Next: [Platform Adaptation Workflow](adaptation-workflow.md).
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: Domain Guide
|
|
3
|
+
title: Windows Interaction As A Comparative Reference
|
|
4
|
+
description: Source-bounded Windows keyboard, focus, and command guidance with web adaptation cases.
|
|
5
|
+
domain: platform-guides
|
|
6
|
+
lifecycle: experimental
|
|
7
|
+
provenance_kind: local
|
|
8
|
+
platform: Windows applications and WinUI
|
|
9
|
+
platform_version: dated Microsoft Learn documentation; target Windows App SDK version required
|
|
10
|
+
reviewed_on: 2026-09-08
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Windows Interaction As A Comparative Reference
|
|
14
|
+
|
|
15
|
+
Primary role: Windows platform comparison guide.
|
|
16
|
+
|
|
17
|
+
## Repository Boundary
|
|
18
|
+
|
|
19
|
+
This guide compares keyboard and command behavior in Windows application guidance. It supplies no Fluent visual defaults and does not imply that WinUI focus APIs exist in the browser. The consumer records its actual Windows, SDK, browser, and control-library versions.
|
|
20
|
+
|
|
21
|
+
## Reusable Method
|
|
22
|
+
|
|
23
|
+
Start with the [Adaptation Workflow](adaptation-workflow.md). Identify the command, navigation group, and focus scope before choosing a shortcut or implementation API.
|
|
24
|
+
|
|
25
|
+
## Source-Bounded Conventions
|
|
26
|
+
|
|
27
|
+
| Concern | Official source and bounded fact | Transferable question |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| Sequential and inner navigation | [Keyboard interactions](https://learn.microsoft.com/en-us/windows/apps/design/input/keyboard-interactions) distinguishes moving between controls from moving within some composite controls | Is the key moving between tasks, among items, or editing a value? |
|
|
30
|
+
| Initial focus | The same source discusses logical starting focus and avoiding an initially focused destructive action | Does the entry target help the intended task without accidental destructive activation? |
|
|
31
|
+
| Focus movement | [Focus navigation](https://learn.microsoft.com/en-us/windows/apps/develop/input/focus-navigation) documents native focus navigation and control behavior | Can focus reach every required action, and where does it return after dismissal? |
|
|
32
|
+
| Commands | [Keyboard accelerators](https://learn.microsoft.com/en-us/windows/apps/develop/input/keyboard-accelerators) describes command invocation and scoping in Windows applications | Does a shortcut invoke the same command and availability rules as its visible control? |
|
|
33
|
+
|
|
34
|
+
Source set reviewed 2026-09-08. These are platform guidance and API documentation, not evidence that a consumer implements them.
|
|
35
|
+
|
|
36
|
+
## Worked Adaptation: Searchable Command Surface
|
|
37
|
+
|
|
38
|
+
Task: find and invoke commands without a pointer. Begin with the [Command Surface recipe](../recipes/command-surface.md) for spatial composition. Use the correct web widget semantics for the chosen design; a native control's tab-stop policy should not be copied onto unrelated HTML elements.
|
|
39
|
+
|
|
40
|
+
Define the opening control, query input, result navigation, selected command, disabled-command explanation, and dismissal target. Command buttons and shortcuts share one operation owner. Editing text must not accidentally invoke a global command. A shortcut is supplemental: the visible action remains available when that key combination is reserved by the browser or OS.
|
|
41
|
+
|
|
42
|
+
| Test | Expected target behavior |
|
|
43
|
+
| --- | --- |
|
|
44
|
+
| Open with keyboard | Focus reaches the declared entry target |
|
|
45
|
+
| Search to zero results | Query remains editable and dismissal remains available |
|
|
46
|
+
| Attempt an unavailable command | No operation; availability is explained consistently |
|
|
47
|
+
| Dismiss after invoker removal | Focus reaches a documented surviving target |
|
|
48
|
+
| Use a reserved/unavailable shortcut | The visible control still performs the task |
|
|
49
|
+
|
|
50
|
+
Actual result: `not_run`. This is a fictional web adaptation contract.
|
|
51
|
+
|
|
52
|
+
## Opinionated Guidance
|
|
53
|
+
|
|
54
|
+
Centralize command availability so menu, button, and shortcut do not disagree. Do not add shortcuts before checking focus, text editing, and the complete visible operation path.
|
|
55
|
+
|
|
56
|
+
## Platform-Specific Guidance
|
|
57
|
+
|
|
58
|
+
WinUI accelerators and focus APIs have native routing rules. Web controls use HTML, the selected ARIA pattern where necessary, browser defaults, and the application's focus scope. See the [shared accessibility evidence gate](../quality/gates/accessibility-evidence.md) for the required evidence boundary.
|
|
59
|
+
|
|
60
|
+
## Unsupported Absolutes
|
|
61
|
+
|
|
62
|
+
Arrow keys are not a replacement for Tab in every UI. A Windows shortcut is not safe to intercept globally in every browser. A working pointer flow does not prove keyboard operation.
|
|
63
|
+
|
|
64
|
+
## Verification Contract
|
|
65
|
+
|
|
66
|
+
Verify entry, traversal, command invocation, text editing, cancellation, disabled state, and focus restoration on every claimed runtime/input. Include a missing invoker and nested surface. Review on Windows SDK, browser, source guidance, or command-routing changes.
|
|
67
|
+
|
|
68
|
+
## Source, License, And Attribution
|
|
69
|
+
|
|
70
|
+
Locally authored synthesis of the official Microsoft sources linked above, rechecked 2026-09-08. No upstream examples, control code, or visual assets are copied. `consumer_reference: not_applicable` because no consumer implementation record is selected.
|
|
71
|
+
|
|
72
|
+
## IA Navigation
|
|
73
|
+
|
|
74
|
+
Parent: [Platform Guides](index.md).
|
|
75
|
+
Next: [Platform Compatibility Matrix](compatibility-matrix.md).
|