Run the command from your Angular 22 application directory. The ^2 range deliberately selects Neural UI 2.x, including when a newer major exists. Neural Icons is not required.
If your application is missing CDK or the schematics peers, add them using the versions aligned with your Angular 22 toolchain. This is a concrete compatible combination, not a request to downgrade an existing compatible patch. Keep TypeScript and RxJS in the ranges listed under Requirements.
Add this line once to src/styles.scss, the global stylesheet included by Angular. If your project uses styles.css, create a SCSS file and reference it in angular.json โ projects โ your project โ architect โ build โ options โ styles.
The import loads shared Core styles and tokens. You do not need a theme preset or global Neural provider to render a basic component.
In a newly generated application, replace src/app/app.ts with this root component. It retains the app-root selector used by src/index.html. In an existing application, add NeuButtonComponent to the imports of the component that renders the button instead.
Button decorates a native button; use button[neu-button], not a custom neu-button element. The example handles a real event and displays a count.
Keep the generated src/main.ts bootstrap shown below. Start Angular, open the URL it prints, then click Run interaction. You should see a styled button and a count that increases.
If the selector is unknown, check imports. If shared styles are missing, check the global SCSS entrypoint. A click must update the displayed signal without any extra Neural provider.
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));
Use provideNeuralUI only when you need a supported global option: locale, timeZone, now or theme.preset. It does not enable hydration, choose dark mode, install icons or translate your application.
Prefer Angular CLI automation? Use the Schematics guide for ng add and the generators included in Core. If you already followed the manual installation above, do not register Core styles again: use the existing-package command with --skipStyles. A generator does not replace the component imports, application handlers or routes explained here.
Check the owning contract before adding another provider or forcing a refresh. These problems normally come from the integration boundary: imports, global styles, Angular versions or application-owned state. Continue with Signal Forms and State ownership for complete examples.
Symptom
Check
Peer dependency conflict
Use the Angular 22 compatibility ranges; inspect npm ls. Do not bypass them with --force or --legacy-peer-deps.
Unknown element or property
Import the component from its public entrypoint in the component that owns the template. Check its exact selector and API.
Missing shared styles
Load Core styles once in the global build, not in component-scoped SCSS. Choose manual import or ng-add style registration.
Requested state does not change
For application-owned inputs, accept the documented proposal output and update the same signal passed to the input.
No value accessor
Use FormField from @angular/forms/signals or the documented model binding. Do not attach formControlName or ngModel to Neural signal controls.
Icon key displays nothing
Project an SVG or register a resolver for that key. Core structural icons are not an application icon catalog.
Install these separate packages only if you want Neural Icons in your application. Core already supplies its structural affordances. You can project a custom SVG without installing an icon library.