Sistema de diseño

Fundamentos

Los valores base del sistema, leídos de las variables y estilos del archivo de Figma. Todo lo que se ve en los componentes sale de acá.

Colores

Figma · página Colores · variables primitives

50100200300400500600700800900950primaryE6EFF9CEDFF39DC0E76BA0DA3A81CE0961C2074E9B053A7404274E021327010C17secondaryF0F1F2E2E3E5C4C8CBA7ACB18991976C757D565E6441464B2B2F321617190D0E0FbrandF7ECE6EED8CCDEB299CD8B66BD6533AC3E008A3200672500451900220C00150700infoE7F1F4CFE3E99FC7D36EACBC3E90A60E74900B5D73084656062E3A03171D020E11successEAF3E6D5E7CCABCE9981B666579D332D8500246A001B5000123500091B00051000warningFFF8E6FFF3CDFFE69CFFD44DFFC107E69800C46C009B46006B2C004A1C002A1000dangerF7E6E8EFCCD0DE99A1CE6672BD3343AD00148A001068000C450008230004150002

Cada escala va de -50 a -950. El borde oscuro marca el paso -500, el color base de cada familia. Los nombres son las variables de Figma (--primary-500 = primary/500). Además: --common-white #FFFFFF, --common-black #18181A y --brand-vivid #FF6600 (el naranja del logotipo, solo para marca; no se usa en acciones ni en texto).

Colores semánticos

Figma · colección semantic

--body-color

Texto principal · --secondary-900

--body-bg

Fondo de las superficies · --common-white

--text-muted

Texto secundario · --secondary-600

--border-color

Borde de campos · --secondary-300

--border-strong

Borde de campos (hover) · --secondary-400

--disabled

Elementos deshabilitados · --secondary-300

--link-color

Enlaces · #2b4c9e

--action-primary-default

Acción primaria · --primary-500

--action-primary-hover

Acción primaria · hover · --primary-600

--action-primary-active

Acción primaria · presionado · --primary-700

--action-brand-default

Acción de marca · --brand-500

--action-brand-hover

Acción de marca · hover · --brand-600

--action-brand-active

Acción de marca · presionado · --brand-700

--text-success

Texto de éxito · --success-600

--text-warning

Texto de advertencia · --warning-700

--text-danger

Texto de error · --danger-600

--text-info

Texto informativo · --info-600

Los componentes leen estas variables y no los colores crudos: si cambia la acción primaria, cambia en todo el producto. Las que apuntan a una escala (primary-500, secondary-600…) muestran a cuál.

Tipografía

Figma · página Tipografía · estilos de texto

Estilos de texto
EstiloMuestraClaseTamaño / interlínea / trackingPeso
Display 1Servicios y pagos.t-display-170 / 115% / −1%Regular
Display 2Servicios y pagos.t-display-264 / 115% / −1%Regular
Display 3Servicios y pagos.t-display-356 / 115% / −1%Regular
Display 4Servicios y pagos.t-display-448 / 115% / −1%Regular
Display 5Servicios y pagos.t-display-542 / 115% / −1%Regular
Display 6Servicios y pagos.t-display-635 / 120% / −1%Regular
H1Servicios y pagos.t-h135 / 120% / −0,5%SemiBold
H2Servicios y pagos.t-h228 / 120% / −0,5%SemiBold
H3Servicios y pagos.t-h324 / 120% / −0,5%SemiBold
H4Servicios y pagos.t-h421 / 125% / 0SemiBold
H5Servicios y pagos.t-h518 / 125% / 0SemiBold
H6Servicios y pagos.t-h616 / 125% / 0SemiBold
Body largeServicios y pagos.t-body-lg16 / 150% / 0Regular
Body large mediumServicios y pagos.t-body-lg-md16 / 150% / 0Medium
Body large strongServicios y pagos.t-body-lg-strong16 / 150% / 0SemiBold
BodyServicios y pagos.t-body14 / 157% / 0Regular
Body mediumServicios y pagos.t-body-md14 / 157% / 0Medium
Body strongServicios y pagos.t-body-strong14 / 157% / 0SemiBold
Body italicServicios y pagos.t-body-italic14 / 157% / 0Italic
SmallServicios y pagos.t-small12 / 150% / 0Regular
Small strongServicios y pagos.t-small-strong12 / 150% / 0SemiBold
CaptionServicios y pagos.t-caption12 / 133% / 0Regular
OverlineUso de recursos.t-overline12 / 133% / +8%Bold · MAYÚSCULAS
Mono largeID 482917 · plan-impulso.t-mono-lg16 / 150% / 0Roboto Mono Medium
MonoID 482917 · plan-impulso.t-mono14 / 143% / 0Roboto Mono Regular
Mono smallID 482917 · plan-impulso.t-mono-sm12 / 133% / 0Roboto Mono Regular
Badge largeServicio activo.t-badge-lg14 / 128% / 0SemiBold
Badge smallServicio activo.t-badge-sm12 / 145% / +4%SemiBold · MAYÚSCULAS

Familia: Nunito (autoalojada, variable) para todo el producto y Roboto Mono para identificadores y código. Las interlíneas son porcentajes del tamaño; el tracking, porcentaje del tamaño de la letra (en CSS, em).

Espaciado

Figma · variables spacing

--spacing-00px
--spacing-44px
--spacing-88px
--spacing-1212px
--spacing-1616px
--spacing-2020px
--spacing-2424px
--spacing-2828px
--spacing-3232px
--spacing-3636px
--spacing-4040px
--spacing-4444px
--spacing-4848px

Escala de 4 px. Las barras están dibujadas al cuádruple para poder compararlas.

Border radius

Figma · página Border radius / Shadow

--radius-0 · 0px
--radius-4 · 4px
--radius-8 · 8px
--radius-12 · 12px
--radius-16 · 16px
--radius-24 · 24px

Uso habitual: 4 en badges, 8 en botones y alertas, 12 en tarjetas y campos, 16 en tarjetas de servicio.

Sombras y foco

Figma · estilos de efecto Shadow/* y Focus

sm
--shadow-sm · 0 2 4 · 8%
md
--shadow-md · 0 8 16 · 12% + borde interno 10%
lg
--shadow-lg · 0 16 32 · 18%
focus
--focus-ring · anillo de 3 px

Los botones, campos y selects usan un anillo de foco propio del color de cada uno (primario, secundario, marca, error), con 40% de opacidad. --focus-ring es el anillo neutro.

Íconos

Figma · página Íconos

home
grid_view
dashboard_customize
monetization_on
question_answer
work
handyman
person
key
group
computer
request_quote
mark_email_read
email
card_giftcard
shopping_cart
notifications
menu
more_vert
loyalty
add
close
edit
delete
search
info
check
check_circle
warning
error
expand_more
expand_less
chevron_right
chevron_left
first_page
last_page
article
language
lock
cloud_queue
lan
backup
web
rocket
attach_money
autorenew
sync_alt
arrow_circle_down
event
play_arrow
school
menu_book
help
star
star_border
tune
swap_horiz
content_copy
logout
arrow_upward
arrow_downward
import_export

Material Icons Rounded (Apache 2.0), a 24 px por defecto y 20 / 16 px en componentes. En Figma se usan como Icon/Material Icon · Category · Name; los nombres de abajo son los mismos. Se inyectan como sprite SVG y heredan el color del texto (fill: currentColor).

Grillas

Figma · página Grillas

Mobile y tablet · 6 columnas
Grilla de mobile y tablet
AnchoColumnasGutterPaddingContenidoAncho de columna
Mobile · 36062416 c/u328≈ 34,7
Tablet · 76862416 c/u736≈ 102,7
Desktop · Full (con menú contextual)
Grilla Full: contenido con menú contextual de 240 px
Ancho · estadoSidebarContenidoFlex-fillColumnasGutterMargen
LG · 1024 · colapsado5693667212 × 3424gap 16 · pr 16
LG · 1024 · expandido24874448012 × 1824gap 16 · pr 16
XL · 1200 · colapsado56108081612 × 4624gap 32 · pr 32
XL · 1200 · expandido24888862412 × 3024gap 32 · pr 32
XXL · 1440 · colapsado56122496012 × 5824margen auto 80 a cada lado
XXL · 1440 · expandido248103276812 × 4224margen auto 80 a cada lado
XXL variante · 1920 · colapsado56122496012 × 5824margen auto 320 a cada lado
XXL variante · 1920 · expandido248103276812 × 4224margen auto 320 a cada lado
Desktop · Simple (sin menú contextual)
Grilla Simple: contenido sin menú contextual
Ancho · estadoSidebarContenidoColumnasGutterMargen
LG · 1024 · colapsado5693612 × 5624gap 16 · pr 16
LG · 1024 · expandido24874412 × 4024gap 16 · pr 16
XL · 1200 · colapsado56108012 × 6824gap 32 · pr 32
XL · 1200 · expandido24888812 × 5224gap 32 · pr 32
XXL · 1440 · colapsado56122412 × 8024margen auto 80 a cada lado
XXL · 1440 · expandido248103212 × 6424margen auto 80 a cada lado
XXL variante · 1920 · colapsado56122412 × 8024margen auto 320 a cada lado
XXL variante · 1920 · expandido248103212 × 6424margen auto 320 a cada lado
Desktop · Sin sidebar (Bare en Figma)
Grilla sin sidebar (Bare en Figma)
AnchoPaddingContenidoColumnasGutterMargen automático
LG · 102420 c/u98412 × 6024—
XL · 120024 c/u115212 × 7424—
XXL · 144028 c/u122412 × 8024margen auto 80 + padding 28
XXL variante · 192028 c/u122412 × 8024margen auto 320 + padding 28

Valores de las frames de Figma, en px. Desktop es una grilla de 12 columnas con gutter de 24; mobile y tablet, de 6 columnas con gutter de 24 y padding de 16. Ancho de columna = (ancho − gutters) / columnas. En Full el ancho útil es el flex-fill: el contenido menos el menú contextual (240) y el gap hasta él (24), por ejemplo 936 = 240 + 24 + 672. Full lleva un menú contextual de 240 px junto al contenido, Simple no, y Sin sidebar (en Figma se llama Bare) es un layout sin sidebar, solo con padding a los lados (20, 24 o 28) y las 12 columnas dentro. Los nombres son los de Figma y su significado lo leí de la geometría de cada frame; Figma no dice para qué pantallas es cada uno.

El sidebar (56 colapsado, 248 expandido) queda fijo contra el borde izquierdo y el contenido se centra en el espacio restante. A partir de XXL el container de 1280 es sidebar + contenido y el margen automático crece con el ancho (80 a 1440, 320 a 1920); el contenido no pasa de 1224 colapsado ni de 1032 expandido. Figma define mobile y tablet con un ancho de referencia (360 y 768) y no indica el rango de cada una; debajo de 1024 px el layout es mobile (header de 50 px, menú en drawer).

En el prototipo: el área de contenido (la que queda sin el sidebar ni el menú contextual) tiene el ancho exacto de estas tablas, medido a 1024, 1200, 1440 y 1920 en Servicio (Full expandido), Lista de servicios (Simple expandido) y Dashboard (Simple colapsado), y los bloques principales ocupan las 12 columnas. Las columnas no están dibujadas en CSS como una grilla de 12: los mosaicos de productos del Dashboard (6 por fila a 1440, de 2 columnas cada uno) caen exactos sobre ella, y el resto de los elementos (buscador, selects, tabs) conserva el ancho propio que tiene en Figma, sin ajustarse a columnas. Las tres pantallas de este prototipo (Servicio, Lista de servicios y Dashboard) no usan el layout sin sidebar, pero el sistema no se limita a ellas: lo usan, por ejemplo, el hub de selección de cuentas y «Acceso restringido · Página completa» del proyecto Usuarios y permisos, con el padding de la tabla (20, 24 y 28 a 1024, 1200 y 1440 o más) y una tarjeta de 8 de las 12 columnas (648, 760 y 808), centrada en las columnas 3 a 10. Figma dibuja esas dos pantallas solo a 1440 (808); los valores de LG y XL los deduje de esta grilla.