Field Nuevo
El componente hp-field orquesta automáticamente la accesibilidad entre etiquetas, descripciones, mensajes de error y controles de formulario. Genera IDs únicos y vincula aria-labelledby, aria-describedby y for sin intervención manual.
Demostración
Sin estilos (solo base.css)
Con estilos personalizados
html
<hp-field class="field-container">
<hp-field-label>Email</hp-field-label>
<hp-field-description>No enviamos spam.</hp-field-description>
<hp-field-control>
<input type="email" />
</hp-field-control>
<hp-field-error>Email inválido.</hp-field-error>
</hp-field>css
.field-container {
display: flex;
flex-direction: column;
gap: 4px;
}
hp-field-label {
font-weight: bold;
}
hp-field-description {
font-size: 12px;
color: gray;
}
hp-field-error {
color: red;
}Instalación
bash
pnpm add @headless-primitives/fieldbash
npm install @headless-primitives/fieldbash
yarn add @headless-primitives/fieldbash
bun add @headless-primitives/fieldFeatures
- ♿️
aria-labelledby,aria-describedbyyforgestionados automáticamente. - 🔗 Contexto por proximidad — los sub-componentes coordinan IDs con el
hp-fieldancestro. - 🎨 Sin estilos visuales (Headless).
- 📋 Soporte para label, description, error y control.
Anatomía
html
<hp-field>
<hp-field-label></hp-field-label>
<hp-field-description></hp-field-description>
<hp-field-control>
<input type="text" />
</hp-field-control>
<hp-field-error></hp-field-error>
</hp-field>API Reference
hp-field
Contenedor raíz que genera un baseId estable para coordinar IDs.
Propiedades de solo lectura
| Propiedad | Tipo | Descripción |
|---|---|---|
baseId | string | Prefijo único para IDs de label, control, descripción y error. |
Atributos ARIA gestionados automáticamente
role="group"— Asignado si no se especifica.
hp-field-label
Label accesible para el control.
Atributos gestionados automáticamente
for— Apunta a{baseId}-controlsi no se especifica.id— Se asigna{baseId}-labelsi no se especifica.
hp-field-description
Descripción del campo.
Atributos gestionados automáticamente
id— Se asigna{baseId}-description. Incluido enaria-describedbydel control.
hp-field-error
Mensaje de error del campo.
Atributos ARIA gestionados automáticamente
role="alert"— Asignado si no se especifica.id— Se asigna{baseId}-error. Incluido enaria-describedbydel control.
hp-field-control
Wrapper del control real. Inyecta id, aria-labelledby y aria-describedby automáticamente.
Accesibilidad
hp-field garantiza vinculación semántica automática entre label, description, error y control, cumpliendo los estándares WAI-ARIA para Labels and Descriptions.
