From acbeb4cc2728bfab8b2001c7649bec14c1aef4c2 Mon Sep 17 00:00:00 2001
From: Maria Hutt
Date: Thu, 12 Nov 2026 16:36:02 -0800
Subject: [PATCH 1/5] docs(header, footer, tab-bar): document the scrollEffect
prop
---
docs/angular/add-to-existing.mdx | 2 +-
docs/angular/quickstart.mdx | 4 +-
docs/angular/your-first-app.mdx | 6 +-
.../your-first-app/2-taking-photos.mdx | 4 +-
docs/angular/your-first-app/7-live-reload.mdx | 2 +-
docs/api/buttons.mdx | 8 +-
docs/api/footer.mdx | 12 ++-
docs/api/header.mdx | 14 ++-
docs/api/tab-bar.mdx | 10 ++
docs/api/title.mdx | 6 --
docs/react/add-to-existing.mdx | 2 +-
docs/react/quickstart.mdx | 4 +-
docs/react/your-first-app.mdx | 6 +-
docs/react/your-first-app/2-taking-photos.mdx | 4 +-
docs/react/your-first-app/7-live-reload.mdx | 2 +-
docs/vue/add-to-existing.mdx | 2 +-
docs/vue/quickstart.mdx | 4 +-
docs/vue/your-first-app.mdx | 6 +-
docs/vue/your-first-app/2-taking-photos.mdx | 4 +-
docs/vue/your-first-app/7-live-reload.mdx | 2 +-
.../angular/example_component_html.md | 2 +-
.../v10/footer/custom-scroll-target/demo.html | 12 ++-
.../v10/footer/custom-scroll-target/index.mdx | 1 -
.../footer/custom-scroll-target/javascript.md | 2 +-
.../custom-scroll-target/react/main_tsx.md | 2 +-
.../v10/footer/custom-scroll-target/vue.md | 2 +-
.../fade/angular/example_component_html.md | 2 +-
static/usage/v10/footer/fade/demo.html | 12 ++-
static/usage/v10/footer/fade/index.mdx | 1 -
static/usage/v10/footer/fade/javascript.md | 2 +-
static/usage/v10/footer/fade/react.md | 2 +-
static/usage/v10/footer/fade/vue.md | 2 +-
.../hide/angular/example_component_html.md | 67 ++++++++++++
.../hide/angular/example_component_ts.md | 12 +++
static/usage/v10/footer/hide/demo.html | 88 +++++++++++++++
static/usage/v10/footer/hide/index.mdx | 26 +++++
static/usage/v10/footer/hide/javascript.md | 67 ++++++++++++
static/usage/v10/footer/hide/react.md | 77 +++++++++++++
static/usage/v10/footer/hide/vue.md | 73 +++++++++++++
.../angular/example_component_html.md | 2 +-
static/usage/v10/header/condense/demo.html | 12 ++-
static/usage/v10/header/condense/index.mdx | 1 -
.../usage/v10/header/condense/javascript.md | 2 +-
static/usage/v10/header/condense/react.md | 2 +-
static/usage/v10/header/condense/vue.md | 2 +-
.../angular/example_component_html.md | 2 +-
.../v10/header/custom-scroll-target/demo.html | 12 ++-
.../v10/header/custom-scroll-target/index.mdx | 1 -
.../header/custom-scroll-target/javascript.md | 2 +-
.../custom-scroll-target/react/main_tsx.md | 2 +-
.../v10/header/custom-scroll-target/vue.md | 2 +-
.../fade/angular/example_component_html.md | 2 +-
static/usage/v10/header/fade/demo.html | 12 ++-
static/usage/v10/header/fade/index.mdx | 1 -
static/usage/v10/header/fade/javascript.md | 2 +-
static/usage/v10/header/fade/react.md | 2 +-
static/usage/v10/header/fade/vue.md | 2 +-
.../hide/angular/example_component_html.md | 67 ++++++++++++
.../hide/angular/example_component_ts.md | 12 +++
static/usage/v10/header/hide/demo.html | 88 +++++++++++++++
static/usage/v10/header/hide/index.mdx | 26 +++++
static/usage/v10/header/hide/javascript.md | 67 ++++++++++++
static/usage/v10/header/hide/react.md | 77 +++++++++++++
static/usage/v10/header/hide/vue.md | 73 +++++++++++++
.../hide/angular/example_component_html.md | 81 ++++++++++++++
.../hide/angular/example_component_ts.md | 27 +++++
static/usage/v10/tab-bar/hide/demo.html | 102 ++++++++++++++++++
static/usage/v10/tab-bar/hide/index.mdx | 26 +++++
static/usage/v10/tab-bar/hide/javascript.md | 81 ++++++++++++++
static/usage/v10/tab-bar/hide/react.md | 92 ++++++++++++++++
static/usage/v10/tab-bar/hide/vue.md | 88 +++++++++++++++
.../basic/angular/example_component_html.md | 2 +-
.../collapsible-large-title/basic/demo.html | 12 ++-
.../collapsible-large-title/basic/index.mdx | 2 -
.../basic/javascript.md | 2 +-
.../collapsible-large-title/basic/react.md | 2 +-
.../collapsible-large-title/basic/vue.md | 2 +-
.../buttons/angular/example_component_html.md | 2 +-
.../collapsible-large-title/buttons/demo.html | 12 ++-
.../collapsible-large-title/buttons/index.mdx | 1 -
.../buttons/javascript.md | 2 +-
.../collapsible-large-title/buttons/react.md | 2 +-
.../collapsible-large-title/buttons/vue.md | 2 +-
.../angular/example_component_html.md | 2 +-
.../title/theming/css-properties/demo.html | 12 ++-
.../theming/css-properties/javascript.md | 2 +-
.../theming/css-properties/react/main_tsx.md | 2 +-
.../v10/title/theming/css-properties/vue.md | 2 +-
88 files changed, 1481 insertions(+), 108 deletions(-)
create mode 100644 static/usage/v10/footer/hide/angular/example_component_html.md
create mode 100644 static/usage/v10/footer/hide/angular/example_component_ts.md
create mode 100644 static/usage/v10/footer/hide/demo.html
create mode 100644 static/usage/v10/footer/hide/index.mdx
create mode 100644 static/usage/v10/footer/hide/javascript.md
create mode 100644 static/usage/v10/footer/hide/react.md
create mode 100644 static/usage/v10/footer/hide/vue.md
create mode 100644 static/usage/v10/header/hide/angular/example_component_html.md
create mode 100644 static/usage/v10/header/hide/angular/example_component_ts.md
create mode 100644 static/usage/v10/header/hide/demo.html
create mode 100644 static/usage/v10/header/hide/index.mdx
create mode 100644 static/usage/v10/header/hide/javascript.md
create mode 100644 static/usage/v10/header/hide/react.md
create mode 100644 static/usage/v10/header/hide/vue.md
create mode 100644 static/usage/v10/tab-bar/hide/angular/example_component_html.md
create mode 100644 static/usage/v10/tab-bar/hide/angular/example_component_ts.md
create mode 100644 static/usage/v10/tab-bar/hide/demo.html
create mode 100644 static/usage/v10/tab-bar/hide/index.mdx
create mode 100644 static/usage/v10/tab-bar/hide/javascript.md
create mode 100644 static/usage/v10/tab-bar/hide/react.md
create mode 100644 static/usage/v10/tab-bar/hide/vue.md
diff --git a/docs/angular/add-to-existing.mdx b/docs/angular/add-to-existing.mdx
index 2ef3d723578..dbeaf8f08a9 100644
--- a/docs/angular/add-to-existing.mdx
+++ b/docs/angular/add-to-existing.mdx
@@ -230,7 +230,7 @@ Start by adding a template at `src/app/home/home.html`:
-
+ Home
diff --git a/docs/angular/quickstart.mdx b/docs/angular/quickstart.mdx
index e043b556dda..72401efcaaf 100644
--- a/docs/angular/quickstart.mdx
+++ b/docs/angular/quickstart.mdx
@@ -158,7 +158,7 @@ And the template, in the `home.page.html` file, uses those components:
-
+ Blank
@@ -317,7 +317,7 @@ Update the `ion-content` in your `new.page.html` to include a button and some it
```html title="src/app/new/new.page.html"
-
+ new
diff --git a/docs/angular/your-first-app.mdx b/docs/angular/your-first-app.mdx
index 7db2aaac485..244dafe998c 100644
--- a/docs/angular/your-first-app.mdx
+++ b/docs/angular/your-first-app.mdx
@@ -158,7 +158,7 @@ Open `/src/app/tab2/tab2.page.html`. It contains:
-
+ Tab 2
@@ -179,7 +179,7 @@ Open `/src/app/tab2/tab2.page.html`. It contains:
-
+ Photo Gallery
@@ -200,7 +200,7 @@ We put the visual aspects of our app into ``. In this case, it’s
-
+ Photo Gallery
diff --git a/docs/angular/your-first-app/2-taking-photos.mdx b/docs/angular/your-first-app/2-taking-photos.mdx
index 898e2d6fc99..bc94fd4ca69 100644
--- a/docs/angular/your-first-app/2-taking-photos.mdx
+++ b/docs/angular/your-first-app/2-taking-photos.mdx
@@ -120,7 +120,7 @@ Then, open `tab2.page.html` and call the `addPhotoToGallery()` method when the F
-
+ Photo Gallery
@@ -241,7 +241,7 @@ Next, switch to `tab2.page.html` to display the images. We'll add a [Grid compon
-
+ Photo Gallery
diff --git a/docs/angular/your-first-app/7-live-reload.mdx b/docs/angular/your-first-app/7-live-reload.mdx
index 74dac3b0cf0..4e3becbc920 100644
--- a/docs/angular/your-first-app/7-live-reload.mdx
+++ b/docs/angular/your-first-app/7-live-reload.mdx
@@ -166,7 +166,7 @@ Open `tab2.page.html` and wrap each image in a `
-
+ Photo Gallery
diff --git a/docs/api/buttons.mdx b/docs/api/buttons.mdx
index 2fa0e42d5be..9e9811fe8fa 100644
--- a/docs/api/buttons.mdx
+++ b/docs/api/buttons.mdx
@@ -54,13 +54,7 @@ import Types from '@site/static/usage/v10/buttons/types/index.mdx';
## Collapsible Buttons {/* #collapsible-buttons */}
-The `collapse` property can be set on the buttons to collapse them when the header collapses. This is typically used with [collapsible large titles](./title#collapsible-large-titles).
-
-:::info
-
-This feature is only available for iOS.
-
-:::
+The `collapse` property can be set on the buttons to collapse them when the header collapses. This is typically used with [collapsible large titles](./title.mdx#collapsible-large-titles).
{/* Reuse the playground from the Title directory */}
import CollapsibleLargeTitleButtons from '@site/static/usage/v10/title/collapsible-large-title/buttons/index.mdx';
diff --git a/docs/api/footer.mdx b/docs/api/footer.mdx
index 5d323525e63..8f4460a240c 100644
--- a/docs/api/footer.mdx
+++ b/docs/api/footer.mdx
@@ -37,7 +37,7 @@ import Translucent from '@site/static/usage/v10/footer/translucent/index.mdx';
## Fade Footer {/* #fade-footer */}
-Many native iOS applications have a fade effect on the toolbar. This can be achieved by setting the `collapse` property on the footer to `"fade"`. When the content is scrolled to the end, the background and border on the footer will fade away. This effect will only apply when the mode is `"ios"`.
+Many native iOS applications have a fade effect on the toolbar. This can be achieved by setting the `scrollEffect` property on the footer to `"fade"`. When the content is scrolled to the end, the background and border on the footer will fade away.
import Fade from '@site/static/usage/v10/footer/fade/index.mdx';
@@ -51,6 +51,16 @@ import CustomScrollTarget from '@site/static/usage/v10/footer/custom-scroll-targ
+## Hide Footer {/* #hide-footer */}
+
+The footer can slide out of view as the content is scrolled down, giving the content more room, and slide back in as soon as the content is scrolled up. This can be achieved by setting the `scrollEffect` property on the footer to `"hide"`.
+
+When the footer contains a [tab bar](./tab-bar.mdx), set `scrollEffect` on the footer rather than the tab bar so the whole footer hides together.
+
+import Hide from '@site/static/usage/v10/footer/hide/index.mdx';
+
+
+
## Borders {/* #borders */}
In `"md"` mode, the footer will have a `box-shadow` on the top. In `"ios"` mode, it will receive a `border` on the top. These can be removed by adding the `.ion-no-border` class to the footer.
diff --git a/docs/api/header.mdx b/docs/api/header.mdx
index ee4f2af2d06..25cdc60fd6f 100644
--- a/docs/api/header.mdx
+++ b/docs/api/header.mdx
@@ -37,7 +37,7 @@ import Translucent from '@site/static/usage/v10/header/translucent/index.mdx';
## Condensed Header {/* #condensed-header */}
-Ionic provides the functionality found in native iOS applications to show a large toolbar title and then collapse it to a small title when scrolling. This can be done by adding two headers, one above the content and one inside of the content, and then setting the `collapse` property to `"condense"` on the header inside of the content. This effect will only apply when the mode is "ios".
+Ionic provides the functionality found in native iOS applications to show a large toolbar title and then collapse it to a small title when scrolling. This can be done by adding two headers, one above the content and one inside of the content, and then setting the `scrollEffect` property to `"condense"` on the header inside of the content.
import Condense from '@site/static/usage/v10/header/condense/index.mdx';
@@ -45,9 +45,9 @@ import Condense from '@site/static/usage/v10/header/condense/index.mdx';
## Fade Header {/* #fade-header */}
-Many native iOS applications have a fade effect on the toolbar. This can be achieved by setting the `collapse` property on the header to `"fade"`. When the page is first loaded, the background and border on the header will be hidden. As the content is scrolled, the header will fade back in. This effect will only apply when the mode is "ios".
+Many native iOS applications have a fade effect on the toolbar. This can be achieved by setting the `scrollEffect` property on the header to `"fade"`. When the page is first loaded, the background and border on the header will be hidden. As the content is scrolled, the header will fade back in.
-This functionality can be combined with a [Condensed Header](#condensed-header) as well. The `collapse` property with a value set to `"fade"` should be on the header outside of the content.
+This functionality can be combined with a [Condensed Header](#condensed-header) as well. The `scrollEffect` property with a value set to `"fade"` should be on the header outside of the content.
import Fade from '@site/static/usage/v10/header/fade/index.mdx';
@@ -61,6 +61,14 @@ import CustomScrollTarget from '@site/static/usage/v10/header/custom-scroll-targ
+## Hide Header {/* #hide-header */}
+
+The header can slide out of view as the content is scrolled down, giving the content more room, and slide back in as soon as the content is scrolled up. This can be achieved by setting the `scrollEffect` property on the header to `"hide"`.
+
+import Hide from '@site/static/usage/v10/header/hide/index.mdx';
+
+
+
## Borders {/* #borders */}
In `"md"` mode, the header will have a `box-shadow` on the bottom. In `"ios"` mode, it will receive a `border` on the bottom. These can be removed by adding the `.ion-no-border` class to the header.
diff --git a/docs/api/tab-bar.mdx b/docs/api/tab-bar.mdx
index 4179cea2a01..513584fc6a1 100644
--- a/docs/api/tab-bar.mdx
+++ b/docs/api/tab-bar.mdx
@@ -150,6 +150,16 @@ import InsideTabBar from '@site/static/usage/v10/badge/inside-tab-bar/index.mdx'
+## Hide Tab Bar {/* #hide-tab-bar */}
+
+The tab bar can slide out of view as the content is scrolled down, giving the content more room, and slide back in as soon as the content is scrolled up. This can be achieved by setting the `scrollEffect` property on the tab bar to `"hide"`.
+
+When the tab bar is inside a [footer](./footer.mdx), `scrollEffect` on the tab bar is ignored. Set it on the footer instead so the whole footer hides together.
+
+import Hide from '@site/static/usage/v10/tab-bar/hide/index.mdx';
+
+
+
## Properties {/* #properties */}
diff --git a/docs/api/title.mdx b/docs/api/title.mdx
index c3d5077b68d..297420e0ef4 100644
--- a/docs/api/title.mdx
+++ b/docs/api/title.mdx
@@ -33,12 +33,6 @@ import Basic from '@site/static/usage/v10/title/basic/index.mdx';
The large title will display when the [content](./content) is scrolled to the start of the scroll container. When the title is scrolled behind the header, the condensed title will fade in.
-:::info
-
-This feature is only available for iOS.
-
-:::
-
import CollapsibleLargeTitle from '@site/static/usage/v10/title/collapsible-large-title/basic/index.mdx';
diff --git a/docs/react/add-to-existing.mdx b/docs/react/add-to-existing.mdx
index d74edc57776..0af2584f7ee 100644
--- a/docs/react/add-to-existing.mdx
+++ b/docs/react/add-to-existing.mdx
@@ -243,7 +243,7 @@ const Home = () => {
-
+ Home
diff --git a/docs/react/quickstart.mdx b/docs/react/quickstart.mdx
index 972203a096a..194468d86ed 100644
--- a/docs/react/quickstart.mdx
+++ b/docs/react/quickstart.mdx
@@ -136,7 +136,7 @@ const Home: React.FC = () => {
-
+ Blank
@@ -205,7 +205,7 @@ const New: React.FC = () => {
-
+ New
diff --git a/docs/react/your-first-app.mdx b/docs/react/your-first-app.mdx
index fa052a476d2..775b0af10fb 100644
--- a/docs/react/your-first-app.mdx
+++ b/docs/react/your-first-app.mdx
@@ -155,7 +155,7 @@ const Tab2: React.FC = () => {
-
+ Tab 2
@@ -180,7 +180,7 @@ export default Tab2;
-
+
{/* CHANGE: Update title */}
Photo Gallery
@@ -212,7 +212,7 @@ const Tab2: React.FC = () => {
-
+ Photo Gallery
diff --git a/docs/react/your-first-app/2-taking-photos.mdx b/docs/react/your-first-app/2-taking-photos.mdx
index b65238b780b..0120608ab08 100644
--- a/docs/react/your-first-app/2-taking-photos.mdx
+++ b/docs/react/your-first-app/2-taking-photos.mdx
@@ -63,7 +63,7 @@ const Tab2: React.FC = () => {
-
+ Photo Gallery
@@ -233,7 +233,7 @@ const Tab2: React.FC = () => {
-
+ Photo Gallery
diff --git a/docs/react/your-first-app/7-live-reload.mdx b/docs/react/your-first-app/7-live-reload.mdx
index f93cf02adb3..29381ae0d47 100644
--- a/docs/react/your-first-app/7-live-reload.mdx
+++ b/docs/react/your-first-app/7-live-reload.mdx
@@ -122,7 +122,7 @@ const Tab2: React.FC = () => {
-
+ Photo Gallery
diff --git a/docs/vue/add-to-existing.mdx b/docs/vue/add-to-existing.mdx
index 863fdd2358b..2adc19f3c05 100644
--- a/docs/vue/add-to-existing.mdx
+++ b/docs/vue/add-to-existing.mdx
@@ -194,7 +194,7 @@ Create a new file at `src/views/HomePage.vue` with the following:
-
+ Home
diff --git a/docs/vue/quickstart.mdx b/docs/vue/quickstart.mdx
index 9be48c4edb8..6e52dc20e99 100644
--- a/docs/vue/quickstart.mdx
+++ b/docs/vue/quickstart.mdx
@@ -136,7 +136,7 @@ The Home page component, defined in `HomePage.vue`, imports the Ionic components
-
+ Blank
@@ -207,7 +207,7 @@ Create a new page at `NewPage.vue`:
-
+ New
diff --git a/docs/vue/your-first-app.mdx b/docs/vue/your-first-app.mdx
index 9bccc512350..5660e519054 100644
--- a/docs/vue/your-first-app.mdx
+++ b/docs/vue/your-first-app.mdx
@@ -155,7 +155,7 @@ Open `/src/views/Tab2Page.vue`. It contains:
-
+ Tab 2
@@ -184,7 +184,7 @@ import ExploreContainer from '@/components/ExploreContainer.vue';
-
+ Photo Gallery
@@ -208,7 +208,7 @@ We put the visual aspects of our app into ``. In this case, it’s
-
+ Photo Gallery
diff --git a/docs/vue/your-first-app/2-taking-photos.mdx b/docs/vue/your-first-app/2-taking-photos.mdx
index 4aafcf8da82..41ec2ea9fb8 100644
--- a/docs/vue/your-first-app/2-taking-photos.mdx
+++ b/docs/vue/your-first-app/2-taking-photos.mdx
@@ -53,7 +53,7 @@ Next, in `Tab2Page.vue`, import the `usePhotoGallery()` method and destructure i
-
+ Photo Gallery
@@ -203,7 +203,7 @@ Next, switch to `Tab2Page.vue` to display the images. We'll add a [Grid componen
-
+ Photo Gallery
diff --git a/docs/vue/your-first-app/7-live-reload.mdx b/docs/vue/your-first-app/7-live-reload.mdx
index 214a6735b2f..4a5f2069a36 100644
--- a/docs/vue/your-first-app/7-live-reload.mdx
+++ b/docs/vue/your-first-app/7-live-reload.mdx
@@ -146,7 +146,7 @@ Wrap each image in a `
-
+ Photo Gallery
diff --git a/static/usage/v10/footer/custom-scroll-target/angular/example_component_html.md b/static/usage/v10/footer/custom-scroll-target/angular/example_component_html.md
index a0429f5e23b..96bd30313be 100644
--- a/static/usage/v10/footer/custom-scroll-target/angular/example_component_html.md
+++ b/static/usage/v10/footer/custom-scroll-target/angular/example_component_html.md
@@ -61,7 +61,7 @@