Forms & Inputs

Inputs that feel carved into the surface with inset shadows.

Some sections on this page require softui.js for interactive behavior.

Create Account

Create Account

United States
United Kingdom
Canada
Australia
<div class="sui-card">
  <h4>Create Account</h4>
  <div class="form-row">
    <div class="sui-form-group">
      <label class="sui-label">First Name</label>
      <input type="text" class="sui-input" placeholder="John">
    </div>
    <div class="sui-form-group">
      <label class="sui-label">Last Name</label>
      <input type="text" class="sui-input" placeholder="Doe">
    </div>
  </div>
  <div class="sui-form-group">
    <label class="sui-label">Email</label>
    <input type="email" class="sui-input" placeholder="john@example.com">
  </div>
  <div class="sui-form-group">
    <label class="sui-label">Password</label>
    <input type="password" class="sui-input" placeholder="Enter password">
  </div>
  <div class="sui-form-group">
    <label class="sui-label">Country</label>
    <div class="sui-styled-select" data-placeholder="Select a country">
      <button class="sui-styled-select-trigger">
        <span class="sui-styled-select-value sui-styled-select-placeholder">Select a country</span>
      </button>
      <div class="sui-styled-select-menu">
        <div class="sui-styled-select-option" data-value="us">United States</div>
        <div class="sui-styled-select-option" data-value="uk">United Kingdom</div>
      </div>
    </div>
  </div>
  <div class="sui-form-group">
    <label class="sui-label">Bio</label>
    <textarea class="sui-input sui-textarea" rows="3" placeholder="Tell us about yourself..."></textarea>
  </div>
  <div class="sui-form-group">
    <label class="sui-label">Experience</label>
    <input type="range" class="sui-range" min="0" max="100" value="60">
  </div>
  <button class="sui-btn sui-btn-primary sui-btn-block">Create Account</button>
</div>

Text Inputs

<input type="text" class="sui-input" placeholder="Default input">
<input type="text" class="sui-input sui-input-sm" placeholder="Small input">
<input type="text" class="sui-input sui-input-lg" placeholder="Large input">
<input type="text" class="sui-input sui-input-pill" placeholder="Pill input">

Input States

This field is required.
Looks good!
<input type="text" class="sui-input sui-input-focus" placeholder="Focused input">

<input type="text" class="sui-input sui-input-error" placeholder="Error input">
<span class="sui-hint sui-hint-error">This field is required.</span>

<input type="text" class="sui-input sui-input-success" placeholder="Success input">
<span class="sui-hint sui-hint-success">Looks good!</span>

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

Input Group

@
$.00
<div class="sui-input-group">
  <span class="sui-input-addon">@</span>
  <input type="text" class="sui-input" placeholder="Username">
</div>

<div class="sui-input-group">
  <input type="text" class="sui-input" placeholder="Search...">
  <button class="sui-btn sui-btn-primary">Go</button>
</div>

Password Input

8–20 characters
One uppercase letter
One number
One special character
<div class="sui-form-group">
  <label class="sui-label">Password</label>
  <div class="sui-password-input">
    <input type="password" class="sui-input" placeholder="Enter password">
    <button type="button" class="sui-password-toggle sui-swap sui-swap-fade" aria-label="Toggle password visibility">
      <span class="sui-swap-on">
        <svg viewBox="0 0 24 24"><path d="M17.94 17.94A10.07 10.07 0 0112 20c-7 0-11-8-11-8a18.45 18.45 0 015.06-5.94M9.9 4.24A9.12 9.12 0 0112 4c7 0 11 8 11 8a18.5 18.5 0 01-2.16 3.19m-6.72-1.07a3 3 0 11-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg>
      </span>
      <span class="sui-swap-off">
        <svg viewBox="0 0 24 24"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
      </span>
    </button>
  </div>
  <div class="sui-password-rules">
    <div class="sui-password-rule">8–20 characters</div>
    <div class="sui-password-rule">One uppercase letter</div>
    <div class="sui-password-rule">One number</div>
    <div class="sui-password-rule">One special character</div>
  </div>
</div>

<div class="sui-form-group">
  <label class="sui-label">Confirm Password</label>
  <div class="sui-password-input">
    <input type="password" class="sui-input" placeholder="Confirm password">
    <button type="button" class="sui-password-toggle sui-swap sui-swap-fade" aria-label="Toggle password visibility">
      <span class="sui-swap-on">
        <svg viewBox="0 0 24 24"><path d="M17.94 17.94A10.07 10.07 0 0112 20c-7 0-11-8-11-8a18.45 18.45 0 015.06-5.94M9.9 4.24A9.12 9.12 0 0112 4c7 0 11 8 11 8a18.5 18.5 0 01-2.16 3.19m-6.72-1.07a3 3 0 11-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></svg>
      </span>
      <span class="sui-swap-off">
        <svg viewBox="0 0 24 24"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></svg>
      </span>
    </button>
  </div>
  <span class="sui-hint sui-hint-error">Passwords do not match.</span>
  <!-- or -->
  <span class="sui-hint sui-hint-success">Passwords match!</span>
</div>

Number Input

Default
Small
Large
With Step (0.5)
<div class="sui-number-input">
  <button type="button" class="sui-number-input-btn" data-action="decrement">&minus;</button>
  <input type="number" class="sui-input" value="5" min="0" max="100">
  <button type="button" class="sui-number-input-btn" data-action="increment">+</button>
</div>

<!-- Small -->
<div class="sui-number-input sui-number-input-sm">
  <button type="button" class="sui-number-input-btn" data-action="decrement">&minus;</button>
  <input type="number" class="sui-input" value="3" min="0" max="99">
  <button type="button" class="sui-number-input-btn" data-action="increment">+</button>
</div>

<!-- Large -->
<div class="sui-number-input sui-number-input-lg">
  <button type="button" class="sui-number-input-btn" data-action="decrement">&minus;</button>
  <input type="number" class="sui-input" value="12" min="0" max="999">
  <button type="button" class="sui-number-input-btn" data-action="increment">+</button>
</div>

<!-- With Step -->
<div class="sui-number-input">
  <button type="button" class="sui-number-input-btn" data-action="decrement">&minus;</button>
  <input type="number" class="sui-input" value="2.5" min="0" max="10" step="0.5">
  <button type="button" class="sui-number-input-btn" data-action="increment">+</button>
</div>

Tags Input

Design Frontend
<div class="sui-form-group">
  <label class="sui-label">Tags</label>
  <div class="sui-tags-input">
    <span class="sui-chip">Design<button class="sui-chip-close" aria-label="Remove"></button></span>
    <span class="sui-chip">Frontend<button class="sui-chip-close" aria-label="Remove"></button></span>
    <input type="text" class="sui-tags-input-field" placeholder="Add tag...">
  </div>
</div>

<!-- Empty tags input -->
<div class="sui-tags-input">
  <input type="text" class="sui-tags-input-field" placeholder="Add skills...">
</div>

Select & Textarea

Option One
Option Two
Option Three
<div class="sui-styled-select" data-placeholder="Select an option">
  <button class="sui-styled-select-trigger">
    <span class="sui-styled-select-value sui-styled-select-placeholder">Select an option</span>
  </button>
  <div class="sui-styled-select-menu">
    <div class="sui-styled-select-option" data-value="1">Option One</div>
    <div class="sui-styled-select-option" data-value="2">Option Two</div>
    <div class="sui-styled-select-option" data-value="3">Option Three</div>
  </div>
</div>

<textarea class="sui-input sui-textarea" rows="3" placeholder="Write something..."></textarea>

<input type="range" class="sui-range" min="0" max="100" value="50">

Delete this item?

This action cannot be undone. This will permanently delete the item and remove all associated data.