Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
c54f257
fix(modal): respect safe area insets on tablet-sized screens
ShaneK Dec 23, 2025
f66c84a
fix(modal): dynamically apply safe-area insets based on viewport edge…
ShaneK Dec 26, 2025
fea0a3d
fix(modal): dynamically handle safe-area insets based on modal type a…
ShaneK Dec 26, 2025
b87cd07
chore(): add updated snapshots
Ionitron Dec 26, 2025
61dc7eb
chore(): add updated snapshots
Ionitron Dec 26, 2025
415245b
resetting unchanged snapshot
ShaneK Dec 26, 2025
4b7f2fa
Merge branch 'main' of github.com:ionic-team/ionic-framework into FW-…
ShaneK Dec 26, 2025
61b588c
Merge branch 'main' of github.com:ionic-team/ionic-framework into FW-…
ShaneK Dec 31, 2025
3557925
fix(modal): dynamically handle safe-area insets for edge-to-edge mode
ShaneK Dec 31, 2025
3fac5cc
chore(): add updated snapshots
Ionitron Dec 31, 2025
d6eb8ce
fix(modal): apply safe-area padding to card modals on phones
ShaneK Jan 2, 2026
fa16c3a
chore: test fix
ShaneK Jan 2, 2026
39b15cb
chore: fixing phone viewport tests
ShaneK Jan 2, 2026
9c404a6
Merge branch 'main' of github.com:ionic-team/ionic-framework into FW-…
ShaneK Jan 5, 2026
4a165bc
fix(modal): correct safe-area handling for MD mode and edge detection
ShaneK Jan 5, 2026
7c197c2
fix(popover): extending safe are protections to top/bottom overlap
ShaneK Jan 5, 2026
4fe98a4
fix(content): apply safe-area insets when header/footer absent
ShaneK Jan 6, 2026
fc49604
chore(test): zero out safe-area insets in test environments
ShaneK Jan 6, 2026
48e4bc4
fix(content): detect header/footer wrapped in custom components
ShaneK Jan 7, 2026
a5bd1dd
chore(): add updated snapshots
Ionitron Jan 7, 2026
553aa65
chore(tests): fixing tests having issues with mutation observers
ShaneK Jan 7, 2026
26b6b7b
fix(content): exclude nested content from safe-area handling
ShaneK Jan 8, 2026
a63afa3
fix(modal): addressing edge cases, cleaning up
ShaneK Jan 8, 2026
e953f7b
chore(tests): fix safe-area tests for Mobile Firefox
ShaneK Jan 8, 2026
095b72e
fix(content): detect dynamic tab bar changes for safe-area handling
ShaneK Jan 9, 2026
f9159e1
fix(content): support side safe area content
ShaneK Jan 9, 2026
0174a39
chore(): add updated snapshots
Ionitron Jan 9, 2026
3b7beca
chore(lint): ignore disallowed property in content.scss
ShaneK Jan 9, 2026
8ee1069
Reverting changes to be focused on modal and popover safe area support
ShaneK Jan 12, 2026
d8abf4c
chore(): add updated snapshots
Ionitron Jan 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 5 additions & 1 deletion core/src/components/modal/gestures/sheet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ export const createSheetGesture = (
expandToScroll: boolean,
getCurrentBreakpoint: () => number,
onDismiss: () => void,
onBreakpointChange: (breakpoint: number) => void
onBreakpointChange: (breakpoint: number) => void,
onGestureMove?: () => void
) => {
// Defaults for the sheet swipe animation
const defaultBackdrop = [
Expand Down Expand Up @@ -423,6 +424,9 @@ export const createSheetGesture = (

offset = clamp(0.0001, processedStep, maxStep);
animation.progressStep(offset);

// Notify modal of position change for safe-area updates
onGestureMove?.();
};

const onEnd = (detail: GestureDetail) => {
Expand Down
6 changes: 5 additions & 1 deletion core/src/components/modal/gestures/swipe-to-close.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ export const createSwipeToCloseGesture = (
el: HTMLIonModalElement,
animation: Animation,
statusBarStyle: StatusBarStyle,
onDismiss: () => void
onDismiss: () => void,
onGestureMove?: () => void
) => {
/**
* The step value at which a card modal
Expand Down Expand Up @@ -199,6 +200,9 @@ export const createSwipeToCloseGesture = (

animation.progressStep(clampedStep);

// Notify modal of position change for safe-area updates
onGestureMove?.();

/**
* When swiping down half way, the status bar style
* should be reset to its default value.
Expand Down
4 changes: 0 additions & 4 deletions core/src/components/modal/modal.scss
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,6 @@ ion-backdrop {
:host {
--width: #{$modal-inset-width};
--height: #{$modal-inset-height-small};
--ion-safe-area-top: 0px;
--ion-safe-area-bottom: 0px;
--ion-safe-area-right: 0px;
--ion-safe-area-left: 0px;
}
}

Expand Down
Loading
Loading