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).