Communitygithub.com

Sistema de Toast y Snackbar

Diseña un marco sistemático para notificaciones transitorias y no disruptivas (toasts y snackbars) que comuniquen resultados de acciones y estados del sistema sin bloquear el flujo del usuario.

¿Qué es Sistema de Toast y Snackbar?

Este skill proporciona una metodología completa para diseñar e implementar notificaciones temporales y no obstructivas (toasts y snackbars) en interfaces de usuario. Es útil para desarrolladores y diseñadores de UI/UX que necesitan un sistema robusto y accesible para comunicar resultados de acciones (éxito, error, advertencia, información) sin interrumpir la experiencia del usuario. El sistema cubre desde la anatomía del componente, la colocación espacial adaptativa (escritorio y móvil), la lógica de cola y apilamiento, hasta la gestión de tiempos de expiración, pausa al pasar el ratón o al enfocar, gestos táctiles (deslizar) y cumplimiento de accesibilidad (WCAG 2.2). Incluye reglas de decisión para seleccionar la ubicación y animación según el diseño de navegación, y matrices de expiración según el tipo de mensaje y si contiene botones de acción. También documenta patrones de fallo comunes y criterios de validación.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/coastdigitalgroup/coastai-skills/tree/HEAD/website-design/toast-and-snackbar-system

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace Sistema de Toast y Snackbar?

Propósito

El Sistema de Toast y Snackbar proporciona una metodología para diseñar capas de notificación temporales y no disruptivas. Son componentes de UI breves, que se descartan automática o manualmente, y se sitúan en una capa de pantalla dedicada sobre la interfaz principal. A diferencia de las superposiciones modales, no secuestran el foco ni detienen el flujo del usuario; en cambio, sirven como un "bucle de reconocimiento" pasivo de alta visibilidad que confirma que una tarea en segundo plano o inmediata ha tenido éxito, ha fallado o requiere atención menor. Este sistema garantiza que los toasts estén visualmente unificados, posicionados para no bloquear controles vitales y sean completamente accesibles para usuarios de ratón, táctil y tecnologías de asistencia.

Casos de Uso

  • Acciones Asíncronas: Confirmar que un archivo se ha subido, un borrador se ha guardado o un registro se ha eliminado en segundo plano.
  • Confirmación de Micro-Compromisos: Reconocer acciones como añadir un producto al carrito, copiar un enlace al portapapeles o alternar una preferencia local del sistema.
  • Operaciones Destructivas Reversibles: Notificar al usuario que un elemento fue archivado o eliminado, acompañado de una acción "Deshacer" inmediata dentro del snackbar.
  • Actualizaciones de Estado Transitorio: Mostrar alertas breves y automatizadas del sistema, como la transición a un estado "Sin conexión" o "En línea".

Cuándo NO Usar

  • Bloqueos del Sistema de Alta Gravedad: Si un error crítico requiere intervención inmediata o bloquea al usuario (ej. sesión caducada, fallo de pago); usar sistema-de-superposicion-y-dialogo (Modal).
  • Avisos de Sección Persistentes: Si un aviso o error se relaciona específicamente con una sección, página o contexto de formulario completo y necesita permanecer visible hasta resolverse; usar sistema-de-banner-y-alerta (Alerta En Línea).
  • Mensajes de Validación de Formularios: Si el usuario comete un error en un campo de entrada específico; usar sistema-de-diseno-de-formularios (validación a nivel de campo).
  • Descubrimiento de Contenido Principal: Nunca usar toasts para presentar contenido principal, anuncios de marketing u opciones de navegación.

Entradas

  1. Gravedad / Tipo de Mensaje: Éxito (confirmación), Información (actualizaciones neutrales), Advertencia (preocupación no bloqueante) o Error (fallo de operación).
  2. Requisitos de Acción: ¿La retroalimentación es pasiva (solo lectura) o incluye una micro-acción única (ej. "Deshacer", "Ver", "Reintentar")?
  3. Espacio en Pantalla y Clase de Dispositivo: Viewports objetivo (escritorio, tableta, móvil) y métodos de entrada predominantes (hover de ratón vs. alcance del pulgar).
  4. Estrategia de Z-Index y Capas: Reglas de contexto de apilamiento para evitar superponer la navegación del encabezado, pies de página fijos o superposiciones activas.

Salidas

  1. Especificación de Anatomía: Plano basado en cuadrícula del contenedor, ranura de icono, cadena de mensaje, CTA de acción y botón de cierre manual.
  2. Reglas de Alineación Espacial y Colocación: Coordenadas adaptativas para escritorio (ej. pila superior derecha o inferior derecha) y móvil (ej. deslizamiento hacia arriba de ancho completo en la parte inferior).
  3. Lógica de Cola y Apilamiento: Reglas del sistema para manejar alertas simultáneas, límites máximos visibles y secuenciación de caducidad.
  4. Cronograma Interactivo y Especificación de Caducidad: Reglas que rigen los tiempos de autodescarte, comportamientos de pausa al pasar el ratón y gestos de deslizamiento.
  5. Plano de Accesibilidad / ARIA: Mapeo semántico de regiones activas, manejo del foco para toasts interactivos y anuncios del lector de pantalla.

Flujo de Trabajo

1. Estructurar la Anatomía del Componente

Definir una cuadrícula de espaciado y diseño precisa para el contenedor del toast utilizando fichas espaciales estándar:

  • Ranura de Icono: Ancho fijo (ej. 20px o 24px) colocado en el extremo izquierdo. Usar iconos de estado semánticos y de alto contraste (marca de verificación para Éxito, triángulo de exclamación para Advertencia/Error, círculo de información para Información).
  • Área de Texto: Tipografía alineada a la izquierda y que se ajusta, que consiste en un título breve (negrita, opcional) y una descripción. Nunca truncar el texto con puntos suspensivos; ajustarlo hasta un máximo de 3 líneas.
  • Ranura de Acción (Opcional): Un único botón de texto muy visible (ej. "Deshacer") colocado a la derecha del mensaje. Para texto largo en móvil, ajustar la acción a una nueva línea alineada a la derecha.
  • Disparador de Descartar: Un botón de cierre 'X' claro colocado en el extremo derecho. Debe tener un área de impacto mínima de 24x24px (44x44px preferido para objetivos táctiles).

2. Determinar la Colocación Espacial por Viewport

  • Colocación en Escritorio: Posicionar la pila de contenedores de toast en la esquina Superior Derecha o Inferior Derecha de la pantalla. Mantener un desplazamiento constante de 24px desde los bordes del viewport.
    • Pila Superior Derecha: Mejor cuando el flujo de acciones principales ocurre en las partes inferiores de la página.
    • Pila Inferior Derecha: Mejor cuando la navegación montada en la parte superior o las barras de utilidades ocupan el margen superior, evitando superposiciones.
  • Colocación en Móvil: Transformar la pila de escritorio en una Snackbar anclada en la parte inferior y de ancho completo (márgenes de 12px a 16px desde los bordes izquierdo, derecho e inferior). Esto mantiene la interacción dentro de la "zona de alcance del pulgar" óptima.
  • Regla de Z-Index: Asignar siempre un token de z-index dedicado (ej. z-index: 5000 o superior) que coloque los toasts por encima de los encabezados fijos estándar (z-index: 1000) pero por debajo de las superposiciones activas de pantalla completa (z-index: 10000).

3. Establecer la Lógica de Apilamiento y Cola

Gestionar entornos de activación de alto volumen sin inducir thrashing de diseño o saturación cognitiva:

  • Límite Máximo Visible: Limitar la cola activa a un máximo de 3 toasts visibles apilados verticalmente.
  • Dirección de Apilamiento:
    • Si se coloca en la parte superior de la pantalla, los nuevos toasts se deslizan desde arriba, empujando los toasts más antiguos hacia abajo.
    • Si se coloca en la parte inferior de la pantalla, los nuevos toasts se deslizan hacia arriba desde abajo, empujando los toasts más antiguos hacia arriba.
  • Búfer de Cola: Si se activa un 4º toast mientras 3 están activos, almacenar en búfer el nuevo toast en memoria. Renderizarlo inmediatamente cuando el toast visible más antiguo expire naturalmente y se desvanezca.

4. Programar la Caducidad y el Cronograma de Pausa al Pasar el Ratón

Los toasts deben existir el tiempo suficiente para leerse pero disolverse rápidamente para despejar la pantalla:

  • Tiempo de Vida Dinámico (TTL): Calcular la caducidad según la longitud del contenido:
    • Toasts Pasivos Cortos (< 40 caracteres): Descartar después de 5 segundos.
    • Toasts Más Largos o con Acción: Descartar después de 7 a 10 segundos para garantizar que los lectores de pantalla puedan anunciarlos completamente y los usuarios tengan tiempo de leer y actuar.
    • Toasts de Error/Fallo: No descartar automáticamente. Mantenerlos visibles hasta que el usuario haga clic manualmente en el botón 'X', asegurando que la retroalimentación crítica no se pierda.
  • La Interacción "Pausa al Pasar el Ratón":
    • Si un usuario de ratón se desplaza sobre cualquier parte de la cola de toasts, congelar todas las cuentas regresivas TTL activas. Reiniciar y reanudar los temporizadores solo después de que el ratón salga de los límites del toast.
    • Si un usuario de teclado enfoca cualquier elemento dentro de un toast, congelar el temporizador indefinidamente. Reanudar las cuentas regresivas solo cuando el foco se desplace de vuelta al documento principal.

5. Definir los Comportamientos de Cierre y Gestos

  • Deslizamiento Táctil: En dispositivos móviles, permitir a los usuarios descartar snackbars individuales inmediatamente deslizándolos horizontalmente fuera de la pantalla (izquierda o derecha). Mantener el umbral de arrastre al 30% del ancho del viewport.
  • Animación: Usar transiciones suaves aceleradas por hardware (ej. transform y opacity) con una duración de 200ms a 300ms y cubic-bezier(0.16, 1, 0.3, 1) (ease-out-expo) para la entrada, y un desvanecimiento simple de opacity para la salida.

Reglas de Decisión

Matriz de Alineación de Apilamiento

ViewportDiseño de Navegación PrincipalColocación de Toast RecomendadaDirección de Animación
EscritorioBarra Lateral / Dashboard IzquierdoInferior Derecha (mantiene el trabajo principal despejado)Deslizar desde fuera de pantalla a la izquierda
EscritorioEncabezado Superior FijoInferior Derecha (evita oclusión de navegación)Deslizar a la izquierda o arriba
EscritorioMinimalista / Énfasis en Pie de PáginaSuperior DerechaDeslizar a la izquierda o abajo
MóvilCualquieraCentrado Inferior / Ancho CompletoDeslizar hacia arriba desde el borde inferior

Matriz de Lógica de Caducidad

Gravedad / Tipo de Toast¿Contiene Botón de Acción?Caducidad RecomendadaTipo de Descartado
Éxito / InformaciónNo5 segundos (Fijo)Autodescartar + Cierre manual
Éxito / InformaciónSí ("Deshacer" / "Ver")8 - 10 segundosAutodescartar + Cierre manual
AdvertenciaNo7 segundosAutodescartar + Cierre manual
Error / FalloSí o NoInfinito (Permanece persistente)Cierre manual SOLAMENTE

Restricciones

  • Accesibilidad (Cumplimiento WCAG 2.2):
    • Regiones Vivas ARIA: Mapear toasts pasivos a role="status" (que por defecto tiene aria-live="polite" y aria-atomic="true"). Evitar usar role="alert" (assertivo) a menos que se comunique un fallo del sistema (ej. "Conexión a Internet perdida"), ya que las alertas assertivas interrumpen inmediatamente a los lectores de pantalla a mitad de una frase.
    • Navegación por Teclado (WCAG 2.2 SC 2.1.1): Cuando un toast contiene una acción interactiva (ej. "Deshacer" o "Ver"), debe ser accesible por teclado. Dado que los bucles de tabulación del teclado pueden ser lentos, proporcionar un atajo global de bypass (ej. Escape cierra el toast activo, o F6 desplaza el foco directamente al contenedor de la cola de toasts) o colocar el contenedor del toast justo después del activador activo en el orden de tabulación del DOM.
    • Sin Trampas de Foco: Nunca atrapar el foco del teclado dentro de una cola de toasts. El usuario debe poder salir libremente con Tab del toast y volver al contenido de la página.
  • Contraste (WCAG 2.2 SC 1.4.3):
    • Todo el texto, iconos de estado y botones deben cumplir los mínimos de contraste contra el fondo del toast:
      • Texto normal: 4.5:1 de contraste mínimo.
      • Iconos y bordes de controles activos: 3:1 de contraste mínimo.
  • Capacidad de Respuesta:
    • En viewports < 600px, el contenedor del toast debe abarcar todo el ancho (width: calc(100% - 32px)) con alineación horizontal centrada para evitar columnas de margen incómodas.

Patrones de Fallo Comunes

  • La Trampa de la "Acción Ocluida": Colocar la cola de toasts de escritorio directamente sobre elementos interactivos de alta frecuencia, como el botón del carrito de compras en el encabezado o un desplegable de filtrado de tabla, provocando que los usuarios hagan clic incorrecto.
  • El Destello "Ahora lo Ves, Ahora No": Auto-descartar un error o advertencia complejo de varias palabras en 2-3 segundos. Esto viola los umbrales básicos de lectura de accesibilidad y causa pánico en los usuarios que perdieron el contexto.
  • Silencio del Lector de Pantalla: Añadir toasts dinámicamente al DOM sin un envoltorio de región-viva ARIA, haciéndolos completamente invisibles para usuarios con discapacidad visual.
  • Thrashing de Cambio de Diseño: Animar la altura de la cola de toasts abruptamente al entrar, provocando que el contenido principal de la página se mueva hacia arriba y hacia abajo.
  • Ignorancia de Caducidad por Hover/Foco: Permitir que un toast se autodescarte mientras un usuario está leyendo un texto denso al pasar el ratón o se desplaza sobre una CTA "Deshacer", causando que hagan clic en "aire muerto" y activen acciones no deseadas.

Criterios de Validación

  • Los toasts están estilizados con indicadores semánticos de alto contraste distintos (color + icono único).
  • En escritorio, los toasts no se superponen a los elementos de navegación principales ni a las zonas de acción global.
  • En móvil, los toasts se transforman en componentes anclados en la parte inferior y de ancho completo, fácilmente alcanzables con el pulgar.
  • Los temporizadores activos se pausan instantáneamente al pasar el ratón sobre ellos o al enfocarlos por teclado.
  • Los toasts con acción permanecen visibles durante un mínimo de 8 a 10 segundos; los toasts de error nunca se autodescartan.
  • El marcado de lector de pantalla semántico (role="status" o role="alert") está especificado correctamente.
  • Los usuarios de teclado pueden navegar a los botones de acción del toast y activarlos sin barreras de trampa de foco.
  • Todos los elementos interactivos (botón de cierre, CTA) cumplen el objetivo táctil mínimo de WCAG 2.2 de 24x24px (44x44px preferido).

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for progressive disclosure using accordions, ensuring structural integrity, visual affordances, and accessibility across different content densities and devices.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for long-form content, managing readability, vertical rhythm, and information density to ensure a superior reading experience.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for informational elements that communicate state (Badges) and categorization (Tags) with clarity and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for non-overlay notifications, managing global announcements and contextual inline alerts to communicate system states without interrupting the user's flow.

coastdigitalgroup/coastai-skills

Design and implement a systematic, asymmetrical bento-grid layout framework to organize diverse content types cohesively while maintaining strict visual hierarchy, logical focus order, and responsive flexibility.

coastdigitalgroup/coastai-skills

Design a responsive, mobile-first bottom navigation bar and persistent action dock system for mobile websites and web applications, establishing spatial anchors, tab bar anatomy, badge indicators, thumb-zone ergonomics, safe area inset handling, active/inactive state contrast, and desktop responsive adaptation rules.

coastdigitalgroup/coastai-skills

Design a mobile-first bottom sheet overlay system with configurable detents, drag affordances, safe area padding, responsive desktop modal/popover adaptation, and WCAG AA accessibility compliance.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for secondary navigation trails that provide orientation, context, and one-click access to parent levels in deep information architectures.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for buttons and interactive triggers, managing visual hierarchy, variant logic, and action grouping to ensure clear intent and accessible interaction.

coastdigitalgroup/coastai-skills

Design a systematic framework for date and time selection, managing calendar grids, range pickers, and scheduling interfaces to ensure precision and accessibility.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for modular content containers that maintain hierarchy, structural integrity, and action alignment across variable content and responsive viewports.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for horizontal discovery components, managing navigation affordances, scroll behavior, and accessibility to ensure effective content density without compromising usability.

coastdigitalgroup/coastai-skills

Design a systematic, highly accessible, and developer-friendly UI layout framework for code blocks, snippet showcases, multi-file code tabs, line-highlighting, diff views, and syntax token contrast in technical documentation and developer platforms.

coastdigitalgroup/coastai-skills

Design a systematic framework for global command menus (Cmd+K panels) that combines keyboard-driven navigation, command execution, and shortcut discovery into an accessible, responsive overlay.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for threaded conversations, managing nesting depths, action hierarchies, and community signaling to foster engagement and readability.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for side-by-side comparison interfaces, managing high attribute density and responsive complexity to support informed decision-making.

coastdigitalgroup/coastai-skills

Design and implement a systematic framework for user privacy, managing consent banners, preference centers, and persistent privacy controls to balance legal compliance with user trust.

coastdigitalgroup/coastai-skills

Design and implement a systematic, highly accessible, and responsive visual layout framework for conversational chat widgets, live chat boxes, and chatbot panels that ensures clear message scannability, native focus flow, and seamless mobile keyboard adaptation.

coastdigitalgroup/coastai-skills

Design a systematic, accessible, and high-conversion framework for custom select dropdowns and comboboxes, defining anatomy, states, search-filtering, and responsive mobile-adaptive patterns.

coastdigitalgroup/coastai-skills

Design and implement a systematic color palette that ensures WCAG 2.2 accessibility compliance. Trigger this skill when asked to define brand colors, create UI themes, or establish a visual system for a website.

Skills relacionados