UNPKG

flexmix

Version:

A Sass mixing that makes working with flexbox ease and quick!

123 lines (85 loc) 3.78 kB
# Flexmix > A Sass mixin that make your work with flexbox easy and quick! ### Installation You can get it on npm: ```` npm install flexmix --save ```` or bower: ```` bower install flexmix --save ```` ### Setup Just `@import` flexmix in your sass or scss file and you're good to go. ### Usage #### So.. do you wanna be a cool kid and use flexbox on your project? No problem! flexmix is a easy-to-use sass mixin(actually, more like a shortcut) that helps you to write flexbox properties as quick as possible. check this out: .my-container{ @include flexmix(row, nowrap, flex-start, center, center); } // results in: .my-container{ display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: flex-start; align-items: center; align-content: center; } *If you wanna know more about flexbox, see this [complete guide to flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) by Chris Coyier on css-tricks* That was pretty easy! The only rule is the order of things. *For now, flexmix only works if you follow this order of properties on the mixin:* `flex-direction` > `flex-wrap` > `justify-content` > `align-items` > `align-content` "Why?" you may ask. Well, at this moment I can't figure it out how to set us free from this, but, if you my dear fellow sass-hacker-master-coder-extreme-developer know how to do it, just feel free to fork me =) ## ...but, you may also ask: ##### "Ok, I got it. But can I do this quickly?" ##### "I have bills to pay! Can it be more faster?" ##### "My cat is having some trouble to poop in the right place, can you help me?" My answer for you is: Yes! Sure! Probably not. check this: my-second-container{ @include flexmix(r, nw, fs, c, c); } // results in: my-second-container{ display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: flex-start; align-items: center; align-content: center; } just like that! You can even shorten the mixin name to `@include flmx()` or `@include fm()` and use both ways to write. In fact, you can mix everything. Whatever that works for you. ```` @include fm(row, nw, c, space-around, s); ```` *or* ```` @include flmx(row, rr, fs, baseline, center); ```` *or* ```` @include flexmix(rr, wr, c, s, c); ```` Now you can write flexbox properties really really fast. just follow the ***only rule*** and you're a good to go. Take a look on the shortcuts names bellow: ## Properties and shortcuts: | flex-direction | flex-wrap | justify-content | | ------------- | ------------- | ----------- | | `row` *or* `r` | `wrap` *or* `w` | `flex-start` *or* `fs` | | `row-reverse` *or* `rr` | `nowrap` *or* `nw` | `flex-end` *or* `fe` | | `column` *or* `cl` | `wrap-reverse` *or* `wr` | `center` *or* `c` | | `column-reverse` *or* `clr` | | `space-between` *or* `sb` | | | | `space-around` *or* `sa` | | align-items | align-content | | ------------- | ------------- | | `flex-start` *or* `fs` | `flex-start` *or* `fs` | | `flex-end` *or* `fe` | `flex-end` *or* `fe` | | `center` *or* `c` | `center` *or* `c` | | `baseline` *or* `b` | `space-between` *or* `sb` | | `stretch` *or* `s` | `space-around` *or* `sa` | | | `stretch` *or* `s` | **disclaimer:** For now, I don't have any plans to make flexmix work for flexbox items, because of the `flex:` shorthand that is already really easy to use. ## Next step My next step is provide snippets for both Atom and Sublime Text and make this tool more natural as possible to your workflow. ## License This project is licensed under the terms of the [MIT License](http://mit-license.org/).