/* ========================================================================== GRIDLEX Just a Flexbox Grid System ========================================================================== */ @import "gridlex-vars"; .#{$gl-gridName}, [class*="#{$gl-gridName}"]{ box-sizing: border-box; display: flex; flex-flow: row wrap; margin: 0 (-$gl-gutter/2); } .#{$gl-colName}, [class*="#{$gl-colName}-"]{ box-sizing: border-box; flex: 0 0 auto; padding: 0 ($gl-gutter/2) $gl-col-bottom; } .#{$gl-colName}{ flex: 1 1 0%; } .#{$gl-gridName}.#{$gl-colName}, .#{$gl-gridName}[class*="#{$gl-colName}-"]{ margin: 0; padding: 0; } /************************ HELPERS SUFFIXES *************************/ // FOR GRID [class*="#{$gl-gridName}-"]{ // No spacing between cols : noGutter &[class*="-noGutter"]{ margin: 0; > [class*="#{$gl-colName}"]{ padding: 0; } } // No Wrapping &[class*="-noWrap"]{ flex-wrap: nowrap; } // Horizontal alignment &[class*="-center"]{ justify-content: center; } &[class*="-right"]{ justify-content: flex-end; align-self: flex-end; margin-left: auto; } // Vertical alignment &[class*="-top"]{ align-items: flex-start; } &[class*="-middle"]{ align-items: center; } &[class*="-bottom"]{ align-items: flex-end; } // Orders &[class*="-reverse"]{ flex-direction: row-reverse; } &[class*="-column"] { flex-direction: column; > [class*="#{$gl-colName}-"] { flex-basis: auto; } } &[class*="-column-reverse"]{ flex-direction: column-reverse; } // Spaces between and around cols &[class*="-spaceBetween"]{ justify-content: space-between; } &[class*="-spaceAround"]{ justify-content: space-around; } // Equal heights columns &[class*="-equalHeight"] > [class*="#{$gl-colName}"]{ display: flex; > *{ flex: 1; } } // Removes the padding-bottom &[class*="-noBottom"] > [class*="#{$gl-colName}"]{ padding-bottom: 0; } } // FOR COL [class*="#{$gl-colName}-"]{ &[class*="-top"]{ align-self: flex-start; } &[class*="-middle"]{ align-self: center; } &[class*="-bottom"]{ align-self: flex-end; } &[class*="-first"]{ order: -1; } &[class*="-last"]{ order: 1; } } /************************ GRID BY NUMBER *************************/ @include makeGridByNumber(#{$gl-gridName}); @media #{$gl-lg}{ @include makeGridByNumber(_lg); } @media #{$gl-md}{ @include makeGridByNumber(_md); } @media #{$gl-sm}{ @include makeGridByNumber(_sm); } @media #{$gl-xs}{ @include makeGridByNumber(_xs); } /************************ COLS SIZES *************************/ @include makeCol(#{$gl-colName}); @include makeOff(off); @media #{$gl-lg}{ @include makeCol(_lg); @include makeOff(_lg); } @media #{$gl-md}{ @include makeCol(_md); @include makeOff(_md); } @media #{$gl-sm}{ @include makeCol(_sm); @include makeOff(_sm); } @media #{$gl-xs}{ @include makeCol(_xs); @include makeOff(_xs); } /************************ HIDING COLS *************************/ [class*="#{$gl-colName}-"]:not([class*="#{$gl-colName}-0"]) { display: block; } [class*="#{$gl-gridName}"][class*="#{$gl-colName}-"]:not([class*="#{$gl-colName}-0"]) { display: flex; } [class*="#{$gl-colName}-"][class*="#{$gl-colName}-0"] { display: none; } @media #{$gl-lg}{ [class*="#{$gl-gridName}"] { > :not([class*="_lg-0"]){ display: block; } &:not([class*="_lg-0"]) { display: flex; } >[class*="_lg-0"], &[class*="-equalHeight"] > [class*="_lg-0"]{ display: none; } } } @media #{$gl-md}{ [class*="#{$gl-gridName}"] { > :not([class*="_md-0"]){ display: block; } &:not([class*="_md-0"]) { display: flex; } >[class*="_md-0"], &[class*="-equalHeight"] > [class*="_md-0"]{ display: none; } } } @media #{$gl-sm}{ [class*="#{$gl-gridName}"] { > :not([class*="_sm-0"]){ display: block; } &:not([class*="_sm-0"]) { display: flex; } >[class*="_sm-0"], &[class*="-equalHeight"] > [class*="_sm-0"]{ display: none; } } } @media #{$gl-xs}{ [class*="#{$gl-gridName}"] { > :not([class*="_xs-0"]){ display: block; } &:not([class*="_xs-0"]) { display: flex; } >[class*="_xs-0"], &[class*="-equalHeight"] > [class*="_xs-0"]{ display: none; } } }