Skip to content

Radios

RadioGroup owns the selection state. React wraps Base UI’s Radio.Root; vanilla styles a native <input type="radio">. A <label> wrapping a .radio lays out inline automatically.

<div class="radio-group" role="radiogroup">
<label>
<input type="radio" name="size" value="sm" class="radio" /> Small
</label>
<label>
<input type="radio" name="size" value="md" class="radio" checked /> Medium
</label>
<label>
<input type="radio" name="size" value="lg" class="radio" /> Large
</label>
</div>
<div class="radio-group radio-group-vertical" role="radiogroup">
<label>
<input type="radio" name="plan" value="free" class="radio" checked /> Free
</label>
<label>
<input type="radio" name="plan" value="pro" class="radio" /> Pro
</label>
<label>
<input type="radio" name="plan" value="enterprise" class="radio" />
Enterprise
</label>
</div>
<div class="radio-group" role="radiogroup">
<label>
<input type="radio" name="t" value="a" class="radio" disabled /> Option A
</label>
<label>
<input type="radio" name="t" value="b" class="radio" disabled checked />
Option B
</label>
</div>