Files
Autoparts-DB/docs/design/pantallas-pos.md
consultoria-as 5fc47473b6 docs: add POS screen design guide for design team
10 screens, 20 reusable components, 6 states/variants,
CSS theme system. Complete wireframes and specifications
for each page, modal, and component.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 21:18:14 +00:00

20 KiB

Nexus POS — Guia de Pantallas para Equipo de Diseno

Fecha: 2026-03-27 Proyecto: Nexus Autoparts — Modulo POS + Inventario Tech: PWA instalable (HTML/CSS/JS) con CSS custom properties para theming


Resumen

  • 10 pantallas a disenar (7 existentes + 3 pendientes)
  • 15 componentes reutilizables
  • 6 estados/variantes por pantalla
  • Sistema de temas via CSS variables (cada cliente puede tener su propio tema)

1. Pantallas Existentes (redisenar)

1.1 Login (PIN Pad)

Archivo: login.html Usuarios: Todos los empleados Dispositivo: Desktop + tablet

Descripcion: Pantalla de entrada al sistema. El empleado ingresa un PIN de 4 digitos para identificarse. No hay usuario/contrasena — solo PIN.

Elementos:

  • Logo del negocio (configurable por tenant)
  • Titulo "Nexus POS" (o nombre del negocio)
  • Subtitulo "Ingresa tu PIN"
  • 4 dots de progreso (se llenan al ingresar digitos)
  • Teclado numerico 3x4: [1-9], [Borrar], [0], [OK]
  • Area de mensaje de error ("PIN incorrecto", "Dispositivo bloqueado")
  • Los botones deben ser grandes (72px minimo) para uso tactil

Interacciones:

  • Auto-submit al ingresar 4 digitos
  • Soporte de teclado fisico (0-9, Backspace, Enter)
  • Animacion al llenar cada dot
  • Shake animation en error

Estados:

  • Default (vacio)
  • Ingresando (1-3 dots llenos)
  • Verificando (spinner o loading)
  • Error (mensaje + shake)
  • Bloqueado (mensaje de cooldown 15 min)

Archivo: catalog.html Usuarios: Cajero, Admin, Dueno Dispositivo: Desktop (landscape) + tablet

Descripcion: El inventario del negocio presentado como catalogo navegable. El cajero busca partes aqui y las agrega al carrito. Al terminar, salta al POS para cobrar.

Layout:

+------------------------------------------+--------+
| [Buscar parte...]  [Filtros]   [Carrito 3]|        |
+------------------------------------------+        |
| Categorias | Marcas |          CARRITO    |
|            |        |          SIDEBAR    |
| +--------+ +--------+ +--------+         |
| | Balatas| | Discos | | Bujias |  Item 1 |
| | Bosch  | | Brembo | | NGK    |  Item 2 |
| | $385   | | $720   | | $85    |  Item 3 |
| | Stock:8| | Stock:3| | Stock:0|         |
| |[+Cart] | |[+Cart] | |[Agot.] |  Total  |
| +--------+ +--------+ +--------+ [Cobrar]|
+------------------------------------------+--------+

Elementos:

  • Barra de busqueda con icono de barcode scanner
  • Chips de filtro: Categoria, Marca (fabricante), Solo en stock
  • Grid de tarjetas de producto:
    • Imagen (placeholder si no hay)
    • Nombre de la parte
    • Numero de parte (font mono)
    • Marca/fabricante
    • Precio (segun tier del empleado)
    • Badge de stock: verde (OK), amarillo (bajo minimo), rojo (agotado)
    • Boton "Agregar al carrito"
  • Paginacion
  • Carrito sidebar (slide-in desde la derecha):
    • Lista de items con cantidad editable
    • Subtotal por item
    • Subtotal, IVA, Total
    • Boton "Ir a cobrar" (prominente)
    • Boton "Vaciar carrito"
  • Seccion "Buscar en bodegas" (cuando hay internet):
    • Disponibilidad externa con precio y bodega

Interacciones:

  • F1 enfoca busqueda
  • Enter en resultado agrega al carrito
  • Barcode scanner: detecta entrada rapida + Enter
  • Click en tarjeta abre detalle, doble-click agrega

1.3 Punto de Venta (POS)

Archivo: pos.html Usuarios: Cajero, Admin, Dueno Dispositivo: Desktop (landscape) — pantalla principal de trabajo

Descripcion: La pantalla de cobro. Aqui se procesan ventas, cotizaciones y apartados. Optimizada para velocidad — todo operable por teclado.

Layout:

+----------------------------+-----------------------------+
| [F1 Buscar parte...]       | Cliente: Taller Juarez      |
| [F2 Buscar cliente...]     | RFC: TAJJ850101XXX          |
|                            | Credito: $15,000 disp.      |
| Resultados de busqueda:    | Vehiculo: Suburban 2018     |
| - Balatas Bosch $385  [+]  | Ult. compra: filtro 3 meses |
| - Balatas TRW  $310   [+]  |-----------------------------|
|                            | #  Parte    Cant  Precio  ST|
|                            | 1  Balatas    2    $385  $770|
|                            | 2  Discos     1    $720  $720|
|                            | 3  Liquido    1     $95   $95|
|                            |-----------------------------|
|                            | Subtotal:          $1,585.00|
|                            | Descuento (5%):      -$79.25|
|                            | IVA 16%:             $241.12|
|                            | TOTAL:             $1,746.87|
|                            |-----------------------------|
| Si tiene permiso:          | [F3 Cobrar] [F4 Cotizacion] |
| Costo: $220 Margen: 43%   | [Apartado]  [Credito]       |
+----------------------------+-----------------------------+

Elementos principales:

  • Panel izquierdo:
    • Busqueda de partes (F1)
    • Busqueda de cliente (F2) con autocompletado
    • Lista de resultados con boton agregar
  • Panel derecho:
    • Banner de cliente (nombre, RFC, credito disponible, vehiculo, ultima compra)
    • Tabla de items de la venta:
      • Numero de parte
      • Nombre
      • Cantidad (editable inline)
      • Precio unitario
      • Descuento % (editable, valida contra maximo del empleado)
      • Subtotal
      • Si tiene permiso pos.view_cost: columnas de Costo y Margen% (ocultas para cajeros)
    • Barra de totales: Subtotal, Descuento, IVA, TOTAL (fuente grande mono)
    • Botones de accion:
      • [F3] Cobrar (primario, prominente)
      • [F4] Cotizacion
      • Apartado
      • Credito
      • [F5] Ultima venta
      • [F6] Abrir cajon

Modal de pago (al presionar F3):

+--------------------------------+
| COBRAR — Total: $1,746.87     |
|--------------------------------|
| [Efectivo] [Transfer] [Tarjeta] [Mixto] |
|                                |
| Efectivo:                      |
| Recibido: [$ 2,000.00]        |
| Cambio:     $253.13           |
|                                |
| [  ] Facturar (CFDI)          |
|                                |
|          [Confirmar pago]      |
+--------------------------------+
  • Tab Efectivo: campo de monto recibido, calculo automatico de cambio
  • Tab Transferencia: campo de referencia bancaria
  • Tab Tarjeta: campo de referencia de terminal
  • Tab Mixto: multiples campos (ej: $1,000 efectivo + $746.87 transferencia)
  • Checkbox "Facturar" (genera CFDI)

Preview de ticket (despues de cobrar):

  • Layout termico 58/80mm
  • Datos del negocio (RFC, direccion)
  • Folio de venta
  • Items con cantidad, precio, subtotal
  • Totales
  • Forma de pago
  • Fecha y hora
  • Boton imprimir / PDF

Atajos de teclado (mostrar en footer o tooltip):

F1=Buscar  F2=Cliente  F3=Cobrar  F4=Cotizacion
F5=Ult.Venta  F6=Cajon  +/-=Cantidad  *=Descuento
Enter=Agregar  Delete=Quitar  Esc=Cerrar modal
Flechas=Navegar items

1.4 Inventario

Archivo: inventory.html Usuarios: Almacenista, Admin, Dueno Dispositivo: Desktop + tablet

Descripcion: Gestion completa del inventario. Tabs para cada operacion.

Tabs:

Tab 1 — Productos:

  • Tabla: parte#, nombre, marca, stock, costo, precio1/2/3, ubicacion
  • Busqueda por nombre/numero
  • Boton "Nuevo producto" (abre modal)
  • Click en row abre detalle/edicion
  • Badge de stock por colores

Tab 2 — Entradas (Compras):

  • Formulario: seleccionar producto, cantidad, costo unitario, # factura proveedor
  • Tabla de entradas recientes

Tab 3 — Ajustes:

  • Formulario: seleccionar producto, cantidad (+/-), razon (obligatorio)
  • Tabla de ajustes recientes

Tab 4 — Transferencias:

  • Formulario: producto, sucursal origen, sucursal destino, cantidad
  • Tabla de transferencias recientes

Tab 5 — Toma Fisica:

  • Dos fases:
    1. Captura: tabla editable (producto → cantidad contada)
    2. Revision: comparar esperado vs contado, mostrar diferencias
    3. Boton "Aprobar ajustes"

Tab 6 — Alertas:

  • Lista con severidad:
    • Rojo: stock en cero
    • Amarillo: bajo minimo
    • Azul: sobre maximo

Tab 7 — Reportes:

  • Botones para cada reporte:
    • Inventario valorizado
    • Clasificacion ABC
    • Sin movimiento (>60 dias)
    • Stock bajo minimo
    • Comparativo sucursales

Modal Crear/Editar Producto:

  • Numero de parte (obligatorio)
  • Nombre (obligatorio)
  • Marca/fabricante
  • Unidad (PZA, JGO, LT, etc.)
  • Costo
  • Precio 1 (mostrador), Precio 2 (taller), Precio 3 (mayoreo)
  • Tasa de impuesto (default 16%)
  • Stock minimo y maximo
  • Ubicacion en almacen (ej: "Pasillo 3, Anaquel B")
  • Codigo de barras (auto-generado o manual)
  • Imagen
  • Stock inicial

1.5 Clientes

Archivo: customers.html Usuarios: Admin, Dueno, Contador Dispositivo: Desktop

Descripcion: Gestion de clientes con informacion fiscal, credito y vehiculos.

Layout:

+---------------------------+-------------------------+
| [Buscar cliente...]       |                         |
| [+ Nuevo]                 |   PANEL DE DETALLE      |
|                           |   (slide-in)            |
| Nombre    RFC     Tier    |                         |
| Taller J. TAJJ... Taller |   Nombre: Taller Juarez |
| Mech.Exp  MEEX... Mostrad|   RFC: TAJJ850101XXX    |
| AutoServ  AUTO... Mayoreo|   Credito: $10,000      |
|                           |   Saldo: $3,200         |
|                           |   Disponible: $6,800    |
|                           |                         |
|                           |   Vehiculos:            |
|                           |   - Suburban 2018       |
|                           |   - Tsuru 2015          |
|                           |                         |
|                           |   Compras recientes:    |
|                           |   - Balatas $770 (3d)   |
|                           |   - Filtro $120 (30d)   |
|                           |                         |
|                           |   [Estado de cuenta]    |
+---------------------------+-------------------------+

Modal Estado de Cuenta:

+----------------------------------------------+
| Estado de Cuenta — Taller Juarez             |
|----------------------------------------------|
| Fecha    | Concepto  | Cargo | Abono | Saldo |
| 01-abr   | Factura   | 5,800 |       | 5,800 |
| 08-abr   | Pago      |       | 3,000 | 2,800 |
| 15-abr   | Factura   | 2,300 |       | 5,100 |
|----------------------------------------------|
| Saldo actual: $5,100                         |
+----------------------------------------------+

Modal Crear/Editar Cliente:

  • Nombre (obligatorio)
  • RFC (13 caracteres)
  • Razon social
  • Regimen fiscal (catalogo SAT)
  • Uso CFDI (catalogo SAT)
  • Codigo postal
  • Email, telefono, direccion
  • Tier de precio: Mostrador (1), Taller (2), Mayoreo (3)
  • Limite de credito
  • Vehiculos (JSON array): marca, modelo, ano, VIN, placas

1.6 Facturacion

Archivo: invoicing.html Usuarios: Admin, Dueno, Contador Dispositivo: Desktop

Descripcion: Cola de facturacion electronica (CFDI). Muestra el status de cada factura y permite procesar, cancelar, y ver XML.

Elementos:

  • Tarjetas de resumen: Pendientes, Timbradas, Fallidas, Canceladas
  • Filtros: status, fecha
  • Tabla de cola CFDI:
    • Folio provisional
    • Tipo (Ingreso/Egreso/Pago)
    • Cliente
    • Total
    • Status badge:
      • Azul: Pending
      • Amarillo: Sending
      • Verde: Stamped
      • Rojo: Failed
      • Gris: Cancelled
    • UUID fiscal (si timbrada)
    • Acciones: Ver detalle, Cancelar
  • Boton "Procesar cola" (prominente)

Modal Detalle CFDI:

  • XML preview (syntax highlighted)
  • Datos del comprobante
  • UUID, sello, cadena original (si timbrado)

Modal Cancelacion:

  • Motivo SAT (selector):
    • 01: Con errores con relacion
    • 02: Con errores sin relacion
    • 03: No se llevo a cabo
    • 04: Operacion nominativa
  • Campo UUID de sustitucion (solo si motivo 01)
  • Boton confirmar cancelacion

1.7 Contabilidad

Archivo: accounting.html Usuarios: Contador, Dueno Dispositivo: Desktop

Descripcion: Modulo contable con catalogo de cuentas, polizas automaticas, y reportes financieros.

Tabs:

Tab 1 — Catalogo de Cuentas:

  • Arbol colapsable con indentacion:
    v 100 Activo
      v 110 Caja
      v 111 Bancos
      v 120 Clientes
      v 130 Inventarios
    v 200 Pasivo
      v 210 Proveedores
      v 220 IVA Trasladado
    
  • Cada cuenta muestra: codigo, nombre, saldo actual
  • Boton "Nueva subcuenta"
  • Cuentas de sistema (is_system) no editables

Tab 2 — Polizas:

  • Filtros: fecha desde/hasta, tipo (ingreso/egreso/diario)
  • Tabla: #poliza, fecha, tipo, descripcion, cargo total, abono total
  • Click en poliza abre detalle con lineas
  • Boton "Nueva poliza manual"
  • Badge "Auto" para polizas generadas automaticamente

Tab 3 — Balanza de Comprobacion:

  • Selector: ano + mes
  • Tabla: cuenta, saldo inicial, cargos, abonos, saldo final
  • Totales al fondo (deben cuadrar)

Tab 4 — Estado de Resultados:

  • Selector de periodo
  • Ingresos (ventas)
  • (-) Costo de ventas
  • = Utilidad bruta
  • (-) Gastos operativos
  • = Utilidad operativa

Tab 5 — Balance General:

  • Activos (bancos, clientes, inventarios)
  • Pasivos (proveedores, IVA)
  • Capital (capital social + resultado del ejercicio)
  • Activo = Pasivo + Capital (debe cuadrar)

Tab 6 — Antiguedad de Saldos:

  • Tabla por cliente:
    • Cliente, Corriente, 1-30 dias, 31-60 dias, 61-90 dias, 90+ dias
  • Highlight en rojo si >90 dias

Tab 7 — Periodos Fiscales:

  • Tabla: ano, mes, status (abierto/cerrado), cerrado por, fecha cierre
  • Boton "Cerrar periodo" (solo dueno)
  • Confirmacion antes de cerrar

2. Pantallas Pendientes (por construir)

2.1 Dashboard del Dueno

Archivo: dashboard.html Usuarios: Dueno Dispositivo: Movil (primary) + Desktop

Descripcion: Vista ejecutiva del negocio. El dueno lo ve en su celular.

Elementos movil:

+-------------------------+
| Refaccionaria Lopez     |
| Hoy, 15 abril 2026     |
|-------------------------|
| Ventas hoy              |
| $45,200  +12% vs ayer  |
| [===========----] 75%   |
| Meta: $60,000           |
|-------------------------|
| Cajas activas           |
| Caja 1 — Maria          |
| 23 ventas | $28,400     |
| Margen: 34%             |
|                         |
| Caja 2 — Pedro          |
| 15 ventas | $16,800     |
| Margen: 29% ⚠          |
|-------------------------|
| Alertas (3)             |
| ! Descuento $500 Maria  |
| ! Bujias NGK: stock 3   |
| ! Balatas: agotado       |
|-------------------------|
| Esta semana             |
| L  M  M  J  V  S  D    |
| 42 38 45 45  -  -  -   |
|         (miles)         |
+-------------------------+

Para multi-sucursal:

  • Toggle entre sucursales o vista consolidada
  • Comparativo entre sucursales

2.2 Configuracion

Archivo: config.html Usuarios: Dueno, Admin Dispositivo: Desktop

Tabs:

Tab 1 — Datos del Negocio:

  • Nombre, RFC, razon social, regimen fiscal
  • Direccion, codigo postal
  • Logo
  • Link a Horux para CSD (credenciales SAT)

Tab 2 — Sucursales:

  • Lista de sucursales (nombre, direccion, telefono)
  • Crear/editar sucursal

Tab 3 — Empleados:

  • Lista: nombre, email, rol, sucursal, descuento max, activo
  • Crear/editar empleado con asignacion de rol y permisos
  • Roles: Dueno, Admin, Cajero, Almacenista, Contador

Tab 4 — Tema:

  • Selector de tema predefinido
  • Preview en vivo
  • (Los temas los define el equipo de diseno)

2.3 Reportes

Archivo: reports.html Usuarios: Dueno, Admin, Contador Dispositivo: Desktop

Secciones:

Ventas:

  • Ventas por periodo (dia/semana/mes/ano) con grafica
  • Ventas por empleado
  • Ventas por categoria
  • Ventas por cliente
  • Ticket promedio y tendencia

Inventario:

  • Inventario valorizado
  • Clasificacion ABC
  • Productos sin movimiento
  • Stock bajo minimo
  • Comparativo entre sucursales

Financieros:

  • (Links a Contabilidad: balanza, estado de resultados, balance)
  • Flujo de efectivo
  • Cortes de caja historicos

3. Componentes Reutilizables

El equipo de diseno debe crear estos componentes como sistema de diseno:

# Componente Usado en Notas
1 PIN Pad Login Teclado 3x4, dots de progreso, botones grandes
2 Barra de busqueda Catalogo, POS, Inventario, Clientes Con icono scanner, debounce 300ms
3 Carrito sidebar Catalogo Slide-in derecha, items con qty editable
4 Modal de pago POS 4 tabs: Efectivo, Transferencia, Tarjeta, Mixto
5 Selector de cliente POS Autocompletado dropdown, banner con vehiculo
6 Badge de stock Catalogo, Inventario Verde=OK, Amarillo=bajo, Rojo=agotado
7 Badge de status CFDI Facturacion 5 colores segun estado
8 Tabla paginada Todas Header sticky, rows hover, paginacion, busqueda
9 Modal generico Todas Header, body scrollable, footer con acciones
10 Panel deslizante Clientes Slide-in lateral, cierra con Esc o click fuera
11 Ticket termico POS Layout 58/80mm, monospaciado, logo arriba
12 Arbol colapsable Contabilidad Indentacion, expand/collapse, iconos
13 Tabs de navegacion Inventario, Contabilidad Horizontal, badge con conteo
14 Chips de filtro Catalogo Toggle on/off, multiples activos
15 Toast/notificacion Todas Exito (verde), Error (rojo), Info (azul), Warning (amarillo)
16 Tarjeta de metrica Dashboard Numero grande, label, tendencia (flecha up/down)
17 Grafica de barras Dashboard, Reportes Barras verticales con labels
18 Calculadora de cambio Modal de pago Input monto, muestra cambio en tiempo real
19 Selector de periodo Contabilidad, Reportes Ano + Mes dropdowns
20 Etiqueta codigo barras Inventario Formato imprimible para impresora de etiquetas

4. Estados y Variantes

Cada pantalla debe disenarse en estos estados:

Estado Visual Donde
Default Contenido normal Todas
Vacio Ilustracion + texto "No hay datos" + CTA Catalogo, Clientes, Inventario
Cargando Skeleton placeholders o spinner Tablas, listas, reportes
Error Toast rojo con mensaje + retry Fallas de API
Sin conexion Banner amarillo "Modo offline — funciones limitadas" Header global
Exito Toast verde "Venta completada" / "Pago registrado" Post-accion
Confirmacion Modal "Estas seguro?" con motivo Cancelar venta, cerrar caja, ajustar stock
Permiso denegado Seccion oculta o deshabilitada Costos/margen para cajeros, precios para almacenistas

5. Sistema de Temas (CSS Variables)

Cada tenant puede tener su propio tema. El equipo de diseno define los valores:

:root[data-theme="default"] {
    /* Colores principales */
    --color-primary: #1a73e8;
    --color-secondary: #5f6368;
    --color-accent: #ff6b35;

    /* Fondos */
    --color-bg: #ffffff;
    --color-surface: #f8f9fa;
    --color-surface-hover: #e8eaed;

    /* Texto */
    --color-text: #202124;
    --color-text-secondary: #5f6368;
    --color-text-muted: #9aa0a6;

    /* Bordes */
    --color-border: #dadce0;

    /* Semanticos */
    --color-success: #34a853;
    --color-warning: #f9ab00;
    --color-error: #ea4335;
    --color-info: #4285f4;

    /* Tipografia */
    --font-display: 'Sora', sans-serif;
    --font-body: 'Plus Jakarta Sans', sans-serif;
    --font-mono: 'JetBrains Mono', monospace;

    /* Forma */
    --radius: 8px;
    --radius-lg: 12px;
    --shadow: 0 1px 3px rgba(0,0,0,0.12);
    --shadow-lg: 0 4px 12px rgba(0,0,0,0.15);
}

Variantes sugeridas a disenar:

  • Light (default)
  • Dark
  • High contrast (accesibilidad)

6. Notas Tecnicas para el Equipo

  • Responsive: Desktop-first. POS y Catalogo en landscape. Dashboard movil-first.
  • Impresion: Ticket termico necesita CSS @media print especifico para 58mm y 80mm.
  • Offline: Mostrar indicador visual cuando no hay conexion. Ocultar features que requieren internet (buscar en bodegas).
  • Permisos: Algunas columnas/secciones se ocultan segun el rol del empleado. Disenar con y sin esas columnas.
  • F-keys: El POS es operable 100% por teclado. Los shortcuts deben ser visibles pero no intrusivos (tooltips o footer).
  • Barcode scanner: El scanner USB escribe caracteres rapido + Enter. No requiere UI especial, solo que el campo de busqueda este enfocado.