-
Notifications
You must be signed in to change notification settings - Fork 13.4k
feat(col): modernizing Grid component #30658
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: next
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This reverts commit 35903c0.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking pretty good! Just a few issues I found
core/src/components/row/row.scss
Outdated
display: flex; | ||
|
||
flex-wrap: wrap; | ||
|
||
gap: var(--ion-grid-gap, 0px); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will always be 0px
, I believe, since you're setting this var and using it in the same block. Is this intended? Seems redundant.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree and changed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The way you resolved this is sort of the opposite of what I expected. I think you should leave the default and remove the --ion-grid-gap
definition. Defining it in this block means it has to be overwritten here (specifically, on each row individually) and can't be inherited from anywhere else in the app, which sorta subverts the cascading part of cascading style sheets. I think you should remove the initial definition and leave the 0px fallback.
Co-authored-by: Shane <[email protected]>
Co-authored-by: Shane <[email protected]>
Co-authored-by: Shane <[email protected]>
Co-authored-by: Shane <[email protected]>
This reverts commit 1b707c0.
What is the current behavior?
The existing grid component (
ion-grid
,ion-row
, andion-col
) in Ionic was developed several years ago and has not received significant updates since then. As a result, it does not leverage modern CSS features. For example, the gutter (spacing) between columns is implemented using the border property, which is an outdated technique.What is the new behavior?
--ion-grid-gap
: this new CSS variable, will indicate the gap size in the grid. Defaults to0px
- the current value.ion-col
: has a new way to calculate the width of the column. Additionally a new propertyorder
(and responsive variants) was added, and will control the order of the column.ion-row
: uses the newly introduced custom property--ion-grid-gap
. This property will indicate the gap size in the grid.Does this introduce a breaking change?
The properties
pull
andpush
fromion-col
, have been removed. The functionality achieved with them, is now achieved with the new propertyorder
and the existingsize
. More information and migration examples can be read inBREAKING.md
file.Other information