Skip to content

Estándares de Diseño UI/UX

El Design System de GM Transport establece los lineamientos visuales y de experiencia de usuario que aplican a todos los productos de la empresa. Su propósito es garantizar coherencia entre plataformas, reducir decisiones de diseño duplicadas y producir interfaces que sean funcionales, modernas y reconocibles como parte del ecosistema GM Transport.

Este documento es la fuente de verdad para diseñadores, desarrolladores frontend, desarrolladores móviles y cualquier persona que tome decisiones sobre la apariencia o el comportamiento de un producto.

Principios de Diseño

El diseño de GM Transport combina funcionalidad operacional con acabado visual moderno. Los productos no son aplicaciones de consumo; son herramientas profesionales diseñadas para equipos de trabajo en contextos exigentes.

Los cinco pilares del sistema son:

PilarDescripción
ClaridadCada pantalla tiene una acción primaria visible. El usuario nunca debe dudar qué hacer.
EficienciaLas acciones más frecuentes están disponibles en dos pasos o menos desde cualquier punto.
ConfianzaEl sistema siempre informa al usuario del estado de sus operaciones, incluso sin conexión.
MinimalismoSolo la información relevante al contexto. Sin decoración que no aporte significado.
ContrasteLos colores y tipografías funcionan en condiciones adversas: luz solar, pantallas de bajo brillo.

Filosofía visual

El estilo visual de los productos nuevos de GM Transport sigue el patrón “Operacional Premium”: la interfaz tiene calidad de producto de consumo moderno, pero está diseñada para uso profesional intensivo. La referencia visual es similar a aplicaciones como DiDi o Uber; la paleta base es naranja energético sobre blanco, con acentos azul y verde para estados informativos y exitosos.

Paleta de Colores

La paleta está definida como un conjunto de tokens que deben usarse en su totalidad. No se crean variantes ad-hoc de color: si un color no está en esta tabla, no pertenece al sistema.

Colores primarios

TokenValorUso
primary#FF7043Acciones principales, botones CTA, íconos activos
primaryContainer#FFF2E8Fondos de secciones destacadas, chips seleccionados
onPrimaryContainer#E64A19Texto sobre primaryContainer
onPrimary#FFFFFFTexto e íconos sobre primary

Colores secundarios y terciarios

TokenValorUso
secondary#1976D2Acciones secundarias, información, enlaces
secondaryContainer#E1F4FFFondos informativos
onSecondaryContainer#0D47A1Texto sobre secondaryContainer
tertiary#388E3CConfirmaciones, estados exitosos
tertiaryContainer#E8F5E8Fondos de estado correcto
onTertiaryContainer#1B5E20Texto sobre tertiaryContainer

Superficies y texto

TokenValorUso
surface#FFFFFFFondo base de pantallas y tarjetas
surfaceDim#F8F9FAFondo de listas y secciones
surfaceContainer#F5F6F7Fondo de inputs y elementos neutros
surfaceContainerHighest#EEF0F2Secciones con mayor jerarquía visual
onSurface#1A1C1ETexto primario: títulos, etiquetas principales
onSurfaceVariant#6C7075Texto secundario: subtítulos, metadatos, hints

Estados semánticos

Cada estado tiene un color base y un color de contenedor para fondos sutiles.

EstadoColor baseContenedor
Error#D32F2F#FFEBEE
Éxito#2E7D32#E8F5E8
Advertencia#F57C00#FFF3E0
Información#1976D2#E1F4FF
Pendiente#EC407A#FCE4EC
Cancelado#90A4AE#F5F5F5

Reglas de uso del color

  • El naranja primario (#FF7043) no se usa como fondo de pantalla completa.
  • Los estados de error siempre usan el token error. No se crea un rojo personalizado.
  • Para overlays oscuros: rgba(0,0,0,0.3). No negro sólido.
  • No se usan colores hardcodeados en código. Solo tokens del sistema.

Tipografía

El sistema usa dos familias tipográficas con roles claramente diferenciados.

FamiliaRol
PoppinsTítulos, encabezados, etiquetas de botones, navegación
InterCuerpo de texto, subtítulos, metadatos, datos numéricos

Escala tipográfica

La escala sigue los niveles de Material Design 3, adaptados al contexto operacional.

Niveles de display — pantallas de impacto

NivelFamiliaTamañoPesoUso
Display LargePoppins64sp / ~64px300Pantallas hero, marketing
Display MediumPoppins58sp / ~58px300Bienvenida, onboarding
Display SmallPoppins46sp / ~46px400Títulos en pantallas vacías

Niveles de encabezado

NivelFamiliaTamañoPesoUso
Headline LargePoppins32sp / ~32px500Título de sección principal
Headline MediumPoppins26sp / ~26px500Título de pantalla
Headline SmallPoppins20sp / ~20px500Subtítulo de sección

Niveles de título — componentes

NivelFamiliaTamañoPesoUso
Title LargePoppins18sp / ~18px500AppBar, modales, diálogos
Title MediumPoppins16sp / ~16px500Encabezado de tarjeta
Title SmallPoppins14sp / ~14px500Subtítulo de tarjeta

Niveles de cuerpo y etiqueta

NivelFamiliaTamañoPesoUso
Body LargeInter16sp / ~16px400Texto principal de pantalla
Body MediumInter14sp / ~14px400Descripción, detalle de tarjetas
Body SmallInter12sp / ~12px400Metadatos, fechas, identificadores
Label LargeInter14sp / ~14px500Texto de botones principales
Label MediumInter12sp / ~12px500Chips, badges, etiquetas de navegación
Label SmallInter10sp / ~10px500Micro-etiquetas, estado en chips

Reglas tipográficas

  • El tamaño mínimo de texto legible es 12sp / 12px.
  • El tamaño mínimo de texto crítico (alertas, estados) es 11sp / 11px con peso 700.
  • No se sobreescriben estilos tipográficos definidos en el sistema sin justificación documentada.

Espaciado y Layout

Sistema de espaciado

Todo espaciado interno usa múltiplos de 4dp. La separación entre componentes usa múltiplos de 8dp.

TokenValorUso
smallPadding8dpPadding interno de íconos, separación de chips
defaultPadding16dpPadding estándar de pantallas y tarjetas
largePadding24dpSeparación entre grupos de contenido y secciones

Radios de borde

ComponenteRadio
Tarjetas, inputs, contenedores generales12dp
Botones principales16dp
Diálogos, modales, tarjetas premium20dp
Chips de filtro y estado16–20dp
Checkbox6dp

Alturas estándar de componentes

ComponenteAltura
Barra de navegación superior (AppBar)56dp
Botones principales48dp
Inputs / campos de texto52dp
Barra de navegación inferior56dp + área segura
Chips32dp
Avatares40dp

Márgenes de pantalla

  • Margen lateral estándar: 16dp de padding horizontal.
  • Separación entre tarjetas en lista: 8dp.
  • Padding interno de tarjetas: 16dp horizontal, 12–16dp vertical.

Elevación

El sistema abandona sombras pronunciadas en favor de bordes sutiles con sombras mínimas.

NivelValorUso
0Sin sombraBarra de navegación superior
1Sombra sutil + borde 0.5dpTarjetas normales
2Sombra leveTarjetas navegables o destacadas
4Sombra mediaMensajes flotantes (SnackBar)
8Sombra pronunciadaBotón de acción flotante (FAB)

Componentes y Patrones Visuales

Botones

El sistema define cuatro niveles de botón según la jerarquía de la acción:

TipoUsoApariencia
Primario (Elevated/Filled)Acción principal única por pantallaFondo primary, texto blanco, radio 16dp
Secundario (Outlined)Acción secundaria o reversibleBorde primary, fondo transparente
Terciario (Text)Cancelar o acciones de escapeSolo texto primary, sin borde
ÍconoAcción puntual en contextoÍcono 24dp, área táctil mínima 48dp

Nunca se presentan dos botones primarios simultáneamente en la misma pantalla.

Tarjetas

Las tarjetas son el contenedor visual principal de la información. Siguen este patrón:

  • Fondo: surface (#FFFFFF).
  • Borde sutil: outlineVariant al 30% de opacidad.
  • Sombra: shadow al 6% de opacidad, desplazamiento vertical 4dp, difusión 16dp.
  • Radio: 16dp estándar, 20dp para tarjetas premium o de navegación rápida.

Para tarjetas que responden a interacción del usuario, se aplica efecto ripple en el área interior de la tarjeta.

Campos de texto (Inputs)

  • Estilo: filled (fondo relleno).
  • Fondo en reposo: surfaceContainer (#F5F6F7), sin borde visible.
  • Borde al enfocar: primary 1dp.
  • Borde en error: color error 1dp.
  • Etiqueta flotante en color primary al activar el campo.
  • Radio de borde: 12dp.

Chips de estado

Los chips de estado identifican rápidamente la condición de un elemento (trayecto, solicitud, reporte). Siguen el patrón:

  • Forma de píldora: radio 20dp.
  • Texto blanco sobre fondo del color de estado semántico.
  • Ícono de 14dp a la izquierda del texto.
  • Tipografía: Inter w700, 11sp.

Barra de navegación superior (AppBar)

Dos variantes aprobadas:

VarianteFondoTexto e íconosCuándo usarla
Lightsurface (#FFFFFF)onSurface + primaryPantallas de detalle y formularios
Brandprimary (#FF7043)BlancoPantallas principales y de inicio

Ambas variantes usan elevación 0. El título se alinea a la izquierda.

Mensajes de retroalimentación (SnackBars)

Los mensajes de estado siguen cuatro tipos fijos: éxito, error, advertencia e información. Se presentan siempre como elementos flotantes con radio 12dp y no se muestran múltiples mensajes simultáneos.

TipoColor de fondoDuración
Éxitotertiary / #388E3C3 segundos
Errorerror / #D32F2F4 segundos
Advertenciawarning / #F57C003 segundos
Informaciónsecondary / #1976D23 segundos

Diálogos y paneles modales

  • Radio de borde: 20dp.
  • Título: Headline Small, Poppins w500.
  • Contenido: Body Large, Inter w400, color onSurfaceVariant.
  • Estructura de botones: siempre TextButton para cancelar y botón primario para confirmar.

Iconografía

Librería de íconos

El sistema usa exclusivamente la familia Material Icons Rounded. Esta familia es coherente con la paleta visual y tiene variantes _outlined para estados inactivos.

Tamaños estándar

ContextoTamaño
Íconos en barra superior y acciones24dp
Íconos en navegación inferior24dp
Íconos en tarjetas de detalle20dp
Íconos en chips de estado14dp
Íconos en estados vacíos80dp

Color de íconos

  • Contexto neutro: onSurface (#1A1C1E).
  • AppBar light: onSurface.
  • AppBar brand: blanco.
  • Acciones y CTA: primary (#FF7043).
  • Dentro de contenedores de color: el color del estado correspondiente.

Experiencia del Usuario

Flujos críticos

Los flujos más frecuentes e importantes de cada producto son la prioridad máxima de diseño. Deben seguir estas reglas:

  1. La acción principal siempre está visible sin necesidad de hacer scroll.
  2. Los formularios muestran solo los campos necesarios para el contexto actual.
  3. El feedback de operación es inmediato: el usuario no espera confirmación del servidor para continuar.
  4. Todo flujo de datos remotos maneja cuatro estados: cargando, vacío, error y con datos.

Formularios

  • Validación en tiempo real desde el primer momento que el usuario abandona un campo.
  • Los mensajes de error aparecen debajo del campo afectado, no en alertas separadas.
  • Los formularios de más de cinco campos se dividen en pasos con indicador de progreso.
  • El botón de envío se desactiva visualmente durante el procesamiento.

Listas y búsqueda

  • Los filtros rápidos con seis opciones o menos usan chips con scroll horizontal, no menú desplegable.
  • Las listas se actualizan con gesto pull-to-refresh explícito, no de forma automática mientras el usuario hace scroll.
  • Los estados vacíos muestran un ícono de 80dp, un título descriptivo y, cuando aplica, una acción para comenzar.

Estados de pantalla

Toda pantalla que consulte datos remotos debe manejar estos cuatro estados de forma explícita:

EstadoDescripción visual
CargandoIndicador circular en color primary, tamaño 42dp
VacíoÍcono 80dp en onSurfaceVariant, título headlineSmall, mensaje descriptivo
ErrorÍcono 80dp en error, mensaje humanizado, botón de reintento
Con datosContenido normal de la pantalla

Los mensajes de error nunca exponen detalles técnicos al usuario (códigos HTTP, stack traces). El mensaje debe describir qué falló y qué puede hacer el usuario.

Notificaciones

  • El badge de notificaciones muestra el conteo de elementos no leídos.
  • Las notificaciones no leídas tienen fondo diferenciado en la lista.
  • Al interactuar con una notificación, la navegación lleva directamente al contexto relacionado.

Accesibilidad

Contraste mínimo (WCAG AA)

CasoRatio mínimo
Texto normal (menos de 18px)4.5:1
Texto grande (18px o más) o negrita de 14px o más3:1
Elementos UI y gráficos informativos3:1

Combinaciones verificadas del sistema:

CombinaciónRatioEstado
onSurface (#1A1C1E) sobre surface (#FFFFFF)~19.5:1Aprobado
onPrimary (#FFFFFF) sobre primary (#FF7043)~3.2:1Aprobado para texto grande e íconos

Áreas táctiles

El área táctil mínima de cualquier elemento interactivo es 48×48dp. Cuando el área visual del elemento es menor, el área de toque se expande de forma transparente.

Texto alternativo

  • Los íconos con significado informativo requieren una etiqueta semántica.
  • Las imágenes puramente decorativas se excluyen del árbol de accesibilidad.
  • Los estados (chips, badges) deben ser legibles por lectores de pantalla (TalkBack / VoiceOver).

Animaciones y Transiciones

Principios

Las animaciones comunican estado o jerarquía. No son elementos decorativos. Una animación que no transmite información no debe existir.

TipoDuraciónCurva
Micro-interacciones (tap, foco)150–300msEaseInOut
Transiciones de pantalla300–500msEaseInOut
Entradas de bienvenida / splash800msElasticOut

Reglas de animación

  • No se anima texto que cambie de valor en tiempo real (contadores, cronómetros).
  • No se aplican animaciones a cada ítem de una lista larga; solo al contenedor.
  • Se respeta la preferencia del sistema operativo para reducir movimiento (prefers-reduced-motion).

Patrones Prohibidos

Los siguientes patrones están fuera del sistema y no deben usarse en ningún producto.

Visuales

ProhibidoAlternativa
Fondo de pantalla completa en naranja u otros colores vibrantesFondo surface (#FFFFFF) con acentos de color
Más de un botón primario visible a la vezUn botón primario + uno secundario como máximo
Colores hardcodeados en código de producciónSolo tokens del sistema
Colores de estado personalizados (verde propio, rojo propio)Solo los tokens semánticos del sistema

De experiencia

ProhibidoAlternativa
Overlay de carga que bloquea toda la pantalla en operaciones de fondoIndicador contextual en el área afectada
Solicitar todos los permisos al inicio de la aplicaciónSolicitar en el contexto de uso, con justificación
Formularios de más de cinco campos en una sola pantallaStepper de múltiples pasos
Mensajes de error técnicos al usuarioMensajes humanizados con acción de reintento
Navegación que descarta formularios sin confirmaciónDiálogo de confirmación antes de descartar cambios

Resumen

  • El Design System de GM Transport define tokens de color, tipografía, espaciado y componentes como la única fuente de verdad visual para todos los productos.
  • La paleta primaria es naranja (#FF7043) sobre blanco, con azul para información y verde para estados exitosos. No se crean variantes fuera del sistema.
  • Las dos familias tipográficas son Poppins (títulos y navegación) e Inter (cuerpo y datos). El tamaño mínimo legible es 12sp.
  • Todo espaciado interno usa múltiplos de 4dp; la separación entre componentes usa múltiplos de 8dp.
  • Toda pantalla con datos remotos maneja cuatro estados obligatorios: cargando, vacío, error y con datos.
  • El área táctil mínima de cualquier elemento interactivo es 48×48dp. Los contrastes WCAG AA son un requisito, no una recomendación.
  • Los patrones prohibidos (colores hardcodeados, overlays bloqueantes, errores técnicos expuestos al usuario) están excluidos del sistema sin excepciones.