Skip to content

Releases: rdlabo-dev/ionic-theme-ios26

v9.1.0

Choose a tag to compare

@rdlabo rdlabo released this 02 Sep 13:17

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 !important usage in the shipped theme styles from 13 declarations to one. The remaining declaration intentionally stabilizes centered ion-searchbar padding before hydration so Ionic's transition: all does 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 color values 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 counterFormatter output. (#130)
  • Structured group styling is now scoped to direct children of each inset list. A single ion-radio-group can 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 beta npm dist-tag with /beta, while verified main candidates publish to next. Candidate publishing cannot update latest. (#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

v9.1.0-1

v9.1.0-1 Pre-release
Pre-release

Choose a tag to compare

@rdlabo rdlabo released this 01 Sep 16:00

What's Changed

  • fix(list): respect ion-note color in inset lists by @rdlabo in #135
  • fix(color): preserve Ionic color attributes by @rdlabo in #136

Commits

  • fix(color): preserve Ionic color attributes (#136) 8890df8
  • fix(list): respect ion-note color in inset lists (#135) 78f3a3d

v9.1.0-0...v9.1.0-1

v9.1.0-0

v9.1.0-0 Pre-release
Pre-release

Choose a tag to compare

@rdlabo rdlabo released this 31 Aug 06:12

What's Changed

  • fix: support counters in structured lists by @rdlabo in #130
  • ci: publish gated beta and next candidates by @rdlabo in #132
  • fix: support radio groups across inset lists by @rdlabo in #131
  • refactor: prefer CSS custom properties over Shadow Parts by @rdlabo in #133

Commits

  • refactor: prefer CSS custom properties over Shadow Parts (#133) 466e5b6
  • fix: support radio groups across inset lists (#131) 2aeffc8
  • ci: allow maintainers to request beta releases ad205ba
  • ci: separate beta publishing from notifications 75dc35c
  • fix: keep beta gate failures non-blocking 610dd7e
  • ci: acknowledge administrator beta requests 62c7325
  • fix: restrict prerelease publishing paths c24090b
  • ci: publish gated beta and next candidates (#132) 0c6bf33
  • fix: support counters in structured lists (#130) eb2112a

v9.0.2...v9.1.0-0

v9.0.2

Choose a tag to compare

@rdlabo rdlabo released this 27 Aug 14:00

What's Changed

  • docs: link README guides to docs.rdlabo.dev by @rdlabo in #126
  • fix: support helper and error text outside inset lists by @rdlabo in #127
  • fix: apply inset styles to all list groups by @rdlabo in #128

Commits

  • fix: apply inset styles to all list groups (#128) f371d73
  • fix: support helper and error text outside inset lists (#127) 4110d79
  • docs: link README guides to docs.rdlabo.dev (#126) 7e71fc5

v9.0.1...v9.0.2

v9.0.1

Choose a tag to compare

@rdlabo rdlabo released this 25 Aug 04:31

Overview

This patch completes the component updates that were left out of the previous iOS 26 theme release.

Changed

  • Added helper and error text examples for:
    • ion-select
    • ion-checkbox
    • ion-toggle
    • ion-radio-group
  • Integrated ion-select supporting text with inset-list dividers.
  • Positioned ion-radio-group supporting text below its options.
  • Preserved iOS inset-list spacing, safe-area insets, and rounded corners.

Compatibility

This release contains no breaking changes. No migration is required.

What's Changed

  • feat: support helper and error text for select, checkbox, toggle, and radio group (#125)
  • docs: mark screenshot for overview
  • docs: clarify v9 migration path

Full Changelog: v9.0.0...v9.0.1

v9.0.0

Choose a tag to compare

@rdlabo rdlabo released this 24 Aug 07:12

Ionic Theme iOS26 v9.0.0

This release aligns the theme's major version with Ionic 9 while continuing to support Ionic 8.

If you are upgrading from a version released last month or earlier, v9 also includes the UI features and fixes introduced on the way through v3.x.

Compatibility

  • @ionic/core >=8.8.1 <10
  • Ionic 8 and Ionic 9 demos and visual regression coverage
npm install @rdlabo/ionic-theme-ios26@^9

Breaking change for users upgrading from v2.x or earlier

Rename the Inset List section-header class:

- <ion-item-group class="header-item-group">
+ <ion-item-group class="item-group-header">

The old class has been removed. If you already use v3.x, no additional application-side markup change is required for v9.0.0.

See the migration guide for details.

Included since the earlier releases

  • Two-line ion-item layouts with Supporting text
  • Natural helperText and errorText layouts for Inputs and Textareas
  • fill="outline" support in Ionic's ios mode
  • Shared markup and documented integration with @rdlabo/ionic-theme-md3
  • Ionic 8 and Ionic 9 visual regression tests in Light and Dark modes
  • Refined dividers, icon-only Buttons, navigation, and Overlay presentation

See the complete release overview

The release article includes mobile screenshots, markup examples, compatibility details, and the full list of changes across both themes:

Bringing iOS 26 and Material Design 3 to Ionic: Both Themes Reach v9

Full Changelog: v3.1.0...v9.0.0

v3.1.0

Choose a tag to compare

@rdlabo rdlabo released this 24 Aug 05:03

What's Changed

  • docs: distinguish Ionic Angular import paths by @rdlabo in #122
  • docs: use stable release links by @rdlabo in #121
  • docs: mention ion item group ESLint rule by @rdlabo in #123
  • feat: improve iOS input outlines and supporting text by @rdlabo in #124

Commits

  • Merge branch 'main' of github.com:rdlabo-dev/ionic-theme-ios26 f08039a
  • feat: improve iOS input outlines and supporting text (#124) 649cd0f
  • Merge branch 'main' of github.com:rdlabo-dev/ionic-theme-ios26 dbc5a80
  • chore 9f5d884
  • docs: link package homepage to documentation aaf4c51
  • docs: add maintainer information 9e329e0
  • docs: mention ion item group ESLint rule (#123) 29d325f
  • docs: use stable release links (#121) 448d03d
  • docs: distinguish Ionic Angular import paths (#122) f4f6947

v3.0.0...v3.1.0

v3.0.0

Choose a tag to compare

@rdlabo rdlabo released this 22 Aug 02:46

Ionic Theme iOS 26 v3.0.0

This release improves structured inset lists, floating action button positioning, Ionic 9 compatibility coverage, and public documentation.

Breaking change

The section-header class for ion-item-group has been renamed:

- <ion-item-group class="header-item-group">
+ <ion-item-group class="item-group-header">

The old class is no longer styled. Update shared markup used with @rdlabo/ionic-theme-md3 at the same time.

What’s new

  • Added structured two-line inset items using direct, unslotted ion-label and ion-note children.
  • Improved inset-list markup compatibility with the MD3 theme so both modes can share one template.
  • Corrected floating action button positioning alongside side menus and aligned expanded FAB lists.
  • Added tested demo and screenshot coverage for Ionic 8 and Ionic 9.
  • Added complete dual-theme setup guidance, including Sass import order, dark mode, and platform-specific transitions.
  • Reorganized the public documentation around installation, features, special markup, migration, and experimental animations.

Compatibility

  • Requires @ionic/core >=8.8.1 <10.
  • Applications using @ionic/core <8.8.1 should remain on @rdlabo/ionic-theme-ios26@2.2.1 or upgrade Ionic.

See the migration guide (https://github.com/rdlabo-dev/ionic-theme-ios26/blob/v3.0.0/docs/migration.md) for upgrade details.

Full changelog: v2.3.2...v3.0.0

v3.0.0-1

v3.0.0-1 Pre-release
Pre-release

Choose a tag to compare

@rdlabo rdlabo released this 21 Aug 18:19

What's Changed

  • fix(list): support two-line content in inset items by @rdlabo in #115
  • docs: organize iOS26 theme guides by @rdlabo in #116

Commits

  • docs: organize iOS26 theme guides (#116) 76fe472
  • fix(list): support two-line content in inset items (#115) baba6cf
  • fix(ci): grant PR comment permissions f00f2fa

v3.0.0-0...v3.0.0-1

v3.0.0-0

v3.0.0-0 Pre-release
Pre-release

Choose a tag to compare

@rdlabo rdlabo released this 21 Aug 10:34

What's Changed

  • chore: set "private": false in package.json by @rdlabo in #107
  • fix(demo): make demo tests pass and run them in CI by @rdlabo in #106
  • ci: speed up demo lint CI (npm + .angular cache) by @rdlabo in #108
  • Point READMEs to centralized documentation by @rdlabo in #109
  • docs: split README into package guides with omit markers by @rdlabo in #110
  • fix(fab): correct positioning around menus and fab lists by @rdlabo in #112
  • test(e2e): compare Ionic 8 and 9 screenshots by @rdlabo in #113
  • docs: update demo URLs by @rdlabo in #114

Commits

  • docs: update demo URLs (#114) 87089aa
  • test(e2e): compare Ionic 8 and 9 screenshots (#113) a01967c
  • fix(fab): correct positioning around menus and fab lists (#112) b222b97
  • docs: split README into package guides with omit markers (#110) 8ee40a1
  • Point READMEs to centralized documentation (#109) dd4f534
  • Update references after GitHub organization transfer 4b5f632
  • Merge pull request #108 from rdlabo-team/chore/ci-cache-speedup a9deb20
  • ci: unify lint workflow trigger (PR + push on main) fa40aec
  • ci: speed up demo lint CI with npm and .angular cache (node 24) b471202
  • Merge pull request #106 from rdlabo-team/fix/demo-tests-ci abfb157
  • ci: unpin node to 24 to match npm 11.7 lockfile 9910f81
  • chore: sync package-lock.json after ESLint version bump 4f12d5d
  • chore: align ESLint config and versions to winecode standard 9c04531
  • Merge pull request #107 from rdlabo-team/chore/set-private-field 6bb0754
  • chore: set "private": false in package.json b830c7b
  • fix(demo): pin @playwright/test to 1.58.2 to match CI container image 5dae6f7
  • test(demo): migrate unit tests from Karma+Jasmine to Vitest(jsdom) 4550762
  • ci(lint): install and build root package before demo tests a2bbe1b
  • fix(demo): correct docs spec class name and run demo tests in CI b3d1624

v2.3.2...v3.0.0-0