Input

Text input field for user data entry. Heights align to grid rows.

Default

Base

ClassDescription
.ui-inputBase class

Size

ClassValue
.ui-input--smsm
.ui-input--lglg

Variant

ClassValue
.ui-input--filledfilled
.ui-input--ghostghost

State

ClassValue
.ui-input--errorerror
.ui-input--successsuccess

Auto-size

ClassDescription
.ui-input--auto-sizeauto-size

Block

ClassDescription
.ui-input--blockblock

Override these CSS custom properties to customize the component.

TokenDefaultDescription
--ui-input-height var(--ui-row-2) Overall height
--ui-input-padding-x var(--ui-space-1) Horizontal padding
--ui-input-font-size var(--ui-font-size-sm) Font size
--ui-input-radius var(--ui-radius-md) Corner radius
--ui-input-bg var(--ui-color-bg) Background color
--ui-input-border-color var(--ui-color-border-strong) Border color
--ui-input-border-color-focus var(--ui-color-primary) Border color focus
--ui-input-color var(--ui-color-text) Text color
--ui-input-placeholder var(--ui-color-text-muted) Placeholder
--ui-input-height-sm calc(var(--ui-row) * 1.5) Overall height at small size
--ui-input-font-size-sm var(--ui-font-size-xs) Font size at small size
--ui-input-height-lg calc(var(--ui-row) * 2.5) Overall height at large size
--ui-input-padding-x-lg var(--ui-space-2) Horizontal padding at large size
--ui-input-font-size-lg var(--ui-font-size-md) Font size at large size
--ui-input-filled-bg var(--ui-color-bg-muted) Filled bg
--ui-input-error-border var(--ui-color-danger) Error border
--ui-input-success-border var(--ui-color-success) Success border

Sizes

<input class="ui-input ui-input--sm" type="text" placeholder="Small (1.5 rows)"></input>
<input class="ui-input" type="text" placeholder="Default (2 rows)"></input>
<input class="ui-input ui-input--lg" type="text" placeholder="Large (2.5 rows)"></input>

Variants

<input class="ui-input" type="text" placeholder="Outline (default)"></input>
<input class="ui-input ui-input--filled" type="text" placeholder="Filled"></input>
<input class="ui-input ui-input--ghost" type="text" placeholder="Ghost"></input>

States

<input class="ui-input" type="text" placeholder="Default"></input>
<input class="ui-input ui-input--error" type="text" value="Invalid input"></input>
<input class="ui-input ui-input--success" type="text" value="Valid input"></input>
<input class="ui-input" type="text" placeholder="Disabled" disabled></input>
<input class="ui-input" type="text" value="Read only" readonly></input>

Full Width

<input class="ui-input ui-input--block" type="text" placeholder="Full width input"></input>

Auto Size

<!-- Auto-sizing textarea grows with content. Requires browser support for field-sizing. -->
<textarea class="ui-input ui-input--auto-size ui-input--block" placeholder="Type here and watch it grow..."></textarea>
<input class="ui-input ui-input--auto-size" type="text" placeholder="Auto-sizing input"></input>

With Prefix Icon

<div class="ui-input-group ui-input-group--has-prefix">
  <span class="ui-input-group__addon ui-input-group__addon--start">
    <svg class="ui-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
      <circle cx="11" cy="11" r="8"></circle>
      <path d="m21 21-4.3-4.3"></path>
    </svg>
  </span>
  <input class="ui-input ui-input--block" type="search" placeholder="Search..."></input>
</div>

With Suffix Icon

<div class="ui-input-group ui-input-group--has-suffix">
  <input class="ui-input ui-input--block" type="email" placeholder="Email address"></input>
  <span class="ui-input-group__addon ui-input-group__addon--end">
    <svg class="ui-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
      <rect width="20" height="16" x="2" y="4" rx="2"></rect>
      <path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path>
    </svg>
  </span>
</div>

With Both Addons

<div class="ui-input-group ui-input-group--has-prefix ui-input-group--has-suffix">
  <span class="ui-input-group__addon ui-input-group__addon--start">
    <svg class="ui-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
      <path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path>
      <circle cx="12" cy="7" r="4"></circle>
    </svg>
  </span>
  <input class="ui-input ui-input--block" type="text" placeholder="Username"></input>
  <span class="ui-input-group__addon ui-input-group__addon--end ui-input-group__addon--interactive">
    <svg class="ui-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
      <path d="M18 6 6 18"></path>
      <path d="m6 6 12 12"></path>
    </svg>
  </span>
</div>