Skip to content

Tokens (Phase 2)

Scope - Establish design token sources for spacing, radius, elevation now; extend to typography, motion later. - Generate XAML dictionaries consumed by SmrtHub.UI.

Files - src/SmrtHub.Tools.TokenGen/config/tokens.json - src/SmrtHub.Tools.TokenGen/config/palettes.json - Output to src/SmrtHub.UI/Themes/Tokens and src/SmrtHub.UI/Themes/Palettes.

Naming - Spacing: Spacing.2, Spacing.4, Spacing.8 - Radius: Radius.M, Radius.L - Elevation: Elevation.Level1, Elevation.Level2 - Opacity: Opacity.Disabled, Opacity.Hover - Focus: Focus.OutlineThickness, Focus.OutlineBrush - Typography: Typography.Size.Body, Typography.Weight.Medium - Motion: Motion.Duration.Normal, Motion.Easing.Standard - Colors: Color.Text.Primary, etc.

Usage in XAML

<ResourceDictionary.MergedDictionaries>
  <ResourceDictionary Source="/SmrtHub.UI;component/Themes/Tokens/BaseTokens.xaml" />
  <ResourceDictionary Source="/SmrtHub.UI;component/Themes/Palettes/Theme.Light.xaml" />
</ResourceDictionary.MergedDictionaries>

Notes - HighContrast palette provided; consume at runtime via theme service when implemented. - Typography sizes are doubles; weights are strings (map to FontWeights in styles). - Motion durations stored as doubles (ms); easing names are strings (bind to appropriate easing in code/styles later).