Checkboxes
Styled via appearance: none + ::after clip-path checkmark. Switch (data-switch) is excluded.
Indeterminate (set via JS):
Radio Buttons
Inner dot via ::after with inset: 3px; border-radius: 50%.
Switch (data-switch)
Excluded from checkbox normalization via :not([data-switch]). Unchanged.
Text Inputs (token-driven)
Now use --input-* tokens for border, background, radius, focus.
Select
Chevron sourced from --select-chevron token.
Range Slider
Token-driven track and thumb. CSS-only fill via --_pct custom property (JS syncs it).
File Input
::file-selector-button styled to match VB button appearance.
Color Input
appearance: none + swatch pseudo-element. Native OS picker preserved.
Progress
Uses --progress-h, --progress-track-bg, --progress-fill tokens. Color variants use semantic tokens.
Meter
Uses --meter-h and --progress-track-bg tokens. Semantic colors via --color-success/warning/error.
Token Override Demo
Override form tokens inline to see how theming works.