Skip to content

Instantly share code, notes, and snippets.

@arlg
Created March 12, 2018 15:15
Show Gist options
  • Save arlg/23917948eba04d24a5e513e6ffca0a8f to your computer and use it in GitHub Desktop.
Save arlg/23917948eba04d24a5e513e6ffca0a8f to your computer and use it in GitHub Desktop.
Pcss grid (flex fallback)
/* https://stackoverflow.com/questions/20626685/better-way-to-set-distance-between-flexbox-items */
.grid{
display: flex;
flex-flow: row wrap;
justify-content: space-between;
margin-top: 3rem;
--num: 1;
/* No Grid support = flex */
> *{
flex-basis: calc(1/var(--num)*100% - (1 - 1/var(--num))*var(--col-gap));
width: calc(1/var(--num)*100% - (1 - 1/var(--num))*var(--col-gap));
}
grid-template-columns: repeat(var(--num), 3fr);
/* Modifications responsive */
@media ( --break-min-sm ){
&.grid-4-columns{ --num: 2; }
&.grid-3-columns{ --num: 2; }
&.grid-6-columns{ --num: 2; }
}
@media ( --break-min-md ){
&.grid-4-columns{ --num: 3; }
&.grid-6-columns{ --num: 3; }
}
@media (--break-min-lg){
&.grid-4-columns{ --num: 4; }
&.grid-3-columns{ --num: 3; }
&.grid-6-columns{ --num: 6; }
}
@supports (display: grid) {
justify-content: initial;
display: grid;
align-items: start;
grid-gap: var(--col-gap);
> * {
width: auto;
flex-basis: auto;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment