Overview
v9.1.0 makes the theme easier to reuse, extend, and override in downstream applications. The iOS 26 glass appearance and interaction states are intended to remain unchanged; the main improvement is that more styling now flows through Ionic's public customization APIs and the normal CSS cascade.
Theme customization and reuse
- Moved eligible styling from Shadow Parts to documented Ionic CSS custom properties across buttons, FABs, sheets, popovers, ranges, search bars, segments, toasts, and toggles. Backgrounds, shadows, borders, padding, indicator styles, and control-state colors are now exposed through Ionic's normal customization path wherever a public property exists. Shadow Parts remain where no equivalent property is available. (#133)
- Reduced
!importantusage in the shipped theme styles from 13 declarations to one. The remaining declaration intentionally stabilizes centeredion-searchbarpadding before hydration so Ionic'stransition: alldoes not animate through an incorrect intermediate value. (#133) - Generalized the internal glass-surface mixins so background, box shadow, and border layers can be applied independently. This lets components share the same glass treatment without overriding Ionic properties they do not own. (#133)
- Preserved Ionic's standard color behavior: explicit
colorvalues on inset-list notes, header labels, and header icons now take precedence, while the theme defaults still apply when no color is specified. (#135, #136)
More robust component behavior
- Input and textarea counters are now treated as structured-list support text, so counters remain visible and list borders are placed correctly. This covers both the built-in input counter and
counterFormatteroutput. (#130) - Structured group styling is now scoped to direct children of each inset list. A single
ion-radio-groupcan span multiple inset lists without nested groups receiving duplicate boundaries. (#131) - Colored disabled buttons now retain Ionic's base and contrast colors, and brightness-based styling is applied only to enabled solid submit buttons. Disabled buttons therefore keep the expected contrast and opacity. (#136, #137)
- Button spacing is now scoped directly to enabled iOS toolbars, preserving the mode guard and avoiding unintended margins in nested or unrelated header/footer structures. (#138)
For maintainers and contributors
- Added gated package candidates: an administrator can publish a CI-verified pull-request commit to the
betanpm dist-tag with/beta, while verifiedmaincandidates publish tonext. Candidate publishing cannot updatelatest. (#132)
No markup migration is expected for this release. Existing visuals, color states, RTL behavior, and interactions were kept compatible and checked with builds, component tests, computed-style checks, and light/dark screenshot coverage.
Full Changelog: v9.0.2...v9.1.0