@3fn/core 13.0.0 → 14.0.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.
- package/.kiro/agents/ada-prompt.md +80 -132
- package/.kiro/agents/ada-prompt.md.attribution.json +45 -0
- package/.kiro/agents/ada.json +44 -59
- package/.kiro/agents/ada.json.attribution.json +13 -0
- package/.kiro/agents/data-prompt.md +83 -74
- package/.kiro/agents/data-prompt.md.attribution.json +53 -0
- package/.kiro/agents/data.json +31 -38
- package/.kiro/agents/data.json.attribution.json +13 -0
- package/.kiro/agents/kenya-prompt.md +83 -72
- package/.kiro/agents/kenya-prompt.md.attribution.json +53 -0
- package/.kiro/agents/kenya.json +27 -35
- package/.kiro/agents/kenya.json.attribution.json +13 -0
- package/.kiro/agents/leonardo-prompt.md +176 -234
- package/.kiro/agents/leonardo-prompt.md.attribution.json +45 -0
- package/.kiro/agents/leonardo.json +28 -36
- package/.kiro/agents/leonardo.json.attribution.json +13 -0
- package/.kiro/agents/lina-prompt.md +110 -151
- package/.kiro/agents/lina-prompt.md.attribution.json +53 -0
- package/.kiro/agents/lina.json +46 -59
- package/.kiro/agents/lina.json.attribution.json +13 -0
- package/.kiro/agents/sparky-prompt.md +89 -72
- package/.kiro/agents/sparky-prompt.md.attribution.json +53 -0
- package/.kiro/agents/sparky.json +37 -37
- package/.kiro/agents/sparky.json.attribution.json +13 -0
- package/.kiro/agents/stacy-prompt.md +74 -48
- package/.kiro/agents/stacy-prompt.md.attribution.json +45 -0
- package/.kiro/agents/stacy.json +28 -30
- package/.kiro/agents/stacy.json.attribution.json +13 -0
- package/.kiro/agents/thurgood-prompt.md +94 -138
- package/.kiro/agents/thurgood-prompt.md.attribution.json +45 -0
- package/.kiro/agents/thurgood.json +31 -35
- package/.kiro/agents/thurgood.json.attribution.json +13 -0
- package/.kiro/steering/AI-Collaboration-Principles.md +3 -3
- package/.kiro/steering/Civitas-System-Overview.md +5 -5
- package/.kiro/steering/DesignerPunk-Systems-Overview.md +6 -6
- package/.kiro/steering/Task-Completion-Protocol.md +98 -17
- package/.kiro/steering/core-goals.md +3 -3
- package/.kiro/steering/personal-note.md +1 -1
- package/.kiro/steering/start-up-tasks.md +14 -3
- package/application-mcp-server/src/index.ts +26 -0
- package/dist/ComponentTokens.android.kt +1 -1
- package/dist/ComponentTokens.ios.swift +1 -1
- package/dist/ComponentTokens.web.css +1 -1
- package/dist/DesignTokens.android.kt +1 -1
- package/dist/DesignTokens.dtcg.json +8 -5
- package/dist/DesignTokens.figma.json +2 -2
- package/dist/DesignTokens.ios.swift +1 -1
- package/dist/DesignTokens.web.css +1 -1
- package/dist/android/DesignTokens.android.kt +1 -1
- package/dist/blend/OklchBlendCalculator.js +1 -0
- package/dist/blend/ThemeAwareBlendUtilities.web.d.ts +13 -2
- package/dist/blend/ThemeAwareBlendUtilities.web.js +6 -1
- package/dist/browser/designerpunk.esm.js +22 -81
- package/dist/browser/designerpunk.esm.min.js +29 -32
- package/dist/browser/designerpunk.umd.js +22 -81
- package/dist/browser/designerpunk.umd.min.js +42 -45
- package/dist/browser/tokens.css +1 -1
- package/dist/components/core/Avatar-Base/platforms/web/Avatar.web.js +24 -5
- package/dist/components/core/Button-CTA/examples/BasicUsage.d.ts +16 -28
- package/dist/components/core/Button-CTA/examples/BasicUsage.js +18 -43
- package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.d.ts +3 -15
- package/dist/components/core/Button-CTA/platforms/web/ButtonCTA.web.js +9 -58
- package/dist/components/core/Button-CTA/types.d.ts +0 -24
- package/dist/components/core/Button-CTA/types.js +6 -0
- package/dist/components/core/Input-Text-Base/types.d.ts +13 -1
- package/dist/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.js +11 -2
- package/dist/generators/DTCGFormatGenerator.js +8 -0
- package/dist/integration/BuildErrorHandler.js +2 -2
- package/dist/ios/DesignTokens.ios.swift +1 -1
- package/dist/mcp/application-mcp.js +24 -0
- package/dist/mcp/docs-mcp.js +130 -15
- package/dist/mcp/product-mcp.js +25 -0
- package/dist/tokens/OpacityTokens.js +1 -1
- package/dist/tokens/semantic/BlendTokens.d.ts +10 -3
- package/dist/tokens/semantic/BlendTokens.js +17 -5
- package/dist/tokens/semantic/OpacityTokens.d.ts +4 -4
- package/dist/tokens/semantic/OpacityTokens.js +4 -4
- package/dist/types/ComponentTypes.d.ts +1 -1
- package/dist/types/generated/TokenTypes.d.ts +1 -1
- package/dist/types/generated/TokenTypes.js +1 -1
- package/dist/validators/StemmaTokenUsageValidator.js +3 -2
- package/dist/web/DesignTokens.web.css +1 -1
- package/governance/Component-Development-Guide.md +22 -12
- package/governance/Component-Development-Standards.md +2 -2
- package/governance/Component-Family-Avatar.md +0 -1
- package/governance/Component-Family-Badge.md +0 -1
- package/governance/Component-Family-Button.md +4 -17
- package/governance/Component-Family-Chip.md +0 -1
- package/governance/Component-Family-Container.md +0 -1
- package/governance/Component-Family-Data-Display.md +1 -2
- package/governance/Component-Family-Divider.md +1 -2
- package/governance/Component-Family-Form-Inputs.md +5 -5
- package/governance/Component-Family-Icon.md +1 -2
- package/governance/Component-Family-Loading.md +1 -2
- package/governance/Component-Family-Modal.md +1 -2
- package/governance/Component-Family-Navigation.md +0 -1
- package/governance/Component-Family-Progress.md +0 -1
- package/governance/Component-Inheritance-Structures.md +195 -76
- package/governance/Component-MCP-Document-Template.md +6 -5
- package/governance/Component-Primitive-vs-Semantic-Philosophy.md +1 -1
- package/governance/Component-Quick-Reference.md +33 -33
- package/governance/Component-Readiness-Status.md +54 -38
- package/governance/Component-Templates.md +32 -36
- package/governance/Contract-System-Reference.md +6 -6
- package/governance/MCP-Integration-Guide.md +1 -1
- package/governance/Process-Cross-Reference-Standards.md +31 -13
- package/governance/Process-Development-Workflow.md +49 -59
- package/governance/Process-File-Organization.md +24 -24
- package/governance/Process-Hook-Operations.md +19 -7
- package/governance/Process-Orchestration-Model-Selection.md +92 -0
- package/governance/Process-Spec-Planning.md +91 -39
- package/governance/Process-Task-Type-Definitions.md +80 -4
- package/governance/Product-Handoff-Protocol.md +2 -0
- package/governance/Rosetta-System-Architecture.md +6 -6
- package/governance/Test-Behavioral-Contract-Validation.md +38 -31
- package/governance/Test-Failure-Audit-Methodology.md +1 -1
- package/governance/Token-Family-Accessibility.md +1 -2
- package/governance/Token-Family-Blend.md +18 -16
- package/governance/Token-Family-Blur.md +0 -1
- package/governance/Token-Family-Border.md +1 -2
- package/governance/Token-Family-Color.md +0 -1
- package/governance/Token-Family-Glow.md +1 -2
- package/governance/Token-Family-Layering.md +0 -1
- package/governance/Token-Family-Motion.md +1 -2
- package/governance/Token-Family-Opacity.md +0 -1
- package/governance/Token-Family-Radius.md +1 -2
- package/governance/Token-Family-Responsive.md +1 -2
- package/governance/Token-Family-Shadow.md +1 -2
- package/governance/Token-Family-Sizing.md +0 -1
- package/governance/Token-Family-Spacing.md +1 -2
- package/governance/Token-Family-Typography.md +1 -2
- package/governance/Token-Governance.md +8 -8
- package/governance/Token-Quick-Reference.md +21 -21
- package/governance/Token-Resolution-Patterns.md +1 -1
- package/governance/Token-Semantic-Structure.md +1 -1
- package/governance/Web-Authoring-Standards.md +5 -5
- package/governance/browser-distribution-guide.md +1 -4
- package/governance/classification-map.md +368 -0
- package/governance/completion-documentation-guide.md +11 -8
- package/governance/component-meta-authoring-guide.md +1 -1
- package/governance/cross-platform-vs-platform-specific-decision-framework.md +1 -1
- package/governance/platform-implementation-guidelines.md +1 -1
- package/governance/release-management-system.md +2 -2
- package/governance/rosetta-system-principles.md +8 -6
- package/governance/stemma-system-principles.md +18 -17
- package/mcp-server/src/index.ts +24 -6
- package/mcp-server/src/indexer/DocumentIndexer.ts +119 -9
- package/mcp-server/src/indexer/__tests__/bare-id-crossrefs.test.ts +250 -0
- package/mcp-server/src/indexer/cross-ref-parser.ts +29 -1
- package/mcp-server/src/indexer/index-health.ts +27 -2
- package/mcp-server/src/query/__tests__/find-docs-calibration.test.ts +11 -26
- package/mcp-server/src/relocation-integrity-gate/__tests__/relocation-integrity-gate.test.ts +72 -5
- package/mcp-server/src/relocation-integrity-gate/relocation-integrity-gate.ts +81 -24
- package/mcp-server/src/tools/list-cross-references.ts +2 -2
- package/package.json +23 -21
- package/src/__tests__/browser-distribution/css-bundling.test.ts +6 -4
- package/src/__tests__/console-allowlist.json +14 -0
- package/src/__tests__/console-fail-setup.ts +169 -0
- package/src/__tests__/integration/Spec107-DesignLanguageContext.test.ts +16 -0
- package/src/__tests__/stemma-system/behavioral-contract-validation.test.ts +70 -17
- package/src/__tests__/stemma-system/contract-catalog-name-validation.test.ts +28 -0
- package/src/__tests__/stemma-system/form-inputs-contracts.test.ts +223 -16
- package/src/__tests__/stemma-system/input-text-native-base-call-alignment.test.ts +298 -0
- package/src/blend/OklchBlendCalculator.ts +3 -0
- package/src/blend/ThemeAwareBlendUtilities.android.kt +3 -0
- package/src/blend/ThemeAwareBlendUtilities.ios.swift +3 -0
- package/src/blend/ThemeAwareBlendUtilities.web.ts +9 -1
- package/src/blend/__tests__/InteractionStateAudit.test.ts +12 -9
- package/src/build/errors/__tests__/ErrorHandler.integration.test.ts +8 -0
- package/src/build/errors/__tests__/ErrorHandler.test.ts +5 -0
- package/src/build/workflow/__tests__/CICDIntegration.test.ts +12 -1
- package/src/cli/__tests__/init.test.ts +45 -11
- package/src/components/core/Avatar-Base/Avatar-Base.schema.yaml +1 -1
- package/src/components/core/Avatar-Base/__tests__/Avatar.accessibility.test.ts +121 -7
- package/src/components/core/Avatar-Base/__tests__/Avatar.image.test.ts +3 -0
- package/src/components/core/Avatar-Base/__tests__/Avatar.test.ts +15 -6
- package/src/components/core/Avatar-Base/contracts.yaml +11 -1
- package/src/components/core/Avatar-Base/platforms/web/Avatar.web.ts +24 -5
- package/src/components/core/Badge-Count-Base/contracts.yaml +1 -1
- package/src/components/core/Badge-Label-Base/contracts.yaml +1 -1
- package/src/components/core/Button-CTA/Button-CTA.schema.yaml +2 -12
- package/src/components/core/Button-CTA/README.md +3 -6
- package/src/components/core/Button-CTA/__tests__/ButtonCTA.test.ts +35 -89
- package/src/components/core/Button-CTA/__tests__/setup.test.ts +0 -2
- package/src/components/core/Button-CTA/__tests__/test-utils.ts +0 -2
- package/src/components/core/Button-CTA/contracts.yaml +6 -29
- package/src/components/core/Button-CTA/examples/BasicUsage.html +2 -14
- package/src/components/core/Button-CTA/examples/BasicUsage.tsx +17 -44
- package/src/components/core/Button-CTA/platforms/android/ButtonCTA.android.kt +12 -20
- package/src/components/core/Button-CTA/platforms/ios/ButtonCTA.ios.swift +12 -51
- package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.css +2 -26
- package/src/components/core/Button-CTA/platforms/web/ButtonCTA.web.ts +18 -71
- package/src/components/core/Button-CTA/types.ts +10 -28
- package/src/components/core/Chip-Base/__tests__/ChipBase.test.ts +13 -0
- package/src/components/core/Chip-Filter/__tests__/ChipFilter.test.ts +13 -0
- package/src/components/core/Chip-Input/__tests__/ChipInput.test.ts +13 -0
- package/src/components/core/Input-Text-Base/Input-Text-Base.schema.yaml +30 -2
- package/src/components/core/Input-Text-Base/README.md +25 -2
- package/src/components/core/Input-Text-Base/__tests__/focusIndicators.test.ts +16 -15
- package/src/components/core/Input-Text-Base/contracts.yaml +90 -0
- package/src/components/core/Input-Text-Base/platforms/android/InputTextBase.android.kt +26 -12
- package/src/components/core/Input-Text-Base/platforms/ios/InputTextBase.ios.swift +195 -59
- package/src/components/core/Input-Text-Base/types.ts +13 -1
- package/src/components/core/Input-Text-Email/Input-Text-Email.schema.yaml +5 -1
- package/src/components/core/Input-Text-Email/README.md +8 -7
- package/src/components/core/Input-Text-Email/platforms/android/InputTextEmail.android.kt +1 -4
- package/src/components/core/Input-Text-Email/platforms/ios/InputTextEmail.ios.swift +2 -16
- package/src/components/core/Input-Text-Password/Input-Text-Password.schema.yaml +10 -3
- package/src/components/core/Input-Text-Password/README.md +9 -8
- package/src/components/core/Input-Text-Password/contracts.yaml +5 -0
- package/src/components/core/Input-Text-Password/platforms/android/InputTextPassword.android.kt +17 -7
- package/src/components/core/Input-Text-Password/platforms/ios/InputTextPassword.ios.swift +22 -20
- package/src/components/core/Input-Text-Password/platforms/web/InputTextPassword.web.ts +11 -2
- package/src/components/core/Input-Text-PhoneNumber/Input-Text-PhoneNumber.schema.yaml +5 -1
- package/src/components/core/Input-Text-PhoneNumber/README.md +9 -8
- package/src/components/core/Input-Text-PhoneNumber/platforms/android/InputTextPhoneNumber.android.kt +2 -5
- package/src/components/core/Input-Text-PhoneNumber/platforms/ios/InputTextPhoneNumber.ios.swift +3 -17
- package/src/components/core/Nav-Header-App/contracts.yaml +1 -1
- package/src/components/core/Nav-SegmentedChoice-Base/contracts.yaml +1 -1
- package/src/components/core/Progress-Indicator-Connector-Base/contracts.yaml +1 -1
- package/src/components/core/Progress-Indicator-Label-Base/contracts.yaml +1 -1
- package/src/components/core/Progress-Indicator-Node-Base/contracts.yaml +1 -1
- package/src/components/core/Progress-Stepper-Base/__tests__/StepperBase.test.ts +5 -2
- package/src/components/core/Progress-Stepper-Detailed/__tests__/StepperDetailed.test.ts +5 -2
- package/src/generators/DTCGFormatGenerator.ts +6 -0
- package/src/generators/__tests__/DTCGConfigOptions.test.ts +14 -5
- package/src/integration/BuildErrorHandler.ts +2 -2
- package/src/tokens/OpacityTokens.ts +1 -1
- package/src/tokens/__tests__/OpacityTokens.test.ts +3 -1
- package/src/tokens/semantic/BlendTokens.ts +26 -5
- package/src/tokens/semantic/OpacityTokens.ts +4 -4
- package/src/tools/release/__tests__/ReleasePipeline.test.ts +1 -1
- package/src/types/ComponentTypes.ts +1 -1
- package/src/types/generated/TokenTypes.ts +1 -1
- package/src/validators/StemmaTokenUsageValidator.ts +3 -2
- package/token-index/semantics.yaml +1 -2
|
@@ -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**:
|
|
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
|
-
|
|
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-
|
|
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,
|
|
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 |
|
|
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% |
|
|
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 |
|
|
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
|
-
///
|
|
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 //
|
|
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**:
|
|
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**:
|
|
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**:
|
|
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**:
|
|
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**:
|
|
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**:
|
|
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**:
|
|
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**:
|
|
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: "
|
|
628
|
+
get_document_full({ path: "token-governance" })
|
|
629
629
|
|
|
630
630
|
# Get specific sections
|
|
631
|
-
get_section({ path: "
|
|
632
|
-
get_section({ path: "
|
|
633
|
-
get_section({ path: "
|
|
634
|
-
get_section({ path: "
|
|
635
|
-
get_section({ path: "
|
|
636
|
-
get_section({ path: "
|
|
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
|
|
@@ -122,8 +122,8 @@ See Rosetta-System-Architecture § Stage 5: Generation for why these two definit
|
|
|
122
122
|
### MCP Queries for Mode Architecture
|
|
123
123
|
|
|
124
124
|
```
|
|
125
|
-
get_section({ path: "
|
|
126
|
-
get_section({ path: "
|
|
125
|
+
get_section({ path: "rosetta-system-architecture", heading: "Stage 4: Mode Resolution (Spec 080)" })
|
|
126
|
+
get_section({ path: "token-quick-reference", heading: "Mode-Aware Token Lookup (Spec 080)" })
|
|
127
127
|
```
|
|
128
128
|
|
|
129
129
|
---
|
|
@@ -286,9 +286,9 @@ Use these MCP queries to access token documentation progressively:
|
|
|
286
286
|
Returns metadata and outline (~200 tokens) to understand document structure:
|
|
287
287
|
|
|
288
288
|
```
|
|
289
|
-
get_document_summary({ path: "
|
|
290
|
-
get_document_summary({ path: "
|
|
291
|
-
get_document_summary({ path: "
|
|
289
|
+
get_document_summary({ path: "token-family-color" })
|
|
290
|
+
get_document_summary({ path: "token-family-spacing" })
|
|
291
|
+
get_document_summary({ path: "token-family-typography" })
|
|
292
292
|
```
|
|
293
293
|
|
|
294
294
|
### Get Specific Section
|
|
@@ -296,48 +296,48 @@ Returns targeted content (~2,000 tokens) for specific information:
|
|
|
296
296
|
|
|
297
297
|
```
|
|
298
298
|
// Get color concept tokens by category
|
|
299
|
-
get_section({ path: "
|
|
300
|
-
get_section({ path: "
|
|
301
|
-
get_section({ path: "
|
|
302
|
-
get_section({ path: "
|
|
303
|
-
get_section({ path: "
|
|
299
|
+
get_section({ path: "token-family-color", heading: "Feedback Concept" })
|
|
300
|
+
get_section({ path: "token-family-color", heading: "Identity Concept" })
|
|
301
|
+
get_section({ path: "token-family-color", heading: "Action Concept" })
|
|
302
|
+
get_section({ path: "token-family-color", heading: "Contrast Concept" })
|
|
303
|
+
get_section({ path: "token-family-color", heading: "Structure Concept" })
|
|
304
304
|
|
|
305
305
|
// Get component-specific color tokens
|
|
306
|
-
get_section({ path: "
|
|
306
|
+
get_section({ path: "token-family-color", heading: "Component Tokens" })
|
|
307
307
|
|
|
308
308
|
// Get primitive color families
|
|
309
|
-
get_section({ path: "
|
|
309
|
+
get_section({ path: "token-family-color", heading: "Primitive Color Families" })
|
|
310
310
|
|
|
311
311
|
// Get spacing scale values
|
|
312
|
-
get_section({ path: "
|
|
312
|
+
get_section({ path: "token-family-spacing", heading: "Spacing Scale" })
|
|
313
313
|
|
|
314
314
|
// Get typography composition patterns
|
|
315
|
-
get_section({ path: "
|
|
315
|
+
get_section({ path: "token-family-typography", heading: "Typography Composition" })
|
|
316
316
|
|
|
317
317
|
// Get shadow elevation levels
|
|
318
|
-
get_section({ path: "
|
|
318
|
+
get_section({ path: "token-family-shadow", heading: "Shadow Scale" })
|
|
319
319
|
|
|
320
320
|
// Get radius values
|
|
321
|
-
get_section({ path: "
|
|
321
|
+
get_section({ path: "token-family-radius", heading: "Primitive Radius Tokens" })
|
|
322
322
|
|
|
323
323
|
// Get border width values
|
|
324
|
-
get_section({ path: "
|
|
324
|
+
get_section({ path: "token-family-border", heading: "Primitive Border Width Tokens" })
|
|
325
325
|
|
|
326
326
|
// Get opacity values
|
|
327
|
-
get_section({ path: "
|
|
327
|
+
get_section({ path: "token-family-opacity", heading: "Primitive Opacity Tokens" })
|
|
328
328
|
|
|
329
329
|
// Get breakpoint values
|
|
330
|
-
get_section({ path: "
|
|
330
|
+
get_section({ path: "token-family-responsive", heading: "Breakpoint Tokens" })
|
|
331
331
|
|
|
332
332
|
// Get tap area requirements
|
|
333
|
-
get_section({ path: "
|
|
333
|
+
get_section({ path: "token-family-accessibility", heading: "Tap Area Tokens" })
|
|
334
334
|
```
|
|
335
335
|
|
|
336
336
|
### Get Full Document
|
|
337
337
|
Returns complete content (2,000-15,000 tokens) when comprehensive reference needed:
|
|
338
338
|
|
|
339
339
|
```
|
|
340
|
-
get_document_full({ path: "
|
|
340
|
+
get_document_full({ path: "token-family-color" })
|
|
341
341
|
```
|
|
342
342
|
|
|
343
343
|
### Recommended Workflow
|
|
@@ -8,7 +8,7 @@ description: Token resolution patterns — fixed vs flexible token types, valida
|
|
|
8
8
|
# Token Resolution Patterns
|
|
9
9
|
|
|
10
10
|
**Date**: 2025-12-19
|
|
11
|
-
**Last Reviewed**:
|
|
11
|
+
**Last Reviewed**: 2026-07-08
|
|
12
12
|
**Purpose**: Strategic guidance on handling flexible token types with validation and type safety
|
|
13
13
|
**Organization**: process-standard
|
|
14
14
|
**Scope**: cross-project
|
|
@@ -9,7 +9,7 @@ description: Semantic token structure guide — SemanticToken interface requirem
|
|
|
9
9
|
# Semantic Token Structure Guide
|
|
10
10
|
|
|
11
11
|
**Date**: 2025-11-17
|
|
12
|
-
**Last Reviewed**:
|
|
12
|
+
**Last Reviewed**: 2026-07-08
|
|
13
13
|
**Purpose**: Document SemanticToken interface requirements and usage patterns
|
|
14
14
|
**Organization**: token-documentation
|
|
15
15
|
**Scope**: cross-project
|
|
@@ -391,13 +391,13 @@ gap: 24px; /* "I'll tokenize this later" — no you won't, session memory is los
|
|
|
391
391
|
|
|
392
392
|
For the full document:
|
|
393
393
|
```
|
|
394
|
-
get_document_full({ path: "
|
|
394
|
+
get_document_full({ path: "web-authoring-standards" })
|
|
395
395
|
```
|
|
396
396
|
|
|
397
397
|
For specific sections:
|
|
398
398
|
```
|
|
399
|
-
get_section({ path: "
|
|
400
|
-
get_section({ path: "
|
|
401
|
-
get_section({ path: "
|
|
402
|
-
get_section({ path: "
|
|
399
|
+
get_section({ path: "web-authoring-standards", heading: "Hard Rules" })
|
|
400
|
+
get_section({ path: "web-authoring-standards", heading: "Token Priority" })
|
|
401
|
+
get_section({ path: "web-authoring-standards", heading: "Product Token Authoring (Sparky)" })
|
|
402
|
+
get_section({ path: "web-authoring-standards", heading: "Naming Schema" })
|
|
403
403
|
```
|
|
@@ -8,7 +8,7 @@ description: Guide for loading and using DesignerPunk web components in browsers
|
|
|
8
8
|
# Browser Distribution Guide
|
|
9
9
|
|
|
10
10
|
**Date**: 2025-12-23
|
|
11
|
-
**Last Reviewed**:
|
|
11
|
+
**Last Reviewed**: 2026-07-08
|
|
12
12
|
**Purpose**: Guide for loading and using DesignerPunk web components directly in browsers
|
|
13
13
|
**Organization**: process-standard
|
|
14
14
|
**Scope**: cross-project
|
|
@@ -345,9 +345,6 @@ Call-to-action button with variants, sizes, and icon support.
|
|
|
345
345
|
<button-cta label="Primary" variant="primary"></button-cta>
|
|
346
346
|
<button-cta label="Secondary" variant="secondary"></button-cta>
|
|
347
347
|
<button-cta label="Tertiary" variant="tertiary"></button-cta>
|
|
348
|
-
|
|
349
|
-
<!-- Disabled state -->
|
|
350
|
-
<button-cta label="Disabled" variant="primary" disabled></button-cta>
|
|
351
348
|
```
|
|
352
349
|
|
|
353
350
|
**Events:**
|