garth-jekyll-theme 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0c7d24f363f16a93a9c916c43935380847caa3e4
4
- data.tar.gz: d8b5596cb6faf40be628107d8f9fc08df51dccc4
3
+ metadata.gz: 004eead2d127310d23252ab056dde4b50ca735a4
4
+ data.tar.gz: 366a373cbd7fb4f7ba3634cded8b6e7787e1213b
5
5
  SHA512:
6
- metadata.gz: 78ca81a207833769ecbdff5b0dd7b71ccd08a4c725030e12f8d042466b5d591729f552fd96dc60e34bee218af0c04fb8f57e5d8d778c5cd01d644e5ef153be36
7
- data.tar.gz: 1aa382c2390853423f1f9a81db24fb4c864863f5e9d7e9248c8963ecc85cbc68d058eb0b071812e1c12924f6ea7af6921d7eec14a13b530dcb9686684312ae7f
6
+ metadata.gz: 5230972b3f270e3de554b8ee1fbb5f7ea680bbd47df90af51030be259caf8f9e4f523ae12f5fa40ef2f3ed7b22f5148adeea2c95e82d6c8f2cd340b2cb4ba8a1
7
+ data.tar.gz: e821bccf321a2286d6c42de058b363b792759230115e6bbb2767ddb97fb645f976b82d86f315476aa1e09b01055340658341556118c6a4500717173a6eb4e5bf
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2016 David Darnes
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # [Garth](https://garth.darn.es/)
2
+ [![Gem Version](https://badge.fury.io/rb/garth-jekyll-theme.svg)](https://badge.fury.io/rb/garth-jekyll-theme)
3
+
4
+ 🥁 A stupidly simple theme for Jekyll, using the official Jekyll theme implementation.
5
+
6
+ ![Screenshot](https://raw.githubusercontent.com/daviddarnes/garth-jekyll-theme/master/screenshot.png)
7
+
8
+ ## Contents
9
+ - [Installation](#installation)
10
+ - [Site settings](#site-settings)
11
+ - [Page layouts](#page-layouts)
12
+ - [Credits](#credits)
13
+
14
+ ## Installation
15
+
16
+ ### As a Fork
17
+
18
+ 1. [Fork the repo](https://github.com/daviddarnes/garth-jekyll-theme#fork-destination-box)
19
+ 2. Clone down the repo with `$ git clone git@github.com:username/reponame.git`
20
+ 3. Delete the `demo/` folder and `screenshot.png` files
21
+ 4. Change the `CNAME` record to your projects' record
22
+ 5. Install bundler with `$ gem install bundler`
23
+ 6. Install gems with `$ bundle install`
24
+ 7. Run Jekyll with `$ bundle exec jekyll serve --watch`
25
+ 8. Begin hacking for your project
26
+
27
+ ### As a Jekyll 3.3 theme gem
28
+
29
+ 1. Download the starter `/demo` content, [quick download link](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/daviddarnes/garth-jekyll-theme/tree/master/demo)
30
+ 2. Install bundler with `$ gem install bundler`
31
+ 3. Install gems with `$ bundle install`
32
+ 4. Run Jekyll with `$ bundle exec jekyll serve --watch`
33
+ 5. Begin hacking for your project
34
+
35
+ ## Site settings
36
+
37
+ You'll need to change the `description`, `title` and `url` to match with the project.
38
+
39
+ ## Page layouts
40
+
41
+ There are 3 layouts; `page`, `post` and `home` (home acts as the font page blog).
42
+
43
+ > **Note:** The Post List Page options are actually in the collection data within the `_config.yml` file, this is so they can be edited with CMSs such as [Siteleaf](https://siteleaf.com)
44
+
45
+ ## Credits
46
+
47
+ - Thanks to [Sassline](https://sassline.com/) for the typographic basis, by [Jake Giltsoff](https://twitter.com/jakegiltsoff)
48
+ - Thanks to [Flexbox mixin](https://github.com/mastastealth/sass-flex-mixin) by [Brian Franco](https://twitter.com/brianfranco)
49
+ - Thanks to [Normalize](https://necolas.github.io/normalize.css/) by [Nicolas Gallagher](https://twitter.com/necolas) and [Jonathan Neal](https://twitter.com/jon_neal).
50
+ - Thanks to [pygments-css](http://richleland.github.io/pygments-css/) for the autumn syntax highlighting, by [Rich Leland](https://twitter.com/richleland)
@@ -0,0 +1,34 @@
1
+ {% if paginator.posts %}
2
+
3
+ <ul class="list list--posts">
4
+ {% for page in paginator.posts %}
5
+ <li class="item item--post">
6
+ <article class="article article--post typeset">
7
+
8
+ <h2><a href="{{ page.url }}" title="{{ page.title }}">{{ page.title }}</a></h2>
9
+ {% include post-meta.html %}
10
+ {{ page.excerpt | markdownify | truncatewords: 60 }}
11
+
12
+ </article>
13
+ </li>
14
+ {% endfor %}
15
+ </ul>
16
+ {% include post-pagination.html %}
17
+
18
+ {% else %}
19
+
20
+ <ul class="list list--posts">
21
+ {% for page in site.posts %}
22
+ <li class="item item--post">
23
+ <article class="article article--post typeset">
24
+
25
+ <h2><a href="{{ page.url }}" title="{{ page.title }}">{{ page.title }}</a></h2>
26
+ {% include post-meta.html %}
27
+ {{ page.excerpt | markdownify | truncatewords: 60 }}
28
+
29
+ </article>
30
+ </li>
31
+ {% endfor %}
32
+ </ul>
33
+
34
+ {% endif %}
@@ -0,0 +1,3 @@
1
+ <small class="small post-meta">
2
+ {% if page.category %}<span class="label label--category">{{ page.category }}</span>&nbsp;&nbsp;&middot;&nbsp;&nbsp;{% endif %}<time datetime="{{ page.date | date_to_xmlschema }}" class="time">{{ page.date | date_to_string }}</time>
3
+ </small>
@@ -0,0 +1,17 @@
1
+ <nav class="nav nav--paginator">
2
+
3
+ {% if paginator.previous_page %}
4
+ <a href="{{ paginator.previous_page_path }}" class="pagination pagination--previous">&larr; Previous</a>
5
+ {% else %}
6
+ <span class="pagination pagination--previous">&larr; Previous</span>
7
+ {% endif %}
8
+
9
+ <span class="pagination pagination--counter">Page: {{ paginator.page }} of {{ paginator.total_pages }}</span>
10
+
11
+ {% if paginator.next_page %}
12
+ <a href="{{ paginator.next_page_path }}" class="pagination pagination--next">Next &rarr;</a>
13
+ {% else %}
14
+ <span class="pagination pagination--next">Next &rarr;</span>
15
+ {% endif %}
16
+
17
+ </nav>
@@ -0,0 +1,7 @@
1
+ <footer class="footer">
2
+ <div class="container">
3
+ <div class="copyright typeset">
4
+ <small class="small">&copy; {{ site.title }} {{ site.time | date: '%Y' }}</small>
5
+ </div>
6
+ </div>
7
+ </footer>
@@ -0,0 +1,6 @@
1
+ <header class="header">
2
+ <div class="container">
3
+ {% include site-logo.html %}
4
+ {% include site-nav.html %}
5
+ </div>
6
+ </header>
@@ -0,0 +1,3 @@
1
+ <a class="logo" href="{{ site.url }}" title="{{ site.title }}">
2
+ <img src="{{ site.logo }}" alt="{{ site.title }} logo"/>
3
+ </a>
@@ -0,0 +1,16 @@
1
+ <nav class="nav">
2
+ <ul class="list list--nav">
3
+ {% for item in site.pages %}
4
+ {% unless item.url contains ".css" or item.url contains "/page" or item.url contains "/404.html" %}
5
+ <li class="item item--nav{% if item.url == page.url %} item--current{% endif %}">
6
+ {% if item.collectionpage %}
7
+ {% assign collectiondata = site.collections | where: "label", item.collectionpage | first %}
8
+ <a href="{{ item.url }}">{{ collectiondata.title }}</a>
9
+ {% else %}
10
+ <a href="{{ item.url }}">{{ item.title }}</a>
11
+ {% endif %}
12
+ </li>
13
+ {% endunless %}
14
+ {% endfor %}
15
+ </ul>
16
+ </nav>
@@ -0,0 +1,21 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en-GB">
3
+ <head>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ {% if page.collectionpage %}
6
+ {% assign collectiondata = site.collections | where: "label", page.collectionpage | first %}
7
+ <title>{{ collectiondata.title }} - {{ site.title }}</title>
8
+ {% else %}
9
+ <title>{{ page.title }} - {{ site.title }}</title>
10
+ {% endif %}
11
+
12
+ <link rel="stylesheet" href="{{ "/assets/styles.css" | relative_url }}">
13
+ <link rel="shortcut icon" href="{{ site.logo }}">
14
+ </head>
15
+ <body>
16
+
17
+ {{ content }}
18
+
19
+ <link href="https://fonts.googleapis.com/css?family=Alegreya+Sans|Neuton" rel="stylesheet">
20
+ </body>
21
+ </html>
@@ -0,0 +1,26 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% include site-header.html %}
6
+
7
+ <main class="main container">
8
+
9
+ <div class="content">
10
+
11
+ <article class="article article--page typeset">
12
+
13
+ {% assign collectiondata = site.collections | where: "label", page.collectionpage | first %}
14
+ <h1>{{ collectiondata.title }}</h1>
15
+
16
+ {{ collectiondata.description | markdownify }}
17
+
18
+ </article>
19
+
20
+ {% include post-list.html %}
21
+
22
+ </div>
23
+
24
+ </main>
25
+
26
+ {% include site-footer.html %}
@@ -0,0 +1,19 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% include site-header.html %}
6
+
7
+ <main class="main container">
8
+
9
+ <article class="article article--page content typeset">
10
+
11
+ <h1>{{ page.title }}</h1>
12
+
13
+ {{ content }}
14
+
15
+ </article>
16
+
17
+ </main>
18
+
19
+ {% include site-footer.html %}
@@ -0,0 +1,19 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% include site-header.html %}
6
+
7
+ <main class="main container">
8
+
9
+ <article class="article article--post content typeset">
10
+
11
+ <h1>{{ page.title }}</h1>
12
+ {% include post-meta.html %}
13
+ {{ content }}
14
+
15
+ </article>
16
+
17
+ </main>
18
+
19
+ {% include site-footer.html %}
@@ -0,0 +1,9 @@
1
+ // Colours
2
+ $color__site--background: #ffefc8;
3
+ $color__site--heading: darken(#46412A, 5%);
4
+ $color__site--body: #46412A;
5
+ $color__site--captions: lighten($color__site--heading, 40%);
6
+ $color__site--link: #5B5BFF;
7
+ $color__site--link--hover: darken($color__site--link, 10%);
8
+ $color__site--link--current: desaturate($color__site--link, 100%);
9
+ $color__site--accent: #5B5BFF;
data/_sass/_flex.scss ADDED
@@ -0,0 +1,394 @@
1
+ // Flexbox Mixins
2
+ // http://philipwalton.github.io/solved-by-flexbox/
3
+ // https://github.com/philipwalton/solved-by-flexbox
4
+ //
5
+ // Copyright (c) 2013 Brian Franco
6
+ //
7
+ // Permission is hereby granted, free of charge, to any person obtaining a
8
+ // copy of this software and associated documentation files (the
9
+ // "Software"), to deal in the Software without restriction, including
10
+ // without limitation the rights to use, copy, modify, merge, publish,
11
+ // distribute, sublicense, and/or sell copies of the Software, and to
12
+ // permit persons to whom the Software is furnished to do so, subject to
13
+ // the following conditions:
14
+ // The above copyright notice and this permission notice shall be included
15
+ // in all copies or substantial portions of the Software.
16
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17
+ // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
+ // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
+ // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
+ // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+ //
24
+ // This is a set of mixins for those who want to mess around with flexbox
25
+ // using the native support of current browsers. For full support table
26
+ // check: http://caniuse.com/flexbox
27
+ //
28
+ // Basically this will use:
29
+ //
30
+ // * Fallback, old syntax (IE10, mobile webkit browsers - no wrapping)
31
+ // * Final standards syntax (FF, Safari, Chrome, IE11, Opera)
32
+ //
33
+ // This was inspired by:
34
+ //
35
+ // * http://dev.opera.com/articles/view/advanced-cross-browser-flexbox/
36
+ //
37
+ // With help from:
38
+ //
39
+ // * http://w3.org/tr/css3-flexbox/
40
+ // * http://the-echoplex.net/flexyboxes/
41
+ // * http://msdn.microsoft.com/en-us/library/ie/hh772069(v=vs.85).aspx
42
+ // * http://css-tricks.com/using-flexbox/
43
+ // * http://dev.opera.com/articles/view/advanced-cross-browser-flexbox/
44
+ // * https://developer.mozilla.org/en-us/docs/web/guide/css/flexible_boxes
45
+
46
+ //----------------------------------------------------------------------
47
+
48
+ // Flexbox Containers
49
+ //
50
+ // The 'flex' value causes an element to generate a block-level flex
51
+ // container box.
52
+ //
53
+ // The 'inline-flex' value causes an element to generate a inline-level
54
+ // flex container box.
55
+ //
56
+ // display: flex | inline-flex
57
+ //
58
+ // http://w3.org/tr/css3-flexbox/#flex-containers
59
+ //
60
+ // (Placeholder selectors for each type, for those who rather @extend)
61
+
62
+ @mixin flexbox {
63
+ display: -webkit-box;
64
+ display: -webkit-flex;
65
+ display: -moz-flex;
66
+ display: -ms-flexbox;
67
+ display: flex;
68
+ }
69
+
70
+ %flexbox { @include flexbox; }
71
+
72
+ //----------------------------------
73
+
74
+ @mixin inline-flex {
75
+ display: -webkit-inline-box;
76
+ display: -webkit-inline-flex;
77
+ display: -moz-inline-flex;
78
+ display: -ms-inline-flexbox;
79
+ display: inline-flex;
80
+ }
81
+
82
+ %inline-flex { @include inline-flex; }
83
+
84
+ //----------------------------------------------------------------------
85
+
86
+ // Flexbox Direction
87
+ //
88
+ // The 'flex-direction' property specifies how flex items are placed in
89
+ // the flex container, by setting the direction of the flex container's
90
+ // main axis. This determines the direction that flex items are laid out in.
91
+ //
92
+ // Values: row | row-reverse | column | column-reverse
93
+ // Default: row
94
+ //
95
+ // http://w3.org/tr/css3-flexbox/#flex-direction-property
96
+
97
+ @mixin flex-direction($value: row) {
98
+ @if $value == row-reverse {
99
+ -webkit-box-direction: reverse;
100
+ -webkit-box-orient: horizontal;
101
+ } @else if $value == column {
102
+ -webkit-box-direction: normal;
103
+ -webkit-box-orient: vertical;
104
+ } @else if $value == column-reverse {
105
+ -webkit-box-direction: reverse;
106
+ -webkit-box-orient: vertical;
107
+ } @else {
108
+ -webkit-box-direction: normal;
109
+ -webkit-box-orient: horizontal;
110
+ }
111
+ -webkit-flex-direction: $value;
112
+ -moz-flex-direction: $value;
113
+ -ms-flex-direction: $value;
114
+ flex-direction: $value;
115
+ }
116
+ // Shorter version:
117
+ @mixin flex-dir($args...) { @include flex-direction($args...); }
118
+
119
+ //----------------------------------------------------------------------
120
+
121
+ // Flexbox Wrap
122
+ //
123
+ // The 'flex-wrap' property controls whether the flex container is single-line
124
+ // or multi-line, and the direction of the cross-axis, which determines
125
+ // the direction new lines are stacked in.
126
+ //
127
+ // Values: nowrap | wrap | wrap-reverse
128
+ // Default: nowrap
129
+ //
130
+ // http://w3.org/tr/css3-flexbox/#flex-wrap-property
131
+
132
+ @mixin flex-wrap($value: nowrap) {
133
+ // No Webkit Box fallback.
134
+ -webkit-flex-wrap: $value;
135
+ -moz-flex-wrap: $value;
136
+ @if $value == nowrap {
137
+ -ms-flex-wrap: none;
138
+ } @else {
139
+ -ms-flex-wrap: $value;
140
+ }
141
+ flex-wrap: $value;
142
+ }
143
+
144
+ //----------------------------------------------------------------------
145
+
146
+ // Flexbox Flow (shorthand)
147
+ //
148
+ // The 'flex-flow' property is a shorthand for setting the 'flex-direction'
149
+ // and 'flex-wrap' properties, which together define the flex container's
150
+ // main and cross axes.
151
+ //
152
+ // Values: <flex-direction> | <flex-wrap>
153
+ // Default: row nowrap
154
+ //
155
+ // http://w3.org/tr/css3-flexbox/#flex-flow-property
156
+
157
+ @mixin flex-flow($values: (row nowrap)) {
158
+ // No Webkit Box fallback.
159
+ -webkit-flex-flow: $values;
160
+ -moz-flex-flow: $values;
161
+ -ms-flex-flow: $values;
162
+ flex-flow: $values;
163
+ }
164
+
165
+ //----------------------------------------------------------------------
166
+
167
+ // Flexbox Order
168
+ //
169
+ // The 'order' property controls the order in which flex items appear within
170
+ // their flex container, by assigning them to ordinal groups.
171
+ //
172
+ // Default: 0
173
+ //
174
+ // http://w3.org/tr/css3-flexbox/#order-property
175
+
176
+ @mixin order($int: 0) {
177
+ -webkit-box-ordinal-group: $int + 1;
178
+ -webkit-order: $int;
179
+ -moz-order: $int;
180
+ -ms-flex-order: $int;
181
+ order: $int;
182
+ }
183
+
184
+ //----------------------------------------------------------------------
185
+
186
+ // Flexbox Grow
187
+ //
188
+ // The 'flex-grow' property sets the flex grow factor. Negative numbers
189
+ // are invalid.
190
+ //
191
+ // Default: 0
192
+ //
193
+ // http://w3.org/tr/css3-flexbox/#flex-grow-property
194
+
195
+ @mixin flex-grow($int: 0) {
196
+ -webkit-box-flex: $int;
197
+ -webkit-flex-grow: $int;
198
+ -moz-flex-grow: $int;
199
+ -ms-flex-positive: $int;
200
+ flex-grow: $int;
201
+ }
202
+
203
+ //----------------------------------------------------------------------
204
+
205
+ // Flexbox Shrink
206
+ //
207
+ // The 'flex-shrink' property sets the flex shrink factor. Negative numbers
208
+ // are invalid.
209
+ //
210
+ // Default: 1
211
+ //
212
+ // http://w3.org/tr/css3-flexbox/#flex-shrink-property
213
+
214
+ @mixin flex-shrink($int: 1) {
215
+ -webkit-flex-shrink: $int;
216
+ -moz-flex-shrink: $int;
217
+ -ms-flex-negative: $int;
218
+ flex-shrink: $int;
219
+ }
220
+
221
+ //----------------------------------------------------------------------
222
+
223
+ // Flexbox Basis
224
+ //
225
+ // The 'flex-basis' property sets the flex basis. Negative lengths are invalid.
226
+ //
227
+ // Values: Like "width"
228
+ // Default: auto
229
+ //
230
+ // http://www.w3.org/TR/css3-flexbox/#flex-basis-property
231
+
232
+ @mixin flex-basis($value: auto) {
233
+ -webkit-flex-basis: $value;
234
+ -moz-flex-basis: $value;
235
+ -ms-flex-preferred-size: $value;
236
+ flex-basis: $value;
237
+ }
238
+
239
+ //----------------------------------------------------------------------
240
+
241
+ // Flexbox "Flex" (shorthand)
242
+ //
243
+ // The 'flex' property specifies the components of a flexible length: the
244
+ // flex grow factor and flex shrink factor, and the flex basis. When an
245
+ // element is a flex item, 'flex' is consulted instead of the main size
246
+ // property to determine the main size of the element. If an element is
247
+ // not a flex item, 'flex' has no effect.
248
+ //
249
+ // Values: none | <flex-grow> <flex-shrink> || <flex-basis>
250
+ // Default: See individual properties (1 1 0).
251
+ //
252
+ // http://w3.org/tr/css3-flexbox/#flex-property
253
+
254
+ @mixin flex($fg: 1, $fs: null, $fb: null) {
255
+
256
+ // Set a variable to be used by box-flex properties
257
+ $fg-boxflex: $fg;
258
+
259
+ // Box-Flex only supports a flex-grow value so let's grab the
260
+ // first item in the list and just return that.
261
+ @if type-of($fg) == 'list' {
262
+ $fg-boxflex: nth($fg, 1);
263
+ }
264
+
265
+ -webkit-box-flex: $fg-boxflex;
266
+ -webkit-flex: $fg $fs $fb;
267
+ -moz-box-flex: $fg-boxflex;
268
+ -moz-flex: $fg $fs $fb;
269
+ -ms-flex: $fg $fs $fb;
270
+ flex: $fg $fs $fb;
271
+ }
272
+
273
+ //----------------------------------------------------------------------
274
+
275
+ // Flexbox Justify Content
276
+ //
277
+ // The 'justify-content' property aligns flex items along the main axis
278
+ // of the current line of the flex container. This is done after any flexible
279
+ // lengths and any auto margins have been resolved. Typically it helps distribute
280
+ // extra free space leftover when either all the flex items on a line are
281
+ // inflexible, or are flexible but have reached their maximum size. It also
282
+ // exerts some control over the alignment of items when they overflow the line.
283
+ //
284
+ // Note: 'space-*' values not supported in older syntaxes.
285
+ //
286
+ // Values: flex-start | flex-end | center | space-between | space-around
287
+ // Default: flex-start
288
+ //
289
+ // http://w3.org/tr/css3-flexbox/#justify-content-property
290
+
291
+ @mixin justify-content($value: flex-start) {
292
+ @if $value == flex-start {
293
+ -webkit-box-pack: start;
294
+ -ms-flex-pack: start;
295
+ } @else if $value == flex-end {
296
+ -webkit-box-pack: end;
297
+ -ms-flex-pack: end;
298
+ } @else if $value == space-between {
299
+ -webkit-box-pack: justify;
300
+ -ms-flex-pack: justify;
301
+ } @else if $value == space-around {
302
+ -ms-flex-pack: distribute;
303
+ } @else {
304
+ -webkit-box-pack: $value;
305
+ -ms-flex-pack: $value;
306
+ }
307
+ -webkit-justify-content: $value;
308
+ -moz-justify-content: $value;
309
+ justify-content: $value;
310
+ }
311
+ // Shorter version:
312
+ @mixin flex-just($args...) { @include justify-content($args...); }
313
+
314
+ //----------------------------------------------------------------------
315
+
316
+ // Flexbox Align Items
317
+ //
318
+ // Flex items can be aligned in the cross axis of the current line of the
319
+ // flex container, similar to 'justify-content' but in the perpendicular
320
+ // direction. 'align-items' sets the default alignment for all of the flex
321
+ // container's items, including anonymous flex items. 'align-self' allows
322
+ // this default alignment to be overridden for individual flex items. (For
323
+ // anonymous flex items, 'align-self' always matches the value of 'align-items'
324
+ // on their associated flex container.)
325
+ //
326
+ // Values: flex-start | flex-end | center | baseline | stretch
327
+ // Default: stretch
328
+ //
329
+ // http://w3.org/tr/css3-flexbox/#align-items-property
330
+
331
+ @mixin align-items($value: stretch) {
332
+ @if $value == flex-start {
333
+ -webkit-box-align: start;
334
+ -ms-flex-align: start;
335
+ } @else if $value == flex-end {
336
+ -webkit-box-align: end;
337
+ -ms-flex-align: end;
338
+ } @else {
339
+ -webkit-box-align: $value;
340
+ -ms-flex-align: $value;
341
+ }
342
+ -webkit-align-items: $value;
343
+ -moz-align-items: $value;
344
+ align-items: $value;
345
+ }
346
+
347
+ //----------------------------------
348
+
349
+ // Flexbox Align Self
350
+ //
351
+ // Values: auto | flex-start | flex-end | center | baseline | stretch
352
+ // Default: auto
353
+
354
+ @mixin align-self($value: auto) {
355
+ // No Webkit Box Fallback.
356
+ -webkit-align-self: $value;
357
+ -moz-align-self: $value;
358
+ @if $value == flex-start {
359
+ -ms-flex-item-align: start;
360
+ } @else if $value == flex-end {
361
+ -ms-flex-item-align: end;
362
+ } @else {
363
+ -ms-flex-item-align: $value;
364
+ }
365
+ align-self: $value;
366
+ }
367
+
368
+ //----------------------------------------------------------------------
369
+
370
+ // Flexbox Align Content
371
+ //
372
+ // The 'align-content' property aligns a flex container's lines within the
373
+ // flex container when there is extra space in the cross-axis, similar to
374
+ // how 'justify-content' aligns individual items within the main-axis. Note,
375
+ // this property has no effect when the flexbox has only a single line.
376
+ //
377
+ // Values: flex-start | flex-end | center | space-between | space-around | stretch
378
+ // Default: stretch
379
+ //
380
+ // http://w3.org/tr/css3-flexbox/#align-content-property
381
+
382
+ @mixin align-content($value: stretch) {
383
+ // No Webkit Box Fallback.
384
+ -webkit-align-content: $value;
385
+ -moz-align-content: $value;
386
+ @if $value == flex-start {
387
+ -ms-flex-line-pack: start;
388
+ } @else if $value == flex-end {
389
+ -ms-flex-line-pack: end;
390
+ } @else {
391
+ -ms-flex-line-pack: $value;
392
+ }
393
+ align-content: $value;
394
+ }