kit v9 · f417275 · tipografía
Tipografía
Dos familias y ninguna más: IBM Plex Sans para leer, JetBrains Mono para datos duros y etiquetas. Ambas self-hosted en style.innovacionsantiago.cl; el kit no toca ningún CDN externo.
Todos los tamaños de esta página se rinden con las variables reales del kit, no con copias en px: si el kit cambia, esta página cambia sola.
Las dos familias
var(--font-sans) y var(--font-mono). Nunca escribas
el nombre de la fuente en el CSS de un componente: el token es el único punto
de verdad (checklist de typography-001).body { font-family: var(--font-sans); } /* ya lo fija base/tokens.css */
.stat__value, .eyebrow, code { font-family: var(--font-mono); }Pesos de IBM Plex Sans
/* uso semántico de pesos (ADR-021 · typography-001) */
p, li { font-weight: 400; }
.field label { font-weight: 500; }
h2, h3 { font-weight: 600; }
strong, b { font-weight: 700; }
.hero, .wordmark { font-weight: 800; } /* rinde el archivo Bold */Pesos de JetBrains Mono
code, pre { font: 400 12.5px var(--font-mono); }
kbd { font-weight: 500; }
.stat__value { font-weight: 700; } /* components.css ya lo trae */La escala tipográfica
h1 { font: 800 var(--fs-hero)/.98 var(--font-sans); letter-spacing: -.035em; }
h2 { font: 600 var(--fs-section)/1.05 var(--font-sans); letter-spacing: -.025em; }
.prose { font-size: var(--fs-prose); line-height: 1.6; max-width: 68ch; }
.eyebrow { font-size: var(--fs-micro); } /* clase real del kit */
.table th { font-size: var(--fs-mono-label); } /* components.css ya lo trae */font-feature-settings: "ss01", "ss02", "tnum", "cv11". Con
tnum las cifras ocupan el mismo ancho y las columnas de números
alinean solas; no necesitas mono para eso en sans, pero las celdas numéricas
de tabla igual van en mono por convención (td.num).Interlineado y medida de línea
.prose:
15px, interlineado 1.6 y ancho máximo de 68ch (unos 45 a 75 caracteres por
línea). Un párrafo a ancho completo de contenedor es ilegible y es un bug de
maqueta, no una decisión.La medida corta deja que el ojo vuelva al margen sin perderse. Con 68 caracteres por línea el lector mantiene el ritmo aunque el párrafo sea largo, y el interlineado 1.6 da el aire que la letra de 15 píxeles necesita para textos de más de un pantallazo.
Mal · párrafo a ancho completoLa misma prosa estirada al ancho del contenedor obliga al ojo a viajar demasiado en cada salto de línea; a partir de 90 caracteres el lector empieza a releer renglones y abandona el texto aunque el contenido sea bueno.
<p class=prose>La medida corta deja que el ojo vuelva al margen...</p>
/* .prose ya viene en base/tokens.css: 15px · lh 1.6 · max-width 68ch */Cuándo va mono
td.num, que ya la pone en mono
con tnum y alineada a la derecha.- RUT
- 78.384.591-1
- Release
- f417275cbb1c390a6b158f2f6574db1b
- Puerto
- :8267
- Código CAF
- DTE-33-000412
- Emitido
- 2026-08-20T09:15:00-04:00
<dl class=kv>
<dt>RUT</dt><dd>78.384.591-1</dd>
<dt>Release</dt><dd>f417275cbb1c390a6b158f2f6574db1b</dd>
</dl>
/* la clave va en sans muted; el valor, en mono tinta */Informes · gasto público
Serie 2019 a 2024
<p class=eyebrow>Informes · gasto público</p>
<p class="eyebrow eyebrow--muted">Serie 2019 a 2024</p><span class=badge>v9</span>
<span class="badge badge--ok">Activo</span>
<span class="badge badge--warn">Stale</span>
<span class="badge badge--err">Caído</span><div class=stat>
<span class=stat__value>1.215.716</span>
<span class=stat__label>Núcleo 2024 · MM$</span>
</div>| Servicio | Puerto | Ejecución 2024 |
|---|---|---|
| cis-admin | :8244 | 184.528 |
| cis-mando | :8267 | 1.031.188 |
| cis-verify | :8252 | 11.111 |
<table class=table>
<thead><tr><th>Servicio</th><th style="text-align:right">Ejecución 2024</th></tr></thead>
<tbody><tr><td>cis-admin</td><td class=num>184.528</td></tr></tbody>
</table>
/* th ya es mono uppercase 10.5px; td.num ya es mono tnum a la derecha */.eyebrow { letter-spacing: var(--track-eyebrow); } /* .18em */
.stat__label { letter-spacing: var(--track-label); } /* .12em */
.legal { letter-spacing: var(--track-legal); } /* .1em */Jerarquía de una página tipo
Informes · 2026
Cuánto paga el Estado chileno por sus medicamentos, quién los compra y a qué precio. Serie 2019 a 2024 con datos de ejecución presupuestaria.
El perímetro cubre el núcleo de ejecución, incluido el gasto hospitalario. Quedan fuera las compras municipales y el gasto de bolsillo de los hogares.
<p class=eyebrow>Informes · 2026</p>
<h1>El gasto en <em>medicamentos</em></h1> <!-- em = color acento, no cursiva -->
<p class=prose>Cuánto paga el Estado chileno...</p>
<h2>Qué mide el informe</h2>
<p>El perímetro cubre el núcleo de ejecución...</p>
<div class=label-mono>Núcleo de ejecución · MM$ 2024</div>Errores comunes y su regla
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans" rel=stylesheet>Bien · self-hosted del kit
<link rel=stylesheet href="https://style.innovacionsantiago.cl/v9/<digest>/fonts/css/ibm-plex-sans.css"> <link rel=stylesheet href="https://style.innovacionsantiago.cl/v9/<digest>/fonts/css/jetbrains-mono.css">
/* regla: cero requests a fonts.googleapis.com y fonts.gstatic.com */.card h3 { font-family: Inter, sans-serif; }
.nav { font-family: system-ui; }
.hero { font-family: "IBM Plex Sans"; } /* correcto de casualidad: mañana deriva */
Bien · siempre el token
.card h3 { font-family: var(--font-sans); }
.nav { font-family: var(--font-sans); }
.hero { font-family: var(--font-sans); }
/* regla: la familia se hereda del token; el fallback vive en el token, no en tu CSS */Fuentes
fonts/css/ibm-plex-sans.css· pesos servidos 400/500/600/700 y la nota del 800 mapeado a Bold.fonts/css/jetbrains-mono.css· pesos servidos 400/500/700.base/tokens.css· escala --fs-*, tracking --track-*, .prose (15px · lh 1.6 · 68ch), body 14px lh 1.45, font-feature-settings con tnum, énfasis por color en titulares y la prohibición de Google Fonts y em-dash en su header.base/components.css· th mono uppercase, td.num, .stat, .badge, .card__tag: los lugares donde el kit ya aplica mono por ti.brands/cis/tokens.css· nota "NO propagar el sistema legacy --cis-* (Inter + verdes)".cis-style/adrs/typography-001.md(implementa ADR-021) · uso semántico de pesos, loading self-hosted y la prohibición razonada del CDN de Google./srv/projects/CANON.md§ Tipografía · "NUNCA Inter, Roboto ni system-ui como fuente de marca".