One system, two modes. Dark is for operators who live inside the product. Light is for enterprise shippers and reports. The tokens are the same — the surfaces invert.
FlexOS is a working surface. Dense by default, with real numbers, real names, real truck plates. Decorations earn their place or they leave.
Operators stare at this for hours. The canvas is near-black. Enterprise shippers invert to white. The same components work in both, driven by one token swap.
Plus Jakarta Sans at every scale: editorial at 104px, interface at 14px, telemetry in mono. Layouts are built from type first, decoration second.
Cambios de hue fuera de la banda azul → cian leen como decoración, restan profesionalismo y compiten con el dato real. Esta regla aplica a backgrounds, halos, auroras, accents de texto, chips y mockups.
Cargue confirmed at 09:42. Next checkpoint expected at km 87 in ~2h.
Paralelo al cambio ya mergeado en dev.flexos.ai: todos los gradients que cruzaban hue fuera de la banda azul → cian fueron remapeados a monocromáticos fríos. Auroras, halos y covers bajan de opacity 0.22–0.38 a 0.05–0.15 con blur más alto — menos performativo, más ambiental. El token Violet (#A78BFA) se elimina de la paleta extendida del Brand Manual (el rol "IA · agente" lo absorbe el cyan, consistente con voice/streams/liveness). Aplicado aquí, Brand Manual, Pitch Deck, Logo Explorations y versiones print. Nueva subsección 03.4 · Gradient policy documenta las 4 reglas.
El wordmark "FlexOS" pasa de Plus Jakarta 800 a Space Grotesk 700 con tracking −0.02em. "OS" conserva el cyan (dark) / primary-700 (light). Aplicado aquí, en Brand Manual (28 instancias) y Pitch Deck (16). Sección 04 Typography reescrita para reflejar las 4 familias (Space Grotesk · Jakarta · Fraunces · JetBrains Mono).
Lockup oficial = símbolo de cuatro rectángulos ascendentes (opacidad 0.35 · 0.62 · 0.88 · 1.0). Se descartan las exploraciones de marca monogramática y el mix con JetBrains Mono. El tratamiento "OS cyan" queda como regla — no como opción.
Dark sigue siendo primario; light se añade como modo compañero para shippers, reportes y print. Un solo atributo data-theme controla el swap completo.
Base del sistema: paleta en OKLCH, spacing de 4 puntos, seis radios, cinco niveles de elevación. Plus Jakarta Sans + JetBrains Mono. Dark mode solamente.
End of dark theme documentation. Light theme follows below — same tokens, inverted surfaces.
Light mode is the companion theme for enterprise shippers, printable reports, PDFs and partner integrations. It inherits every token from dark; only the surface, text, and accent colors invert.
Text still strongest on titles; telemetry still mono. Only the surface and text colors flip.
Cyan is bright on black, invisible on white. On light, the primary becomes the voice color — links, labels, live dots.
Borders do most of the separation work. Elevation is subtle. We don't stack glows on white paper.
Cargue confirmed at 09:42. Next checkpoint expected at km 87 in ~2h.
data-theme attribute on the root. No classes fork. No component rewrites.<!-- Operator dashboard --> <div data-theme="dark"> <App /> </div> <!-- Shipper portal · PDF report --> <div data-theme="light"> <App /> </div> // Tokens invert automatically — components stay the same. // --bg, --surface, --text, --text-2, --text-3, --border, // --accent, --accent-soft, --input-bg, --stage-bg re-resolve.
The companion theme. Same grammar, inverted surface. Use when the audience is enterprise, the output is print, or the operator needs the document — not the product.