/** * @copyright 2010-2015, The Titon Project * @license http://opensource.org/licenses/BSD-3-Clause * @link http://titon.io */ @import "../common"; @include export("flex") { #{$flex-class-region} { @include flex-region; // Alignment &.flow-top, &.flow-left { @include flex-region-align(left); } &.flow-bottom, &.flow-right { @include flex-region-align(right); } &.flow-center { @include flex-region-align(center); } &.flow-between { @include flex-region-align(between); } &.flow-around { @include flex-region-align(around); } // Support RTL @if $text-direction == rtl { writing-mode: vertical-rl; } } #{$flex-class-block} { @include flex-block; @include flex-block-order; // Override parent alignment &.self-top, &.self-left { @include flex-block-align(top); } &.self-bottom, &.self-right { @include flex-block-align(bottom); } &.self-center { @include flex-block-align(center); } &.self-baseline { @include flex-block-align(baseline); } &.self-stretch { @include flex-block-align(stretch); } // Resizing &.grow { flex-grow: 1; } &.no-grow { flex-grow: 0; } &.shrink { flex-shrink: 1; } &.no-shrink { flex-shrink: 0; } } // Global ordering @for $i from 1 through $flex-order-count { .order-#{$i} { @include flex-block-order($i); } } // Responsive sizes @each $size, $options in $flex-sizes { $size-columns: nth($options, 1); @include in-range(nth($options, 2)) { @for $i from 1 through $size-columns { #{$flex-class-block}.#{$size}-#{$i} { flex-basis: flex-span($i, $size-columns); } } // Responsive ordering @for $i from 1 through $flex-order-count { .#{$size}-order-#{$i} { @include flex-block-order($i); } } } } //-------------------- Modifiers --------------------// // Generate a grid of blocks with equal spacing between @if index($flex-modifiers, "grid") { #{$flex-class-modifier-grid} { flex-flow: row wrap; justify-content: flex-start; align-content: flex-start; max-width: none; @if $flex-grid-gutter { margin-top: -$flex-grid-gutter; margin-left: -$flex-grid-gutter; } > #{$flex-class-block} { margin-top: $flex-grid-gutter; margin-left: $flex-grid-gutter; } } } // Display blocks vertically or horizontally regardless of orientation @if index($flex-modifiers, "horizontal") { #{$flex-class-modifier-horizontal} { @include flex-region-orientation(horizontal); } } @if index($flex-modifiers, "vertical") { #{$flex-class-modifier-vertical} { @include flex-region-orientation(vertical); } } // Wrap blocks onto the next line instead of trying to squish into 1 line @if index($flex-modifiers, "wrap") { #{$flex-class-modifier-wrap} { @include flex-region-wrap; } } }