diff --git a/core/src/components/footer/footer.ios.scss b/core/src/components/footer/footer.ios.scss
index b42fc1bc99..009e4154d2 100644
--- a/core/src/components/footer/footer.ios.scss
+++ b/core/src/components/footer/footer.ios.scss
@@ -9,13 +9,15 @@
}
@supports (backdrop-filter: blur(0)) {
- .footer-translucent-ios {
+ .footer-background {
+ @include position(0, 0, 0, 0);
+
+ position: absolute;
+
backdrop-filter: $footer-ios-translucent-filter;
}
-
.footer-translucent-ios ion-toolbar {
--opacity: .8;
- --backdrop-filter: #{$footer-ios-translucent-filter};
}
}
diff --git a/core/src/components/footer/footer.tsx b/core/src/components/footer/footer.tsx
index 6f8c1237d1..3eb0369d89 100644
--- a/core/src/components/footer/footer.tsx
+++ b/core/src/components/footer/footer.tsx
@@ -40,6 +40,10 @@ export class Footer implements ComponentInterface {
[`footer-translucent-${mode}`]: translucent,
}}
>
+ { mode === 'ios' && translucent &&
+
+ }
+
);
}
diff --git a/core/src/components/header/header.ios.scss b/core/src/components/header/header.ios.scss
index e90212913a..738e4707ee 100644
--- a/core/src/components/header/header.ios.scss
+++ b/core/src/components/header/header.ios.scss
@@ -9,13 +9,15 @@
}
@supports (backdrop-filter: blur(0)) {
- .header-translucent-ios {
+ .header-background {
+ @include position(0, 0, 0, 0);
+
+ position: absolute;
+
backdrop-filter: $header-ios-translucent-filter;
}
-
.header-translucent-ios ion-toolbar {
--opacity: .8;
- --backdrop-filter: #{$header-ios-translucent-filter};
}
}
diff --git a/core/src/components/header/header.tsx b/core/src/components/header/header.tsx
index 4b22f0d157..7cd4a22bfb 100644
--- a/core/src/components/header/header.tsx
+++ b/core/src/components/header/header.tsx
@@ -141,6 +141,7 @@ export class Header implements ComponentInterface {
}
render() {
+ const { translucent } = this;
const mode = getIonMode(this);
const collapse = this.collapse || 'none';
return (
@@ -157,6 +158,10 @@ export class Header implements ComponentInterface {
[`header-translucent-${mode}`]: this.translucent,
}}
>
+ { mode === 'ios' && translucent &&
+
+ }
+
);
}
diff --git a/core/src/utils/transition/ios.transition.ts b/core/src/utils/transition/ios.transition.ts
index 2a3328e9a3..d2fbbc0f55 100644
--- a/core/src/utils/transition/ios.transition.ts
+++ b/core/src/utils/transition/ios.transition.ts
@@ -342,10 +342,14 @@ export const iosTransitionAnimation = (navEl: HTMLElement, opts: TransitionOptio
}
enteringToolBarItems.fromTo('transform', `translateX(${OFF_RIGHT})`, `translateX(${CENTER})`);
+ enteringToolBarBg.beforeClearStyles([OPACITY, 'transform']);
- enteringToolBarBg
- .beforeClearStyles([OPACITY])
- .fromTo(OPACITY, 0.01, 1);
+ const translucentHeader = parentHeader?.translucent;
+ if (!translucentHeader) {
+ enteringToolBarBg.fromTo(OPACITY, 0.01, 1);
+ } else {
+ enteringToolBarBg.fromTo('transform', (isRTL ? 'translateX(-100%)' : 'translateX(100%)'), 'translateX(0px)');
+ }
// forward direction, entering page has a back button
if (!forward) {
@@ -479,12 +483,15 @@ export const iosTransitionAnimation = (navEl: HTMLElement, opts: TransitionOptio
}
leavingToolBarItems.fromTo('transform', `translateX(${CENTER})`, (isRTL ? 'translateX(-100%)' : 'translateX(100%)'));
-
+ leavingToolBarBg.beforeClearStyles([OPACITY, 'transform']);
// leaving toolbar, back direction, and there's no entering toolbar
// should just slide out, no fading out
- leavingToolBarBg
- .beforeClearStyles([OPACITY])
- .fromTo(OPACITY, 1, 0.01);
+ const translucentHeader = parentHeader?.translucent;
+ if (!translucentHeader) {
+ leavingToolBarBg.fromTo(OPACITY, 0.99, 0);
+ } else {
+ leavingToolBarBg.fromTo('transform', 'translateX(0px)', (isRTL ? 'translateX(-100%)' : 'translateX(100%)'));
+ }
if (backButtonEl && !backward) {
const leavingBackBtnText = createAnimation();