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
Cabeceras
== 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
Tamaño — jumbo · lg · sm · xs
<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
<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
<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 · .dangerCada 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-50 … fw-150
⚠️ 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):
wdth75–100. Es la fuente entera —no tiene ancho expandido, no es cosa del subset—.fw-50/60/70se ven todos como 75;fw-110…fw-150se ven todos como 100. - Roboto Serif (modo serif): nuestro
woff2va 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/60se ven como 62.5;fw-110…fw-150como 100. Activar el tramo expandido exige reconstruir elwoff2sin 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
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
* Í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
- Primer ítem de la secuencia
- Segundo ítem
- 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
{| 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
|}
| Token | Rol | Familia |
|---|---|---|
--sn-fs-display | H1 display | text |
--sn-fs-xl | H2 | text |
--sn-fs-lg | H3 | text |
--sn-fs-base | Cuerpo | text |
Ficha — class="wikitable plantilla"
{| class="wikitable plantilla"
! Tipo de Proyecto
| Proyecto de Curso
|-
! Año
| 2016
|-
! Carrera
| Diseño Gráfico
|-
! Profesor
| Herbert Spencer
|}
| Tipo de Proyecto | Proyecto de Curso |
|---|---|
| Año | 2016 |
| Carrera | Diseño Gráfico |
| Profesor | Herbert 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>
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.
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
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
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
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
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
<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>
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
== 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)
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)
[[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.
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-*)
<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-info — lavado info (--sn-info-wash).
Combinada con grilla, el fondo sangra y las columnas quedan al ancho de lectura:
columna 1
columna 2
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)
<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>
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
cols-2
<div class="grid cols-2"> Celda 1 Celda 2 </div>
cols-3
<div class="grid cols-3"> …tres hijos directos… </div>
cols-auto + gap-l (tarjetas auto-fit, gap amplio)
<div class="grid cols-auto gap-l"> …tantas columnas (≥ 16 rem) como quepan… </div>
cols2-1 (tercios asimétricos) + align-center
<div class="grid cols2-1 align-center"> Bloque amplio (dos tercios) Bloque angosto (un tercio) </div>
con dos líneas
stack (flujo vertical) + gap-s
<div class="grid stack gap-s"> …celdas apiladas en columna… </div>
gap-0 (sin separación)
<div class="grid cols-3 gap-0"> …sin separación entre celdas… </div>
gap por eje — gap-h (columnas) · gap-v (filas)
<div class="grid cols-3 gap-h-0 gap-v-l"> …columnas pegadas, filas aireadas… </div>
alias en español (grilla)
<div class="grilla cols-2"> …equivalente a class="grid cols-2"… </div>
full / completa (a todo el campo)
<div class="grid cols-3 full"> …ocupa todo el campo… </div>
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)
[[Archivo:Obra.jpg|thumb|right| Leyenda: describe la imagen.]] Texto del cuerpo que fluye alrededor de la miniatura flotada…
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)
<gallery> Archivo:A.jpg|Primera obra Archivo:B.jpg|Segunda obra Archivo:C.jpg|Tercera obra </gallery>
-
Primera obra
-
Segunda obra
-
Tercera obra
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)
{{#ask: [[Categoría:Proyecto]]
| ?Imagen
| ?Alumnos
| format=template
| template=Portafolio
}}
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
{{#ask: [[Categoría:Persona]]
| ?Imagen
| format=template
| template=Ficha Personal
}}
Óscar Andrade
Profesor Jerarquizado, Arquitecto PUCVMagíster en Arquitectura y Diseño PUCV
Katherine Exss
Profesora, Diseñadora PUCVMagí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
{{#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)
{{#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.