| .grid-section { |
| $gridItemSpace: 15%; |
| |
| @mixin gridCol($numOfCols, $flexBasis) { |
| .#{grid-col- + $numOfCols} { |
| @extend %grid-col-base; |
| flex-basis: $flexBasis; |
| &:not(.last-col-in-row):after { |
| flex-basis: $gridItemSpace / $numOfCols; |
| content: ' '; |
| } |
| } |
| } |
| |
| @mixin gridColWithLastColumn($numOfCols, $flexBasis, $flexBasisLast) { |
| .#{grid-col- + $numOfCols} { |
| @extend %grid-col-base; |
| &:not(.last-col-in-row) { |
| flex-basis: $flexBasis; |
| margin-right: 5%; |
| } |
| &.last-col-in-row { |
| flex-basis: $flexBasisLast; |
| } |
| } |
| } |
| |
| &:not(:last-of-type) { |
| padding-bottom: 30px; |
| } |
| |
| .grid-items { |
| display: flex; |
| flex-direction: row; |
| flex-wrap: wrap; |
| } |
| |
| %grid-col-base { |
| flex-shrink: 0; |
| display: flex; |
| } |
| |
| .grid-item { |
| flex: 1; |
| display: flex; |
| flex-direction: column; |
| } |
| |
| .grid-item-stretch { |
| @extend .grid-item; |
| & *:last-child { |
| flex: 1; |
| display: flex; |
| flex-direction: column; |
| } |
| } |
| |
| &.has-last-col-set { |
| @include gridColWithLastColumn(1, 21%, 22%); |
| @include gridColWithLastColumn(2, 47%, 48%); |
| @include gridColWithLastColumn(3, 73%, 74%); |
| @include gridColWithLastColumn(4, 100%, 100%); |
| } |
| |
| &:not(.has-last-col-set) { |
| @include gridCol(1, 33%); |
| @include gridCol(2, 50%); |
| @include gridCol(3, 75%); |
| @include gridCol(4, 100%); |
| } |
| } |