Formularios
Password Input
Un campo de contraseña con el ojo adentro para mostrarla, y una barra de seguridad de 4 niveles opcional.
import { PasswordInput } from "sebs7n-ui/password-input"Ejemplos
Básico
El ojo va adentro del campo: muestra y oculta, con `aria-pressed`.
import { Field, FieldLabel } from "sebs7n-ui"
import { PasswordInput } from "sebs7n-ui/password-input"
function Basic() {
return (
<Field className="w-full max-w-sm">
<FieldLabel>Contraseña</FieldLabel>
<PasswordInput autoComplete="current-password" name="password" />
</Field>
)
}Con seguridad
`strength` suma la barra de 4 niveles con el nivel en texto: largo, mayúsculas y minúsculas, números y símbolos.
import { Field, FieldDescription, FieldLabel } from "sebs7n-ui"
import { PasswordInput } from "sebs7n-ui/password-input"
function WithStrength() {
return (
<Field className="w-full max-w-sm">
<FieldLabel>Contraseña nueva</FieldLabel>
<PasswordInput autoComplete="new-password" name="new-password" strength />
<FieldDescription>Al menos 8 caracteres. Para el acceso al portal de facturación.</FieldDescription>
</Field>
)
}Props
Generadas del TypeScript del paquete. Las propias del componente, más las heredadas del primitivo que tienen algo que explicar —marcadas «heredada de Base UI»—. El resto está en la línea «hereda de».
PasswordInput
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
defaultValue | Field.Control.Props['defaultValue'] | — | El valor inicial. Es la versión no controlada de value. |
disabled | boolean | — | Apaga la interacción y lo marca con data-disabled, que es el atributo del que cuelgan los estilos de apagado. |
labels | Partial<Labels["passwordInput"]> | — | Textos: show, strength y los niveles weak, fair, good, strong. |
onChange | ChangeEventHandler<T, HTMLInputElement> | — | Se llama en cada tecla, como en Input. Con value, es lo que lo mantiene al día. |
size | "sm" | "md" | "lg" | "md" | 28, 36 (default) o 40, como Input. |
strength | boolean | false | Una barra de 4 niveles abajo del campo, con el nivel en texto. |
value | React.ComponentProps<'input'>['value'] | — | El valor actual. Pasarlo lo vuelve controlado; para dejarlo libre, defaultValue. |
className | string | — | Clases del contenedor (el campo y la barra). |
Teclado
- Tab
- Entra al campo y después al ojo.
- Enter · Espacio
- En el ojo, muestra u oculta la contraseña.
Accesibilidad
- El ojo es un botón de alternar: se llama «Mostrar contraseña» y
aria-presseddice si se está mostrando. El nombre no cambia al apretarlo. - La barra es un
meternombrado por «Seguridad», con el nivel enaria-valuetext(«Buena») y en texto al lado; una región viva lo anuncia cuando cambia de nivel, no en cada tecla. - El color de la barra (rojo, ámbar, verde) acompaña: el nivel siempre está en texto.
Reglas de uso
strengthpara crear o cambiar una contraseña; para entrar, sin barra.- La barra es una guía por reglas (largo, mayúsculas y minúsculas, números, símbolos), no una política: lo que se acepta lo decide el servidor.
passwordStrengthexporta la misma cuenta. - Pasale
autoComplete(current-passwordonew-password): es lo que usan los gestores de contraseñas. - Solo por subpath (
sebs7n-ui/password-input): no está en el barrel, por peso.