Todos los componentes (204)
Partes de un campo
Campos · FieldLabel
Qué es y cuándo usarlo
Las piezas con las que están hechos todos los campos de la biblioteca: FieldLabel, FieldHint y FieldError, más la función fieldClasses para la raíz. Sirven para que un campo propio se vea igual que los demás.
Cuándo usarlo
- Cuando ningún campo de la biblioteca encaja y hay que montar uno a mano con un control nativo (
<input>,<select>…). fieldClasses({ size, variant })en la raíz,amset-field__controlen la caja yamset-field__entryen la entrada: así hereda tamaños, variantes, foco y error.requiredenFieldLabelsolo pinta el asterisco; lo que hace obligatorio el campo es el propio control (requiredoaria-required).
Cuándo no
- Si el campo ya existe:
TextField,TextArea,NumberField,SearchFieldoSelecttraen las piezas puestas y enlazadas.
Teclado: las piezas no son interactivas; el teclado es el del control al que acompañan.
Accesibilidad: dentro de los campos de la biblioteca, FieldLabel es un <label> enlazado al control (pulsarla lleva el foco al campo) y FieldHint y FieldError se enlazan por aria-describedby. Sueltas se pintan igual, pero no se enlazan solas: en un campo propio, el control tiene que quedar nombrado (dentro de la etiqueta, o con aria-labelledby) y la ayuda y el error enlazados con aria-describedby, poniéndoles un id en un elemento que las envuelva. El asterisco lleva aria-hidden: no entra en el nombre. FieldError solo se pinta cuando recibe el texto en error, con su icono y una transición corta; marcar el control como no válido es cosa del control (aria-invalid). hidden deja la etiqueta solo para el lector de pantalla: nunca para ahorrar sitio.
Aspecto fino: --amset-field-label (letra de la etiqueta) y --amset-field-description (ayuda y error), --amset-field-required-display (con none se esconde el asterisco de obligatorio; el lector lo sigue anunciando), y las clases amset-field__label, amset-field__required, amset-field__hint y amset-field__error.
Cómo se ve
<div className={fieldClasses({})}>
<FieldLabel required>Referencia del pedido</FieldLabel>
<div className="amset-field__control">
<MiControl className="amset-field__entry" />
</div>
<FieldHint>Viene en el correo de confirmacion del pedido</FieldHint>
</div>Props
Se importa con import { FieldLabel } from '@amset/ui'. Las obligatorias van marcadas.
| Prop | Tipo | Para qué sirve |
|---|---|---|
childrenobligatoria | ReactNode | — |
hidden | boolean | Solo para el lector de pantalla. Nunca para ahorrar sitio. |
required | boolean | — |
En el banco de pruebas
Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech:
