Skip to content

chore(git): merge FW-7285 into ionic-modular - #31571

Merged
brandyscarney merged 5 commits into
ionic-modularfrom
FW-7285
Oct 14, 2026
Merged

brandyscarney merged 5 commits into
ionic-modularfrom
FW-7285

Conversation

@brandyscarney

Copy link
Copy Markdown
Member

No description provided.

@vercel

vercel Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ionic-framework Ready Ready Preview Oct 14, 2026 2:17pm UTC

Request Review

@github-actions github-actions Bot added the package: core @ionic/core package label Oct 14, 2026
brandyscarney and others added 5 commits October 14, 2026 10:12
Adds the `xxl` breakpoint to `ion-grid` and `ion-col`.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Adds a shared breakpoints utility that resolves the screen breakpoints
from config, validating each value and falling back to the default per
key. The `xs` screen breakpoint defaults to `0` and cannot be changed.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Issue number: internal

---------

## What is the current behavior?

The previous PR in this stack added the `screenBreakpoints` config
option and the `@utils/breakpoints` helpers, but nothing consumes them
yet.

`ion-grid` gets its responsive padding and fixed widths purely from
`@media` queries, with the thresholds compiled into the CSS. `ion-col`
only expresses per-breakpoint values through breakpoint-suffixed
properties (`size-xs` through `size-xl`, plus the `order-*` and
`offset-*` equivalents). Neither reads the configured breakpoints, and
neither can target `xxl`.

`ion-grid` also declared its own `ION_GRID_BREAKPOINTS` /
`IonGridBreakpoint` (carrying a `TODO(FW-7285)`) rather than using the
shared type.

## What is the new behavior?

- Grid and column padding and fixed widths now follow the
`screenBreakpoints` config. They change at the configured widths rather
than at thresholds fixed when the framework was built, so moving a
breakpoint moves the layout with it.
- The default fixed widths assume the default thresholds. Lowering a
threshold without lowering its width leaves the grid wider than the
screen, where `max-width: 100%` clamps it and it is no longer fixed. Set
the matching `--ion-grid-breakpoint-*-width` variables alongside the
config.
- `ion-col` accepts an object of breakpoint values for `size`, `order`
and `offset`: `col.size = { xs: 12, md: 6 }`. This is resolved against
the configured breakpoints. `xxl` is added to this object. An empty
string or `null` at a breakpoint resets that column to the default flex
layout.
- All suffixed properties are **deprecated**, but not removed. They
still work and log a deprecation warning. If both forms are set for the
same property, the object form wins and the suffixed ones are ignored
with a warning. They will be removed in a future major release.
- `ION_GRID_BREAKPOINTS` / `IonGridBreakpoint` and `ION_COL_BREAKPOINTS`
/ `IonColBreakpoint` are replaced by the shared `ScreenBreakpoint`.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

The `size`, `order`, and `offset` prop types have been widened from
`string | undefined` to `BreakpointMap<string | number | null> | number
| string | undefined`. The suffixed properties continue to work as
before.

`BREAKING.md` has been updated under 10.x with migration guidance for
these deprecations. The `push`/`pull` entry has also been moved from the
Grid section to Col, where the properties are defined.

## Other information


[Preview](https://ionic-framework-git-fw-7285-3-grid-col-ionic1.vercel.app/src/components/grid/test/breakpoints/)

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
The gallery now uses the shared screen breakpoints and respects the
`screenBreakpoints` config. Breakpoints are still matched against the
gallery's own width rather than the width of the screen, which is now
noted in the properties.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
Issue number: internal

---------

## What is the current behavior?

The `when` property accepts a CSS media query, a boolean, or one of the
shortcut expressions `"xs"` through `"xl"` and `"never"`. The shortcuts
map to fixed widths that cannot be changed. The default value is
`'(min-width: 992px)'`.

## What is the new behavior?

- The shortcuts resolve through the global screen breakpoints, so
changing a breakpoint with the `screenBreakpoints` config also changes
the width at which the split pane appears.
- `"xxl"` is now a supported shortcut.
- The default value is now the `"lg"` shortcut. It resolves to the same
`992px` unless `lg` is configured otherwise.
- Media queries, booleans and `"never"` behave exactly as before.

## Does this introduce a breaking change?

- [x] Yes
- [ ] No

The default value of `when` changed from `'(min-width: 992px)'` to
`'lg'`. The default behavior is unchanged, but code that reads or
compares `when` against the old literal needs updating.

## Other information


[Preview](https://ionic-framework-git-fw-7285-5-split-pane-ionic1.vercel.app/src/components/split-pane/test/when/)

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
@brandyscarney brandyscarney changed the title merge FW-7285 chore(git): merge FW-7285 into ionic-modular Oct 14, 2026
@brandyscarney
brandyscarney marked this pull request as ready for review October 14, 2026 14:31
@brandyscarney
brandyscarney requested a review from a team as a code owner October 14, 2026 14:31
@brandyscarney
brandyscarney requested a review from ShaneK October 14, 2026 14:31
@brandyscarney
brandyscarney merged commit 3589bf7 into ionic-modular Oct 14, 2026
54 of 55 checks passed
@brandyscarney
brandyscarney deleted the FW-7285 branch October 14, 2026 14:35

This branch was successfully deployed

1 active deployment
Preview — c4a1a405 Deployed Oct 14, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: core @ionic/core package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant