Files

Referencias visuales — WhatsApp iOS + Cloud API

Capturas reales de referencia para ajustar el mockup y la especificación visual que se deriva de ellas. Recopiladas el 27-09-2026.

Cómo se obtuvieron. Casi todas vienen de la documentación oficial de Meta (developers.facebook.com/documentation/business-messaging/whatsapp/...). Esas capturas son de WhatsApp iOS (colita abajo, botones con icono, fuente SF, hoja inferior iOS) y están a ~3x (1190 px ≈ 393 pt). Meta devuelve error a curl, así que la página se renderizó con Playwright y la imagen se descargó con la misma sesión. Las dos capturas completas del chat vienen de la ficha oficial de WhatsApp en el App Store (iPhone 6,9").

Cómo leer los valores. Los hex están medidos por muestreo de píxeles (el color dominante de una región) sobre estas capturas. Las medidas en pt salen de dividir entre 3. Son aproximaciones: PNG comprimido, antialiasing y perfil de color. El texto indica la fuente de cada valor: [medido], [observado] (se ve en la captura pero no tiene número exacto) o [estimado] (no está confirmado).

1. Capturas

Archivo Fuente Qué muestra
ios-chat-claro-appstore.png https://apps.apple.com/us/app/whatsapp-messenger/id310633997 (captura 6.9" Display 2) Chat iOS completo en claro: header (chevron negro, avatar, nombre, "online", iconos vídeo y llamada en línea), aviso de cifrado amarillo, nota de voz, burbuja saliente con ticks azules, foto, ubicación en vivo con botón verde dentro de la burbuja
ios-chat-oscuro-appstore.png ídem (captura 6.9" Display 4) Chat iOS en oscuro: fondo casi negro con doodle, entrante gris neutro, saliente verde oscuro, ubicación, sticker y composer oscuro (+, píldora, cámara, micro)
ios-composer-ticks-leido.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/mark-message-as-read Saliente con ✓✓ azul iOS y composer iOS: "+", píldora blanca con borde e icono de sticker, cámara y micro, home indicator negro
botones-respuesta-header-imagen.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-reply-buttons-messages Reply buttons con header de imagen inset, body, footer gris, hora, y 2 botones dentro de la misma burbuja con icono ↩ verde
botones-respuesta-tras-pulsar.png ídem (2.ª captura) Estado tras pulsar: el botón usado queda gris/deshabilitado y la respuesta saliente cita el mensaje original (nombre, miniatura, extracto)
template-imagen-url-llamada-quickreply.png https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/utility-templates/utility-templates Plantilla de utilidad: header imagen, body con primera línea en negrita, footer, botones URL (↗ en caja), llamada (teléfono) y quick reply (↩) apilados dentro de la burbuja
template-ver-todas-opciones-android.png https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/components (Android, estructura) Plantilla con más de 3 botones: se ven 2 y luego "See all options" (icono de lista), que abre una hoja "All Options" con todos los botones y sus iconos
lista-burbuja.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-list-messages List message: header en negrita, body, footer gris, hora y botón con icono de lista dentro de la burbuja
lista-hoja-inferior.png ídem (2.ª) Hoja inferior iOS de la lista: título centrado (= texto del botón), X en círculo gris, títulos de sección en gris y negrita, filas título/descripción sin chevrons, separadores con sangría y el pie "Tap an item to select it"
lista-respuesta-cita.png ídem (3.ª) Respuesta a la lista: burbuja saliente con cita del mensaje + título y descripción de la fila elegida
cta-url-header-imagen.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-cta-url-messages CTA URL: todo en una burbuja (imagen inset, body, footer, hora, separador, botón ↗ "See Dates" verde); sin fila de dominio
carrusel-plantilla-media-cards.png https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/marketing-templates/media-card-carousel-templates Carrusel de plantilla: burbuja de body con hora y debajo tarjetas horizontales (imagen inset, texto 17 pt, botones ↩ y ↗); la siguiente tarjeta asoma; sin puntos
carrusel-interactivo-quick-replies.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/interactive-media-carousel-messages Carrusel interactivo: 3 tarjetas con título en negrita + descripción y 2 quick replies con icono
carrusel-productos.png https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/marketing-templates/product-card-carousel-templates Carrusel de productos: panel gris claro con título y precio, botón "View"
imagen-caption.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/image-messages Imagen inset con esquinas redondeadas, caption y hora a la derecha, botón de reenviar fuera
video-caption.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/video-messages Vídeo: play en círculo claro translúcido, icono de cámara con duración abajo a la izquierda, caption
documento.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/document-messages Documento: panel gris interno con icono de página "PDF", nombre en 2 líneas, "243 KB • html", descarga en círculo verde y caption
audio-nota-voz.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/audio-messages Nota de voz: triángulo de play gris sin círculo, punto verde de progreso, waveform, avatar con micro verde, duración y transcripción
ubicacion.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/location-messages Ubicación: mapa inset con pin rojo, nombre en regular 17 pt y dirección gris subrayada
contacto.png https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/contacts-messages Contacto: avatar genérico gris, nombre en negrita y chevron, hora, y dos botones lado a lado "Message" / "Save contact"

2. Especificación visual (iOS 2025–2026)

Valores en pt/CSS px sobre un ancho de 393. Si #pantalla está escalada, se escala todo junto.

2.1 Paleta

Token Claro Oscuro Fuente
Fondo del chat (wall) #f4f1ec (App Store #f6f1ea) #0a0a0a [medido]
Trazo del doodle #e8e0d4 (tostado cálido, opaco) #1f2121 [medido]
Burbuja entrante #ffffff #232626 (gris neutro, no azulado) [medido]
Burbuja saliente #d9fdd3 #004f35 (App Store comprimido; revisar a ojo) [medido]
Texto de burbuja #000000 #ffffff [observado]
Hora y footer (entrante) #7f7f7f ≈#8d9494 [medido] / [estimado]
Hora en saliente #6b7d68 (gris verdoso) ≈#8fb3a3 [medido] / [estimado]
✓ / ✓✓ entregado igual que la hora igual que la hora [observado]
✓✓ leído #027bfc (≈ azul iOS #007aff) #0a84ff [estimado] [medido]
Texto de botones de acción (quick reply, URL, lista, carrusel) #408559 ≈#21c063 [estimado] [medido]
Separador de botones #cccccc (1 px físico ≈ 0,33 pt → CSS 0.5px o 1px rgba(0,0,0,.2)) rgba(255,255,255,.12) [estimado] [medido]
Header / barra del composer #f4f3f2 (translúcido sobre el wall) header #121313, barra #232626 [medido]
Campo del composer #ffffff con borde #d1d1d6 0,5 pt #393c3c sin borde [medido] / [observado]
Iconos del chrome (chevron, vídeo, llamada, +, cámara, micro) #000000 (de línea) #ffffff [observado]
Aviso de cifrado fondo #ffefd1, texto #1f1f1f, radio 10 ≈#2a2a26 [estimado] [medido]
Hoja de lista: fondo #ffffff ≈#1c1c1e [estimado] [medido]
Hoja: título de sección / descripción #757778 ≈#8d8d93 [estimado] [medido]
Hoja: separadores #c6c6c8 ≈#38383a [estimado] [medido]
Hoja: botón cerrar círculo #eeeeef, X #838388 ≈#2c2c2e / #a0a0a5 [medido] / [estimado]
Velo detrás de la hoja rgba(0,0,0,.26) rgba(0,0,0,.5) [estimado] [medido]
Panel interno de documento / producto #f6f5f4 ≈#1b1d1d [estimado] [medido]
Home indicator #000000 (claro) #ffffff (oscuro) [observado]

2.2 Burbuja

  • Radio 18 pt en las cuatro esquinas. La colita va abajo: la entrante abajo a la izquierda y la saliente abajo a la derecha, como una curva que sale del borde inferior (se ve en todas las capturas de Meta). Solo la lleva la última burbuja de un grupo del mismo emisor. La esquina de arriba no se afila. [observado]
  • Ancho máximo aproximado de 280–290 pt (~72 % de 393). Las plantillas y las burbujas con media usan ese ancho completo. [medido]
  • Padding de texto aproximado: 7 pt arriba, 12 pt a izquierda y derecha, 6 pt abajo. [medido]
  • Fuente del body: 17 pt SF Pro, interlineado de ~22 pt, negro. [medido]
  • Hora: ~12 pt con números tabulares, abajo a la derecha. Con footer, la hora se alinea con la última línea del footer. Ticks de ~16×11 pt. [medido]
  • Separación: ~2 pt entre burbujas del mismo emisor y ~8–10 pt al cambiar de emisor. [observado]

2.3 Media dentro de la burbuja (imagen, vídeo, ubicación y header de plantilla o interactivo)

  • Inset, no a sangre: margen de 4 pt (arriba y a los lados) entre la media y el borde de la burbuja. Radio interior de ~13–14 pt. [medido]
  • Con caption o body debajo, el texto sigue con el padding normal. Sin caption, la hora va sobre la imagen en blanco con una sombra suave. [observado]
  • Proporción del header: en plantillas se recorta a ~1,91:1 (utility, CTA). En interactivos se mantiene la del archivo, hasta cuadrado (reply buttons). [observado]
  • Vídeo: play centrado en un círculo de 50 pt rgba(230,230,230,.8) con triángulo gris oscuro. Abajo a la izquierda, icono de cámara y duración en blanco de 13 pt. [observado]

2.4 Botones de plantilla y botones interactivos (reply buttons)

En iOS se pintan igual: van dentro de la misma burbuja, no en una tarjeta aparte.

  • Bajo el body/footer/hora va un separador a todo el ancho de la burbuja, de borde a borde y sin sangría. [medido]
  • Cada botón ocupa una fila de ~43–44 pt, con el contenido centrado. Entre botones hay otro separador a todo el ancho. [medido]
  • Texto de 17 pt regular en #408559, con un icono de ~20 pt a la izquierda y 8 pt de hueco. [medido]
    • Quick reply → flecha de responder ↩ en línea (arco curvo).
    • URL → cuadrado redondeado con flecha ↗ dentro.
    • Llamada → auricular en línea.
    • Lista → icono ≡ con puntos (tres puntos + tres líneas).
    • "Ver todas las opciones" → icono de lista.
  • Con más de 3 botones se muestran 2 y una tercera fila "Ver todas las opciones" sin contador. Esa fila abre una hoja "Todas las opciones" con todos los botones (icono + texto, alineados a la izquierda) y un separador entre URL/llamada y quick replies. No se despliegan en línea. [observado, Android; mismo comportamiento documentado por Meta]
  • Tras pulsar un quick reply, esa fila queda en gris (#b0b0b0, sin interacción). [observado]
  • La respuesta saliente cita el mensaje: un bloque interno con radio de 8 pt, fondo rgba(0,0,0,.04) sobre verde (#d5f3cf), barra izquierda de 4 pt de color, nombre del negocio en semibold 15 pt, extracto de 1–3 líneas en 15 pt gris y miniatura a la derecha si hay media. Debajo va el texto del botón en 17 pt. [medido/observado]

2.5 Plantilla (template)

Orden: header → body → footer → hora → separador → botones, en una sola burbuja de 18 pt con colita.

  • Header de texto: 17 pt semibold, negro.
  • Body: 17 pt regular. Admite *negrita*.
  • Footer: 15 pt gris #7f7f7f, 4 pt por debajo del body.
  • Hora a la derecha, en la línea del footer.
  • Header de documento: el mismo panel gris interno que el mensaje de documento (§2.9).

2.6 Lista

  • Burbuja: header 17 pt semibold, body 17 pt, footer 15 pt gris, hora, separador y botón con icono ≡ y el texto boton en verde. Todo dentro de la burbuja.
  • Hoja inferior:
    • Panel blanco, esquinas superiores de ~12 pt y altura según el contenido.
    • Cabecera de ~56 pt con el título centrado = texto del botón, en 17 pt semibold.
    • A la derecha, un círculo de 30 pt #eeeeef con una X de 13 pt #838388.
    • Título de sección: 15 pt semibold #757778, con 16 pt de sangría y ~24 pt de aire encima.
    • Fila: título 17 pt negro y descripción 15 pt #757778. Padding vertical de ~12 pt (~76 pt de alto con descripción). Sin chevron ni radio en iOS.
    • Separador de 0,33 pt #c6c6c8 con 16 pt de sangría izquierda que llega al borde derecho.
    • Pie centrado "Toca un elemento para seleccionarlo" en 15 pt gris, con el home indicator debajo.
    • Velo rgba(0,0,0,.26).

2.7 CTA URL

  • Una sola burbuja: media inset opcional, body, footer, hora, separador y botón ↗ + etiqueta en verde.
  • No hay fila de dominio ni texto azul.

2.8 Carrusel (plantilla media card o interactivo)

  • Burbuja de body normal (con hora y colita) y, debajo, tarjetas en scroll horizontal.
  • Tarjeta de ~287 pt de ancho (~73 %). La primera se alinea con el borde izquierdo de las burbujas, las demás se desbordan hasta el borde de la pantalla y la siguiente asoma. Separación de ~4 pt. [medido]
  • Tarjeta blanca de 18 pt de radio, sin colita y sin hora. Imagen inset de 4 pt, radio de ~12 pt y proporción ~1,7:1. [medido]
  • Texto de la tarjeta en 17 pt. En interactivo: título semibold 17 pt + descripción 17 pt.
  • Botones como en §2.4: separador a todo el ancho, filas de 44 pt con icono ↩/↗ en verde.
  • Sin puntos de paginación. [observado]
  • Producto: panel #f6f5f4 con título 17 pt semibold y precio 15 pt gris; botón "Ver".

2.9 Otros tipos

  • Documento:
    • Panel interno #f6f5f4 con radio de 10 pt y 4 pt de inset.
    • Dentro: icono de página blanca de 30×38 pt con la extensión en gris de 9 pt, nombre de archivo en 17 pt (hasta 2 líneas) y "243 KB • pdf" en 15 pt gris.
    • A la derecha, descarga en círculo de 30 pt con borde verde #4caf6a y flecha verde.
    • Debajo, caption de 17 pt con la hora.
  • Nota de voz:
    • Triángulo de play gris #6b6b6b de 22 pt sin círculo.
    • Waveform de barras de 2 pt #b3b3b3 con un punto verde de progreso de 12 pt al inicio.
    • Duración en 13 pt gris debajo de la waveform.
    • A la derecha, avatar de 44 pt con micro verde en la esquina inferior izquierda.
    • Hora abajo a la derecha.
  • Ubicación:
    • Mapa inset de 4 pt, radio de 13 pt y ~155 pt de alto.
    • Nombre en 17 pt regular.
    • Dirección en 15 pt gris subrayada.
    • Hora en una línea propia a la derecha.
  • Contacto:
    • Avatar genérico de 44 pt (degradado gris con silueta blanca), nombre en 17 pt semibold y chevron › gris.
    • Hora a la derecha.
    • Separador y dos botones lado a lado "Mensaje" | "Guardar contacto" (o uno solo, "Invitar a WhatsApp"), en verde, 17 pt y 44 pt de alto, con un separador vertical entre ellos.
    • No muestra teléfono, email ni empresa dentro de la burbuja: eso aparece al abrir el perfil.
  • Sticker: sin burbuja. La hora va en una pastilla rgba(0,0,0,.35) con texto blanco debajo, a la derecha. [observado en oscuro]

2.10 Chrome iOS

  • Header (~44 pt bajo la status bar):
    • Chevron ‹ negro de ~22 pt, sin texto.
    • Avatar de 36 pt.
    • Nombre en 17 pt semibold y subtítulo ("en línea") en 13 pt gris.
    • A la derecha, iconos de línea: videocámara de 28 pt y teléfono de 24 pt, en negro con ~0,6 de opacidad o gris #8e8e93. En oscuro, blancos.
    • Fondo #f4f3f2, sin borde visible.
  • Verificado: insignia azul de Meta Verified junto al nombre. Tono #1d9bf0–#0866ff [estimado, sin captura iOS de negocio verificado].
  • Aviso de cifrado (primer elemento del chat):
    • Tarjeta centrada de ~90 % de ancho, fondo #ffefd1, radio de 10 pt y padding de 6×12 pt.
    • Texto centrado de 13 pt con candado inicial y "Más información" en negrita.
    • En chats de negocio el texto es el de negocio: "Este negocio usa un servicio seguro de Meta…". [observado en Android; en iOS se asume el mismo texto]
  • Separador de fecha "Hoy": pastilla centrada de 12–13 pt semibold, fondo blanco translúcido (rgba(255,255,255,.9)) con sombra de 0,5 pt, y 4×10 pt de padding. [estimado a partir de capturas Android/Web; sin captura iOS]
  • Composer:
    • Barra #f4f3f2, con el padding inferior del safe area (34 pt) bajo el home indicator.
    • "+" negro de 24 pt.
    • Píldora blanca de 36 pt de alto y radio de 18 pt, con borde de 0,5 pt #d1d1d6, icono de sticker dentro a la derecha y sin placeholder visible.
    • Después, cámara y micro en negro, fuera de la píldora.
    • El botón de enviar (círculo verde con flecha) solo aparece al escribir y sustituye a cámara y micro.
  • Home indicator: negro en claro y blanco en oscuro, de 134×5 pt, encima de la barra del composer.

Antes de reutilizar esto fuera del equipo, valida que las capturas de Meta y de Apple solo se usan como referencia interna (tienen derechos de sus autores) y revisa a ojo en un iPhone real los hex de modo oscuro marcados como [estimado].