MeDo

Generador de componentes de avatar.

Genera avatares listos para producción desde un solo prompt. 6 patrones open source: foto, ilustrado al estilo Notion, fallback de iniciales, punto de presencia, grupo apilado y subida de imagen; todos con Tailwind + shadcn, accesibles, tematizables y con licencia MIT. Copia el código o vuelve a generar cualquiera de ellos directamente en tu proyecto de Lovable, Bolt, v0 o Cursor.

Avatar
Avatar

6 plantillas

Plantillas de Avatar que puedes generar

Cada plantilla es un prompt real, no una captura de pantalla. Cópialo en cualquier editor de IA o ejecútalo en MeDo y obtén código React + Tailwind.

BásicoImagen + fallback

Foto con fallback de iniciales

Foto cuando carga, iniciales cuando no. El avatar que toda aplicación necesita primero.

Crea un componente <Avatar /> reutilizable en React con Tailwind CSS. Patrón: avatar básico con imagen y fallback de iniciales. Diseño: avatar circular que renderiza un <img> cuando src carga; ante un error o si falta src, renderiza un fallback de iniciales generado con un color de fondo determinista derivado de la cadena del nombre. API: props para src, name (obligatorio, usado para el texto alt y las iniciales), size ("xs" | "sm" | "md" | "lg" | "xl") y className pasado al elemento. Incluye: texto alt obligatorio a partir de name, loading="lazy", cambio al fallback con onError mediante estado local, anillo focus-visible cuando se renderiza dentro de un enlace o un botón, y soporte de tema claro y oscuro con clases dark: de Tailwind. Restricciones: solo React + Tailwind, sin dependencias externas de UI ni de imágenes, sin salto de diseño mientras carga la imagen (reserva la caja con width/height fijos).

Prueba en MeDo
EstadoPunto de presencia

Avatar con punto de presencia

online, away, busy, offline: un punto de presencia anclado al borde del avatar.

Crea un componente <AvatarWithStatus /> en React con Tailwind CSS. Patrón: avatar con indicador de presencia. Diseño: avatar circular con un pequeño punto de estado fijado abajo a la derecha, separado de la foto por un anillo del color del fondo para que se lea sobre cualquier superficie. API: props para src, name, size y status ("online" | "away" | "busy" | "offline"), con el color del punto asignado según el estado y el punto escalando con el tamaño del avatar. Incluye: fallback de iniciales, una etiqueta de texto visualmente oculta que anuncie el estado a los lectores de pantalla (no dependas solo del color), aria-label en el contenedor y soporte de tema claro y oscuro. Restricciones: solo React + Tailwind, sin dependencias externas de UI, el punto nunca solapa más del 30% del borde del avatar.

Prueba en MeDo
GrupoApilado + desborde

Grupo de avatares con etiqueta +N

Pila de avatares solapados con una etiqueta de desborde +N. Para equipos, asignados y colaboradores.

Crea un componente <AvatarGroup /> en React con Tailwind CSS. Patrón: grupo de avatares apilados (solapados) con contador de desborde. Diseño: fila horizontal de avatares solapados aproximadamente un tercio, cada uno con un anillo del color del fondo para que la pila siga siendo legible; superado el número máximo de avatares visibles, renderiza una etiqueta contador "+N" con el mismo tamaño y forma. API: props para users (array de { src, name }), max (por defecto 4), size y un onAddClick opcional que renderiza un elemento "Invitar" con borde discontinuo al final de la fila. Comportamiento: al pasar el cursor, el avatar activo se eleva por encima de sus vecinos con un pequeño desplazamiento y un cambio de z-index; la pila invierte la dirección del solape con una prop "dir". Incluye: fallback de iniciales en cada avatar, aria-label que resuma el número total de miembros, elementos enfocables por teclado con anillos focus-visible y soporte de tema claro y oscuro. Restricciones: solo React + Tailwind, sin dependencias externas de UI, sin librerías de animación.

Prueba en MeDo
TamañosEscala + forma

Sistema de escala

De xs a xl en una sola escala tipográfica, más las variantes circle, squircle y cuadrado redondeado.

Crea un componente <Avatar /> tematizable en React con una escala completa de tamaños y formas, usando Tailwind CSS. Patrón: primitiva de avatar para un sistema de diseño. API: size ("xs" | "sm" | "md" | "lg" | "xl" | "2xl") mapeado a través de un único objeto de consulta que controla a la vez el ancho, la altura, el tamaño de fuente y el border-radius; shape ("circle" | "squircle" | "square"); además de src, name y className. Requisito: el tamaño de fuente de las iniciales escala de forma proporcional a la caja del avatar para que tanto xs como 2xl queden equilibrados; todos los tokens viven en un único objeto de configuración al principio del archivo, de modo que un equipo pueda retematizar en un solo lugar. Incluye: fallback de iniciales, texto alt a partir de name, forwardRef al elemento raíz, tipos de props de TypeScript exportados y soporte de tema claro y oscuro. Restricciones: solo React + Tailwind, sin dependencias externas de UI, sin estilos inline salvo los tamaños en píxeles calculados.

Prueba en MeDo
SubidaEditable

Avatar con subida y borrado

Avatar con distintivo de cámara, botón de subida y restricciones de archivo. Para páginas de ajustes.

Crea un componente <AvatarUploader /> en React con Tailwind CSS. Patrón: control editable de foto de perfil para una página de ajustes. Diseño: avatar grande a la izquierda con un distintivo circular de cámara fijado abajo a la derecha; a la derecha, una etiqueta "Foto de perfil", una línea de ayuda con las restricciones del archivo ("PNG o JPG, hasta 2 MB") y un botón principal Subir junto a un botón de texto Eliminar. Comportamiento: un <input type="file" accept="image/png,image/jpeg"> oculto que se activa tanto desde el distintivo como desde el botón Subir; validación de tamaño y tipo en el cliente con un mensaje de error inline; previsualización local con URL.createObjectURL, revocada al desmontar; Eliminar restaura el fallback de iniciales. Incluye: asociación con <label> para el input de archivo, región aria-live para los mensajes de validación, anillos focus-visible, estado deshabilitado/subiendo en el botón y soporte de tema claro y oscuro. Restricciones: solo React + Tailwind, sin librería de subida, sin dependencia de recorte; expón un callback onChange(file) para quien lo use.

Prueba en MeDo
Fila perfilAvatar + metadatos

Fila de avatar, nombre y rol

Avatar, nombre, marca de verificación y rol: la fila que rellena tablas y listas de miembros.

Crea un componente <AvatarRow /> en React (y un contenedor <MemberList />) con Tailwind CSS. Patrón: fila de avatar más metadatos para listas de miembros, tablas e hilos de comentarios. Diseño: avatar a la izquierda, un bloque de dos líneas con el nombre de la persona (más una marca de verificación opcional) y una línea secundaria atenuada ("Equipo · Rol"), y un botón de acción al final por la derecha; el bloque central se recorta con min-w-0 + truncate en lugar de pasar a varias líneas. API: props para users (array de { src, name, role, team, verified }), una etiqueta para la acción final y un callback onAction(user). Incluye: fallback de iniciales, marcado semántico <ul>/<li> en el contenedor, nombre accesible en el botón final ("Gestionar acceso de {name}"), resaltado de la fila al pasar el cursor, anillos focus-visible y soporte de tema claro y oscuro. Restricciones: solo React + Tailwind, sin librerías de tablas ni de listas, funciona a 320px de ancho sin desbordarse.

Prueba en MeDo

Patrones de Avatar para distintos sitios web

El mismo componente avatar, adaptado al tipo de sitio donde se publica.

01 / 06

Ajustes de equipo en SaaS

Las listas de miembros viven y mueren por la fila de avatar: foto, nombre, rol y acción de acceso. El fallback de iniciales mantiene la tabla ordenada cuando nadie ha subido todavía una foto.

Estilos y variantes de Avatar

Elige la variante que encaje con el resto de la página y genérala.

01 / 06

Avatar básico

Imagen con fallback de iniciales y un color de fondo determinista por nombre. La base que extienden todas las demás variantes.

Avatar en React, Next.js, Vue y Svelte

React, Next.js, Vue 3, SvelteKit, Astro o HTML puro: el mismo avatar, seis formas de integrarlo.

01 / 06

Avatar en React

Un único componente funcional con una tabla de tamaños y un fallback con onError. Sin estado de cliente más allá del flag de imagen fallida, seguro en cualquier punto de un árbol de React 18+.

src/components/Avatar.tsx

export function Avatar({ src, name, size = "md" }) {
  const [failed, setFailed] = useState(false);
  return failed || !src
    ? <span className={box[size]}>{initials(name)}</span>
    : <img src={src} alt={name} onError={() => setFailed(true)} />;
}

Quién usa el componente Avatar

Listas de equipo y miembros

Las páginas de ajustes, los organigramas y las tablas de permisos necesitan la misma fila: avatar, nombre, rol y acción. Genérala una vez y reutilízala en todas las tablas de la aplicación.

Colaboración en tiempo real

Los avatares apilados con una etiqueta "+N" son la interfaz de presencia más económica que existe: una sola fila indica al usuario quién más está editando, sin barra lateral ni panel de websockets.

Feeds sociales y comentarios

Los hilos de comentarios, las reacciones y las menciones repiten el avatar cientos de veces por página. Una única primitiva con escala de tamaños mantiene el diseño coherente y el bundle ligero.

Chat y bandejas de soporte

Los puntos de presencia le indican al agente si el cliente sigue conectado, y el fallback de iniciales mantiene la bandeja legible cuando nadie tiene foto de perfil.

Ajustes de cuenta y onboarding

El avatar editable se encarga de validar el tipo y el tamaño del archivo, la previsualización local y el borrado: todo el flujo de foto de perfil sin una librería de subida.

Marketplaces y reseñas

El avatar del autor de una reseña con una marca de verificación genera más confianza percibida que una estrella extra. Añade la fila de perfil directamente en las páginas de producto.

Cómo añadir tu Avatar a un proyecto

Cuatro pasos, desde elegir una plantilla de avatar hasta llevarlo a producción.

01~30s

Elige un patrón de avatar

Repasa las 6 plantillas de arriba y elige la más cercana a tu caso: foto, ilustrado, fila de tabla, pila de presencia o control de subida.

02~2s

Previsualízalo en vivo

Cada tarjeta renderiza una previsualización real en React + Tailwind, así que ves el espaciado y los tamaños antes de copiar nada.

03~10s

Copia el prompt o el código

Copia el prompt en MeDo, Lovable, Bolt, v0 o Cursor, o toma el código del componente directamente de la tarjeta.

04~1min

Añádelo a tu aplicación

Importa <Avatar /> una vez y reutilízalo en tablas, encabezados e hilos de comentarios con las props de tamaño y forma.

Preguntas frecuentes sobre Avatar

¿Qué es un componente de avatar?

Un componente de avatar renderiza una imagen pequeña que representa a un usuario, un equipo o una organización, normalmente una foto de perfil circular. Un avatar listo para producción también resuelve los casos en los que la foto no existe o no se carga, habitualmente mostrando las iniciales de la persona sobre un color de fondo generado.

¿Cómo funciona el fallback de iniciales?

El componente toma el nombre del usuario, lo separa por espacios y renderiza en mayúsculas el primer carácter de la primera y la última parte. El color de fondo se deriva de forma determinista de la cadena del nombre, así que la misma persona siempre obtiene el mismo color entre sesiones y dispositivos.

¿Qué es un grupo de avatares o avatar apilado?

Un grupo de avatares es una fila horizontal de avatares solapados, cada uno con un anillo del color del fondo para que la pila siga siendo legible. Superado un número máximo de avatares visibles, se renderiza una etiqueta "+N". Es el patrón estándar para miembros de equipo, personas asignadas a una tarea y colaboradores en directo.

¿Son accesibles estos componentes de avatar?

Sí. Cada avatar lleva un texto alt derivado del nombre del usuario, el estado de presencia se anuncia con una etiqueta visualmente oculta en lugar de depender solo del color, los tooltips se conectan con aria-describedby y los avatares interactivos conservan anillos focus-visible visibles.

¿Son gratuitos estos componentes para uso comercial?

Sí. Todas las plantillas de la galería tienen licencia MIT: úsalas en proyectos personales, trabajos para clientes y productos comerciales, sin atribución ni cuotas de licencia.

¿Funcionan con React, Vue y Svelte?

Los componentes están escritos en React + Tailwind, pero el marcado es agnóstico del framework. La sección Frameworks de arriba muestra el mismo avatar en Next.js, Vue 3, SvelteKit, Astro y HTML puro.

¿Con qué tamaño y optimización debo servir las imágenes de avatar?

Sirve recortes cuadrados de aproximadamente el doble de la caja renderizada (80px para un avatar de 40px) para que se vean nítidos en pantallas retina, define width y height explícitos para evitar el salto de diseño, usa object-cover y añade loading="lazy" en los avatares que quedan por debajo del pliegue.

¿Conviene usar avatares con foto o ilustrados?

Usa fotos reales cuando la identidad importa (directorios de equipo, bandejas de soporte, reseñas de marketplace), porque una cara es la forma más rápida de reconocer a una persona. Usa avatares ilustrados al estilo Notion cuando la mayoría de usuarios nunca sube una foto, cuando buscas un aspecto coherente con tu marca o cuando mostrar caras reales plantea problemas de privacidad. Un buen sistema admite ambos: foto cuando está disponible, y una ilustración determinista o las iniciales cuando no lo está.

Genera tu componente de avatar en 30 segundos.

Vuelve a generar cualquiera de las 6 plantillas de avatar desde un prompt, o describe la tuya: foto, ilustrado, puntos de presencia, grupos apilados, subida de imagen. Gratis, licencia MIT, sin registro.