Saltar al contenido principal
Neural UIv2.0.0Documentación
Ver v1 GitHub

Instalación

Instala Core 2.x, carga sus estilos públicos y renderiza un componente Angular funcional.

Instala Neural UI 2

Ejecuta el comando desde el directorio de tu aplicación Angular 22. El rango ^2 selecciona expresamente Neural UI 2.x, también cuando exista una versión mayor posterior. Neural Icons no es obligatorio.

Terminal
npm install @neural-ui/core@^2

Alinea los peers necesarios

Si faltan CDK o los peers de schematics, añádelos con versiones alineadas con tus herramientas Angular 22. Esta es una combinación compatible concreta, no una instrucción para bajar de versión una revisión ya compatible. Mantén TypeScript y RxJS en los rangos de Requisitos.

Terminal
npm install @angular/cdk@22.2.2
npm install --save-dev @angular-devkit/schematics@22.2.2 @schematics/angular@22.2.2

Carga los estilos públicos

Añade esta línea una sola vez a src/styles.scss, la hoja global que incluye Angular. Si tu proyecto utiliza styles.css, crea una hoja SCSS y referencia el archivo en angular.json → projects → tu proyecto → architect → build → options → styles.

El import carga los estilos compartidos y los tokens de Core. No necesitas un preset ni un provider global de Neural para renderizar un componente básico.

styles.scss
@use '@neural-ui/core/styles' as *;

Renderiza tu primer componente

En una aplicación recién generada, sustituye src/app/app.ts por este componente raíz. Conserva el selector app-root de src/index.html. En una aplicación existente, añade NeuButtonComponent a imports del componente que renderiza el botón.

Button decora un botón nativo: utiliza button[neu-button], no un elemento personalizado neu-button. El ejemplo gestiona un evento real y muestra un contador.

src/app/app.ts
import { Component, signal } from '@angular/core';
import { NeuButtonComponent } from '@neural-ui/core/button';

@Component({
  selector: 'app-root',
  imports: [NeuButtonComponent],
  template: `
    <button
      neu-button
      type="button"
      (neuClick)="increment()"
    >
      Run interaction
    </button>
    <output aria-live="polite">Interactions: {{ clicks() }}</output>
  `,
})
export class App {
  readonly clicks = signal(0);
  increment(): void {
    this.clicks.update((count) => count + 1);
  }
}

Arranca y comprueba el resultado

Conserva el bootstrap de src/main.ts que se muestra a continuación. Arranca Angular, abre la URL que indique y pulsa Ejecutar interacción. Debes ver un botón con estilo y un contador que aumenta.

Si el selector no se reconoce, revisa imports. Si faltan los estilos compartidos, revisa el entrypoint SCSS global. El clic debe actualizar el signal mostrado sin añadir un provider de Neural.

src/main.ts
import { bootstrapApplication } from '@angular/platform-browser';
import { appConfig } from './app/app.config';
import { App } from './app/app';

bootstrapApplication(App, appConfig).catch((error) => console.error(error));

Comando de desarrollo

Ejecuta este comando desde el mismo directorio. La dirección del servidor corresponde a tu aplicación Angular, no a la librería.

Terminal
npm start

Configuración global opcional

Utiliza provideNeuralUI solo cuando necesites una opción global admitida: locale, timeZone, now o theme.preset. No activa la hidratación, elige el modo oscuro, instala iconos ni traduce la aplicación.

Configuración CLI y generadores opcionales

¿Prefieres automatizar con Angular CLI? Consulta Schematics para ng add y los generadores incluidos en Core. Si ya seguiste la instalación manual anterior, no vuelvas a registrar los estilos de Core: utiliza el comando para el paquete instalado con --skipStyles. Un generador no sustituye los imports de componentes, handlers ni rutas de aplicación explicados aquí.

Resuelve problemas habituales de instalación

Comprueba el contrato correspondiente antes de añadir otro provider o forzar un refresco. Estos problemas suelen estar en la integración: imports, estilos globales, versiones de Angular o estado gobernado por aplicación. Continúa con Signal Forms y Propiedad del estado para ver ejemplos completos.

Síntoma
Comprueba
Conflicto de dependencias peerUtiliza los rangos compatibles con Angular 22; revisa npm ls. No los omitas con --force o --legacy-peer-deps.
Elemento o propiedad desconocidosImporta el componente desde su entrypoint público en el componente propietario del template. Comprueba selector y API exactos.
Faltan estilos compartidosCarga los estilos de Core una sola vez en el build global, no en SCSS encapsulado de componente. Elige import manual o registro de ng-add.
El estado solicitado no cambiaPara inputs gobernados por aplicación, acepta el output de propuesta documentado y actualiza el mismo signal que recibe el input.
No hay value accessorUtiliza FormField de @angular/forms/signals o el binding documentado del modelo. No añadas formControlName ni ngModel a controles signal de Neural.
La clave de icono no muestra nadaProyecta un SVG o registra un resolver para esa clave. Los iconos estructurales de Core no son un catálogo de aplicación.

Neural Icons opcional

Instala estos paquetes independientes solo si quieres utilizar Neural Icons. Core ya proporciona sus iconos estructurales. Puedes proyectar tu SVG sin instalar una librería de iconos.

Terminal
npm install @neural-icons/angular @neural-icons/core