Aurora, entera.
Tokens, core y packs vivos.
Un solo lugar para ver qué usar, cuándo y cómo. Todo el contenido de esta página es HTML estático con las clases reales del sistema: lo que ves aquí es exactamente lo que obtienes al enlazar los CSS.
Tokens: la única fuente de verdad visual
Color, tipografía, espaciado, radios y sombras. Todo lo demás se compone a partir de aquí. Los valores mostrados son literales del CSS publicado.
Color y superficie
Tipografía
Espaciado (de 0.25rem a 4rem)
Radios — cinco niveles, ni uno más
Sombras — volumen e identidad
Cómo consumir los tokens
/* Todo via variables — nunca hex sueltos en tu CSS */
:root {
--nz-color-brand: #2563eb;
--nz-color-accent: #f97316;
--nz-gradient-aurora: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
}
.mi-panel {
background: var(--nz-surface-glass);
border-radius: var(--nz-radius-lg);
box-shadow: var(--nz-shadow-brand);
}Reglas del sistema
Aurora no escala por cantidad de clases, sino por límites claros. Estas cuatro reglas mantienen el sistema coherente cuando lo usan muchos proyectos.
.nz con data-nz-theme y data-nz-skin en el body. Sin root, no hay contrato..nz-*, utilidades .u-nz-*, tokens --nz-*. Lo que no aparece en esta galería no existe como API estable.@layer: tokens → base → objects → components → utilities. Tus utilidades personalizadas siempre ganan sin !important si usan la última capa.
Estructura mínima de una página Aurora
<body class="nz" data-nz-theme="light" data-nz-skin="aurora">
<div class="nz-container">
<section class="nz-section nz-stack nz-stack--lg">
<header class="nz-stack nz-stack--sm">…</header>
<div class="nz-grid nz-grid--3">…</div>
</section>
</div>
</body>Layout: contenedores, stacks, grids y surfaces
La estructura primero. Estas clases definen el ritmo de cualquier página sin una línea de CSS propio.
Grids — 2, 3 y aside
Subgrid — grids anidadas alineadas con el padre
Superficies — glass y tonales
Cluster — líneas de acciones
Snippet — layout
<div class="nz-grid nz-grid--3">…</div>
<div class="nz-grid nz-grid--aside">principal + aside</div>
<div class="nz-cluster nz-cluster--between">…</div>
<div class="nz-surface nz-surface--glass-brand">…</div>Botones: escala corta, jerarquía clara
Si todo compite con el mismo peso visual, el problema no es de color sino de jerarquía. Una acción primaria por vista; el resto, variantes.
Variantes públicas
Tamaños y ancho completo
Tonales — soft · raised · pressed (5 colores × 3)
Snippet — botones
<button class="nz-btn nz-btn--primary">Guardar</button>
<button class="nz-btn nz-btn--ghost">Cancelar</button>
<button class="nz-btn nz-btn--tonal-accent-raised">Accent raised</button>
<button class="nz-btn nz-btn--primary nz-btn--lg nz-btn--block">CTA</button>Cards con lectura propia
Card no es sinónimo de superficie: úsala cuando el bloque tenga head/body/footer o necesidad clara de reuso.
Snippet — cards
<article class="nz-card nz-card--interactive">
<div class="nz-card__header">
<div class="nz-card__title">Título</div>
<div class="nz-card__meta">meta</div>
</div>
<div class="nz-card__body">…</div>
<div class="nz-card__footer">…</div>
</article>Badges: meta breve, no historias
Una o dos palabras. Si el mensaje necesita contexto, sube a callout o alert.
Snippet — badges
<span class="nz-badge nz-badge--success">Operativo</span>
<span class="nz-badge nz-badge--glass-brand nz-badge--no-dot">v6.1</span>Alerts y callouts: estado vs guidance
La distinción importa: alert informa de estado o resultado del sistema; callout guía o contextualiza al usuario.
.u-nz-num en tablas de métricas: los dígitos tabulares alinean columnas.Fields: la base de formulario
El core cubre inputs simples. Los controles ricos (switch, OTP, stepper, dropzones) viven en el pack forms.
Snippet — fields
<div class="nz-field">
<label class="nz-label" for="x">Nombre</label>
<input class="nz-input" id="x" type="text">
<span class="nz-help">texto de ayuda</span>
</div>Themes y skins
El tema (light/dark) y la skin (aurora/ocean/sunset/citrus/midnight) son ejes independientes. Prueba los controles de la izquierda — todo lo que ves se recolorea.
Data: KPIs, stats, meters, progreso y timeline
El lenguaje de los dashboards. Números que se leen de un vistazo y estado visible sin gráficas.
Snippet — data
<div class="nz-kpi">
<span class="nz-kpi__label">Ingresos</span>
<span class="nz-kpi__value">€48.2k</span>
<span class="nz-kpi__delta">▲ 12.4%</span>
</div>
<div class="nz-progress"><div class="nz-progress__bar" style="width:78%"></div></div>Charts: gráficas CSS-only
Donuts, sparklines y ejes sin librerías. La librería de gráficas solo entra cuando necesites tooltips e interacción real.
Maps: Leaflet envuelto en marco Aurora
El pack no reimplementa mapas — viste Leaflet con superficies glass, pins con pulso, leyendas y controles coherentes con el sistema.
.nz-map: los pins usan las mismas variables de marca, así el mapa se recolorea con la skin.
Viz: fondos decorativos — orbes, mallas, ruido
Las capas que hacen que un fondo blanco no se vea plano: orbes con blur, aurora backgrounds, grids de puntos, scanlines y grano sutil.
Motion: animaciones que respetan prefers-reduced-motion
Entradas, flotados, glow pulsante y hover-lift. Nunca decoraciones que consuman CPU gratis.
Snippet — motion
<div class="nz-card nz-anim-rise nz-anim--delay-2">…</div>
<div class="nz-card nz-anim-float">…</div>
<div class="nz-card nz-hover-lift">…</div>
<div class="nz-reveal nz-reveal--scroll">revela al hacer scroll</div>Forms: controles ricos sobre la base del core
Switches, checkboxes con checkmark animado, OTP segmentado, steppers y validación inline. Todo accesible por defecto.
Snippet — forms
<label class="nz-switch"><input type="checkbox"><span class="nz-switch__track"></span></label>
<label class="nz-checkbox"><input type="checkbox"><span class="nz-checkbox__box"></span> Texto</label>
<div class="nz-otp"><input class="nz-input nz-otp__cell" maxlength="1">…</div>UI: tabs, acordeones, dropdowns, modales, toasts
Interactividad completa sin una línea de JavaScript — el pack usa CSS puro con detalles nativos y :has().
Pestañas con underline deslizante. La clase is-active marca la seleccionada — en producción se gestiona con un listener de 5 líneas.
¿Aurora funciona sin build?
¿Y offline?
La release v6.1 está en el CDN.
Quedan 2 tokens sin definir.
El deploy devolvió 502.
Snippet — ui
<div class="nz-tabs"><div class="nz-tabs__list"><button class="nz-tabs__btn is-active">…</button></div></div>
<details class="nz-accordion"><summary>…</summary><div class="nz-accordion__body">…</div></details>
<div class="nz-toast nz-toast--success">…</div>Patterns: hero, bento, pricing, testimonials, FAQ
Composiciones completas listas para landing pages. Un patrón = una sección entera con su tipografía, espaciados y CTA resueltos.
Diseña una vez.
Escalalo a mil vistas.
Un token cambia y todo el producto se recolorea. Sin refactor, sin capturas rotas.
- Core + themes
- Galería de referencia
- Los 12 packs
- Liquid glass + Three.js
- Soporte prioritario
- Todo lo de Pro
- Skins a medida
«Aurora nos ahorró el sprint completo de design system. Los tokens hacen el trabajo que antes hacía una hoja de estilos.»
¿Puedo usarlo en proyectos comerciales?
¿Funciona con React o Vue?
Next: liquid glass real, OKLCH y ejes multi-axis
La frontera experimental. Pasa el cursor sobre el panel — el reflejo especular sigue al puntero. Prueba los ejes de forma y densidad en la barra superior.
data-nz-shape (suave/redondo/cuadrado), data-nz-density (compacto/cómodo) y data-nz-motion (reducido) se combinan entre sí y con las skins. Los controles de la cabecera aplican estos ejes a toda la página.
Three.js: escenas 3D reutilizables
Cuatro scenes importables — icosaedro, grafo, partículas y anillos — con fallback automático si WebGL no está disponible. Debajo, el icosaedro real corriendo con OrbitControls.
Snippet — tres escenas
<script type="importmap">{"imports":{"three":"https://cdn.jsdelivr.net/npm/three@0.164/build/three.module.js","three/addons/":"https://cdn.jsdelivr.net/npm/three@0.164/examples/jsm/"}}</script>
<script type="module">
import { crearBase, crearIcosaedro } from './three-scenes.js';
const base = crearBase(document.querySelector('.nz-three'));
crearIcosaedro(base.scene);
base.animate();
</script>AI-native primitives
Primitivas para interfaces de agente y chat — thinking traces, streaming, approval (human-in-the-loop), tool chips, task rows, prompt bar, recommendation, context cards, diff y code blocks. Estilo Núcleo limpio, monocromo azul, light por defecto.
El mercado sube un 12% en ventas
¿Coloco este pedido?
Reponer conos de CCone King con plazo 7 días
export function churn() {
−const base = await dairy.fetch({ flavor });
+const base = await dairy.fetch({ flavor, fresh: true });
Demo completo con los 20 primitivos: demo-ai.html.
Snippet — CDN + contenedor
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Ntizar/Ntizar-Aurora@master/ntizar.ai.css">
<body class="nz" data-nz-theme="light" data-nz-skin="aurora">
<div class="nz-thinking is-open">…</div>
</body>Utilities: atómicas, pocas y deliberadas
Prefijo .u-nz-*. Si necesitas una utilidad nueva, probablemente el problema sea de composición, no de helpers.
| Clase | Qué hace |
|---|---|
.u-nz-text-muted / strong | Fuerza jerarquía tipográfica puntual. |
.u-nz-full-width | Anchura completa fuera de grid. |
.u-nz-aspect-square/video/cinema | Ratio fijo para medios. |
.u-nz-hide-sm / show-sm-only | Responsive sin media queries propias. |
.u-nz-gap-1..5 | Gaps puntuales sobre la escala. |
API de referencia
Lo que no está aquí no existe como contrato estable. Cada clase de esta tabla está viva en la sección correspondiente de arriba.
Root & contrato
| Token / atributo | Qué define |
|---|---|
.nz + data-nz-theme | Root obligatorio y modo claro/oscuro. |
data-nz-skin | aurora · ocean · sunset · citrus · midnight · contrast. |
--nz-color-brand / --nz-color-accent | Marca azul (#2563eb) y acento naranja (#f97316), máximo 5 momentos saturados. |
--nz-gradient-aurora | Degradado monocromo azul — nunca azul→naranja (muerde a púrpura en sRGB). |
--nz-space-1..8 | Escala de separación que usan stacks, grids y cards. |
--nz-radius-sm/md/lg/xl/pill | Cinco niveles de radio — sin inventos por pack. |
@layer | tokens → base → objects → components → utilities. |
Componentes por pack
| Pack | Componentes clave | Estado |
|---|---|---|
ntizar.css | container, section, stack, cluster, grid, surface, button, card, badge, alert, callout, field, table, codeblock | Estable |
ntizar.themes.css | light/dark + skins aurora, ocean, sunset, citrus, midnight | Estable |
ntizar.data.css | kpi, stat-line, stat-tile, stat-bar, meter, progress, timeline, avatar-stack, tag, skeleton, empty-state | Estable |
ntizar.charts.css | chart, chart__legend, donut (--p), sparkline, axis | Estable |
ntizar.maps.css | map (+glass/light/dark), pin, pin-pulse, legend, controls, search, scale, attribution | Estable |
ntizar.viz.css | stage, orb, glow-ring, aurora-bg, grid-bg, dot-bg, scanlines, noise, spotlight | Estable |
ntizar.motion.css | anim fade-in/rise/scale-in/float/glow-pulse/marquee, reveal, hover-lift, delays | Estable |
ntizar.forms.css | switch, checkbox, radio, otp, stepper, combo, dropzone, file, rating, slider, validation | Estable |
ntizar.ui.css | tabs, accordion, modal, drawer, dropdown, toast, tooltip, popover, pagination, breadcrumb, toolbar, tree, command, status, segmented, steps, context-menu | Estable |
ntizar.patterns.css | hero, bento, feature-row, pricing, testimonial, faq, cta-banner, blog-card, auth-form, profile, kanban, wizard, notification-center, comment-thread | Estable |
ntizar.next.css | glass-liquid-live, tile-live, ejes shape/density/motion/color-system, OKLCH | Beta |
ntizar.three.css | nz-three (+hero/md/sm), canvas, overlay, fallback · crearEscena, crearEscenasAuto (icosaedro/grafo/partículas/anillos) | Estable |
ntizar.ai.css | nz-loader, nz-thinking, nz-stream, nz-approval, nz-toolchips, nz-taskrow, nz-chat, nz-promptbar, nz-recommend, nz-contextcard, nz-difftable, nz-recordtable, nz-filtertable, nz-sidenav, nz-command, nz-flow, nz-insight, nz-codeblock--diff, nz-finetune, nz-selection | Estable |
Utilidades
| Clase | Qué hace |
|---|---|
.u-nz-text-muted / strong / brand / gradient-brand | Tipografía puntual sin componente. |
.u-nz-bg-brand / accent / aurora | Fondo con color de marca y texto on-color resuelto. |
.u-nz-glow / glow-accent / glow-aurora | Halo de profundidad o identidad. |
.u-nz-rounded-sm/md/lg/xl/pill | Radio utilitario sobre la escala del sistema. |
.u-nz-num / text-mono / full-width / sr-only | Números tabulares, mono, ancho completo, accesible oculto. |
.u-nz-gap-1..5 · aspect-square/video/cinema · hide-sm / show-sm-only | Gaps, ratios fijos y responsive sin media queries propias. |