Skip to content

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) ​

EmailNo enviamos spam.Email inválido.

Con estilos personalizados ​

Nombre de UsuarioEste es el nombre público en tu perfil.El nombre ya está en uso.
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/field
bash
npm install @headless-primitives/field
bash
yarn add @headless-primitives/field
bash
bun add @headless-primitives/field

Features ​

  • ♿️ aria-labelledby, aria-describedby y for gestionados automáticamente.
  • 🔗 Contexto por proximidad — los sub-componentes coordinan IDs con el hp-field ancestro.
  • 🎨 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 ​

PropiedadTipoDescripción
baseIdstringPrefijo ú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}-control si no se especifica.
  • id — Se asigna {baseId}-label si no se especifica.

hp-field-description ​

Descripción del campo.

Atributos gestionados automáticamente ​

  • id — Se asigna {baseId}-description. Incluido en aria-describedby del 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 en aria-describedby del 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.

Lanzado bajo la MIT License.