stylegallery 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/DOMAINS.md +11 -9
  2. package/GOVERNANCE.md +7 -1
  3. package/README.md +18 -0
  4. package/consumer-reference/agent-native/v2/admission-policy.json +71 -1
  5. package/consumer-reference/agent-native/v2/material-registry.json +1 -1
  6. package/consumer-reference/agent-native/v2/schema/admission-policy.schema.json +2 -2
  7. package/design-engineering/component-contract.md +98 -0
  8. package/design-engineering/decision-tree.md +69 -0
  9. package/design-engineering/index.md +12 -2
  10. package/design-engineering/worked-examples.md +127 -0
  11. package/design-terminology/comparison-workflow.md +98 -0
  12. package/design-terminology/conflict-cases.md +42 -53
  13. package/design-terminology/index.md +13 -5
  14. package/design-terminology/relation-types.md +12 -6
  15. package/design-terminology/source-vocabularies.md +17 -3
  16. package/game-ui/decision-tree.md +81 -0
  17. package/game-ui/index.md +11 -1
  18. package/game-ui/screen-recipes.md +101 -0
  19. package/game-ui/verification-workflow.md +100 -0
  20. package/index.md +8 -0
  21. package/log.md +38 -0
  22. package/motion/decision-tree.md +70 -0
  23. package/motion/index.md +14 -2
  24. package/motion/interaction-recipes.md +164 -0
  25. package/motion/motion-brief.md +125 -0
  26. package/motion/review-workflow.md +8 -0
  27. package/motion/vocabulary.md +2 -2
  28. package/package.json +15 -1
  29. package/platform-guides/adaptation-workflow.md +76 -0
  30. package/platform-guides/android-interaction.md +74 -0
  31. package/platform-guides/apple-interaction.md +9 -1
  32. package/platform-guides/compatibility-matrix.md +97 -0
  33. package/platform-guides/index.md +13 -2
  34. package/platform-guides/windows-interaction.md +75 -0
  35. package/recipes/homepage.md +8 -0
@@ -0,0 +1,98 @@
1
+ ---
2
+ type: Domain Guide
3
+ title: Component Contract
4
+ description: Define product component semantics, states, events, asynchronous ownership, and verification before visual treatment.
5
+ domain: design-engineering
6
+ lifecycle: experimental
7
+ provenance_kind: local
8
+ ---
9
+
10
+ # Component Contract
11
+
12
+ Primary role: product component implementation handoff.
13
+
14
+ ## Repository Boundary
15
+
16
+ This contract describes consumer-owned behavior. It does not create a shared component library, new Layout primitive, or default visual values. Existing profile records have their own closed schema; this planning template cannot substitute for their evidence records.
17
+
18
+ ## Reusable Method
19
+
20
+ Start with semantic HTML or the platform's native control. Name the public inputs, emitted events, internal state, and owner of persisted data. Then describe each transition and its observable outcome. Use the [Worked Examples](worked-examples.md) to check common failure paths.
21
+
22
+ ## Contract Template
23
+
24
+ | Field | Required answer |
25
+ | --- | --- |
26
+ | Task | The user action and the outcome the component supports |
27
+ | Semantics | Element/control, accessible name, description, value, relationships |
28
+ | Inputs | Data and callbacks, required/optional values, identity and revision |
29
+ | Outputs | Events, payload meaning, when they are emitted, who commits the result |
30
+ | State | Initial, active, selected, disabled, pending, empty, error, completed as applicable |
31
+ | State ownership | Controlled inputs versus internal temporary state; reconciliation rule |
32
+ | Input and focus | Keyboard, pointer, touch, focus entry/return and unavailable actions |
33
+ | Async ownership | Request identity, duplicate action policy, stale result handling, cancellation |
34
+ | Content | Empty, long, localized, unbroken and unavailable data |
35
+ | Spatial composition | Layout source, parent constraints, scroll owner and overflow behavior |
36
+ | Presentation | Product-owned values, density, visual hierarchy and optional motion brief |
37
+ | Lifecycle | Creation, navigation, rerender, removal, event/listener cleanup |
38
+ | Evidence | Expected behavior, actual result, runtime, source revision and artifacts |
39
+ | Handoff | `consumer_reference` record or `not_applicable` with a reason |
40
+
41
+ ## Worked Contract: Save Action
42
+
43
+ Task: persist the current editable document. The form owns the draft; the save operation owns a submitted snapshot; the server owns the persisted result. A success for snapshot A must not mark newer draft B as saved.
44
+
45
+ | Current state | Event | Next state | Required effect |
46
+ | --- | --- | --- | --- |
47
+ | Clean | Edit | Dirty | Keep entered values; mark unsaved changes |
48
+ | Dirty | Submit valid draft A | Saving A | Capture A and a request identity; acknowledge pending |
49
+ | Saving A | Submit again | Saving A | Apply the declared duplicate policy; this example ignores the duplicate |
50
+ | Saving A | Edit to B | Saving A with dirty B | Preserve B and distinguish it from submitted A |
51
+ | Saving A | Matching success | Clean if draft still A; otherwise dirty B | Record persisted A without discarding B |
52
+ | Saving A | Matching failure | Dirty current draft with error | Keep values and offer retry |
53
+ | Any | Stale response | Unchanged | Ignore responses outside the active operation |
54
+ | Any | Unmount/navigation | Disposed | Stop UI updates; cancellation does not imply the server rolled back |
55
+
56
+ Implementation sketch, independent of framework:
57
+
58
+ ```text
59
+ on submit:
60
+ if a request is active: return
61
+ validate the current draft
62
+ copy the draft into submittedSnapshot
63
+ create requestIdentity
64
+ start persistence(requestIdentity, submittedSnapshot)
65
+ on result(identity, result):
66
+ if disposed or identity is not active: return
67
+ clear the active request
68
+ if successful: set persistedSnapshot to submittedSnapshot
69
+ else: expose a recoverable error
70
+ derive dirty state by comparing current draft with persistedSnapshot
71
+ ```
72
+
73
+ A real application also defines revision conflicts, server normalization, and retry semantics. The sketch is not a distributed consistency protocol. Its handoff is `consumer_reference: not_applicable` because this fictional example selects no consumer profile or conformance record.
74
+
75
+ ## Opinionated Guidance
76
+
77
+ Use state names that expose meaningful differences. Two booleans can accidentally permit “saved and failed”; a state transition table helps reveal impossible combinations. Do not merge input validity, request state, and persisted revision into one visual status.
78
+
79
+ ## Platform-Specific Guidance
80
+
81
+ For web forms, preserve native label and form relationships. Validate custom semantics against the applicable [accessibility evidence gate](../quality/gates/accessibility-evidence.md). Framework scheduling, request abort behavior, and server idempotency require separate implementation evidence.
82
+
83
+ ## Unsupported Absolutes
84
+
85
+ A state table does not prove accessibility, successful persistence, race freedom, or device coverage. Cancelling a client request does not prove its remote side effects stopped.
86
+
87
+ ## Verification Contract
88
+
89
+ Resolve responses out of order, edit during saving, fail then retry, activate repeatedly, and remove the component before completion. Inspect both persisted and displayed values. Include keyboard-only operation, long content, and constrained parents. Record actual outcomes; the table above is an unexecuted reference contract. Review when a public input, event, or state meaning changes.
90
+
91
+ ## Source, License, And Attribution
92
+
93
+ Locally authored contract and pseudocode; no framework or upstream implementation is copied. Shared quality gates own evidence admissibility.
94
+
95
+ ## IA Navigation
96
+
97
+ Parent: [Design Engineering](index.md).
98
+ Next: [Design Engineering Worked Examples](worked-examples.md).
@@ -0,0 +1,69 @@
1
+ ---
2
+ type: Domain Guide
3
+ title: Design Engineering Decision Tree
4
+ description: Route product craft work from the uncertain decision to a contract, example, and appropriate evidence.
5
+ domain: design-engineering
6
+ lifecycle: experimental
7
+ provenance_kind: local
8
+ ---
9
+
10
+ # Design Engineering Decision Tree
11
+
12
+ Primary role: product implementation planning route.
13
+
14
+ ## Repository Boundary
15
+
16
+ This route turns a product request into a bounded implementation decision. It owns neither shared quality policy nor a default design system. Use the existing Layout corpus for geometry and Motion for temporal behavior.
17
+
18
+ ## Reusable Method
19
+
20
+ 1. Write the user's action and the expected result in one sentence.
21
+ 2. Identify what is uncertain: content, structure, state, identity, platform behavior, or perception.
22
+ 3. Select the route below and produce its named artifact.
23
+ 4. Implement the smallest slice containing the risky state, including failure and recovery.
24
+ 5. Verify the observable and record the remaining limitation using [Interface Craft Decisions](interface-craft.md).
25
+
26
+ ## Task Routes
27
+
28
+ | Uncertain decision | Primary route | Artifact to produce |
29
+ | --- | --- | --- |
30
+ | What should this screen contain? | [Webpage Generation Workflow](../guides/webpage-generation-workflow.md) | Content inventory and task model |
31
+ | What owns size, flow, and scroll? | [Layout Planning Guide](../GUIDE.md) | Layout brief and pattern composition |
32
+ | What happens after activation or failure? | [Component Contract](component-contract.md) | State, event, focus, and asynchronous ownership tables |
33
+ | How should a form, search, or destructive action recover? | [Worked Examples](worked-examples.md) | Scenario-specific acceptance cases |
34
+ | Does a product detail serve the task? | [Interface Craft Decisions](interface-craft.md) | Claim with an observable and evidence boundary |
35
+ | How do distinct identities use one Layout contract? | [Reference Profiles](reference-profiles/index.md) | Explicit profile selection and value ownership |
36
+ | Will an existing consumer survive migration? | [Consumer Migration Readiness](consumer-migration-readiness.md) | Thirteen-dimension consumer-owned conformance record |
37
+ | What should move and why? | [Motion Decision Tree](../motion/decision-tree.md) | Motion brief with interruption policy |
38
+ | Is a platform convention transferable? | [Platform Adaptation Workflow](../platform-guides/adaptation-workflow.md) | Native fact, web mapping, fallback, and runtime matrix |
39
+
40
+ ## Worked Intake
41
+
42
+ Request: “Make saving settings feel responsive.” The risky decision is whether acknowledgement means persistence. Begin with a component contract: clean, dirty, saving, saved, and failed. A saving label acknowledges submission; the saved state waits for the persistence response. Preserve unsaved edits when requests fail. Only then evaluate a completion treatment through Motion. This order exposes duplicate writes and lost edits before visual review.
43
+
44
+ An acceptance statement can be: “A failed save leaves the entered values available for retry.” “Feels responsive” remains a human perception hypothesis until measured in the relevant task.
45
+
46
+ ## Opinionated Guidance
47
+
48
+ Prototype the uncertain state rather than an entire polished screen. A good first slice includes the initiating action, its failure, and a recovery path. Add complexity when it resolves an observed limitation.
49
+
50
+ ## Platform-Specific Guidance
51
+
52
+ Distinguish browser, OS, assistive technology, framework, and component library versions in evidence. A library's state name is an implementation detail, not the user's task definition.
53
+
54
+ ## Unsupported Absolutes
55
+
56
+ No selected framework, profile, token set, or prototype proves product quality. Component completion does not demonstrate migration readiness for an entire consumer.
57
+
58
+ ## Verification Contract
59
+
60
+ The route succeeds when a reviewer can find the decision owner, artifact, failure case, and evidence needed without guessing. Verify one ordinary, one exceptional, and one interrupted task. Revisit when a route sends the reader to the wrong domain or cannot produce a testable acceptance statement.
61
+
62
+ ## Source, License, And Attribution
63
+
64
+ Locally authored routing and settings example. Linked repository documents remain authoritative for their own contracts.
65
+
66
+ ## IA Navigation
67
+
68
+ Parent: [Design Engineering](index.md).
69
+ Next: [Component Contract](component-contract.md).
@@ -8,6 +8,16 @@ In scope: purpose, frequency, interaction detail, implementation review, prototy
8
8
 
9
9
  Out of scope: a second universal principle set, unsupported claims of beauty or adoption, and overrides of semantic, accessibility, Layout, or shared quality contracts.
10
10
 
11
+ ## Start Here
12
+
13
+ | Task | Route |
14
+ | --- | --- |
15
+ | Route the uncertain product decision. | [Design Engineering Decision Tree](decision-tree.md) |
16
+ | Specify semantics, state, requests, and focus. | [Component Contract](component-contract.md) |
17
+ | Apply settings, search, and destructive-action contracts. | [Design Engineering Worked Examples](worked-examples.md) |
18
+
19
+ 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.
20
+
11
21
  ## Documents
12
22
 
13
23
  - [Interface Craft Decisions](interface-craft.md) connects product purpose, implementation detail, and verification without treating taste as proof.
@@ -20,9 +30,9 @@ This domain proposes product-layer questions. [Quality Gates](../quality/index.m
20
30
 
21
31
  ## Domain Contract
22
32
 
23
- See [StyleGallery Domains](../DOMAINS.md) for lifecycle, provenance, page membership, and promotion rules.
33
+ See [StyleGallery Domains](../DOMAINS.md) for lifecycle, provenance, page membership, and staleness rules.
24
34
 
25
35
  ## IA Navigation
26
36
 
27
37
  Parent: [StyleGallery](../index.md).
28
- Next: [Consumer Migration Readiness](consumer-migration-readiness.md).
38
+ Next: [Design Engineering Decision Tree](decision-tree.md).
@@ -0,0 +1,127 @@
1
+ ---
2
+ type: Domain Guide
3
+ title: Design Engineering Worked Examples
4
+ description: Apply component contracts to settings, asynchronous search, and destructive list actions with explicit recovery cases.
5
+ domain: design-engineering
6
+ lifecycle: experimental
7
+ provenance_kind: local
8
+ ---
9
+
10
+ # Design Engineering Worked Examples
11
+
12
+ Primary role: product interaction recipe collection.
13
+
14
+ ## Repository Boundary
15
+
16
+ These fictional examples connect decisions to expected behavior. They are neither shipped components nor captured product evidence. Values and presentation belong to the consumer; the referenced Layout recipes retain their spatial boundaries.
17
+
18
+ The separate [Interaction Lab](../examples/domain-interactions/README.md) implements the save and search contracts as a local web prototype. Its [browser observations](../examples/domain-interactions/verification.md) apply to that exact example and source snapshot; they do not prove a consumer backend or the destructive-action recipe below.
19
+
20
+ ## Reusable Method
21
+
22
+ Choose a matching user task, adapt its state ownership through the [Component Contract](component-contract.md), and execute the listed failure cases in the consuming application. The decision is incomplete until expected and actual results are recorded separately.
23
+
24
+ ## Settings With Explicit Save
25
+
26
+ Task: edit preferences, inspect changes, and save intentionally. Compose the [SaaS Settings recipe](../recipes/saas-settings.md); let its selected patterns own page structure and scrolling. The form owns the editable draft, the operation owns the submitted snapshot, and persistence determines success.
27
+
28
+ Keep field errors beside their inputs and provide a route to the first relevant error. On network failure, retain all entered values. A successful save of an older snapshot must leave subsequent edits dirty. If leaving the screen can lose changes, define discard/cancel/save behavior and what happens if saving fails.
29
+
30
+ | Test | Expected behavior |
31
+ | --- | --- |
32
+ | Submit missing required input | Expose the error and retain other values |
33
+ | Submit, edit again, then receive success | Confirm the submitted snapshot; preserve later edits |
34
+ | Fail and retry | Keep the draft; issue the retry under the declared request policy |
35
+ | Cancel navigation with dirty data | Stay on the form with the same draft and a usable focus target |
36
+
37
+ Evidence still needed: keyboard/error announcement, persistence responses, and source-bound runtime capture. A prototype cannot prove real data was saved.
38
+
39
+ ## Search With Detail Selection
40
+
41
+ Task: search a collection and inspect an item without losing the search context. Compose [List Detail](../recipes/list-detail.md). Separate query text, submitted query, active request, results, and selected item identity. Displayed detail must name the selected item even when the result set refreshes.
42
+
43
+ Keep typing responsive; a request for an older query cannot replace a newer result. Distinguish “no results” from loading and failure. On a tight surface, preserve selection and query when navigating between list and detail. If the selected item disappears, choose a documented empty detail or next-item policy instead of silently showing stale data.
44
+
45
+ | Test | Expected behavior |
46
+ | --- | --- |
47
+ | Submit A, then B; resolve B before A | Results remain for B after A arrives |
48
+ | Receive zero results | Show the submitted query and a recovery action |
49
+ | Resize with detail selected | Preserve selection and query; keep focus on a logical available target |
50
+ | Remove the selected item remotely | Explain its unavailability or choose the documented next target |
51
+
52
+ Evidence still needed: out-of-order response trace, selection identity, tight/wide rendered states, and input coverage. Motion is optional; use [Reorder and Filter](../motion/interaction-recipes.md#reorder-and-filter) only when it communicates stable identity.
53
+
54
+ ## Destructive Action In A List
55
+
56
+ Task: remove a selected item with understandable consequences. Separate the initiating control, decision surface, pending operation, and final list update. Choose confirmation or undo from actual reversibility and product requirements. Do not offer undo when the backend cannot restore the item.
57
+
58
+ Name the affected item and scope. During pending deletion, prevent unintended duplicate operations according to the contract. Failure preserves the item and a recovery path. On success, return focus to an appropriate neighboring item or list heading if the invoker was removed. A dialog's visual exit must not leave a blocker behind.
59
+
60
+ | Test | Expected behavior |
61
+ | --- | --- |
62
+ | Cancel confirmation | No deletion; return to the invoker |
63
+ | Fail the operation | Explain failure and preserve the item |
64
+ | Succeed while filters change | Remove by stable identity, not old row position |
65
+ | Remove the final item | Present an empty state and a logical focus destination |
66
+
67
+ Evidence still needed: actual operation result, focus trace, dialog semantics, and recovery behavior. Use [Modal Transition](../motion/interaction-recipes.md#modal-transition) only for optional presentation.
68
+
69
+ ## Implementation Handoff
70
+
71
+ ```yaml
72
+ example: # settings-save, search-detail, or destructive-list-action
73
+ consumer_reference: not_applicable
74
+ consumer_reference_reason: These fictional examples select no consumer-owned profile or evidence record.
75
+ layout_source: # the selected recipe and the consumer's pinned revision
76
+ state_owner: # component, screen, and persistence responsibilities
77
+ acceptance_cases: # adapted rows above
78
+ observed_results: not_run
79
+ remaining_evidence: # actual runtime, input, device, and user evidence
80
+ ```
81
+
82
+ ## Product Story And Media Handoff
83
+
84
+ Start with an observation sheet for a product homepage: section job, reading order, scene boundaries, changing objects, media crop, and source-confidence level. Record an unknown rendering mechanism as unknown; cinematic appearance alone does not establish video, Canvas, WebGL, or a library.
85
+
86
+ | Decision | Product-owned record | Verification |
87
+ | --- | --- | --- |
88
+ | Typography and rhythm | Heading measure, copy length, spacing, contrast and image ratio | Real copy, text growth, narrow windows |
89
+ | Scene composition | Subject identity, crop and focal point, transparent layers, background transitions | First/middle/last and transition frames |
90
+ | Media export | Dimensions, frame order, codec/format, alpha, poster, source/license | Decode readiness and failed asset |
91
+ | Runtime budget | Download bytes, decoded-memory estimate, cache and concurrency limits | Slow requests, repeated reversal, idle work |
92
+ | Static equivalent | Every essential message in semantic HTML, explicit reading mode | No script, reduced motion, keyboard access |
93
+
94
+ Use the [Motion scene contract](../motion/interaction-recipes.md#scene-composition-contract) and compare the [Flow and headphones examples](../examples/scroll-story/README.md). Their shared controller demonstrates content substitution; both are related local examples and establish no independent adopter evidence. Their different typography, colors, and assets remain product choices.
95
+
96
+ Complete one representative scene before producing an entire video or image sequence. Review its composition and transition framing, then export at the target dimensions. A polished poster does not validate the intervening frames. This section is locally authored practice guidance, not adapted external visual expression.
97
+
98
+ ### Persistent Subject And Page Navigation
99
+
100
+ The Flow story keeps one device shell mounted while its screen content and pose change with progress. The [Scene Navigation example](../examples/scene-navigation/README.md) carries that same identity principle into a page whose chapter selection changes while document position stays fixed. Background, text, device pose, and screen layers share one state owner. These are local product treatments, not profile values or reusable Layout CSS.
101
+
102
+ For this page type, add an input map and URL/history contract to the visual handoff. Specify which surface owns wheel/swipe, which copy regions retain native scrolling, how a focused outgoing action is recovered, and how the user reaches ordinary reading. Review intermediate frames as well as the endpoints; semantic availability must not depend on a visual completion callback.
103
+
104
+ ## Opinionated Guidance
105
+
106
+ Preserve the user's work across recoverable failures. Status text should explain the real operation; motion and color alone are insufficient descriptions of what happened.
107
+
108
+ ## Platform-Specific Guidance
109
+
110
+ Native navigation, browser history, component libraries, and platform controls differ. Record the exact implementation of cancellation and focus return rather than copying a screenshot's apparent behavior.
111
+
112
+ ## Unsupported Absolutes
113
+
114
+ Confirmation is not always safer than undo. Optimistic updates are not always appropriate. A worked example does not certify a consumer migration or establish universal usability.
115
+
116
+ ## Verification Contract
117
+
118
+ Execute all adapted acceptance rows plus long text, empty content, relevant constraints and preferences, and every claimed input method. For a migration use the larger [Migration Readiness](consumer-migration-readiness.md) contract. Review these examples when an observed failure lacks an owner or recovery action.
119
+
120
+ ## Source, License, And Attribution
121
+
122
+ Locally authored scenarios and expected-result tables. Repository links provide spatial and evidence contracts, not proof that these scenarios have run.
123
+
124
+ ## IA Navigation
125
+
126
+ Parent: [Design Engineering](index.md).
127
+ Next: [Interface Craft Decisions](interface-craft.md).
@@ -0,0 +1,98 @@
1
+ ---
2
+ type: Domain Guide
3
+ title: Design Term Comparison Workflow
4
+ description: Resolve source-specific terminology questions with a scoped relation, explicit uncertainty, and a reusable handoff.
5
+ domain: design-terminology
6
+ lifecycle: experimental
7
+ provenance_kind: local
8
+ ---
9
+
10
+ # Design Term Comparison Workflow
11
+
12
+ Primary role: terminology lookup, authoring, and handoff route.
13
+
14
+ ## Repository Boundary
15
+
16
+ This workflow answers what two named sources mean and how those meanings relate. Internal naming still belongs to [Controlled Vocabulary](../guides/vocabulary.md). Implementation behavior belongs to its owning domain. Document retrieval does not execute a structured terminology query.
17
+
18
+ ## Reusable Method
19
+
20
+ 1. Capture the exact question, both labels, intended audience, and comparison scope.
21
+ 2. Identify each named source and [source kind](source-kinds.md). If either source is missing, report insufficient context.
22
+ 3. Check [Recorded Sources](source-vocabularies.md) and open the direct term locators in [Term Cases](conflict-cases.md).
23
+ 4. Record each label, concept, status, and version independently. Classify through [Concept Families](concept-families.md).
24
+ 5. Select a [relation type](relation-types.md), direction, and non-trivial boundary. A composed-of relationship is not automatically subtyping.
25
+ 6. Return the scoped result, term IDs, source recheck status, and a counterexample or missing observation.
26
+ 7. For a new record, update the source inventory and term/relation tables, then run their validator and fixtures.
27
+
28
+ ## Decision Table
29
+
30
+ | Situation | Result to produce |
31
+ | --- | --- |
32
+ | Identical labels, distinct meanings in two named sources | `same_label_different_meaning`, both meanings and the confusion risk |
33
+ | Shared region but source-specific features on both sides | `partial_overlap`, intersection and each side's difference |
34
+ | One form stores or consumes another concept | `implementation_representation`, representation first and the loss/addition boundary |
35
+ | Genuine set inclusion with a counterexample | `broader_than` or `narrower_than`, explicit direction |
36
+ | Meaning overlaps across versions or systems | `near_equivalent`, declared symmetry and the divergence axis |
37
+ | One source records a dated label replacement | `renamed_to`, same source and verifiable event |
38
+ | The proposed comparison uses incompatible axes | `not_comparable`, the axis mismatch |
39
+ | Source, scope, or meaning cannot be established | No relation recorded; say what evidence is missing |
40
+
41
+ ## Handoff Template
42
+
43
+ ```yaml
44
+ question: # the consumer's actual terminology question
45
+ term_ids: # exact identifiers from conflict-cases.md
46
+ relation_types: # closed types actually relied on
47
+ scope: # the recorded comparison scope
48
+ answer: # locally written scoped conclusion
49
+ boundary: # where substitution breaks
50
+ sources_rechecked: # date and source locators, or unverified
51
+ unknowns: # missing evidence, or none within the recorded scope
52
+ consumer_reference: not_applicable
53
+ consumer_reference_reason: This blank terminology template selects no consumer record.
54
+ ```
55
+
56
+ ## Worked Handoff
57
+
58
+ Question: can a CSS custom property be called the same thing as an interchange token?
59
+
60
+ Term identifiers: `css.custom-property`, `dtcg.token`. Relation type: `implementation_representation`, from the CSS representation to the token concept, in scope `token-to-css-output`. Answer: a custom property can consume a translated token value, but the runtime slot does not carry the full interchange record and can also store other values. Sources rechecked: the direct CSSWG and DTCG 2025.10 locators in [Term Cases](conflict-cases.md), 2026-09-08. Consumer reference: `not_applicable`, because this is a terminology explanation with no selected consumer record.
61
+
62
+ This judgment does not prove any actual converter preserves aliases, types, or metadata.
63
+
64
+ ## Reader Verification Tasks
65
+
66
+ | Task | Expected result | Failure signal |
67
+ | --- | --- | --- |
68
+ | Compare Figma and Carbon “Component” | Two source-specific records and `same_label_different_meaning` | One merged definition |
69
+ | Compare variable, token, and custom property | `partial_overlap` plus representation-first mapping | Equivalence or reversed representation direction |
70
+ | Compare the second DTCG draft with 2025.10 | Historical/current version scopes and no invented rename | Treating the draft as the current implementation contract |
71
+ | Compare “style guide” and “design system” without organizations | Insufficient context; request the two sources | Universal history or deprecation claim |
72
+
73
+ These are expected lookup outcomes. A maintainer records actual reader task results and participant identity separately before claiming findability evidence. Reader tasks are not a domain lifecycle prerequisite.
74
+
75
+ ## Opinionated Guidance
76
+
77
+ Resolve ambiguity explicitly; a qualified answer is more useful than an unsupported winner. Retain historical records with their own scopes when a current reading changes.
78
+
79
+ ## Platform-Specific Guidance
80
+
81
+ Direct source authority is limited to its named platform, system, tool, or specification. A platform terminology comparison does not establish a target's support for the named feature.
82
+
83
+ ## Unsupported Absolutes
84
+
85
+ Do not infer equivalence from an absent relation, source popularity, or shared spelling. A passing record validator cannot determine whether a semantic judgment is persuasive.
86
+
87
+ ## Verification Contract
88
+
89
+ Verify table consistency mechanically and meaning against both sources. Run the reader tasks for an actual findability claim. Re-review when either source revises its term or a reader encounters an unresolved ambiguity. The [domain lifecycle review](index.md#promotion-to-stable) follows the repository-owner policy separately from reader evidence.
90
+
91
+ ## Source, License, And Attribution
92
+
93
+ Locally authored workflow relying on the term identifiers and relation types declared above. Named sources were rechecked through the direct locators in Term Cases on 2026-09-08. No upstream definitional prose is reproduced.
94
+
95
+ ## IA Navigation
96
+
97
+ Parent: [Design Terminology](index.md).
98
+ Next: [Cross-System Term Cases](conflict-cases.md).
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  type: Domain Guide
3
3
  title: Cross-System Term Cases
4
- description: Typed-relation term records and three representative cross-system scenarios with non-equivalence boundaries.
4
+ description: Directly sourced terms and scoped relations for tool values, runtime representations, components, patterns, and historical formats.
5
5
  domain: design-terminology
6
6
  lifecycle: experimental
7
7
  ---
@@ -18,75 +18,64 @@ This page applies the typed relation model to recorded term records and conflict
18
18
 
19
19
  1. Name the sources in tension and the shared term.
20
20
  2. Record each side as a term record with source, kind, concept, status, and scope.
21
- 3. Assign one relation type per pair per scope.
21
+ 3. Assign one relation type per pair per explicit scope and declare its direction.
22
22
  4. Write the non-equivalence boundary: where substitution breaks.
23
23
  5. Stamp `reviewed_on`; re-verify when any involved source revises its term.
24
24
 
25
25
  ## Term Records
26
26
 
27
- | Term | Source (kind) | Concept | Status | Scope | Reviewed on |
28
- | --- | --- | --- | --- | --- | --- |
29
- | `figma.variable` | Figma (`design-tool`) | named-design-value | current | file- or collection-bound | 2026-08-18 |
30
- | `figma.mode` | Figma (`design-tool`) | theme-context | current | variable collection | 2026-08-18 |
31
- | `figma.component` | Figma (`design-tool`) | tool-instance-model | current | file-bound | 2026-08-18 |
32
- | `component.code` | Codebases (`design-system`) | ui-building-block | current | codebase | 2026-08-18 |
33
- | `component.system` | Published system units (`design-system`) | published-ui-building-block | current | system-wide | 2026-08-18 |
34
- | `dtcg.token` | DTCG Format (`specification`) | interchange-record | current | format-bound | 2026-08-18 |
35
- | `css.custom-property` | CSS (`web-platform`) | runtime-value-slot | current | document/runtime | 2026-08-18 |
36
- | `polaris.token` | Polaris (`design-system`) | published-design-value | current | system-wide | 2026-08-18 |
37
- | `carbon.pattern` | Carbon (`design-system`) | workflow-guidance | current | system-wide | 2026-08-18 |
38
- | `polaris.pattern` | Polaris (`design-system`) | workflow-guidance | current | system-wide | 2026-08-18 |
39
- | `stylegallery.pattern` | StyleGallery (`pattern-library`) | spatial-primitive | current | repository | 2026-08-18 |
40
- | `primitive` (shared usage) | multiple systems | base-layer-input | current | per-system | 2026-08-18 |
41
- | `hig.material` | Apple HIG (`platform-guideline`) | visual-surface-treatment | current | OS platforms | 2026-08-18 |
42
- | `material.system` | Google (`design-system`) | system-collection-name | current | brand-wide | 2026-08-18 |
43
- | `styleguide` (historical) | industry history | visual-style-governance | historical | org-wide | 2026-08-18 |
44
- | `designsystem` (general) | industry usage | layered-system-collection | current | org-wide | 2026-08-18 |
45
- | `foundation` (layer label) | Material, Fluent, Carbon, Polaris (`design-system`) | base-layer-label | current | per-system | 2026-08-18 |
46
- | `variant` (`mode`/`state`/`theme`) | tool, code, tokens | theme-variant-context | current | per-surface | 2026-08-18 |
27
+ | Term | Label | Source (kind) | Concept | Status | Scope | Reviewed on |
28
+ | --- | --- | --- | --- | --- | --- | --- |
29
+ | `figma.variable` | Variable | [Figma](https://help.figma.com/hc/en-us/articles/14506821864087-Overview-of-variables-collections-and-modes) (`design-tool`) | named-design-value | current | variable collection; dated help page | 2026-09-08 |
30
+ | `figma.mode` | Mode | [Figma](https://help.figma.com/hc/en-us/articles/14506821864087-Overview-of-variables-collections-and-modes) (`design-tool`) | value-context | current | values selected within a collection | 2026-09-08 |
31
+ | `figma.collection` | Collection | [Figma](https://help.figma.com/hc/en-us/articles/14506821864087-Overview-of-variables-collections-and-modes) (`design-tool`) | variable-organization | current | collection containing variables and modes | 2026-09-08 |
32
+ | `figma.component` | Component | [Figma](https://help.figma.com/hc/en-us/articles/360038662654-Guide-to-components-in-Figma) (`design-tool`) | tool-instance-model | current | reusable design object and its instances | 2026-09-08 |
33
+ | `dtcg.token` | Token | [DTCG](https://www.w3.org/community/reports/design-tokens/CG-FINAL-format-20251028/#design-token) (`specification`) | interchange-record | current | Format Module 2025.10 | 2026-09-08 |
34
+ | `dtcg.group` | Group | [DTCG](https://www.w3.org/community/reports/design-tokens/CG-FINAL-format-20251028/#groups) (`specification`) | token-organization | current | Format Module 2025.10 | 2026-09-08 |
35
+ | `dtcg.token.draft2` | Token | [DTCG](https://www.designtokens.org/tr/second-editors-draft/format/#design-token) (`specification`) | interchange-record | historical | Second Editors' Draft, 2022-06-14 | 2026-09-08 |
36
+ | `css.custom-property` | Custom property | [CSSWG](https://www.w3.org/TR/css-variables-1/#defining-variables) (`web-platform`) | runtime-value-slot | current | CSS Custom Properties Level 1 | 2026-09-08 |
37
+ | `carbon.component` | Component | [Carbon](https://carbondesignsystem.com/all-about-carbon/what-is-carbon/) (`design-system`) | published-ui-building-block | current | Carbon design and implementation resources | 2026-09-08 |
38
+ | `carbon.pattern` | Pattern | [Carbon](https://carbondesignsystem.com/patterns/overview/) (`design-system`) | workflow-guidance | current | Carbon patterns catalog | 2026-09-08 |
39
+ | `stylegallery.pattern` | Pattern | [StyleGallery](../layout/index.md) (`pattern-library`) | spatial-primitive | current | repository Layout corpus | 2026-09-08 |
40
+
41
+ The external locators and local Layout contract were rechecked on the dates shown. Current status is bounded by the named source/version, not a promise about every later release. Concept labels are local classification summaries.
47
42
 
48
43
  ## Recorded Relations
49
44
 
50
- | From | To | Type | Boundary |
51
- | --- | --- | --- | --- |
52
- | `figma.variable` | `dtcg.token` | `partial_overlap` | Exportable variables intersect the format; tool features such as modes exceed it, and not every variable is a portable token |
53
- | `figma.variable` | `css.custom-property` | `implementation_representation` | Variables can bind to custom properties in codegen; the binding is a representation path, not semantic identity |
54
- | `dtcg.token` | `css.custom-property` | `implementation_representation` | Custom properties are one serialization target for token values and also hold non-design values |
55
- | `polaris.token` | `dtcg.token` | `implementation_representation` | The format is one representation of Polaris's published values; the system, not the format, owns the values |
56
- | `figma.mode` | `variant` | `near_equivalent` | Modes, tool variants, component states, and token themes overlap as context switching but diverge in binding level |
57
- | `figma.component` | `component.code` | `same_label_different_meaning` | Tool instance model versus shipped code unit; swapping definitions breaks handoff |
58
- | `figma.component` | `component.system` | `same_label_different_meaning` | A tool construct versus a published system unit with API and support |
59
- | `carbon.pattern` | `stylegallery.pattern` | `partial_overlap` | Both are reusable solutions above atomic controls; Carbon patterns are workflow guidance, StyleGallery patterns are spatial primitives |
60
- | `carbon.pattern` | `polaris.pattern` | `near_equivalent` | Both name system-level workflow guidance with content and maturity differences |
61
- | `carbon.pattern` | `component.system` | `broader_than` | Within Carbon, patterns compose components into flows; the containment is system-scoped |
62
- | `primitive` | `foundation` | `near_equivalent` | Shared base-layer usage across systems with unstable extension: sometimes tokens, sometimes atoms |
63
- | `hig.material` | `material.system` | `same_label_different_meaning` | HIG names visual surface treatments; Material names a design system; the shared label is coincidence |
64
- | `styleguide` | `designsystem` | `partial_overlap` | Era- and org-scoped: a historical style guide governs visual style; a design system layers foundations, code, and governance; both labels coexist |
65
- | `foundation` (Material) | `foundation` | `near_equivalent` | Near-equivalent layer labels whose contents each system decides independently |
45
+ | From | To | Type | Scope | Direction | Boundary | Reviewed on |
46
+ | --- | --- | --- | --- | --- | --- | --- |
47
+ | `figma.variable` | `dtcg.token` | `partial_overlap` | value-interchange | symmetric | Exportable design values overlap; Figma prototype values need not be tokens, while the format has composite structures not supplied by one scalar variable | 2026-09-08 |
48
+ | `css.custom-property` | `dtcg.token` | `implementation_representation` | token-to-css-output | directional | A custom property can consume a translated token value; it also holds non-design values and does not preserve the entire token record | 2026-09-08 |
49
+ | `figma.collection` | `dtcg.group` | `partial_overlap` | value-organization | symmetric | Both organize named values; a Figma collection includes modes, while a format group can nest groups and carry format-specific metadata | 2026-09-08 |
50
+ | `figma.mode` | `dtcg.group` | `not_comparable` | context-versus-containment | symmetric | A mode selects value context; a group organizes token records. Containment alone does not choose the active context | 2026-09-08 |
51
+ | `figma.component` | `carbon.component` | `same_label_different_meaning` | handoff-artifact-identity | symmetric | A reusable tool object and a system-published UI unit share a label; a design instance is not by itself the system's implementation contract | 2026-09-08 |
52
+ | `carbon.pattern` | `stylegallery.pattern` | `partial_overlap` | reusable-interface-guidance | symmetric | Both describe reusable interface arrangements; Carbon includes task sequences and flows, while StyleGallery Layout covers spatial constraints without those interaction contracts | 2026-09-08 |
53
+ | `carbon.component` | `carbon.pattern` | `not_comparable` | catalog-unit-subtyping | symmetric | Composition is not set containment: a workflow can use components without being a broader class whose instances include component instances | 2026-09-08 |
54
+ | `dtcg.token.draft2` | `dtcg.token` | `near_equivalent` | versioned-token-concept | symmetric | The named-value interchange concept overlaps; the 2022 draft and 2025.10 format have different conformance details, so historical files need version-specific validation | 2026-09-08 |
66
55
 
67
- ## Scenario A: Component vs Pattern
56
+ ## Scenario A: Component Versus Pattern
68
57
 
69
- Question: is a component a pattern; at what level do `primitive`, `component`, and `pattern` sit?
58
+ Query phrasing: `component versus pattern terminology`, `difference between component and pattern across design systems`.
70
59
 
71
- Query phrasing covered: `component versus pattern terminology`, `difference between component and pattern across design systems`.
60
+ Distinguish Figma's design object from Carbon's published component before comparing either with a pattern. `figma.component` and `carbon.component` use `same_label_different_meaning`. Within Carbon, components participate in patterns; composition does not establish the set-theoretic `broader_than` relation. Carbon and StyleGallery patterns have `partial_overlap` within reusable interface guidance, with different behavioral boundaries.
72
61
 
73
- Answer shape: per system, not universal. In Carbon, `pattern` is `broader_than` its components within Carbon's scope; `carbon.pattern` and `stylegallery.pattern` share the reusable-solution region only as `partial_overlap`; `primitive` is `near_equivalent` to foundation terms with an unstable extension. A merged one-line definition would erase these boundaries.
62
+ ## Scenario B: Variable, Design Token, And CSS Custom Property
74
63
 
75
- ## Scenario B: Variable vs Design Token vs CSS Custom Property
64
+ Query phrasing: `figma variable design token custom property`.
76
65
 
77
- Question: are Figma's `variable`, DTCG's `token`, and CSS's `custom property` the same thing?
66
+ These are different labels from three source kinds. Their relation is not the same-label case. `figma.variable` and `dtcg.token` have `partial_overlap`; `css.custom-property` → `dtcg.token` is `implementation_representation`, with the representation first. A tool-to-code binding requires a consumer-owned translation; it does not establish equivalence or guarantee a lossless round trip.
78
67
 
79
- Query phrasing covered: `figma variable design token custom property`. This is the same-label different-meaning case.
68
+ ## Scenario C: Historical And Current Token Formats
80
69
 
81
- Answer shape: no single equivalence holds. The three terms come from different source kinds (`design-tool`, `specification`, web platform mechanism) with different concepts: named-design-value, interchange-record, runtime-value-slot. `figma.variable` → `dtcg.token` is `partial_overlap`; `dtcg.token` → `css.custom-property` is `implementation_representation`. Substitution breaks in both directions: tool modes do not survive export, and custom properties carry non-design values.
70
+ Query phrasing: `historical design token format`, `DTCG second editors draft versus 2025.10`.
82
71
 
83
- ## Scenario C: Style Guide vs Design System
72
+ The retained 2022 source describes a historical draft. The versioned 2025.10 source describes an intended-for-implementation format. Both remain records; a common label does not make their file contracts identical. The relation is `near_equivalent` for the concept, not `renamed_to`: the label did not change. Neither Community Group report is a W3C Recommendation.
84
73
 
85
- Question: is a `style guide` the same as a `design system`?
74
+ ## Scenario D: Style Guide Versus Design System
86
75
 
87
- Query phrasing covered: `style guide versus design system`.
76
+ Query phrasing: `style guide versus design system`.
88
77
 
89
- Answer shape: no; `partial_overlap` scoped by era and organization. The historical `styleguide` record carries `historical_scope`: org-wide visual governance, dominant before layered systems with code and tokens; `introduced_in`/`deprecated_in` are not globally datable because adoption is per-organization, which is exactly why the relation is not `renamed_to`. Named-source evidence: the four recorded design systems each publish foundations-plus-components-plus-guidance, which no cited historical style guide scope covers.
78
+ Result: insufficient context until an organization and dated source are named on both sides. “Industry history” cannot stand in for a specific historical style guide. Do not create a universal rename or deprecation event; request the two sources and then use the [Comparison Workflow](comparison-workflow.md).
90
79
 
91
80
  ## Opinionated Guidance
92
81
 
@@ -108,13 +97,13 @@ When a case involves a platform guideline source, cite that platform's surface a
108
97
 
109
98
  ## Verification Contract
110
99
 
111
- For each relation, verify both cited sources still use the recorded terms and meanings, the typed relation and boundary still hold, `reviewed_on` is current for the claim, and every case names at least two sources in tension.
100
+ Run `node scripts/validate-design-terminology.mjs --json` and its fixtures after editing. Verify both direct source locators, the comparison scope, direction, and boundary. The validator checks record shape and graph invariants; semantic accuracy still requires source review. Re-review when a named source changes the cited meaning.
112
101
 
113
102
  ## Source, License, And Attribution
114
103
 
115
- This page is a locally authored relation record with locally written summaries. Cited sources remain authoritative for their own definitions; no upstream definitional prose is reproduced.
104
+ Locally authored summaries and judgments, with direct source links per term. Rechecked 2026-09-08: Figma variables/components, DTCG 2025.10 and second draft, CSS Custom Properties Level 1, Carbon system/pattern pages, and the local Layout hub. No source prose or code samples are copied. This is an author source review, not independent semantic approval.
116
105
 
117
106
  ## IA Navigation
118
107
 
119
108
  Parent: [Design Terminology](index.md).
120
- Next: [StyleGallery Domains](../DOMAINS.md).
109
+ Next: [Design Term Comparison Workflow](comparison-workflow.md).