Tokens, layers, naming y theming leídos desde CSSOM, no capturas estáticas.
Un solo showcase para core, packs y contrato público.
gallery.html pasa a ser la entrada única: foundations visuales, componentes base, 10 packs vivos (incl. next con liquid glass real, OKLCH y multi-axis), reglas de uso y reference API sin saltar entre demos duplicadas.
Objects, buttons, cards, badges, feedback, fields, code y tablas.
Themes, data, charts, maps, viz, motion, forms, ui y patterns en vivo.
Reglas de uso y API pública consolidada en el mismo archivo.
Qué resuelve este refactor
Había dos demos con solapamiento parcial: una enseñaba el core y otra los packs. La parte mala era operativa, no estética: navegación rota, reference API separada y contenido duplicado.
Ahora hay una sola URL enlazable por anchors tipo gallery.html#pack-charts, con un patrón repetible para que añadir un pack nuevo sea pegar otra sección .gx-showcase sin reordenar nada.
HTML mínimo de adopción completa
<link rel="stylesheet" href="ntizar.css">
<link rel="stylesheet" href="ntizar.themes.css">
<link rel="stylesheet" href="ntizar.data.css">
<link rel="stylesheet" href="ntizar.charts.css">
<link rel="stylesheet" href="ntizar.maps.css">
<link rel="stylesheet" href="ntizar.viz.css">
<link rel="stylesheet" href="ntizar.motion.css">
<link rel="stylesheet" href="ntizar.forms.css">
<link rel="stylesheet" href="ntizar.ui.css">
<link rel="stylesheet" href="ntizar.patterns.css">
<body class="nz" data-nz-theme="light" data-nz-skin="aurora">
...
</body>
Subgrid para layouts anidados
Cuando una grid dentro de otra necesita compartir columnas con la grid padre, usa .nz-grid--subgrid. Los items internos se alinean perfectamente con las columnas externas.
Celda que ocupa 1 columna del padre
Celda que ocupa 2 columnas del padre
Celda que ocupa 1 columna del padre
API del bloque
Claves: .nz-grid--subgrid (grid padre con columnas auto-fit), .nz-grid--subgrid--2 (item ocupa 2 columnas), .nz-grid--subgrid--3 (item ocupa 3 columnas). Los grids anidados heredan grid-template-columns: subgrid del padre.
HTML del bloque
<div class="nz-grid nz-grid--subgrid" style="grid-template-columns: repeat(3, 1fr);">
<div class="nz-surface">1 col</div>
<div class="nz-surface nz-grid--subgrid--2">
2 cols + subgrid anidado
<div class="nz-grid nz-grid--subgrid" style="grid-template-columns: repeat(3, 1fr);">
<div>hijo A</div>
<div>hijo B</div>
<div>hijo C</div>
</div>
</div>
<div class="nz-surface">1 col</div>
</div>
Tokens de color y superficie renderizados desde runtime
No hay swatches hardcodeados. El bloque lee los tokens activos del body.nz, así que cambiar theme o skin actualiza el catálogo al vuelo.
API del bloque
Este bloque visualiza familias clave de --nz-color-*, más superficies y gradientes que condicionan el look completo: brand, accent, slate, glass y aurora.
Si un proyecto ya tiene framework propio, esta suele ser la capa que sí conviene integrar aunque no cargues todos los componentes.
Snippet de tematización
.mi-shell.nz {
--nz-color-brand: #2563eb;
--nz-color-accent: #f97316;
--nz-gradient-aurora: linear-gradient(135deg, #2563eb 0%, #3b82f6 48%, #f97316 100%);
}
Escala tipográfica y fuentes
La escala pública ya no vive solo en h1..h4; también existe como tokens y clases utilitarias .nz-text-h1..h4, .nz-text-sm y .nz-text-muted.
API del bloque
--nz-font-sans, --nz-font-display y --nz-font-mono definen familias. La escala vive en --nz-text-xs..3xl.
La regla práctica: usa semántica HTML cuando exista; las clases tipográficas son para casos donde el HTML no refleja el rango visual que necesitas.
HTML del bloque
<div class="nz-stack nz-stack--sm">
<span class="nz-text-h2">Título de módulo</span>
<p class="nz-text-muted nz-text-sm">Contexto secundario</p>
</div>
Spacing scale: de --nz-space-1 a --nz-space-8
La separación vertical real del sistema sale de aquí: stack, grids, cards, panels y patterns usan la misma escala.
API del bloque
Antes de meter margin manual, prueba con .nz-stack y sus variantes. La mayoría del ritmo base ya está resuelto con esta escala.
HTML del bloque
<div class="nz-stack nz-stack--lg">
<header class="nz-stack nz-stack--sm">...</header>
<div class="nz-grid nz-grid--3">...</div>
</div>
Radius scale compartida entre core y utilities
Los radios están limitados a cinco niveles. Eso evita que cada pack invente su propia geometría.
API del bloque
--nz-radius-sm/md/lg/xl/pill y sus utilities .u-nz-rounded-* son suficientes para casi todos los casos. Si necesitas uno nuevo, probablemente el problema sea de composición, no de radius.
Utility equivalentes
<div class="u-nz-rounded-lg">...</div>
<div class="u-nz-rounded-pill">...</div>
Sombras de profundidad y de marca
Las sombras no son decorado genérico: algunas dan volumen y otras proyectan identidad de marca.
API del bloque
--nz-shadow-brand, --nz-shadow-accent y --nz-shadow-aurora son los que más rápido rompen la coherencia si los redefines sin cuidado.
Ejemplo de uso
<button class="nz-btn nz-btn--primary u-nz-glow">Acción</button>
<div class="nz-card u-nz-glow-aurora">Panel destacado</div>
Layers, naming y contrato de extensibilidad
El sistema no escala por cantidad de clases sino por límites claros: tokens, base, objects, components y utilities.
@layer ntizar.tokens, base, objects, components, utilities.
Objetos y componentes usan .nz-*. Utilidades usan .u-nz-*. Tokens usan --nz-*.
Si algo no aparece en gallery o en la API pública, no existe como contrato estable.
API del bloque
Cuando añadas un pack nuevo, todo el escaparate ya está listo: enlace en sidebar, una nueva section.gx-showcase, un bloque vivo y dos detalles.
Plantilla para un pack nuevo
<section class="gx-showcase gx-section-anchor" id="pack-foo" data-pack="foo" data-status="stable">
<div class="gx-showcase__head">...</div>
<div class="gx-showcase__live">...</div>
<details>...API...</details>
<details data-code>...snippet...</details>
</section>
Layout antes que componentes
El core empieza resolviendo estructura: container, section, stack, cluster, grid y surface. Si esto está bien, luego hacen falta menos helpers y menos componentes especiales.
Panel neutro para settings, filtros o sidebars.
Más presencia visual sin caer en ruido si lo usas con intención.
La variante con ADN Ntizar más explícito para hero, dashboard principal o highlight.
API del bloque
Objects clave: .nz-container, .nz-section, .nz-stack, .nz-stack--sm, .nz-stack--md, .nz-stack--lg, .nz-cluster, .nz-cluster--between, .nz-grid, .nz-grid--2, .nz-grid--3, .nz-grid--aside y familia .nz-surface*.
HTML del bloque
<section class="nz-section">
<div class="nz-container nz-stack nz-stack--lg">
<header class="nz-stack nz-stack--sm">...</header>
<div class="nz-grid nz-grid--3">
<div class="nz-surface">A</div>
<div class="nz-surface nz-surface--glass">B</div>
<div class="nz-surface nz-surface--glass-brand">C</div>
</div>
</div>
</section>
Botones: escala corta, responsabilidades claras
Si todo compite con el mismo peso visual, el problema no es de color sino de jerarquía. El set del core intenta evitar eso.
primary y un ghost. Si pones tres CTAs de primer nivel, ya no hay CTA principal.API del bloque
Variantes públicas: .nz-btn--primary, --accent, --brand-mix, --glass, --glass-brand, --glass-accent, --secondary, --ghost, --danger, más tamaños --sm, --lg y ancho --block.
HTML del bloque
<div class="nz-cluster">
<button class="nz-btn nz-btn--primary">Guardar</button>
<button class="nz-btn nz-btn--ghost">Cancelar</button>
</div>
Botones con superficies tonales
Variantes que heredan las superficies tonales del sistema: soft (tinte suave), raised (elevada) y pressed (hundida). Cada color tiene sus 3 variantes.
SOFT — tinte suave
RAISED — elevada
PRESSED — hundida
--tonal-*-soft para acciones secundarias y filtros. --tonal-*-raised para botones de acción visibles pero no primarios. --tonal-*-pressed para estado activo/seleccionado (ej: filtro activo).API del bloque
Variantes públicas: .nz-btn--tonal-{color}-{variant} donde color es brand, accent, success, warning, danger y variant es soft, raised, pressed. Ejemplo: .nz-btn--tonal-brand-soft, .nz-btn--tonal-accent-raised, .nz-btn--tonal-danger-pressed.
HTML del bloque
<div class="nz-cluster">
<button class="nz-btn nz-btn--tonal-brand-soft">Brand soft</button>
<button class="nz-btn nz-btn--tonal-accent-raised">Accent raised</button>
<button class="nz-btn nz-btn--tonal-danger-pressed">Danger pressed</button>
</div>
Cards y variantes glass
Card no es sinónimo de superficie. Úsala cuando el bloque tenga lectura propia, head/body/footer o necesidad clara de reuso.
API del bloque
Variantes públicas: .nz-card, --soft, --interactive, --glass-soft, --glass, --glass-strong, --glass-brand, --glass-accent; partes __header, __title, __meta, __body, __footer.
HTML del bloque
<article class="nz-card nz-card--interactive">
<div class="nz-card__header">...</div>
<div class="nz-card__body">...</div>
<div class="nz-card__footer">...</div>
</article>
Badges para meta breve, no para explicar historias
Una o dos palabras. Si el mensaje requiere contexto, sube a callout o alert.
API del bloque
.nz-badge--brand existe como alias de .nz-badge--primary. Es útil para docs o migraciones donde el naming “brand” sea más claro.
HTML del bloque
<span class="nz-badge nz-badge--primary nz-badge--no-dot">Stable</span>
Alerts y callouts: estado del sistema vs guidance
La distinción importa. Alert informa sobre estado o resultado. Callout guía o contextualiza.
tip para equipos que ya usan naming informativo.API del bloque
Callouts públicos: .nz-callout--tip, .nz-callout--info, .nz-callout--warning, .nz-callout--danger. El naming antiguo --warn ya no es el canónico.
HTML del bloque
<div class="nz-alert nz-alert--warning">
<div class="nz-alert__title">Atención</div>
<div class="nz-alert__body">Revisa este paso antes de seguir.</div>
</div>
Fields básicos, label clásica y alias nuevo
El core cubre inputs simples. Los controles ricos viven en ntizar.forms.css, pero la base de formulario ya existe aquí.
API del bloque
.nz-field__label existe como alias de .nz-label. El objetivo es coexistir con markup más encapsulado sin romper el contrato existente.
HTML del bloque
<label class="nz-field">
<span class="nz-field__label">Email</span>
<input class="nz-input" type="email">
</label>
Texto, código y tablas
El core incluye lo necesario para documentación operativa: tipografía utilitaria, codeblocks y tablas simples.
<div class="nz-card">
<div class="nz-card__title">Hola mundo</div>
</div>
| Clase | Uso |
|---|---|
.nz-codeblock | Bloques de código documentados. |
.nz-table | Tabla simple para docs o admin. |
.nz-prose | Ritmo interno de texto largo. |
| Componente | Efecto | Backdrop |
|---|---|---|
| .nz-table--glass | Fondo semitransparente | blur(16px) |
| th (glass) | 50% opacidad | blur(12px) |
| td (glass) | 40% opacidad | blur(8px) |
| hover fila | Brand 8% overlay | blur(10px) |
API del bloque
Clases nuevas en v4.2: .nz-text-h1..h4, .nz-text-sm, .nz-text-muted y .nz-stack--md. v5.0 añade además .nz-card--glass-liquid, .nz-aurora-mesh, .u-nz-text-auto y .u-nz-bg-mesh.
HTML del bloque
<div class="nz-codeblock">
<div class="nz-codeblock__head">
<span class="nz-codeblock__label">CSS</span>
</div>
<pre><code>.mi-shell { ... }</code></pre>
</div>
Cinco skins, misma identidad
Cambiar data-nz-skin reescribe tokens de marca, gradientes, sombras y paleta de charts. El switcher está arriba en el sidebar para que afecte a toda la página.
--nz-color-brand
--nz-color-accent
--nz-gradient-aurora
API del bloque
Skins soportados: aurora, sunset, midnight, ocean y citrus. Se aplican con data-nz-skin en el root.
HTML del bloque
<body class="nz" data-nz-theme="light" data-nz-skin="midnight">
...
</body>
KPIs, progress, skeletons, avatares y timeline
El pack data no inventa lógica; solo da contenedores y estados visuales para interfaces cargadas de métricas.
-
Aurora v5.0 · Constellation Disruptive
-
Pack
chartsañadido -
Skins · primer sprint
API del bloque
Clases útiles: .nz-kpi, .nz-data-card, .nz-progress, .nz-meter, .nz-skeleton, .nz-avatar, .nz-avatar-stack, .nz-timeline, .nz-tag.
HTML del bloque
<div class="nz-progress nz-progress--aurora">
<div class="nz-progress__bar" style="width: 68%"></div>
</div>
Dashboard real: Chart.js con paleta leída desde tokens
El valor del pack no es dibujar la serie, sino dar contenedores, legendas y paletas coherentes con el skin activo.
Overview · últimos 30 días
- Sesiones
- Conversión
API del bloque
El JS lee --nz-chart-1..8, --nz-chart-grid y --nz-chart-axis. Cambiar el skin y volver a renderizar basta para alinear todos los gráficos.
Snippet Chart.js
const css = getComputedStyle(document.body);
const palette = Array.from({ length: 8 }, (_, i) =>
css.getPropertyValue(`--nz-chart-${i + 1}`).trim()
);
Leaflet con overlays glass y look Ntizar
El pack no decide el proveedor del mapa. Se limita a encuadre, overlays HUD, pins y popups consistentes.
- Estación principal
- Estación activa
API del bloque
Clases clave: .nz-map, overlays __overlay--*, .nz-map__legend, .nz-map__pin y .nz-map__pin--accent. El mapa sigue siendo de la librería que elijas.
Snippet Leaflet
const map = L.map('m').setView([40.4168, -3.7038], 12);
L.marker([40.4168, -3.7038], {
icon: L.divIcon({ className: 'nz-map__pin', iconSize: [22, 22] })
}).addTo(map);
Stage para three.js con frame glass
El pack viz no sustituye al motor 3D. Solo resuelve el stage, overlays y lenguaje visual para canvas/WebGL.
Aurora particle field
800 partículas, paleta sincronizada con el skin activo al arrancar.
API del bloque
Clases clave: .nz-stage, .nz-stage--hero, .nz-stage--glass-frame, .nz-stage__canvas y .nz-stage__hud.
Snippet three.js
<section class="nz-stage nz-stage--hero nz-stage--glass-frame">
<canvas class="nz-stage__canvas" id="three"></canvas>
<div class="nz-stage__hud">...</div>
</section>
Animaciones reutilizables con respeto a reduced-motion
El pack añade motion opt-in. Si el layout no funciona en estático, la animación no lo arregla.
Halo expansivo permanente.
Levitación sutil 5s.
Brillo cíclico sobre superficie.
API del bloque
El reveal on scroll necesita JS mínimo para añadir .is-visible. El resto son clases opt-in puramente CSS.
Snippet de reveal
const io = new IntersectionObserver(es =>
es.forEach(e => e.isIntersecting && e.target.classList.add('is-visible')),
{ threshold: 0.12 }
);
Formularios ricos, accesibles y listos para producto
El core cubre la base. Este pack añade controles complejos: segmented, switch, range, OTP, file drop, stepper e input groups.
Stepper
Wizard accesible para flujos por pasos.
- Datos
- Plan
- Pago
- Confirmación
Radio + check personalizados
API del bloque
Clases clave: .nz-switch, .nz-check, .nz-radio, .nz-range, .nz-otp, .nz-file, .nz-stepper, .nz-input-group, .nz-search y .nz-form-grid.
HTML del bloque
<label class="nz-switch">
<input class="nz-switch__input" type="checkbox" checked>
<span class="nz-switch__track"><span class="nz-switch__thumb"></span></span>
<span>Recibir novedades</span>
</label>
Componentes interactivos: modal, drawer, dropdown, toast, tabs…
El pack aporta estructura visual; el comportamiento sigue siendo JS mínimo del proyecto o del showcase.
Tabs
Accordion
¿Qué es Constellation?
¿Necesito React?
¿Hay dark mode?
data-nz-theme="dark".Overlays
Dropdown
Dropdown CSS-only: clic en el botón abre/cierra (checkbox + :has()). Hover también funciona.
Tooltip · Spinner · Chips
Breadcrumbs · Pagination
Command bar (cmd-K)
Una paleta de acciones inspirada en Linear / Raycast / VS Code.
API del bloque
El pack cubre modal, drawer, tabs, accordion, dropdown, toast, tooltip, breadcrumbs, segmented, chips, paginación, spinner, divider con label y command bar.
HTML del bloque
<dialog class="nz-modal">
<div class="nz-modal__panel">...</div>
</dialog>
Patrones de página listos para componer
Este pack no reemplaza producto ni contenido. Solo acelera shells y secciones de alto nivel sin inventar CSS a mano cada vez.
Starter
- Hasta 3 proyectos
- Comunidad
- Skins básicos
Pro
- Proyectos ilimitados
- Todos los skins
- Soporte prioritario
- Componentes premium
Team
- Roles y permisos
- SSO / SAML
- Auditoría
- SLA 99.9%
¿Qué incluye Constellation?
¿Funciona con Tailwind / Bootstrap?
.nz. Convive sin colisionar.¿Cómo cambio la marca?
--nz-color-brand, --nz-color-accent y los --nz-gradient-* en tu CSS posterior.Crea tu primer proyecto para empezar a iterar.
API del bloque
El pack cubre shells, hero, feature grid, pricing, faq, auth, empty/error, cta, logo cloud y banners. Son patrones, no un framework de páginas cerradas.
HTML del bloque
<div class="nz-app-shell">
<aside class="nz-app-shell__sidebar">...</aside>
<main class="nz-app-shell__main">...</main>
</div>
Bento Grid
Layout asimétrico inspirado en Apple, Linear y Figma. Celdas de diferentes tamaños que se adaptan al contenido.
Métricas en tiempo real
Grid asimétrico con celdas de diferentes tamaños. Esta celda ocupa 2 columnas y 2 filas.
Uptime
Tráfico por canal
API
P95
API del bloque
.nz-bento-grid crea un grid de 4 columnas con filas mínimas de 140px. Las celdas usan modificadores para controlar el tamaño: --span-2 (2 cols), --span-3 (3 cols), --span-full (fila completa), --tall (2 filas), --wide (2 cols). Responsive: 2 cols a 900px, 1 col a 600px.
HTML del bloque
<div class="nz-bento-grid">
<div class="nz-bento-grid__cell nz-bento-grid__cell--span-2 nz-bento-grid__cell--tall">
<!-- Celda grande 2x2 -->
</div>
<div class="nz-bento-grid__cell nz-bento-grid__cell--tall">
<!-- Celda alta 1x2 -->
</div>
<div class="nz-bento-grid__cell nz-bento-grid__cell--span-2">
<!-- Celda ancha 2x1 -->
</div>
</div>
Capa disruptiva: Liquid Glass real, OKLCH, multi-axis y mesh
ntizar.next.css es opt-in y aditivo. Añade lo que faltaba para que Aurora juegue en el campo de los design systems 2026 sin romper una sola línea del core. Prueba los toggles del sidebar (Shape · Density · Motion · Color system) y observa cómo este bloque y todo el showcase reaccionan en tiempo real.
Mesh-gradient animado, 0 KB de imágenes.
Cuatro radial-gradient en OKLCH apilados sobre --nz-mesh-1..4. Variantes: --animated respira, --glass añade veladura, --hero ocupa 80vh.
Specular highlight
Mueve el cursor por encima. --nz-mx/--nz-my se actualizan y el brillo sigue al puntero.
Chromatic edge
Borde de 1px con dispersión cyan→magenta sutil. Simula refracción de vidrio premium.
Dual inset shadow
Highlight superior + sombra interior inferior = vidrio con grosor real, no solo translúcido.
Multi-axis theming
Cuatro ejes ortogonales que combinan libremente con data-nz-skin y data-nz-theme:
data-nz-shape—default·sharp·rounded·brutalistdata-nz-density—comfortable·compact·spaciousdata-nz-motion—standard·springy·calm·nonedata-nz-color-system—hex·oklch
Los toggles del sidebar reasignan el atributo en <body>. Toda la página se reescribe sin recargar.
Accesibilidad como feature
Tres añadidos clave:
- Skin
contrast— WCAG AAA, fondos planos, focus dual ring negro+amarillo. Usable de verdad para apps de salud o banca. - Forced-colors mode — overrides para Windows High Contrast. Mapeamos a
Canvas,CanvasText,Highlight,Mark. - Auto-contrast —
--nz-text-autoconlight-dark(). Usa.u-nz-text-autosobre cualquier surface.
Pulsa Skin · Contrast · AAA arriba para ver el modo accesible activo.
OKLCH color system
data-nz-color-system="oklch"Escalas perceptualmente uniformes derivadas de --nz-hue-brand (245°) y --nz-hue-accent (47°). Cambia un único hue y toda la escala se recalcula con curva de luminosidad consistente.
API del bloque
- Liquid Glass:
.nz-card--glass-liquid,.nz-surface--glass-liquid,.nz-btn--glass-liquid+ tinte--brand/--accent/--aurora. - Aurora Mesh:
.nz-aurora-mesh+ modificadores--animated,--glass,--hero. Utility.u-nz-bg-mesh. - Multi-axis:
data-nz-shape,data-nz-density,data-nz-motion,data-nz-color-systemen el root.nz. - Skin AAA:
data-nz-skin="contrast". - Auto-contrast:
--nz-text-autoy.u-nz-text-auto(basado enlight-dark()). - Tokens nuevos:
--nz-hue-brand,--nz-hue-accent,--nz-chroma,--nz-oklch-brand-50..900,--nz-oklch-accent-50..900,--nz-mesh-1..4,--nz-mx/--nz-my.
Forced-colors mode (@media (forced-colors: active)) y prefers-reduced-motion: reduce están cableados — los efectos se desactivan automáticamente en esos contextos.
HTML mínimo del bloque
<link rel="stylesheet" href="ntizar.next.css">
<body class="nz"
data-nz-theme="light"
data-nz-skin="aurora"
data-nz-shape="default"
data-nz-density="comfortable"
data-nz-motion="standard">
<section class="nz-aurora-mesh nz-aurora-mesh--animated nz-aurora-mesh--glass nz-aurora-mesh--hero">
<h1>Hero con mesh animado</h1>
</section>
<article class="nz-card--glass-liquid nz-card--glass-liquid-aurora">
<h2>Liquid Glass real</h2>
</article>
</body>
<script>
// 5 líneas opcionales: specular highlight sigue al cursor
document.querySelectorAll('[data-liquid]').forEach(el => {
el.addEventListener('pointermove', e => {
const r = el.getBoundingClientRect();
el.style.setProperty('--nz-mx', ((e.clientX - r.left) / r.width * 100) + '%');
el.style.setProperty('--nz-my', ((e.clientY - r.top ) / r.height * 100) + '%');
});
});
</script>
Superficies con identidad de color
Cada color (brand, accent, success, danger, warning) tiene 4 variantes: soft (tinte suave), raised (elevada con borde), pressed (hundida con inset shadow), glass (backdrop-blur translúcido). Funciona en light y dark.
Tema light
Brand
Accent
Estados
Tema dark
Brand
Accent
Ver código
<!-- Soft: tinte muy suave -->
<div class="nz-surface nz-surface--brand-soft">...</div>
<!-- Raised: elevada con borde + sombra -->
<div class="nz-surface nz-surface--brand-raised">...</div>
<!-- Pressed: hundida con inset shadow -->
<div class="nz-surface nz-surface--brand-pressed">...</div>
<!-- Glass: backdrop-blur translúcido -->
<div class="nz-surface nz-surface--brand-glass">...</div>
<!-- Variantes: brand, accent, success, danger, warning -->
<div class="nz-surface nz-surface--success-raised">...</div>
<div class="nz-surface nz-surface--danger-soft">...</div>
<div class="nz-surface nz-surface--warning-pressed">...</div>
<div class="nz-surface nz-surface--warning-glass">...</div>
Antes del catálogo: las decisiones que no conviene saltarse
El sistema se entiende mejor desde sus decisiones de uso que desde la lista bruta de clases. Esto viene rescatado de la demo anterior porque era de lo poco que sí aportaba contexto real.
Si un sistema visual existe pero no aparece al principio de la documentación, para terceros es casi invisible.
- README para explicar contrato y adopción.
- Gallery para enseñar qué usar, cuándo y cómo.
- Referencia para cerrar la API pública sin ambigüedades.
Si el proyecto ya usa Tailwind, Bootstrap u otro sistema, Aurora no debe entrar entero por defecto.
- Usa todo el core cuando la app nazca sobre Aurora.
- Usa tokens o piezas concretas cuando la app ya tenga framework.
- Usa glass con intención, no como textura automática en todas partes.
ntizar.cssCuando: siempre que el proyecto nuevo quiera usar Aurora como base.
No lo hagas así: no mezcles la API nueva con clases legacy tipo .card o .btn.
.nzCuando: en todo el body si la app nace con Aurora, o en un wrapper si quieres aislar una zona.
No lo hagas así: no esperes que Aurora estilice nada fuera de .nz.
Cuando: usa light por defecto; fuerza dark solo si el producto lo necesita.
No lo hagas así: no edites el core para recolorear la marca; sobreescribe tokens.
| Opción | Úsala para | Evítala cuando |
|---|---|---|
.nz-surface | Paneles neutros, filtros, grupos de información o sidebars. | Necesites contenido con header/body/footer reutilizable; ahí conviene .nz-card. |
.nz-surface--glass | Bloques destacados, heroes, demos, zonas premium o una capa visual con más presencia. | La pantalla ya tenga demasiada textura o si todo se vuelve visualmente pesado. |
.nz-surface--glass-brand | Paneles con ADN Ntizar más marcado: dashboards principales, heroes o estados activos. | Necesites una superficie neutra o documental. |
.nz-card | Items de dashboard, resultados, summaries, módulos reutilizables. | Solo quieras agrupar contenido sin semántica de card; usa surface. |
.nz-card--interactive | Cards clicables, listados o piezas que deben sentirse activas. | La card no sea interactiva; el hover extra añade ruido innecesario. |
.nz-btn--primary | La acción principal del bloque o formulario. | Tengas varias acciones con el mismo peso; entonces usa secondary o ghost. |
.nz-btn--ghost | Cancelar, atrás, cerrar o acciones auxiliares. | La acción deba competir visualmente con el CTA principal. |
.nz-btn--glass* | Toolbars, acciones premium o contextos con glass sin perder legibilidad. | El CTA principal deba leerse inmediato a distancia; ahí gana primary o accent. |
.nz-alert--warning | Riesgo moderado, aviso operacional o decisión que requiere atención. | No haya una consecuencia clara; en ese caso mejor callout o ayuda inline. |
.nz-callout--tip | Explicaciones, notas de docs, onboarding o guidance de IA. | Necesites feedback de estado del sistema; para eso usa alert. |
Root y theme
Si una clase o token no está aquí, no cuenta como API pública estable del core.
| API | Uso |
|---|---|
.nz | Activa la base tipográfica, focus, selection y componentes dentro del wrapper. |
data-nz-theme="light" | Fuerza el tema claro. |
data-nz-theme="dark" | Fuerza el tema oscuro. |
data-nz-skin="aurora|sunset|midnight|ocean|citrus|contrast" | Aplica skin de identidad cuando cargaste ntizar.themes.css (los 5 primeros) o ntizar.next.css (contrast, WCAG AAA). |
data-nz-shape="default|sharp|rounded|brutalist" | v5. Curvatura global. brutalist usa sombras sólidas. Requiere ntizar.next.css. |
data-nz-density="comfortable|compact|spacious" | v5. Escala de spacing y tamaño de tipo. Requiere ntizar.next.css. |
data-nz-motion="standard|springy|calm|none" | v5. Personalidad del motion (duración + easing). Requiere ntizar.next.css. |
data-nz-color-system="hex|oklch" | v5. Activa escalas OKLCH derivadas de --nz-hue-brand/--nz-hue-accent. Requiere ntizar.next.css. |
--nz-* | Familia completa de tokens del sistema. |
Objects
Checklist de composición y layout.
| Clase | Uso |
|---|---|
.nz-container | Anchura base de página. |
.nz-container--narrow | Docs, forms o contenido con lectura larga. |
.nz-container--wide | Dashboards o pantallas más abiertas. |
.nz-section | Ritmo vertical entre secciones principales. |
.nz-stack | Apilado vertical por defecto. |
.nz-stack--sm | Stack con menor separación. |
.nz-stack--md | Stack con separación intermedia. |
.nz-stack--lg | Stack con mayor separación. |
.nz-cluster | Fila flexible con wrap. |
.nz-cluster--between | Distribuye extremos y mantiene gap interno. |
.nz-grid | Grid base. |
.nz-grid--2 | Dos columnas responsive. |
.nz-grid--3 | Tres columnas responsive. |
.nz-grid--aside | Contenido principal más columna lateral. |
.nz-surface | Panel neutro. |
.nz-surface--soft | Panel secundario sin tanto peso. |
.nz-surface--raised | Panel protagonista. |
.nz-surface--glass-soft | Glass ligero para overlays suaves. |
.nz-surface--glass | Glass estándar para paneles premium. |
.nz-surface--glass-strong | Glass más intenso para heroes o foco visual fuerte. |
.nz-surface--glass-brand | Glass con tinte de marca Aurora. |
.nz-surface--glass-accent | Glass con sesgo naranja/acento. |
.nz-divider | Separador horizontal. |
.nz-prose | Ritmo interno para texto y contenido largo. |
Components
Botones, badges, cards, fields, feedback y documentación base.
| Clase | Uso |
|---|---|
.nz-btn | Base de botón o link accionable. |
.nz-btn--primary | CTA principal. |
.nz-btn--accent | CTA destacado alternativo. |
.nz-btn--brand-mix | CTA de marca completa azul-naranja. |
.nz-btn--glass | Acción secundaria con liquid glass neutro. |
.nz-btn--glass-brand | Acción glass con sesgo azul/marca. |
.nz-btn--glass-accent | Acción glass con sesgo acento. |
.nz-btn--secondary | Acción importante pero no principal. |
.nz-btn--ghost | Acción de baja prioridad. |
.nz-btn--danger | Acción destructiva. |
.nz-btn--sm | Botón compacto. |
.nz-btn--lg | Botón grande. |
.nz-btn--block | Botón a ancho completo. |
.nz-badge | Meta o estado corto. |
.nz-badge--neutral | Estado neutro. |
.nz-badge--primary | Meta asociada a core o brand. |
.nz-badge--brand | Alias de .nz-badge--primary. |
.nz-badge--accent | Acento o lanzamiento. |
.nz-badge--glass | Badge glass neutro. |
.nz-badge--glass-brand | Badge glass con marca Aurora. |
.nz-badge--glass-accent | Badge glass con tono cálido. |
.nz-badge--success | Estado positivo. |
.nz-badge--warning | Requiere atención. |
.nz-badge--danger | Bloqueo o riesgo. |
.nz-badge--no-dot | Badge sin indicador circular. |
.nz-card | Contenedor reusable de información. |
.nz-card--soft | Card más ligera. |
.nz-card--glass-soft | Card glass suave. |
.nz-card--glass | Card glass estándar. |
.nz-card--glass-strong | Card glass más intensa. |
.nz-card--glass-brand | Card glass con ADN Aurora. |
.nz-card--glass-accent | Card glass con tono acento. |
.nz-card--interactive | Card con hover y sensación clicable. |
.nz-card__header | Cabecera de card. |
.nz-card__title | Título de card. |
.nz-card__meta | Meta secundaria de card. |
.nz-card__body | Cuerpo principal. |
.nz-card__footer | Pie con acciones o resumen. |
.nz-field | Grupo de label, control y ayuda. |
.nz-label | Etiqueta de control. |
.nz-field__label | Alias de .nz-label. |
.nz-help | Ayuda inline normal. |
.nz-help--error | Ayuda inline de error. |
.nz-input | Input de una línea. |
.nz-select | Select nativo estilizado. |
.nz-textarea | Textarea base. |
.nz-alert | Feedback de estado general. |
.nz-alert--success | Confirmación o estado positivo. |
.nz-alert--warning | Riesgo moderado. |
.nz-alert--danger | Error o bloqueo. |
.nz-alert__title | Título del alert. |
.nz-alert__body | Cuerpo del alert. |
.nz-callout | Contexto, guidance o docs. |
.nz-callout--tip | Consejo o explicación. |
.nz-callout--info | Alias suave de .nz-callout--tip. |
.nz-callout--warning | Advertencia de uso. |
.nz-callout--danger | Riesgo serio a nivel de guidance. |
.nz-callout__title | Título del callout. |
.nz-callout__body | Cuerpo del callout. |
.nz-codeblock | Snippet o bloque de código documentado. |
.nz-codeblock__head | Cabecera del snippet. |
.nz-codeblock__label | Etiqueta de lenguaje. |
.nz-codeblock__hint | Texto auxiliar del snippet. |
.nz-table-wrap | Contenedor con scroll de tabla. |
.nz-table | Tabla simple para admin o docs. |
.nz-text-h1 | Clase tipográfica para titular de máximo rango. |
.nz-text-h2 | Clase tipográfica para subtítulo principal. |
.nz-text-h3 | Clase tipográfica para título intermedio. |
.nz-text-h4 | Clase tipográfica para título compacto. |
.nz-text-sm | Texto breve o metadato compacto. |
.nz-text-muted | Texto secundario atenuado. |
Utilities
Atómicas, pocas y deliberadas.
| Clase | Uso |
|---|---|
.u-nz-text-muted | Fuerza texto muted. |
.u-nz-text-strong | Fuerza texto fuerte. |
.u-nz-text-brand | Aplica color de marca. |
.u-nz-text-gradient | Texto con gradiente de marca. |
.u-nz-text-gradient-brand | Texto con gradiente azul principal. |
.u-nz-full-width | Anchura completa. |
.u-nz-sr-only | Texto solo para lectores de pantalla. |
.u-nz-text-mono | Fuerza fuente monoespaciada. |
.u-nz-num | Números tabulares. |
.u-nz-glow | Aplica glow de marca. |
.u-nz-glow-accent | Aplica glow acento. |
.u-nz-glow-aurora | Aplica glow aurora. |
.u-nz-bg-brand | Fondo brand con texto on-brand. |
.u-nz-bg-accent | Fondo accent con texto on-brand. |
.u-nz-bg-aurora | Fondo aurora con texto on-brand. |
.u-nz-rounded-sm/md/lg/xl/pill | Radius utilitario. |
.u-nz-gap-1..5 | Gap utilitario. |
.u-nz-aspect-square/video/cinema | Aspect-ratio rápido. |
.u-nz-hide-sm | Oculta en pantallas pequeñas. |
.u-nz-show-sm-only | Muestra solo en pantallas pequeñas. |