Password input

Takes a password, with a toggle to show what has been typed.

Refined portVue source: WildPasswordInput.vueReact component: WPasswordInput

Try it

Press the eye to show the password, or tab to it and press Enter.

••••••••••••
Size
Content
Error
Disabled
<WildPasswordInput
  v-model="password"
  size="lg"
/>

When to use

  • Use it wherever someone types a password, such as sign-in.
Don’t use it

Anatomy

The input, with a show-and-hide toggle inside the frame.

••••••••••••
masked
wildeye-2026
revealed
Password
empty
<WildPasswordInput v-model="password" />
<WildPasswordInput v-model="password" :revealed="true" />
Masked dots sit 2px apart so they can be counted. Reveal is a toggle, so the password stays shown until it’s pressed again.

States

The same five states as the text input.

rest
••••••••••••
hover
••••••••••••
focus
••••••••••••
error
••••••••••••
disabled
••••••••••••
The eye holds its place when focus or an error thickens the border.

Errors

Pass the message as error. The field shows it underneath, so it works outside a Form field.

•••••
At least 12 characters.
Say what’s needed: “At least 12 characters.”

Accessibility

The eye is a toggle button named Show password, and screen readers hear whether it’s pressed. It’s disabled with the field.

KeyWhat it does
TabMoves focus to the eye.
Enter / SpaceShows or hides the password.

Props

PropTypeDefaultDescription
modelValuestring—The password.
size'sm' | 'lg''lg'36px or 44px tall.
revealedbooleanfalseShows the password as text.
onReveal() => void—Called when the eye is pressed. Flip revealed here.
errorstring—Red border and a message underneath.
disabledbooleanfalseGreys the field and the eye.

Tokens

TokenValueWhere it lands
--radius-field10pxThe frame.
--global-blue-1000#1877F2Border on focus, 2px.
--color-error#E12121Error border and message.
--font-size-xs11pxThe error message.
--color-grey-800#7F7D83The eye at rest.
--color-grey-1000#2D2B32The eye on hover, and when revealed.
(no token)2pxLetter spacing of the masked dots.