Sistema de diseño

Inventario completo de la propuesta, incluidos los controles que hoy usa el sistema anterior. Sirve como referencia para el equipo que lo construya.

Cómo se mantiene: el catálogo va por delante del producto. Un componente entra aunque todavía ninguna pantalla lo use: se resuelve una vez, aquí, para que el día que haga falta ya exista una sola forma de hacerlo y no tres inventadas con prisa. Lo que no se negocia es la forma de la ficha —estados, cuándo usarlo y cuándo no, y código— y que toda alta o cambio quede en el registro. Ante la duda de cómo debe comportarse un control, la referencia es baseweb.design: se toma de ahí la interacción y la accesibilidad, no la apariencia, que es la nuestra.

Estable ya vive en una pantalla Nuevo recién entrado Preparado listo, aún sin pantalla que lo use

Cómo funciona esto

Todo esto ya se cumplía y estaba escrito sólo en CLAUDE.md, un fichero dirigido a un asistente. Son las reglas que separan un sistema de una página de muestras.

Las reglas del sistema Nuevo

Las seis reglas que hacen que esto se sostenga: qué forma tiene una ficha, qué dice cada pastilla, de dónde sale cada demo, hacia dónde mandan los tokens y qué se comprueba solo.

Úsalo antes de añadir o cambiar cualquier cosa aquí dentro. No las tomes como burocracia: cada una existe porque algo se rompió sin ella.
Código

        

Color de marca

Color de marca Estable

Los dos azules salen del logotipo. El resto de la escala se deriva de ellos, y los tonos semánticos —verde, ámbar, rosa— sólo se usan para decir cómo va algo, nunca para decorar. Las gráficas con varias series tienen su propio juego de ocho tonos, porque una rampa de azules no distingue ocho marcas.

Úsalo para construir la jerarquía: fondo, superficie y acento. No el color como único portador de un dato: siempre acompáñalo de texto o icono.
Código

        

Superficies

Escala de elevación Estable

La jerarquía de esta propuesta se construye con sombra, no con líneas. Casi no hay bordes en todo el sistema: lo que separa una superficie de otra es a qué altura flota.

Úsalo subiendo de nivel sólo cuando algo se superpone. No añadas bordes para separar: sube la elevación.
Código

        

Tipografía

Escala de cifras Estable

Plus Jakarta Sans en 800. Toda cifra lleva tabular-nums para que no baile al actualizarse, y tracking-[-0.02em] a partir de 26px.

Úsalo un solo tamaño 52/62 por pantalla. No mezcles tamaños de cifra dentro de una misma tarjeta.
Código

        

Iconografía

Estaban todos en assets/icons.js y en ninguna pantalla: quien fuera a construir algo nuevo no tenía forma de saber qué existía ya, así que el camino corto era dibujar el número cincuenta y siete.

Juego de iconos Nuevo 56 glifos

Los cincuenta y seis glifos del sistema, dibujados a mano sobre una retícula de 24×24 con trazo redondeado. No hay librería de iconos ni una sola petición externa.

Úsalo para reconocer de un vistazo un tipo de dato o una acción repetida. No lo pongas a un botón cuyo texto ya se entiende solo: dos señales para lo mismo.
Código

        

Espaciado y medidas

Los tokens sólo decían «escala de Tailwind sin cambios», que es cierto y no ayuda: lo que hacía falta era saber qué hueco usar dónde, y eso vivía únicamente en el HTML ya escrito.

Escala de espaciado Nuevo

La escala de Tailwind sin tocar, y —esto sí es decisión nuestra— dónde cae cada paso, las medidas que se repiten entre pantallas y qué decide cada punto de quiebre.

Úsalo eligiendo el paso de la lista: un hueco que no está en ella se nota. No inventes un valor intermedio para cuadrar un caso suelto.
Código

        

Movimiento

Las tres duraciones ya se usaban —23 veces la de 150ms, 23 la de 200ms, 4 la de 300ms— pero no estaban escritas en ninguna parte, así que la cuarta la elegía cada quien.

Duraciones Nuevo

Tres duraciones y una sola curva. Todo lo que se mueve en la propuesta elige una de las tres, y todo respeta la preferencia de movimiento reducido del sistema.

Úsalo la más corta que deje ver el cambio: el movimiento explica, no adorna. No animes algo que el usuario está esperando, como el resultado de un guardado.
Código

        

Capas

Había trece valores distintos repartidos por la propuesta, incluidos un z-[89] y un z-[81] elegidos a ojo para colarse entre dos cosas. Funcionan, pero sólo se entienden leyendo las cuatro pantallas a la vez.

Escalera de apilado Nuevo

Doce peldaños con nombre para el orden de apilado, del contenido al enlace de salto, que se ve por encima de todo.

Úsalo eligiendo un peldaño de esta lista cuando algo tenga que superponerse. No inventes un z-[91] para ganarle a otro: si hace falta, es que falta un peldaño.
Código

        

Voz y microcopia

Estas diez reglas ya se cumplían casi siempre, y donde no, se notaba: los avisos decían «3 unidad(es)», y pegar el nombre del campo a « es obligatorio» daba «Marca es obligatorio». Se corrigieron al escribir la ficha.

Cómo se escribe Nuevo

Las reglas de redacción de la interfaz. Un sistema de diseño que no dice cómo se escribe deja la mitad de lo que el usuario ve fuera del sistema.

Úsalo al escribir cualquier texto nuevo de la interfaz, por corto que sea. No lo apliques a los datos del cliente: los nombres propios se respetan como vienen.
Código

        

Botones y controles

Botones Estable

Tres jerarquías, y sólo una primaria por pantalla. El botón de envío se bloquea mientras dura la operación: sin eso, dos clics mandan el formulario dos veces.

Úsalo la acción principal en primario; lo demás, secundario o terciario. No dos primarios juntos: si todo pesa igual, no hay jerarquía.
Código

        

Estados

Pastillas de estado Estable

Tres vocabularios distintos —cumplimiento, operación y trámite— con la misma forma. El color va siempre con la palabra, para que se entienda sin distinguir tonos.

Úsalo para el estado de un registro dentro de una lista o una ficha. No como etiqueta libre: para eso están las etiquetas.
Código

        

Campos de captura

Campos de captura Estable

Etiqueta flotante: se ve siempre, ocupa una línea y no desaparece al escribir, que es lo que pasa con el marcador de posición. Con estados de error, inactivo y sólo lectura.

Úsalo para cualquier dato que se escriba o se elija. No para textos largos: eso pide un área de texto.
Código

        

Selectores con búsqueda

Para catálogos largos — conductores, marcas, tipos de documento. Búsqueda insensible a acentos (“cordoba” encuentra “Córdoba”), coincidencia resaltada y navegación con flechas y Enter.

Selectores con búsqueda Estable

Escritos a mano, sin librerías. Buscan por trozo y sin acentos: «cordoba» y «doba» encuentran «Córdoba». Sirven datos locales o remotos, y con datos remotos descartan las respuestas que llegan tarde.

Úsalo a partir de unas diez opciones, o cuando vienen del servidor. No para tres opciones: ahí basta un grupo de radios.
Código

        

Interruptores, casillas y opciones

Interruptores, casillas y radios Estable

El interruptor aplica al instante; la casilla y el radio esperan a que se guarde. Confundirlos hace que el usuario no sepa si ya cambió algo.

Úsalo interruptor para encender o apagar algo que surte efecto ya. No interruptor dentro de un formulario que se guarda al final: ahí va una casilla.
Código

        

Opciones en tarjeta

Cuando la decisión merece explicación, no sólo una etiqueta.

Opciones en tarjeta Estable

Un grupo de radios con más superficie: cabe un icono y una explicación. La tarjeta entera es la zona de clic, no sólo el círculo.

Úsalo para dos a cuatro opciones que necesitan explicarse. No para muchas opciones o etiquetas cortas: eso es un selector.
Código

        

Campos especiales

Campos especiales Estable

Contraseña con ojo, selector de color y un selector que puede crear lo que no encuentra —el caso normal cuando la lista viene de otra tabla.

Úsalo cuando el dato tiene una forma propia que ayuda a capturarlo. No para inventar controles: si un campo normal basta, usa un campo normal.
Código

        

Lista con acciones

Lista con acciones Estable

Filas con acciones por elemento. Aparecen al pasar el cursor, pero siguen alcanzables con el teclado: si sólo se vieran al pasar el ratón, no existirían para quien no lo usa.

Úsalo para listas cortas donde se actúa sobre cada elemento. No para conjuntos que se comparan u ordenan: eso es una tabla.
Código

        

Paleta de comandos

Paleta de comandos Estable En las cuatro pantallas

Un solo sitio para llegar a cualquier cosa: unidades, personal, documentos normativos, módulos y acciones. Se abre con ⌘K o Ctrl K, y siempre hay un disparador visible: donde existe el campo de búsqueda del encabezado es ese campo; donde no —este catálogo y el listado— es la lupa de arriba a la derecha.

Úsalo para saltar lejos sin recorrer el menú. No como único camino: todo debe alcanzarse también navegando.
Código

        

Avatares

Avatar de iniciales Estable

Sin fotos: iniciales sobre color. Tres tintes según el fondo y el significado. En unidades, el color transmite el estado de cumplimiento.

Úsalo para identificar personas o unidades en listas y tablas. No como decoración: si el color no significa nada, usa el gris.
Código

        

Tabla de datos

Tabla Estable

El componente más usado del producto. Cabeceras ordenables, selección múltiple, franja de hover redondeada, seis tipos de celda, estado vacío, paginación y barra de acciones masivas. Debajo de md se sustituye por una lista de tarjetas.

Úsalo para conjuntos que se comparan, ordenan o seleccionan en lote. No para menos de cinco registros ni en móvil: usa la lista de tarjetas.
Código

        

Tarjetas de dato

Tarjeta de indicador con tendencia Estable

Etiqueta, cifra grande, pastilla de variación y una minigráfica de área al pie. El valor se pinta en rojo cuando la métrica en sí es mala, no cuando baja: bajar puede ser bueno.

Úsalo para una métrica que se sigue en el tiempo. No para un dato sin histórico: usa la tarjeta con icono.
Código

        
Tarjeta principal con degradado Estable

La cifra que encabeza una pantalla. Lleva la barra apilada que reparte el total, con su leyenda: cada segmento suma exactamente el total anunciado.

Úsalo una sola vez por pantalla, arriba del todo. No dos veces: si todo destaca, nada destaca.
Código

        
Tarjeta de acceso rápido Estable

Atajo a una acción frecuente: icono en pastilla, etiqueta y galón que se colorea al pasar el cursor.

Úsalo para tres o cuatro acciones de arranque. No como menú: para navegar está el riel.
Código

        
Fila de atención Estable

Lista priorizada: avatar con el tono del estado, dos líneas de texto, pastilla de plazo con su conteo y galón de entrada.

Úsalo para lo que exige acción, ordenado por urgencia. No para listar todo: eso es una tabla.
Código

        
Lista de barras Estable

Comparación rápida entre pocas categorías: etiqueta fija a la izquierda, barra proporcional y cifra alineada a la derecha.

Úsalo hasta con seis categorías con un orden natural. No para series temporales: usa un área o líneas.
Código

        

Barra de filtros

Como la del tablero de rendimiento del sistema anterior: sucursal, mes, marca y vehículo.

Barra de filtros Estable

Fichas que se encienden al aplicarse. «Limpiar» sólo aparece cuando hay algo que limpiar, para no ofrecer una acción que no hace nada.

Úsalo para acotar una lista por varios campos a la vez. No para más de cinco o seis filtros: eso pide un panel aparte.
Código

        

Rango de fechas

Dos meses a la vez, selección por arrastre y atajos hacia atrás y hacia adelante — los vencimientos del futuro importan tanto como el historial. El listado de vehículos lo usa para filtrar por fecha de vencimiento.

Rango de fechas Estable

Dos meses a la vista, atajos hacia atrás y hacia adelante —en cumplimiento importa más lo que vence que lo que pasó—, y navegación completa con teclado. En el teléfono sube como hoja.

Úsalo para acotar por vencimiento o por periodo. No para una sola fecha: eso es un campo de fecha.
Código

        

Indicadores

Indicadores Estable

Cifras sueltas, sin histórico ni tendencia. Compactas a propósito: cuando hay cinco juntas, lo que importa es compararlas de un vistazo.

Úsalo para cifras de apoyo alrededor de una principal. No para la métrica protagonista: ésa pide tarjeta con tendencia.
Código

        

Gráficas del tablero

Las tres que el tablero usa a diario. Se construyen como cadena SVG porque los <template x-for> de Alpine no funcionan dentro de <svg>.

ÁreaEstable

Un mismo constructor en dos tamaños: minigráfica de 44 px sin ejes dentro de una tarjeta, y gráfica de 196 px con rejilla, puntos y etiquetas de día debajo.

Úsalo para una serie temporal continua. No para comparar categorías: usa barras.
Código

        
Dona y arcoEstable

La dona reparte un total entre pocas categorías y deja el hueco central para la cifra global. El arco muestra un solo porcentaje.

Úsalo con cuatro o cinco categorías como máximo. No con más: la leyenda gana y el círculo sobra.
Código

        
Formato de cifrasEstable

Toda cifra pasa por u.num() y todo importe por u.mxn(), ambos en configuración regional es-MX. Escribir separadores a mano acaba en incoherencias.

Úsalo siempre que una cifra se muestre al usuario. No escribas comas ni el símbolo de peso a mano.
Código

        

Gráficas

Los tres tipos que usa el tablero de combustible y que no existían en el sistema de diseño.

Gráficas de reporte Estable

Barras agrupadas, líneas múltiples y barras apiladas, dibujadas como SVG a mano. Cada una lleva su leyenda: sin ella, las series son colores sin nombre. Los colores salen de window.SERIES, no de la rampa azul.

Úsalo para comparar series a lo largo del tiempo. No para un solo dato: una cifra grande se lee más rápido.
Código

        

Acciones de gráfica

Sólo con icono, así que los dos botones llevan aria-label: una invariante lo comprueba. El comportamiento vive en GLPGrafica y la pantalla pone los descriptores y gTabla(g), de forma que el CSV no puede decir algo distinto de lo que se ve.

Acciones de gráfica Nuevo

Dos botones en la cabecera de la tarjeta: ampliar, que abre la gráfica en un diálogo al ancho del diálogo, y exportar, que descarga la misma tabla que se ve. Debajo, la tabla cierra con su renglón de totales: suma cuando la columna son unidades y razón de sumas cuando es un km/l o un $/km.

Úsalo para cualquier gráfica cuyos datos alguien vaya a revisar cifra a cifra o a llevarse. No para promediar razones fila a fila: el promedio de los promedios no coincide con la ficha de arriba.
Código

        

Reporte ejecutivo

Los dos estados se dejan puestos a la vez a propósito: la comprobación de contraste sólo ve el primer render, y un estado que aparece detrás de un interruptor viaja sin medir. Los reportes se imprimen desde el navegador —no hay librería de PDF— ocultando bloques con clases normales.

Reporte ejecutivo Nuevo

Un resumen en prosa de lo que hay que hacer, en dos párrafos: primero lo vencido, después lo que vence pronto. El encabezado cambia cuando hay algo vencido —icono, color y un título con sentido de urgencia— en vez de repetir siempre el mismo rótulo.

Úsalo para cerrar una pantalla de inicio diciendo, en palabras, lo que las cifras de arriba dejan implícito. No para sustituir a las cifras: es el resumen de un tablero, no el tablero.
Código

        

Expediente normativo

El módulo Compliance Normativo del sistema anterior: los 12 documentos obligatorios por unidad, cada uno con su fecha de alta, su vencimiento y las tres acciones de siempre.

Expediente normativo Estable

Los doce documentos que exige la norma, con su estado y su vencimiento. Es el vocabulario del sistema anterior, traído tal cual porque es el que usa el cliente.

Úsalo para el expediente de una unidad o de la empresa. No para archivos sueltos sin obligación legal detrás.
Código

        

Adjuntar archivos

Adjuntar archivos Estable

Arrastrar y soltar con un estado explícito de «listo para recibir»: borde sólido, fondo tintado y la etiqueta cambia a Suelta aquí. También se abre con el teclado.

Úsalo para documentos y fotos de la unidad. No sin decir qué formatos y qué tamaño se aceptan.
Código

        

Avisos en línea

Aviso en línea Estable

Se queda en la página, a diferencia del aviso temporal. Rojo para el error que impide continuar, ámbar para lo que hay que decidir, verde para lo que ya pasó. Los dos primeros llevan role="alert"; el de éxito, role="status".

Úsalo cuando el mensaje pertenece al contenido y debe seguir ahí. No para confirmaciones pasajeras: para eso está el aviso temporal.
Código

        

Panel lateral

Panel lateral Estable

Entra desde la derecha sobre un velo. Cabecera fija, cuerpo con desplazamiento y pie con las acciones. Conserva la lista de fondo, que es justo lo que se pierde con un diálogo.

Úsalo para ver el detalle de una fila sin perder el listado. No para formularios largos: eso pide pantalla propia.
Código

        

Barras flotantes

Barra flotante Estable

Ancladas abajo y siempre visibles. La oscura aparece al seleccionar filas y actúa sobre la selección; la clara acompaña un formulario largo. Ambas se desplazan con el riel para no quedar debajo de él.

Úsalo cuando la acción debe estar a mano sin importar el desplazamiento. No para más de tres acciones: se vuelve una barra de herramientas.
Código

        

Formularios en diálogo

Bloquean el fondo, llevan el foco dentro y lo devuelven al cerrar, atrapan el tabulador y se cierran con Esc. En móvil suben desde abajo como hoja. El listado los usa para reasignar unidades y programar servicios.

Formularios en diálogo Estable

Hoja desde abajo en el teléfono y ventana centrada en escritorio. Atrapan el tabulador, devuelven el foco y validan por campo. El destructivo se anuncia como alertdialog.

Úsalo para una tarea corta sin perder el contexto de atrás. No para formularios largos: eso merece su propia pantalla.
Código

        

Formulario completo

Un campo de cada tipo, todos obligatorios, para ver cómo se comporta la validación en conjunto: mensaje por campo, resumen arriba y salto al primer error.

Formulario con todo obligatorio Estable

Un campo de cada tipo, todos obligatorios, para ver cómo se comporta la validación en conjunto: resumen arriba, mensaje por campo y foco al primero que falla.

Úsalo como referencia al montar un formulario nuevo. No como plantilla literal: pocos formularios necesitan todos estos tipos.
Código

        

Estados de página

Estados de página Estable

Lo que se ve cuando no hay nada que ver: sin resultados, cargando, y la página que no cargó. Los tres dicen qué pasó y qué hacer ahora.

Úsalo siempre: una pantalla sin estado vacío parece rota. No un mensaje genérico: di qué falta y cómo conseguirlo.
Código

        

Pestañas

De aquí en adelante son componentes que todavía no usa ninguna pantalla, pero cada uno tiene ya su destino anotado. Ese es el criterio para que existan.

Pestañas Nuevo Para: detalle de unidad

Secciones del mismo objeto sin cambiar de pantalla. Marcadas con role="tablist" y navegables con flechas.

Úsalo para vistas de un mismo registro que se consultan por turnos. No para pasos de un proceso: eso son pasos, no pestañas.
Código

        

Acordeón

Acordeón Nuevo Para: configuración, filtros agrupados

Bloques plegables. Varios pueden estar abiertos a la vez; el galón gira para indicar el estado.

Úsalo para contenido largo y opcional, como los 12 documentos por categoría. No para lo que el usuario necesita ver siempre: no lo escondas.
Código

        

Ayuda contextual

Sugerencia Nuevo Para: todas las filas con acciones

Aparece al pasar el cursor o al enfocar con teclado. Los botones de sólo icono la necesitan: sin ella, su significado se adivina.

Úsalo para nombrar botones de icono y aclarar abreviaturas. No para información esencial: si hace falta leerla, ponla a la vista.
Código

        

Bitácora

Línea de tiempo Nuevo Para: bitácora de la unidad

Historial en orden cronológico inverso, con hora, autor y tipo de evento. El sistema anterior ya guardaba «Actividad reciente»: esto le da pantalla propia.

Úsalo para el historial de una unidad o de un documento. No para listas sin dimensión temporal: usa una tabla.
Código

        

Etiquetas

Campo de etiquetas Nuevo Para: etiquetas libres en unidades

Texto libre que se convierte en etiqueta al pulsar Enter. Cada una se quita con su propia ✕ o con Retroceso cuando el campo está vacío.

Úsalo para clasificaciones que el cliente inventa sobre la marcha. No cuando el catálogo es cerrado: ahí va la multiselección.
Código

        

Etiquetas con catálogo

Etiquetas con sugerencias Nuevo Para: etiquetado de unidades y documentos

El punto medio entre el campo libre y la multiselección: al escribir propone las que ya existen en el catálogo y, si nada encaja, ofrece crearla. Es lo que hace falta cuando hay una tabla de etiquetas pero el usuario también puede inventar.

Úsalo cuando el catálogo crece con el uso. No si la lista es cerrada: ahí va la multiselección.
Código

        

Lista reordenable

Lista reordenable Nuevo Para: orden del expediente, prioridad de avisos

Al arrastrar, la fila entera viaja con el cursor y su sitio queda marcado como hueco: la lista se reordena en vivo, así que el elemento ocupa su posición definitiva en cuanto cruzas la mitad de la fila vecina y lo que ves es ya el resultado. Con el teclado sigue el modelo de Base Web: espacio levanta, ↑ ↓ (o k y j) mueven, espacio suelta y escape cancela devolviendo la lista a como estaba. Cada paso se anuncia en voz alta. Se arrastra por el asa, no por toda la fila, para no impedir seleccionar texto; y en el teléfono, donde el arrastre nativo no existe, están los botones de subir y bajar.

Úsalo cuando el orden lo decide el usuario y se guarda. No para listas largas: ahí conviene ordenar por columna.
Código

        

Botón con menú

Botón dividido Nuevo Para: exportar CSV / PDF / Excel

Una acción principal a un clic y sus variantes en el menú contiguo. Evita repartir tres botones casi iguales por la cabecera.

Úsalo cuando hay una acción evidente y dos o tres variantes. No cuando ninguna opción destaca: usa un menú normal.
Código

        

Texto largo

Área de texto Estable

Campo de varias líneas con la misma etiqueta flotante que el resto. Crece con el contenido hasta un máximo y avisa cuando quedan pocos caracteres.

Úsalo para notas, motivos y observaciones. No para un párrafo con formato: eso pide un editor, no un campo.
Código

        

Paginación

Paginación Estable

Vive dentro de la tabla, pero es un componente por su cuenta. Dice cuántos registros hay, no sólo en qué página estás, y marca la actual con aria-current="page".

Úsalo para listas largas que se recorren de una en una. No para menos de dos páginas: si cabe todo, estorba.
Código

        

Esqueleto y girador

Esqueleto Estable

La silueta de lo que va a llegar. Se prefiere al girador cuando se conoce la forma del contenido, porque no da el salto de vacío a lleno.

Úsalo para contenido con forma previsible: filas, tarjetas, párrafos. No para esperas cortas o de forma desconocida: ahí, el girador.
Código

        

Progreso de carga

Progreso de un archivo Preparado Para: alta de unidad, expediente normativo

Mientras un archivo sube: cuánto lleva, cuánto pesa y cómo cancelar. Con role="progressbar", así que la cifra también se oye.

Úsalo para archivos grandes, donde sin cifra parece que se colgó. No para adjuntos pequeños: aparecen antes de que se lea la barra.
Código

        

Casilla indeterminada

Casilla en estado mixto Estable

La casilla de «seleccionar todo» cuando sólo hay algunas marcadas. Se pone con la propiedad indeterminate, no con un atributo: el navegador ya la anuncia como mixta.

Úsalo para el encabezado de una lista con selección parcial. No como tercer valor de un dato: eso son tres opciones, no una casilla.
Código

        

Aviso descartable

Aviso que se puede cerrar Estable

El aviso en línea, con tono neutro y con botón de cerrar. Lo que se cierra no vuelve solo, así que sólo se cierra lo que el usuario ya puede ignorar.

Úsalo para contexto útil pero no obligatorio. No para un error de validación: ése no se descarta, se corrige.
Código

        

Deslizador

Deslizador Preparado Para: configuración de avisos

Un valor dentro de un rango, cuando importa más la proporción que la cifra exacta. Va sobre input type="range": el teclado y el lector de pantalla ya vienen resueltos.

Úsalo para umbrales aproximados: tolerancia, porcentaje, holgura. No cuando el número exacto importa: eso es un campo numérico.
Código

        

Hora

Campo de hora Preparado Para: programar servicio

Nativo, con la misma piel que el resto de campos. No se hace a mano: el selector del sistema ya conoce el formato de 12 o 24 horas de cada quien y el teclado del teléfono.

Úsalo para la hora de un servicio, una cita o un turno. No para una duración: eso son minutos, y va en un campo numérico.
Código

        

Grupo de botones

Grupo de botones Preparado Para: filtros de reporte

Pocas opciones excluyentes, siempre a la vista. Se comporta como un grupo de radios: una sola parada de tabulador y las flechas mueven dentro, como en Base Web.

Úsalo para dos a cuatro opciones cortas que conviene comparar de un vistazo. No para más de cuatro, o etiquetas largas: eso es un selector.
Código

        

Emergente

Emergente Preparado Para: resumen de unidad en el mapa

Un panel anclado a lo que lo abre, con contenido con el que se puede interactuar —a diferencia de la ayuda contextual, que sólo se lee. Se posiciona fixed, que es lo que hace falta cuando vive dentro de algo que se desplaza.

Úsalo para un resumen o unas acciones sobre un elemento concreto. No para un formulario: en cuanto hay que rellenar algo, es un diálogo.
Código

        

Enlace de texto

No existía ningún token: había cinco maneras distintas de escribir un enlace repartidas por el mazo, y ninguna estaba en el catálogo.

Enlace Nuevo

Un enlace dentro de un texto o de una celda. Se distingue por color y peso; el subrayado sale al pasar por encima y al enfocar.

Úsalo para llevar a otra pantalla o a un documento sin sacar al usuario de la frase. No lo uses para ejecutar una acción: eso es un botón, aunque no lo parezca.
Código

        

Acción destructiva

Estaba escrito suelto en cada sitio, con tres redacciones distintas para el mismo botón y la sombra puesta a mano en un shadow-[…]. Ahora es .b5d, con su estado inactivo como los demás.

Botón destructivo Nuevo

El tono de riesgo, para lo que borra, da de baja o cancela algo que no se puede recuperar.

Úsalo una sola vez por pantalla, y siempre con una confirmación detrás. No lo uses para «Cancelar»: cancelar no destruye nada, y el rojo deja de significar algo si se gasta.
Código

        

Selector de columnas

El listado de unidades tiene once columnas y a 768px se arrastra de lado para verlas. Poder apagar las que no interesan es lo que convierte esa tabla en algo usable en un portátil.

Elegir columnas Preparado

Enseña u oculta columnas de una tabla. Una queda fija, porque una tabla sin su identificador no se puede leer.

Úsalo en listados anchos, donde cada área mira tres columnas distintas de las once. No lo uses para esconder algo que casi nadie necesita: eso se quita de la tabla y ya.
Código

        

Vistas guardadas

Con seis filtros en la barra, rehacer la misma consulta cada mañana es trabajo que el sistema puede quitarse de encima. Las vistas del sistema no se borran; las que crea cada quien, sí.

Vistas Preparado

Una combinación de filtros, orden y columnas con nombre, para volver a ella de un clic.

Úsalo cuando la misma consulta se repite cada día: «vencidas de Puebla», «pipas en taller». No la ofrezcas si sólo hay dos filtros: guardar cuesta más que volver a filtrar.
Código

        

Árbol

El menú tiene Sucursales y Grupos, y las dos son jerarquías; no había forma de enseñar una. El comportamiento vive en GLPArbol, en assets/, porque es comportamiento y no apariencia.

Árbol Preparado

Una jerarquía que se abre y se cierra, con el modelo de teclado de la guía ARIA: un solo alto del tabulador y flechas por dentro.

Úsalo para sucursales y grupos, que es donde el producto tiene jerarquía de verdad. No lo uses con dos niveles y seis nodos: ahí una lista con sangría se lee mejor.
Código

        

Confirmar lo irreversible

El diálogo ya existía dentro de la ficha de Formularios en diálogo, mezclado con el alta de un usuario, que es justo lo contrario. Lleva role="alertdialog" y no dialog a secas: interrumpe.

Diálogo de confirmación Nuevo

El paso intermedio antes de algo que no se puede deshacer. Dice qué se va a perder y qué se conserva, y nombra lo que va a pasar en el propio botón.

Úsalo antes de cualquier baja, borrado o cancelación con efecto real. No lo pongas delante de algo reversible: una confirmación que se puede ignorar enseña a ignorarlas todas.
Código

        

Registro de cambios

Qué se agregó, cambió o retiró en cada entrega del sistema de diseño. La entrada más reciente va arriba.

Registro de cambios Estable

Qué se agregó, cambió o retiró en cada entrega. Es lo que convierte esto en un sistema con historia y no en una página que alguien actualizó alguna vez.

Úsalo para anotar toda alta o cambio del sistema de diseño. No para el detalle de una decisión: eso va en la ficha del componente.
Código