@rdlabo/ionic-theme-ios27 1.1.0-beta.pr224.shac63de393e27b → 1.2.0-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/css/components/ion-menu.css +1 -1
- package/dist/css/ionic-theme-ios27.css +1 -1
- package/dist/css/vertical-bars.css +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -8
- package/dist/native/components/index.d.ts +1 -0
- package/dist/native/components/index.d.ts.map +1 -1
- package/dist/native/components/index.js +8 -3
- package/dist/native/components/ion-back-button.d.ts.map +1 -1
- package/dist/native/components/ion-back-button.js +5 -2
- package/dist/native/components/ion-button.d.ts.map +1 -1
- package/dist/native/components/ion-button.js +10 -2
- package/dist/native/components/ion-buttons.d.ts.map +1 -1
- package/dist/native/components/ion-buttons.js +12 -4
- package/dist/native/components/ion-fab.js +4 -4
- package/dist/native/components/ion-menu-button.d.ts.map +1 -1
- package/dist/native/components/ion-menu-button.js +5 -4
- package/dist/native/components/searchable-tabs.d.ts.map +1 -1
- package/dist/native/components/searchable-tabs.js +4 -1
- package/dist/native/definitions.d.ts +29 -3
- package/dist/native/definitions.d.ts.map +1 -1
- package/dist/native/definitions.js +6 -1
- package/dist/native/index.d.ts +6 -2
- package/dist/native/index.d.ts.map +1 -1
- package/dist/native/index.js +154 -17
- package/dist/native/prehide.d.ts +5 -0
- package/dist/native/prehide.d.ts.map +1 -0
- package/dist/native/prehide.js +246 -0
- package/dist/native/runtime.d.ts +1 -1
- package/dist/native/runtime.d.ts.map +1 -1
- package/dist/native/runtime.js +162 -28
- package/dist/native/shared/candidate.d.ts.map +1 -1
- package/dist/native/shared/candidate.js +7 -3
- package/dist/native/shared/dom.d.ts +33 -2
- package/dist/native/shared/dom.d.ts.map +1 -1
- package/dist/native/shared/dom.js +171 -10
- package/dist/native/vertical-bars-web.d.ts +3 -0
- package/dist/native/vertical-bars-web.d.ts.map +1 -0
- package/dist/native/vertical-bars-web.js +341 -0
- package/dist/native-integration/index.d.ts +3 -2
- package/dist/native-integration/index.d.ts.map +1 -1
- package/dist/native-integration/index.js +11 -5
- package/dist/transition/index.d.ts +2 -2
- package/dist/transition/index.d.ts.map +1 -1
- package/dist/transition/index.js +1 -1
- package/dist/transition/ios.transition.d.ts.map +1 -1
- package/dist/transition/ios.transition.js +1 -0
- package/dist/utils.d.ts +3 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vertical-bars.d.ts +4 -0
- package/dist/vertical-bars.d.ts.map +1 -0
- package/dist/vertical-bars.js +2 -0
- package/docs/iphone-duo.md +255 -0
- package/docs/migration.md +2 -2
- package/docs/native-ui-shell.md +15 -3
- package/docs/special-markup.md +6 -0
- package/ios/Sources/IonicNativeUIShellPlugin/Components/ShellSearchController.swift +15 -1
- package/ios/Sources/IonicNativeUIShellPlugin/Components/ShellVerticalBars.swift +358 -0
- package/ios/Sources/IonicNativeUIShellPlugin/IonicNativeUIShellPlugin.swift +215 -35
- package/ios/Sources/IonicNativeUIShellPlugin/Shared/ShellSnapshot.swift +10 -1
- package/ios/Tests/IonicNativeUIShellPluginTests/ShellSnapshotTests.swift +29 -0
- package/package.json +6 -2
- package/src/index.ts +15 -8
- package/src/native/components/index.ts +12 -3
- package/src/native/components/ion-back-button.ts +8 -2
- package/src/native/components/ion-button.ts +12 -2
- package/src/native/components/ion-buttons.ts +9 -4
- package/src/native/components/ion-fab.ts +4 -4
- package/src/native/components/ion-menu-button.ts +5 -4
- package/src/native/components/searchable-tabs.ts +9 -1
- package/src/native/definitions.ts +40 -3
- package/src/native/index.ts +188 -20
- package/src/native/prehide.ts +255 -0
- package/src/native/runtime.ts +173 -27
- package/src/native/shared/candidate.ts +11 -3
- package/src/native/shared/dom.ts +212 -11
- package/src/native/vertical-bars-web.ts +374 -0
- package/src/native-integration/index.ts +13 -8
- package/src/styles/components/ion-menu.scss +2 -2
- package/src/styles/ionic-theme-ios27.scss +1 -0
- package/src/styles/vertical-bars.scss +342 -0
- package/src/transition/index.ts +11 -6
- package/src/transition/ios.transition.ts +1 -0
- package/src/utils.ts +8 -8
- package/src/vertical-bars.ts +3 -0
- package/dist/native/lifecycle.d.ts +0 -4
- package/dist/native/lifecycle.d.ts.map +0 -1
- package/dist/native/lifecycle.js +0 -34
- package/src/native/lifecycle.ts +0 -38
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ On Capacitor iOS, the optional, experimental [Native UI Shell](https://docs.rdla
|
|
|
30
30
|
|
|
31
31
|
### Follow the user's device
|
|
32
32
|
|
|
33
|
-
Pair the iOS 26 and iOS 27 themes so supported Safari versions can present the design of each generation: the iOS 26 look for iOS 26 users and the iOS 27 look for iOS 27 users. The [default setup](https://docs.rdlabo.dev/projects/ionic-theme-ios27#get-started) uses browser feature checks to select the corresponding **styles**; it does not read the iOS version. When both packages are installed, keep the **page transition** on the iOS 27 animation. On even earlier iOS versions, Ionic's default iOS appearance remains when Safari supports neither feature. In a Capacitor iOS app, Native UI Shell's UIKit material follows the installed iOS version.
|
|
33
|
+
Pair the iOS 26 and iOS 27 themes so supported Safari versions can present the design of each generation: the iOS 26 look for iOS 26 users and the iOS 27 look for iOS 27 users. The [default setup](https://docs.rdlabo.dev/projects/ionic-theme-ios27/docs/readme#get-started) uses browser feature checks to select the corresponding **styles**; it does not read the iOS version. When both packages are installed, keep the **page transition** on the iOS 27 animation. On even earlier iOS versions, Ionic's default iOS appearance remains when Safari supports neither feature. In a Capacitor iOS app, Native UI Shell's UIKit material follows the installed iOS version.
|
|
34
34
|
|
|
35
35
|
## Get started
|
|
36
36
|
|
|
@@ -121,6 +121,12 @@ Use this markup to preview the inset grouped list look. For the list structure t
|
|
|
121
121
|
|
|
122
122
|
## Optional setups
|
|
123
123
|
|
|
124
|
+
### Support iPhone Duo without the iOS 27 theme (experimental)
|
|
125
|
+
|
|
126
|
+
iPhone Duo support is experimental. It is planned for release alongside Native UI Shell. Its APIs and supported behavior may change.
|
|
127
|
+
|
|
128
|
+
Import only `@rdlabo/ionic-theme-ios27/dist/css/vertical-bars.css`, add `ios-theme-vertical-bars` to `ion-app`, and call `enableVerticalControlArea()` from `@rdlabo/ionic-theme-ios27/vertical-bars` at startup. This uses Ionic's standard appearance outside the Vertical Control Area; on supported iOS, only controls moved into that area are projected natively. To read only the hinge posture — for example to adapt an `ion-split-pane` — subscribe to the plugin's `deviceLayoutChange` event without starting any runtime. iOS enables the real system rail only for apps built with Xcode 27.1 or later; older toolchains run in compatibility mode and keep the DOM-driven rail instead. See [iPhone Duo support](https://docs.rdlabo.dev/projects/ionic-theme-ios27/docs/iphone-duo) for the complete setup.
|
|
129
|
+
|
|
124
130
|
### Use only the iOS 27 theme
|
|
125
131
|
|
|
126
132
|
Install only `@rdlabo/ionic-theme-ios27` and import its styles unconditionally in your global stylesheet:
|
|
@@ -207,6 +213,7 @@ For Ionic 9 Angular, import `isPlatform` and `provideIonicAngular` from `@ionic/
|
|
|
207
213
|
- [ESLint](https://docs.rdlabo.dev/projects/ionic-theme-ios27/docs/eslint) — check list structure with ESLint rules.
|
|
208
214
|
- [Features](https://docs.rdlabo.dev/projects/ionic-theme-ios27/docs/features) — CSS variables, Liquid Glass, selective imports, and dark mode.
|
|
209
215
|
- [Native UI Shell (Experimental)](https://docs.rdlabo.dev/projects/ionic-theme-ios27/docs/native-ui-shell) — project supported Ionic controls, text, and icons into UIKit.
|
|
216
|
+
- [iPhone Duo support (experimental)](https://docs.rdlabo.dev/projects/ionic-theme-ios27/docs/iphone-duo) — vertical system rail, hinge posture, and split-pane layout; usable without the theme or the shell.
|
|
210
217
|
- [Animation](https://docs.rdlabo.dev/projects/ionic-theme-ios27/docs/animation) — tab, segment, and searchable effects.
|
|
211
218
|
- [Migration from iOS 26](https://docs.rdlabo.dev/projects/ionic-theme-ios27/docs/migration) — upgrade an existing app, including stylesheet, class, and CSS variable changes.
|
|
212
219
|
- [iOS 26 migration history](https://docs.rdlabo.dev/projects/ionic-theme-ios26/docs/migration) — earlier major-version changes for the previous package.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled){--side-max-width: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible) .split-pane-main ion-tab-bar.ios:not(.ios-theme-disabled,.ios26-disabled){width:calc(100% - (18px + var(--ion-safe-area-left, 0px)) - (18px + var(--ion-safe-area-right, 0px)) - 60px - 12px - var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible) .split-pane-main ion-tab-bar.ios:not(.ios-theme-disabled,.ios26-disabled):has(:nth-child(5)){width:calc(100% - (18px + var(--ion-safe-area-left, 0px)) - (18px + var(--ion-safe-area-right, 0px)) - var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-header ion-toolbar{--padding-start: calc(var(--ios-theme-menu-width, var(--ios26-menu-width)) + 4px)}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-header ion-toolbar ion-title.title-default{padding-inline-start:calc(90px + var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-content{--padding-start: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-content ion-header ion-toolbar{--padding-start: 4px}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-footer ion-toolbar{--padding-start: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-tab-bar.ios:not(.ios-theme-disabled,.ios26-disabled)[slot=bottom]{inset-inline-start:calc(16px + var(--ion-safe-area-left, 0px) + var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-tab-bar.ios:not(.ios-theme-disabled,.ios26-disabled)[slot=bottom]:dir(rtl){inset-inline-start:calc(16px + var(--ion-safe-area-right, 0px) + var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-header ion-toolbar{--padding-end: calc(var(--ios-theme-menu-width, var(--ios26-menu-width)) + 4px)}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-header ion-toolbar ion-title.title-default{padding-inline-end:calc(90px + var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-content{--padding-end: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-content ion-header ion-toolbar{--padding-start: 4px}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-footer ion-toolbar{--padding-end: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled){--border: none;--background: rgba(var(--ios-theme-menu-background-rgb), var(--ios-theme-menu-background-opacity, 0.96));--max-width: var(--ios-theme-menu-width, var(--ios26-menu-width));position:absolute;top:0;z-index:999}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-start{inset-inline-start:0}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end{inset-inline-end:0}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled)::part(backdrop){display:none}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled)::part(container){border-radius:0;box-shadow:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-list:not(.ios-theme-disabled,.ios26-disabled,.ion-color){background:rgba(0,0,0,0)}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-item:not(.ios-theme-disabled,.ios26-disabled,.ion-color){--background: transparent}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-content{--background: transparent;--ios26-content-box-shadow-rgb: transparent;--ios-theme-content-box-shadow-rgb: var(--ios26-content-box-shadow-rgb)}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-content::part(scroll){margin-block:calc(var(--ios-theme-floating-safe-area-top, var(--ios26-floating-safe-area-top)) + 6px) var(--ios-theme-floating-safe-area-bottom, var(--ios26-floating-safe-area-bottom));margin-inline:calc(12px + var(--ion-safe-area-left, 0px)) calc(16px + var(--ion-safe-area-right, 0px))}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-content:dir(rtl)::part(scroll){margin-inline:calc(12px + var(--ion-safe-area-right, 0px)) calc(16px + var(--ion-safe-area-left, 0px))}
|
|
1
|
+
ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled){--side-max-width: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible) .split-pane-main ion-tab-bar.ios:not(.ios-theme-disabled,.ios26-disabled):not(:where(.ios-theme-vertical-bars *)){width:calc(100% - (18px + var(--ion-safe-area-left, 0px)) - (18px + var(--ion-safe-area-right, 0px)) - 60px - 12px - var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible) .split-pane-main ion-tab-bar.ios:not(.ios-theme-disabled,.ios26-disabled):not(:where(.ios-theme-vertical-bars *)):has(:nth-child(5)){width:calc(100% - (18px + var(--ion-safe-area-left, 0px)) - (18px + var(--ion-safe-area-right, 0px)) - var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-header ion-toolbar{--padding-start: calc(var(--ios-theme-menu-width, var(--ios26-menu-width)) + 4px)}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-header ion-toolbar ion-title.title-default{padding-inline-start:calc(90px + var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-content{--padding-start: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-content ion-header ion-toolbar{--padding-start: 4px}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-footer ion-toolbar{--padding-start: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-tab-bar.ios:not(.ios-theme-disabled,.ios26-disabled):not(:where(.ios-theme-vertical-bars *))[slot=bottom]{inset-inline-start:calc(16px + var(--ion-safe-area-left, 0px) + var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.menu-side-start) .split-pane-main ion-tab-bar.ios:not(.ios-theme-disabled,.ios26-disabled):not(:where(.ios-theme-vertical-bars *))[slot=bottom]:dir(rtl){inset-inline-start:calc(16px + var(--ion-safe-area-right, 0px) + var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-header ion-toolbar{--padding-end: calc(var(--ios-theme-menu-width, var(--ios26-menu-width)) + 4px)}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-header ion-toolbar ion-title.title-default{padding-inline-end:calc(90px + var(--ios-theme-menu-width, var(--ios26-menu-width)))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-content{--padding-end: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-content ion-header ion-toolbar{--padding-start: 4px}ion-split-pane.ios:not(.ios-theme-disabled,.ios26-disabled).split-pane-visible:has(ion-menu.menu-pane-visible):has(ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end) .split-pane-main ion-footer ion-toolbar{--padding-end: var(--ios-theme-menu-width, var(--ios26-menu-width))}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled){--border: none;--background: rgba(var(--ios-theme-menu-background-rgb), var(--ios-theme-menu-background-opacity, 0.96));--max-width: var(--ios-theme-menu-width, var(--ios26-menu-width));position:absolute;top:0;z-index:999}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-start{inset-inline-start:0}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled).menu-side-end{inset-inline-end:0}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled)::part(backdrop){display:none}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled)::part(container){border-radius:0;box-shadow:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-list:not(.ios-theme-disabled,.ios26-disabled,.ion-color){background:rgba(0,0,0,0)}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-item:not(.ios-theme-disabled,.ios26-disabled,.ion-color){--background: transparent}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-content{--background: transparent;--ios26-content-box-shadow-rgb: transparent;--ios-theme-content-box-shadow-rgb: var(--ios26-content-box-shadow-rgb)}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-content::part(scroll){margin-block:calc(var(--ios-theme-floating-safe-area-top, var(--ios26-floating-safe-area-top)) + 6px) var(--ios-theme-floating-safe-area-bottom, var(--ios26-floating-safe-area-bottom));margin-inline:calc(12px + var(--ion-safe-area-left, 0px)) calc(16px + var(--ion-safe-area-right, 0px))}ion-menu.ios:not(.ios-theme-disabled,.ios26-disabled) ion-content:dir(rtl)::part(scroll){margin-inline:calc(12px + var(--ion-safe-area-right, 0px)) calc(16px + var(--ion-safe-area-left, 0px))}
|