diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 00000000..f2ee5d97
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,16 @@
+sudo: false
+language: ruby
+rvm:
+ - 2.2.2
+ - 1.9.3
+cache: bundler
+addons:
+ apt:
+ packages:
+ - libgsl0-dev
+before_script:
+ - npm install gulp bower -g
+ - npm install
+ - bower install
+ - bundle install
+script: gulp build
diff --git a/Gemfile b/Gemfile
index 0ff76396..eeca1018 100644
--- a/Gemfile
+++ b/Gemfile
@@ -14,4 +14,5 @@ group :development do
gem 'mini_magick'
gem 'fileutils'
gem 'gsl'
+ gem 'narray'
end
diff --git a/README.md b/README.md
index a659ca6c..bac5433e 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,8 @@ kremalicious3
> [kremalicious.com](http://kremalicious.com) based on [Jekyll](http://jekyllrb.com). Neat.
-[ ![Codeship Status for kremalicious/kremalicious3](https://www.codeship.io/projects/f6973090-9f04-0131-a2b7-625e8177ce9a/status?branch=master)](https://www.codeship.io/projects/18092) [![Dependency Status](https://gemnasium.com/kremalicious/kremalicious3.svg)](https://gemnasium.com/kremalicious/kremalicious3)
+[ ![Codeship Status for kremalicious/kremalicious3](https://www.codeship.io/projects/f6973090-9f04-0131-a2b7-625e8177ce9a/status?branch=master)](https://www.codeship.io/projects/18092)
+[![Dependency Status](https://gemnasium.com/kremalicious/kremalicious3.svg)](https://gemnasium.com/kremalicious/kremalicious3)
Requirements
@@ -37,7 +38,7 @@ Get up and running
Run the following command from the repository's root folder to install all dependencies.
```bash
-npm install
+npm install && bower install && bundle install
```
### Development build
diff --git a/_src/_assets/js/app.js b/_src/_assets/js/app.js
index f6df1041..9d5bde22 100644
--- a/_src/_assets/js/app.js
+++ b/_src/_assets/js/app.js
@@ -15,9 +15,9 @@ var siteNavigation = {
siteSearch: function() {
- var $content = $('.content'),
+ var $content = $('.site__content'),
$searchlink = $('.search-btn'),
- $searcharea = $('.topbar .search-area'),
+ $searcharea = $('.search-area'),
$searchfield = $('#search-input'),
$searchresults = $('#search-results'),
$searchpop = $('#search-popover');
@@ -36,7 +36,7 @@ var siteNavigation = {
searchInput: document.getElementById('search-input'),
resultsContainer: document.getElementById('search-results'),
json: '/search.json',
- searchResultTemplate: '
{title}',
+ searchResultTemplate: '{title}',
fuzzy: false
})
diff --git a/_src/_assets/styl/buttons.styl b/_src/_assets/styl/buttons.styl
index 2c48fd93..1a950cdc 100644
--- a/_src/_assets/styl/buttons.styl
+++ b/_src/_assets/styl/buttons.styl
@@ -154,24 +154,25 @@ a.btn-primary
.icon
width: 15px
height: 15px
- margin: 1px 0 0 0
+ margin: 1px 3px 0 0
fill: #0089cb
+ float: left
// Close button
/////////////////////////////////////
.close
- @extend .textcenter
- width: 16px
- height: 16px
- line-height: 12px
- font-size: $font-size-small
+ @extend .textcenter, .transition
+ width: 14px
+ height: 14px
padding: 0
- border-radius: 16px
+ border-radius: 50%
display: block
- background: $brand-grey-light
+ background: lighten($brand-grey-light, 50%)
color: #fff
+ line-height: 1
+ font-size: $font-size-mini
&:hover,
&:focus
@@ -185,12 +186,18 @@ a.btn-primary
/////////////////////////////////////
.content-download
- @extend .clearfix
+ @extend .grid, .grid--gutters
+
+ display: block
+ margin-top: 0
+
+ @media $breakpoint1
+ display: flex
+ margin-top: -($gutter-space)
a
- @extend .btn
- padding-left: 15px
- padding-right: 15px
+ @extend .btn, .grid__col
+ margin: $gutter-space 0 0 $gutter-space
display: block
span
diff --git a/_src/_assets/styl/content-featured.styl b/_src/_assets/styl/content-featured.styl
index aeefe4c3..f67a3ea5 100644
--- a/_src/_assets/styl/content-featured.styl
+++ b/_src/_assets/styl/content-featured.styl
@@ -6,20 +6,20 @@
.featured
@extend .divider-bottom
- padding-top: $line-height-computed
- padding-bottom: $line-height-computed
+ padding-top: ($line-height-computed*2)
+ padding-bottom: ($line-height-computed*2)
@media $breakpoint2
- padding-top: ($line-height-computed*2)
- padding-bottom: ($line-height-computed*2)
+ padding-top: ($line-height-computed*3)
+ padding-bottom: ($line-height-computed*3)
+
+ .grid
+ margin-bottom: 0
.featured-link
display: block
- margin-bottom: $line-height-computed
- transition-property: none
@media $breakpoint2
- margin-bottom: 0
&:hover
transform: scale(1.03)
diff --git a/_src/_assets/styl/content-related.styl b/_src/_assets/styl/content-related.styl
index cb23f920..caa97831 100644
--- a/_src/_assets/styl/content-related.styl
+++ b/_src/_assets/styl/content-related.styl
@@ -17,7 +17,6 @@
.post-title
@extend .h5
margin: 0
- margin-bottom: $line-height-computed
.post-title,
.post-title-link
diff --git a/_src/_assets/styl/content.styl b/_src/_assets/styl/content.styl
index c2470f8e..82e3daa9 100644
--- a/_src/_assets/styl/content.styl
+++ b/_src/_assets/styl/content.styl
@@ -25,18 +25,18 @@
color: darken($page-bg, 15%)
margin-right: 2px
-.hentry,
-.grid > .hentry
+.hentry
@extend .divider-bottom
padding-top: ($line-height-computed*2)
padding-bottom: ($line-height-computed*2)
+ width: 100%
@media $breakpoint2
padding-top: ($line-height-computed*4)
padding-bottom: ($line-height-computed*4)
- .page-index &:first-child
- padding-top: ($line-height-computed*2)
+ .page-index &:first-child
+ padding-top: ($line-height-computed*3)
.page-single &
padding-bottom: ($line-height-computed*2)
@@ -153,8 +153,7 @@
.masonry
@media $breakpoint2
- width: 125%
- margin-left: -12.5%
+ width: 100%
clearfix()
.hentry
diff --git a/_src/_assets/styl/footer.styl b/_src/_assets/styl/footer.styl
index 756830d0..6f793836 100644
--- a/_src/_assets/styl/footer.styl
+++ b/_src/_assets/styl/footer.styl
@@ -4,10 +4,11 @@
// Footer
//
-.footer
+.site__footer
@extend .textcenter
border-top: 1px solid rgba(255,255,255,.7)
box-shadow: inset 0 1px 4px alpha($brand-dark, .2)
+ padding-top: ($line-height-computed*2)
.gravatar
margin-bottom: ($line-height-computed/2)
diff --git a/_src/_assets/styl/grid.styl b/_src/_assets/styl/grid.styl
index 318a2e64..ff8c793e 100644
--- a/_src/_assets/styl/grid.styl
+++ b/_src/_assets/styl/grid.styl
@@ -5,74 +5,185 @@
//
-// Prevents padding to be added
-*
+*,
+*:before,
+*:after
box-sizing: border-box
-.container
- padding-left: 7%
- padding-right: 7%
- width: 100%
-
- @media $breakpoint2
- padding-left: 15%
- padding-right: 15%
-
+//
+// Base
+//
.grid
- margin: auto
- padding: 0
display: flex
flex-wrap: wrap
+ list-style: none
+ margin: 0
+ padding: 0
- @media $breakpoint2
- max-width: 35em
+.grid__col
+ flex: 1
- > .col1,
- > .col2,
- > .col3,
- > .col4,
- > .col5,
- > .col6
+
+//
+// Alignment per row
+//
+.grid--top
+ align-items: flex-start
+
+.grid--bottom
+ align-items: flex-end
+
+.grid--center
+ align-items: center
+
+
+//
+// Alignment per cell
+//
+.grid_col--top
+ align-self: flex-start
+
+.grid_col--bottom
+ align-self: flex-end
+
+.grid_col--center
+ align-self: center
+
+
+//
+// Gutters
+//
+.grid--gutters
+ margin: -($gutter-space) 0 $gutter-space (-($gutter-space))
+
+ > .grid__col
+ padding: $gutter-space 0 0 $gutter-space
+
+
+//
+// Columns
+//
+.grid--fit
+ > .grid__col
flex: 1
+
+.grid--full
+ > .grid__col
flex: 0 0 100%
- padding: 1em 0 0 1em
- > .col6
- padding-left: 0
+.grid--1of6
+ > .grid__col
+ flex: 0 0 16.5%
- > .col1-xs,
- > .col2-xs,
- > .col3-xs,
- > .col4-xs,
- > .col5-xs,
- > .col6-xs
- flex: 1
- padding: 1em 0 0 1em
+.grid--2of6,
+.grid--third
+ > .grid__col
+ flex: 0 0 33%
- > .col1-xs
- flex: 0 0 16.666666667%
- > .col2-xs
- flex: 0 0 33.333333333%
- > .col3-xs
+.grid--3of6,
+.grid--half
+ > .grid__col
flex: 0 0 50%
- > .col4-xs
- flex: 0 0 66.666666666%
- > .col5-xs
- flex: 0 0 83.333333333%
- > .col6-xs
- flex: 0 0 100%
- padding-left: 0
- @media $breakpoint2
- > .col1
- flex: 0 0 16.5%
- > .col2
- flex: 0 0 33%
- > .col3
- flex: 0 0 50%
- > .col4
- flex: 0 0 66%
- > .col5
- flex: 0 0 82.5%
- > .col6
+.grid--4of6
+ > .grid__col
+ flex: 0 0 66%
+
+.grid--5of6
+ > .grid__col
+ flex: 0 0 82.5%
+
+
+@media $breakpoint1
+ .grid-small--fit
+ > .grid__col
+ flex: 1
+
+ .grid-small--full
+ > .grid__col
flex: 0 0 100%
+
+ .grid-small--1of6
+ > .grid__col
+ flex: 0 0 16.5%
+
+ .grid-small--2of6,
+ .grid-small--third
+ > .grid__col
+ flex: 0 0 33%
+
+ .grid-small--3of6,
+ .grid-small--half
+ > .grid__col
+ flex: 0 0 50%
+
+ .grid-small--4of6
+ > .grid__col
+ flex: 0 0 66%
+
+ .grid-small--5of6
+ > .grid__col
+ flex: 0 0 82.5%
+
+
+@media $breakpoint2
+ .grid-medium--fit
+ > .grid__col
+ flex: 1
+
+ .grid-medium--full
+ > .grid__col
+ flex: 0 0 100%
+
+ .grid-medium--1of6
+ > .grid__col
+ flex: 0 0 16.5%
+
+ .grid-medium--2of6,
+ .grid-medium--third
+ > .grid__col
+ flex: 0 0 33%
+
+ .grid-medium--3of6,
+ .grid-medium--half
+ > .grid__col
+ flex: 0 0 50%
+
+ .grid-medium--4of6
+ > .grid__col
+ flex: 0 0 66%
+
+ .grid-medium--5of6
+ > .grid__col
+ flex: 0 0 82.5%
+
+@media $breakpoint3
+ .grid-large--fit
+ > .grid__col
+ flex: 1
+
+ .grid-large--full
+ > .grid__col
+ flex: 0 0 100%
+
+ .grid-large--1of6
+ > .grid__col
+ flex: 0 0 16.5%
+
+ .grid-large--2of6,
+ .grid-large--third
+ > .grid__col
+ flex: 0 0 33%
+
+ .grid-large--3of6,
+ .grid-large--half
+ > .grid__col
+ flex: 0 0 50%
+
+ .grid-large--4of6
+ > .grid__col
+ flex: 0 0 66%
+
+ .grid-large--5of6
+ > .grid__col
+ flex: 0 0 82.5%
diff --git a/_src/_assets/styl/header.styl b/_src/_assets/styl/header.styl
index 0cb755c0..1aaa7e7c 100644
--- a/_src/_assets/styl/header.styl
+++ b/_src/_assets/styl/header.styl
@@ -4,10 +4,8 @@
// Header
//
-// Topbar
-/////////////////////////////////////
-
-.topbar
+.site__header
+ width: 100%
background: $body-bg
margin-top: ($line-height-computed/2)
margin-bottom: ($line-height-computed/2)
@@ -46,31 +44,24 @@
background-image: url('../img/logo@3x.png')
background-size: 183px 62px
+.header__title
+ margin: 0
+ // display toned down logo
+ // by default
+ @extend .logo
-// Banner
-/////////////////////////////////////
+.header__logo
+ @extend .ir
+ // repeat logo
+ // but display hover version
+ @extend .logo
+ background-position: left bottom
-.banner
- padding-top: 0
+ // hide by default
+ opacity: 0
+ // show smooooothly on hover
+ &:hover
+ opacity: 1
- .banner-title
- margin: 0
- // display toned down logo
- // by default
- @extend .logo
-
- .banner-logo
- @extend .ir
- // repeat logo
- // but display hover version
- @extend .logo
- background-position: left bottom
-
- // hide by default
- opacity: 0
- // show smooooothly on hover
- &:hover
- opacity: 1
-
- &:active
- top: 0
+ &:active
+ top: 0
diff --git a/_src/_assets/styl/kremalicious3.styl b/_src/_assets/styl/kremalicious3.styl
index 921093cc..d9cc9c22 100644
--- a/_src/_assets/styl/kremalicious3.styl
+++ b/_src/_assets/styl/kremalicious3.styl
@@ -14,8 +14,9 @@
@import 'mixins'
// Core CSS
-@import 'grid'
@import 'scaffolding'
+@import 'grid'
+@import 'layout'
@import 'typography'
@import 'forms'
@import 'buttons'
diff --git a/_src/_assets/styl/layout.styl b/_src/_assets/styl/layout.styl
new file mode 100644
index 00000000..a0c902b5
--- /dev/null
+++ b/_src/_assets/styl/layout.styl
@@ -0,0 +1,62 @@
+//
+// kremalicious3
+// --------------
+// Layout
+//
+
+.site__content,
+.header__content
+.footer__content
+ padding: 0 7%
+ width: 100%
+
+ @media $breakpoint2
+ padding: 0 15%
+
+.container
+ max-width: 35em
+ margin: 0 auto
+
+
+// topbar and footer as fixed
+// site background
+/////////////////////////////////////
+
+.site__document
+ background-color: $page-bg
+ border-top: 1px solid rgba(255,255,255,.7)
+ border-bottom: 1px solid rgba(255,255,255,.7)
+ box-shadow: 0 1px 4px alpha($brand-dark, .1), 0 -1px 4px alpha($brand-dark, .2)
+
+@media only screen and (min-width: 40.625em) and (min-height: 650px)
+ .site
+ position: relative
+
+ .site__document
+ @extend .transition
+ position: relative
+ z-index: 2
+ margin-top: 80px
+ margin-bottom: 420px
+
+ .menu-open &
+ margin-top: 220px
+
+ .site__header,
+ .site__footer
+ position: fixed
+ border: none
+ width: 100%
+
+ .site__header
+ z-index: 1
+ top: 0
+ border: none
+
+ .site__footer
+ z-index: 0
+ bottom: 0
+ box-shadow: none
+
+ .menu-open &
+ hide()
diff --git a/_src/_assets/styl/navigation.styl b/_src/_assets/styl/navigation.styl
index 7cb2c9a6..9397fc49 100644
--- a/_src/_assets/styl/navigation.styl
+++ b/_src/_assets/styl/navigation.styl
@@ -41,10 +41,14 @@
.nav-popover
@extend .divider-top, .list-unstyled
padding: $line-height-computed 0
- margin-top: 60px
+ margin-top: 30px
margin-bottom: 0
width: 100%
background: $body-bg
+ display: flex
+
+ .grid__col
+ padding-top: 0
.nav-link
@extend .h6, .textcenter
@@ -73,8 +77,13 @@
/////////////////////////////////////
.paginator
+ padding-top: $line-height-computed
+ padding-bottom: $line-height-computed
+
.icon
margin-bottom: -3px
+ p
+ margin-bottom: 0;
.paginator-next
text-align: right
diff --git a/_src/_assets/styl/scaffolding.styl b/_src/_assets/styl/scaffolding.styl
index 6153fa67..d505fe31 100644
--- a/_src/_assets/styl/scaffolding.styl
+++ b/_src/_assets/styl/scaffolding.styl
@@ -26,46 +26,3 @@ textarea
font-family: inherit
font-size: inherit
line-height: inherit
-
-
-// topbar and footer as fixed
-// site background
-/////////////////////////////////////
-
-.document
- background-color: $page-bg
- border-top: 1px solid rgba(255,255,255,.7)
- border-bottom: 1px solid rgba(255,255,255,.7)
- box-shadow: 0 1px 4px alpha($brand-dark, .1), 0 -1px 4px alpha($brand-dark, .2)
-
-@media only screen and (min-width: 40.625em) and (min-height: 650px)
- body
- position: relative
-
- .document
- @extend .transition
- position: relative
- z-index: 2
- margin-top: 80px
- margin-bottom: 500px
-
- .menu-open &
- margin-top: 220px
-
- .topbar,
- .footer
- position: fixed
- border: none
-
- .topbar
- z-index: 1
- top: 0
- border: none
-
- .footer
- z-index: 0
- bottom: 0
- box-shadow: none
-
- .menu-open &
- hide()
diff --git a/_src/_assets/styl/search.styl b/_src/_assets/styl/search.styl
index 37a3eac0..4388babb 100644
--- a/_src/_assets/styl/search.styl
+++ b/_src/_assets/styl/search.styl
@@ -5,8 +5,9 @@
//
&.search-open-blur
- @extend .transition
filter: blur(10px)
+ user-select: none
+ pointer-events: none
.search-btn
right: 50px
@@ -17,12 +18,12 @@
.search-close
position: absolute
- right: 32px
+ right: 16px
&,
&:active
top: 50%
- margin-top: -8px
+ margin-top: -7px
.search-area
@extend .transition
@@ -38,10 +39,29 @@
&.ready
display: block
+
+.search-popover
+ position: absolute
+ left: 0
+ top: 71px
+ z-index: 6
+ width: 100%
+ padding-top: ($line-height-computed/2)
+ background: lighten($page-bg, 3%)
+ border-bottom: 1px solid rgba(255,255,255,.7)
+ box-shadow: 0 1px 4px alpha($brand-dark, .1)
+
+ @media $breakpoint2
+ top: 0
+
+
.search-results
- @extend .list-unstyled, .textcenter
+ @extend .list-unstyled
display: flex
+ .grid__col
+ padding-top: 0
+
@media $breakpoint2
margin-top: ($line-height-computed/2)
margin-bottom: ($line-height-computed/2)
@@ -63,17 +83,3 @@
border: none
&:before
display: none
-
-.search-popover
- position: absolute
- left: 0
- top: 71px
- z-index: 6
- width: 100%
- padding-top: ($line-height-computed/2)
- background: lighten($page-bg, 3%)
- border-bottom: 1px solid rgba(255,255,255,.7)
- box-shadow: 0 1px 4px alpha($brand-dark, .1)
-
- @media $breakpoint2
- top: 0
diff --git a/_src/_assets/styl/variables.styl b/_src/_assets/styl/variables.styl
index e66d9cd1..0388a7ce 100644
--- a/_src/_assets/styl/variables.styl
+++ b/_src/_assets/styl/variables.styl
@@ -94,6 +94,11 @@ $link-color = lighten($brand-cyan, 5%)
$link-color-hover = lighten($link-color, 10%)
+// Grid
+/////////////////////////////////////
+
+$gutter-space = $line-height-computed
+
// Components spacing
/////////////////////////////////////
diff --git a/_src/_includes/articles.html b/_src/_includes/articles.html
index fbd4eaa8..fc25e0ce 100644
--- a/_src/_includes/articles.html
+++ b/_src/_includes/articles.html
@@ -1,7 +1,7 @@
{% if post.layout == "link" %}
-
+