Input

Clean, accessible text inputs with subtle inset shadows, smooth focus rings, and first-class dark mode support.

Basic Input

<input type="text" class="sol-input" placeholder="Enter your name…">

With Label

<div class="sol-input-group">
  <label class="sol-label">Email address</label>
  <input type="email" class="sol-input" placeholder="you@example.com">
</div>

Validation States

Add sol-input-error to show an error focus ring.

<!-- Error state -->
<input type="text" class="sol-input sol-input-error" value="invalid">

<!-- Success state (manual inline style or custom class) -->
<input type="text" class="sol-input"
  style="border-color: var(--color-success);
         box-shadow: 0 0 0 3px rgba(52,199,89,0.15)"
  value="valid_user">

Disabled

<input type="text" class="sol-input" placeholder="Disabled…" disabled>

API

ClassDescription
sol-inputBase input styles — always required
sol-input-groupFlex column wrapper with gap for label + input
sol-labelStyled label element
sol-input-errorRed border + red focus glow
♿ Accessibility Always pair inputs with a visible <label> or use aria-label. The sol-input-group + sol-label pattern handles this automatically.