├── .gitignore
├── Gemfile
├── LICENCE
├── README.md
├── _config.yml
├── _includes
├── footer.html
├── google_analytics.html
├── head.html
├── header.html
└── javascripts.html
├── _layouts
├── default.html
├── page.html
└── post.html
├── _posts
├── 2014-08-29-welcome-to-jekyll.markdown
└── 2014-11-30-mediator_features.markdown
├── _sass
├── _base.scss__
├── _layout.scss__
├── _syntax-highlighting.scss
└── bourbon
│ ├── _bourbon-deprecated-upcoming.scss
│ ├── _bourbon.scss
│ ├── addons
│ ├── _button.scss
│ ├── _clearfix.scss
│ ├── _directional-values.scss
│ ├── _ellipsis.scss
│ ├── _font-family.scss
│ ├── _hide-text.scss
│ ├── _html5-input-types.scss
│ ├── _position.scss
│ ├── _prefixer.scss
│ ├── _retina-image.scss
│ ├── _size.scss
│ ├── _timing-functions.scss
│ ├── _triangle.scss
│ └── _word-wrap.scss
│ ├── css3
│ ├── _animation.scss
│ ├── _appearance.scss
│ ├── _backface-visibility.scss
│ ├── _background-image.scss
│ ├── _background.scss
│ ├── _border-image.scss
│ ├── _border-radius.scss
│ ├── _box-sizing.scss
│ ├── _calc.scss
│ ├── _columns.scss
│ ├── _filter.scss
│ ├── _flex-box.scss
│ ├── _font-face.scss
│ ├── _font-feature-settings.scss
│ ├── _hidpi-media-query.scss
│ ├── _hyphens.scss
│ ├── _image-rendering.scss
│ ├── _keyframes.scss
│ ├── _linear-gradient.scss
│ ├── _perspective.scss
│ ├── _placeholder.scss
│ ├── _radial-gradient.scss
│ ├── _transform.scss
│ ├── _transition.scss
│ └── _user-select.scss
│ ├── functions
│ ├── _assign.scss
│ ├── _color-lightness.scss
│ ├── _flex-grid.scss
│ ├── _golden-ratio.scss
│ ├── _grid-width.scss
│ ├── _modular-scale.scss
│ ├── _px-to-em.scss
│ ├── _px-to-rem.scss
│ ├── _strip-units.scss
│ ├── _tint-shade.scss
│ ├── _transition-property-name.scss
│ └── _unpack.scss
│ ├── helpers
│ ├── _convert-units.scss
│ ├── _gradient-positions-parser.scss
│ ├── _is-num.scss
│ ├── _linear-angle-parser.scss
│ ├── _linear-gradient-parser.scss
│ ├── _linear-positions-parser.scss
│ ├── _linear-side-corner-parser.scss
│ ├── _radial-arg-parser.scss
│ ├── _radial-gradient-parser.scss
│ ├── _radial-positions-parser.scss
│ ├── _render-gradients.scss
│ ├── _shape-size-stripper.scss
│ └── _str-to-num.scss
│ └── settings
│ ├── _asset-pipeline.scss
│ ├── _prefixer.scss
│ └── _px-to-em.scss
├── about.md
├── assets
├── article_images
│ ├── 2014-08-29-welcome-to-jekyll
│ │ └── desktop.JPG
│ ├── 2014-11-30-mediator_features
│ │ ├── night-track-mobile.JPG
│ │ └── night-track.JPG
│ └── about
│ │ └── carb_book_logo.png
├── images
│ ├── author.jpg
│ ├── background_image.jpg
│ ├── cA4aKEIPQrerBnp1yGHv_IMG_9534-3-2.jpg
│ ├── df_logo.jpg
│ ├── favicon.png
│ ├── screenshot1.jpg
│ ├── screenshot2.jpg
│ └── screenshot3.jpg
└── js
│ ├── index.js
│ ├── jquery.fitvids.js
│ ├── min
│ ├── highlight.pack-ck.js
│ ├── index-ck.js
│ ├── jquery.fitvids-ck.js
│ ├── jquery.ghostHunter.min-ck.js
│ └── readingTime.min-ck.js
│ └── readingTime.min.js
├── css
├── main.sass
├── normalize.css
└── print.css
├── favicon.ico
├── feed.xml
└── index.html
/.gitignore:
--------------------------------------------------------------------------------
1 | _site
2 | .sass-cache
3 | .DS_Store
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | # 'github-pages' includes 'jekyll' gem
4 | gem 'github-pages'
5 | gem 'bourbon'
6 | gem 'jemoji'
--------------------------------------------------------------------------------
/LICENCE:
--------------------------------------------------------------------------------
1 | The mediator Jekyll theme is licenced under MIT License (MIT)
2 |
3 | Copyright (c) 2014 Dirk Fabisch
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
13 | all 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
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | mediator
2 | ========
3 |
4 | A medium inspired Jekyll blog theme. The basic idea came from the Ghost theme
5 | [Readium 2.0](http://www.svenread.com/readium-ghost-theme/). I use mediator on my own blog [The Base](http://blog.base68.com).
6 |
7 | Screenshots
8 | --------
9 | 
10 | 
11 | 
12 |
13 | Features
14 | -------
15 | * Fully Responsive layout
16 | * Use header images in articles, if you want to (add tag "image" and url to the image in the front matter section of a post)
17 | * Minimal design
18 | * Featured article support
19 | * FontAwesome implemented for easy use of icons fonts
20 | * Free & Open Source Font usage
21 |
22 | Getting Started
23 | ---
24 | - [Fork this repository](https://github.com/dirkfabisch/mediator)
25 | - Clone it: `git clone https://github.com/YOUR-USER/mediator`
26 | - Install the requried gems ([GitHub Pages](https://github.com/github/pages-gem), [Bourbon](https://github.com/thoughtbot/bourbon) and [Jekyll](https://github.com/jekyll/jekyll), [Jemoji](https://github.com/jekyll/jemoji)): `bundle install`
27 | - Run the jekyll server: `bundle exec jekyll serve`
28 |
29 | You should have a server up and running locally at .
30 |
31 | Configuration
32 | -----
33 |
34 | The main settings happen in side of the _config.yml file:
35 |
36 | ### Site
37 |
38 | Main settings for the site
39 |
40 | * **title**: name of your site
41 | * **description**: description of your site
42 | * **logo**: small logo for the site (300x * 300x)
43 | * **cover**: large background image on the index page
44 |
45 | * **name**: name site owner
46 | * **email**: mail address of the site owner
47 | * **author**: author name
48 | * **author_image**: small image of author (300x * 300px)
49 | * **disqus**: add a disqus forum for your post
50 |
51 | ### Social
52 |
53 | The template allows to add all major social platforms to your site.
54 | Fill the the form for each platform. If you leave the share_* entries empty, the sharing buttons below a post are not shown. If you leave the **url** and **desc** empty the icons are not shown on the index page, but the share icons on the article pages remains untouched (Thanks to [Phil](https://github.com/philsturgeon))
55 |
56 | * **icon**: name of social platform (must match a name of [font-awsome](http://fortawesome.github.io/Font-Awesome/) icon set )
57 | * **url**: url of your account
58 | * **desc**: slogan of the platform
59 | * **share_url**: share url
60 | * **share_title**: first part of url for the title
61 | * **share_link**: second part of the share url for the link to the post
62 |
63 | The Liquid template engine will magical combine the different parts to a share url.
64 |
65 | ```
66 | http://twitter.com/share?text=post_title&url=post_url
67 | ````
68 |
69 | See [_config.yml](https://github.com/dirkfabisch/mediator/blob/master/_config.yml) for more examples.
70 |
71 | Licensing
72 | ---------
73 |
74 | [MIT](https://github.com/dirkfabisch/mediator/blob/master/LICENCE) with no added caveats, so feel free to use this on your site without linking back to me or using a disclaimer or anything silly like that.
75 |
76 | Contact
77 | -------
78 | I'd love to hear from you at [@dirkfabisch](https://twitter.com/dirkfabisch). Feel free to open issues if you run into trouble or have suggestions. Pull Requests always welcome.
79 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Build settings
2 | gems:
3 | - jemoji
4 | - jekyll-paginate
5 |
6 | # Site settings
7 | title: "Mediator"
8 | description: > # this means to ignore newlines until "email:"
9 | A Jekyll theme - Medium inspired
10 |
11 | email: a-mail@mail.mail
12 | #blog logo
13 | logo: "/assets/images/df_logo.jpg"
14 | float_logo: true # true, false (default)
15 |
16 | # blog cover
17 | cover: "/assets/images/cA4aKEIPQrerBnp1yGHv_IMG_9534-3-2.jpg"
18 |
19 | name: 'Dirk Fabisch'
20 | author: 'Dirk Fabisch'
21 | author_image: "/assets/images/author.jpg"
22 |
23 | paginate: 5
24 |
25 | url: "http://myblog.***.***" # the base hostname & protocol for your site
26 | baseurl: ""
27 | #used to display twitter cards
28 | twitter_handle: '@dirkfabisch'
29 |
30 | #fill in disqus shortname to use disqus
31 | #disqus: disqus-shortname
32 |
33 | #google_analytics: UA-XXXXX-X
34 |
35 | # social icons and sharing options
36 | social:
37 | - icon: twitter
38 | url: https://twitter.com/dirkfabisch
39 | desc: Follow me on twitter
40 | share_url: http://twitter.com/share
41 | share_title: ?text=
42 | share_link: "&url="
43 |
44 | # - icon: facebook
45 | # url: https://facebook.com/???
46 | # desc: Connect with me facebook
47 | # share_url: https://www.facebook.com/sharer.php
48 | # share_title: ?t=
49 | # share_link: "&u="
50 |
51 | - icon: github
52 | url: https://github.com/dirkfabisch
53 | desc: Fork me on github
54 | share_url:
55 | share_title:
56 | share_link:
57 |
58 | # - icon: google-plus
59 | # url: https://google.com/???
60 | # desc: Add me on google+
61 | # share_url:
62 | # share_title:
63 | # share_link:
64 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/_includes/google_analytics.html:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | {% if page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}
9 |
10 |
11 |
12 |
13 |
14 |
15 | {% if site.twitter_handle %}
16 |
17 |
18 |
19 |
20 | {% if page.excerpt %}
21 |
22 | {% elsif site.description %}
23 |
24 | {% endif %}
25 | {% endif %}
26 |
27 |
28 |
29 | {% if page.excerpt %}
30 |
31 | {% elsif site.description %}
32 |
33 | {% endif %}
34 |
35 |
36 |
37 | {% if page.date %}{% endif %}
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/_includes/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {% if site.float_logo %}
4 |
5 | {% endif %}
6 |
7 |
--------------------------------------------------------------------------------
/_includes/javascripts.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
41 | {% if site.google_analytics %}
42 | {% include google_analytics.html %}
43 | {% endif %}
44 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {% include head.html %}
5 |
6 |
7 |
8 | {% include header.html %}
9 |
10 |
11 |
12 |
13 |
14 | {{ content }}
15 |
16 |
17 |
18 |
19 |
20 | {% include footer.html %}
21 | {% include javascripts.html %}
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/_layouts/page.html:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 |
5 | {% include head.html %}
6 |
7 | {% include header.html %}
8 |
9 |
10 | {% if page.image %}
11 |
12 |
13 | Article Image
14 |
15 |
16 |
{{ page.title }}
17 |
18 |
Blog Logo
19 |
{{ site.author }}
20 |
21 |
24 |
25 |
26 | {% else %}
27 |
28 |
29 |
{{ page.title }}
30 |
31 |
Blog Logo
32 |
{{ page.author }}
33 |
34 |
35 |
36 |
37 |
38 |
39 | {% endif %}
40 |
41 |
42 | {{content}}
43 |
44 |
45 |
46 |
47 |
48 | Image
49 |
50 |
55 |
56 | {% include javascripts.html %}
57 |
58 |
59 |
--------------------------------------------------------------------------------
/_layouts/post.html:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 |
5 | {% include head.html %}
6 |
7 | {% include header.html %}
8 |
9 |
10 | {% if page.image %}
11 |
12 |
13 | Article Image
14 |
15 |
16 | Article Image
17 |
18 |
19 |
{{ page.title }}
20 |
21 |
Blog Logo
22 |
{{ site.author }}
23 | on
24 |
25 |
26 |
27 |
30 |
31 |
32 | {% else %}
33 |
34 |
35 |
{{ page.title }}
36 |
37 |
Blog Logo
38 |
{{ page.author }}
39 | on
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | {% endif %}
49 |
50 |
51 | read
52 |
53 |
54 | {{content}}
55 |
56 |
68 |
69 |
70 |
Written by
71 |
72 | Blog Logo
73 | {{ site.author }}
74 | {{author.bio}}
75 |
76 | Published
77 |
78 |
79 | {{/post}}
80 |
81 |
Supported by
82 |
89 |
90 |
91 | {%if site.disqus %}
92 |
93 |
104 |
105 | {% endif %}
106 |
107 |
108 |
109 |
110 | Image
111 |
112 |
113 |
{{ site.title }}
114 |
{{ site.description }}
115 |
Back to Overview
116 |
117 |
118 | {% include javascripts.html %}
119 |
120 |
121 |
--------------------------------------------------------------------------------
/_posts/2014-08-29-welcome-to-jekyll.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Welcome to Jekyll!"
4 | date: 2014-08-29 14:34:25
5 | categories: jekyll update
6 | tags: featured
7 | image: /assets/article_images/2014-08-29-welcome-to-jekyll/desktop.JPG
8 | ---
9 | You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve --watch`, which launches a web server and auto-regenerates your site when a file is updated.
10 |
11 | To add new posts, simply add a file in the `_posts` directory that follows the convention `YYYY-MM-DD-name-of-post.ext` and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.
12 |
13 | Jekyll also offers powerful support for code snippets:
14 |
15 | {% highlight ruby %}
16 | def print_hi(name)
17 | puts "Hi, #{name}"
18 | end
19 | print_hi('Tom')
20 | #=> prints 'Hi, Tom' to STDOUT.
21 | {% endhighlight %}
22 |
23 | Check out the [Jekyll docs][jekyll] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll’s dedicated Help repository][jekyll-help].
24 |
25 | {% highlight js %}
26 |
27 |
34 | {% endhighlight %}
35 |
36 |
37 | [jekyll]: http://jekyllrb.com
38 | [jekyll-gh]: https://github.com/jekyll/jekyll
39 | [jekyll-help]: https://github.com/jekyll/jekyll-help
40 |
--------------------------------------------------------------------------------
/_posts/2014-11-30-mediator_features.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "Mediator Features"
4 | date: 2014-11-30 14:34:25
5 | categories: mediator feature
6 | tags: featured
7 | image: /assets/article_images/2014-11-30-mediator_features/night-track.JPG
8 | image2: /assets/article_images/2014-11-30-mediator_features/night-track-mobile.JPG
9 | ---
10 | #Mediator Formats and CSS features
11 |
12 | Examples for different formats and css features
13 |
14 | #Header Formats
15 | #Header1
16 | ##Header2
17 |
18 | #Blockquotes
19 | >Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus
20 |
21 | #Lists
22 | ##orderd lists
23 | 1. one
24 | 2. two
25 | 3. three
26 |
27 | ##unorderd lists
28 | - Apple
29 | - Banana
30 | - Plum
31 |
32 | #Links
33 | This is an [example link](http://example.com/ "With a Title").
34 |
35 | #Combinations
36 | >Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus
37 | >
38 | > - Apple
39 | > - Banana
40 | > - Plum
41 |
--------------------------------------------------------------------------------
/_sass/_base.scss__:
--------------------------------------------------------------------------------
1 | /**
2 | * Reset some basic elements
3 | */
4 | body, h1, h2, h3, h4, h5, h6,
5 | p, blockquote, pre, hr,
6 | dl, dd, ol, ul, figure {
7 | margin: 0;
8 | padding: 0;
9 | }
10 |
11 |
12 |
13 | /**
14 | * Basic styling
15 | */
16 | body {
17 | font-family: $base-font-family;
18 | font-size: $base-font-size;
19 | line-height: $base-line-height;
20 | font-weight: 300;
21 | color: $text-color;
22 | background-color: $background-color;
23 | }
24 |
25 |
26 |
27 | /**
28 | * Set `margin-bottom` to maintain vertycal rhythm
29 | */
30 | h1, h2, h3, h4, h5, h6,
31 | p, blockquote, pre,
32 | ul, ol, dl, figure,
33 | %vertical-rhythm {
34 | margin-bottom: $spacing-unit / 2;
35 | }
36 |
37 |
38 |
39 | /**
40 | * Images
41 | */
42 | img {
43 | max-width: 100%;
44 | vertical-align: middle;
45 | }
46 |
47 |
48 |
49 | /**
50 | * Figures
51 | */
52 | figure > img {
53 | display: block;
54 | }
55 |
56 | figcaption {
57 | font-size: $small-font-size;
58 | }
59 |
60 |
61 |
62 | /**
63 | * Lists
64 | */
65 | ul, ol {
66 | margin-left: $spacing-unit;
67 | }
68 |
69 | li {
70 | > ul,
71 | > ol {
72 | margin-bottom: 0;
73 | }
74 | }
75 |
76 |
77 |
78 | /**
79 | * Headings
80 | */
81 | h1, h2, h3, h4, h5, h6 {
82 | font-weight: 300;
83 | }
84 |
85 |
86 |
87 | /**
88 | * Links
89 | */
90 | a {
91 | color: $brand-color;
92 | text-decoration: none;
93 |
94 | &:visited {
95 | color: darken($brand-color, 15%);
96 | }
97 |
98 | &:hover {
99 | color: $text-color;
100 | text-decoration: underline;
101 | }
102 | }
103 |
104 |
105 |
106 | /**
107 | * Blockquotes
108 | */
109 | blockquote {
110 | color: $grey-color;
111 | border-left: 4px solid $grey-color-light;
112 | padding-left: $spacing-unit / 2;
113 | font-size: 18px;
114 | letter-spacing: -1px;
115 | font-style: italic;
116 |
117 | > :last-child {
118 | margin-bottom: 0;
119 | }
120 | }
121 |
122 |
123 |
124 | /**
125 | * Code formatting
126 | */
127 | pre,
128 | code {
129 | font-size: 15px;
130 | border: 1px solid $grey-color-light;
131 | border-radius: 3px;
132 | background-color: #eef;
133 | }
134 |
135 | code {
136 | padding: 1px 5px;
137 | }
138 |
139 | pre {
140 | padding: 8px 12px;
141 | overflow-x: scroll;
142 |
143 | > code {
144 | border: 0;
145 | padding-right: 0;
146 | padding-left: 0;
147 | }
148 | }
149 |
150 |
151 |
152 | /**
153 | * Wrapper
154 | */
155 | .wrapper {
156 | max-width: -webkit-calc(800px - (#{$spacing-unit} * 2));
157 | max-width: calc(800px - (#{$spacing-unit} * 2));
158 | margin-right: auto;
159 | margin-left: auto;
160 | padding-right: $spacing-unit;
161 | padding-left: $spacing-unit;
162 | @extend %clearfix;
163 |
164 | @include media-query($on-laptop) {
165 | max-width: -webkit-calc(800px - (#{$spacing-unit}));
166 | max-width: calc(800px - (#{$spacing-unit}));
167 | padding-right: $spacing-unit / 2;
168 | padding-left: $spacing-unit / 2;
169 | }
170 | }
171 |
172 |
173 |
174 | /**
175 | * Clearfix
176 | */
177 | %clearfix {
178 |
179 | &:after {
180 | content: "";
181 | display: table;
182 | clear: both;
183 | }
184 | }
185 |
186 |
187 |
188 | /**
189 | * Icons
190 | */
191 | .icon {
192 |
193 | > svg {
194 | display: inline-block;
195 | width: 16px;
196 | height: 16px;
197 | vertical-align: middle;
198 |
199 | path {
200 | fill: $grey-color;
201 | }
202 | }
203 | }
204 |
--------------------------------------------------------------------------------
/_sass/_layout.scss__:
--------------------------------------------------------------------------------
1 | /**
2 | * Site header
3 | */
4 | .site-header {
5 | border-top: 5px solid $grey-color-dark;
6 | border-bottom: 1px solid $grey-color-light;
7 | min-height: 56px;
8 |
9 | // Positioning context for the mobile navigation icon
10 | position: relative;
11 | }
12 |
13 | .site-title {
14 | font-size: 26px;
15 | line-height: 56px;
16 | letter-spacing: -1px;
17 | margin-bottom: 0;
18 | float: left;
19 |
20 | &,
21 | &:visited {
22 | color: $grey-color-dark;
23 | }
24 | }
25 |
26 | .site-nav {
27 | float: right;
28 | line-height: 56px;
29 |
30 | .menu-icon {
31 | display: none;
32 | }
33 |
34 | .page-link {
35 | color: $text-color;
36 | line-height: $base-line-height;
37 |
38 | // Gaps between nav items, but not on the first one
39 | &:not(:first-child) {
40 | margin-left: 20px;
41 | }
42 | }
43 |
44 | @include media-query($on-palm) {
45 | position: absolute;
46 | top: 9px;
47 | right: 30px;
48 | background-color: $background-color;
49 | border: 1px solid $grey-color-light;
50 | border-radius: 5px;
51 | text-align: right;
52 |
53 | .menu-icon {
54 | display: block;
55 | float: right;
56 | width: 36px;
57 | height: 26px;
58 | line-height: 0;
59 | padding-top: 10px;
60 | text-align: center;
61 |
62 | > svg {
63 | width: 18px;
64 | height: 15px;
65 |
66 | path {
67 | fill: $grey-color-dark;
68 | }
69 | }
70 | }
71 |
72 | .trigger {
73 | clear: both;
74 | display: none;
75 | }
76 |
77 | &:hover .trigger {
78 | display: block;
79 | padding-bottom: 5px;
80 | }
81 |
82 | .page-link {
83 | display: block;
84 | padding: 5px 10px;
85 | }
86 | }
87 | }
88 |
89 |
90 |
91 | /**
92 | * Site footer
93 | */
94 | .site-footer {
95 | border-top: 1px solid $grey-color-light;
96 | padding: $spacing-unit 0;
97 | }
98 |
99 | .footer-heading {
100 | font-size: 18px;
101 | margin-bottom: $spacing-unit / 2;
102 | }
103 |
104 | .contact-list,
105 | .social-media-list {
106 | list-style: none;
107 | margin-left: 0;
108 | }
109 |
110 | .footer-col-wrapper {
111 | font-size: 15px;
112 | color: $grey-color;
113 | margin-left: -$spacing-unit / 2;
114 | @extend %clearfix;
115 | }
116 |
117 | .footer-col {
118 | float: left;
119 | margin-bottom: $spacing-unit / 2;
120 | padding-left: $spacing-unit / 2;
121 | }
122 |
123 | .footer-col-1 {
124 | width: -webkit-calc(35% - (#{$spacing-unit} / 2));
125 | width: calc(35% - (#{$spacing-unit} / 2));
126 | }
127 |
128 | .footer-col-2 {
129 | width: -webkit-calc(20% - (#{$spacing-unit} / 2));
130 | width: calc(20% - (#{$spacing-unit} / 2));
131 | }
132 |
133 | .footer-col-3 {
134 | width: -webkit-calc(45% - (#{$spacing-unit} / 2));
135 | width: calc(45% - (#{$spacing-unit} / 2));
136 | }
137 |
138 | @include media-query($on-laptop) {
139 | .footer-col-1,
140 | .footer-col-2 {
141 | width: -webkit-calc(50% - (#{$spacing-unit} / 2));
142 | width: calc(50% - (#{$spacing-unit} / 2));
143 | }
144 |
145 | .footer-col-3 {
146 | width: -webkit-calc(100% - (#{$spacing-unit} / 2));
147 | width: calc(100% - (#{$spacing-unit} / 2));
148 | }
149 | }
150 |
151 | @include media-query($on-palm) {
152 | .footer-col {
153 | float: none;
154 | width: -webkit-calc(100% - (#{$spacing-unit} / 2));
155 | width: calc(100% - (#{$spacing-unit} / 2));
156 | }
157 | }
158 |
159 |
160 |
161 | /**
162 | * Page content
163 | */
164 | .page-content {
165 | padding: $spacing-unit 0;
166 | }
167 |
168 | .page-heading {
169 | font-size: 20px;
170 | }
171 |
172 | .post-list {
173 | margin-left: 0;
174 | list-style: none;
175 |
176 | > li {
177 | margin-bottom: $spacing-unit;
178 | }
179 | }
180 |
181 | .post-meta {
182 | font-size: $small-font-size;
183 | color: $grey-color;
184 | }
185 |
186 | .post-link {
187 | display: block;
188 | font-size: 24px;
189 | }
190 |
191 |
192 |
193 | /**
194 | * Posts
195 | */
196 | .post-header {
197 | margin-bottom: $spacing-unit;
198 | }
199 |
200 | .post-title {
201 | font-size: 42px;
202 | letter-spacing: -1px;
203 | line-height: 1;
204 |
205 | @include media-query($on-laptop) {
206 | font-size: 36px;
207 | }
208 | }
209 |
210 | .post-content {
211 | margin-bottom: $spacing-unit;
212 |
213 | h2 {
214 | font-size: 32px;
215 |
216 | @include media-query($on-laptop) {
217 | font-size: 28px;
218 | }
219 | }
220 |
221 | h3 {
222 | font-size: 26px;
223 |
224 | @include media-query($on-laptop) {
225 | font-size: 22px;
226 | }
227 | }
228 |
229 | h4 {
230 | font-size: 20px;
231 |
232 | @include media-query($on-laptop) {
233 | font-size: 18px;
234 | }
235 | }
236 | }
237 |
--------------------------------------------------------------------------------
/_sass/_syntax-highlighting.scss:
--------------------------------------------------------------------------------
1 | /**
2 | * Syntax highlighting styles
3 | */
4 | .highlight {
5 | background: #fff;
6 | @extend %vertical-rhythm;
7 |
8 | .c { color: #998; font-style: italic } // Comment
9 | .err { color: #a61717; background-color: #e3d2d2 } // Error
10 | .k { font-weight: bold } // Keyword
11 | .o { font-weight: bold } // Operator
12 | .cm { color: #998; font-style: italic } // Comment.Multiline
13 | .cp { color: #999; font-weight: bold } // Comment.Preproc
14 | .c1 { color: #998; font-style: italic } // Comment.Single
15 | .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special
16 | .gd { color: #000; background-color: #fdd } // Generic.Deleted
17 | .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific
18 | .ge { font-style: italic } // Generic.Emph
19 | .gr { color: #a00 } // Generic.Error
20 | .gh { color: #999 } // Generic.Heading
21 | .gi { color: #000; background-color: #dfd } // Generic.Inserted
22 | .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific
23 | .go { color: #888 } // Generic.Output
24 | .gp { color: #555 } // Generic.Prompt
25 | .gs { font-weight: bold } // Generic.Strong
26 | .gu { color: #aaa } // Generic.Subheading
27 | .gt { color: #a00 } // Generic.Traceback
28 | .kc { font-weight: bold } // Keyword.Constant
29 | .kd { font-weight: bold } // Keyword.Declaration
30 | .kp { font-weight: bold } // Keyword.Pseudo
31 | .kr { font-weight: bold } // Keyword.Reserved
32 | .kt { color: #458; font-weight: bold } // Keyword.Type
33 | .m { color: #099 } // Literal.Number
34 | .s { color: #d14 } // Literal.String
35 | .na { color: #008080 } // Name.Attribute
36 | .nb { color: #0086B3 } // Name.Builtin
37 | .nc { color: #458; font-weight: bold } // Name.Class
38 | .no { color: #008080 } // Name.Constant
39 | .ni { color: #800080 } // Name.Entity
40 | .ne { color: #900; font-weight: bold } // Name.Exception
41 | .nf { color: #900; font-weight: bold } // Name.Function
42 | .nn { color: #555 } // Name.Namespace
43 | .nt { color: #000080 } // Name.Tag
44 | .nv { color: #008080 } // Name.Variable
45 | .ow { font-weight: bold } // Operator.Word
46 | .w { color: #bbb } // Text.Whitespace
47 | .mf { color: #099 } // Literal.Number.Float
48 | .mh { color: #099 } // Literal.Number.Hex
49 | .mi { color: #099 } // Literal.Number.Integer
50 | .mo { color: #099 } // Literal.Number.Oct
51 | .sb { color: #d14 } // Literal.String.Backtick
52 | .sc { color: #d14 } // Literal.String.Char
53 | .sd { color: #d14 } // Literal.String.Doc
54 | .s2 { color: #d14 } // Literal.String.Double
55 | .se { color: #d14 } // Literal.String.Escape
56 | .sh { color: #d14 } // Literal.String.Heredoc
57 | .si { color: #d14 } // Literal.String.Interpol
58 | .sx { color: #d14 } // Literal.String.Other
59 | .sr { color: #009926 } // Literal.String.Regex
60 | .s1 { color: #d14 } // Literal.String.Single
61 | .ss { color: #990073 } // Literal.String.Symbol
62 | .bp { color: #999 } // Name.Builtin.Pseudo
63 | .vc { color: #008080 } // Name.Variable.Class
64 | .vg { color: #008080 } // Name.Variable.Global
65 | .vi { color: #008080 } // Name.Variable.Instance
66 | .il { color: #099 } // Literal.Number.Integer.Long
67 | }
68 |
--------------------------------------------------------------------------------
/_sass/bourbon/_bourbon-deprecated-upcoming.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // These mixins/functions are deprecated
3 | // They will be removed in the next MAJOR version release
4 | //************************************************************************//
5 | @mixin inline-block {
6 | display: inline-block;
7 | @warn "inline-block mixin is deprecated and will be removed in the next major version release";
8 | }
9 |
--------------------------------------------------------------------------------
/_sass/bourbon/_bourbon.scss:
--------------------------------------------------------------------------------
1 | // Settings
2 | @import "settings/prefixer";
3 | @import "settings/px-to-em";
4 | @import "settings/asset-pipeline";
5 |
6 | // Custom Helpers
7 | @import "helpers/convert-units";
8 | @import "helpers/gradient-positions-parser";
9 | @import "helpers/is-num";
10 | @import "helpers/linear-angle-parser";
11 | @import "helpers/linear-gradient-parser";
12 | @import "helpers/linear-positions-parser";
13 | @import "helpers/linear-side-corner-parser";
14 | @import "helpers/radial-arg-parser";
15 | @import "helpers/radial-positions-parser";
16 | @import "helpers/radial-gradient-parser";
17 | @import "helpers/render-gradients";
18 | @import "helpers/shape-size-stripper";
19 | @import "helpers/str-to-num";
20 |
21 | // Custom Functions
22 | @import "functions/assign";
23 | @import "functions/color-lightness";
24 | @import "functions/flex-grid";
25 | @import "functions/golden-ratio";
26 | @import "functions/grid-width";
27 | @import "functions/modular-scale";
28 | @import "functions/px-to-em";
29 | @import "functions/px-to-rem";
30 | @import "functions/strip-units";
31 | @import "functions/tint-shade";
32 | @import "functions/transition-property-name";
33 | @import "functions/unpack";
34 |
35 | // CSS3 Mixins
36 | @import "css3/animation";
37 | @import "css3/appearance";
38 | @import "css3/backface-visibility";
39 | @import "css3/background";
40 | @import "css3/background-image";
41 | @import "css3/border-image";
42 | @import "css3/border-radius";
43 | @import "css3/box-sizing";
44 | @import "css3/calc";
45 | @import "css3/columns";
46 | @import "css3/filter";
47 | @import "css3/flex-box";
48 | @import "css3/font-face";
49 | @import "css3/font-feature-settings";
50 | @import "css3/hyphens";
51 | @import "css3/hidpi-media-query";
52 | @import "css3/image-rendering";
53 | @import "css3/keyframes";
54 | @import "css3/linear-gradient";
55 | @import "css3/perspective";
56 | @import "css3/radial-gradient";
57 | @import "css3/transform";
58 | @import "css3/transition";
59 | @import "css3/user-select";
60 | @import "css3/placeholder";
61 |
62 | // Addons & other mixins
63 | @import "addons/button";
64 | @import "addons/clearfix";
65 | @import "addons/directional-values";
66 | @import "addons/ellipsis";
67 | @import "addons/font-family";
68 | @import "addons/hide-text";
69 | @import "addons/html5-input-types";
70 | @import "addons/position";
71 | @import "addons/prefixer";
72 | @import "addons/retina-image";
73 | @import "addons/size";
74 | @import "addons/timing-functions";
75 | @import "addons/triangle";
76 | @import "addons/word-wrap";
77 |
78 | // Soon to be deprecated Mixins
79 | @import "bourbon-deprecated-upcoming";
80 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_button.scss:
--------------------------------------------------------------------------------
1 | @mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) {
2 |
3 | @if type-of($style) == string and type-of($base-color) == color {
4 | @include buttonstyle($style, $base-color, $text-size, $padding);
5 | }
6 |
7 | @if type-of($style) == string and type-of($base-color) == number {
8 | $padding: $text-size;
9 | $text-size: $base-color;
10 | $base-color: #4294f0;
11 |
12 | @if $padding == inherit {
13 | $padding: 7px 18px;
14 | }
15 |
16 | @include buttonstyle($style, $base-color, $text-size, $padding);
17 | }
18 |
19 | @if type-of($style) == color and type-of($base-color) == color {
20 | $base-color: $style;
21 | $style: simple;
22 | @include buttonstyle($style, $base-color, $text-size, $padding);
23 | }
24 |
25 | @if type-of($style) == color and type-of($base-color) == number {
26 | $padding: $text-size;
27 | $text-size: $base-color;
28 | $base-color: $style;
29 | $style: simple;
30 |
31 | @if $padding == inherit {
32 | $padding: 7px 18px;
33 | }
34 |
35 | @include buttonstyle($style, $base-color, $text-size, $padding);
36 | }
37 |
38 | @if type-of($style) == number {
39 | $padding: $base-color;
40 | $text-size: $style;
41 | $base-color: #4294f0;
42 | $style: simple;
43 |
44 | @if $padding == #4294f0 {
45 | $padding: 7px 18px;
46 | }
47 |
48 | @include buttonstyle($style, $base-color, $text-size, $padding);
49 | }
50 |
51 | &:disabled {
52 | opacity: 0.5;
53 | cursor: not-allowed;
54 | }
55 | }
56 |
57 |
58 | // Selector Style Button
59 | //************************************************************************//
60 | @mixin buttonstyle($type, $b-color, $t-size, $pad) {
61 | // Grayscale button
62 | @if $type == simple and $b-color == grayscale($b-color) {
63 | @include simple($b-color, true, $t-size, $pad);
64 | }
65 |
66 | @if $type == shiny and $b-color == grayscale($b-color) {
67 | @include shiny($b-color, true, $t-size, $pad);
68 | }
69 |
70 | @if $type == pill and $b-color == grayscale($b-color) {
71 | @include pill($b-color, true, $t-size, $pad);
72 | }
73 |
74 | @if $type == flat and $b-color == grayscale($b-color) {
75 | @include flat($b-color, true, $t-size, $pad);
76 | }
77 |
78 | // Colored button
79 | @if $type == simple {
80 | @include simple($b-color, false, $t-size, $pad);
81 | }
82 |
83 | @else if $type == shiny {
84 | @include shiny($b-color, false, $t-size, $pad);
85 | }
86 |
87 | @else if $type == pill {
88 | @include pill($b-color, false, $t-size, $pad);
89 | }
90 |
91 | @else if $type == flat {
92 | @include flat($b-color, false, $t-size, $pad);
93 | }
94 | }
95 |
96 |
97 | // Simple Button
98 | //************************************************************************//
99 | @mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
100 | $color: hsl(0, 0, 100%);
101 | $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
102 | $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%);
103 | $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%);
104 | $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%);
105 |
106 | @if is-light($base-color) {
107 | $color: hsl(0, 0, 20%);
108 | $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
109 | }
110 |
111 | @if $grayscale == true {
112 | $border: grayscale($border);
113 | $inset-shadow: grayscale($inset-shadow);
114 | $stop-gradient: grayscale($stop-gradient);
115 | $text-shadow: grayscale($text-shadow);
116 | }
117 |
118 | border: 1px solid $border;
119 | border-radius: 3px;
120 | box-shadow: inset 0 1px 0 0 $inset-shadow;
121 | color: $color;
122 | display: inline-block;
123 | font-size: $textsize;
124 | font-weight: bold;
125 | @include linear-gradient ($base-color, $stop-gradient);
126 | padding: $padding;
127 | text-decoration: none;
128 | text-shadow: 0 1px 0 $text-shadow;
129 | background-clip: padding-box;
130 |
131 | &:hover:not(:disabled) {
132 | $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
133 | $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%);
134 | $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%);
135 |
136 | @if $grayscale == true {
137 | $base-color-hover: grayscale($base-color-hover);
138 | $inset-shadow-hover: grayscale($inset-shadow-hover);
139 | $stop-gradient-hover: grayscale($stop-gradient-hover);
140 | }
141 |
142 | box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
143 | cursor: pointer;
144 | @include linear-gradient ($base-color-hover, $stop-gradient-hover);
145 | }
146 |
147 | &:active:not(:disabled),
148 | &:focus:not(:disabled) {
149 | $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
150 | $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%);
151 |
152 | @if $grayscale == true {
153 | $border-active: grayscale($border-active);
154 | $inset-shadow-active: grayscale($inset-shadow-active);
155 | }
156 |
157 | border: 1px solid $border-active;
158 | box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active;
159 | }
160 | }
161 |
162 |
163 | // Shiny Button
164 | //************************************************************************//
165 | @mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
166 | $color: hsl(0, 0, 100%);
167 | $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81);
168 | $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122);
169 | $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46);
170 | $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12);
171 | $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33);
172 | $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114);
173 | $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48);
174 |
175 | @if is-light($base-color) {
176 | $color: hsl(0, 0, 20%);
177 | $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
178 | }
179 |
180 | @if $grayscale == true {
181 | $border: grayscale($border);
182 | $border-bottom: grayscale($border-bottom);
183 | $fourth-stop: grayscale($fourth-stop);
184 | $inset-shadow: grayscale($inset-shadow);
185 | $second-stop: grayscale($second-stop);
186 | $text-shadow: grayscale($text-shadow);
187 | $third-stop: grayscale($third-stop);
188 | }
189 |
190 | border: 1px solid $border;
191 | border-bottom: 1px solid $border-bottom;
192 | border-radius: 5px;
193 | box-shadow: inset 0 1px 0 0 $inset-shadow;
194 | color: $color;
195 | display: inline-block;
196 | font-size: $textsize;
197 | font-weight: bold;
198 | @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%);
199 | padding: $padding;
200 | text-align: center;
201 | text-decoration: none;
202 | text-shadow: 0 -1px 1px $text-shadow;
203 |
204 | &:hover:not(:disabled) {
205 | $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18);
206 | $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51);
207 | $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66);
208 | $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63);
209 |
210 | @if $grayscale == true {
211 | $first-stop-hover: grayscale($first-stop-hover);
212 | $second-stop-hover: grayscale($second-stop-hover);
213 | $third-stop-hover: grayscale($third-stop-hover);
214 | $fourth-stop-hover: grayscale($fourth-stop-hover);
215 | }
216 |
217 | cursor: pointer;
218 | @include linear-gradient(top, $first-stop-hover 0%,
219 | $second-stop-hover 50%,
220 | $third-stop-hover 50%,
221 | $fourth-stop-hover 100%);
222 | }
223 |
224 | &:active:not(:disabled),
225 | &:focus:not(:disabled) {
226 | $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122);
227 |
228 | @if $grayscale == true {
229 | $inset-shadow-active: grayscale($inset-shadow-active);
230 | }
231 |
232 | box-shadow: inset 0 0 20px 0 $inset-shadow-active;
233 | }
234 | }
235 |
236 |
237 | // Pill Button
238 | //************************************************************************//
239 | @mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
240 | $color: hsl(0, 0, 100%);
241 | $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%);
242 | $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%);
243 | $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%);
244 | $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%);
245 | $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%);
246 | $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%);
247 |
248 | @if is-light($base-color) {
249 | $color: hsl(0, 0, 20%);
250 | $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
251 | }
252 |
253 | @if $grayscale == true {
254 | $border-bottom: grayscale($border-bottom);
255 | $border-sides: grayscale($border-sides);
256 | $border-top: grayscale($border-top);
257 | $inset-shadow: grayscale($inset-shadow);
258 | $stop-gradient: grayscale($stop-gradient);
259 | $text-shadow: grayscale($text-shadow);
260 | }
261 |
262 | border: 1px solid $border-top;
263 | border-color: $border-top $border-sides $border-bottom;
264 | border-radius: 16px;
265 | box-shadow: inset 0 1px 0 0 $inset-shadow;
266 | color: $color;
267 | display: inline-block;
268 | font-size: $textsize;
269 | font-weight: normal;
270 | line-height: 1;
271 | @include linear-gradient ($base-color, $stop-gradient);
272 | padding: $padding;
273 | text-align: center;
274 | text-decoration: none;
275 | text-shadow: 0 -1px 1px $text-shadow;
276 | background-clip: padding-box;
277 |
278 | &:hover:not(:disabled) {
279 | $base-color-hover: adjust-color($base-color, $lightness: -4.5%);
280 | $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%);
281 | $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%);
282 | $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%);
283 | $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%);
284 | $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%);
285 | $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%);
286 |
287 | @if $grayscale == true {
288 | $base-color-hover: grayscale($base-color-hover);
289 | $border-bottom: grayscale($border-bottom);
290 | $border-sides: grayscale($border-sides);
291 | $border-top: grayscale($border-top);
292 | $inset-shadow-hover: grayscale($inset-shadow-hover);
293 | $stop-gradient-hover: grayscale($stop-gradient-hover);
294 | $text-shadow-hover: grayscale($text-shadow-hover);
295 | }
296 |
297 | border: 1px solid $border-top;
298 | border-color: $border-top $border-sides $border-bottom;
299 | box-shadow: inset 0 1px 0 0 $inset-shadow-hover;
300 | cursor: pointer;
301 | @include linear-gradient ($base-color-hover, $stop-gradient-hover);
302 | text-shadow: 0 -1px 1px $text-shadow-hover;
303 | background-clip: padding-box;
304 | }
305 |
306 | &:active:not(:disabled),
307 | &:focus:not(:disabled) {
308 | $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%);
309 | $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%);
310 | $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%);
311 | $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%);
312 | $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%);
313 |
314 | @if $grayscale == true {
315 | $active-color: grayscale($active-color);
316 | $border-active: grayscale($border-active);
317 | $border-bottom-active: grayscale($border-bottom-active);
318 | $inset-shadow-active: grayscale($inset-shadow-active);
319 | $text-shadow-active: grayscale($text-shadow-active);
320 | }
321 |
322 | background: $active-color;
323 | border: 1px solid $border-active;
324 | border-bottom: 1px solid $border-bottom-active;
325 | box-shadow: inset 0 0 6px 3px $inset-shadow-active;
326 | text-shadow: 0 -1px 1px $text-shadow-active;
327 | }
328 | }
329 |
330 |
331 |
332 | // Flat Button
333 | //************************************************************************//
334 | @mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) {
335 | $color: hsl(0, 0, 100%);
336 |
337 | @if is-light($base-color) {
338 | $color: hsl(0, 0, 20%);
339 | }
340 |
341 | background-color: $base-color;
342 | border-radius: 3px;
343 | border: none;
344 | color: $color;
345 | display: inline-block;
346 | font-size: inherit;
347 | font-weight: bold;
348 | padding: 7px 18px;
349 | text-decoration: none;
350 | background-clip: padding-box;
351 |
352 | &:hover:not(:disabled){
353 | $base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%);
354 |
355 | @if $grayscale == true {
356 | $base-color-hover: grayscale($base-color-hover);
357 | }
358 |
359 | background-color: $base-color-hover;
360 | cursor: pointer;
361 | }
362 |
363 | &:active:not(:disabled),
364 | &:focus:not(:disabled) {
365 | $base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
366 |
367 | @if $grayscale == true {
368 | $base-color-active: grayscale($base-color-active);
369 | }
370 |
371 | background-color: $base-color-active;
372 | cursor: pointer;
373 | }
374 | }
375 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_clearfix.scss:
--------------------------------------------------------------------------------
1 | // Modern micro clearfix provides an easy way to contain floats without adding additional markup.
2 | //
3 | // Example usage:
4 | //
5 | // // Contain all floats within .wrapper
6 | // .wrapper {
7 | // @include clearfix;
8 | // .content,
9 | // .sidebar {
10 | // float : left;
11 | // }
12 | // }
13 |
14 | @mixin clearfix {
15 | &:after {
16 | content:"";
17 | display:table;
18 | clear:both;
19 | }
20 | }
21 |
22 | // Acknowledgements
23 | // Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php)
24 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_directional-values.scss:
--------------------------------------------------------------------------------
1 | // directional-property mixins are shorthands
2 | // for writing properties like the following
3 | //
4 | // @include margin(null 0 10px);
5 | // ------
6 | // margin-right: 0;
7 | // margin-bottom: 10px;
8 | // margin-left: 0;
9 | //
10 | // - or -
11 | //
12 | // @include border-style(dotted null);
13 | // ------
14 | // border-top-style: dotted;
15 | // border-bottom-style: dotted;
16 | //
17 | // ------
18 | //
19 | // Note: You can also use false instead of null
20 |
21 | @function collapse-directionals($vals) {
22 | $output: null;
23 |
24 | $A: nth( $vals, 1 );
25 | $B: if( length($vals) < 2, $A, nth($vals, 2));
26 | $C: if( length($vals) < 3, $A, nth($vals, 3));
27 | $D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) ));
28 |
29 | @if $A == 0 { $A: 0 }
30 | @if $B == 0 { $B: 0 }
31 | @if $C == 0 { $C: 0 }
32 | @if $D == 0 { $D: 0 }
33 |
34 | @if $A == $B and $A == $C and $A == $D { $output: $A }
35 | @else if $A == $C and $B == $D { $output: $A $B }
36 | @else if $B == $D { $output: $A $B $C }
37 | @else { $output: $A $B $C $D }
38 |
39 | @return $output;
40 | }
41 |
42 | @function contains-falsy($list) {
43 | @each $item in $list {
44 | @if not $item {
45 | @return true;
46 | }
47 | }
48 |
49 | @return false;
50 | }
51 |
52 | @mixin directional-property($pre, $suf, $vals) {
53 | // Property Names
54 | $top: $pre + "-top" + if($suf, "-#{$suf}", "");
55 | $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
56 | $left: $pre + "-left" + if($suf, "-#{$suf}", "");
57 | $right: $pre + "-right" + if($suf, "-#{$suf}", "");
58 | $all: $pre + if($suf, "-#{$suf}", "");
59 |
60 | $vals: collapse-directionals($vals);
61 |
62 | @if contains-falsy($vals) {
63 | @if nth($vals, 1) { #{$top}: nth($vals, 1); }
64 |
65 | @if length($vals) == 1 {
66 | @if nth($vals, 1) { #{$right}: nth($vals, 1); }
67 | } @else {
68 | @if nth($vals, 2) { #{$right}: nth($vals, 2); }
69 | }
70 |
71 | // prop: top/bottom right/left
72 | @if length($vals) == 2 {
73 | @if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
74 | @if nth($vals, 2) { #{$left}: nth($vals, 2); }
75 |
76 | // prop: top right/left bottom
77 | } @else if length($vals) == 3 {
78 | @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
79 | @if nth($vals, 2) { #{$left}: nth($vals, 2); }
80 |
81 | // prop: top right bottom left
82 | } @else if length($vals) == 4 {
83 | @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
84 | @if nth($vals, 4) { #{$left}: nth($vals, 4); }
85 | }
86 |
87 | // prop: top/right/bottom/left
88 | } @else {
89 | #{$all}: $vals;
90 | }
91 | }
92 |
93 | @mixin margin($vals...) {
94 | @include directional-property(margin, false, $vals...);
95 | }
96 |
97 | @mixin padding($vals...) {
98 | @include directional-property(padding, false, $vals...);
99 | }
100 |
101 | @mixin border-style($vals...) {
102 | @include directional-property(border, style, $vals...);
103 | }
104 |
105 | @mixin border-color($vals...) {
106 | @include directional-property(border, color, $vals...);
107 | }
108 |
109 | @mixin border-width($vals...) {
110 | @include directional-property(border, width, $vals...);
111 | }
112 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_ellipsis.scss:
--------------------------------------------------------------------------------
1 | @mixin ellipsis($width: 100%) {
2 | display: inline-block;
3 | max-width: $width;
4 | overflow: hidden;
5 | text-overflow: ellipsis;
6 | white-space: nowrap;
7 | }
8 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_font-family.scss:
--------------------------------------------------------------------------------
1 | $georgia: Georgia, Cambria, "Times New Roman", Times, serif;
2 | $helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
3 | $lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif;
4 | $monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace;
5 | $verdana: Verdana, Geneva, sans-serif;
6 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_hide-text.scss:
--------------------------------------------------------------------------------
1 | @mixin hide-text {
2 | overflow: hidden;
3 |
4 | &:before {
5 | content: "";
6 | display: block;
7 | width: 0;
8 | height: 100%;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_html5-input-types.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // Generate a variable ($all-text-inputs) with a list of all html5
3 | // input types that have a text-based input, excluding textarea.
4 | // http://diveintohtml5.org/forms.html
5 | //************************************************************************//
6 | $inputs-list: 'input[type="email"]',
7 | 'input[type="number"]',
8 | 'input[type="password"]',
9 | 'input[type="search"]',
10 | 'input[type="tel"]',
11 | 'input[type="text"]',
12 | 'input[type="url"]',
13 |
14 | // Webkit & Gecko may change the display of these in the future
15 | 'input[type="color"]',
16 | 'input[type="date"]',
17 | 'input[type="datetime"]',
18 | 'input[type="datetime-local"]',
19 | 'input[type="month"]',
20 | 'input[type="time"]',
21 | 'input[type="week"]';
22 |
23 | // Bare inputs
24 | //************************************************************************//
25 | $all-text-inputs: assign-inputs($inputs-list);
26 |
27 | // Hover Pseudo-class
28 | //************************************************************************//
29 | $all-text-inputs-hover: assign-inputs($inputs-list, hover);
30 |
31 | // Focus Pseudo-class
32 | //************************************************************************//
33 | $all-text-inputs-focus: assign-inputs($inputs-list, focus);
34 |
35 |
36 |
37 | // You must use interpolation on the variable:
38 | // #{$all-text-inputs}
39 | // #{$all-text-inputs-hover}
40 | // #{$all-text-inputs-focus}
41 |
42 | // Example
43 | //************************************************************************//
44 | // #{$all-text-inputs}, textarea {
45 | // border: 1px solid red;
46 | // }
47 |
48 |
49 |
50 | //************************************************************************//
51 | // Generate a variable ($all-button-inputs) with a list of all html5
52 | // input types that have a button-based input, excluding button.
53 | //************************************************************************//
54 | $inputs-button-list: 'input[type="button"]',
55 | 'input[type="reset"]',
56 | 'input[type="submit"]';
57 |
58 | // Bare inputs
59 | //************************************************************************//
60 | $all-button-inputs: assign-inputs($inputs-button-list);
61 |
62 | // Hover Pseudo-class
63 | //************************************************************************//
64 | $all-button-inputs-hover: assign-inputs($inputs-button-list, hover);
65 |
66 | // Focus Pseudo-class
67 | //************************************************************************//
68 | $all-button-inputs-focus: assign-inputs($inputs-button-list, focus);
69 |
70 | // Active Pseudo-class
71 | //************************************************************************//
72 | $all-button-inputs-active: assign-inputs($inputs-button-list, active);
73 |
74 |
75 |
76 | // You must use interpolation on the variable:
77 | // #{$all-button-inputs}
78 | // #{$all-button-inputs-hover}
79 | // #{$all-button-inputs-focus}
80 | // #{$all-button-inputs-active}
81 |
82 | // Example
83 | //************************************************************************//
84 | // #{$all-button-inputs}, button {
85 | // border: 1px solid red;
86 | // }
87 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_position.scss:
--------------------------------------------------------------------------------
1 | @mixin position ($position: relative, $coordinates: null null null null) {
2 |
3 | @if type-of($position) == list {
4 | $coordinates: $position;
5 | $position: relative;
6 | }
7 |
8 | $coordinates: unpack($coordinates);
9 |
10 | $top: nth($coordinates, 1);
11 | $right: nth($coordinates, 2);
12 | $bottom: nth($coordinates, 3);
13 | $left: nth($coordinates, 4);
14 |
15 | position: $position;
16 |
17 | @if ($top and $top == auto) or (type-of($top) == number) {
18 | top: $top;
19 | }
20 |
21 | @if ($right and $right == auto) or (type-of($right) == number) {
22 | right: $right;
23 | }
24 |
25 | @if ($bottom and $bottom == auto) or (type-of($bottom) == number) {
26 | bottom: $bottom;
27 | }
28 |
29 | @if ($left and $left == auto) or (type-of($left) == number) {
30 | left: $left;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_prefixer.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // Example: @include prefixer(border-radius, $radii, webkit ms spec);
3 | //************************************************************************//
4 | // Variables located in /settings/_prefixer.scss
5 |
6 | @mixin prefixer ($property, $value, $prefixes) {
7 | @each $prefix in $prefixes {
8 | @if $prefix == webkit {
9 | @if $prefix-for-webkit {
10 | -webkit-#{$property}: $value;
11 | }
12 | }
13 | @else if $prefix == moz {
14 | @if $prefix-for-mozilla {
15 | -moz-#{$property}: $value;
16 | }
17 | }
18 | @else if $prefix == ms {
19 | @if $prefix-for-microsoft {
20 | -ms-#{$property}: $value;
21 | }
22 | }
23 | @else if $prefix == o {
24 | @if $prefix-for-opera {
25 | -o-#{$property}: $value;
26 | }
27 | }
28 | @else if $prefix == spec {
29 | @if $prefix-for-spec {
30 | #{$property}: $value;
31 | }
32 | }
33 | @else {
34 | @warn "Unrecognized prefix: #{$prefix}";
35 | }
36 | }
37 | }
38 |
39 | @mixin disable-prefix-for-all() {
40 | $prefix-for-webkit: false !global;
41 | $prefix-for-mozilla: false !global;
42 | $prefix-for-microsoft: false !global;
43 | $prefix-for-opera: false !global;
44 | $prefix-for-spec: false !global;
45 | }
46 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_retina-image.scss:
--------------------------------------------------------------------------------
1 | @mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) {
2 | @if $asset-pipeline {
3 | background-image: image-url("#{$filename}.#{$extension}");
4 | }
5 | @else {
6 | background-image: url("#{$filename}.#{$extension}");
7 | }
8 |
9 | @include hidpi {
10 | @if $asset-pipeline {
11 | @if $retina-filename {
12 | background-image: image-url("#{$retina-filename}.#{$extension}");
13 | }
14 | @else {
15 | background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}");
16 | }
17 | }
18 |
19 | @else {
20 | @if $retina-filename {
21 | background-image: url("#{$retina-filename}.#{$extension}");
22 | }
23 | @else {
24 | background-image: url("#{$filename}#{$retina-suffix}.#{$extension}");
25 | }
26 | }
27 |
28 | background-size: $background-size;
29 |
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_size.scss:
--------------------------------------------------------------------------------
1 | @mixin size($size) {
2 | $height: nth($size, 1);
3 | $width: $height;
4 |
5 | @if length($size) > 1 {
6 | $height: nth($size, 2);
7 | }
8 |
9 | @if $height == auto or (type-of($height) == number and not unitless($height)) {
10 | height: $height;
11 | }
12 |
13 | @if $width == auto or (type-of($width) == number and not unitless($width)) {
14 | width: $width;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_timing-functions.scss:
--------------------------------------------------------------------------------
1 | // CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
2 | // Timing functions are the same as demo'ed here: http://jqueryui.com/resources/demos/effect/easing.html
3 |
4 | // EASE IN
5 | $ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
6 | $ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
7 | $ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
8 | $ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
9 | $ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
10 | $ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
11 | $ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
12 | $ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
13 |
14 | // EASE OUT
15 | $ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
16 | $ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
17 | $ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
18 | $ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
19 | $ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
20 | $ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
21 | $ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
22 | $ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
23 |
24 | // EASE IN OUT
25 | $ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
26 | $ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
27 | $ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
28 | $ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
29 | $ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
30 | $ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
31 | $ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
32 | $ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
33 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_triangle.scss:
--------------------------------------------------------------------------------
1 | @mixin triangle ($size, $color, $direction) {
2 | height: 0;
3 | width: 0;
4 |
5 | $width: nth($size, 1);
6 | $height: nth($size, length($size));
7 |
8 | $foreground-color: nth($color, 1);
9 | $background-color: if(length($color) == 2, nth($color, 2), transparent);
10 |
11 | @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
12 |
13 | $width: $width / 2;
14 | $height: if(length($size) > 1, $height, $height/2);
15 |
16 | @if $direction == up {
17 | border-left: $width solid $background-color;
18 | border-right: $width solid $background-color;
19 | border-bottom: $height solid $foreground-color;
20 |
21 | } @else if $direction == right {
22 | border-top: $width solid $background-color;
23 | border-bottom: $width solid $background-color;
24 | border-left: $height solid $foreground-color;
25 |
26 | } @else if $direction == down {
27 | border-left: $width solid $background-color;
28 | border-right: $width solid $background-color;
29 | border-top: $height solid $foreground-color;
30 |
31 | } @else if $direction == left {
32 | border-top: $width solid $background-color;
33 | border-bottom: $width solid $background-color;
34 | border-right: $height solid $foreground-color;
35 | }
36 | }
37 |
38 | @else if ($direction == up-right) or ($direction == up-left) {
39 | border-top: $height solid $foreground-color;
40 |
41 | @if $direction == up-right {
42 | border-left: $width solid $background-color;
43 |
44 | } @else if $direction == up-left {
45 | border-right: $width solid $background-color;
46 | }
47 | }
48 |
49 | @else if ($direction == down-right) or ($direction == down-left) {
50 | border-bottom: $height solid $foreground-color;
51 |
52 | @if $direction == down-right {
53 | border-left: $width solid $background-color;
54 |
55 | } @else if $direction == down-left {
56 | border-right: $width solid $background-color;
57 | }
58 | }
59 |
60 | @else if ($direction == inset-up) {
61 | border-width: $height $width;
62 | border-style: solid;
63 | border-color: $background-color $background-color $foreground-color;
64 | }
65 |
66 | @else if ($direction == inset-down) {
67 | border-width: $height $width;
68 | border-style: solid;
69 | border-color: $foreground-color $background-color $background-color;
70 | }
71 |
72 | @else if ($direction == inset-right) {
73 | border-width: $width $height;
74 | border-style: solid;
75 | border-color: $background-color $background-color $background-color $foreground-color;
76 | }
77 |
78 | @else if ($direction == inset-left) {
79 | border-width: $width $height;
80 | border-style: solid;
81 | border-color: $background-color $foreground-color $background-color $background-color;
82 | }
83 | }
84 |
--------------------------------------------------------------------------------
/_sass/bourbon/addons/_word-wrap.scss:
--------------------------------------------------------------------------------
1 | @mixin word-wrap($wrap: break-word) {
2 | word-wrap: $wrap;
3 |
4 | @if $wrap == break-word {
5 | overflow-wrap: break-word;
6 | word-break: break-all;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_animation.scss:
--------------------------------------------------------------------------------
1 | // http://www.w3.org/TR/css3-animations/#the-animation-name-property-
2 | // Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
3 |
4 | // Official animation shorthand property.
5 | @mixin animation ($animations...) {
6 | @include prefixer(animation, $animations, webkit moz spec);
7 | }
8 |
9 | // Individual Animation Properties
10 | @mixin animation-name ($names...) {
11 | @include prefixer(animation-name, $names, webkit moz spec);
12 | }
13 |
14 |
15 | @mixin animation-duration ($times...) {
16 | @include prefixer(animation-duration, $times, webkit moz spec);
17 | }
18 |
19 |
20 | @mixin animation-timing-function ($motions...) {
21 | // ease | linear | ease-in | ease-out | ease-in-out
22 | @include prefixer(animation-timing-function, $motions, webkit moz spec);
23 | }
24 |
25 |
26 | @mixin animation-iteration-count ($values...) {
27 | // infinite |
28 | @include prefixer(animation-iteration-count, $values, webkit moz spec);
29 | }
30 |
31 |
32 | @mixin animation-direction ($directions...) {
33 | // normal | alternate
34 | @include prefixer(animation-direction, $directions, webkit moz spec);
35 | }
36 |
37 |
38 | @mixin animation-play-state ($states...) {
39 | // running | paused
40 | @include prefixer(animation-play-state, $states, webkit moz spec);
41 | }
42 |
43 |
44 | @mixin animation-delay ($times...) {
45 | @include prefixer(animation-delay, $times, webkit moz spec);
46 | }
47 |
48 |
49 | @mixin animation-fill-mode ($modes...) {
50 | // none | forwards | backwards | both
51 | @include prefixer(animation-fill-mode, $modes, webkit moz spec);
52 | }
53 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_appearance.scss:
--------------------------------------------------------------------------------
1 | @mixin appearance ($value) {
2 | @include prefixer(appearance, $value, webkit moz ms o spec);
3 | }
4 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_backface-visibility.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // Backface-visibility mixin
3 | //************************************************************************//
4 | @mixin backface-visibility($visibility) {
5 | @include prefixer(backface-visibility, $visibility, webkit spec);
6 | }
7 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_background-image.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // Background-image property for adding multiple background images with
3 | // gradients, or for stringing multiple gradients together.
4 | //************************************************************************//
5 |
6 | @mixin background-image($images...) {
7 | $webkit-images: ();
8 | $spec-images: ();
9 |
10 | @each $image in $images {
11 | $webkit-image: ();
12 | $spec-image: ();
13 |
14 | @if (type-of($image) == string) {
15 | $url-str: str-slice($image, 0, 3);
16 | $gradient-type: str-slice($image, 0, 6);
17 |
18 | @if $url-str == "url" {
19 | $webkit-image: $image;
20 | $spec-image: $image;
21 | }
22 |
23 | @else if $gradient-type == "linear" {
24 | $gradients: _linear-gradient-parser($image);
25 | $webkit-image: map-get($gradients, webkit-image);
26 | $spec-image: map-get($gradients, spec-image);
27 | }
28 |
29 | @else if $gradient-type == "radial" {
30 | $gradients: _radial-gradient-parser($image);
31 | $webkit-image: map-get($gradients, webkit-image);
32 | $spec-image: map-get($gradients, spec-image);
33 | }
34 | }
35 |
36 | $webkit-images: append($webkit-images, $webkit-image, comma);
37 | $spec-images: append($spec-images, $spec-image, comma);
38 | }
39 |
40 | background-image: $webkit-images;
41 | background-image: $spec-images;
42 | }
43 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_background.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // Background property for adding multiple backgrounds using shorthand
3 | // notation.
4 | //************************************************************************//
5 |
6 | @mixin background($backgrounds...) {
7 | $webkit-backgrounds: ();
8 | $spec-backgrounds: ();
9 |
10 | @each $background in $backgrounds {
11 | $webkit-background: ();
12 | $spec-background: ();
13 | $background-type: type-of($background);
14 |
15 | @if $background-type == string or list {
16 | $background-str: if($background-type == list, nth($background, 1), $background);
17 |
18 | $url-str: str-slice($background-str, 0, 3);
19 | $gradient-type: str-slice($background-str, 0, 6);
20 |
21 | @if $url-str == "url" {
22 | $webkit-background: $background;
23 | $spec-background: $background;
24 | }
25 |
26 | @else if $gradient-type == "linear" {
27 | $gradients: _linear-gradient-parser("#{$background}");
28 | $webkit-background: map-get($gradients, webkit-image);
29 | $spec-background: map-get($gradients, spec-image);
30 | }
31 |
32 | @else if $gradient-type == "radial" {
33 | $gradients: _radial-gradient-parser("#{$background}");
34 | $webkit-background: map-get($gradients, webkit-image);
35 | $spec-background: map-get($gradients, spec-image);
36 | }
37 |
38 | @else {
39 | $webkit-background: $background;
40 | $spec-background: $background;
41 | }
42 | }
43 |
44 | @else {
45 | $webkit-background: $background;
46 | $spec-background: $background;
47 | }
48 |
49 | $webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma);
50 | $spec-backgrounds: append($spec-backgrounds, $spec-background, comma);
51 | }
52 |
53 | background: $webkit-backgrounds;
54 | background: $spec-backgrounds;
55 | }
56 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_border-image.scss:
--------------------------------------------------------------------------------
1 | @mixin border-image($borders...) {
2 | $webkit-borders: ();
3 | $spec-borders: ();
4 |
5 | @each $border in $borders {
6 | $webkit-border: ();
7 | $spec-border: ();
8 | $border-type: type-of($border);
9 |
10 | @if $border-type == string or list {
11 | $border-str: if($border-type == list, nth($border, 1), $border);
12 |
13 | $url-str: str-slice($border-str, 0, 3);
14 | $gradient-type: str-slice($border-str, 0, 6);
15 |
16 | @if $url-str == "url" {
17 | $webkit-border: $border;
18 | $spec-border: $border;
19 | }
20 |
21 | @else if $gradient-type == "linear" {
22 | $gradients: _linear-gradient-parser("#{$border}");
23 | $webkit-border: map-get($gradients, webkit-image);
24 | $spec-border: map-get($gradients, spec-image);
25 | }
26 |
27 | @else if $gradient-type == "radial" {
28 | $gradients: _radial-gradient-parser("#{$border}");
29 | $webkit-border: map-get($gradients, webkit-image);
30 | $spec-border: map-get($gradients, spec-image);
31 | }
32 |
33 | @else {
34 | $webkit-border: $border;
35 | $spec-border: $border;
36 | }
37 | }
38 |
39 | @else {
40 | $webkit-border: $border;
41 | $spec-border: $border;
42 | }
43 |
44 | $webkit-borders: append($webkit-borders, $webkit-border, comma);
45 | $spec-borders: append($spec-borders, $spec-border, comma);
46 | }
47 |
48 | -webkit-border-image: $webkit-borders;
49 | border-image: $spec-borders;
50 | border-style: solid;
51 | }
52 |
53 | //Examples:
54 | // @include border-image(url("image.png"));
55 | // @include border-image(url("image.png") 20 stretch);
56 | // @include border-image(linear-gradient(45deg, orange, yellow));
57 | // @include border-image(linear-gradient(45deg, orange, yellow) stretch);
58 | // @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round);
59 | // @include border-image(radial-gradient(top, cover, orange, yellow, orange));
60 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_border-radius.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // Shorthand Border-radius mixins
3 | //************************************************************************//
4 | @mixin border-top-radius($radii) {
5 | @include prefixer(border-top-left-radius, $radii, spec);
6 | @include prefixer(border-top-right-radius, $radii, spec);
7 | }
8 |
9 | @mixin border-bottom-radius($radii) {
10 | @include prefixer(border-bottom-left-radius, $radii, spec);
11 | @include prefixer(border-bottom-right-radius, $radii, spec);
12 | }
13 |
14 | @mixin border-left-radius($radii) {
15 | @include prefixer(border-top-left-radius, $radii, spec);
16 | @include prefixer(border-bottom-left-radius, $radii, spec);
17 | }
18 |
19 | @mixin border-right-radius($radii) {
20 | @include prefixer(border-top-right-radius, $radii, spec);
21 | @include prefixer(border-bottom-right-radius, $radii, spec);
22 | }
23 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_box-sizing.scss:
--------------------------------------------------------------------------------
1 | @mixin box-sizing ($box) {
2 | // content-box | border-box | inherit
3 | @include prefixer(box-sizing, $box, webkit moz spec);
4 | }
5 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_calc.scss:
--------------------------------------------------------------------------------
1 | @mixin calc($property, $value) {
2 | #{$property}: -webkit-calc(#{$value});
3 | #{$property}: calc(#{$value});
4 | }
5 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_columns.scss:
--------------------------------------------------------------------------------
1 | @mixin columns($arg: auto) {
2 | // ||
3 | @include prefixer(columns, $arg, webkit moz spec);
4 | }
5 |
6 | @mixin column-count($int: auto) {
7 | // auto || integer
8 | @include prefixer(column-count, $int, webkit moz spec);
9 | }
10 |
11 | @mixin column-gap($length: normal) {
12 | // normal || length
13 | @include prefixer(column-gap, $length, webkit moz spec);
14 | }
15 |
16 | @mixin column-fill($arg: auto) {
17 | // auto || length
18 | @include prefixer(column-fill, $arg, webkit moz spec);
19 | }
20 |
21 | @mixin column-rule($arg) {
22 | // || ||
23 | @include prefixer(column-rule, $arg, webkit moz spec);
24 | }
25 |
26 | @mixin column-rule-color($color) {
27 | @include prefixer(column-rule-color, $color, webkit moz spec);
28 | }
29 |
30 | @mixin column-rule-style($style: none) {
31 | // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid
32 | @include prefixer(column-rule-style, $style, webkit moz spec);
33 | }
34 |
35 | @mixin column-rule-width ($width: none) {
36 | @include prefixer(column-rule-width, $width, webkit moz spec);
37 | }
38 |
39 | @mixin column-span($arg: none) {
40 | // none || all
41 | @include prefixer(column-span, $arg, webkit moz spec);
42 | }
43 |
44 | @mixin column-width($length: auto) {
45 | // auto || length
46 | @include prefixer(column-width, $length, webkit moz spec);
47 | }
48 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_filter.scss:
--------------------------------------------------------------------------------
1 | @mixin filter($function: none) {
2 | // [
3 | @include prefixer(perspective, $depth, webkit moz spec);
4 | }
5 |
6 | @mixin perspective-origin($value: 50% 50%) {
7 | @include prefixer(perspective-origin, $value, webkit moz spec);
8 | }
9 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_placeholder.scss:
--------------------------------------------------------------------------------
1 | @mixin placeholder {
2 | $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
3 | @each $placeholder in $placeholders {
4 | &:#{$placeholder}-placeholder {
5 | @content;
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_radial-gradient.scss:
--------------------------------------------------------------------------------
1 | // Requires Sass 3.1+
2 | @mixin radial-gradient($G1, $G2,
3 | $G3: null, $G4: null,
4 | $G5: null, $G6: null,
5 | $G7: null, $G8: null,
6 | $G9: null, $G10: null,
7 | $pos: null,
8 | $shape-size: null,
9 | $fallback: null) {
10 |
11 | $data: _radial-arg-parser($G1, $G2, $pos, $shape-size);
12 | $G1: nth($data, 1);
13 | $G2: nth($data, 2);
14 | $pos: nth($data, 3);
15 | $shape-size: nth($data, 4);
16 |
17 | $full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
18 |
19 | // Strip deprecated cover/contain for spec
20 | $shape-size-spec: _shape-size-stripper($shape-size);
21 |
22 | // Set $G1 as the default fallback color
23 | $first-color: nth($full, 1);
24 | $fallback-color: nth($first-color, 1);
25 |
26 | @if (type-of($fallback) == color) or ($fallback == "transparent") {
27 | $fallback-color: $fallback;
28 | }
29 |
30 | // Add Commas and spaces
31 | $shape-size: if($shape-size, '#{$shape-size}, ', null);
32 | $pos: if($pos, '#{$pos}, ', null);
33 | $pos-spec: if($pos, 'at #{$pos}', null);
34 | $shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} ');
35 |
36 | background-color: $fallback-color;
37 | background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full}));
38 | background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})");
39 | }
40 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_transform.scss:
--------------------------------------------------------------------------------
1 | @mixin transform($property: none) {
2 | // none |
3 | @include prefixer(transform, $property, webkit moz ms o spec);
4 | }
5 |
6 | @mixin transform-origin($axes: 50%) {
7 | // x-axis - left | center | right | length | %
8 | // y-axis - top | center | bottom | length | %
9 | // z-axis - length
10 | @include prefixer(transform-origin, $axes, webkit moz ms o spec);
11 | }
12 |
13 | @mixin transform-style ($style: flat) {
14 | @include prefixer(transform-style, $style, webkit moz ms o spec);
15 | }
16 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_transition.scss:
--------------------------------------------------------------------------------
1 | // Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
2 | // Example: @include transition (all 2s ease-in-out);
3 | // @include transition (opacity 1s ease-in 2s, width 2s ease-out);
4 | // @include transition-property (transform, opacity);
5 |
6 | @mixin transition ($properties...) {
7 | // Fix for vendor-prefix transform property
8 | $needs-prefixes: false;
9 | $webkit: ();
10 | $moz: ();
11 | $spec: ();
12 |
13 | // Create lists for vendor-prefixed transform
14 | @each $list in $properties {
15 | @if nth($list, 1) == "transform" {
16 | $needs-prefixes: true;
17 | $list1: -webkit-transform;
18 | $list2: -moz-transform;
19 | $list3: ();
20 |
21 | @each $var in $list {
22 | $list3: join($list3, $var);
23 |
24 | @if $var != "transform" {
25 | $list1: join($list1, $var);
26 | $list2: join($list2, $var);
27 | }
28 | }
29 |
30 | $webkit: append($webkit, $list1);
31 | $moz: append($moz, $list2);
32 | $spec: append($spec, $list3);
33 | }
34 |
35 | // Create lists for non-prefixed transition properties
36 | @else {
37 | $webkit: append($webkit, $list, comma);
38 | $moz: append($moz, $list, comma);
39 | $spec: append($spec, $list, comma);
40 | }
41 | }
42 |
43 | @if $needs-prefixes {
44 | -webkit-transition: $webkit;
45 | -moz-transition: $moz;
46 | transition: $spec;
47 | }
48 | @else {
49 | @if length($properties) >= 1 {
50 | @include prefixer(transition, $properties, webkit moz spec);
51 | }
52 |
53 | @else {
54 | $properties: all 0.15s ease-out 0s;
55 | @include prefixer(transition, $properties, webkit moz spec);
56 | }
57 | }
58 | }
59 |
60 | @mixin transition-property ($properties...) {
61 | -webkit-transition-property: transition-property-names($properties, 'webkit');
62 | -moz-transition-property: transition-property-names($properties, 'moz');
63 | transition-property: transition-property-names($properties, false);
64 | }
65 |
66 | @mixin transition-duration ($times...) {
67 | @include prefixer(transition-duration, $times, webkit moz spec);
68 | }
69 |
70 | @mixin transition-timing-function ($motions...) {
71 | // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
72 | @include prefixer(transition-timing-function, $motions, webkit moz spec);
73 | }
74 |
75 | @mixin transition-delay ($times...) {
76 | @include prefixer(transition-delay, $times, webkit moz spec);
77 | }
78 |
--------------------------------------------------------------------------------
/_sass/bourbon/css3/_user-select.scss:
--------------------------------------------------------------------------------
1 | @mixin user-select($arg: none) {
2 | @include prefixer(user-select, $arg, webkit moz ms spec);
3 | }
4 |
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_assign.scss:
--------------------------------------------------------------------------------
1 | @function assign-inputs($inputs, $pseudo: null) {
2 | $list : ();
3 |
4 | @each $input in $inputs {
5 | $input: unquote($input);
6 | $input: if($pseudo, $input + ":" + $pseudo, $input);
7 | $list: append($list, $input, comma);
8 | }
9 |
10 | @return $list;
11 | }
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_color-lightness.scss:
--------------------------------------------------------------------------------
1 | // Programatically determines whether a color is light or dark
2 | // Returns a boolean
3 | // More details here http://robots.thoughtbot.com/closer-look-color-lightness
4 |
5 | @function is-light($hex-color) {
6 | $-local-red: red(rgba($hex-color, 1.0));
7 | $-local-green: green(rgba($hex-color, 1.0));
8 | $-local-blue: blue(rgba($hex-color, 1.0));
9 |
10 | $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255;
11 |
12 | @return $-local-lightness > .6;
13 | }
14 |
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_flex-grid.scss:
--------------------------------------------------------------------------------
1 | // Flexible grid
2 | @function flex-grid($columns, $container-columns: $fg-max-columns) {
3 | $width: $columns * $fg-column + ($columns - 1) * $fg-gutter;
4 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
5 | @return percentage($width / $container-width);
6 | }
7 |
8 | // Flexible gutter
9 | @function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) {
10 | $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter;
11 | @return percentage($gutter / $container-width);
12 | }
13 |
14 | // The $fg-column, $fg-gutter and $fg-max-columns variables must be defined in your base stylesheet to properly use the flex-grid function.
15 | // This function takes the fluid grid equation (target / context = result) and uses columns to help define each.
16 | //
17 | // The calculation presumes that your column structure will be missing the last gutter:
18 | //
19 | // -- column -- gutter -- column -- gutter -- column
20 | //
21 | // $fg-column: 60px; // Column Width
22 | // $fg-gutter: 25px; // Gutter Width
23 | // $fg-max-columns: 12; // Total Columns For Main Container
24 | //
25 | // div {
26 | // width: flex-grid(4); // returns (315px / 995px) = 31.65829%;
27 | // margin-left: flex-gutter(); // returns (25px / 995px) = 2.51256%;
28 | //
29 | // p {
30 | // width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%;
31 | // float: left;
32 | // margin: flex-gutter(4); // returns (25px / 315px) = 7.936508%;
33 | // }
34 | //
35 | // blockquote {
36 | // float: left;
37 | // width: flex-grid(2, 4); // returns (145px / 315px) = 46.031746%;
38 | // }
39 | // }
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_golden-ratio.scss:
--------------------------------------------------------------------------------
1 | @function golden-ratio($value, $increment) {
2 | @return modular-scale($value, $increment, $golden)
3 | }
4 |
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_grid-width.scss:
--------------------------------------------------------------------------------
1 | @function grid-width($n) {
2 | @return $n * $gw-column + ($n - 1) * $gw-gutter;
3 | }
4 |
5 | // The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function.
6 | //
7 | // $gw-column: 100px; // Column Width
8 | // $gw-gutter: 40px; // Gutter Width
9 | //
10 | // div {
11 | // width: grid-width(4); // returns 520px;
12 | // margin-left: $gw-gutter; // returns 40px;
13 | // }
14 |
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_modular-scale.scss:
--------------------------------------------------------------------------------
1 | // Scaling Variables
2 | $golden: 1.618;
3 | $minor-second: 1.067;
4 | $major-second: 1.125;
5 | $minor-third: 1.2;
6 | $major-third: 1.25;
7 | $perfect-fourth: 1.333;
8 | $augmented-fourth: 1.414;
9 | $perfect-fifth: 1.5;
10 | $minor-sixth: 1.6;
11 | $major-sixth: 1.667;
12 | $minor-seventh: 1.778;
13 | $major-seventh: 1.875;
14 | $octave: 2;
15 | $major-tenth: 2.5;
16 | $major-eleventh: 2.667;
17 | $major-twelfth: 3;
18 | $double-octave: 4;
19 |
20 | @function modular-scale($value, $increment, $ratio) {
21 | $v1: nth($value, 1);
22 | $v2: nth($value, length($value));
23 | $value: $v1;
24 |
25 | // scale $v2 to just above $v1
26 | @while $v2 > $v1 {
27 | $v2: ($v2 / $ratio); // will be off-by-1
28 | }
29 | @while $v2 < $v1 {
30 | $v2: ($v2 * $ratio); // will fix off-by-1
31 | }
32 |
33 | // check AFTER scaling $v2 to prevent double-counting corner-case
34 | $double-stranded: $v2 > $v1;
35 |
36 | @if $increment > 0 {
37 | @for $i from 1 through $increment {
38 | @if $double-stranded and ($v1 * $ratio) > $v2 {
39 | $value: $v2;
40 | $v2: ($v2 * $ratio);
41 | } @else {
42 | $v1: ($v1 * $ratio);
43 | $value: $v1;
44 | }
45 | }
46 | }
47 |
48 | @if $increment < 0 {
49 | // adjust $v2 to just below $v1
50 | @if $double-stranded {
51 | $v2: ($v2 / $ratio);
52 | }
53 |
54 | @for $i from $increment through -1 {
55 | @if $double-stranded and ($v1 / $ratio) < $v2 {
56 | $value: $v2;
57 | $v2: ($v2 / $ratio);
58 | } @else {
59 | $v1: ($v1 / $ratio);
60 | $value: $v1;
61 | }
62 | }
63 | }
64 |
65 | @return $value;
66 | }
67 |
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_px-to-em.scss:
--------------------------------------------------------------------------------
1 | // Convert pixels to ems
2 | // eg. for a relational value of 12px write em(12) when the parent is 16px
3 | // if the parent is another value say 24px write em(12, 24)
4 |
5 | @function em($pxval, $base: $em-base) {
6 | @if not unitless($pxval) {
7 | $pxval: strip-units($pxval);
8 | }
9 | @if not unitless($base) {
10 | $base: strip-units($base);
11 | }
12 | @return ($pxval / $base) * 1em;
13 | }
14 |
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_px-to-rem.scss:
--------------------------------------------------------------------------------
1 | // Convert pixels to rems
2 | // eg. for a relational value of 12px write rem(12)
3 | // Assumes $em-base is the font-size of
4 |
5 | @function rem($pxval) {
6 | @if not unitless($pxval) {
7 | $pxval: strip-units($pxval);
8 | }
9 |
10 | $base: $em-base;
11 | @if not unitless($base) {
12 | $base: strip-units($base);
13 | }
14 | @return ($pxval / $base) * 1rem;
15 | }
16 |
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_strip-units.scss:
--------------------------------------------------------------------------------
1 | // Srtips the units from a value. e.g. 12px -> 12
2 |
3 | @function strip-units($val) {
4 | @return ($val / ($val * 0 + 1));
5 | }
6 |
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_tint-shade.scss:
--------------------------------------------------------------------------------
1 | // Add percentage of white to a color
2 | @function tint($color, $percent){
3 | @return mix(white, $color, $percent);
4 | }
5 |
6 | // Add percentage of black to a color
7 | @function shade($color, $percent){
8 | @return mix(black, $color, $percent);
9 | }
10 |
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_transition-property-name.scss:
--------------------------------------------------------------------------------
1 | // Return vendor-prefixed property names if appropriate
2 | // Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background
3 | //************************************************************************//
4 | @function transition-property-names($props, $vendor: false) {
5 | $new-props: ();
6 |
7 | @each $prop in $props {
8 | $new-props: append($new-props, transition-property-name($prop, $vendor), comma);
9 | }
10 |
11 | @return $new-props;
12 | }
13 |
14 | @function transition-property-name($prop, $vendor: false) {
15 | // put other properties that need to be prefixed here aswell
16 | @if $vendor and $prop == transform {
17 | @return unquote('-'+$vendor+'-'+$prop);
18 | }
19 | @else {
20 | @return $prop;
21 | }
22 | }
--------------------------------------------------------------------------------
/_sass/bourbon/functions/_unpack.scss:
--------------------------------------------------------------------------------
1 | // Convert shorthand to the 4-value syntax
2 |
3 | @function unpack($shorthand) {
4 | @if length($shorthand) == 1 {
5 | @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1);
6 | }
7 | @else if length($shorthand) == 2 {
8 | @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2);
9 | }
10 | @else if length($shorthand) == 3 {
11 | @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2);
12 | }
13 | @else {
14 | @return $shorthand;
15 | }
16 | }
17 |
18 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_convert-units.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // Helper function for str-to-num fn.
3 | // Source: http://sassmeister.com/gist/9647408
4 | //************************************************************************//
5 | @function _convert-units($number, $unit) {
6 | $strings: 'px' 'cm' 'mm' '%' 'ch' 'pica' 'in' 'em' 'rem' 'pt' 'pc' 'ex' 'vw' 'vh' 'vmin' 'vmax', 'deg', 'rad', 'grad', 'turn';
7 | $units: 1px 1cm 1mm 1% 1ch 1pica 1in 1em 1rem 1pt 1pc 1ex 1vw 1vh 1vmin 1vmax, 1deg, 1rad, 1grad, 1turn;
8 | $index: index($strings, $unit);
9 |
10 | @if not $index {
11 | @warn "Unknown unit `#{$unit}`.";
12 | @return false;
13 | }
14 | @return $number * nth($units, $index);
15 | }
16 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_gradient-positions-parser.scss:
--------------------------------------------------------------------------------
1 | @function _gradient-positions-parser($gradient-type, $gradient-positions) {
2 | @if $gradient-positions
3 | and ($gradient-type == linear)
4 | and (type-of($gradient-positions) != color) {
5 | $gradient-positions: _linear-positions-parser($gradient-positions);
6 | }
7 | @else if $gradient-positions
8 | and ($gradient-type == radial)
9 | and (type-of($gradient-positions) != color) {
10 | $gradient-positions: _radial-positions-parser($gradient-positions);
11 | }
12 | @return $gradient-positions;
13 | }
14 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_is-num.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // Helper for linear-gradient-parser
3 | //************************************************************************//
4 | @function _is-num($char) {
5 | $values: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9' 0 1 2 3 4 5 6 7 8 9;
6 | $index: index($values, $char);
7 | @return if($index, true, false);
8 | }
9 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_linear-angle-parser.scss:
--------------------------------------------------------------------------------
1 | // Private function for linear-gradient-parser
2 | @function _linear-angle-parser($image, $first-val, $prefix, $suffix) {
3 | $offset: null;
4 | $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val));
5 | $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val));
6 |
7 | @if ($unit-long == "grad") or
8 | ($unit-long == "turn") {
9 | $offset: if($unit-long == "grad", -100grad * 3, -0.75turn);
10 | }
11 |
12 | @else if ($unit-short == "deg") or
13 | ($unit-short == "rad") {
14 | $offset: if($unit-short == "deg", -90 * 3, 1.6rad);
15 | }
16 |
17 | @if $offset {
18 | $num: _str-to-num($first-val);
19 |
20 | @return (
21 | webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix,
22 | spec-image: $image
23 | );
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_linear-gradient-parser.scss:
--------------------------------------------------------------------------------
1 | @function _linear-gradient-parser($image) {
2 | $image: unquote($image);
3 | $gradients: ();
4 | $start: str-index($image, "(");
5 | $end: str-index($image, ",");
6 | $first-val: str-slice($image, $start + 1, $end - 1);
7 |
8 | $prefix: str-slice($image, 0, $start);
9 | $suffix: str-slice($image, $end, str-length($image));
10 |
11 | $has-multiple-vals: str-index($first-val, " ");
12 | $has-single-position: unquote(_position-flipper($first-val) + "");
13 | $has-angle: _is-num(str-slice($first-val, 0, 0));
14 |
15 | @if $has-multiple-vals {
16 | $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals);
17 | }
18 |
19 | @else if $has-single-position != "" {
20 | $pos: unquote($has-single-position + "");
21 |
22 | $gradients: (
23 | webkit-image: -webkit- + $image,
24 | spec-image: $prefix + "to " + $pos + $suffix
25 | );
26 | }
27 |
28 | @else if $has-angle {
29 | // Rotate degree for webkit
30 | $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix);
31 | }
32 |
33 | @else {
34 | $gradients: (
35 | webkit-image: -webkit- + $image,
36 | spec-image: $image
37 | );
38 | }
39 |
40 | @return $gradients;
41 | }
42 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_linear-positions-parser.scss:
--------------------------------------------------------------------------------
1 | @function _linear-positions-parser($pos) {
2 | $type: type-of(nth($pos, 1));
3 | $spec: null;
4 | $degree: null;
5 | $side: null;
6 | $corner: null;
7 | $length: length($pos);
8 | // Parse Side and corner positions
9 | @if ($length > 1) {
10 | @if nth($pos, 1) == "to" { // Newer syntax
11 | $side: nth($pos, 2);
12 |
13 | @if $length == 2 { // eg. to top
14 | // Swap for backwards compatability
15 | $degree: _position-flipper(nth($pos, 2));
16 | }
17 | @else if $length == 3 { // eg. to top left
18 | $corner: nth($pos, 3);
19 | }
20 | }
21 | @else if $length == 2 { // Older syntax ("top left")
22 | $side: _position-flipper(nth($pos, 1));
23 | $corner: _position-flipper(nth($pos, 2));
24 | }
25 |
26 | @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
27 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
28 | }
29 | @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
30 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
31 | }
32 | @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
33 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
34 | }
35 | @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
36 | $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
37 | }
38 | $spec: to $side $corner;
39 | }
40 | @else if $length == 1 {
41 | // Swap for backwards compatability
42 | @if $type == string {
43 | $degree: $pos;
44 | $spec: to _position-flipper($pos);
45 | }
46 | @else {
47 | $degree: -270 - $pos; //rotate the gradient opposite from spec
48 | $spec: $pos;
49 | }
50 | }
51 | $degree: unquote($degree + ",");
52 | $spec: unquote($spec + ",");
53 | @return $degree $spec;
54 | }
55 |
56 | @function _position-flipper($pos) {
57 | @return if($pos == left, right, null)
58 | if($pos == right, left, null)
59 | if($pos == top, bottom, null)
60 | if($pos == bottom, top, null);
61 | }
62 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_linear-side-corner-parser.scss:
--------------------------------------------------------------------------------
1 | // Private function for linear-gradient-parser
2 | @function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) {
3 | $val-1: str-slice($first-val, 0, $has-multiple-vals - 1 );
4 | $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val));
5 | $val-3: null;
6 | $has-val-3: str-index($val-2, " ");
7 |
8 | @if $has-val-3 {
9 | $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2));
10 | $val-2: str-slice($val-2, 0, $has-val-3 - 1);
11 | }
12 |
13 | $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3);
14 | $pos: unquote($pos + "");
15 |
16 | // Use old spec for webkit
17 | @if $val-1 == "to" {
18 | @return (
19 | webkit-image: -webkit- + $prefix + $pos + $suffix,
20 | spec-image: $image
21 | );
22 | }
23 |
24 | // Bring the code up to spec
25 | @else {
26 | @return (
27 | webkit-image: -webkit- + $image,
28 | spec-image: $prefix + "to " + $pos + $suffix
29 | );
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_radial-arg-parser.scss:
--------------------------------------------------------------------------------
1 | @function _radial-arg-parser($G1, $G2, $pos, $shape-size) {
2 | @each $value in $G1, $G2 {
3 | $first-val: nth($value, 1);
4 | $pos-type: type-of($first-val);
5 | $spec-at-index: null;
6 |
7 | // Determine if spec was passed to mixin
8 | @if type-of($value) == list {
9 | $spec-at-index: if(index($value, at), index($value, at), false);
10 | }
11 | @if $spec-at-index {
12 | @if $spec-at-index > 1 {
13 | @for $i from 1 through ($spec-at-index - 1) {
14 | $shape-size: $shape-size nth($value, $i);
15 | }
16 | @for $i from ($spec-at-index + 1) through length($value) {
17 | $pos: $pos nth($value, $i);
18 | }
19 | }
20 | @else if $spec-at-index == 1 {
21 | @for $i from ($spec-at-index + 1) through length($value) {
22 | $pos: $pos nth($value, $i);
23 | }
24 | }
25 | $G1: null;
26 | }
27 |
28 | // If not spec calculate correct values
29 | @else {
30 | @if ($pos-type != color) or ($first-val != "transparent") {
31 | @if ($pos-type == number)
32 | or ($first-val == "center")
33 | or ($first-val == "top")
34 | or ($first-val == "right")
35 | or ($first-val == "bottom")
36 | or ($first-val == "left") {
37 |
38 | $pos: $value;
39 |
40 | @if $pos == $G1 {
41 | $G1: null;
42 | }
43 | }
44 |
45 | @else if
46 | ($first-val == "ellipse")
47 | or ($first-val == "circle")
48 | or ($first-val == "closest-side")
49 | or ($first-val == "closest-corner")
50 | or ($first-val == "farthest-side")
51 | or ($first-val == "farthest-corner")
52 | or ($first-val == "contain")
53 | or ($first-val == "cover") {
54 |
55 | $shape-size: $value;
56 |
57 | @if $value == $G1 {
58 | $G1: null;
59 | }
60 |
61 | @else if $value == $G2 {
62 | $G2: null;
63 | }
64 | }
65 | }
66 | }
67 | }
68 | @return $G1, $G2, $pos, $shape-size;
69 | }
70 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_radial-gradient-parser.scss:
--------------------------------------------------------------------------------
1 | @function _radial-gradient-parser($image) {
2 | $image: unquote($image);
3 | $gradients: ();
4 | $start: str-index($image, "(");
5 | $end: str-index($image, ",");
6 | $first-val: str-slice($image, $start + 1, $end - 1);
7 |
8 | $prefix: str-slice($image, 0, $start);
9 | $suffix: str-slice($image, $end, str-length($image));
10 |
11 | $is-spec-syntax: str-index($first-val, "at");
12 |
13 | @if $is-spec-syntax and $is-spec-syntax > 1 {
14 | $keyword: str-slice($first-val, 1, $is-spec-syntax - 2);
15 | $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
16 | $pos: append($pos, $keyword, comma);
17 |
18 | $gradients: (
19 | webkit-image: -webkit- + $prefix + $pos + $suffix,
20 | spec-image: $image
21 | )
22 | }
23 |
24 | @else if $is-spec-syntax == 1 {
25 | $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val));
26 |
27 | $gradients: (
28 | webkit-image: -webkit- + $prefix + $pos + $suffix,
29 | spec-image: $image
30 | )
31 | }
32 |
33 | @else if str-index($image, "cover") or str-index($image, "contain") {
34 | @warn "Radial-gradient needs to be updated to conform to latest spec.";
35 |
36 | $gradients: (
37 | webkit-image: null,
38 | spec-image: $image
39 | )
40 | }
41 |
42 | @else {
43 | $gradients: (
44 | webkit-image: -webkit- + $image,
45 | spec-image: $image
46 | )
47 | }
48 |
49 | @return $gradients;
50 | }
51 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_radial-positions-parser.scss:
--------------------------------------------------------------------------------
1 | @function _radial-positions-parser($gradient-pos) {
2 | $shape-size: nth($gradient-pos, 1);
3 | $pos: nth($gradient-pos, 2);
4 | $shape-size-spec: _shape-size-stripper($shape-size);
5 |
6 | $pre-spec: unquote(if($pos, "#{$pos}, ", null))
7 | unquote(if($shape-size, "#{$shape-size},", null));
8 | $pos-spec: if($pos, "at #{$pos}", null);
9 |
10 | $spec: "#{$shape-size-spec} #{$pos-spec}";
11 |
12 | // Add comma
13 | @if ($spec != ' ') {
14 | $spec: "#{$spec},"
15 | }
16 |
17 | @return $pre-spec $spec;
18 | }
19 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_render-gradients.scss:
--------------------------------------------------------------------------------
1 | // User for linear and radial gradients within background-image or border-image properties
2 |
3 | @function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
4 | $pre-spec: null;
5 | $spec: null;
6 | $vendor-gradients: null;
7 | @if $gradient-type == linear {
8 | @if $gradient-positions {
9 | $pre-spec: nth($gradient-positions, 1);
10 | $spec: nth($gradient-positions, 2);
11 | }
12 | }
13 | @else if $gradient-type == radial {
14 | $pre-spec: nth($gradient-positions, 1);
15 | $spec: nth($gradient-positions, 2);
16 | }
17 |
18 | @if $vendor {
19 | $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
20 | }
21 | @else if $vendor == false {
22 | $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
23 | $vendor-gradients: unquote($vendor-gradients);
24 | }
25 | @return $vendor-gradients;
26 | }
27 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_shape-size-stripper.scss:
--------------------------------------------------------------------------------
1 | @function _shape-size-stripper($shape-size) {
2 | $shape-size-spec: null;
3 | @each $value in $shape-size {
4 | @if ($value == "cover") or ($value == "contain") {
5 | $value: null;
6 | }
7 | $shape-size-spec: "#{$shape-size-spec} #{$value}";
8 | }
9 | @return $shape-size-spec;
10 | }
11 |
--------------------------------------------------------------------------------
/_sass/bourbon/helpers/_str-to-num.scss:
--------------------------------------------------------------------------------
1 | //************************************************************************//
2 | // Helper function for linear/radial-gradient-parsers.
3 | // Source: http://sassmeister.com/gist/9647408
4 | //************************************************************************//
5 | @function _str-to-num($string) {
6 | // Matrices
7 | $strings: '0' '1' '2' '3' '4' '5' '6' '7' '8' '9';
8 | $numbers: 0 1 2 3 4 5 6 7 8 9;
9 |
10 | // Result
11 | $result: 0;
12 | $divider: 0;
13 | $minus: false;
14 |
15 | // Looping through all characters
16 | @for $i from 1 through str-length($string) {
17 | $character: str-slice($string, $i, $i);
18 | $index: index($strings, $character);
19 |
20 | @if $character == '-' {
21 | $minus: true;
22 | }
23 |
24 | @else if $character == '.' {
25 | $divider: 1;
26 | }
27 |
28 | @else {
29 | @if not $index {
30 | $result: if($minus, $result * -1, $result);
31 | @return _convert-units($result, str-slice($string, $i));
32 | }
33 |
34 | $number: nth($numbers, $index);
35 |
36 | @if $divider == 0 {
37 | $result: $result * 10;
38 | }
39 |
40 | @else {
41 | // Move the decimal dot to the left
42 | $divider: $divider * 10;
43 | $number: $number / $divider;
44 | }
45 |
46 | $result: $result + $number;
47 | }
48 | }
49 | @return if($minus, $result * -1, $result);
50 | }
51 |
--------------------------------------------------------------------------------
/_sass/bourbon/settings/_asset-pipeline.scss:
--------------------------------------------------------------------------------
1 | $asset-pipeline: false !default;
2 |
--------------------------------------------------------------------------------
/_sass/bourbon/settings/_prefixer.scss:
--------------------------------------------------------------------------------
1 | // Variable settings for /addons/prefixer.scss
2 | $prefix-for-webkit: true !default;
3 | $prefix-for-mozilla: true !default;
4 | $prefix-for-microsoft: true !default;
5 | $prefix-for-opera: true !default;
6 | $prefix-for-spec: true !default; // required for keyframe mixin
7 |
--------------------------------------------------------------------------------
/_sass/bourbon/settings/_px-to-em.scss:
--------------------------------------------------------------------------------
1 | $em-base: 16px !default;
2 |
--------------------------------------------------------------------------------
/about.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: page
3 | title: About
4 | permalink: /about/
5 | ---
6 |
7 | A medium inspired Jekyll blog theme. The basic idea came from the Ghost theme
8 | [Readium 2.0](http://www.svenread.com/readium-ghost-theme/). I use mediator on my own blog [The Base](blog.base68.com).
9 |
10 | You can **download** the theme here:
11 | [https://github.com/dirkfabisch/mediator](https://github.com/dirkfabisch/mediator)
12 |
13 | You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](http://jekyllrb.com/)
14 |
15 | You can find the source code for the Jekyll new theme at: [github.com/jglovier/jekyll-new](https://github.com/jglovier/jekyll-new)
16 |
17 | You can find the source code for Jekyll at [github.com/jekyll/jekyll](https://github.com/jekyll/jekyll)
18 |
--------------------------------------------------------------------------------
/assets/article_images/2014-08-29-welcome-to-jekyll/desktop.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/article_images/2014-08-29-welcome-to-jekyll/desktop.JPG
--------------------------------------------------------------------------------
/assets/article_images/2014-11-30-mediator_features/night-track-mobile.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/article_images/2014-11-30-mediator_features/night-track-mobile.JPG
--------------------------------------------------------------------------------
/assets/article_images/2014-11-30-mediator_features/night-track.JPG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/article_images/2014-11-30-mediator_features/night-track.JPG
--------------------------------------------------------------------------------
/assets/article_images/about/carb_book_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/article_images/about/carb_book_logo.png
--------------------------------------------------------------------------------
/assets/images/author.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/images/author.jpg
--------------------------------------------------------------------------------
/assets/images/background_image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/images/background_image.jpg
--------------------------------------------------------------------------------
/assets/images/cA4aKEIPQrerBnp1yGHv_IMG_9534-3-2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/images/cA4aKEIPQrerBnp1yGHv_IMG_9534-3-2.jpg
--------------------------------------------------------------------------------
/assets/images/df_logo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/images/df_logo.jpg
--------------------------------------------------------------------------------
/assets/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/images/favicon.png
--------------------------------------------------------------------------------
/assets/images/screenshot1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/images/screenshot1.jpg
--------------------------------------------------------------------------------
/assets/images/screenshot2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/images/screenshot2.jpg
--------------------------------------------------------------------------------
/assets/images/screenshot3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/assets/images/screenshot3.jpg
--------------------------------------------------------------------------------
/assets/js/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Main JS file for Casper behaviours
3 | */
4 |
5 | /*globals jQuery, document */
6 | (function ($) {
7 | "use strict";
8 |
9 | $(document).ready(function(){
10 |
11 | $(".post-content").fitVids();
12 |
13 | // Calculates Reading Time
14 | $('.post-content').readingTime({
15 | readingTimeTarget: '.post-reading-time',
16 | wordCountTarget: '.post-word-count',
17 | });
18 |
19 | // Creates Captions from Alt tags
20 | $(".post-content img").each(function() {
21 | // Let's put a caption if there is one
22 | if($(this).attr("alt") && !$(this).hasClass("emoji"))
23 | $(this).wrap('')
24 | .after(''+$(this).attr("alt")+'');
25 | });
26 |
27 | });
28 |
29 | }(jQuery));
30 |
--------------------------------------------------------------------------------
/assets/js/jquery.fitvids.js:
--------------------------------------------------------------------------------
1 | /*global jQuery */
2 | /*jshint multistr:true browser:true */
3 | /*!
4 | * FitVids 1.0.3
5 | *
6 | * Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
7 | * Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
8 | * Released under the WTFPL license - http://sam.zoy.org/wtfpl/
9 | *
10 | * Date: Thu Sept 01 18:00:00 2011 -0500
11 | */
12 |
13 | (function( $ ){
14 |
15 | "use strict";
16 |
17 | $.fn.fitVids = function( options ) {
18 | var settings = {
19 | customSelector: null
20 | };
21 |
22 | if(!document.getElementById('fit-vids-style')) {
23 |
24 | var div = document.createElement('div'),
25 | ref = document.getElementsByTagName('base')[0] || document.getElementsByTagName('script')[0],
26 | cssStyles = '';
27 |
28 | div.className = 'fit-vids-style';
29 | div.id = 'fit-vids-style';
30 | div.style.display = 'none';
31 | div.innerHTML = cssStyles;
32 |
33 | ref.parentNode.insertBefore(div,ref);
34 |
35 | }
36 |
37 | if ( options ) {
38 | $.extend( settings, options );
39 | }
40 |
41 | return this.each(function(){
42 | var selectors = [
43 | "iframe[src*='player.vimeo.com']",
44 | "iframe[src*='youtube.com']",
45 | "iframe[src*='youtube-nocookie.com']",
46 | "iframe[src*='kickstarter.com'][src*='video.html']",
47 | "object",
48 | "embed"
49 | ];
50 |
51 | if (settings.customSelector) {
52 | selectors.push(settings.customSelector);
53 | }
54 |
55 | var $allVideos = $(this).find(selectors.join(','));
56 | $allVideos = $allVideos.not("object object"); // SwfObj conflict patch
57 |
58 | $allVideos.each(function(){
59 | var $this = $(this);
60 | if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
61 | var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),
62 | width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
63 | aspectRatio = height / width;
64 | if(!$this.attr('id')){
65 | var videoID = 'fitvid' + Math.floor(Math.random()*999999);
66 | $this.attr('id', videoID);
67 | }
68 | $this.wrap('').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%");
69 | $this.removeAttr('height').removeAttr('width');
70 | });
71 | });
72 | };
73 | // Works with either jQuery or Zepto
74 | })( window.jQuery || window.Zepto );
75 |
--------------------------------------------------------------------------------
/assets/js/min/highlight.pack-ck.js:
--------------------------------------------------------------------------------
1 | var hljs=new function(){function e(e){return e.replace(/&/gm,"&").replace(//gm,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,t){var r=e&&e.exec(t);return r&&0==r.index}function n(e){return Array.prototype.map.call(e.childNodes,function(e){return 3==e.nodeType?N.useBR?e.nodeValue.replace(/\n/g,""):e.nodeValue:"br"==t(e)?"\n":n(e)}).join("")}function a(e){var t=(e.className+" "+(e.parentNode?e.parentNode.className:"")).split(/\s+/);return t=t.map(function(e){return e.replace(/^language-/,"")}),t.filter(function(e){return m(e)||"no-highlight"==e})[0]}function i(e,t){var r={};for(var n in e)r[n]=e[n];if(t)for(var n in t)r[n]=t[n];return r}function c(e){var r=[];return function n(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:"br"==t(i)?a+=1:1==i.nodeType&&(r.push({event:"start",offset:a,node:i}),a=n(i,a),r.push({event:"stop",offset:a,node:i}));return a}(e,0),r}function s(r,n,a){function i(){return r.length&&n.length?r[0].offset!=n[0].offset?r[0].offset"}function s(e){u+=""+t(e)+">"}function o(e){("start"==e.event?c:s)(e.node)}for(var l=0,u="",b=[];r.length||n.length;){var d=i();if(u+=e(a.substr(l,d[0].offset-l)),l=d[0].offset,d==r){b.reverse().forEach(s);do o(d.splice(0,1)[0]),d=i();while(d==r&&d.length&&d[0].offset==l);b.reverse().forEach(c)}else"start"==d[0].event?b.push(d[0].node):b.pop(),o(d.splice(0,1)[0])}return u+e(a.substr(l))}function o(e){function t(e){return e&&e.source||e}function r(r,n){return RegExp(t(r),"m"+(e.cI?"i":"")+(n?"g":""))}function n(a,c){function s(t,r){e.cI&&(r=r.toLowerCase()),r.split(" ").forEach(function(e){var r=e.split("|");o[r[0]]=[t,r[1]?Number(r[1]):1]})}if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var o={};"string"==typeof a.k?s("keyword",a.k):Object.keys(a.k).forEach(function(e){s(e,a.k[e])}),a.k=o}a.lR=r(a.l||/\b[A-Za-z0-9_]+\b/,!0),c&&(a.bK&&(a.b=a.bK.split(" ").join("|")),a.b||(a.b=/\B|\b/),a.bR=r(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=r(a.e)),a.tE=t(a.e)||"",a.eW&&c.tE&&(a.tE+=(a.e?"|":"")+c.tE)),a.i&&(a.iR=r(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var l=[];a.c.forEach(function(e){e.v?e.v.forEach(function(t){l.push(i(e,t))}):l.push("self"==e?a:e)}),a.c=l,a.c.forEach(function(e){n(e,a)}),a.starts&&n(a.starts,c);var u=a.c.map(function(e){return e.bK?"\\.?\\b("+e.b+")\\b\\.?":e.b}).concat([a.tE]).concat([a.i]).map(t).filter(Boolean);a.t=u.length?r(u.join("|"),!0):{exec:function(e){return null}},a.continuation={}}}n(e)}function l(t,n,a,i){function c(e,t){for(var n=0;n";return i+=e+'">',i+t+c}function f(){var t=e(x);if(!k.k)return t;var r="",n=0;k.lR.lastIndex=0;for(var a=k.lR.exec(t);a;){r+=t.substr(n,a.index-n);var i=d(k,a);i?(C+=i[1],r+=p(i[0],a[0])):r+=a[0],n=k.lR.lastIndex,a=k.lR.exec(t)}return r+t.substr(n)}function g(){if(k.sL&&!v[k.sL])return e(x);var t=k.sL?l(k.sL,x,!0,k.continuation.top):u(x);return k.r>0&&(C+=t.r),"continuous"==k.subLanguageMode&&(k.continuation.top=t.top),p(t.language,t.value,!1,!0)}function h(){return void 0!==k.sL?g():f()}function w(t,r){var n=t.cN?p(t.cN,"",!0):"";t.rB?(M+=n,x=""):t.eB?(M+=e(r)+n,x=""):(M+=n,x=r),k=Object.create(t,{parent:{value:k}})}function _(t,r){if(x+=t,void 0===r)return M+=h(),0;var n=c(r,k);if(n)return M+=h(),w(n,r),n.rB?0:r.length;var a=s(k,r);if(a){var i=k;i.rE||i.eE||(x+=r),M+=h();do k.cN&&(M+=""),C+=k.r,k=k.parent;while(k!=a.parent);return i.eE&&(M+=e(r)),x="",a.starts&&w(a.starts,""),i.rE?0:r.length}if(b(r,k))throw new Error('Illegal lexeme "'+r+'" for mode "'+(k.cN||"")+'"');return x+=r,r.length||1}var y=m(t);if(!y)throw new Error('Unknown language: "'+t+'"');o(y);for(var k=i||y,M="",E=k;E!=y;E=E.parent)E.cN&&(M=p(E.cN,M,!0));var x="",C=0;try{for(var L,B,I=0;;){if(k.t.lastIndex=I,L=k.t.exec(n),!L)break;B=_(n.substr(I,L.index-I),L[0]),I=L.index+B}_(n.substr(I));for(var E=k;E.parent;E=E.parent)E.cN&&(M+="");return{r:C,value:M,language:t,top:k}}catch(S){if(-1!=S.message.indexOf("Illegal"))return{r:0,value:e(n)};throw S}}function u(t,r){r=r||N.languages||Object.keys(v);var n={r:0,value:e(t)},a=n;return r.forEach(function(e){if(m(e)){var r=l(e,t,!1);r.language=e,r.r>a.r&&(a=r),r.r>n.r&&(a=n,n=r)}}),a.language&&(n.second_best=a),n}function b(e){return N.tabReplace&&(e=e.replace(/^((<[^>]+>|\t)+)/gm,function(e,t,r,n){return t.replace(/\t/g,N.tabReplace)})),N.useBR&&(e=e.replace(/\n/g,"
")),e}function d(e){var t=n(e),r=a(e);if("no-highlight"!=r){var i=r?l(r,t,!0):u(t),o=c(e);if(o.length){var d=document.createElementNS("http://www.w3.org/1999/xhtml","pre");d.innerHTML=i.value,i.value=s(o,c(d),t)}i.value=b(i.value),e.innerHTML=i.value,e.className+=" hljs "+(!r&&i.language||""),e.result={language:i.language,re:i.r},i.second_best&&(e.second_best={language:i.second_best.language,re:i.second_best.r})}}function p(e){N=i(N,e)}function f(){if(!f.called){f.called=!0;var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,d)}}function g(){addEventListener("DOMContentLoaded",f,!1),addEventListener("load",f,!1)}function h(e,t){var r=v[e]=t(this);r.aliases&&r.aliases.forEach(function(t){w[t]=e})}function m(e){return v[e]||v[w[e]]}var N={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},v={},w={};this.highlight=l,this.highlightAuto=u,this.fixMarkup=b,this.highlightBlock=d,this.configure=p,this.initHighlighting=f,this.initHighlightingOnLoad=g,this.registerLanguage=h,this.getLanguage=m,this.inherit=i,this.IR="[a-zA-Z][a-zA-Z0-9_]*",this.UIR="[a-zA-Z_][a-zA-Z0-9_]*",this.NR="\\b\\d+(\\.\\d+)?",this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",this.BNR="\\b(0b[01]+)",this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",this.BE={b:"\\\\[\\s\\S]",r:0},this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]},this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]},this.CLCM={cN:"comment",b:"//",e:"$"},this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"},this.HCM={cN:"comment",b:"#",e:"$"},this.NM={cN:"number",b:this.NR,r:0},this.CNM={cN:"number",b:this.CNR,r:0},this.BNM={cN:"number",b:this.BNR,r:0},this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]},this.TM={cN:"title",b:this.IR,r:0},this.UTM={cN:"title",b:this.UIR,r:0}};hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)\}/}]},r={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},n={cN:"string",b:/'/,e:/'/};return{l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,e.NM,r,n,t]}}),hljs.registerLanguage("cs",function(e){var t="abstract as base bool break byte case catch char checked const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield";return{k:t,c:[{cN:"comment",b:"///",e:"$",rB:!0,c:[{cN:"xmlDocTag",b:"///|"},{cN:"xmlDocTag",b:"?",e:">"}]},e.CLCM,e.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},e.ASM,e.QSM,e.CNM,{bK:"protected public private internal",e:/[{;=]/,k:t,c:[{bK:"class namespace interface",starts:{c:[e.TM]}},{b:e.IR+"\\s*\\(",rB:!0,c:[e.TM]}]}]}}),hljs.registerLanguage("ruby",function(e){var t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",n={cN:"yardoctag",b:"@[A-Za-z]+"},a={cN:"comment",v:[{b:"#",e:"$",c:[n]},{b:"^\\=begin",e:"^\\=end",c:[n],r:10},{b:"^__END__",e:"\\n$"}]},i={cN:"subst",b:"#\\{",e:"}",k:r},c={cN:"string",c:[e.BE,i],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:"%[qw]?\\(",e:"\\)"},{b:"%[qw]?\\[",e:"\\]"},{b:"%[qw]?{",e:"}"},{b:"%[qw]?<",e:">",r:10},{b:"%[qw]?/",e:"/",r:10},{b:"%[qw]?%",e:"%",r:10},{b:"%[qw]?-",e:"-",r:10},{b:"%[qw]?\\|",e:"\\|",r:10},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},s={cN:"params",b:"\\(",e:"\\)",k:r},o=[c,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]},a]},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:t}),s,a]},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[c,{b:t}],r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[a,{cN:"regexp",c:[e.BE,i],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];return i.c=o,s.c=o,{k:r,c:o}}),hljs.registerLanguage("diff",function(e){return{c:[{cN:"chunk",r:10,v:[{b:/^\@\@ +\-\d+,\d+ +\+\d+,\d+ +\@\@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}}),hljs.registerLanguage("javascript",function(e){return{aliases:["js"],k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:10},e.ASM,e.QSM,e.CLCM,e.CBLCLM,e.CNM,{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBLCLM,e.REGEXP_MODE,{b:/,e:/>;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[e.CLCM,e.CBLCLM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+e.IR,r:0}]}}),hljs.registerLanguage("xml",function(e){var t="[A-Za-z0-9\\._:-]+",r={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"},n={eW:!0,i:/,r:0,c:[r,{cN:"attribute",b:t,r:0},{b:"=",r:0,c:[{cN:"value",v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s\/>]+/}]}]}]};return{aliases:["html"],cI:!0,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"",rE:!0,sL:"css"}},{cN:"tag",b:"",rE:!0,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},r,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"?",e:"/?>",c:[{cN:"title",b:"[^ /><]+",r:0},n]}]}}),hljs.registerLanguage("markdown",function(e){return{c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].+?[\\)\\]]",rB:!0,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:"^\\[.+\\]:",e:"$",rB:!0,c:[{cN:"link_reference",b:"\\[",e:"\\]",eB:!0,eE:!0},{cN:"link_url",b:"\\s",e:"$"}]}]}}),hljs.registerLanguage("css",function(e){var t="[a-zA-Z-][a-zA-Z0-9_-]*",r={cN:"function",b:t+"\\(",e:"\\)",c:["self",e.NM,e.ASM,e.QSM]};return{cI:!0,i:"[=/|']",c:[e.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[r,e.ASM,e.QSM,e.NM]}]},{cN:"tag",b:t,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[e.CBLCLM,{cN:"rule",b:"[^\\s]",rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:!0,i:"[^\\s]",starts:{cN:"value",eW:!0,eE:!0,c:[r,e.NM,e.QSM,e.ASM,e.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}}),hljs.registerLanguage("http",function(e){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" ",eB:!0,eE:!0}]},{cN:"attribute",b:"^\\w",e:": ",eE:!0,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:!0}}]}}),hljs.registerLanguage("java",function(e){var t="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws";return{k:t,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},e.CLCM,e.CBLCLM,e.ASM,e.QSM,{bK:"protected public private",e:/[{;=]/,k:t,c:[{cN:"class",bK:"class interface",eW:!0,i:/[:"<>]/,c:[{bK:"extends implements",r:10},e.UTM]},{b:e.UIR+"\\s*\\(",rB:!0,c:[e.UTM]}]},e.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}}),hljs.registerLanguage("php",function(e){var t={cN:"variable",b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},r={cN:"preprocessor",b:/<\?(php)?|\?>/},n={cN:"string",c:[e.BE,r],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{cI:!0,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[e.CLCM,e.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},r]},{cN:"comment",b:"__halt_compiler.+?;",eW:!0,k:"__halt_compiler",l:e.UIR},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[e.BE]},r,t,{cN:"function",bK:"function",e:/[;{]/,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",t,e.CBLCLM,n,a]}]},{cN:"class",bK:"class interface",e:"{",i:/[:\(\$"]/,c:[{bK:"extends implements",r:10},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},n,a]}}),hljs.registerLanguage("python",function(e){var t={cN:"prompt",b:/^(>>>|\.\.\.) /},r={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[t],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[t],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},e.ASM,e.QSM]},n={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CNR+"[lLjJ]?"}]},a={cN:"params",b:/\(/,e:/\)/,c:["self",t,n,r]},i={e:/:/,i:/[${=;\n]/,c:[e.UTM,a]};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[t,n,r,e.HCM,e.inherit(i,{cN:"function",bK:"def",r:10}),e.inherit(i,{cN:"class",bK:"class"}),{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}}),hljs.registerLanguage("sql",function(e){return{cI:!0,i:/[<>]/,c:[{cN:"operator",b:"\\b(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant|merge)\\b(?!:)",e:";",eW:!0,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row merge matched database",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[e.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[e.BE]},e.CNM]},e.CBLCLM,{cN:"comment",b:"--",e:"$"}]}}),hljs.registerLanguage("ini",function(e){return{cI:!0,i:/\S/,c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:!0,k:"on off true false yes no",c:[e.QSM,e.NM],r:0}]}]}}),hljs.registerLanguage("perl",function(e){var t="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",r={cN:"subst",b:"[$@]\\{",e:"\\}",k:t},n={b:"->{",e:"}"},a={cN:"variable",v:[{b:/\$\d/},{b:/[\$\%\@\*](\^\w\b|#\w+(\:\:\w+)*|{\w+}|\w+(\:\:\w*)*)/},{b:/[\$\%\@\*][^\s\w{]/,r:0}]},i={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5},c=[e.BE,r,a],s=[a,e.HCM,i,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:!0},n,{cN:"string",c:c,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[e.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[e.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,i,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];return r.c=s,n.c=s,{k:t,c:s}}),hljs.registerLanguage("objectivec",function(e){var t={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign self synchronized id nonatomic super unichar IBOutlet IBAction strong weak @private @protected @public @try @property @end @throw @catch @finally @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},r=/[a-zA-Z@][a-zA-Z0-9_]*/,n="@interface @class @protocol @implementation";return{k:t,l:r,i:"",c:[e.CLCM,e.CBLCLM,e.CNM,e.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"preprocessor",b:"#import",e:"$",c:[{cN:"title",b:'"',e:'"'},{cN:"title",b:"<",e:">"}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",b:"("+n.split(" ").join("|")+")\\b",e:"({|$)",k:n,l:r,c:[e.UTM]},{cN:"variable",b:"\\."+e.UIR,r:0}]}}),hljs.registerLanguage("coffeescript",function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"},r="[A-Za-z$_][0-9A-Za-z$_]*",n=e.inherit(e.TM,{b:r}),a={cN:"subst",b:/#\{/,e:/}/,k:t},i=[e.BNM,e.inherit(e.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/"""/,e:/"""/,c:[e.BE,a]},{b:/"/,e:/"/,c:[e.BE,a]}]},{cN:"regexp",v:[{b:"///",e:"///",c:[a,e.HCM]},{b:"//[gim]*",r:0},{b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"}]},{cN:"property",b:"@"+r},{b:"`",e:"`",eB:!0,eE:!0,sL:"javascript"}];return a.c=i,{k:t,c:i.concat([{cN:"comment",b:"###",e:"###"},e.HCM,{cN:"function",b:"("+r+"\\s*=\\s*)?(\\(.*\\))?\\s*\\B[-=]>",e:"[-=]>",rB:!0,c:[n,{cN:"params",b:"\\(",rB:!0,c:[{b:/\(/,e:/\)/,k:t,c:["self"].concat(i)}]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[n]},n]},{cN:"attribute",b:r+":",e:":",rB:!0,eE:!0,r:0}])}}),hljs.registerLanguage("nginx",function(e){var t={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+e.UIR}]},r={eW:!0,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[e.HCM,{cN:"string",c:[e.BE,t],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:!0,eE:!0},{cN:"regexp",c:[e.BE,t],v:[{b:"\\s\\^",e:"\\s|{|;",rE:!0},{b:"~\\*?\\s+",e:"\\s|{|;",rE:!0},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},t]};return{c:[e.HCM,{b:e.UIR+"\\s",e:";|{",rB:!0,c:[e.inherit(e.UTM,{starts:r})],r:0}],i:"[^\\s\\}]"}}),hljs.registerLanguage("json",function(e){var t={literal:"true false null"},r=[e.QSM,e.CNM],n={cN:"value",e:",",eW:!0,eE:!0,c:r,k:t},a={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:!0,eE:!0,c:[e.BE],i:"\\n",starts:n}],i:"\\S"},i={b:"\\[",e:"\\]",c:[e.inherit(n,{cN:null})],i:"\\S"};return r.splice(r.length,0,a,i),{c:r,k:t,i:"\\S"}}),hljs.registerLanguage("apache",function(e){var t={cN:"number",b:"[\\$%]\\d+"};return{cI:!0,c:[e.HCM,{cN:"tag",b:"?",e:">"},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",t]},t,e.QSM]}}],i:/\S/}}),hljs.registerLanguage("cpp",function(e){var t={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c"],k:t,i:"",c:[e.CLCM,e.CBLCLM,e.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},e.CNM,{cN:"preprocessor",b:"#",e:"$",c:[{b:"include\\s*<",e:">",i:"\\n"},e.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:t,r:10,c:["self"]}]}}),hljs.registerLanguage("makefile",function(e){var t={cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]};return{c:[e.HCM,{b:/^\w+\s*\W*=/,rB:!0,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:!0,starts:{e:/$/,r:0,c:[t]}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,c:[e.QSM,t]}]}});
--------------------------------------------------------------------------------
/assets/js/min/index-ck.js:
--------------------------------------------------------------------------------
1 | !function(t){"use strict";t(document).ready(function(){t(".post-content").fitVids(),t(".content").readingTime({readingTimeTarget:".post-reading-time",wordCountTarget:".post-word-count"}),t(".post-content img").each(function(){t(this).attr("alt")&&t(this).wrap('').after(""+t(this).attr("alt")+"")})})}(jQuery);
--------------------------------------------------------------------------------
/assets/js/min/jquery.fitvids-ck.js:
--------------------------------------------------------------------------------
1 | !function(t){"use strict";t.fn.fitVids=function(e){var i={customSelector:null};if(!document.getElementById("fit-vids-style")){var r=document.createElement("div"),a=document.getElementsByTagName("base")[0]||document.getElementsByTagName("script")[0],o="";r.className="fit-vids-style",r.id="fit-vids-style",r.style.display="none",r.innerHTML=o,a.parentNode.insertBefore(r,a)}return e&&t.extend(i,e),this.each(function(){var e=["iframe[src*='player.vimeo.com']","iframe[src*='youtube.com']","iframe[src*='youtube-nocookie.com']","iframe[src*='kickstarter.com'][src*='video.html']","object","embed"];i.customSelector&&e.push(i.customSelector);var r=t(this).find(e.join(","));r=r.not("object object"),r.each(function(){var e=t(this);if(!("embed"===this.tagName.toLowerCase()&&e.parent("object").length||e.parent(".fluid-width-video-wrapper").length)){var i="object"===this.tagName.toLowerCase()||e.attr("height")&&!isNaN(parseInt(e.attr("height"),10))?parseInt(e.attr("height"),10):e.height(),r=isNaN(parseInt(e.attr("width"),10))?e.width():parseInt(e.attr("width"),10),a=i/r;if(!e.attr("id")){var o="fitvid"+Math.floor(999999*Math.random());e.attr("id",o)}e.wrap('').parent(".fluid-width-video-wrapper").css("padding-top",100*a+"%"),e.removeAttr("height").removeAttr("width")}})})}}(window.jQuery||window.Zepto);
--------------------------------------------------------------------------------
/assets/js/min/jquery.ghostHunter.min-ck.js:
--------------------------------------------------------------------------------
1 | !function(t){var e=function(t){var n=new e.Index;return n.pipeline.add(e.stopWordFilter,e.stemmer),t&&t.call(n,n),n};e.version="0.4.3","undefined"!=typeof module&&(module.exports=e),e.utils={},e.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),e.utils.zeroFillArray=function(){var t=[0];return function(e){for(;e>t.length;)t=t.concat(t);return t.slice(0,e)}}(),e.EventEmitter=function(){this.events={}},e.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},e.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},e.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},e.EventEmitter.prototype.hasHandler=function(t){return t in this.events},e.tokenizer=function(t){if(!arguments.length||null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(t){return t.toLowerCase()});for(var e=(""+t).replace(/^\s+/,""),n=e.length-1;n>=0;n--)if(/\S/.test(e.charAt(n))){e=e.substring(0,n+1);break}return e.split(/\s+/).map(function(t){return t.replace(/^\W+/,"").replace(/\W+$/,"").toLowerCase()})},e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions={},e.Pipeline.registerFunction=function(t,n){n in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+n),t.label=n,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var n=t.label&&t.label in this.registeredFunctions;n||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var n=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw Error("Cannot load un-registered function: "+t);n.add(i)}),n},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t)+1;this._stack.splice(i,0,n)},e.Pipeline.prototype.before=function(t,n){e.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(t);this._stack.splice(i,0,n)},e.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);this._stack.splice(e,1)},e.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,o=0;n>o;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},e.Pipeline.prototype.toJSON=function(){return this._stack.map(function(t){return e.Pipeline.warnIfFunctionNotRegistered(t),t.label})},e.Vector=function(t){this.elements=t},e.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var t,e=0,n=this.elements,i=n.length,o=0;i>o;o++)t=n[o],e+=t*t;return this._magnitude=Math.sqrt(e)},e.Vector.prototype.dot=function(t){for(var e=this.elements,n=t.elements,i=e.length,o=0,r=0;i>r;r++)o+=e[r]*n[r];return o},e.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},e.Vector.prototype.toArray=function(){return this.elements},e.SortedSet=function(){this.length=0,this.elements=[]},e.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},e.SortedSet.prototype.add=function(){Array.prototype.slice.call(arguments).forEach(function(t){~this.indexOf(t)||this.elements.splice(this.locationFor(t),0,t)},this),this.length=this.elements.length},e.SortedSet.prototype.toArray=function(){return this.elements.slice()},e.SortedSet.prototype.map=function(t,e){return this.elements.map(t,e)},e.SortedSet.prototype.forEach=function(t,e){return this.elements.forEach(t,e)},e.SortedSet.prototype.indexOf=function(t,e,n){var e=e||0,n=n||this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return 1>=i?r===t?o:-1:t>r?this.indexOf(t,o,n):r>t?this.indexOf(t,e,o):r===t?o:void 0},e.SortedSet.prototype.locationFor=function(t,e,n){var e=e||0,n=n||this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];if(1>=i){if(r>t)return o;if(t>r)return o+1}return t>r?this.locationFor(t,o,n):r>t?this.locationFor(t,e,o):void 0},e.SortedSet.prototype.intersect=function(t){for(var n=new e.SortedSet,i=0,o=0,r=this.length,s=t.length,a=this.elements,l=t.elements;!(i>r-1||o>s-1);)a[i]!==l[o]?a[i]l[o]&&o++:(n.add(a[i]),i++,o++);return n},e.SortedSet.prototype.clone=function(){var t=new e.SortedSet;return t.elements=this.toArray(),t.length=t.elements.length,t},e.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},e.SortedSet.prototype.toJSON=function(){return this.toArray()},e.Index=function(){this._fields=[],this._ref="id",this.pipeline=new e.Pipeline,this.documentStore=new e.Store,this.tokenStore=new e.TokenStore,this.corpusTokens=new e.SortedSet,this.eventEmitter=new e.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},e.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},e.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},e.Index.load=function(t){t.version!==e.version&&e.utils.warn("version mismatch: current "+e.version+" importing "+t.version);var n=new this;return n._fields=t.fields,n._ref=t.ref,n.documentStore=e.Store.load(t.documentStore),n.tokenStore=e.TokenStore.load(t.tokenStore),n.corpusTokens=e.SortedSet.load(t.corpusTokens),n.pipeline=e.Pipeline.load(t.pipeline),n},e.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},e.Index.prototype.ref=function(t){return this._ref=t,this},e.Index.prototype.add=function(t,n){var i={},o=new e.SortedSet,r=t[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(e.tokenizer(t[n.name]));i[n.name]=r,e.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),e.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;o.length>s;s++){var a=o.elements[s],l=this._fields.reduce(function(t,e){var n=i[e.name].length;if(!n)return t;var o=i[e.name].filter(function(t){return t===a}).length;return t+o/n*e.boost},0);this.tokenStore.add(a,{ref:r,tf:l})}n&&this.eventEmitter.emit("add",t,this)},e.Index.prototype.remove=function(t,e){var n=t[this._ref],e=void 0===e?!0:e;if(this.documentStore.has(n)){var i=this.documentStore.get(n);this.documentStore.remove(n),i.forEach(function(t){this.tokenStore.remove(t,n)},this),e&&this.eventEmitter.emit("remove",t,this)}},e.Index.prototype.update=function(t,e){var e=void 0===e?!0:e;this.remove(t,!1),this.add(t,!1),e&&this.eventEmitter.emit("update",t,this)},e.Index.prototype.idf=function(t){if(this._idfCache[t])return this._idfCache[t];var e=this.tokenStore.count(t),n=1;return e>0&&(n=1+Math.log(this.tokenStore.length/e)),this._idfCache[t]=n},e.Index.prototype.search=function(t){var n=this.pipeline.run(e.tokenizer(t)),i=e.utils.zeroFillArray(this.corpusTokens.length),o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(t,n,s){var a=1/s.length*this._fields.length*r,l=this,h=this.tokenStore.expand(t).reduce(function(n,o){var r=l.corpusTokens.indexOf(o),s=l.idf(o),h=1,u=new e.SortedSet;if(o!==t){var c=Math.max(3,o.length-t.length);h=1/Math.log(c)}return r>-1&&(i[r]=a*s*h),Object.keys(l.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new e.SortedSet);o.push(h)},this);var a=o.reduce(function(t,e){return t.intersect(e)}),l=new e.Vector(i);return a.map(function(t){return{ref:t,score:l.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},e.Index.prototype.documentVector=function(t){for(var n=this.documentStore.get(t),i=n.length,o=e.utils.zeroFillArray(this.corpusTokens.length),r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[t].tf,l=this.idf(s);o[this.corpusTokens.indexOf(s)]=a*l}return new e.Vector(o)},e.Index.prototype.toJSON=function(){return{version:e.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},e.Store=function(){this.store={},this.length=0},e.Store.load=function(t){var n=new this;return n.length=t.length,n.store=Object.keys(t.store).reduce(function(n,i){return n[i]=e.SortedSet.load(t.store[i]),n},{}),n},e.Store.prototype.set=function(t,e){this.store[t]=e,this.length=Object.keys(this.store).length},e.Store.prototype.get=function(t){return this.store[t]},e.Store.prototype.has=function(t){return t in this.store},e.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},e.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},e.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",l="^("+o+")?"+r+o+r+o,h="^("+o+")?"+i;return function(n){var r,u,c,f,p,d,m;if(3>n.length)return n;if(c=n.substr(0,1),"y"==c&&(n=c.toUpperCase()+n.substr(1)),f=/^(.+?)(ss|i)es$/,p=/^(.+?)([^s])s$/,f.test(n)?n=n.replace(f,"$1$2"):p.test(n)&&(n=n.replace(p,"$1$2")),f=/^(.+?)eed$/,p=/^(.+?)(ed|ing)$/,f.test(n)){var v=f.exec(n);f=RegExp(s),f.test(v[1])&&(f=/.$/,n=n.replace(f,""))}else if(p.test(n)){var v=p.exec(n);r=v[1],p=RegExp(h),p.test(r)&&(n=r,p=/(at|bl|iz)$/,d=RegExp("([^aeiouylsz])\\1$"),m=RegExp("^"+o+i+"[^aeiouwxy]$"),p.test(n)?n+="e":d.test(n)?(f=/.$/,n=n.replace(f,"")):m.test(n)&&(n+="e"))}if(f=/^(.+?)y$/,f.test(n)){var v=f.exec(n);r=v[1],f=RegExp(h),f.test(r)&&(n=r+"i")}if(f=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,f.test(n)){var v=f.exec(n);r=v[1],u=v[2],f=RegExp(s),f.test(r)&&(n=r+t[u])}if(f=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,f.test(n)){var v=f.exec(n);r=v[1],u=v[2],f=RegExp(s),f.test(r)&&(n=r+e[u])}if(f=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,p=/^(.+?)(s|t)(ion)$/,f.test(n)){var v=f.exec(n);r=v[1],f=RegExp(l),f.test(r)&&(n=r)}else if(p.test(n)){var v=p.exec(n);r=v[1]+v[2],p=RegExp(l),p.test(r)&&(n=r)}if(f=/^(.+?)e$/,f.test(n)){var v=f.exec(n);r=v[1],f=RegExp(l),p=RegExp(a),d=RegExp("^"+o+i+"[^aeiouwxy]$"),(f.test(r)||p.test(r)&&!d.test(r))&&(n=r)}return f=/ll$/,p=RegExp(l),f.test(n)&&p.test(n)&&(f=/.$/,n=n.replace(f,"")),"y"==c&&(n=c.toLowerCase()+n.substr(1)),n}}(),e.Pipeline.registerFunction(e.stemmer,"stemmer"),e.stopWordFilter=function(t){return-1===e.stopWordFilter.stopWords.indexOf(t)?t:void 0},e.stopWordFilter.stopWords=new e.SortedSet,e.stopWordFilter.stopWords.length=119,e.stopWordFilter.stopWords.elements=["","a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"],e.Pipeline.registerFunction(e.stopWordFilter,"stopWordFilter"),e.TokenStore=function(){this.root={docs:{}},this.length=0},e.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},e.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},e.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;t.length>n;n++){if(!e[t[n]])return!1;e=e[t[n]]}return!0},e.TokenStore.prototype.getNode=function(t){if(!t)return{};for(var e=this.root,n=0;t.length>n;n++){if(!e[t[n]])return{};e=e[t[n]]}return e},e.TokenStore.prototype.get=function(t,e){return this.getNode(t,e).docs||{}},e.TokenStore.prototype.count=function(t,e){return Object.keys(this.get(t,e)).length},e.TokenStore.prototype.remove=function(t,e){if(t){for(var n=this.root,i=0;t.length>i;i++){if(!(t[i]in n))return;n=n[t[i]]}delete n.docs[e]}},e.TokenStore.prototype.expand=function(t,e){var n=this.getNode(t),i=n.docs||{},e=e||[];return Object.keys(i).length&&e.push(t),Object.keys(n).forEach(function(n){"docs"!==n&&e.concat(this.expand(t+n,e))},this),e},e.TokenStore.prototype.toJSON=function(){return{root:this.root,length:this.length}},t.fn.ghostHunter=function(e){var i=t.extend({},t.fn.ghostHunter.defaults,e);return i.results?(n.init(this,i),n):void 0},t.fn.ghostHunter.defaults={results:!1,rss:"/rss",onKeyUp:!1,result_template:"{{title}}
{{pubDate}}
",info_template:"Number of posts found: {{amount}}
",displaySearchInfo:!0,zeroResultsInfo:!0};var n={isInit:!1,init:function(t,n){var i=this;this.target=t,this.rss=n.rss,this.results=n.results,this.blogData=[],this.result_template=n.result_template,this.info_template=n.info_template,this.zeroResultsInfo=n.zeroResultsInfo,this.displaySearchInfo=n.displaySearchInfo,this.index=e(function(){this.field("title",{boost:10}),this.field("description"),this.field("link"),this.field("pubDate"),this.ref("id")}),t.focus(function(){i.loadRSS()}),t.closest("form").submit(function(e){e.preventDefault(),i.find(t.val())}),n.onKeyUp&&(i.loadRSS(),t.keyup(function(){i.find(t.val())}))},loadRSS:function(){if(this.isInit)return!1;var e=this.index,n=this.rss,i=this.blogData;t.get(n,function(n){for(var o=t(n).find("item"),r=0;o&&r0)&&this.displaySearchInfo&&i.append(this.format(this.info_template,{amount:n.length}));for(var o=0;o0?o+d+" "+v:o+T);else{var f=d+":"+l;r.find(s).text(o+f)}""!==a&&void 0!==a&&r.find(a).text(m+n)};r.each(function(){null!=f&&null!=h?e.get(f,function(n){M(e("").html(n).find(h).text())}):M(r.text())})}}(jQuery);
--------------------------------------------------------------------------------
/assets/js/readingTime.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 |
3 | Name: Reading Time
4 | Dependencies: jQuery
5 | Author: Michael Lynch
6 | Author URL: http://michaelynch.com
7 | Date Created: August 14, 2013
8 | Date Updated: January 24, 2014
9 | Licensed under the MIT license
10 |
11 | */
12 | (function(e){e.fn.readingTime=function(t){if(!this.length){return this}var n={readingTimeTarget:".eta",wordCountTarget:null,wordsPerMinute:270,round:true,lang:"en",lessThanAMinuteString:"",prependTimeString:"",prependWordString:"",remotePath:null,remoteTarget:null};var r=this;var i=e(this);r.settings=e.extend({},n,t);var s=r.settings.readingTimeTarget;var o=r.settings.wordCountTarget;var u=r.settings.wordsPerMinute;var a=r.settings.round;var f=r.settings.lang;var l=r.settings.lessThanAMinuteString;var c=r.settings.prependTimeString;var h=r.settings.prependWordString;var p=r.settings.remotePath;var d=r.settings.remoteTarget;if(f=="fr"){var v=l||"Moins d'une minute";var m="min"}else if(f=="de"){var v=l||"Weniger als eine Minute";var m="min"}else if(f=="es"){var v=l||"Menos de un minuto";var m="min"}else if(f=="nl"){var v=l||"Minder dan een minuut";var m="min"}else{var v=l||"Less than a minute";var m="min"}var g=function(e){var t=e.split(" ").length;var n=u/60;var r=t/n;var f=Math.round(r/60);var l=Math.round(r-f*60);if(a===true){if(f>0){i.find(s).text(c+f+" "+m)}else{i.find(s).text(c+v)}}else{var p=f+":"+l;i.find(s).text(c+p)}if(o!==""&&o!==undefined){i.find(o).text(h+t)}};i.each(function(){if(p!=null&&d!=null){e.get(p,function(t){g(e("
").html(t).find(d).text())})}else{g(i.text())}})}})(jQuery)
--------------------------------------------------------------------------------
/css/main.sass:
--------------------------------------------------------------------------------
1 | ---
2 | ---
3 |
4 | @import 'syntax-highlighting'
5 |
6 | @import 'bourbon/bourbon'
7 |
8 | .cf
9 | @include clearfix
10 |
11 | $rs: 16px
12 |
13 | $font-serif: Linux Libertine
14 | $font-sans: Open Sans, MundoSans, "Helvetica Neue", Arial, Helvetica, sans-serif
15 |
16 |
17 | @mixin respond-to($breakpoint)
18 | @media only screen and (max-width: $breakpoint + px)
19 | @content
20 |
21 | // Only needed for syntax highlighting
22 | %vertical-rhythm
23 | margin-bottom: $rs
24 |
25 | main
26 | display: block
27 |
28 |
29 |
30 | body
31 | font-family: $font-sans
32 | margin: 0
33 | padding: 0
34 | text-rendering: optimizeLegibility
35 | -webkit-font-smoothing: antialiased
36 | -moz-font-feature-settings: "liga=1, dlig=1"
37 | -ms-font-feature-settings: "liga", "dlig"
38 | -webkit-font-feature-settings: "liga", "dlig"
39 | -o-font-feature-settings: "liga", "dlig"
40 | font-feature-settings: "liga", "dlig"
41 |
42 | .logo-readium
43 | position: fixed
44 | left: 10px
45 | top: 10px
46 | width: $rs*3
47 | height: $rs*3
48 | background-color: #000
49 | overflow: hidden
50 | z-index: 99
51 | .logo
52 | display: block
53 | position: absolute
54 | top: $rs/2
55 | left: $rs/2
56 | width: $rs*2
57 | height: $rs*2
58 | background-size: cover
59 | background-repeat: no-repeat
60 |
61 | .teaserimage
62 | height: 450px
63 | position: relative
64 | overflow: hidden
65 | background-color: #000
66 | .teaserimage-image
67 | background-size: cover
68 | background-position: center
69 | position: absolute
70 | top: 0
71 | left: 0
72 | right: 0
73 | bottom: 0
74 | z-index: 1
75 | text-indent: -9999px
76 |
77 | .blog-header
78 | width: 100%
79 | max-width: 640px
80 | margin: 0 auto
81 | position: relative
82 | padding: 0
83 | @include box-sizing(border-box)
84 | @include respond-to(800)
85 | padding: 0 $rs
86 | .blog-logo
87 | width: $rs*7.5
88 | height: $rs*7.5
89 | position: absolute
90 | top: -$rs*3.75
91 | right: 50%
92 | margin-right: -$rs*3.75
93 | background-size: cover
94 | border-radius: 50%
95 | z-index: 99
96 | text-indent: -9999px
97 | border: 3px solid #fff
98 | background-color: #fff
99 | -webkit-box-shadow: 0 1px 1px rgba(0,0,0,0.3)
100 | -moz-box-shadow: 0 1px 1px rgba(0,0,0,0.3)
101 | box-shadow: 0 1px 1px rgba(0,0,0,0.3)
102 | .blog-title
103 | margin: 0
104 | padding: $rs*5.25 $rs $rs/2
105 | font-size: 50px
106 | text-align: center
107 | font-weight: 700
108 | letter-spacing: -2px
109 | outline: 0
110 | line-height: 50px
111 | word-break: break-word
112 | color: #333
113 | .blog-description
114 | margin: 0 0 20px
115 | padding: 0 $rs*2
116 | font-size: $rs/8*9
117 | line-height: 1.5
118 | color: #666
119 | text-align: center
120 | font-weight: 400
121 | .custom-links
122 | margin: 0 0 50px
123 | text-align: center
124 | color: #ccc
125 | a
126 | text-decoration: none
127 | color: #999
128 | &:hover
129 | color: #333
130 |
131 | .content
132 | width: 100%
133 | max-width: 640px
134 | margin: 0 auto
135 | @include box-sizing(border-box)
136 | @include respond-to(800)
137 | padding: 0 $rs*2
138 | article
139 | padding: 40px 0
140 | border-bottom: 1px solid #f2f2f0
141 | &:last-child
142 | border-bottom: 0px
143 | .post-title
144 | letter-spacing: -0.02em
145 | font-weight: 700
146 | font-style: normal
147 | display: block
148 | font-size: 28px
149 | line-height: 1.1
150 | margin: 0 0
151 | a
152 | text-decoration: none
153 | color: #333332
154 | &:hover
155 | text-decoration: none
156 | .post-excerpt
157 | letter-spacing: -0.02em
158 | font-weight: 300
159 | font-style: normal
160 | font-size: 20px
161 | line-height: 1.3
162 | color: #666665
163 | .post-meta
164 | font-size: 14px
165 | color: #b3b3b1
166 | line-height: 30px
167 | a
168 | color: #b3b3b1
169 | text-decoration: none
170 | &:hover
171 | text-decoration: underline
172 | .container.featured
173 | padding-bottom: 40px
174 |
175 | .post-template .content
176 | max-width: 700px
177 |
178 | .index-headline
179 | border-top: 1px solid #dededc
180 | margin: 0
181 | padding: 16px 0
182 | span
183 | color: #b3b3b1
184 | font-size: $rs/8*5
185 | text-transform: uppercase
186 | letter-spacing: 1px
187 |
188 | .archive-template
189 | .index-headline.featured
190 | display: none
191 |
192 | .pagination
193 | text-align: center
194 | padding: $rs*3 0 0
195 | font-size: $rs/4*3
196 | a
197 | color: #999
198 | text-decoration: none
199 | &:hover
200 | color: #333
201 |
202 | .post-reading
203 | position: absolute
204 | top: 10px
205 | right: 30px
206 | line-height: 44px
207 | display: inline-block
208 | white-space: nowrap
209 | color: rgba(0,0,0,0.25)
210 | font-size: 14px
211 | letter-spacing: -0.02em
212 | font-weight: 400
213 | font-style: normal
214 | font-family: $font-sans
215 | z-index: 999
216 | .tag-articleimage .post-reading
217 | color: rgba(255,255,255,0.9)
218 | text-shadow: 0px 1px 4px rgba(0,0,0,0.25), 0px 0px 1px rgba(0,0,0,0.5)
219 |
220 | .site-footer
221 | margin: 0 auto
222 | padding: $rs*3 0
223 | width: 100%
224 | max-width: 640px
225 | font-size: $rs/4*3
226 | text-align: center
227 | color: #999
228 | line-height: $rs*1.1
229 | a
230 | color: #666
231 | text-decoration: none
232 | &:hover
233 | color: #333
234 | .post
235 | .article-image
236 | position: absolute
237 | background-color: #000
238 | top: 0
239 | left: 0
240 | right: 0
241 | bottom: 0
242 | overflow: hidden
243 | @media(min-width: 700px)
244 | .post-image-image
245 | background-size: cover
246 | position: absolute
247 | top: 0
248 | left: 0
249 | right: 0
250 | bottom: 0
251 | text-indent: -9999px
252 | padding-top: 33%
253 | z-index: 1
254 | .post-image-image2
255 | display: none
256 | @media(max-width: 700px)
257 | .post-image-image
258 | display: none
259 | .post-image-image2
260 | background-size: cover
261 | position: absolute
262 | top: 0
263 | left: 0
264 | right: 0
265 | bottom: 0
266 | text-indent: -9999px
267 | padding-top: 33%
268 | z-index: 1
269 | .post-meta
270 | position: absolute
271 | bottom: $rs*5
272 | left: 30%
273 | right: 30%
274 | z-index: 9
275 | font-family: $font-sans
276 | @include box-sizing(border-box)
277 | @include respond-to(800)
278 | left: $rs
279 | right: $rs
280 | .post-title
281 | font-weight: 700
282 | font-style: normal
283 | letter-spacing: -0.04em
284 | font-size: 50px
285 | line-height: 1.1
286 | color: #fff
287 | margin-bottom: 16px
288 | text-shadow: 0px 1px 16px rgba(0,0,0,0.5), 0px 0px 1px rgba(0,0,0,0.5)
289 | .author-image
290 | display: inline-block
291 | width: 30px
292 | height: 30px
293 | line-height: 30px
294 | margin-right: 8px
295 | margin-bottom: -10px
296 | float: left
297 | background-size: cover
298 | border-radius: 100%
299 | text-indent: -9999px
300 | .author-name
301 | display: inline
302 | .post-meta-text
303 | color: rgba(255,255,255,0.75)
304 | letter-spacing: -0.02em
305 | font-weight: 400
306 | font-style: normal
307 | text-shadow: 0px 1px 4px rgba(0,0,0,0.25), 0px 0px 1px rgba(0,0,0,0.5)
308 | font-size: 14px
309 | overflow: hidden
310 | font-family: $font-sans
311 | white-space: nowrap
312 | text-overflow: ellipsis
313 | a
314 | color: rgba(255,255,255,0.75)
315 | &:hover
316 | color: rgba(255,255,255,1)
317 | .fa-angle-down
318 | font-size: 32px
319 | margin: 64px auto 0
320 | color: rgba(255,255,255,0.75)
321 | &:hover
322 | color: #fff
323 | .topofpage
324 | text-decoration: underline
325 | .noarticleimage
326 | .post-meta
327 | font-family: $font-sans
328 | padding-top: 60px
329 | .post-title
330 | font-weight: 700
331 | font-style: normal
332 | letter-spacing: -0.04em
333 | font-size: 50px
334 | line-height: 1.1
335 | color: #333332
336 | margin-bottom: 16px
337 | .author-image
338 | display: inline-block
339 | width: 30px
340 | height: 30px
341 | line-height: 30px
342 | margin-right: 8px
343 | margin-bottom: -10px
344 | float: left
345 | background-size: cover
346 | border-radius: 100%
347 | text-indent: -9999px
348 | .author-name
349 | display: inline
350 | .post-meta-text
351 | color: #b3b3b1
352 | letter-spacing: -0.02em
353 | font-weight: 400
354 | font-style: normal
355 | font-size: 14px
356 | overflow: hidden
357 | font-family: $font-sans
358 | white-space: nowrap
359 | text-overflow: ellipsis
360 | .post-content
361 | width: 100%
362 | font-family: $font-serif
363 | color: #333
364 | h1, h2, h3
365 | font-family: $font-sans
366 | h3, h4, h5, h6
367 | letter-spacing: -0.02em
368 | font-weight: 700
369 | font-style: normal
370 | font-size: 24px
371 | line-height: 1.3
372 | margin: 0
373 | font-family: $font-sans
374 | margin-bottom: 4px
375 | h2, h1
376 | letter-spacing: -0.02em
377 | font-weight: 700
378 | font-style: normal
379 | font-size: 32px
380 | line-height: 1.2
381 | padding-top: 31px
382 | margin-bottom: 4px
383 | p
384 | font-weight: 400
385 | font-style: normal
386 | font-size: 22px
387 | line-height: 30px
388 | margin: 0
389 | padding-bottom: 30px
390 | color: #333
391 | -webkit-hyphens: auto
392 | -moz-hyphens: auto
393 | hyphens: auto
394 | a
395 | color: #333
396 | text-decoration: underline
397 | img
398 | max-width: 100%
399 | margin: 0 auto
400 | figure
401 | margin: 0
402 | padding: 0 0 30px
403 | figcaption
404 | font-weight: 400
405 | font-style: italic
406 | font-size: 16px
407 | line-height: 1.3
408 | color: #666665
409 | outline: 0
410 | z-index: 300
411 | text-align: center
412 | hr
413 | border: 0
414 | padding: 0
415 | display: block
416 | width: 15%
417 | margin: 30px auto
418 | border: 0px solid #ddd
419 | border-top: 1px solid #ddd
420 | blockquote
421 | margin: 0 0 30px
422 | margin-left: -26px
423 | border-left: 3px solid #57ad68
424 | padding-left: 20px
425 | p
426 | letter-spacing: 0.01rem
427 | font-weight: 400
428 | font-style: italic
429 | mborder-left: 3px solid #57ad68
430 | mpadding-left: 20px
431 | mmargin-left: -26px
432 | padding-bottom: 3px
433 | ul, ol
434 | padding: 0 0 30px
435 | margin: 0
436 | li
437 | padding: 0
438 | font-weight: 400
439 | font-style: normal
440 | font-size: 23px
441 | line-height: 30px
442 | margin-left: 30px
443 | margin-bottom: 12px
444 | padding-top: 2px
445 | p
446 | padding: 0 0 golden-ratio(1rem, 1)
447 | ol li
448 | list-style-type: decimal
449 | .bottom-teaser
450 | padding: 50px 0
451 | font-family: $font-sans
452 | hr
453 | border: 0
454 | padding: 0
455 | display: block
456 | width: 15%
457 | margin: 16px 0 16px 100px
458 | border: 0px solid #ddd
459 | border-top: 1px solid #ddd
460 | .isLeft
461 | float: left
462 | width: 47%
463 | @include box-sizing(border-box)
464 | @include respond-to(800)
465 | width: 100%
466 | padding-bottom: $rs*2
467 | .index-headline
468 | padding-bottom: 32px
469 | a
470 | color: #000
471 | text-decoration: none
472 | &:hover
473 | color: #333
474 | text-decoration: underline
475 | .author-image
476 | display: block
477 | width: 80px
478 | height: 80px
479 | float: left
480 | background-size: cover
481 | border-radius: 100%
482 | text-indent: -9999px
483 | h4
484 | font-size: 18px
485 | line-height: 1.1
486 | font-weight: 700
487 | padding: 0
488 | margin: 0
489 | padding-left: 100px
490 | p
491 | font-size: 14px
492 | line-height: 1.3
493 | font-weight: 400
494 | padding: 0
495 | margin: 0
496 | padding-left: 100px
497 | &.published
498 | color: #999
499 | .isRight
500 | float: right
501 | width: 47%
502 | @include box-sizing(border-box)
503 | @include respond-to(800)
504 | width: 100%
505 | .index-headline
506 | padding-bottom: 32px
507 | .site-footer
508 | margin: 0
509 | padding: 0
510 | color: #333
511 | text-align: left
512 | font-size: 14px
513 | line-height: 1.3
514 | color: #999
515 | a
516 | color: #333
517 | text-decoration: none
518 | &:hover
519 | text-decoration: underline
520 | .poweredby
521 | display: block
522 | padding-bottom: 18px
523 | font-weight: 700
524 | color: #333
525 | .share
526 | text-align: right
527 | padding: 20px 0 0
528 | a
529 | text-decoration: none
530 | color: #bbb
531 | padding-left: 12px
532 | .hidden
533 | display: none
534 | &:hover
535 | color: #333
536 |
537 | .bottom-closer
538 | width: 100%
539 | position: relative
540 | overflow: hidden
541 | .background-closer-image
542 | position: absolute
543 | top: 0
544 | left: 0
545 | right: 0
546 | bottom: 0
547 | text-indent: -9999px
548 | background-size: cover
549 | background-repeat: no-repeat
550 | background-position: center
551 | .inner
552 | width: 100%
553 | position: relative
554 | z-index: 99
555 | max-width: 640px
556 | padding: 120px 0 90px
557 | text-align: center
558 | margin: 0 auto
559 | .blog-title
560 | margin: 0
561 | padding: 0 0 10px
562 | font-size: 50px
563 | text-align: center
564 | font-weight: 700
565 | letter-spacing: -2px
566 | outline: 0
567 | line-height: 50px
568 | word-break: break-word
569 | color: #fff
570 | text-shadow: 0px 1px 16px rgba(0,0,0,0.5), 0px 0px 1px rgba(0,0,0,0.5)
571 | .blog-description
572 | margin: 0 0 50px
573 | padding: 0 $rs*2
574 | font-size: $rs/8*9
575 | line-height: 1.5
576 | color: #fff
577 | text-align: center
578 | font-weight: 400
579 | text-shadow: 0px 1px 16px rgba(0,0,0,0.5), 0px 0px 1px rgba(0,0,0,0.5)
580 | .custom-links
581 | margin: 0 0 50px
582 | .btn
583 | display: inline-block
584 | text-align: center
585 | letter-spacing: -0.02em
586 | font-size: 15px
587 | font-weight: 400
588 | font-style: normal
589 | text-decoration: none
590 | cursor: pointer
591 | height: 44px
592 | background: #57ad68
593 | color: #fff
594 | vertical-align: middle
595 | box-sizing: border-box
596 | border-radius: 999em
597 | line-height: 44px
598 | padding: 0 18px
599 |
600 | #disqus_thread
601 | margin-top: 50px
602 | .post-tag-articleimage
603 | display: none
604 |
605 | pre,
606 | code
607 | font-size: 15px
608 | border: 1px solid #e8e8e8
609 | border-radius: 3px
610 | background-color: #eef
611 |
612 | code
613 | padding: 1px 5px
614 |
615 | pre
616 | padding: 8px 12px
617 | overflow-x: scroll
618 | > code
619 | border: 0
620 | padding-right: 0
621 | padding-left: 0
622 |
--------------------------------------------------------------------------------
/css/normalize.css:
--------------------------------------------------------------------------------
1 | /*! normalize.css v2.1.3 | MIT License | git.io/normalize */
2 |
3 | /* ==========================================================================
4 | HTML5 display definitions
5 | ========================================================================== */
6 |
7 | /**
8 | * Correct `block` display not defined in IE 8/9.
9 | */
10 |
11 | article,
12 | aside,
13 | details,
14 | figcaption,
15 | figure,
16 | footer,
17 | header,
18 | hgroup,
19 | main,
20 | nav,
21 | section,
22 | summary {
23 | display: block;
24 | }
25 |
26 | /**
27 | * Correct `inline-block` display not defined in IE 8/9.
28 | */
29 |
30 | audio,
31 | canvas,
32 | video {
33 | display: inline-block;
34 | }
35 |
36 | /**
37 | * Prevent modern browsers from displaying `audio` without controls.
38 | * Remove excess height in iOS 5 devices.
39 | */
40 |
41 | audio:not([controls]) {
42 | display: none;
43 | height: 0;
44 | }
45 |
46 | /**
47 | * Address `[hidden]` styling not present in IE 8/9.
48 | * Hide the `template` element in IE, Safari, and Firefox < 22.
49 | */
50 |
51 | [hidden],
52 | template {
53 | display: none;
54 | }
55 |
56 | /* ==========================================================================
57 | Base
58 | ========================================================================== */
59 |
60 | /**
61 | * 1. Set default font family to sans-serif.
62 | * 2. Prevent iOS text size adjust after orientation change, without disabling
63 | * user zoom.
64 | */
65 |
66 | html {
67 | font-family: sans-serif; /* 1 */
68 | -ms-text-size-adjust: 100%; /* 2 */
69 | -webkit-text-size-adjust: 100%; /* 2 */
70 | }
71 |
72 | /**
73 | * Remove default margin.
74 | */
75 |
76 | body {
77 | margin: 0;
78 | }
79 |
80 | /* ==========================================================================
81 | Links
82 | ========================================================================== */
83 |
84 | /**
85 | * Remove the gray background color from active links in IE 10.
86 | */
87 |
88 | a {
89 | background: transparent;
90 | }
91 |
92 | /**
93 | * Address `outline` inconsistency between Chrome and other browsers.
94 | */
95 |
96 | a:focus {
97 | outline: thin dotted;
98 | }
99 |
100 | /**
101 | * Improve readability when focused and also mouse hovered in all browsers.
102 | */
103 |
104 | a:active,
105 | a:hover {
106 | outline: 0;
107 | }
108 |
109 | /* ==========================================================================
110 | Typography
111 | ========================================================================== */
112 |
113 | /**
114 | * Address variable `h1` font-size and margin within `section` and `article`
115 | * contexts in Firefox 4+, Safari 5, and Chrome.
116 | */
117 |
118 | h1 {
119 | font-size: 2em;
120 | margin: 0.67em 0;
121 | }
122 |
123 | /**
124 | * Address styling not present in IE 8/9, Safari 5, and Chrome.
125 | */
126 |
127 | abbr[title] {
128 | border-bottom: 1px dotted;
129 | }
130 |
131 | /**
132 | * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
133 | */
134 |
135 | b,
136 | strong {
137 | font-weight: bold;
138 | }
139 |
140 | /**
141 | * Address styling not present in Safari 5 and Chrome.
142 | */
143 |
144 | dfn {
145 | font-style: italic;
146 | }
147 |
148 | /**
149 | * Address differences between Firefox and other browsers.
150 | */
151 |
152 | hr {
153 | -moz-box-sizing: content-box;
154 | box-sizing: content-box;
155 | height: 0;
156 | }
157 |
158 | /**
159 | * Address styling not present in IE 8/9.
160 | */
161 |
162 | mark {
163 | background: #ff0;
164 | color: #000;
165 | }
166 |
167 | /**
168 | * Correct font family set oddly in Safari 5 and Chrome.
169 | */
170 |
171 | code,
172 | kbd,
173 | pre,
174 | samp {
175 | font-family: monospace, serif;
176 | font-size: 1em;
177 | }
178 |
179 | /**
180 | * Improve readability of pre-formatted text in all browsers.
181 | */
182 |
183 | pre {
184 | white-space: pre-wrap;
185 | }
186 |
187 | /**
188 | * Set consistent quote types.
189 | */
190 |
191 | q {
192 | quotes: "\201C" "\201D" "\2018" "\2019";
193 | }
194 |
195 | /**
196 | * Address inconsistent and variable font size in all browsers.
197 | */
198 |
199 | small {
200 | font-size: 80%;
201 | }
202 |
203 | /**
204 | * Prevent `sub` and `sup` affecting `line-height` in all browsers.
205 | */
206 |
207 | sub,
208 | sup {
209 | font-size: 75%;
210 | line-height: 0;
211 | position: relative;
212 | vertical-align: baseline;
213 | }
214 |
215 | sup {
216 | top: -0.5em;
217 | }
218 |
219 | sub {
220 | bottom: -0.25em;
221 | }
222 |
223 | /* ==========================================================================
224 | Embedded content
225 | ========================================================================== */
226 |
227 | /**
228 | * Remove border when inside `a` element in IE 8/9.
229 | */
230 |
231 | img {
232 | border: 0;
233 | }
234 |
235 | /**
236 | * Correct overflow displayed oddly in IE 9.
237 | */
238 |
239 | svg:not(:root) {
240 | overflow: hidden;
241 | }
242 |
243 | /* ==========================================================================
244 | Figures
245 | ========================================================================== */
246 |
247 | /**
248 | * Address margin not present in IE 8/9 and Safari 5.
249 | */
250 |
251 | figure {
252 | margin: 0;
253 | }
254 |
255 | /* ==========================================================================
256 | Forms
257 | ========================================================================== */
258 |
259 | /**
260 | * Define consistent border, margin, and padding.
261 | */
262 |
263 | fieldset {
264 | border: 1px solid #c0c0c0;
265 | margin: 0 2px;
266 | padding: 0.35em 0.625em 0.75em;
267 | }
268 |
269 | /**
270 | * 1. Correct `color` not being inherited in IE 8/9.
271 | * 2. Remove padding so people aren't caught out if they zero out fieldsets.
272 | */
273 |
274 | legend {
275 | border: 0; /* 1 */
276 | padding: 0; /* 2 */
277 | }
278 |
279 | /**
280 | * 1. Correct font family not being inherited in all browsers.
281 | * 2. Correct font size not being inherited in all browsers.
282 | * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
283 | */
284 |
285 | button,
286 | input,
287 | select,
288 | textarea {
289 | font-family: inherit; /* 1 */
290 | font-size: 100%; /* 2 */
291 | margin: 0; /* 3 */
292 | }
293 |
294 | /**
295 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in
296 | * the UA stylesheet.
297 | */
298 |
299 | button,
300 | input {
301 | line-height: normal;
302 | }
303 |
304 | /**
305 | * Address inconsistent `text-transform` inheritance for `button` and `select`.
306 | * All other form control elements do not inherit `text-transform` values.
307 | * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
308 | * Correct `select` style inheritance in Firefox 4+ and Opera.
309 | */
310 |
311 | button,
312 | select {
313 | text-transform: none;
314 | }
315 |
316 | /**
317 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
318 | * and `video` controls.
319 | * 2. Correct inability to style clickable `input` types in iOS.
320 | * 3. Improve usability and consistency of cursor style between image-type
321 | * `input` and others.
322 | */
323 |
324 | button,
325 | html input[type="button"], /* 1 */
326 | input[type="reset"],
327 | input[type="submit"] {
328 | -webkit-appearance: button; /* 2 */
329 | cursor: pointer; /* 3 */
330 | }
331 |
332 | /**
333 | * Re-set default cursor for disabled elements.
334 | */
335 |
336 | button[disabled],
337 | html input[disabled] {
338 | cursor: default;
339 | }
340 |
341 | /**
342 | * 1. Address box sizing set to `content-box` in IE 8/9/10.
343 | * 2. Remove excess padding in IE 8/9/10.
344 | */
345 |
346 | input[type="checkbox"],
347 | input[type="radio"] {
348 | box-sizing: border-box; /* 1 */
349 | padding: 0; /* 2 */
350 | }
351 |
352 | /**
353 | * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
354 | * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
355 | * (include `-moz` to future-proof).
356 | */
357 |
358 | input[type="search"] {
359 | -webkit-appearance: textfield; /* 1 */
360 | -moz-box-sizing: content-box;
361 | -webkit-box-sizing: content-box; /* 2 */
362 | box-sizing: content-box;
363 | }
364 |
365 | /**
366 | * Remove inner padding and search cancel button in Safari 5 and Chrome
367 | * on OS X.
368 | */
369 |
370 | input[type="search"]::-webkit-search-cancel-button,
371 | input[type="search"]::-webkit-search-decoration {
372 | -webkit-appearance: none;
373 | }
374 |
375 | /**
376 | * Remove inner padding and border in Firefox 4+.
377 | */
378 |
379 | button::-moz-focus-inner,
380 | input::-moz-focus-inner {
381 | border: 0;
382 | padding: 0;
383 | }
384 |
385 | /**
386 | * 1. Remove default vertical scrollbar in IE 8/9.
387 | * 2. Improve readability and alignment in all browsers.
388 | */
389 |
390 | textarea {
391 | overflow: auto; /* 1 */
392 | vertical-align: top; /* 2 */
393 | }
394 |
395 | /* ==========================================================================
396 | Tables
397 | ========================================================================== */
398 |
399 | /**
400 | * Remove most spacing between table cells.
401 | */
402 |
403 | table {
404 | border-collapse: collapse;
405 | border-spacing: 0;
406 | }
--------------------------------------------------------------------------------
/css/print.css:
--------------------------------------------------------------------------------
1 | .article-image{
2 | page-break-after:never
3 | }
4 | .post-content,
5 | .bottom-teaser.cf{
6 | padding-top:0!important
7 | }
8 | .bottom-teaser.cf{
9 | margin:0
10 | }
11 | .post-reading,
12 | .bottom-teaser.cf .isRight,
13 | .cf.post-meta-text,
14 | .post-meta center,
15 | .post-image-image,
16 | .bottom-closer,
17 | .share,
18 | .home-template .post-meta .post-tags-set,
19 | .pagination,
20 | .author-image,
21 | .subscribe icon-feed{
22 | display:none;
23 | }
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dirkfabisch/mediator/9a916a595c34f24d5d865ce8df5782426322265b/favicon.ico
--------------------------------------------------------------------------------
/feed.xml:
--------------------------------------------------------------------------------
1 | ---
2 | layout: null
3 | ---
4 |
5 |
6 |
7 | {{ site.title | xml_escape }}
8 | {{ site.description | xml_escape }}
9 | {{ site.url }}{{ site.baseurl }}/
10 |
11 | {{ site.time | date_to_rfc822 }}
12 | {{ site.time | date_to_rfc822 }}
13 | Jekyll v{{ jekyll.version }}
14 | {% for post in site.posts limit:10 %}
15 | -
16 | {{ post.title | xml_escape }}
17 | {{ post.content | xml_escape }}
18 | {{ post.date | date_to_rfc822 }}
19 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
20 | {{ post.url | prepend: site.baseurl | prepend: site.url }}
21 | {% for tag in post.tags %}
22 | {{ tag | xml_escape }}
23 | {% endfor %}
24 | {% for cat in post.categories %}
25 | {{ cat | xml_escape }}
26 | {% endfor %}
27 |
28 | {% endfor %}
29 |
30 |
31 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
7 | Teaser Image
8 |
9 |
10 |
11 |
29 |
30 |
31 |
32 |
33 | {% if site.tags.featured %}
34 | Featured
35 |
36 |
37 | {% for post in site.tags.featured %}
38 |
39 |
40 |
43 |
44 | {{ post.content | strip_html | truncatewords: 50 }}
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | {% endfor %}
53 |
54 |
55 | Regular
56 | {% endif %}
57 |
58 |
59 | {% for post in paginator.posts %}
60 |
61 |
62 |
65 |
66 | {{ post.excerpt | strip_html | truncatewords: 50 }}
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | {% endfor %}
75 |
76 |
77 |
90 |
91 |
92 |
94 |
95 |
96 |
--------------------------------------------------------------------------------