6.2 KiB
Guía de Design Tokens — AvanzaCast
Propósito
Esta guía centraliza los tokens de diseño usados por AvanzaCast (colores, tipografías, tamaños, espaciados y sombras). Está pensada para desarrolladores y diseñadores: explica los tokens disponibles, su uso semántico y mapas a clases de Tailwind ya configuradas en packages/studio-panel/tailwind.config.cjs.
Resumen rápido
- Paleta principal: tokens
studio-*(bg, muted, accent, accent-2) - Tipografías:
inter(principal) yrequiner(logo) - Tamaños tipográficos:
figma-transmision,figma-personas,figma-h1,figma-h2,figma-base - Pesos:
figma-light,figma-regular,figma-medium,figma-bold
Colores (paleta)
Uso semántico y clases Tailwind (extendidas en tailwind.config.cjs):
-
studio-bg — #41444A
- Uso: fondo de header, barras principales.
- Clase:
bg-studio-bg.
-
studio-dark — #12151D
- Uso: fondos muy oscuros, overlays principales.
- Clase:
bg-studio-dark.
-
studio-muted — #7E8791
- Uso: texto secundario, subtítulos, metadatos.
- Clase:
text-studio-muted.
-
studio-muted-2 — #77818F
- Uso: texto alternativo, placeholders.
- Clase:
text-studio-muted-2.
-
studio-accent — #3B82F6
- Uso: acentos primarios (botones, enlaces activos).
- Clase:
bg-studio-accent(otext-studio-accent).
-
studio-accent-2 — #EF4444
- Uso: acento secundario / estado destructivo.
- Clase:
bg-studio-accent-2.
Tokens clásicos (utility mapping)
- Fondo principal:
bg-studio-bg(header) - Texto secundario:
text-studio-muted - Botón primario:
bg-studio-accento gradientefrom-blue-600 to-blue-500 - Indicador en vivo: punto rojo
bg-red-500
Tipografías y tamaños
Font families (extendidas en Tailwind):
font-inter-> Inter (principal UI)font-requiner-> Requiner (logo)
Tamaños definidos (tailwind custom):
text-[figma-h1]= 32px / lineHeight 40px (clase generada:text-[figma-h1])text-[figma-h2]= 24px / lineHeight 32pxtext-[figma-transmision]= 12.8px / lineHeight 15.5pxtext-[figma-personas]= 11.3px / lineHeight 13.7pxtext-[figma-base]= 16px / lineHeight 24px
Pesos semánticos (clases personalizadas en tailwind.config.cjs):
font-figma-light-> 300font-figma-regular-> 400font-figma-medium-> 500font-figma-bold-> 700
Recomendaciones de uso tipográfico
- Titulares:
text-[figma-h1]/text-[figma-h2]según jerarquía,font-figma-mediumofont-figma-bold. - Labels pequeños y metadatos:
text-[figma-personas]+font-figma-regular. - UI body copy:
text-[figma-base]+font-figma-regular.
Espaciado (scale)
Recomiendo usar las utilidades de espacio de Tailwind (p, px, py, gap) con esta convención semántica:
- xs: 4px ->
p-1,gap-1 - sm: 8px ->
p-2,gap-2 - md (base): 12px ->
p-3,gap-3 - lg: 16px ->
p-4,gap-4 - xl: 24px ->
p-6,gap-6
En el header aplicamos: h-14 (56px), gap-3 (12px) y px-4 para los laterales.
Border-radius (radio)
rounded-sm~ 4pxrounded-md~ 8pxrounded-full-> 9999px (botones circulares)- En Brand usamos
rounded-xl(~12px) para el contenedor del logo.
Sombras y elevación
- Elevación leve (cards, buttons):
shadow-sm->box-shadow: 0 1px 2px rgba(...). - Elevación media (modales):
shadow-lg. - Borde sutil en header:
border-b border-white/4.
Iconografía y tamaños
- Iconos pequeños:
w-4 h-4(16px) - Iconos medios:
w-5 h-5(20px) - Avatares / logos: 40–48px (
w-10/w-12)
Estados y microinteracciones
- Hover: usar
hover:bg-white/6ohover:brightness-95según el elemento. - Focus visible: ya definimos en CSS global
:focus-visiblecon outline azul; preferirfocus:outline-noney rely enfocus-visiblepara accesibilidad. - Disabled: aplicar
opacity-50 cursor-not-allowed pointer-events-none.
Ejemplos de uso (Tailwind)
-
Header brand:
- Contenedor:
flex items-center gap-3 min-w-0 - Título:
text-[figma-h2] font-figma-medium text-white - Subtítulo:
text-[figma-transmision] font-figma-regular text-studio-muted
- Contenedor:
-
Live badge:
inline-flex items-center gap-2 px-3 py-0.5 rounded-full bg-black/40 ring-1 ring-white/6 font-inter- Punto:
w-2 h-2 rounded-full bg-red-500 animate-pulse
-
Botón primario (ej. Grabar):
rounded-full inline-flex items-center gap-2 px-3 py-1 bg-gradient-to-br from-red-600 to-red-500 text-white shadow-sm
Cómo mantener los tokens (developer notes)
- Centraliza tokens en
tailwind.config.cjsdentro detheme.extend(colores, fontFamily, fontSize, fontWeight). - Evita usar colores hex en componentes: siempre usar
bg-studio-bg,text-studio-muted, etc. - Si se necesita un nuevo token, agrégalo a
tailwind.config.cjsy documenta aquí bajo "Actualizaciones" con fecha y autor.
Ejemplo: añadir un color token en tailwind.config.cjs
// tailwind.config.cjs (theme.extend)
colors: {
'studio-bg': '#41444A',
'studio-muted': '#7E8791',
// ...
}
Guía rápida de accesibilidad
- Siempre añadir
aria-labelenIconButtonyrole=statusen badges dinámicos. - Usar
sr-onlypara mensajes redundantes de accesibilidad. - Mantener contraste suficiente para texto y elementos interactivos (usar herramientas de contraste para verificar).
Mantenimiento y gobernanza
- Cada cambio de token debe registrar una entrada en este documento con la fecha y la razón.
- Mantener consistencia entre Figma y
tailwind.config.cjs: al actualizar estilos en Figma, actualizar tokens y revisar componentes.
Historial y próximas acciones
- 2025-11-10: Creación inicial de la guía y mapeo de tokens usados en
packages/studio-panel. - Próximo: extraer sombras y radios exactos desde Figma y sincronizar con
tailwind.config.cjssi se requiere match pixel-perfect.
Contacto
Si necesitas que incluya valores exactos extraídos de Figma (letter-spacing, exact color tokens, o exportar assets) indícalo y automatizo la extracción de tokens y la actualización de tailwind.config.cjs.