- Un solo acento.
--accentmarca acción primaria, selección y foco; máximo dos apariciones visibles por pantalla. - El estado semántico no usa el acento: verde
--success= conforme, ámbar--warn= requiere atención, rojo--danger= bloquea facturación. - Toda cifra va en
--font-monocontabular-numspara que las columnas alineen. - Las superficies se separan por línea de 1px, no por sombra. La sombra queda reservada a lo que flota: menús, modal y gaveta.
- El hover mueve fondo y borde, nunca aclara el texto.
Cómo se enlaza el sistema
assets/siga.css contiene dos bloques :root.
El bloque A es el contrato tokens.css del sistema Dashboard, copiado literal:
es la única parte del proyecto donde existe un valor de color escrito a mano.
El bloque B deriva los alias internos de SIGA con color-mix() a partir del bloque A.
Cualquier pantalla nueva enlaza la hoja y usa clases; nunca vuelve a escribir un color.
Color
Bloque A · contratoValores del contrato Dashboard. Los cuadros se pintan con el token vivo y el valor mostrado se lee del navegador, no está transcrito a mano.
Derivados
Bloque B · color-mixCada alias sale del contrato. Al cambiar de marca solo se sustituye el bloque A y toda la interfaz se recalcula.
Modo oscuro
Bloque A′El tema oscuro no es otra hoja de estilos: redefine el bloque A y tres anclas de dirección. Las fórmulas del bloque B no cambian, así que cada componente se recalcula solo.
--toward-ink— hacia dónde se desplaza un texto de color:blacken claro,whiteen oscuro. Es lo que convierte «azul oscuro para enlaces» en «azul claro para enlaces» sin tocar la regla.--ink-abs/--paper-abs— anclas absolutas para lo que siempre debe ser oscuro (velo, sombra, base del rail) o siempre claro (texto del rail, monograma invertido).- Solo cinco derivados se reajustan en oscuro: los rellenos tenues suben en vez de bajar y las barras de datos se aclaran para conservar 3:1 contra la tarjeta.
- La preferencia vive en
localStorage['siga.tema']; sin elección guardada se sigue al sistema. Un script en el<head>resuelve el tema antes del primer pintado para que no haya destello.
Contraste verificado
Relación calculada en tiempo real sobre los tokens resueltos. Umbral: 4.5:1 en texto normal, 3:1 en texto grande e iconos. El estado deshabilitado es la única excepción permitida.
| Par | Uso | Ratio | Mínimo | Estado |
|---|
Tipografía
Inter para interfaz y títulos, IBM Plex Mono para toda cifra, identificador y fecha. El producto usa una escala densa propia: los títulos van con tracking negativo y las etiquetas en versal con tracking positivo.
Registro de servicio
Comidas del día
Sustituciones registradas
Las raciones no registradas antes del cierre del mes no se facturan al programa.
Iris Maldonado · hoy, 10:18 a.m.
Escala del contrato, disponible para superficies editoriales o de presentación:
Estructura y movimiento
Ritmo de 8 puntos, radios del contrato y transiciones cortas con una sola curva.
--motion-fast120 ms — hover, foco, pulsación.--motion-base200 ms — interruptor, apertura de gaveta.--ease-standardcubic-bezier(.2,0,0,1) — única curva del sistema.
Rejilla
Filas explícitas, nunca auto-fill. Cada grupo de tarjetas declara cuántas columnas tiene,
de modo que una pantalla ancha no inserta una columna extra ni separa dos tarjetas que deben ir juntas.
La página no lleva medida tope: .page ocupa el ancho completo del monitor. Lo que sí se
limita es el panel lateral —460 px a partir de 1760 px, 520 px a partir de 2200 px— para que el
espacio que se libera lo gane la columna de trabajo y no el margen.
Acciones
Una acción, un botón sólido. El resto de las entradas a la misma acción son neutras, fantasma o enlace. Los especímenes de abajo aparecen juntos solo por referencia.
Panel de composición: alimentos, cantidades y aporte por ración.
Panel de variantes: dieta modificada y alergias declaradas.
Panel de historial: publicaciones y correcciones con fecha efectiva.
Formularios
Etiqueta siempre visible, pista antes del error y foco con aro de 4px del contrato.
Datos
Tablas densas sin cebreado: la línea de 1px basta. Toda cifra alineada a la derecha y en mono. Las barras y columnas usan relleno sólido, nunca contorno.
| Centro | Alimento | Raciones | Costo | Cobertura |
|---|---|---|---|---|
| Región Ponce | ||||
| Ponce Playa | Arroz con habichuelas | 1,204 | $1,043.75 | |
| Peñuelas | Pollo guisado | 968 | $902.40 | |
| Subtotal región | 2,172 | $1,946.15 | ||
Estado y avisos
El color del estado nunca es el acento. Cada aviso dice qué pasó y qué consecuencia tiene.
Superposiciones
Modal para decisiones que bloquean; gaveta para consultar detalle sin perder la lista. Ambas se cierran con Esc, con el velo o con la acción secundaria.
Módulos del dominio
Piezas que solo existen en SIGA: la tira semanal del programa, el bloque de comida y la fila de alimento con sustitución.
Composición de receta. Un plato preparado se despliega dentro de su propia fila: el nombre es el disparador, la píldora lo clasifica y el panel enseña de qué está hecho. La marca de receta es neutra a propósito —clasifica, no señala estado— para no gastar el acento, que está reservado a selección y foco.
El inventario descuenta estos ingredientes en proporción al rendimiento, nunca el plato.