Created
April 12, 2016 07:04
-
-
Save elvism16/a05893a5ef90875db35d2f1e376a800e to your computer and use it in GitHub Desktop.
flexbox-mixin
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Flexbox Mixins | |
// | |
// 1. Flexbox Containers | |
// 2. Flexbox Direction | |
// 3. Flexbox Wrap | |
// 4. Flexbox Order | |
// 5. Flexbox Grow | |
// 6. Flexbox Shrink | |
// 7. Flexbox Basis | |
// 8. Flexbox Justify Content | |
// 9. Flexbox Align Items | |
// 10. Flexbox Align Self | |
// 11. Flexbox Align Content | |
//---------------------------------------------------------------------- | |
// Flexbox Containers | |
// | |
// values: display: flex | inline-flex | |
@mixin flexbox { | |
display: -webkit-box; | |
display: -moz-box; | |
display: -ms-flexbox; | |
display: -webkit-flex; | |
display: flex; | |
} | |
@mixin inline-flex { | |
display: -webkit-inline-box; | |
display: -webkit-inline-flex; | |
display: -moz-inline-flex; | |
display: -ms-inline-flexbox; | |
display: inline-flex; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Direction | |
// | |
// values: row | row-reverse | column | column-reverse | |
// default: row | |
@mixin flex-direction($value: row) { | |
@if $value == row-reverse { | |
-webkit-box-direction: reverse; | |
-webkit-box-orient: horizontal; | |
} @else if $value == column { | |
-webkit-box-direction: normal; | |
-webkit-box-orient: vertical; | |
} @else if $value == column-reverse { | |
-webkit-box-direction: reverse; | |
-webkit-box-orient: vertical; | |
} @else { | |
-webkit-box-direction: normal; | |
-webkit-box-orient: horizontal; | |
} | |
-webkit-flex-direction: $value; | |
-moz-flex-direction: $value; | |
-ms-flex-direction: $value; | |
flex-direction: $value; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Wrap | |
// | |
// values: nowrap | wrap | wrap-reverse | |
// default: nowrap | |
@mixin flex-wrap($value: nowrap) { | |
// No Webkit Box fallback. | |
-webkit-flex-wrap: $value; | |
-moz-flex-wrap: $value; | |
@if $value == nowrap { | |
-ms-flex-wrap: none; | |
} @else { | |
-ms-flex-wrap: $value; | |
} | |
flex-wrap: $value; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Order | |
// | |
// default: 0 | |
@mixin order($int: 0) { | |
-webkit-box-ordinal-group: $int + 1; | |
-webkit-order: $int; | |
-moz-order: $int; | |
-ms-flex-order: $int; | |
order: $int; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Grow | |
// | |
// default: 0 | |
@mixin flex-grow($int: 0) { | |
-webkit-box-flex: $int; | |
-webkit-flex-grow: $int; | |
-moz-flex-grow: $int; | |
-ms-flex-positive: $int; | |
flex-grow: $int; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Shrink | |
// | |
// default: 1 | |
@mixin flex-shrink($int: 1) { | |
-webkit-flex-shrink: $int; | |
-moz-flex-shrink: $int; | |
-ms-flex-negative: $int; | |
flex-shrink: $int; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Basis | |
// | |
// default: auto | |
@mixin flex-basis($value: auto) { | |
-webkit-flex-basis: $value; | |
-moz-flex-basis: $value; | |
-ms-flex-preferred-size: $value; | |
flex-basis: $value; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Justify Content | |
// | |
// values: flex-start | flex-end | center | space-between | space-around | |
// default: flex-start | |
@mixin justify-content($value: flex-start) { | |
@if $value == flex-start { | |
-webkit-box-pack: start; | |
-ms-flex-pack: start; | |
} @else if $value == flex-end { | |
-webkit-box-pack: end; | |
-ms-flex-pack: end; | |
} @else if $value == space-between { | |
-webkit-box-pack: justify; | |
-ms-flex-pack: justify; | |
} @else if $value == space-around { | |
-ms-flex-pack: distribute; | |
} @else { | |
-webkit-box-pack: $value; | |
-ms-flex-pack: $value; | |
} | |
-webkit-justify-content: $value; | |
-moz-justify-content: $value; | |
justify-content: $value; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Align Items | |
// | |
// values: flex-start | flex-end | center | baseline | stretch | |
// default: stretch | |
@mixin align-items($value: stretch) { | |
@if $value == flex-start { | |
-webkit-box-align: start; | |
-ms-flex-align: start; | |
} @else if $value == flex-end { | |
-webkit-box-align: end; | |
-ms-flex-align: end; | |
} @else { | |
-webkit-box-align: $value; | |
-ms-flex-align: $value; | |
} | |
-webkit-align-items: $value; | |
-moz-align-items: $value; | |
align-items: $value; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Align Self | |
// | |
// values: auto | flex-start | flex-end | center | baseline | stretch | |
// default: auto | |
@mixin align-self($value: auto) { | |
// No Webkit Box Fallback. | |
-webkit-align-self: $value; | |
-moz-align-self: $value; | |
@if $value == flex-start { | |
-ms-flex-item-align: start; | |
} @else if $value == flex-end { | |
-ms-flex-item-align: end; | |
} @else { | |
-ms-flex-item-align: $value; | |
} | |
align-self: $value; | |
} | |
//---------------------------------------------------------------------- | |
// Flexbox Align Content | |
// | |
// values: flex-start | flex-end | center | space-between | space-around | stretch | |
// default: stretch | |
@mixin align-content($value: stretch) { | |
// No Webkit Box Fallback. | |
-webkit-align-content: $value; | |
-moz-align-content: $value; | |
@if $value == flex-start { | |
-ms-flex-line-pack: start; | |
} @else if $value == flex-end { | |
-ms-flex-line-pack: end; | |
} @else { | |
-ms-flex-line-pack: $value; | |
} | |
align-content: $value; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment