01 · Foundations

Fundamentos

La capa más baja del sistema: los valores atómicos de los que dependen todos los componentes. Tokens con nombre estable, pensados para exportarse como variables CSS y como objeto TS.

Colores

Paleta extraída de la guía Look & Feel original en XD. Se conservan los nombres del XAML (ColorAccent, ColorLeading) y se añaden semánticos y soft variants necesarios para producto.

Acento — marca

Uso: botón primario, foco, estado activo en navegación, elementos interactivos críticos. Nunca en texto corrido ni en fondos extensos (reservado para acentuar, no para dominar).

Accent
#FF6360
--color-accent
Accent Hover
#E8524F
--color-accent-hover
Accent Active
#D43F3C
--color-accent-active
Accent Soft
#FFF0EF
--color-accent-soft

Leading — texto y estructura

Uso: #172836 es el color de texto principal y base de todas las sombras. Las derivadas .7 y .3 son el mismo color a 70% y 30% de opacidad — texto secundario y deshabilitado. Nunca negro puro.

Leading
#172836
--color-leading
Leading .7
opacidad 70%
--color-leading-7
Leading .3
opacidad 30%
--color-leading-3
Element over Leading
#FFFFFF
--color-element-over-leading

Superficies por contexto

Jerarquía real de Onaris. El sistema distingue tres contextos: app (Background), Fields (campos sobre la app) y Drawer (panel lateral, con sus propios campos internos). Cada contexto define su superficie, el color de los elementos encima y su borde (= superficie oscurecida 10%).

Background
#F2F1F1
--color-background
Background .7
opacidad 70%
--color-background-7
Background Fields
#FFFFFF
--color-background-fields
Element over Fields
#172836
--color-element-over-fields
Background Drawer
#FFFFFF
--color-background-drawer
Title over Drawer
#FF6360
--color-title-over-drawer
Text/Icons over Drawer
#172836
--color-text-icons-over-drawer
Text/Icons over Drawer .3
opacidad 30%
--color-text-icons-over-drawer-3
Fields over Drawer
#F2F1F1
--color-background-fields-over-drawer
Element over Fields Drawer
#172836
--color-element-over-fields-drawer

Bordes

Los bordes son sólidos, derivados de su superficie oscurecida un 10%. Cada contexto tiene el suyo para mantener el contraste correcto.

Border Product Card
#E6E6E6
--border-product-card
Border Fields
#E6E6E6
--border-fields
Border Fields over Drawer
#DAD9D9
--border-fields-over-drawer

Semánticos

Cuatro familias (Success, Warning, Danger, Info), cada una con solo dos tokens: principal y text (versión oscura para texto sobre fondo claro). Los fondos soft y bordes que usan los componentes se derivan automáticamente del principal — no son tokens propios.

Success

Success
#14A35A
--color-success
Success Text
#0D6B3C
--color-success-text

Warning

Warning
#F5A524
--color-warning
Warning Text
#8A5A08
--color-warning-text

Danger

Danger
#E8524F
--color-danger
Danger Text
#A83330
--color-danger-text

Info

Info
#3B82F6
--color-info
Info Text
#1E429F
--color-info-text

Tipografía

Dos familias: Plus Jakarta Sans para todo el producto y las webs, JetBrains Mono para códigos SKU, metadatos, contadores y lo que deba alinearse verticalmente (tabular-nums).

Aa

Plus Jakarta Sans

Sans geométrico con personalidad. Neutral para producto, expresivo en displays grandes.

400 · 500 · 600 · 700 · 800
0123

JetBrains Mono

Para datos técnicos: SKUs, IDs, contadores, timestamps. Tabular nums para alinear columnas.

400 · 500

Roles tipográficos

Ocho roles semánticos en lugar de una escala numérica. Cada componente usa el rol que le corresponde; así el sistema se mantiene simple y consistente.

Title--text-title
Título de página
24px
700
-0.02em
Subtitle--text-subtitle
Subtítulo o sección secundaria
18px
600
-0.01em
Body--text-body
Texto plano por defecto: párrafos, inputs, descripciones y la mayoría de la UI.
14px
400
1.5
Body strong--text-body-strong
Texto destacado dentro del cuerpo, mismo tamaño que body.
14px
600
1.5
Body S--text-body-sm
Texto secundario más pequeño: hints de formulario, metadatos, ayudas.
12px
400
1.5
Caption--text-caption
Leyendas, timestamps, pies de foto.
11px
400
1.4
Eyebrow--text-eyebrow
Categoría · Acento
11px
700
+0.08em
Mono--text-mono
SKU-0045 · 1,284 artículos · 2026-06-19
12px
500
tabular

Pesos

Aa
Regular
400 — --fw-regular
Aa
Medium
500 — --fw-medium
Aa
Semibold
600 — --fw-semibold
Aa
Bold
700 — --fw-bold

Sombra

Un único nivel de elevación para todo lo que se superpone al contenido: desplegables, drawers, modales, popovers, sliders. Con tinte leading (#172836 con alpha), nunca negro puro.

--shadow-md
desplegables · drawers · modales · popovers

Foco

Los campos de texto (Input, Textarea, Select) marcan el foco solo con el borde accent, sin sombra. Los botones y controles de selección (checkbox, radio, switch) sí muestran un anillo de foco con accent al 22% para accesibilidad de teclado.

Input con foco (solo borde)

Movimiento

Tres duraciones y tres curvas. Discreto por defecto: la UI no baila, acompaña.

TokenValorUso
--duration-fast120msHover, press de botón, cambio de color
--duration-normal180msDefault para transiciones de UI
--duration-slow280msDrawers, modals, elementos grandes
--ease-outcubic-bezier(.4, 0, .2, 1)Curva default. Entra rápido y asienta.
--ease-springcubic-bezier(.34, 1.56, .64, 1)Overshoot sutil para feedbacks positivos

Breakpoints

Cinco cortes mobile-first alineados con Tailwind/Radix — facilita adopción.

Tokenmin-widthContexto
sm640pxPhablet / móvil landscape
md768pxTablet portrait
lg1024pxDesktop pequeño / tablet landscape
xl1280pxDesktop estándar
2xl1536pxDesktop amplio