Password Input

Secure password field with toggle visibility button.

Default

Base

ClassDescription
.ui-password-inputBase class

Size

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

State

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

Block

ClassDescription
.ui-password-input--blockblock

Disabled

ClassDescription
.ui-password-input--disableddisabled

Override these CSS custom properties to customize the component.

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

Sizes

<div class="ui-password-input ui-password-input--sm">
  <input class="ui-password-input__field" type="password" placeholder="Small"></input>
  <button class="ui-password-input__toggle" type="button" aria-label="Show password">
    <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"></path>
      <circle cx="12" cy="12" r="3"></circle>
    </svg>
  </button>
</div>
<div class="ui-password-input">
  <input class="ui-password-input__field" type="password" placeholder="Default"></input>
  <button class="ui-password-input__toggle" type="button" aria-label="Show password">
    <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"></path>
      <circle cx="12" cy="12" r="3"></circle>
    </svg>
  </button>
</div>
<div class="ui-password-input ui-password-input--lg">
  <input class="ui-password-input__field" type="password" placeholder="Large"></input>
  <button class="ui-password-input__toggle" type="button" aria-label="Show password">
    <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"></path>
      <circle cx="12" cy="12" r="3"></circle>
    </svg>
  </button>
</div>

Block

<!-- Full-width layout. -->
<div class="ui-password-input ui-password-input--block">
  <input class="ui-password-input__field" type="password" placeholder="Full width"></input>
  <button class="ui-password-input__toggle" type="button" aria-label="Show password">
    <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"></path>
      <circle cx="12" cy="12" r="3"></circle>
    </svg>
  </button>
</div>

States

<div class="ui-password-input ui-password-input--error">
  <input class="ui-password-input__field" type="password" value="wrongpass"></input>
  <button class="ui-password-input__toggle" type="button" aria-label="Show password">
    <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"></path>
      <circle cx="12" cy="12" r="3"></circle>
    </svg>
  </button>
</div>
<div class="ui-password-input ui-password-input--success">
  <input class="ui-password-input__field" type="password" value="correctpass"></input>
  <button class="ui-password-input__toggle" type="button" aria-label="Show password">
    <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"></path>
      <circle cx="12" cy="12" r="3"></circle>
    </svg>
  </button>
</div>
<div class="ui-password-input ui-password-input--disabled">
  <input class="ui-password-input__field" type="password" placeholder="Disabled" disabled></input>
  <button class="ui-password-input__toggle" type="button" aria-label="Show password" disabled>
    <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"></path>
      <circle cx="12" cy="12" r="3"></circle>
    </svg>
  </button>
</div>