Form

Complete set: input / textarea / select / checkbox / radio / switch / file. Smart validation via :user-invalid (with legacy fallback).

Full form

We only use it to contact you.

<form class="form">
  <div class="form__group">
    <label class="required">Required</label>
    <input type="text" required>
  </div>
  <label class="form__switch"><input type="checkbox"> Label</label>
  <div class="form__actions"><button class="btn">OK</button></div>
</form>

Input group (addons)

$ USD
<div class="form__input-group">
  <span class="form__input-addon">$</span>
  <input type="number">
  <span class="form__input-addon">USD</span>
</div>

Modifiers

ClassEffect
.formGrid layout with gap.
.form__groupField wrapper (label + input + hint).
.form__rowMultiple fields side-by-side.
.form__checkbox / .form__radio / .form__switchStyled control wrappers.
.form__input-group / .form__input-addonPrefix/suffix addons.
.form__file / .form__file--compactStyled file input.
.form__rangeStyled range slider.
.form__hint / .form__errorHelp / error message slots.
.form__actionsButton row at the bottom.
label.requiredAppends a red asterisk.
[aria-invalid="true"]Forces the error border regardless of interaction state.