@3fn/core 13.0.0 → 14.1.0

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 (284) hide show
  1. package/.kiro/agents/ada-prompt.md +80 -132
  2. package/.kiro/agents/ada-prompt.md.attribution.json +45 -0
  3. package/.kiro/agents/ada.json +44 -59
  4. package/.kiro/agents/ada.json.attribution.json +13 -0
  5. package/.kiro/agents/data-prompt.md +83 -74
  6. package/.kiro/agents/data-prompt.md.attribution.json +53 -0
  7. package/.kiro/agents/data.json +31 -38
  8. package/.kiro/agents/data.json.attribution.json +13 -0
  9. package/.kiro/agents/kenya-prompt.md +83 -72
  10. package/.kiro/agents/kenya-prompt.md.attribution.json +53 -0
  11. package/.kiro/agents/kenya.json +27 -35
  12. package/.kiro/agents/kenya.json.attribution.json +13 -0
  13. package/.kiro/agents/leonardo-prompt.md +176 -234
  14. package/.kiro/agents/leonardo-prompt.md.attribution.json +45 -0
  15. package/.kiro/agents/leonardo.json +28 -36
  16. package/.kiro/agents/leonardo.json.attribution.json +13 -0
  17. package/.kiro/agents/lina-prompt.md +110 -151
  18. package/.kiro/agents/lina-prompt.md.attribution.json +53 -0
  19. package/.kiro/agents/lina.json +46 -59
  20. package/.kiro/agents/lina.json.attribution.json +13 -0
  21. package/.kiro/agents/sparky-prompt.md +89 -72
  22. package/.kiro/agents/sparky-prompt.md.attribution.json +53 -0
  23. package/.kiro/agents/sparky.json +37 -37
  24. package/.kiro/agents/sparky.json.attribution.json +13 -0
  25. package/.kiro/agents/stacy-prompt.md +74 -48
  26. package/.kiro/agents/stacy-prompt.md.attribution.json +45 -0
  27. package/.kiro/agents/stacy.json +28 -30
  28. package/.kiro/agents/stacy.json.attribution.json +13 -0
  29. package/.kiro/agents/thurgood-prompt.md +94 -138
  30. package/.kiro/agents/thurgood-prompt.md.attribution.json +45 -0
  31. package/.kiro/agents/thurgood.json +31 -35
  32. package/.kiro/agents/thurgood.json.attribution.json +13 -0
  33. package/.kiro/steering/AI-Collaboration-Principles.md +3 -3
  34. package/.kiro/steering/Civitas-System-Overview.md +7 -16
  35. package/.kiro/steering/DesignerPunk-Systems-Overview.md +6 -6
  36. package/.kiro/steering/Spec-Feedback-Protocol.md +2 -11
  37. package/.kiro/steering/Task-Completion-Protocol.md +98 -17
  38. package/.kiro/steering/core-goals.md +3 -3
  39. package/.kiro/steering/personal-note.md +1 -1
  40. package/.kiro/steering/start-up-tasks.md +17 -6
  41. package/application-mcp-server/src/index.ts +26 -0
  42. package/dist/ComponentTokens.android.kt +12 -12
  43. package/dist/ComponentTokens.ios.swift +12 -12
  44. package/dist/ComponentTokens.web.css +3 -3
  45. package/dist/DesignTokens.android.kt +1 -1
  46. package/dist/DesignTokens.dtcg.json +8 -5
  47. package/dist/DesignTokens.figma.json +2 -2
  48. package/dist/DesignTokens.ios.swift +1 -1
  49. package/dist/DesignTokens.web.css +1 -1
  50. package/dist/android/DesignTokens.android.kt +1 -1
  51. package/dist/blend/OklchBlendCalculator.js +1 -0
  52. package/dist/blend/ThemeAwareBlendUtilities.web.d.ts +13 -2
  53. package/dist/blend/ThemeAwareBlendUtilities.web.js +6 -1
  54. package/dist/browser/designerpunk.esm.js +36 -90
  55. package/dist/browser/designerpunk.esm.min.js +33 -36
  56. package/dist/browser/designerpunk.umd.js +36 -90
  57. package/dist/browser/designerpunk.umd.min.js +47 -50
  58. package/dist/browser/tokens.css +3 -3
  59. package/dist/build/tokens/defineComponentTokens.d.ts +10 -0
  60. package/dist/build/tokens/defineComponentTokens.js +26 -0
  61. package/dist/components/core/Avatar-Base/avatar.tokens.d.ts +21 -26
  62. package/dist/components/core/Avatar-Base/avatar.tokens.js +31 -34
  63. package/dist/components/core/Avatar-Base/index.d.ts +1 -1
  64. package/dist/components/core/Avatar-Base/index.js +2 -2
  65. package/dist/components/core/Avatar-Base/platforms/web/Avatar.web.js +24 -5
  66. package/dist/components/core/Button-CTA/examples/BasicUsage.d.ts +16 -28
  67. package/dist/components/core/Button-CTA/examples/BasicUsage.js +18 -43
  68. package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.d.ts +3 -15
  69. package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.js +9 -58
  70. package/dist/components/core/Button-CTA/types.d.ts +0 -24
  71. package/dist/components/core/Button-CTA/types.js +6 -0
  72. package/dist/components/core/Button-Icon/buttonIcon.tokens.d.ts +28 -14
  73. package/dist/components/core/Button-Icon/buttonIcon.tokens.js +35 -20
  74. package/dist/components/core/Input-Text-Base/types.d.ts +13 -1
  75. package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.js +11 -2
  76. package/dist/generators/DTCGFormatGenerator.js +8 -0
  77. package/dist/generators/TokenFileGenerator.js +7 -2
  78. package/dist/integration/BuildErrorHandler.js +2 -2
  79. package/dist/ios/DesignTokens.ios.swift +1 -1
  80. package/dist/mcp/application-mcp.js +24 -0
  81. package/dist/mcp/docs-mcp.js +130 -15
  82. package/dist/mcp/product-mcp.js +25 -0
  83. package/dist/tokens/OpacityTokens.js +1 -1
  84. package/dist/tokens/component/progress.d.ts +65 -5
  85. package/dist/tokens/component/progress.js +79 -18
  86. package/dist/tokens/semantic/BlendTokens.d.ts +10 -3
  87. package/dist/tokens/semantic/BlendTokens.js +17 -5
  88. package/dist/tokens/semantic/OpacityTokens.d.ts +4 -4
  89. package/dist/tokens/semantic/OpacityTokens.js +4 -4
  90. package/dist/types/ComponentTypes.d.ts +1 -1
  91. package/dist/types/generated/TokenTypes.d.ts +1 -1
  92. package/dist/types/generated/TokenTypes.js +1 -1
  93. package/dist/validators/StemmaTokenUsageValidator.js +3 -2
  94. package/dist/web/DesignTokens.web.css +1 -1
  95. package/governance/BUILD-SYSTEM-SETUP.md +1 -2
  96. package/governance/Component-Development-Guide.md +23 -13
  97. package/governance/Component-Development-Standards.md +21 -20
  98. package/governance/Component-Family-Avatar.md +6 -7
  99. package/governance/Component-Family-Badge.md +19 -20
  100. package/governance/Component-Family-Button.md +30 -43
  101. package/governance/Component-Family-Chip.md +14 -15
  102. package/governance/Component-Family-Container.md +12 -13
  103. package/governance/Component-Family-Data-Display.md +1 -2
  104. package/governance/Component-Family-Divider.md +1 -2
  105. package/governance/Component-Family-Form-Inputs.md +65 -65
  106. package/governance/Component-Family-Icon.md +9 -10
  107. package/governance/Component-Family-Loading.md +1 -2
  108. package/governance/Component-Family-Modal.md +1 -2
  109. package/governance/Component-Family-Navigation.md +1 -2
  110. package/governance/Component-Family-Progress.md +0 -1
  111. package/governance/Component-Inheritance-Structures.md +219 -99
  112. package/governance/Component-MCP-Document-Template.md +6 -5
  113. package/governance/Component-Primitive-vs-Semantic-Philosophy.md +1 -1
  114. package/governance/Component-Quick-Reference.md +33 -33
  115. package/governance/Component-Readiness-Status.md +59 -44
  116. package/governance/Component-Templates.md +57 -61
  117. package/governance/Contract-System-Reference.md +7 -7
  118. package/governance/MCP-Integration-Guide.md +1 -1
  119. package/governance/Process-Cross-Reference-Standards.md +31 -13
  120. package/governance/Process-Development-Workflow.md +49 -59
  121. package/governance/Process-File-Organization.md +25 -28
  122. package/governance/Process-Hook-Operations.md +22 -11
  123. package/governance/Process-Orchestration-Model-Selection.md +92 -0
  124. package/governance/Process-Spec-Planning.md +98 -52
  125. package/governance/Process-Task-Type-Definitions.md +80 -4
  126. package/governance/Product-Handoff-Protocol.md +2 -0
  127. package/governance/Rosetta-System-Architecture.md +13 -11
  128. package/governance/Test-Behavioral-Contract-Validation.md +38 -31
  129. package/governance/Test-Failure-Audit-Methodology.md +1 -1
  130. package/governance/Token-Family-Accessibility.md +1 -2
  131. package/governance/Token-Family-Blend.md +18 -16
  132. package/governance/Token-Family-Blur.md +0 -1
  133. package/governance/Token-Family-Border.md +1 -2
  134. package/governance/Token-Family-Color.md +0 -1
  135. package/governance/Token-Family-Glow.md +1 -2
  136. package/governance/Token-Family-Layering.md +0 -1
  137. package/governance/Token-Family-Motion.md +1 -2
  138. package/governance/Token-Family-Opacity.md +0 -1
  139. package/governance/Token-Family-Radius.md +1 -2
  140. package/governance/Token-Family-Responsive.md +1 -2
  141. package/governance/Token-Family-Shadow.md +1 -2
  142. package/governance/Token-Family-Sizing.md +0 -1
  143. package/governance/Token-Family-Spacing.md +1 -2
  144. package/governance/Token-Family-Typography.md +1 -2
  145. package/governance/Token-Governance.md +8 -8
  146. package/governance/Token-Quick-Reference.md +47 -34
  147. package/governance/Token-Resolution-Patterns.md +1 -1
  148. package/governance/Token-Semantic-Structure.md +1 -1
  149. package/governance/Web-Authoring-Standards.md +5 -5
  150. package/governance/browser-distribution-guide.md +1 -4
  151. package/governance/classification-map.md +474 -0
  152. package/governance/completion-documentation-guide.md +23 -37
  153. package/governance/component-meta-authoring-guide.md +1 -1
  154. package/governance/cross-platform-vs-platform-specific-decision-framework.md +1 -1
  155. package/governance/platform-implementation-guidelines.md +2 -3
  156. package/governance/release-management-system.md +28 -63
  157. package/governance/rosetta-system-principles.md +8 -6
  158. package/governance/stemma-system-principles.md +18 -17
  159. package/mcp-server/src/index.ts +24 -6
  160. package/mcp-server/src/indexer/DocumentIndexer.ts +119 -9
  161. package/mcp-server/src/indexer/__tests__/bare-id-crossrefs.test.ts +250 -0
  162. package/mcp-server/src/indexer/cross-ref-parser.ts +29 -1
  163. package/mcp-server/src/indexer/index-health.ts +27 -2
  164. package/mcp-server/src/query/__tests__/find-docs-calibration.test.ts +11 -26
  165. package/mcp-server/src/relocation-integrity-gate/__tests__/relocation-integrity-gate.test.ts +72 -5
  166. package/mcp-server/src/relocation-integrity-gate/relocation-integrity-gate.ts +81 -24
  167. package/mcp-server/src/tools/list-cross-references.ts +2 -2
  168. package/package.json +24 -26
  169. package/src/__tests__/browser-distribution/css-bundling.test.ts +6 -4
  170. package/src/__tests__/console-allowlist.json +14 -0
  171. package/src/__tests__/console-fail-setup.ts +169 -0
  172. package/src/__tests__/integration/Spec107-DesignLanguageContext.test.ts +16 -0
  173. package/src/__tests__/stemma-system/behavioral-contract-validation.test.ts +70 -17
  174. package/src/__tests__/stemma-system/contract-catalog-name-validation.test.ts +28 -0
  175. package/src/__tests__/stemma-system/form-inputs-contracts.test.ts +223 -16
  176. package/src/__tests__/stemma-system/input-text-native-base-call-alignment.test.ts +298 -0
  177. package/src/blend/OklchBlendCalculator.ts +3 -0
  178. package/src/blend/ThemeAwareBlendUtilities.android.kt +3 -0
  179. package/src/blend/ThemeAwareBlendUtilities.ios.swift +3 -0
  180. package/src/blend/ThemeAwareBlendUtilities.web.ts +9 -1
  181. package/src/blend/__tests__/InteractionStateAudit.test.ts +12 -9
  182. package/src/build/errors/__tests__/ErrorHandler.integration.test.ts +8 -0
  183. package/src/build/errors/__tests__/ErrorHandler.test.ts +5 -0
  184. package/src/build/tokens/__tests__/defineComponentTokens.test.ts +113 -0
  185. package/src/build/tokens/defineComponentTokens.ts +43 -1
  186. package/src/build/workflow/__tests__/CICDIntegration.test.ts +12 -1
  187. package/src/cli/__tests__/init.test.ts +45 -11
  188. package/src/components/core/Avatar-Base/Avatar-Base.schema.yaml +1 -1
  189. package/src/components/core/Avatar-Base/__tests__/Avatar.accessibility.test.ts +121 -7
  190. package/src/components/core/Avatar-Base/__tests__/Avatar.image.test.ts +3 -0
  191. package/src/components/core/Avatar-Base/__tests__/Avatar.test.ts +15 -6
  192. package/src/components/core/Avatar-Base/avatar.tokens.ts +31 -34
  193. package/src/components/core/Avatar-Base/contracts.yaml +11 -1
  194. package/src/components/core/Avatar-Base/index.ts +1 -1
  195. package/src/components/core/Avatar-Base/platforms/web/Avatar.web.ts +24 -5
  196. package/src/components/core/Badge-Count-Base/contracts.yaml +1 -1
  197. package/src/components/core/Badge-Label-Base/contracts.yaml +1 -1
  198. package/src/components/core/Button-CTA/Button-CTA.schema.yaml +2 -12
  199. package/src/components/core/Button-CTA/README.md +3 -6
  200. package/src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts +35 -89
  201. package/src/components/core/Button-CTA/__tests__/setup.test.ts +0 -2
  202. package/src/components/core/Button-CTA/__tests__/test-utils.ts +0 -2
  203. package/src/components/core/Button-CTA/contracts.yaml +6 -29
  204. package/src/components/core/Button-CTA/examples/BasicUsage.html +2 -14
  205. package/src/components/core/Button-CTA/examples/BasicUsage.tsx +17 -44
  206. package/src/components/core/Button-CTA/platforms/android/ButtonCTA.android.kt +12 -20
  207. package/src/components/core/Button-CTA/platforms/ios/ButtonCTA.ios.swift +12 -51
  208. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.css +2 -26
  209. package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts +18 -71
  210. package/src/components/core/Button-CTA/types.ts +10 -28
  211. package/src/components/core/Button-Icon/buttonIcon.tokens.ts +43 -27
  212. package/src/components/core/Chip-Base/__tests__/ChipBase.test.ts +13 -0
  213. package/src/components/core/Chip-Filter/__tests__/ChipFilter.test.ts +13 -0
  214. package/src/components/core/Chip-Input/__tests__/ChipInput.test.ts +13 -0
  215. package/src/components/core/Input-Text-Base/Input-Text-Base.schema.yaml +30 -2
  216. package/src/components/core/Input-Text-Base/README.md +25 -2
  217. package/src/components/core/Input-Text-Base/__tests__/focusIndicators.test.ts +16 -15
  218. package/src/components/core/Input-Text-Base/contracts.yaml +90 -0
  219. package/src/components/core/Input-Text-Base/platforms/android/InputTextBase.android.kt +26 -12
  220. package/src/components/core/Input-Text-Base/platforms/ios/InputTextBase.ios.swift +195 -59
  221. package/src/components/core/Input-Text-Base/types.ts +13 -1
  222. package/src/components/core/Input-Text-Email/Input-Text-Email.schema.yaml +5 -1
  223. package/src/components/core/Input-Text-Email/README.md +8 -7
  224. package/src/components/core/Input-Text-Email/platforms/android/InputTextEmail.android.kt +1 -4
  225. package/src/components/core/Input-Text-Email/platforms/ios/InputTextEmail.ios.swift +2 -16
  226. package/src/components/core/Input-Text-Password/Input-Text-Password.schema.yaml +10 -3
  227. package/src/components/core/Input-Text-Password/README.md +9 -8
  228. package/src/components/core/Input-Text-Password/contracts.yaml +5 -0
  229. package/src/components/core/Input-Text-Password/platforms/android/InputTextPassword.android.kt +17 -7
  230. package/src/components/core/Input-Text-Password/platforms/ios/InputTextPassword.ios.swift +22 -20
  231. package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.ts +11 -2
  232. package/src/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.schema.yaml +5 -1
  233. package/src/components/core/Input-Text-PhoneNumber/README.md +9 -8
  234. package/src/components/core/Input-Text-PhoneNumber/platforms/android/InputTextPhoneNumber.android.kt +2 -5
  235. package/src/components/core/Input-Text-PhoneNumber/platforms/ios/InputTextPhoneNumber.ios.swift +3 -17
  236. package/src/components/core/Nav-Header-App/contracts.yaml +1 -1
  237. package/src/components/core/Nav-SegmentedChoice-Base/contracts.yaml +1 -1
  238. package/src/components/core/Progress-Indicator-Connector-Base/contracts.yaml +1 -1
  239. package/src/components/core/Progress-Indicator-Label-Base/contracts.yaml +1 -1
  240. package/src/components/core/Progress-Indicator-Node-Base/contracts.yaml +1 -1
  241. package/src/components/core/Progress-Stepper-Base/__tests__/StepperBase.test.ts +5 -2
  242. package/src/components/core/Progress-Stepper-Detailed/__tests__/StepperDetailed.test.ts +5 -2
  243. package/src/generators/DTCGFormatGenerator.ts +6 -0
  244. package/src/generators/TokenFileGenerator.ts +7 -2
  245. package/src/generators/__tests__/DTCGConfigOptions.test.ts +14 -5
  246. package/src/integration/BuildErrorHandler.ts +2 -2
  247. package/src/tokens/OpacityTokens.ts +1 -1
  248. package/src/tokens/__tests__/OpacityTokens.test.ts +3 -1
  249. package/src/tokens/__tests__/ProgressTokenCompliance.test.ts +5 -3
  250. package/src/tokens/__tests__/ProgressTokenFormulas.test.ts +11 -11
  251. package/src/tokens/__tests__/ProgressTokenTranslation.test.ts +22 -20
  252. package/src/tokens/component/progress.ts +83 -21
  253. package/src/tokens/semantic/BlendTokens.ts +26 -5
  254. package/src/tokens/semantic/OpacityTokens.ts +4 -4
  255. package/src/types/ComponentTypes.ts +1 -1
  256. package/src/types/generated/TokenTypes.ts +1 -1
  257. package/src/validators/StemmaTokenUsageValidator.ts +3 -2
  258. package/token-index/components.yaml +8 -8
  259. package/token-index/semantics.yaml +1 -2
  260. package/src/tools/release/__tests__/ChangeClassifier.test.ts +0 -133
  261. package/src/tools/release/__tests__/ChangeExtractor.test.ts +0 -222
  262. package/src/tools/release/__tests__/GitHubPublisher.test.ts +0 -240
  263. package/src/tools/release/__tests__/NotesRenderer.test.ts +0 -142
  264. package/src/tools/release/__tests__/NpmPublisher.test.ts +0 -289
  265. package/src/tools/release/__tests__/PipelineIntegration.test.ts +0 -188
  266. package/src/tools/release/__tests__/ReleasePipeline.test.ts +0 -192
  267. package/src/tools/release/__tests__/SemanticVersionValidator.test.ts +0 -49
  268. package/src/tools/release/__tests__/SummaryScanner.test.ts +0 -141
  269. package/src/tools/release/__tests__/TagResolver.test.ts +0 -91
  270. package/src/tools/release/__tests__/VersionCalculator.test.ts +0 -270
  271. package/src/tools/release/__tests__/helpers/NpmMockHelper.ts +0 -80
  272. package/src/tools/release/cli/ReleasePipeline.ts +0 -165
  273. package/src/tools/release/cli/release-tool.ts +0 -107
  274. package/src/tools/release/pipeline/ChangeClassifier.ts +0 -61
  275. package/src/tools/release/pipeline/ChangeExtractor.ts +0 -87
  276. package/src/tools/release/pipeline/NotesRenderer.ts +0 -66
  277. package/src/tools/release/pipeline/SummaryScanner.ts +0 -70
  278. package/src/tools/release/pipeline/TagResolver.ts +0 -40
  279. package/src/tools/release/pipeline/VersionCalculator.ts +0 -375
  280. package/src/tools/release/publishers/GitHubPublisher.ts +0 -228
  281. package/src/tools/release/publishers/NpmPublisher.ts +0 -196
  282. package/src/tools/release/release-config.json +0 -5
  283. package/src/tools/release/types/index.ts +0 -282
  284. package/src/tools/release/validators/SemanticVersionValidator.ts +0 -67
@@ -313,10 +313,11 @@ Semantic color tokens are resolved into light and dark mode sets before generati
313
313
  │ MODE RESOLUTION SUBSYSTEM │
314
314
  ├─────────────────────────────────────────────────────────────────────────────┤
315
315
  │ │
316
- │ Level 1: Primitive Mode Values │
317
- │ ├── Primitives carry distinct light/dark values in ColorTokenValue │
318
- │ ├── Same primitive name in both modes — primitive handles differentiation │
319
- │ ├── Handles the common case (~85% of semantic color tokens) │
316
+ │ Level 1: Primitive Value Resolution (no mode variance) │
317
+ │ ├── Primitives are single OKLCH triples — NO mode dimension (Spec 112) │
318
+ │ ├── No dark override → token falls back to the base (light) reference, │
319
+ │ │ resolving to the SAME value in both modes │
320
+ │ ├── The common case — see npm run audit:mode-parity for the live split │
320
321
  │ └── Resolved by: SemanticValueResolver │
321
322
  │ │
322
323
  │ Level 2: Semantic Overrides │
@@ -334,7 +335,8 @@ Semantic color tokens are resolved into light and dark mode sets before generati
334
335
  │ │
335
336
  │ Fallback Behavior │
336
337
  │ ├── Absent dark override → token uses base (light) primitive reference │
337
- │ ├── Absent dark primitive value → primitive's light value used │
338
+ │ │ — the ONLY fallback that fires; primitives have no mode values to │
339
+ │ │ fall back from (legacy ColorTokens.ts is deprecated, Spec 115) │
338
340
  │ ├── Fallback is graceful degradation, not build failure │
339
341
  │ └── Mode parity audit reports fallback usage: npm run audit:mode-parity │
340
342
  │ │
@@ -631,16 +633,16 @@ The exemption is **not silent**: each exempt subsystem has a **paired boot/smoke
631
633
 
632
634
  ```
633
635
  # Get this document
634
- get_document_full({ path: ".kiro/steering/Rosetta-System-Architecture.md" })
636
+ get_document_full({ path: "rosetta-system-architecture" })
635
637
 
636
638
  # Get specific sections
637
- get_section({ path: ".kiro/steering/Rosetta-System-Architecture.md", heading: "Token Pipeline Architecture" })
638
- get_section({ path: ".kiro/steering/Rosetta-System-Architecture.md", heading: "OKLCH Color Pipeline" })
639
- get_section({ path: ".kiro/steering/Rosetta-System-Architecture.md", heading: "Component Token Integration" })
640
- get_section({ path: ".kiro/steering/Rosetta-System-Architecture.md", heading: "Subsystem Entry Points Summary" })
639
+ get_section({ path: "rosetta-system-architecture", heading: "Token Pipeline Architecture" })
640
+ get_section({ path: "rosetta-system-architecture", heading: "OKLCH Color Pipeline" })
641
+ get_section({ path: "rosetta-system-architecture", heading: "Component Token Integration" })
642
+ get_section({ path: "rosetta-system-architecture", heading: "Subsystem Entry Points Summary" })
641
643
 
642
644
  # For token creation governance and guides
643
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Creation Guides" })
645
+ get_section({ path: "token-governance", heading: "Token Creation Guides" })
644
646
  ```
645
647
 
646
648
  ---
@@ -14,7 +14,7 @@ description: Framework for validating behavioral contracts across web, iOS, and
14
14
  **Scope**: cross-project
15
15
  **Layer**: 2
16
16
  **Relevant Tasks**: component-development, cross-platform-validation, testing
17
- **Last Reviewed**: 2026-01-02
17
+ **Last Reviewed**: 2026-07-15
18
18
 
19
19
  ---
20
20
 
@@ -210,13 +210,11 @@ pressable_validation_checklist:
210
210
  - [ ] Click/tap triggers action
211
211
  - [ ] Enter key triggers action (web)
212
212
  - [ ] Space key triggers action (web)
213
- - [ ] Action NOT triggered when disabled
214
213
 
215
214
  state_validation:
216
215
  - [ ] Default state is correct
217
216
  - [ ] Hover state appears (desktop only)
218
217
  - [ ] Pressed/active state appears
219
- - [ ] Disabled state prevents interaction
220
218
 
221
219
  outcome_validation:
222
220
  - [ ] onPress callback is invoked
@@ -226,7 +224,6 @@ pressable_validation_checklist:
226
224
 
227
225
  accessibility_validation:
228
226
  - [ ] role="button" or semantic button (web)
229
- - [ ] aria-disabled when disabled (web)
230
227
  - [ ] Screen reader announces button
231
228
 
232
229
  cross_platform_validation:
@@ -305,38 +302,49 @@ error_state_validation_checklist:
305
302
  - [ ] Android: TalkBack announces error
306
303
  ```
307
304
 
308
- ### Disabled State Contract Validation
305
+ ### Disabled State Exclusion Guard Validation
309
306
 
310
- **Contract Definition**: Prevents interaction when disabled
307
+ **Provenance**: As of the 2026-07-15 adjudication (`.kiro/issues/button-cta-disabled-state-adjudication.md`), the no-disabled-states philosophy holds corpus-wide with **zero exceptions** — Button-CTA was the last component carrying `state_disabled`, and it has been removed. No component in the corpus may declare a disabled state as a behavioral contract, and `blend.disabledDesaturate` (along with the other disabled-state blend wrappers) is deprecated. Validation for this contract type has inverted: rather than validating that a disabled state behaves correctly, validation now confirms a disabled state does **not exist** and cannot be reintroduced.
308
+
309
+ **Contract Definition**: Component has no disabled state. Interaction affordances are always active; unavailable actions are handled by not rendering the component (or by another contract — see Philosophy Alternatives below), never by disabling it in place.
310
+
311
+ **Rationale**: DesignerPunk does not support disabled states for usability and accessibility reasons. If an action is unavailable, the component should not be rendered.
311
312
 
312
313
  ```yaml
313
- disabled_state_validation_checklist:
314
- trigger_validation:
315
- - [ ] Disabled state activates when disabled=true
316
- - [ ] Disabled state deactivates when disabled=false
317
-
318
- state_validation:
319
- - [ ] Component cannot receive focus
320
- - [ ] Component cannot be clicked/tapped
321
- - [ ] Visual styling indicates disabled state
322
- - [ ] Cursor shows not-allowed (web)
323
-
324
- outcome_validation:
325
- - [ ] onPress/onChange NOT called when disabled
326
- - [ ] Desaturated colors applied (blend.disabledDesaturate)
327
- - [ ] Component is visually distinct from enabled
328
-
329
- accessibility_validation:
330
- - [ ] aria-disabled="true" set (web)
331
- - [ ] Disabled state communicated to AT
332
- - [ ] Component removed from tab order (web)
333
-
314
+ disabled_state_exclusion_guard_checklist:
315
+ schema_validation:
316
+ - [ ] state_disabled is declared under contracts.yaml `excludes:` (NOT under `contracts:`)
317
+ - [ ] Excludes entry carries the standardized reason: "DesignerPunk does not support disabled states for usability and accessibility reasons. If an action is unavailable, the component should not be rendered."
318
+
319
+ api_surface_validation:
320
+ - [ ] Component exposes no disabled prop/property
321
+ - [ ] Component does not list `disabled` in observedAttributes (web) or an equivalent observed-attribute mechanism per platform
322
+
323
+ ignored_input_validation:
324
+ - [ ] A consumer-set disabled attribute is ignored — not forwarded to internal/shadow elements
325
+ - [ ] No disabled-styling class is applied when a disabled attribute is set
326
+ - [ ] No aria-disabled (or platform-equivalent) attribute is applied when a disabled attribute is set
327
+ - [ ] Press/activation still fires normally even when a consumer sets a disabled attribute
328
+
329
+ rendered_output_validation:
330
+ - [ ] No disabled attribute is ever rendered on any platform
331
+ - [ ] No aria-disabled attribute is ever rendered on any platform
332
+ - [ ] No platform-equivalent disabled semantic (e.g., Android `enabled = false`, iOS `.disabled()`) is ever applied
333
+
334
334
  cross_platform_validation:
335
- - [ ] Web: aria-disabled and tabindex=-1
336
- - [ ] iOS: .disabled() modifier applied
337
- - [ ] Android: enabled = false in semantics
335
+ - [ ] Web: no disabled/aria-disabled attribute, no tabindex=-1 for disabled reasons
336
+ - [ ] iOS: no `.disabled()` modifier applied
337
+ - [ ] Android: no `enabled = false` in semantics
338
338
  ```
339
339
 
340
+ **Philosophy Alternatives** — when a spec's design outline reaches for "disabled," redirect to the pattern that actually fits:
341
+
342
+ - **In-flight async action** → `state_loading` (component shows a loading/busy state; the action remains conceptually available, just pending)
343
+ - **Form input momentarily invalid** → validate-on-press / validate-on-submit (surface the error, do not disable the control)
344
+ - **Action genuinely unavailable** → do not render the component/action at all
345
+
346
+ **Mirror reference**: `src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts`, `describe('No Disabled State (philosophy exclusion)')` — the canonical exclusion-guard test block this checklist is derived from.
347
+
340
348
  ### Hover State Contract Validation
341
349
 
342
350
  **Contract Definition**: Visual feedback on hover (desktop only)
@@ -347,7 +355,6 @@ hover_state_validation_checklist:
347
355
  - [ ] Hover state triggers on mouse enter
348
356
  - [ ] Hover state clears on mouse leave
349
357
  - [ ] Hover state NOT shown on touch devices
350
- - [ ] Hover state NOT shown when disabled
351
358
 
352
359
  state_validation:
353
360
  - [ ] Background color changes on hover
@@ -8,7 +8,7 @@ description: Reusable methodology for conducting test failure audits — workflo
8
8
  # Test Failure Audit Methodology
9
9
 
10
10
  **Date**: 2025-12-26
11
- **Last Reviewed**: 2025-12-26
11
+ **Last Reviewed**: 2026-07-08
12
12
  **Purpose**: Reusable methodology guidance for conducting test failure audits, including workflow steps, pattern identification, and lessons learned from Specs 025/026/029
13
13
  **Organization**: process-standard
14
14
  **Scope**: cross-project
@@ -2,14 +2,13 @@
2
2
  id: token-family-accessibility
3
3
  inclusion: manual
4
4
  name: Token-Family-Accessibility
5
- aliases: accessibility token work
6
5
  description: Accessibility token family — focus indicators, tap area sizing, and icon sizing tokens for WCAG 2.1 AA compliance. Load when working with focus states, touch targets, or accessibility-related token selection.
7
6
  ---
8
7
 
9
8
  # Accessibility Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-30
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for accessibility-focused tokens including focus indicators, tap areas, and icon sizing
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,14 +2,13 @@
2
2
  id: token-family-blend
3
3
  inclusion: manual
4
4
  name: Token-Family-Blend
5
- aliases: blend token work
6
- description: Blend token family — color modification utilities (darken, lighten, saturate, desaturate) producing opaque colors. Load when working with hover/pressed/disabled/focus color states or theme-aware color blending.
5
+ description: Blend token family — color modification utilities (darken, lighten, saturate, desaturate) producing opaque colors. Load when working with hover/pressed/focus color states or theme-aware color blending.
7
6
  ---
8
7
 
9
8
  # Blend Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-29
12
- **Last Reviewed**: 2026-05-06
11
+ **Last Reviewed**: 2026-07-15
13
12
  **Purpose**: Complete reference for blend tokens with utility functions and theme-aware patterns
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -27,7 +26,9 @@ The DesignerPunk blend token system provides a mathematically consistent foundat
27
26
  - **Opaque Color Results**: Blend operations produce new opaque colors, not transparent overlays
28
27
  - **Cross-Platform Consistency**: Same blend calculations produce identical results (±1 RGB) across Web, iOS, and Android
29
28
  - **Theme-Aware**: Blend utilities work correctly with both light and dark themes
30
- - **Semantic Meaning**: Semantic blend tokens express design intent (hover, pressed, disabled, focus)
29
+ - **Semantic Meaning**: Semantic blend tokens express design intent (hover, pressed, focus)
30
+
31
+ > **Deprecation note (2026-07-15)**: `blend.disabledDesaturate` and the `disabledColor()`/`disabledBlend()` convenience wrappers are **DEPRECATED**. DesignerPunk does not support disabled states (Button-CTA disabled-state adjudication, ruled REMOVE — the philosophy holds corpus-wide): if an action is unavailable, do not render the component. The deprecated surfaces remain for backward compatibility and are scheduled for removal in the next major version of `@3fn/core`. The generic `desaturate()` utilities are NOT deprecated.
31
32
 
32
33
  ---
33
34
 
@@ -54,7 +55,7 @@ Blend tokens can be applied in four directions:
54
55
  | `darker` | Overlay black at specified opacity | Hover/pressed states on light backgrounds |
55
56
  | `lighter` | Overlay white at specified opacity | Hover/pressed states on dark backgrounds, icon optical balance |
56
57
  | `saturate` | Increase color saturation in HSL space | Focus states, emphasis |
57
- | `desaturate` | Decrease color saturation in HSL space | Disabled states |
58
+ | `desaturate` | Decrease color saturation in HSL space | Muted, de-emphasized colors |
58
59
 
59
60
  ---
60
61
 
@@ -68,7 +69,7 @@ Semantic blend tokens provide contextual meaning for common color modification u
68
69
  | `blend.hoverLighter` | blend200 | lighter | 8% | Hover feedback on dark backgrounds |
69
70
  | `blend.pressedDarker` | blend300 | darker | 12% | Pressed state feedback |
70
71
  | `blend.focusSaturate` | blend200 | saturate | 8% | Focus state with increased saturation |
71
- | `blend.disabledDesaturate` | blend300 | desaturate | 12% | Disabled state with decreased saturation |
72
+ | `blend.disabledDesaturate` | blend300 | desaturate | 12% | **DEPRECATED 2026-07-15** — no disabled states in DesignerPunk; removal at next major |
72
73
  | `blend.containerHoverDarker` | blend100 | darker | 4% | Subtle container/surface hover |
73
74
  | `color.icon.opticalBalance` | blend200 | lighter | 8% | Icon optical weight compensation |
74
75
 
@@ -107,7 +108,7 @@ import {
107
108
  | `hoverColor(baseColor)` | darkerBlend | 8% (blend200) |
108
109
  | `pressedColor(baseColor)` | darkerBlend | 12% (blend300) |
109
110
  | `focusColor(baseColor)` | saturate | 8% (blend200) |
110
- | `disabledColor(baseColor)` | desaturate | 12% (blend300) |
111
+ | `disabledColor(baseColor)` | desaturate | **DEPRECATED 2026-07-15** — removal at next major |
111
112
  | `iconColor(baseColor)` | lighterBlend | 8% (blend200) |
112
113
 
113
114
  **Usage Example**:
@@ -125,7 +126,6 @@ class ButtonCTA extends HTMLElement {
125
126
  // Calculate state colors
126
127
  this._hoverColor = blendUtils.hoverColor(primaryColor);
127
128
  this._pressedColor = blendUtils.pressedColor(primaryColor);
128
- this._disabledColor = blendUtils.disabledColor(primaryColor);
129
129
  }
130
130
  }
131
131
  ```
@@ -168,7 +168,7 @@ extension Color {
168
168
  /// Focus state color (8% more saturated)
169
169
  func focusBlend() -> Color
170
170
 
171
- /// Disabled state color (12% less saturated)
171
+ /// DEPRECATED 2026-07-15 — no disabled states in DesignerPunk; removal at next major
172
172
  func disabledBlend() -> Color
173
173
 
174
174
  /// Icon optical balance (8% lighter)
@@ -189,7 +189,6 @@ struct ButtonCTA: View {
189
189
  .background(isPressed ? primaryColor.pressedBlend() :
190
190
  isHovered ? primaryColor.hoverBlend() :
191
191
  primaryColor)
192
- .foregroundColor(isDisabled ? primaryColor.disabledBlend() : primaryColor)
193
192
  }
194
193
  }
195
194
  ```
@@ -216,7 +215,7 @@ fun Color.desaturate(amount: Float): Color
216
215
  fun Color.hoverBlend(): Color // 8% darker
217
216
  fun Color.pressedBlend(): Color // 12% darker
218
217
  fun Color.focusBlend(): Color // 8% more saturated
219
- fun Color.disabledBlend(): Color // 12% less saturated
218
+ fun Color.disabledBlend(): Color // DEPRECATED 2026-07-15 — removal at next major
220
219
  fun Color.iconBlend(): Color // 8% lighter
221
220
  ```
222
221
 
@@ -266,7 +265,6 @@ class ButtonCTA extends HTMLElement {
266
265
  const blendUtils = getBlendUtilities();
267
266
  this._hoverColor = blendUtils.hoverColor(primaryColor);
268
267
  this._pressedColor = blendUtils.pressedColor(primaryColor);
269
- this._disabledColor = blendUtils.disabledColor(primaryColor);
270
268
  this._iconColor = blendUtils.iconColor(onPrimaryColor);
271
269
  }
272
270
 
@@ -348,7 +346,6 @@ const iconStyle = { filter: 'brightness(1.08)' };
348
346
  const blendUtils = getBlendUtilities();
349
347
  const hoverColor = blendUtils.hoverColor(primaryColor); // darkerBlend 8%
350
348
  const pressedColor = blendUtils.pressedColor(primaryColor); // darkerBlend 12%
351
- const disabledColor = blendUtils.disabledColor(primaryColor); // desaturate 12%
352
349
  const iconColor = blendUtils.iconColor(onPrimaryColor); // lighterBlend 8%
353
350
  ```
354
351
 
@@ -357,7 +354,6 @@ const iconColor = blendUtils.iconColor(onPrimaryColor); // lighterBlend 8%
357
354
  ```typescript
358
355
  const blendUtils = getBlendUtilities();
359
356
  const focusColor = blendUtils.focusColor(primaryColor); // saturate 8%
360
- const disabledColor = blendUtils.disabledColor(primaryColor); // desaturate 12%
361
357
  ```
362
358
 
363
359
  ### Container Component
@@ -414,7 +410,6 @@ Use semantic blend tokens for standard interaction states:
414
410
  | Hover (dark bg) | `blend.hoverLighter` | `lighterBlend(color, 0.08)` |
415
411
  | Pressed | `blend.pressedDarker` | `pressedColor()` |
416
412
  | Focus | `blend.focusSaturate` | `focusColor()` |
417
- | Disabled | `blend.disabledDesaturate` | `disabledColor()` |
418
413
  | Container hover | `blend.containerHoverDarker` | `darkerBlend(color, 0.04)` |
419
414
  | Icon optical | `color.icon.opticalBalance` | `iconColor()` |
420
415
 
@@ -433,6 +428,13 @@ const emphasisColor = blendUtils.darkerBlend(color, 0.16); // blend400 = 16%
433
428
 
434
429
  ### Anti-Patterns to Avoid
435
430
 
431
+ **❌ Don't style disabled states**:
432
+ ```typescript
433
+ // WRONG: DesignerPunk does not support disabled states (adjudicated 2026-07-15).
434
+ // If an action is unavailable, do not render the component.
435
+ const disabledColor = blendUtils.disabledColor(primaryColor);
436
+ ```
437
+
436
438
  **❌ Don't use opacity for state colors**:
437
439
  ```typescript
438
440
  // WRONG: Opacity creates transparency, not new colors
@@ -481,7 +483,7 @@ blend500 = base × 5 = 0.04 × 5 = 0.20 (20%)
481
483
  | blend.hoverLighter | blend200 | 8% |
482
484
  | blend.pressedDarker | blend300 | 12% |
483
485
  | blend.focusSaturate | blend200 | 8% |
484
- | blend.disabledDesaturate | blend300 | 12% |
486
+ | blend.disabledDesaturate (deprecated) | blend300 | 12% |
485
487
  | blend.containerHoverDarker | blend100 | 4% |
486
488
  | color.icon.opticalBalance | blend200 | 8% |
487
489
 
@@ -2,7 +2,6 @@
2
2
  id: token-family-blur
3
3
  inclusion: manual
4
4
  name: Token-Family-Blur
5
- aliases: blur token work
6
5
  description: Unified blur token family — single primitive scale for shadow edge softness, glow radial spread, and surface/backdrop blur. Load when working with shadows, glows, translucent surfaces, or any blur effect.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-border
3
3
  inclusion: manual
4
4
  name: Token-Family-Border
5
- aliases: border token work
6
5
  description: Border token family — border width tokens with doubling progression and numeric naming. Load when working with border widths, dividers, or outline styles.
7
6
  ---
8
7
 
9
8
  # Border Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-30
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for border width tokens with numeric naming convention and mathematical relationships
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,7 +2,6 @@
2
2
  id: token-family-color
3
3
  inclusion: manual
4
4
  name: Token-Family-Color
5
- aliases: color token work
6
5
  description: Color token family — OKLCH channel-primitive architecture, palette structure, semantic color tokens, neutral partition, blend model, theme support, and WCAG compliance. Load when working with color tokens, color selection, theme variants, or color-related accessibility.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-glow
3
3
  inclusion: manual
4
4
  name: Token-Family-Glow
5
- aliases: glow token work
6
5
  description: Glow token family — radial emphasis and energy effects with zero-offset blur, opacity, and color primitives. Load when working with glow effects, emphasis indicators, or interactive energy states.
7
6
  ---
8
7
 
9
8
  # Glow Token Usage Documentation
10
9
 
11
10
  **Date**: 2025-10-24
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Glow token reference and usage guide
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,7 +2,6 @@
2
2
  id: token-family-layering
3
3
  inclusion: manual
4
4
  name: Token-Family-Layering
5
- aliases: layering z-index token work
6
5
  description: Layering token family — z-index (web/iOS) and elevation (Android) tokens for element stacking order. Load when working with overlays, modals, tooltips, or any stacking context decisions.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-motion
3
3
  inclusion: manual
4
4
  name: Token-Family-Motion
5
- aliases: motion easing token work
6
5
  description: Motion token family — animation duration, easing curves, and scale primitives for consistent transitions. Load when working with animations, transitions, micro-interactions, or motion timing.
7
6
  ---
8
7
 
9
8
  # Motion Token Usage Documentation
10
9
 
11
10
  **Date**: 2025-12-06
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Motion token reference and usage guide
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,7 +2,6 @@
2
2
  id: token-family-opacity
3
3
  inclusion: manual
4
4
  name: Token-Family-Opacity
5
- aliases: opacity token work
6
5
  description: Opacity token family — transparency tokens with 8% base increment system and 14-token percentage-based scale (opacity000–opacity100). Load when working with transparency effects, disabled states, overlays, or visual hierarchy through opacity.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-radius
3
3
  inclusion: manual
4
4
  name: Token-Family-Radius
5
- aliases: radius token work
6
5
  description: Radius token family — corner rounding tokens on 8-unit baseline grid with strategic flexibility exceptions. Load when working with border-radius, rounded corners, or pill/circle shapes.
7
6
  ---
8
7
 
9
8
  # Radius Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-30
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for radius tokens with numeric naming convention and mathematical relationships
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,14 +2,13 @@
2
2
  id: token-family-responsive
3
3
  inclusion: manual
4
4
  name: Token-Family-Responsive
5
- aliases: responsive token work
6
5
  description: Responsive token family — breakpoint and density tokens for adaptive interfaces. Load when working with responsive layouts, viewport breakpoints, or density-based scaling.
7
6
  ---
8
7
 
9
8
  # Responsive Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-30
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for breakpoint and density tokens enabling responsive design across platforms
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,14 +2,13 @@
2
2
  id: token-family-shadow
3
3
  inclusion: manual
4
4
  name: Token-Family-Shadow
5
- aliases: shadow token work
6
5
  description: Shadow token family — directional depth effects with compositional offset, blur, opacity, and color primitives. Load when working with elevation, depth, card shadows, or spatial hierarchy.
7
6
  ---
8
7
 
9
8
  # Shadow Token Usage Documentation
10
9
 
11
10
  **Date**: 2025-10-24
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Shadow token reference and usage guide
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,7 +2,6 @@
2
2
  id: token-family-sizing
3
3
  inclusion: manual
4
4
  name: Token-Family-Sizing
5
- aliases: sizing token work
6
5
  description: Sizing token family — component dimensions (width, height, box size). Separate from spacing (gaps). Load when working with component sizes, avatar dimensions, button sizes, or any component dimensional value.
7
6
  ---
8
7
 
@@ -2,14 +2,13 @@
2
2
  id: token-family-spacing
3
3
  inclusion: manual
4
4
  name: Token-Family-Spacing
5
- aliases: spacing token work
6
5
  description: Spacing token family — layout and component spacing on 8-unit baseline grid with strategic flexibility exceptions. Load when working with padding, margins, gaps, or any spatial layout decisions.
7
6
  ---
8
7
 
9
8
  # Spacing Tokens Guide
10
9
 
11
10
  **Date**: 2025-11-26
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for spacing tokens with numeric naming convention and mathematical relationships
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -2,14 +2,13 @@
2
2
  id: token-family-typography
3
3
  inclusion: manual
4
4
  name: Token-Family-Typography
5
- aliases: typography token work
6
5
  description: Typography token family — compositional typography tokens combining fontSize, lineHeight, fontFamily, fontWeight, and letterSpacing. Load when working with text styles, font selection, or typographic hierarchy.
7
6
  ---
8
7
 
9
8
  # Typography Tokens Guide
10
9
 
11
10
  **Date**: 2025-12-09
12
- **Last Reviewed**: 2025-12-30
11
+ **Last Reviewed**: 2026-07-08
13
12
  **Purpose**: Complete reference for typography tokens with font family usage and weight mapping guidance
14
13
  **Organization**: token-documentation
15
14
  **Scope**: cross-project
@@ -625,15 +625,15 @@ This gate exists to prevent ungoverned growth of the modifier pattern. The opaci
625
625
 
626
626
  ```
627
627
  # Get this document
628
- get_document_full({ path: ".kiro/steering/Token-Governance.md" })
628
+ get_document_full({ path: "token-governance" })
629
629
 
630
630
  # Get specific sections
631
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Selection Matrix" })
632
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Usage Governance" })
633
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Creation Governance" })
634
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Prior Acknowledgment" })
635
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Decision Examples" })
636
- get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Creation Guides" })
631
+ get_section({ path: "token-governance", heading: "Token Selection Matrix" })
632
+ get_section({ path: "token-governance", heading: "Token Usage Governance" })
633
+ get_section({ path: "token-governance", heading: "Token Creation Governance" })
634
+ get_section({ path: "token-governance", heading: "Prior Acknowledgment" })
635
+ get_section({ path: "token-governance", heading: "Decision Examples" })
636
+ get_section({ path: "token-governance", heading: "Token Creation Guides" })
637
637
  ```
638
638
 
639
639
  ---
@@ -645,7 +645,7 @@ get_section({ path: ".kiro/steering/Token-Governance.md", heading: "Token Creati
645
645
  - [Rosetta System Principles](rosetta-system-principles) — Mathematical foundations
646
646
  - [Token Quick Reference](token-quick-reference) — Token documentation routing
647
647
  - [Token Category Pattern Guide](../specs/token-system/token-category-pattern-guide.md) — Detailed primitive/semantic creation patterns
648
- - [Core Goals](core-goals) — Project principles including token-first approach
648
+ - [Core Goals](../.kiro/steering/core-goals.md) — Project principles including token-first approach
649
649
  - [Design Authority](../specs/051-semantic-token-naming-restructure/design-outline.md) — Semantic token naming restructure design
650
650
 
651
651
  ### DTCG Integration