Saltar al contenido
Alea0.1
Pro
  1. Alea
  2. Componentes
  3. Acciones
  4. IconButton

Acciones

IconButton

Un botón con solo un ícono, para barras de herramientas y lugares compactos. Necesita un aria-label.

import { IconButton } from '@alea/ui';

Ejemplos

Botones de ícono

Todos los estilos de Button, con un aria-label en vez de una etiqueta visible. Agrega un Tooltip con las mismas palabras.

Tamaños y formas

Círculo por defecto, cuadrado con el radio de los controles.

Configuraciones

Cada valor de cada propiedad, lado a lado. Los números coinciden con la leyenda.

rounded
square
circle
xs
sm
md
lg
xl
neutral
accent
success
warning
danger
info
tooltip: false
tooltip: true
ghost
primary
secondary
soft
text
dashed
danger
link
  1. Shapeshape
  2. Sizesize
  3. Tonetone
  4. Tooltiptooltip
  5. Variantvariant

Estados

Cada estado de interacción, forzado para compararlos, en ambos temas.

Oscuro

Habilitado
Hover
Foco
Presionado
Disabled
Loading
Success

Claro

Habilitado
Hover
Foco
Presionado
Disabled
Loading
Success

Anatomía

Las partes del componente y la clase que da estilo a cada una.

Medidas

Medido del componente renderizado a 2x: alto, ancho, padding, radio e icono.

sizeAltoAnchoPadding (y · x)RadioTamaño de textoIconoSeparación
xs-------
sm-------
md-------
lg-------
xl-------

Cada tamaño y espacio es múltiplo de 4 px.

Tokens

Los tokens de diseño que usa este componente, con su valor en el tema actual. Cambia cualquiera para darle otro estilo.

Radius

  • --alea-radius-sm…
  • --alea-radius-xs…

Component

  • --alea-button-h…
  • --alea-button-icon…
  • --alea-icon-button-icon…

Props

IconButton props

Un botón con solo un ícono. aria-label es obligatorio; tooltip también lo muestra a quienes ven la pantalla.

PropTipoPor defectoDescripción
aria-labelobligatoriastring-Qué hace el botón, para lectores de pantalla (el ícono no tiene texto).
childrenobligatoriaReactNode-El ícono.
hrefstring-Convierte el botón en un enlace con aspecto de botón.
isLoadingboolean-Muestra un spinner, mantiene el ancho y avisa a los lectores de pantalla que está ocupado.
isSuccessboolean-Muestra un check que se dibuja solo y successLabel (el patrón success); actívalo por un momento después de que la acción funcionó.
relstring-Con href: la relación del enlace.
rippleboolean-Una onda crece desde el puntero al presionar (el patrón ripple).
shape"rounded" | "square" | "circle"'circle'circle (por defecto), rounded (8 px) o square (esquinas de 4 px).
sizeResponsive<"xs" | "sm" | "md" | "lg" | "xl">-xs 28 px, sm 32 px, md 40 px (por defecto), lg 48 px, xl 56 px. Puede cambiar por breakpoint: { base: 'lg', md: 'md' }.
successLabelReactNode-La etiqueta mientras isSuccess. Por defecto "Listo".
targetstring-Con href: dónde abrirlo.
tone"danger" | "neutral" | "accent" | "success" | "warning" | "info"-El color de los botones soft, ghost, text, dashed y link, y de un primary sólido: neutral (por defecto), accent, success, warning, danger o info.
tooltipboolean-Muestra aria-label en un tooltip con hover y foco.
variant"ghost" | "primary" | "secondary" | "soft" | "text" | "dashed" | "danger" | "link"'ghost'primary: el botón con degradado oscuro (sólido en su tono cuando hay tone); secondary: el chip (blanco sobre oscuro, negro sobre claro); soft: con tinte; ghost: con contorno; text: sin borde hasta el hover; dashed: contorno discontinuo; danger: destructivo; link: solo texto.

Especificaciones

Generado desde el código: las variantes de los tipos, los estados y tokens del CSS, y los patrones de motion que aplican. Las grillas muestran el componente real en ambos temas; los números se miden en la página.

Variant × size

Oscuro

IconButton dark
size="sm"size="md"size="lg"
variant="primary"
variant="secondary"
variant="ghost"
variant="danger"

Claro

IconButton light
size="sm"size="md"size="lg"
variant="primary"
variant="secondary"
variant="ghost"
variant="danger"

Medido: alto · padding horizontal · radio de esquina · tamaño de texto, en px, de la grilla oscura.

Shape

Oscuro

IconButton dark
shape="circle"shape="square"

Claro

IconButton light
shape="circle"shape="square"

Medido: alto · padding horizontal · radio de esquina · tamaño de texto, en px, de la grilla oscura.

Variantes
shaperoundedsquarecircle
tonedangerneutralaccentsuccesswarninginfo
variantghostprimarysecondarysofttextdasheddangerlink
Motion
tint
Oscuro y claro
Cada color viene de tokens del tema, así que sigue a data-theme (y a presets como Graphite) en la página o en cualquier contenedor. El contraste se revisa en ambos temas.
Clases para estilos
.alea-icon-button.alea-button-icon
Atributos data
data-icon-shape=roundeddata-icon-shape=squaredata-attached

Accesibilidad

  • Los tipos exigen aria-label: el ícono solo no tiene nombre.
  • Acompáñalo con un Tooltip que repita el nombre para quienes usan mouse.

Teclado

TeclaAcción
Enter o EspacioLo presiona

Qué hacer y qué evitar

Hacer

  • Usa íconos conocidos (cerrar, buscar, más).
  • Agrega un Tooltip con el mismo texto que el nombre.

Evitar

  • No lo uses para la acción principal de una pantalla: un Button con texto es más claro.

En Figma

Set de botón de ícono: Variant × Size × Shape (Circle, Square) × State.

Probado con axe, teclado y roles de lector de pantalla