Saltar al contenido
Alea0.1
Pro
  1. Alea
  2. Componentes
  3. Datos
  4. Avatar

Datos

Avatar

Una persona, como foto o iniciales sobre un degradado, con estado y grupos.

import { Avatar, AvatarGroup } from '@alea/ui';

Ejemplos

Avatares

Iniciales sobre un degradado que es siempre el mismo para un nombre; una foto cuando la hay.

Grupo

El resto como +N.

Anillo, contador y respaldo

ring marca al usuario actual o una historia (accent o un tono); count muestra elementos sin leer en la esquina; fallback reemplaza las iniciales por un ícono o un logo; 2xl son 96 px.

Configuraciones

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

square
circle
xs
sm
md
lg
xl
2xl
online
away
busy
offline
initials
src
  1. Shapeshape
  2. Sizesize
  3. Statusstatus
  4. Image

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.

Color

  • --alea-accent…
  • --alea-accent-on…
  • --alea-bg…
  • --alea-border-strong…
  • --alea-gradient-accent…
  • --alea-status-danger…
  • --alea-status-info…
  • --alea-status-success…
  • --alea-status-warning…

Type

  • --alea-font-family-body…
  • --alea-font-weight-semibold…

Component

  • --alea-avatar-size…

Other

  • --alea-presence-away…
  • --alea-presence-busy…
  • --alea-presence-offline…
  • --alea-presence-online…

Props

Avatar props

Una persona: foto, o iniciales sobre un degradado.

PropTipoPor defectoDescripción
nameobligatoriastring-El nombre de la persona: texto alternativo e iniciales.
countnumber-Una cantidad en la esquina superior (mensajes sin leer).
fallbackReactNode-Lo que se muestra sin foto en lugar de iniciales: un ícono, un logo.
ringboolean | "neutral" | "accent" | "success" | "warning" | "danger" | "info"-Un anillo alrededor del avatar, en el acento o un tono (para el usuario actual, o una historia).
shape"square" | "circle"'circle'circle (por defecto) o square.
size"sm" | "md" | "lg" | "xl" | "xs" | "2xl"'md'xs 24, sm 32, md 40 (por defecto), lg 56, xl 80, 2xl 96 px.
srcstring-URL de la imagen. Vuelve a las iniciales si falta o falla.
status"online" | "away" | "busy" | "offline"-Un punto de estado en la esquina.

AvatarGroup props

Avatares superpuestos con un +N para el resto.

PropTipoPor defectoDescripción
peopleobligatoria{ name: string; src?: string | undefined; }[]-Las personas: name, y src para una foto.
fanboolean-Los avatares se separan con hover o foco (el patrón fan).
maxnumber4Muestra esta cantidad, luego +N. Por defecto 4.
size"sm" | "md" | "lg" | "xl" | "xs" | "2xl"'md'Tamaño de todos los avatares.
spacing"none" | "tight" | "normal"-Cuánto se superponen los avatares: tight, normal (por defecto) o none (lado a lado).

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.

Size × shape

Oscuro

Avatar dark
size="xs"size="sm"size="md"size="lg"size="xl"
shape="circle"
shape="square"

Claro

Avatar light
size="xs"size="sm"size="md"size="lg"size="xl"
shape="circle"
shape="square"

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

Status

Oscuro

Avatar dark
status="online"status="away"status="busy"status="offline"

Claro

Avatar light
status="online"status="away"status="busy"status="offline"

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

Avatar

Variantes
shapesquarecircle
sizesmmdlgxlxs2xl
statusonlineawaybusyoffline
Motion
pulsefanmore
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-avatar.alea-avatar-fallback.alea-avatar-initials.alea-avatar-status.alea-avatar-count
Atributos data
data-shape=squaredata-size=xsdata-size=smdata-size=lgdata-size=xldata-status=onlinedata-status=awaydata-status=busydata-status=offlinedata-size=2xldata-ringdata-ring=successdata-ring=warningdata-ring=dangerdata-ring=infodata-ring=neutraldata-spacing=tightdata-spacing=none

AvatarGroup

Variantes
sizesmmdlgxlxs2xl
spacingnonetightnormal
Motion
fanmore
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-avatar-group.alea-avatar.alea-avatar-more
Atributos data
data-shape=squaredata-size=xsdata-size=smdata-size=lgdata-size=xldata-size=2xldata-ringdata-ring=successdata-ring=warningdata-ring=dangerdata-ring=infodata-ring=neutraldata-spacing=tightdata-spacing=none

Accesibilidad

  • Se nombra con el nombre de la persona y su estado.

Qué hacer y qué evitar

Hacer

  • Pasa siempre name: da las iniciales y el nombre accesible.
  • Usa AvatarGroup con max para listas largas de personas.

Evitar

  • No uses un avatar solo para identificar a alguien en una lista: muestra el nombre también.
  • No dependas solo del color del punto de estado.
Probado con axe, teclado y roles de lector de pantalla