
Angular 21.1 is out, and while most of the new features are still experimental, the release gives us a solid preview of where Angular is heading. From Signal Forms API changes and long-awaited focus helpers, to more flexible control flow, template improvements, router updates, and MCP server enhancements, this version is packed with ideas worth exploring—just not shipping to production yet. Let’s take a quick look at what’s new and what’s promising.
Alain Chautard
January 23, 2026
Angular 21.1 is available and offers many interesting features, but keep in mind that almost all of them are experimental at this point, meaning they’re not ready for production use.
Signal Forms are an experimental feature, and it shows in version 21.1, as there are two breaking API changes:
This means we have to use the form field directive as follows from now on:
<input type="text" [formField]="userForm.firstName">
instead of:
<input type="text" [field]="userForm.firstName">

It’s unclear if there will be an automated migration as the API is still experimental and could change again.
Some actual welcome features now:
focusBoundControl() method
Finally, Angular knows how to focus form fields without using native APIs!
this.userForm.firstName().focusBoundControl();
As expected, the code above focuses on the form element bound to the firstName form property.
CSS classes for validation state
If you missed “ng-valid”, “ng-dirty”, and all, in Signal Forms, and enjoyed my video on how to get those classes back, well, now we can do even better with a new config option in the providers of ApplicationConfig:
provideSignalFormsConfig({
classes: {
"ng-invalid": field => field.state().invalid(),
"ng-valid": field => field.state().valid() && field.state().required(),
"ng-dirty": field => field.state().dirty()
}
})
As you can guess from the above code, you can pick your own class names and map them to field conditions, which means you can customize precisely when to apply these classes. For instance, in this example, I apply “ng-valid” only for required fields that are valid
If you like using switch /case flows, you’ll enjoy the new option to have multiple cases display the same HTML:
@switch (condition) {
@case (caseA) {
Case A.
}
@case (caseB)
@case (caseC) {
Case B or C.
}
@default {
Default case.
}
}
It’s now possible to use the spread operator in Angular templates, for arrays, objects, and function parameters:
@let copy = {...obj, foo: 'bar'};
The router gets its first official (and stable) Signal-based function, isActive, which returns a computed signal indicating whether a route is active. As you can see, you can decide whether to ignore URL query params and such:
private router = inject(Router);
isSettingsActive = isActive('/dashboard', this.router, {
paths: 'exact',
queryParams: 'ignored'
});
Here are the possible options:
interface IsActiveMatchOptions {
matrixParams: "exact" | "subset" | "ignored";
queryParams: "exact" | "subset" | "ignored";
paths: "exact" | "subset";
fragment: "exact" | "ignored";
}
Two experimental features are added as well:
Navigation API for navigation, meaning it can now intercept browser navigation events outside the Angular application.I wrote about the Angular MCP server earlier, and it now supports building, starting, and stopping a dev server, waiting for a build to complete, running unit tests, and running end-to-end tests.
The main purpose is to allow IDE coding agents to check their work by running ng serve, tests, and verifying that the code compiles, which is great.
Also, the AI tutor feature has a new tutorial on Signal Forms.
That’s it for Angular 21.1, quite a nice release with interesting features to try!
Get the latest news and updates on developer certifications. Content is updated regularly, so please make sure to bookmark this page or sign up to get the latest content directly in your inbox.

What’s new in Angular 21.1?
Angular 21.1 is out, and while most of the new features are still experimental, the release gives us a solid preview of where Angular is heading. From Signal Forms API changes and long-awaited focus helpers, to more flexible control flow, template improvements, router updates, and MCP server enhancements, this version is packed with ideas worth exploring—just not shipping to production yet. Let’s take a quick look at what’s new and what’s promising.
Alain Chautard
Jan 23, 2026

How to pass your certification exam
Getting ready for the Nuxt certification exam? See how the exam works, what’s on it, and how to prep so you can actually pass it on the first try.
Reza Baar
Jan 22, 2026

The JavaScript Event Loop: The Skill That Separates Juniors From Seniors
Promises, async/await, timers…everything in JavaScript relies on the event loop. Mastering it changes how you write and debug code.
Martin Ferret
Jan 21, 2026
We can help you recruit Certified Developers for your organization or project. The team has helped many customers employ suitable resources from a pool of 100s of qualified Developers.
Let us help you get the resources you need.
