Product Craft Bible
Social & Feed UI
Inicio Social y Comunicación Social & Feed UI
Social y Comunicación

Social & Feed UI

8 reglas web.dev Content Layout Shift · History API scrollRestoration (MDN) · Instagram feed UX teardown · Nick Babich, Smashing Magazine: Infinite Scrolling Best PracticesApple HIG: Refresh Controls · Material Design: Pull to refresh · Luke Wroblewski: Touch Gesture Reference · WebKit overscroll-behavior (MDN)Twitter/X time formatting UX · Moment.js/Day.js relative time · John Saito: "Writing Dates and Times" (Dropbox Design) · Nielsen Norman Group: Date formatting in feedsTwitter/X "N new posts" pattern · Mastodon new content indicator · Jakob Nielsen: "Don't Interrupt Users" · WCAG 2.1 SC 3.2.5 (Change on Request)
171

Social & Feed UI

8 reglas
1492

Infinite scroll con skeleton placeholders y restauración de posición

Cuando el feed usa infinite scroll, cada lote nuevo de contenido debe mostrarse primero como skeleton placeholders que preserven la altura exacta del contenido real para evitar CLS. Al navegar a un detalle y volver, la posición de scroll debe restaurarse exactamente donde el usuario la dejó, usando sessionStorage o History API. Sin esto, el usuario pierde contexto y abandona.

web.dev Content Layout Shift · History API scrollRestoration (MDN) · Instagram feed UX teardown · Nick Babich, Smashing Magazine: Infinite Scrolling Best Practices
Preferir
Ana Torres
hace 12 min
El nuevo sistema de componentes reduce el tiempo de prototipado un 40%.
24 8
scrollRestoration: manual
Evitar
Ana Torres
hace 12 min
El nuevo sistema de componentes reduce el tiempo de prototipado un 40%.
Sin restaurar scroll, vuelve al inicio
1493

Pull-to-refresh: spinner nativo, threshold 80px, haptic feedback

El gesto de pull-to-refresh es la forma más natural de actualizar un feed en mobile. El spinner debe ser el nativo de la plataforma (no custom) para mantener familiaridad. El threshold de activación debe ser 80px para evitar activaciones accidentales al hacer scroll. El haptic feedback al cruzar el umbral comunica que la acción se registró, reduciendo la incertidumbre del usuario.

Apple HIG: Refresh Controls · Material Design: Pull to refresh · Luke Wroblewski: Touch Gesture Reference · WebKit overscroll-behavior (MDN)
Preferir
9:41100%
Actualizando...
80px
Haptic
Laura Vega
La guía de accesibilidad se actualizó con los nuevos criterios WCAG 2.2.
Carlos Ruiz
Sprint review: 14 historias completadas, 2 pendientes para mañana.
Monica Díaz
Nuevo template de user research compartido en el canal de diseño.
Spinner nativo de plataforma, threshold suficiente para evitar falsos positivos, retroalimentación haptic al soltar
Evitar
9:41100%
Pull harder...
20px
Sin haptic
Laura Vega
La guía de accesibilidad se actualizó con los nuevos criterios WCAG 2.2.
Carlos Ruiz
Sprint review: 14 historias completadas, 2 pendientes para mañana.
Monica Díaz
Nuevo template de user research compartido en el canal de diseño.
Spinner custom desconocido, threshold de 20px activa con cualquier scroll, sin haptic el usuario no sabe si jaló suficiente
1494

Timestamp relativo adaptativo: "ahora" a fecha completa

Los timestamps deben adaptarse al contexto temporal: "ahora" para menos de 1 minuto, "hace 3m" hasta 59 minutos, "hace 2h" hasta 23 horas, "ayer" para el día anterior, y fecha corta (14 jun) para todo lo demás. El formato largo (14 de junio de 2025 a las 10:32) se reserva para tooltip o vista de detalle. Nunca mostrar timestamps absolutos en el feed principal porque rompen la legibilidad rápida.

Twitter/X time formatting UX · Moment.js/Day.js relative time · John Saito: "Writing Dates and Times" (Dropbox Design) · Nielsen Norman Group: Date formatting in feeds
Preferir
Cronología adaptativa
Elena Ríos
ahora16 jun 2025, 14:32
Acabo de publicar el caso de estudio del rediseño.
Pedro Lara
hace 23m
El componente de tabs ya está en la librería compartida.
Sofía Nava
hace 5h
Workshop de Design Tokens: grabación subida al canal general.
Diego Mora
ayer
Resumen del sprint: velocity subió 15% respecto al anterior.
Lucía Parra
12 jun
Lanzamos la v2 del onboarding con un 30% menos de fricción.
< 1 minahora
1-59 minhace Nm
1-23 hhace Nh
Ayerayer
> 2 días14 jun
Evitar
Timestamps absolutos
Elena Ríos
2025-06-16T14:32:00Z
Acabo de publicar el caso de estudio del rediseño.
Pedro Lara
2025-06-16T14:09:00Z
El componente de tabs ya está en la librería compartida.
Sofía Nava
2025-06-16T09:15:00Z
Workshop de Design Tokens: grabación subida al canal general.
Diego Mora
2025-06-15T17:42:00Z
Resumen del sprint: velocity subió 15% respecto al anterior.
Lucía Parra
2025-06-12T11:03:00Z
Lanzamos la v2 del onboarding con un 30% menos de fricción.
1495

Indicador de contenido nuevo sin auto-scroll

Cuando llegan publicaciones nuevas mientras el usuario lee el feed, mostrar un indicador flotante ("3 publicaciones nuevas") que el usuario activa manualmente. Nunca hacer auto-scroll al tope ni inyectar contenido que desplace lo que está leyendo. El auto-scroll rompe el flujo de lectura y genera desorientación, especialmente en feeds con contenido largo. El indicador debe incluir la cantidad exacta de posts nuevos.

Twitter/X "N new posts" pattern · Mastodon new content indicator · Jakob Nielsen: "Don't Interrupt Users" · WCAG 2.1 SC 3.2.5 (Change on Request)
Preferir
Timeline Leyendo
3 publicaciones nuevas
Mariana López hace 8m
El discovery de la feature de notificaciones reveló 3 patrones de uso que no habíamos considerado. Compartiendo hallazgos en el doc.
Andrés Solís hace 14m
Review del prototipo de onboarding con el equipo de producto listo. 4 iteraciones documentadas.
Claudia Reyes hace 22m
Benchmark de competidores actualizado. 5 apps analizadas con capturas y métricas.
Rafael Duarte hace 1h
Migración de iconos a Lucide completada. 48 iconos actualizados sin breaking changes.
Evitar
Timeline
Inyectado sin aviso
Nuevo Post 3 ahora
Este post apareció y desplazó todo hacia abajo.
Inyectado sin aviso
Nuevo Post 2 ahora
Otro post que desplazó el contenido que el usuario leía.
Inyectado sin aviso
Nuevo Post 1 ahora
Más contenido que empuja lo que el usuario estaba leyendo.
El contenido que leías se desplazó hacia abajo
Mariana López hace 8m
El discovery de la feature de notificaciones reveló 3 patrones...
1496

Engagement actions siempre visibles, nunca ocultas

Las acciones de engagement (like, comentar, compartir) deben estar siempre visibles debajo de cada post, no escondidas detrás de hover, long-press o swipe. En mobile no hay hover, y obligar al usuario a descubrir gestos ocultos destruye la tasa de interacción. Los contadores junto a cada acción refuerzan social proof y animan la participación. La zona de toque mínima debe ser 44x44px (WCAG).

Facebook engagement bar UX · Instagram visible actions · Fitts's Law · WCAG 2.1 SC 2.5.5 (Target Size) · NNGroup: Hover vs Always-Visible Controls
Preferir
Feed
Isabel Mendoza
hace 15m
Primer prototipo del sistema de filtros terminado. 6 variantes probadas con usuarios reales, los resultados son prometedores.
42
12
5
Touch target 44px, siempre visible
Ricardo Fuentes
hace 1h
Documentación de API actualizada con los 12 endpoints nuevos. Incluye ejemplos de request y response.
18
4
2
Evitar
Feed
Isabel Mendoza
hace 15m
Primer prototipo del sistema de filtros terminado. 6 variantes probadas con usuarios reales, los resultados son prometedores.
Pasa el cursor para ver acciones...
Ocultas detrás de hover
Ricardo Fuentes
hace 1h
Documentación de API actualizada con los 12 endpoints nuevos. Incluye ejemplos de request y response.
O desliza para ver opciones...
Ocultas detrás de swipe
1497

Card de contenido: aspect-ratio fijo y blur hash placeholder

Las imágenes en cards de feed deben tener aspect-ratio fijo (16:9 o 1:1) definido en CSS para evitar layout shifts al cargar. Nunca estirar ni distorsionar la imagen: usar object-fit:cover. Mientras carga, mostrar un blur hash placeholder que preserve los colores dominantes de la imagen. El blur hash elimina el "flash blanco" y crea percepción de carga instantánea, mejorando LCP perceptual.

BlurHash algorithm (Wolt) · web.dev CLS y aspect-ratio · Instagram blur placeholder · CSS aspect-ratio (MDN) · Refactoring UI: Designing Card Layouts
Preferir
Feed con blur hash
Valentina Cruz
Nuevo concepto de dashboard para el módulo de analíticas. Tres variantes explorando densidad de información.
16:9
object-fit: cover, aspect-ratio fijo, blur hash
Fernando Reyes
Paleta de color final aprobada por el cliente.
1:1
Ratio cuadrado, sin distorsión
Evitar
Feed sin aspect-ratio
Valentina Cruz
Nuevo concepto de dashboard para el módulo de analíticas.
Sin aspect-ratio, imagen distorsionada
Fernando Reyes
Paleta de color final aprobada.
Cargando...
Placeholder gris sin blur hash, altura impredecible
1498

Threading: indentación máxima 3 niveles, colapsar hilos largos

Los hilos de respuestas deben usar indentación visual con un máximo de 3 niveles. A partir del cuarto nivel, las respuestas se aplanan al tercer nivel para evitar contenido ilegible en viewports estrechos. Hilos con más de 3 respuestas visibles deben colapsar con un link "Ver N respuestas más" que carga bajo demanda. Cada nivel necesita una línea de conexión vertical para mantener la jerarquía visual clara.

Reddit threading UX · Hacker News comment nesting · Discourse thread collapsing · NNGroup: Comment Threading Patterns · Material Design: Lists with nesting
Preferir
Hilo de comentarios
Alejandra Vidal hace 2h L1
El nuevo flujo de checkout reduce 2 pasos. Buen trabajo del equipo de producto.
8 Responder
Mario Sánchez hace 1h L2
Coincido. El A/B test mostró +18% en conversión.
3 Responder
Paula Ríos hace 45m L3 max
Los datos del funnel confirman la mejora en mobile.
Ver 4 respuestas más
Carmen Estrada hace 30m
Pregunta: el nuevo flujo aplica también para guest checkout?
2 Responder
Evitar
Nesting sin límite
Alejandra Vidal L1
El nuevo flujo de checkout reduce 2 pasos.
Mario S. L2
Buen trabajo.
Paula R. L3
Confirmado.
Ana M. L4
Texto cada vez más pequeño...
Luis P. L5
Ilegible en mobile...
Eva G. L6
Imposible leer
Carmen Estrada
Todos los comentarios expandidos a la vez, 47 visibles sin colapsar.
1499

Empty feed state con onboarding: sugerir personas y temas

Un feed vacío que solo muestra "No hay publicaciones" es una oportunidad perdida. El estado vacío debe funcionar como onboarding, sugiriendo personas a seguir, temas de interés y una acción primaria para crear el primer post. Mostrar avatares reales y nombres de personas populares con botón "Seguir" reduce la fricción de primer uso. El empty state debe comunicar que el feed se llenará conforme el usuario interactúe.

Twitter/X onboarding follow suggestions · LinkedIn empty feed · Samuel Hulick: UserOnboard teardowns · NNGroup: Empty States · Basecamp: "Getting Real" first-run experience
Preferir
Tu feed
Tu feed está listo
Sigue personas y temas para llenar tu timeline con contenido relevante.
Personas sugeridas
Diana Herrera
Directora de Producto
Tomás Guerrero
Lead de UX Research
Camila Ortiz
Design Systems Lead
Temas de interés
Diseño UI Producto Research Frontend Data Accesibilidad
Evitar
Tu feed
No hay publicaciones
Vuelve más tarde.