v9.0.7
9.0.7 (2026-10-07)
- close-watcher: allow back navigation when nothing is open (#31520) (6532bcb), closes #29648
- css: stop emitting :host-context selectors in global stylesheets (#31516) (35bd2fa), closes #30024
- input-otp: sync value when length changes (#31485) (e425825), closes #31484
- react: prevent error when an outlet unmounts before it's ready (#31517) (d5bab2e), closes #31513
- vue-router: render the redirect target when a guard redirects (#31510) (643584b)
- vue-router: reset tab with memory history (#31511) (edbc304), closes #29785
v9.0.5
9.0.5 (2026-09-23)
- button: sync aria attributes between host and native button (#31264) (e771519), closes #30626
- datetime: tear down ready state only when the host is hidden (#31460) (bf0607e), closes #30933
- popover: account for CSS zoom in positioning and sizing (#31426) (96ff7df), closes #30919 #31047
- vue: respect config log level (#31452) (edb3e48)
v9.0.1
9.0.1 (2026-08-26)
- core: restore prop defaults when consumers downlevel (#31375) (b4174f9)
- item-sliding, segment-button: read props after frameworks assign them (#31391) (7956b97), closes #31388
- overlays: restore presented state after a DOM move (#31400) (bfff8e1), closes #31389 #31390
- picker-column: commit value on outside press (#31397) (95e2224), closes #30449 #30674
- react-router: skip page clone when nothing will animate (#31387) (898001c)
- refresher: validate slot after frameworks assign it (#31377) (d41f258), closes #31376
- select: derive option text from all child nodes (#31382) (7879ec5), closes #31381
v9.0.0
9.0.0 (2026-08-19)
Full Changelog: https://github.com/ionic-team/ionic-framework/compare/v8.8.19...v9.0.0
Migration guide: https://ionicframework.com/docs/updating/9-0
Breaking changes: https://github.com/ionic-team/ionic-framework/blob/main/BREAKING.md#version-9x
v8.8.18
8.8.18 (2026-08-12)
- core: resolve lazy component chunks under Vite 8 (#31341) (a73e183), closes #31333
- core: update offsets when safe-area insets arrive late (#31343) (bc4fce2), closes #31337
- datetime: tear down ready state when an overlay dismisses (#31335) (d59e341), closes #31155 #31143
- modal: allow pull-to-refresh with a custom scroll host (#31339) (d6202a8), closes #31332