Saltar al contenido
EspañolEnglish
Todos los componentes (204)

Controles pegados

Acciones · CompactGroup

Qué es y cuándo usarlo

Un campo con su botón, o varios campos, pegados sin huecos y con las esquinas de unión cuadradas: el buscador con «Buscar», el cupón con «Aplicar», un prefijo con su número. Los campos ocupan lo que sobra y los botones, lo suyo.

Cuándo usarlo

  • Una acción que va con UN campo y se entiende junta: buscar, aplicar un cupón, añadir.

Cuándo no

  • Solo botones: es ButtonGroup, que hace lo mismo.
  • Un campo con un prefijo que es parte del valor (un teléfono): PhoneField ya lo trae.

Los campos de dentro llevan hiddenLabel. Con la etiqueta a la vista, la caja baja debajo del texto y deja de alinear con el botón. La etiqueta se sigue anunciando y el grupo lleva su propio nombre. La ayuda y el error salen debajo sin mover a los demás.

Teclado: Tab recorre los controles, como si estuvieran sueltos. Accesibilidad: role="group" y label obligatoria.

Aspecto fino: hereda el de cada campo y botón. El pegado se hace quitando el radio interior y solapando un borde, no con gap: 0, que dejaría la raya del medio del doble de gruesa.

Cómo se ve

Ese cupón ha caducado

<CompactGroup label="Buscar clientes">
  <TextField label="Buscar" hiddenLabel placeholder="Nombre o correo" />
  <Button variant="solid">Buscar</Button>
</CompactGroup>

Props

Se importa con import { CompactGroup } from '@amset/ui'. Las obligatorias van marcadas.

PropTipoPara qué sirve
childrenobligatoriaReactNodeLos controles pegados: campos y botones, en el orden en que se ven.
labelobligatoriastringComo se llama el grupo: «Buscar clientes». Sin el, el lector de pantalla nombra los controles sueltos y se pierde que van juntos.
classNamestringSe une a las clases de la biblioteca, no las sustituye.
orientation"horizontal" | "vertical"—

Acepta además los atributos del elemento que pinta: className, style, data-*, aria-* y sus eventos.

En el banco de pruebas

Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech: