Repository navigation
Releases: webview-native-ui/ionic-theme-ios27
Release list
ios27-v2.1.0
Engine 1.0.0 integration
Both @rdlabo/ionic-theme-ios27 and @rdlabo/capacitor-native-ui are released as 2.1.0.
Native UI now uses the stable WebView Native UI Engine 1.0.0 release, updating the previous 0.0.6 dependency. npm and SwiftPM are pinned to 1.0.0; Maven and CocoaPods resolve the same version from the Native UI manifest. The demo dependency and CocoaPods integration link are updated as well.
The theme depends on Native UI 2.1.0. There are no changes to the Native UI public API in this release.
Install
npm install @rdlabo/ionic-theme-ios27@2.1.0 @rdlabo/capacitor-native-ui@2.1.0
npx cap syncSee the Native UI setup guide for native dependencies and activation, and the Engine 1.0.0 release notes for Engine capabilities and platform limitations.
Full changelog: ios27-v2.0.4...ios27-v2.1.0
ios27-v2.0.4
This patch improves Native UI handoffs during overlays, modal movement, and orientation changes. Native UI and the iOS 27 theme are released together as 2.0.4.
Native UI
- Use prepared native images while Web overlays cover controls or a modal is being dragged, then restore native ownership at the current position.
- Preserve valid images during rapid repeated sheet movement and keep projected rail DOM stable across modal surface changes.
- Coordinate supported modal entry with Ionic's actual animation and geometry, avoiding competing sheet-height and native-position updates.
- Keep covered controls under image projection during rotation instead of revealing native controls above the overlay.
- Use the standalone
@webview-native-ui/engine0.0.6 for shared image and scroll ownership. npm, SwiftPM, CocoaPods, and Maven dependency versions are aligned.
Upgrade
npm install @rdlabo/capacitor-native-ui@2.0.4 @rdlabo/ionic-theme-ios27@2.0.4
npx cap syncRebuild the native application after syncing. CocoaPods projects also need the local Engine pod setup. See the Native UI setup guide for integration details.
What's Changed
- fix(native-ui-engine): restore iOS native views after Web projection by @rdlabo in #334
- fix(native-ui-engine): support native ad handoff and fallback by @rdlabo in #333
- fix(native-ui): preserve projection ownership with Engine 0.0.5 by @rdlabo in #336
- fix(native-ui): prevent controls flickering on orientation changes by @Dimibe in #335
- fix(native-ui): preserve covered projection on orientation changes by @rdlabo in #337
- fix(native-ui): preserve image projection during modal dragging by @rdlabo in #338
New Contributors
Full Changelog: ios27-v2.0.3...ios27-v2.0.4
ios27-v2.0.3
Stable patch release improving Native UI connection recovery and Native/Web handoffs, particularly on iPhone Duo. Includes the fixes previewed in v2.0.3-0 through v2.0.3-2.
Native UI recovery
- Recover lost event subscriptions and native state without requiring navigation. Shared recovery covers ordinary controls, Vertical Bars, extensions, and native popovers, and synchronizes current state without replaying clicks or submissions. (#325, #330)
- Restore accessible Web controls when reconnection repeatedly fails, and ignore late responses after teardown. (#330)
- Reconcile native popover disappearance and reconnect retained content when presentation is lost. Keep valid popovers projected when their trigger becomes disabled after a tap, while preventing duplicate clicks. (#327, #330)
Modal transitions and Duo layout
- Animate supported Duo modal toolbar entry with the modal animation timing instead of repeated per-frame synchronization. Reduce repeated updates during dismissal and restore the underlying tab bar without an extra fade. (#326, #329)
- Preserve covered toolbar buttons, groups, and back buttons on their own surfaces, with interaction blocked behind the active modal. (#324, #326)
- Fix standard sheet backdrop gesture cleanup and unintended native rail animations during modal handoff, while preserving unsupported custom animation behavior. (#329)
- Align Web tab-bar fallback widths with acknowledged native measurements, preserve vertical tab corner radii and icon alignment, and retain fractional positioning offsets. (#323, #328, #329)
- Align Web vertical toolbar defaults with the observed Duo layout so controls stay in place when switching from Native to Web rendering, including when native geometry is unavailable. (#331)
Upgrade
npm install @rdlabo/ionic-theme-ios27@2.0.3 @rdlabo/capacitor-native-ui@2.0.3Rebuild Web assets, run npx cap sync ios, and rebuild the native app to receive the native changes. Older native binaries retain their existing behavior for features requiring the new native capability.
Supporting iOS binaries use one lightweight shared connection check while the document is visible. Checks have a five-second timeout and run at a one-second interval after completion; three consecutive failures restore Web rendering. Timed-out bridge requests are not canceled, and late responses are ignored. The layout fixes improve Native/Web alignment without promising identical platform rendering or repairing unavailable native geometry measurements.
Both packages are published under the latest dist-tag.
Guides now link to the multilingual documentation sites: Ionic setup, Native UI behavior, and Vertical Bars.
ios27-v2.0.3-2
Next preview of the Native UI connection recovery and iPhone Duo toolbar alignment fixes since v2.0.3-1.
Fixes
- Recover lost Native UI event subscriptions and native state through one shared connection check for ordinary controls, Vertical Bars, extensions, and native popovers. Recovery synchronizes current state without replaying clicks or submissions. (#330)
- Restore Web controls after three consecutive failed connection checks, including when state updates are waiting for reconnection. Ignore late responses after teardown. (#330)
- Reconcile native popover disappearance and reconnect retained content when presentation is lost, without duplicate dismissal events. (#330)
- Align Web vertical toolbar defaults with the observed Duo layout: 48px controls, 4px within groups, 12px between groups, and a 170px top origin. Preserve native measurement precedence and keep background controls aligned when a modal switches them to Web rendering. (#331)
Install
npm install @rdlabo/ionic-theme-ios27@2.0.3-2 @rdlabo/capacitor-native-ui@2.0.3-2Rebuild Web assets, run npx cap sync ios, and rebuild the native app to receive the shared connection recovery. Older native binaries retain their existing behavior.
Supporting iOS binaries use one lightweight connection check per visible shell, with a one-second interval after each check and a five-second timeout. Timed-out bridge requests are not canceled; late responses are ignored. Three unanswered checks take approximately 18 seconds to reach the Web fallback decision. The Duo layout fix also works when native geometry is unavailable; it does not repair the geometry lookup itself.
Both packages target the next dist-tag. This is a prerelease; latest remains on v2.0.2.
ios27-v2.0.3-1
Next preview of the Native UI handoff fixes since v2.0.3-0.
Fixes
- Preserve native vertical tab corner radii and icon alignment when switching to Web rendering on iPhone Duo. (#328)
- Retire dismissing modal controls once and avoid repeated synchronization as the modal moves. Restore the underlying vertical tab bar without an extra fade. (#329)
- Release the standard paused sheet backdrop gesture animation before dismissal, while preserving nonmatching custom animations. (#329)
- Prevent unintended native rail animations during modal handoff and preserve fractional border offsets when positioning Web controls. (#329)
Install
npm install @rdlabo/ionic-theme-ios27@2.0.3-1 @rdlabo/capacitor-native-ui@2.0.3-1Rebuild Web assets, run npx cap sync ios, and rebuild the native app to receive the native changes.
Both packages target the next dist-tag. This is a prerelease; latest remains on v2.0.2.
ios27-v2.0.3-0
Next preview of the Native UI projection fixes since v2.0.2.
Fixes
- Keep Duo popovers natively projected when their trigger becomes disabled after a valid tap, while continuing to reject duplicate clicks. (#327)
- Animate supported Duo modal toolbar entry using the modal animation timing instead of repeated per-frame synchronization. Older native binaries and unsupported custom animations retain the existing behavior. (#326)
- Preserve covered Duo toolbar buttons, button groups and back buttons on their own page or modal surfaces, without allowing interaction behind the active modal. (#324, #326)
- Match Web tab-bar fallback widths to acknowledged native measurements without feeding the measured width back into native layout requests. (#323)
- Recover Native UI synchronization without requiring a navigation, preserving action deduplication. (#325)
Documentation
- Link guides to the multilingual documentation sites.
Install
npm install @rdlabo/ionic-theme-ios27@2.0.3-0 @rdlabo/capacitor-native-ui@2.0.3-0Rebuild Web assets, run npx cap sync ios, and rebuild the native app to receive the native changes.
Both packages are published as 2.0.3-0 under the next dist-tag. This is a prerelease; latest remains on v2.0.2.
ios27-v2.0.2
Native UI tab switching and selection colors
2.0.2 is a stable patch release that improves Native UI toolbar handoffs, Search behavior, and tab selection colors on ordinary iPhone and iPhone Duo. It includes the fixes validated in 2.0.2-0 through 2.0.2-2. Existing 2.0.x markup and public APIs remain compatible.
Fixes
- Reliable toolbar handoffs when switching tabs. Coordinate horizontal and vertical toolbar ownership during tab changes, including rapid input and rejected navigation. Preserve the next push/back transition after a rejected tab selection. (#320)
- No brief Search FAB flash on Duo when entering Library. Retire the departing page's native Search before destination icons finish loading, while preserving shared tabs and Web fallback behavior. (#320)
- Correct fixed-toolbar detection. Keep fixed headers and footers eligible with
collapse="fade", exclude scrolling and condense-header duplicates, and avoid duplicate safe-area spacing in Vertical Bars. (#319) - Application selection colors in native tabs. Horizontal tabs, searchable tabs, and Duo Vertical Bars follow the selected Ionic tab button's computed color, including
--color-selected, per-tab overrides, and light/dark theme changes. No separate RGB palette token is required. (#321) - Correct visible tint on Duo's SwiftUI rail. Apply selection color to the SwiftUI TabView, keep toolbar/search accents independent, and restore system tint when the application-provided tint is removed. This fixes the rail remaining system blue in 2.0.2-1. (#322)
Normal and disabled tab colors and glass backgrounds retain native styling. Tab bars using an Ionic color palette keep system tint because their Web contrast colors assume a colored background that native glass does not reproduce. Unsupported computed color formats also fall back to system tint.
Updating
When using the theme with Native UI, update both packages to the same version:
npm install @rdlabo/ionic-theme-ios27@2.0.2 @rdlabo/capacitor-native-ui@2.0.2Rebuild your Web assets, run npx cap sync, and rebuild the native app to receive the native tab-color fixes. Standalone Native UI users only need to update @rdlabo/capacitor-native-ui. Theme-only apps do not need to enable Native UI.
Both packages are published under npm's stable latest tag.
Validation
- Ionic 8 and Ionic 9 E2E checks passed for the merged fixes.
- All 59 native tests passed on iPhone Duo, including effective selection tint and restoration after removing the tint.
- Regression coverage includes tab switching, Search handoffs, fixed-toolbar placement, and horizontal/vertical selection-color overrides across light and dark themes.
ios27-v2.0.1
Native UI navigation fixes
2.0.1 improves toolbar continuity and navigation reliability for Native UI, including iPhone Duo. Existing 2.0.0 markup and public APIs remain compatible.
- Keep supported horizontal toolbar controls native during push/pop navigation, with page-progress animation and interactive cancellation.
- Match buttons, button groups, Menu and Back by their logical slot and position from the outer edge, including RTL layouts. Optional
data-transition-idsupports explicit correspondence when controls are reordered. - Fade unmatched outgoing toolbar controls in place, preserve disabled states, and keep actions associated with the correct Web source.
- Use native push/pop toolbar animations for Vertical Bars, with source controls retained while an interactive back gesture is being tracked.
- Improve native/Web handoffs around overlays, mini-player layout and translucent pages, and reduce unnecessary navigation preparation waits.
- Preserve application-defined outlet backgrounds and remove temporary backing colors when a transition completes, is canceled or is destroyed.
Updating
Update both packages to 2.0.1 when using the theme with Native UI:
npm install @rdlabo/ionic-theme-ios27@2.0.1 @rdlabo/capacitor-native-ui@2.0.1Native UI users should rebuild their Web assets, run npx cap sync, and rebuild the native app to receive the native transition improvements. Older native binaries remain compatible but do not provide the new progress-synchronized toolbar animation.
Standalone Native UI users only need to update @rdlabo/capacitor-native-ui. Theme-only apps do not need to enable Native UI.
Horizontal unmatched exits use an opacity fade rather than reproducing the system navigation bar's blur. Vertical Bars retain their native animation timing.
See the toolbar correspondence guide for automatic and explicit identities. For migration from 1.x, see the 2.0.0 release guide.
ios27-v2.0.2-2
Revision prerelease for the 2.0.2 patch line, published to npm under next. No public API changes.
Fixes
- Fix iPhone Duo Vertical Bars still rendering the system blue selection color in 2.0.2-1 despite receiving the correct Ionic selection color. Apply the tint directly to the SwiftUI TabView. (#322)
- Keep toolbar and search accents independent of the tab selection color.
- Restore the system selection tint when the application-provided tint is removed.
Validation
- Native regression coverage checks the effective controller tint as well as the UIKit tab-bar property, including restoration after removing the tint.
- All 59 native tests passed on iPhone Duo. PR CI passed, including Ionic 8 and Ionic 9 E2E tests.
Install both packages at the same version:
npm install @rdlabo/ionic-theme-ios27@2.0.2-2 @rdlabo/capacitor-native-ui@2.0.2-2Rebuild Web assets, run npx cap sync, and rebuild the native app to receive the SwiftUI fix.
The stable latest release remains 2.0.1.
ios27-v2.0.2-1
Revision prerelease for the 2.0.2 patch line, published to npm under next. No public API changes.
Fixes
- Reflect the selected Ionic tab button's applied color in native horizontal tabs, searchable tabs, and iPhone Duo Vertical Bars. (#321)
- Follow
--color-selected, per-tab overrides, and light/dark theme changes without requiring a separate RGB palette token. - Preserve native backgrounds, normal and disabled states, and system styling for surrounding controls. Ionic
colorpalettes retain system tint because their contrast colors assume a colored Web background.
Validation
- Supervisor and independent acceptance reviews completed.
- Native tests: 59 passed. Horizontal and vertical browser color regression tests passed.
Install both packages at the same version:
npm install @rdlabo/ionic-theme-ios27@2.0.2-1 @rdlabo/capacitor-native-ui@2.0.2-1Rebuild Web assets, run npx cap sync, and rebuild the native app to receive the native tint changes.
The stable latest release remains 2.0.1.