Form Controls

Every styleable form control renders through VB's token system. Themes override tokens, not selectors.

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

Select option

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.

70% Complete 60% 30% Loading...

Meter

Uses --meter-h and --progress-track-bg tokens. Semantic colors via --color-success/warning/error.

90% 50% 15%

Token Override Demo

Override form tokens inline to see how theming works.

Custom token scope