Forms
Inputs, selects, checkboxes, labels, help/error text, toggles, and layout
helpers. Shared shells are exposed as
.form-control and
.form-choice.
Text inputs — .form-control + .form-input, .form-input .form-input-error
This is a help message.
Please enter a valid email address.
<label class="form-label">Label</label>
<input type="text" class="form-control form-input" />
<label class="form-label form-label-required">Required</label>
<input type="text" class="form-control form-input" />
<p class="form-help">Help text.</p>
<input type="email" class="form-control form-input form-input-error" />
<p class="form-error">Error message.</p>
<input type="text" disabled class="form-control form-input" />
Select — .form-control + .form-select
<select class="form-control form-select">
<option>Monthly</option>
<option>Yearly</option>
</select>
Textarea — .form-control + .form-textarea, .form-textarea .form-textarea-error
<textarea rows="3" class="form-control form-textarea"></textarea>
Checkbox & Radio — .form-choice + .form-checkbox / .form-radio
<div class="flex items-center gap-2">
<input type="checkbox" class="form-choice form-checkbox" id="ck1" />
<label for="ck1">I agree</label>
</div>
<input type="radio" name="plan" class="form-choice form-radio" id="r1" />
<label for="r1">Monthly</label>
File upload — .form-file, .form-file-dropzone
<input type="file" class="form-file" />
<label class="form-file-dropzone">
<div class="text-center">
Drop files here
</div>
</label>
Toggle switch — .form-toggle + .form-toggle-track
<!-- Sizes: form-toggle-track form-toggle-track-sm / form-toggle-track / form-toggle-track form-toggle-track-lg -->
<label class="form-toggle">
<input type="checkbox" checked class="peer sr-only" />
<div class="form-toggle-track form-toggle-track-sm"></div>
<span class="ml-3 text-sm">Small</span>
</label>
<label class="form-toggle">
<input type="checkbox" checked class="peer sr-only" />
<div class="form-toggle-track"></div>
<span class="ml-3 text-sm">Default (on)</span>
</label>
<label class="form-toggle">
<input type="checkbox" class="peer sr-only" />
<div class="form-toggle-track"></div>
<span class="ml-3 text-sm">Default (off)</span>
</label>
<label class="form-toggle">
<input type="checkbox" checked class="peer sr-only" />
<div class="form-toggle-track form-toggle-track-lg"></div>
<span class="ml-3 text-sm">Large</span>
</label>
Inline form row — .form-inline
<div class="form-inline">
<input class="form-control form-input has-addon-right" />
<button class="btn-danger form-addon-right">Search</button>
</div>
Input addons — .form-addon
https://
@example.com
USD
<div class="form-addon">
<span class="form-addon-left">https://</span>
<input type="text" class="form-control form-input has-addon-left" />
</div>
<div class="form-addon">
<input type="text" class="form-control form-input has-addon-right" />
<span class="form-addon-right">@example.com</span>
</div>
<div class="form-addon">
<span class="form-addon-left form-addon-disabled">USD</span>
<input type="text" class="form-control form-input has-addon-left" disabled />
</div>