Stella Nova v0.6.18
Tema

Stella Nova · componentes

Espécimen de primitivos del skin. Cada bloque documenta los tokens en juego y muestra el componente con texto simulado.

Colofón tipográfico

Familia única IBM Plex, auto-alojada en assets/fonts/ (woff2, subsetting latin / latin-ext vía unicode-range). Sin CDN, sin Google Fonts.

Aa Bb Cc · 0123
IBM Plex Sans · variable, dos ejes wght 100–700 + wdth 75–100
Token --sn-font-sans (primitiva). Alias semánticos: --sn-font-text = cuerpo + UI + cabeceras, --sn-font-display = alias de text.
Aa Bb Cc · 0123
Roboto Serif · variable, cuatro ejes wght 100–900 + wdth 75–100 + opsz 8–60 + GRAD −50–100
Token --sn-font-serif (primitiva). Alias semántico: --sn-font-quote = citas + <poem> por defecto.
Activable como familia del cuerpo desde el menú del usuario (data-sn-family="serif"): cuerpo + UI voltean a Serif y citas/<poem> voltean a Sans. Comparte el rango de ancho con el sans (wdth 75–100) → el cuerpo condensa igual. Grado vía --sn-serif-grade (eje GRAD): 0 en claro, 30 en oscuro para compensar el aclaramiento óptico.
Aa Bb Cc · 0123
IBM Plex Mono · monospace técnico
Token --sn-font-mono
Uso: código, valores numéricos, identificadores

Cabeceras

Todas las cabeceras (H1–H6) en --sn-font-text — IBM Plex Sans, familia única. Sus alturas de línea son múltiplos enteros de --sn-baseline (la interlínea del cuerpo): H1/H2 ocupan 2 baselines, H3–H6 uno. Escala: --sn-fs-display (1.5–2.0 rem) → --sn-fs-base (el cuerpo, en H5/H6, que nunca bajan del tamaño de lectura). El acento carmín (--sn-nova) recae en los niveles impares — H1, H3 y H5; los pares (H2, H4, H6) van en tinta. Ese acento es transversal: el H5 sale carmín en cualquier contexto del skin (cuerpo, pie, modales), no sólo en el artículo.

== Sección principal ==
=== Sub-sección ===
==== Agrupación menor ====
===== Apostilla =====
====== Referencia inline ======

Heading 1 · display editorial

Heading 2 · sección principal

Heading 3 · sub-sección

Heading 4 · agrupación menor

Heading 5 · apostilla
Heading 6 · referencia inline

El H1 del artículo se genera automáticamente desde el título de la página — no se escribe en el cuerpo. La jerarquía editable empieza en == (dos signos igual a cada lado). Sumá un signo por cada nivel. No saltes niveles (no pongas ==== después de == sin un === intermedio).

Con tres o más cabeceras, MediaWiki inserta automáticamente la tabla de contenidos. Se puede forzar con __TOC__ o desactivar con __NOTOC__.

Helpers de contenido

Clases utilitarias para el wikitexto — viven en MediaWiki:Common.css (replicadas aquí para el espécimen). Ortogonales: se combinan en cualquier orden (class="lg serif center nova"). Pensadas para envolver el <p> que genera la wiki: una clase en el <div> contenedor se hereda al párrafo interno (tamaño, familia, énfasis, color); la alineación se propaga al <p> de forma explícita porque .sn-body p fija justify. Alcance .mw-parser-output .clase para ganarle a las reglas de cuerpo del skin.

Tamaño — jumbo · lg · sm · xs

Escala alrededor del cuerpo (que es el tamaño por defecto, sin clase). Respetan la preferencia S/M/L del lector (--sn-font-scale); jumbo es el titular.

<p class="jumbo">Titular jumbo</p>
<p class="lg">Destacado (lg)</p>
Cuerpo normal, sin clase.
<p class="sm">Secundario (sm)</p>
<p class="xs">Pie / nota (xs)</p>

Titular jumbo

Destacado (lg)

Cuerpo normal, sin clase.

Secundario (sm)

Pie / nota (xs)

Familia — serif · sans · mono

<span class="serif">Forzado a serif</span>
<span class="sans">Forzado a sans</span>
<span class="mono">Forzado a mono</span>

Forzado a serif · Forzado a sans · Forzado a mono

Énfasis — uppercase · italic · bold

<span class="uppercase">Versalita real</span>
<span class="italic">Cursiva</span>
<span class="bold">Negrita</span>

Versalita real · Cursiva · Negrita

Alineación — left · center · right · justify

En un <div> alcanzan el <p> interno que produce la wiki (por eso funcionan sobre bloques de párrafos, no sólo sobre el texto suelto).

<div class="center">
Texto centrado. Aunque la wiki lo
envuelva en su <p>, queda centrado.
</div>

<div class="right">Alineado a la derecha</div>

Texto centrado. Aunque la wiki lo envuelva en su <p>, queda centrado.

Alineado a la derecha.

Alineado a la izquierda (apaga la división de palabras).

Color semántico — nova · ok · warn · danger

Color de texto por rol; voltean claro/oscuro con el tema. Para fondos y avisos en bloque, usar las cajas .wash del skin, no estas clases.

<span class="nova">Marca / acento</span>
<span class="ok">Correcto</span>
<span class="warn">Atención</span>
<span class="danger">Error</span>

Marca / acento · Correcto · Atención · Error

Muestrario de roles

--sn-novamarca · enlaces · clase .nova
--sn-okcorrecto · «ok» del taller · .ok
--sn-warnatención · aviso · .warn
--sn-dangererror · acción destructiva · .danger

Cada eje es independiente: tamaño (jumbo/lg/sm/xs), familia (serif/sans/mono), énfasis (uppercase/italic/bold), alineación (left/center/right/justify) y color (nova/ok/warn/danger) → se componen libremente. En el wikitexto se aplican con <span> / <div> o, en una plantilla, con el atributo class.

Ancho de fuente — fw-50fw-150

Estas viven en la skin (no en MediaWiki:Common.css ni en TemplateStyles). Existen porque el sanitizador de TemplateStyles (css-sanitizer) no acepta font-stretch: 80% —solo palabras clave—, así que una plantilla no puede condensar por porcentaje en su propio styles.css. La skin no está sanitizada y lo expone como clase: se escribe class="fw-90" y nunca se toca font-stretch en CSS sanitizado. fw-NN = font-stretch: NN% (eje wdth de las fuentes variables del skin). La escala va de 10 en 10, de 50 a 150; siguen publicados fw-75 fw-85 fw-95 (pasos de 5 heredados de v0.6.14). font-stretch hereda → en un <div> el ancho fluye a los párrafos internos.

⚠️ La escala declarada es más ancha que lo que las fuentes saben renderizar. El navegador clampa en silencio al eje wdth del woff2, y ese rango depende de la familia:

  • IBM Plex Sans (familia por defecto): wdth 75–100. Es la fuente entera —no tiene ancho expandido, no es cosa del subset—. fw-50/60/70 se ven todos como 75; fw-110fw-150 se ven todos como 100.
  • Roboto Serif (modo serif): nuestro woff2 va instanciado a 62.5–100, aunque upstream trae 50–150 (se recortó en v0.2.4 para bajar la familia de ~1.6 MB a ~0.9 MB). fw-50/60 se ven como 62.5; fw-110fw-150 como 100. Activar el tramo expandido exige reconstruir el woff2 sin recortar el eje.

La familia la elige el LECTOR (menú del skin, default sans), no quien escribe. Así que un mismo fw-130 puede clampar para un lector y expandir para otro. Fuera de 75–100, fija la familia en el elemento: class="serif fw-130".

<span class="fw-100">Ancho normal</span>
<span class="fw-90">Condensada 90%</span>
<span class="fw-80">Condensada 80% (= cuerpo)</span>

<!-- fuera de 75-100: fija la familia -->
<span class="serif fw-130">Expandida</span>

<div class="fw-90">
Un bloque entero: el ancho
se hereda a los <p> internos.
</div>

Aa Hh — 150 (clampa en sans)

Aa Hh — 130 (clampa en sans)

Aa Hh — 110 (clampa en sans)

Aa Hh — 100 (ancho normal)

Aa Hh — 90

Aa Hh — 80 (= cuerpo en sans)

Aa Hh — 75 (piso real de Plex Sans)

Aa Hh — 70 (clampa a 75 en sans)

Aa Hh — 50 (clampa a 75 en sans)

Ortogonales: se combinan con los helpers tipográficos (class="lg serif fw-90"). Si dos filas de la demo se ven idénticas, no es un error del espécimen: es el clamp de la fuente. Para un ancho por fuera de la escala, la plantilla puede escribir font-stretch: var(--tu-prop): var() sí pasa el sanitizador aunque el porcentaje literal no.

Cuerpo de texto

Familia --sn-font-text · cuerpo --sn-fs-base (1.00–1.05 rem fluido) · interlínea --sn-leading (1.65, fijo) · medida de la hoja --sn-measure (58 rem, fijo). Los párrafos van justificados con hyphens: auto (depende del lang del documento).

Texto corrido con '''negrita''', ''cursiva''
y '''''ambas'''''.

Enlace interno: [[Página]] o [[Página|texto a mostrar]].
Enlace externo: [https://wiki.ead.pucv.cl texto]
o simplemente https://wiki.ead.pucv.cl.

Salto de párrafo: una línea en blanco.
Filete horizontal: cuatro guiones al inicio: ----

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.

Enlaces: interno (carmín · azul en oscuro) · externo (con ícono --sn-ext-icon) · rojo (página inexistente, clase .new automática que MediaWiki añade al detectar el enlace muerto).

Para citar texto inline usá <cite>…</cite> (no hay sintaxis wiki dedicada). Para énfasis semántico fuerte, <strong> y <em> equivalen a ''' y '' pero son más explícitas.

Listas

Sangría heredada de --sn-s-5 · marcadores en --sn-ink-soft · espaciado vertical --sn-s-1.

* Ítem de lista no ordenada
* Otro ítem
** Sub-ítem (dos asteriscos)
*** Sub-sub-ítem

# Ítem de lista ordenada
# Segundo
## Sub-ítem ordenado

; Término primario
: Definición del término
; Término secundario
: Definición.

: Texto sangrado (sin término)
:: Doble sangría
  • Lorem ipsum dolor sit amet
  • Consectetur adipiscing elit
    • Sub-ítem (dos asteriscos)
    • Otro sub-ítem
  • Ut enim ad minim veniam
  1. Primer ítem de la secuencia
  2. Segundo ítem
  3. Tercero
Término primario
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Término secundario
Sed do eiusmod tempor incididunt ut labore.

Cada ítem ocupa una línea. La sangría se controla repitiendo el marcador (**, ##). Las listas se cortan al encontrar una línea en blanco o un marcador distinto.

Las listas de definición (; y :) también sirven para sangrar texto suelto: una línea iniciada con : sin ; previo produce sólo la sangría.

Tablas

Clase .wikitable (y las de consulta semántica .smwtable / .broadtable): diseño minimalista de solo filetes horizontales — nunca verticales ni contorno exterior. Cabecera transparente con un filete normal (--sn-hairline) que la separa del cuerpo; entre filas, filete fino (--sn-hairline-soft) uniforme — sin colores alternados. Texto a --sn-fs-table (≈80% del cuerpo), todo alineado a la izquierda, sobre la grilla de línea base. En tablas anchas la <table> se vuelve su propia caja de scroll horizontal. Las de resultados (smwtable) realzan la fila bajo el cursor.

{| class="wikitable"
|+ Título descriptivo de la tabla
! Token !! Rol !! Familia
|-
| --sn-fs-display || H1 display || text
|-
| --sn-fs-xl || H2 || text
|-
| --sn-fs-lg || H3 || text
|-
| --sn-fs-base || Cuerpo || text
|}
Escala tipográfica del sistema
TokenRolFamilia
--sn-fs-displayH1 displaytext
--sn-fs-xlH2text
--sn-fs-lgH3text
--sn-fs-baseCuerpotext

Ficha — class="wikitable plantilla"

El modificador plantilla (alias inglés template) convierte la tabla en una ficha vertical clave→valor (perfil, ficha técnica): sin filetes, la etiqueta a la derecha en versalita tenue y el valor a la izquierda. Llena el ancho y corre a ¾ de la línea base. Es lo que usan las fichas migradas desde MediaWiki:Common.css.

{| class="wikitable plantilla"
! Tipo de Proyecto
| Proyecto de Curso
|-
! Año
| 2016
|-
! Carrera
| Diseño Gráfico
|-
! Profesor
| Herbert Spencer
|}
Tipo de ProyectoProyecto de Curso
Año2016
CarreraDiseño Gráfico
ProfesorHerbert Spencer

Estructura: {| abre la tabla y va con la clase wikitable para heredar los estilos del skin. |+ es el título (<caption>). ! son celdas de encabezado, | son celdas de datos. |- separa filas. |} cierra.

Atajos: !! y || permiten poner varias celdas en una sola línea. El modificador class="wikitable plantilla" (arriba) reconvierte la tabla en ficha vertical clave→valor. Para tablas ordenables, añadir sortable: el skin pinta sus propios chevrones de orden.

Cita y poema

<blockquote> y <poem> (extensión Poem) consumen --sn-font-quote, que por defecto apunta a Roboto Serif (la serif del skin, variable en wght/wdth/opsz/GRAD). Si el lector alterna la familia del cuerpo a serif desde el menú del usuario, citas y poemas voltean a sans para mantener el contraste editorial. El poema lleva white-space: pre-wrap, lo que conserva los espacios del wikitexto como materia significante (no son adorno: son la espacialidad del verso). Fragmento de la Aventura de Amereida (1967) usado en la portada de Casiopea.

<blockquote>
Texto de la cita en uno o más párrafos.
— Autoría, <cite>Obra</cite> (año)
</blockquote>

<poem>
     no fue
        el hallazgo
             ajeno a los descubrimientos

 ¡oh marinos!
     sus pájaras salvajes
        el mar incierto
             las gentes desnudas entre sus dioses
</poem>

el descubrimiento no nos descubre nuestro propio continente, sino que nos da el continente propio.

Amereida (1967)

no fue el hallazgo ajeno a los descubrimientos ¡oh marinos! sus pájaras salvajes el mar incierto las gentes desnudas entre sus dioses

Para la cita: <blockquote>…</blockquote> envuelve uno o varios párrafos. La atribución va como texto al final (no hay marcado específico).

Para el poema: cada línea del wikitexto produce una línea visual y los espacios al inicio se preservan literalmente — así se reconstruye la espacialidad del verso. La extensión Poem inserta un <br> tras cada línea, pero el skin lo suprime visualmente porque el \n con white-space: pre-wrap ya produce el salto (de no hacerlo quedaría un espacio doble entre líneas).

Código

Familia --sn-font-mono · fondo --sn-sunk.
Inline: padding 1px / 4px · radio 2 px · 0.9 em.
Bloque: padding --sn-s-3 / --sn-s-4 · radio --sn-radius · scroll horizontal en overflow.

Código inline: <code>const x = 1</code>.

Bloque indentado (lo más simple): empezar
la línea con un espacio.
 function ejemplo() {
   return 42;
 }

Bloque preformateado explícito:
<pre>
texto monoespaciado, conserva
saltos de línea y espacios.
</pre>

Inline: const lorem = ipsum(dolor) dentro de un párrafo.

// Bloque pre > code
function loremIpsum(dolor, sit) {
    const amet = consectetur(dolor);
    return amet + sit;
}

Para citar nombres de variables, comandos o identificadores en medio de un párrafo, usá <code>. Para mostrar fragmentos largos, <pre> + <code> es el patrón estándar (lo que aquí se renderiza).

El bloque preformateado por sangrado (línea iniciada con un espacio) es el más rápido pero no permite resaltado ni metadatos. La wiki no carga SyntaxHighlight en producción.

Botones

Capa semántica --sn-btn-* · altura --sn-ctl (2.4 rem) · radio --sn-radius · tipografía --sn-fs-sm · foco con la nova (--sn-focus-ring). La nova no rellena botones — sólo aro de foco.

Primario
Neutro
Destructivo
Ícono

Los botones son parte de la interfaz del skin, no se escriben en el wikitexto del artículo. Aparecen automáticamente en formularios (editar, mover, subir archivo), en diálogos de extensiones (PageForms, ReplaceText) y en barras de acción. Los botones de ícono pueblan el cluster a la derecha del título cuando la usuaria tiene permisos sobre la página.

Si una plantilla necesita un botón propio, lo mejor es envolver un enlace con la clase sn-btn: <span class="sn-btn">[[Página|Texto]]</span>.

Formularios

Capa semántica --sn-field-* · borde --sn-field-border · foco con --sn-focus-border + --sn-focus-ring · placeholder en --sn-field-placeholder.

Los formularios estándar de MediaWiki (preferencias, búsqueda avanzada, mover página) los provee el core y heredan estos estilos automáticamente. Para crear formularios editoriales (fichas de proyecto, observaciones, etapas, travesías) la wiki usa la extensión PageForms: el formulario se define en una página Plantilla:Formulario/Nombre con la sintaxis de PageForms ({{{field|nombre|input type=…}}}) y el skin lo renderiza con estos primitivos.

Pestañas de página

Bandeja de acciones del artículo · pestaña activa marcada con filete inferior --sn-nova (2 px) · enlace rojo (página inexistente) en --sn-link.

Las pestañas las genera el skin a partir de los namespaces y permisos: Artículo · Discusión · Editar · Historial · Más. No se escriben en el wikitexto. Para añadir pestañas propias, las extensiones usan el hook SkinTemplateNavigation; el skin las recibe y las renderiza en la misma bandeja.

Badges y contadores

Badge: tipografía --sn-fs-xs peso 500, radio --sn-radius · fondo wash correspondiente a la señal.
Pill: --sn-radius-pill + familia mono para valores numéricos.

<span class="sn-badge">Neutro</span>
<span class="sn-badge sn-badge-nova">Nova</span>
<span class="sn-badge sn-badge-ok">Activo</span>
<span class="sn-badge sn-badge-warn">En revisión</span>
<span class="sn-badge sn-badge-danger">Bloqueado</span>

<span class="sn-pill">42 ítems</span>
Neutro Nova OK Aviso Error 000 ítems 000 ítems

Badges para estados cortos (palabras); pills para contadores numéricos (familia mono). Variantes: sn-badge-nova · -ok · -warn · -danger. Útiles para marcar el estado de una etapa, un proyecto o una observación dentro de fichas y plantillas.

Tabla de contenidos

Numeración en --sn-font-mono · --sn-fs-xs · filete izquierdo en --sn-nova marca la sección activa.

== Sección uno ==
== Sección dos ==
=== Sub-sección 2.1 ===
=== Sub-sección 2.2 ===
== Sección tres ==

Palabras mágicas (control fino):
__TOC__       inserta el índice en este punto.
__NOTOC__     suprime el índice de la página.
__FORCETOC__  fuerza el índice aun con < 4 cabeceras.

Por defecto la tabla aparece automáticamente cuando hay 4 o más cabeceras (==, ===, etc.), justo antes de la primera. Las palabras mágicas con doble guión bajo a cada lado la sobrescriben (sensibles a mayúsculas).

El skin la renderiza en la posición donde la coloque MediaWiki — respeta la ubicación de __TOC__. Solo cambia su vestimenta (numeración monoespaciada, filete izquierdo carmín marcando la sección activa).

Aviso administrado (.sn-notice)

aside.sn-notice · banner que el skin inyecta al tope del paper desde el fragmento administrable Stella-Nova:Aviso. Se revienta al borde superior de la hoja (mismo bleed que .full-width), fondo --sn-notice-bg / tinta --sn-notice-ink (ámbar tenue que voltea con el tema) y trae su botón de cierre; el lector lo descarta y no reaparece esa revisión.

Se edita en Stella-Nova:Aviso
(no se teclea en el artículo).
El skin lo envuelve en:
<aside class="sn-notice">
  <div class="sn-notice-body">…</div>
  <button class="sn-notice-x">×</button>
</aside>

El cuerpo del artículo continúa debajo del aviso, al ancho de lectura.

Lo pinta la CSS real del skin (no hay estilo propio del espécimen). Es la misma banda superior que aparece en la página de Layout. Para bandas de contenido dentro del cuerpo, ver .fondo-* (Bandas de fondo).

Imágenes a sangre completa (.full-width)

Clase de wikitexto migrada desde Common.css de producción para que viaje con el tema. Una imagen, figura o envoltorio con class="full-width" se «revienta» del padding lateral de la hoja para ir borde a borde del artículo. Sirve a tres patrones de wikitexto.

[[Archivo:foo.jpg|class=full-width]]
[[Archivo:foo.jpg|frameless|class=full-width]]
<div class="full-width">[[Archivo:foo.jpg]]</div>

Párrafo del cuerpo, con el ancho de lectura normal de la hoja.

imagen a sangre completa · borde a borde

El párrafo siguiente regresa al ancho de lectura.

El truco: margin-inline: calc(-1 * var(--sn-paper-px)), el mismo padding lateral que la hoja expone como contrato. Sólo funciona dentro de .sn-paper / .sn-canvas. También casa el token con apóstrofes 'full-width' que MediaWiki preserva en [[Imagen:…|class='full-width']].

Bandas de fondo (.fondo-*)

Bloque de contenido a sangre lateral: el fondo va de lado a lado de la hoja (misma técnica de bleed que .full-width) pero el contenido vuelve al ancho de lectura, con una línea base de aire arriba y abajo. Sirve para destacar una sección —intro, aviso, índice de portada— sin sacarla del flujo. Cada variante sólo cambia el color, tomado de un lavado pálido semántico que voltea con el tema. Se combina con las clases de contenido y con .grilla (el fondo sangra, la grilla maqueta dentro).

<div class="fondo-ahuesado">…</div>
<div class="fondo-coral">…</div>
<div class="fondo-verde">…</div>
<div class="fondo-ambar">…</div>
<div class="fondo-info">…</div>

<!-- con grilla: el fondo sangra,
     las columnas maquetan dentro -->
<div class="fondo-coral grilla cols-3">
  …tres columnas…
</div>

Párrafo del cuerpo, al ancho de lectura normal de la hoja.

fondo-ahuesado — hueso claro (--sn-papel-400).

fondo-coral — lavado carmín (--sn-nova-wash).

fondo-verde — lavado verde (--sn-ok-wash).

fondo-ambar — lavado ámbar (--sn-warn-wash).

fondo-info — lavado info (--sn-info-wash).

Combinada con grilla, el fondo sangra y las columnas quedan al ancho de lectura:

Escuela
columna 1
Punto de vista
columna 2
Acontecer
columna 3

Vive en el skin (no en Common.css), así que voltea claro/oscuro sola. El alto es un múltiplo entero de --sn-baseline → no rompe la retícula. Sólo sangra dentro de .sn-paper / .sn-canvas. Al combinar con .grilla, la grilla usa margin-block (no el shorthand margin) para no pisar el sangrado lateral de la banda.

Botón de contenido (.wiki-btn)

Clase de wikitexto migrada desde Common.css al tema. Botón «outline»: contorno fino (1 px) en forma de píldora; al pasar el cursor se rellena y el texto voltea a --sn-nova-ink. Tres variantes: por defecto (gris), red y green. Color 100 % por tokens → voltea claro/oscuro. Robusto a tres usos: envolviendo un enlace, como span suelto (p.ej. un toggle) o aplicado directo a un <a> — el volteo del texto no depende de que haya un enlace dentro.

<span class="wiki-btn">[[Página|Etiqueta]]</span>
<span class="wiki-btn red">[[…|Rojo]]</span>
<span class="wiki-btn green">[[…|Verde]]</span>

<!-- span suelto, sin enlace (toggle): -->
<span class="mw-customtoggle-x link-toggle wiki-btn green">
  ver versión en inglés</span>
Por defecto Rojo Verde span suelto (toggle)

Color 100 % tokenizado: por defecto → --sn-ink-soft; red--sn-nova; green--sn-ok. Al hover/foco el botón se rellena y el texto pasa a --sn-nova-ink (voltea: blanco en claro, casi-negro en oscuro). El color del hover se fija en el botón mismo, no en un enlace hijo, así que un <span> suelto (un toggle mw-customtoggle-*, sin <a> dentro) también voltea a blanco — antes se quedaba con el texto del color de la variante sobre su propio relleno.

El alto es exacto de una línea base (--sn-baseline) con relleno solo horizontal: el interior calza igual en los tres usos y el botón no rompe la retícula, suelto o en medio de un párrafo. La variante blue se retiró (sin token, sin uso). Debe vivir dentro de .sn-body.

Grid / grilla — framework de layout

Reemplaza el patrón .row > .col-md-* del skin Bootstrap anterior. Nombre bilingüe: .grid (canónico) y .grilla (alias en español). Los modificadores se combinan: .cols-1…6 / .cols-auto / .cols1-2 / .cols2-1 (columnas), .gap-0/s/m/l (espaciado en ambos ejes) o, por eje, .gap-h-* (horizontal, entre columnas) y .gap-v-* (vertical, entre filas), .flujo-v/.stack (pila vertical), .align-top/center/bottom (alineación de celda), .sin-margen/.flush (margen) y .full/.completa (a todo el campo). Bajo 64 rem las grillas densas (4/5/6) reducen columnas; bajo 48 rem todas colapsan.

A la izquierda el código que se escribe; a la derecha, el resultado. La misma referencia vive en la wiki en Ayuda:Grilla.

cols-2

<div class="grid cols-2">
  Celda 1
  Celda 2
</div>
Celda 1
Celda 2

cols-3

<div class="grid cols-3">
…tres hijos directos…
</div>
1
2
3

cols-auto + gap-l (tarjetas auto-fit, gap amplio)

<div class="grid cols-auto gap-l">
…tantas columnas (≥ 16 rem) como quepan…
</div>
auto 1
auto 2
auto 3
auto 4

cols2-1 (tercios asimétricos) + align-center

<div class="grid cols2-1 align-center">
Bloque amplio (dos tercios)
Bloque angosto (un tercio)
</div>
2/3 — bloque amplio
con dos líneas
1/3

stack (flujo vertical) + gap-s

<div class="grid stack gap-s">
…celdas apiladas en columna…
</div>
fila 1
fila 2
fila 3

gap-0 (sin separación)

<div class="grid cols-3 gap-0">
…sin separación entre celdas…
</div>
1
2
3

gap por eje — gap-h (columnas) · gap-v (filas)

El gap se puede separar por eje: gap-h-* controla el espacio horizontal (entre columnas, dentro de la fila) y gap-v-* el vertical (entre filas). Se combinan entre sí y con gap-*. Aquí: columnas juntas (gap-h-0), filas separadas (gap-v-l).

<div class="grid cols-3 gap-h-0 gap-v-l">
…columnas pegadas, filas aireadas…
</div>
1
2
3
4
5
6

alias en español (grilla)

<div class="grilla cols-2">
…equivalente a class="grid cols-2"…
</div>
Celda 1
Celda 2

full / completa (a todo el campo)

full rompe el ancho de lectura con la técnica de full-width (100vw + margen inline negativo): a sangre del viewport en pantalla completa, del paper en chrome normal. No se demuestra en vivo aquí porque reventaría el recuadro del espécimen; ver la wiki para el efecto real.

<div class="grid cols-3 full">
…ocupa todo el campo…
</div>
1
2
3

Cada hijo directo de .grid es una celda; URLs largas o bloques de código no desbordan (minmax(0, 1fr)). El gap por defecto es --sn-s-5 (1.5 rem) en ambos ejes; se ajusta uniforme con .gap-0/s/m/l o por eje con .gap-h-* (columnas) y .gap-v-* (filas), combinables entre sí.

Funciona en chrome normal y en __PANTALLACOMPLETA__: ambos contenedores llevan .sn-body, que es donde el skin define la regla. En pantalla completa el contenido es libre (sin columna central), así que .grid es la herramienta recomendada para maquetar ahí. Si la grilla aparece "rota" (en una sola columna), revisar que esté dentro de .sn-body.

Imagen con leyenda (thumb)

Miniatura enmarcada con pie, el patrón [[Archivo:…|thumb|…]]. MediaWiki moderno (Parsoid) emite <figure typeof="mw:File/Thumb"> con su <figcaption>; el skin une imagen y leyenda en una sola tarjeta sobre papel, esquinas --sn-radius-s, y la leyenda voltea con el tema. tright/tleft la flotan.

[[Archivo:Obra.jpg|thumb|right|
  Leyenda: describe la imagen.]]

Texto del cuerpo que fluye alrededor
de la miniatura flotada…
Leyenda de la imagen: describe lo que se ve.

Texto del cuerpo que fluye alrededor de la miniatura flotada a la derecha. La leyenda queda pegada al pie de la imagen, sobre el mismo fondo de papel, sin la «lupa de ampliar» heredada del core. El resto del párrafo sigue su curso justificado hasta cerrar el bloque y reconquistar el ancho completo de la hoja.

Vale tanto para la forma Parsoid (figure.mw-default-size) como para el wikitexto clásico (.thumbinner / .thumbcaption): el skin homologa ambas a la misma tarjeta de papel.

Galería (<gallery> nativa)

El tag <gallery> del core produce ul.gallery.mw-gallery-traditional con una li.gallerybox por imagen. El layout lo aporta el módulo mediawiki.page.gallery.styles (replicado aquí); el skin viste el recuadro de cada caja (papel + --sn-radius-s) y achica el pie al grado más pequeño.

<gallery>
Archivo:A.jpg|Primera obra
Archivo:B.jpg|Segunda obra
Archivo:C.jpg|Tercera obra
</gallery>

Las variantes packed / nolines (mode= del tag) ponen las cajas a borde transparente con mayor especificidad, así que el recuadro de papel sólo viste la galería tradicional.

Tarjeta Portafolio (formato #ask)

Origen: Plantilla:Portafolio/style.css (TemplateStyles, no el skin). Miniatura + título + datos que muestra una tarea o proyecto como tarjeta. Se invoca directa o, lo habitual, desde una consulta semántica {{#ask:… |format=template |template=Portafolio}} que lista proyectos. Suelta se autoacomoda (ancho base 16 rem); dentro de una grilla cols-auto pasa a celda y llena la columna. Toda la tarjeta enlaza a su página (stretched link).

{{#ask: [[Categoría:Proyecto]]
 | ?Imagen
 | ?Alumnos
 | format=template
 | template=Portafolio
}}
Atmósfera de colores afectadosAndrés Aliaga · Taller Luz y Color
Portafolio WebMartín Araneda · Construcción 4º DG
Ciclo Proyecto FinalAndrea Leiva · Módulo Investigación

Hermanas en la wiki: Plantilla:Mi Portafolio y Plantilla:Mis Obras la envuelven en grilla cols-auto; Plantilla:Ficha Personal es el equivalente para personas.

Ficha Personal

Origen: Plantilla:Ficha Personal/style.css (TemplateStyles). Foto circular + bio en dos columnas (1fr 2fr); el nombre va en versalita. Aparece en los #ask format=template que listan profesores (Categoría:Persona), normalmente dentro de una grilla cols-auto.

{{#ask: [[Categoría:Persona]]
 | ?Imagen
 | format=template
 | template=Ficha Personal
}}

Óscar Andrade

Profesor Jerarquizado, Arquitecto PUCV
Magíster en Arquitectura y Diseño PUCV

Katherine Exss

Profesora, Diseñadora PUCV
Magíster en Diseño de Interacción

La foto se recorta en círculo (.img-circle del skin + border-radius:50% de la plantilla); el nombre usa --sn-fs-xs en versalita y la bio el mismo grado pequeño.

Documento miniatura (.dm) — tarjeta en la retícula

Origen: Plantilla:Documento miniatura/styles.css (TemplateStyles). Título enlazado + pie (autor · año) + guía, en una tarjeta de una fila que se apila en columna desde un {{#ask:… |format=template |template=Documento miniatura}}. Toda la tarjeta enlaza a su página (stretched link) y en hover pinta --sn-nova-wash. Cierra en la retícula: los textos corren a line-height: var(--sn-baseline) y el relleno vertical usa var(--sn-baseline-half) a cada lado — media interlínea × 2 = una línea base entera —, de modo que la altura de la tarjeta es múltiplo de --sn-baseline y una columna larga no acumula desfase, ni siquiera con la preferencia de tamaño de letra en sus extremos.

{{#ask: [[Categoría:Documento]]
 | ?Autor
 | ?Año
 | ?Profesor guía
 | format=template
 | template=Documento miniatura
}}

El filete que separa cada tarjeta es un box-shadow inset de media línea, no un margen — el ritmo lo fija sólo el relleno --sn-baseline-half. Antes de este token la plantilla aproximaba con --sn-s-3 (0.75 rem, fijo en rem): quedaba corto ~0.1 rem por tarjeta y el error se acumulaba columna abajo.

Listado de Cursos (.curso-listado)

Origen: Plantilla:Listado de Cursos/style.css (TemplateStyles). Hermana de .dm para cursos: h4 enlazado + profesores (itálica) + alumnos, apilada en columna desde un {{#ask:… |template=Listado de Cursos}}. Mismo contrato de retícula que .dm — textos a --sn-baseline y relleno var(--sn-baseline-half) — así la columna de cursos también cierra en baselines enteras.

{{#ask: [[Categoría:Curso]]
 | ?Profesores
 | ?Alumnos
 | format=template
 | template=Listado de Cursos
}}

Consumidor del mismo token que .dm: cualquier tarjeta de plantilla que deba calzar en la retícula usa padding: var(--sn-baseline-half) var(--sn-s-3) — nunca var(--sn-s-3) en el eje vertical, porque la escala --sn-s-* es fija en rem y no sigue a --sn-font-scale.