Skip to content
Password input - Web Component
The PasswordInput component can be used imported from:
Playground
Parameters
...
Events
This component has events. Check the documentation about how to use the events.
Name | Payload | Description |
---|---|---|
change | string | Returns the new value of the "value" attribute |
enter | void | Triggered when "Enter" in pressed |
restarted | void | Emitted on value reset |
blur | void | Emitted on blur |
Slots
This component has slots. Check the documentation about how to use the slots.
Name | Tags | Description |
---|---|---|
default | span |
Parameters use
config
The config
parameter is used to set the shape of the input between lined
and shaped
. Being omitted will render the default line
shape.
label
The label
parameter is used to set the text label of the component. Make sure you always use it.
model
The model
parameter is used to set the value for the input.
name
The name
parameter is used to set the name of the component. This is useful when the component is part of a form.
help-text
The help-text
parameter is used to provide additional assistance to the user.
Flags
disabled
The disabled
parameter is used to block the interaction with the component. Not to be confused with readonly
.
required
The required
parameter is used to set the component as required.
readonly
The readonly
parameter is used to set the input in a read-only state. It's commonly used to display information.
invalid
The invalid
parameter is used to force the component to be invalid.
Special uses
Security level UI
We can use some extra Javascript and CSS to achieve a more visual validation interface for our password inputs. In this case we bind the input model
and we use the help-text
slot to present a discretized progress made with <div>
tags that are activated with a data-active
attributed that is set depending of the model
length. We make the input invalid
if the model
length is 0
.
So with some extra JavaScript added to this HTML:
And some SCSS styling, we achieve the functionality:
scss
#security-example {
&:has(div[data-active] + div[data-active])::part(input) {
border-color: var(--zc-lemon-aa);
}
&:has(div[data-active] + div[data-active] + div[data-active])::part(input) {
border-color: var(--zc-moss-100);
}
output[slot="help-text"] {
display: grid;
gap: var(--zs-25);
grid-template-columns: repeat(3, 1fr);
padding-top: var(--zs-25);
width: 100%;
> div {
background-color: var(--zg-8);
height: var(--zs-50);
}
> div[data-active] {
background-color: var(--zc-peach-aa);
&:has(+ div[data-active]),
&:first-child + div[data-active] {
background-color: var(--zc-lemon-aa);
}
&:has(+ div[data-active] + div[data-active]),
& + div[data-active]:has(+ div[data-active]),
&:last-child {
background-color: var(--zc-moss-100);
}
}
}
}
Methods
reset()
We can all the reset()
method of the WebComponent in order to reset the value. This will clean the internal states and emit the nullable value with the change
event, plus a restarted
event:
In this example, the button triggers the method:
Value:
undefined
Browser support
Detected engine:
Chromium
Webkit
Gecko