Skip to content

Releases

2.1.4

Choose a tag to compare

@rdlabo rdlabo released this 09 Nov 10:32

Dynamic colors are now a supported, opt-in API. Import the getter, listener and types from @rdlabo/capacitor-native-ui; the experimental /dynamic-colors subpath has been removed.

The new dynamic colors guide covers Android availability, both appearance schemes, change notifications, cleanup and Ionic integration. App-local native extensions remain experimental.

This release also makes native CI timeout tests deterministic and isolates dependency-download retries from test execution.

Update the plugin, run npx cap sync, and rebuild native applications. Existing 2.1.3 native color behavior is unchanged; older binaries without the getter require rebuilding.

2.1.3

Choose a tag to compare

@rdlabo rdlabo released this 09 Nov 01:36
6635178

This release improves modal button presentation on the iPhone Duo rail, restores native press feedback for grouped horizontal toolbar buttons, and fixes missing rail tab badges. It also adds an experimental Android Material You color API.

iPhone Duo modal fixes

Modal rail controls retain Native ownership during presentation, dismissal, dragging and snapping. Image handoffs use transparent capture and move with the modal surface, reducing rectangular background artifacts and keeping the controls aligned with the dialog. Dismissing a modal also restores the underlying navigation reliably. Page rails retain their composited capture and shadows. (#31)

Additional geometry fixes account for modal dialog borders and preserve the reserved toolbar boundary when concealed Web children collapse a button group to zero height. These prevent image-position offsets and unnecessary image handoffs above the boundary. (#29, #30)

Known limitation: transparent snapshots cannot reproduce live Liquid Glass reflection and refraction. Brief double-composited edges can still appear during handoffs; this release improves the transition but does not eliminate every visual difference.

Buttons and tab badges

  • Grouped horizontal toolbar buttons: pressing a button now activates the shared capsule's native glass feedback. Each button retains its own action. Thanks to @Dimibe for the focused fix and regression test! (#32)
  • Rail tab badges: a visible ion-badge inside an ion-tab-button remains eligible for native projection even when its Web source coordinates fall outside the viewport. Text changes, hiding and removal continue to update the badge. Toolbar-action badges are outside this change's scope. (#33)

Experimental Android dynamic colors

The @rdlabo/capacitor-native-ui/dynamic-colors entrypoint exposes Material You color roles on Android 12 and later without enabling native UI projection or changing the Activity theme. It returns light and dark schemes, availability and system appearance, with a removable listener for color invalidation. Web, iOS and older Android versions return an unsupported result. (#28)

This API is experimental: its roles and change-notification behavior may evolve. Ionic palette mapping remains the responsibility of the consuming theme. Physical-device wallpaper-change behavior has not yet been verified.

Upgrade

npm install @rdlabo/capacitor-native-ui@2.1.3
npx cap sync

This release uses Engine 1.0.4, aligned across npm, SwiftPM, CocoaPods and Android Maven. Release tags now use vVERSION; previous capacitor-vVERSION tags remain available. (#34)

Plugin, Swift, Android and both theme integration CI shards passed before publication. The release workflow also verified the build, tests, packaged ESM entrypoints and Engine Maven dependency.

Contributors

Thank you to @Dimibe for contributing the grouped toolbar glass feedback fix in #32, including regression coverage and simulator validation. Thanks also to everyone who reported and helped investigate the Duo modal behavior.

Full changelog: capacitor-v2.1.2...v2.1.3

2.1.2

Choose a tag to compare

@rdlabo rdlabo released this 06 Nov 11:01

Fixes

  • Keep Native source ownership through Modal presentation, dragging, snapping, resizing and image handoffs, avoiding unintended Web fallback and flashes.
  • Keep Modal rail controls pinned at or above the reserved toolbar boundary. Below it, carry prepared images with the Modal and clip their background padding with a 1 CSS pixel allowance for the glass rim, for grouped and individual buttons.
  • Restore controls using current accepted Native coordinates, and release sources when they become hidden or unsupported outside an active transition/image hold.
  • Project solid submit buttons in horizontal toolbars, including supported source color values.
  • Pin Engine 1.0.3 consistently across npm, SwiftPM, CocoaPods and Android.

Snapshot backgrounds and Liquid Glass edge highlights can still differ from live compositing. Clipping reduces this difference but does not eliminate it.

Full changelog: capacitor-v2.1.1...capacitor-v2.1.2

2.1.1

Choose a tag to compare

@rdlabo rdlabo released this 05 Nov 07:44
e878041

Changes

  • Add resolveVerticalBarsLayout(Foldable) to the integration entry point to supply rail geometry, including the toolbar origin, to the theme.
  • Recognize floating modals overlapping the rail and preserve native ownership through navigation, modal animations and image handoffs.
  • Match solid Ionic submit-button emphasis in native controls for type="submit" and existing .button-submit actions.
  • Use the stable Engine 1.0.2 across npm, SwiftPM, CocoaPods and Maven.

See the migration guide from 2.1.0 for dependency updates and the device-layout code diff. Existing application-root Native UI startup remains supported.

npm install @rdlabo/capacitor-native-ui@latest

v2.1.1-0

v2.1.1-0 Pre-release
Pre-release

Choose a tag to compare

@rdlabo rdlabo released this 05 Nov 01:29

Prerelease for integration testing (next).

  • Resolve vertical rail placement, inset and toolbar origin from a device provider.
  • Project eligible controls from floating dialogs that overlap the active rail.
  • Use Engine 1.0.2-0 across JavaScript and native integrations.