Style Module
Feature 093 (E3) — the single, pure, total, deterministic state→style resolver that replaces procedural per-kind styling for the migrated controls. No selector matching, no specificity algebra, no cross-control cascade (permanent roadmap non-goals).
Functions and values
| Function or value |
Description
|
Full Usage:
resolve theme baseStyle classes state
Parameters:
Theme
baseStyle : ResolvedStyle
classes : StyleClass list
state : VisualState
Returns: ResolvedStyle
|
Pure, total, deterministic. Precedence (FR-003), last-writer-wins per `ResolvedStyle`
field:
`baseStyle` (the migrated kind's default, supplied by the caller)
< each class in attach order (earlier < later)
< current visual state.
A visual state's value for a field overrides any class's value for the same field; a
later-attached class overrides an earlier one. `theme` carries the active palette
(DTCG-generated `DesignTokens`); every colour the variant/state layers read originates
from it — no inline literals (FR-008). For the default (no-class, `Normal`) case
`resolve theme baseStyle [] Normal = baseStyle` exactly (parity, FR-005, SC-003).
Total over every `(Theme, ResolvedStyle, StyleClass list, VisualState)`: every
`StyleVariant`, any `Custom` string (unknown ⇒ identity delta, never an exception or
silent drop), and all eight `VisualState` cases (FR-002, FR-004).
|