You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have searched for existing issues that already include this feature request, without success.
Describe the Feature Request
With the release of Angular 21, zoneless applications are now the default configuration. While zone.js can still be enabled, it is expected to be deprecated in the future.
Describe the Use Case
Adding zoneless support would let Ionic work out-of-the-box with Angular 21’s default setup and future Angular versions.
I was thinking of starting a new project based on Ionic, but it seems to be dying slowly 😕.
PrimeNG and many other UI frameworks have already implemented Angular zoneless support (which is not new).
This issue has no official activity.
The last blog post asked developers to "help define the future of Ionic" (dying signal) and that Ionic was not going to implement Liquid Glass, but instead they were going to make the framework as generic as possible for anybody to implement whatever design system they want (which goes completely against the nature of Ionic, that was an Angular framework that matched the iOS/Android design guides).
Thank you for your patience on this issue. We have a PR up for v9 to enable zoneless support and make it the default for Angular apps going forward: #31196
If you'd like to try it early, you can use this dev build (updated 2026-06-09):
Though there may also be other parts of that migration document that are relevant to you.
Reacted by Alexander Trakhimenok, luisbytes, Eduardo, Lucas Maasse, Luan Gong, Julien Marcou, Rasmus Reimer, Denys Arkhipenko, Tom McLellan and Thibault
I tried this tag and ran into an issue with ion-modal that was introduced somewhere after 8.6.5 (up to that version it works fine, even with zoneless change detection).
When I use an inline ion-modal inside a component rendered via router-outlet (not ion-router-outlet), I get an error when trying to swipe the active modal down: p-BtVHN9Na.js:4 Uncaught TypeError: Reduce of empty array with no initial value at Array.reduce (<anonymous>)
And it breaks swiping then.
In 8.6.5 it works correctly; the breakage appears somewhere after 8.7 or 8.8. I have scenarios where it makes sense to use ion-modal inside a router-outlet. With zone-based change detection it works fine.
The error does not occur when I use ModalController.create in a child component inside the router-outlet — it only happens with an inline modal. It also does not occur when the modal is used inside ion-router-outlet.
Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out.
Activity
Sampath-Lokuge commentedon Nov 23, 2025
Have you worked with Ionic and Angular 21 to develop a zoneless application?
chrisweight commentedon Jan 21, 2026
Adding this here for reference: https://zenn.dev/rdlabo/articles/f66aea572eb352
cperezabo commentedon Mar 18, 2026
I was thinking of starting a new project based on Ionic, but it seems to be dying slowly 😕.
I don't see much future, but I want to be wrong.
ShaneK commentedon Jun 5, 2026
Hey everyone!
Thank you for your patience on this issue. We have a PR up for v9 to enable zoneless support and make it the default for Angular apps going forward: #31196
If you'd like to try it early, you can use this dev build (updated 2026-06-09):
As I said, this PR is built off of the v9 branch and there are other existing breaking changes you may need to migrate to. You can see the preview of the migration steps with the Angular changes here: https://ionic-docs-git-feat-zoneless-v2-ionic1.vercel.app/docs/updating/9-0#zoneless-change-detection
Though there may also be other parts of that migration document that are relevant to you.
rostislavcz commentedon Jun 9, 2026
@ShaneK
I tried this tag and ran into an issue with ion-modal that was introduced somewhere after 8.6.5 (up to that version it works fine, even with zoneless change detection).
When I use an inline ion-modal inside a component rendered via router-outlet (not ion-router-outlet), I get an error when trying to swipe the active modal down:
p-BtVHN9Na.js:4 Uncaught TypeError: Reduce of empty array with no initial value at Array.reduce (<anonymous>)And it breaks swiping then.
In 8.6.5 it works correctly; the breakage appears somewhere after 8.7 or 8.8. I have scenarios where it makes sense to use ion-modal inside a router-outlet. With zone-based change detection it works fine.
The error does not occur when I use ModalController.create in a child component inside the router-outlet — it only happens with an inline modal. It also does not occur when the modal is used inside ion-router-outlet.
feel free to use this repo: https://github.com/rostislavcz/ion-modal-zoneless-bug
in iii folder npm i, ionic serve and click on the button in home.page and swipe that modal down
ShaneK commentedon Jun 9, 2026
Hey, @rostislavcz! Awesome find, thanks! I've resolved that in this dev build if you want to try again:
Was there an issue created for this that we'll need to close out too by any chance?
rostislavcz commentedon Jun 9, 2026
@ShaneK works like charm now 👍
Would you merge that fix into the current Ionic 8 stable version too, or only after version 9 is released?
ShaneK commentedon Jun 9, 2026
@rostislavcz Sure thing! That's a pretty simple change, the PR is up here: #31202
We'll get it reviewed and merged before too long and the fix will go out in v8 either tomorrow or next Wednesday, depending on the timing of things.
feat(angular): default to zoneless change detection (#31196)
ShaneK commentedon Jun 10, 2026
Hey everyone! Full zoneless support by default has been merged into v9! The last dev build for that PR is here:
The next step is Angular 22 support, follow along here if you're interested: #31204 (comment)
ionitron-bot commentedon Sep 18, 2026
Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out.