├── .gitignore
├── _sass
├── _vendors.scss
├── modules
│ ├── legal
│ │ ├── _variables.scss
│ │ └── _rules.scss
│ ├── pagination
│ │ ├── _variables.scss
│ │ └── _rules.scss
│ └── post
│ │ ├── _variables.scss
│ │ └── _rules.scss
├── mixins
│ ├── _clearfix.scss
│ ├── _typekit-fallback.scss
│ ├── _breakpoints.scss
│ └── _retina-background-image.scss
├── _mixins.scss
├── _modules.scss
├── _base.scss
├── _layout.scss
└── vendors
│ └── _normalize.scss
├── img
├── dude.png
├── banner.png
├── dude@2x.png
├── dude@3x.png
├── banner@2x.png
├── banner@3x.png
├── separator.png
├── icon-location.png
├── separator@2x.png
├── separator@3x.png
├── icon-location@2x.png
└── icon-location@3x.png
├── Gemfile
├── _layouts
├── post.html
├── page.html
└── default.html
├── _includes
├── header.html
├── footer.html
├── post.html
├── head.html
└── pagination.html
├── index.html
├── LICENSE
├── _posts
└── 2015-11-15-the-galileo-theme.markdown
├── js
└── galileo.js
├── Gemfile.lock
├── feed.xml
├── _config.yml
├── css
└── screen.scss
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | _site/
2 | .sass-cache/
3 | .jekyll-metadata
4 |
--------------------------------------------------------------------------------
/_sass/_vendors.scss:
--------------------------------------------------------------------------------
1 | @import
2 | "vendors/normalize"
3 | ;
4 |
--------------------------------------------------------------------------------
/_sass/modules/legal/_variables.scss:
--------------------------------------------------------------------------------
1 | $legal-text-color: $legal-color;
2 |
--------------------------------------------------------------------------------
/img/dude.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/dude.png
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | gem 'jekyll'
4 | gem 'jekyll-paginate'
5 |
--------------------------------------------------------------------------------
/img/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/banner.png
--------------------------------------------------------------------------------
/img/dude@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/dude@2x.png
--------------------------------------------------------------------------------
/img/dude@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/dude@3x.png
--------------------------------------------------------------------------------
/img/banner@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/banner@2x.png
--------------------------------------------------------------------------------
/img/banner@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/banner@3x.png
--------------------------------------------------------------------------------
/img/separator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/separator.png
--------------------------------------------------------------------------------
/img/icon-location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/icon-location.png
--------------------------------------------------------------------------------
/img/separator@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/separator@2x.png
--------------------------------------------------------------------------------
/img/separator@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/separator@3x.png
--------------------------------------------------------------------------------
/_layouts/post.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 | {% include post.html post=page content=content %}
6 |
--------------------------------------------------------------------------------
/img/icon-location@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/icon-location@2x.png
--------------------------------------------------------------------------------
/img/icon-location@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rowanoulton/galileo-theme/HEAD/img/icon-location@3x.png
--------------------------------------------------------------------------------
/_sass/mixins/_clearfix.scss:
--------------------------------------------------------------------------------
1 | @mixin clearfix {
2 | &:after {
3 | content: "";
4 | display: table;
5 | clear: both;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/_sass/modules/pagination/_variables.scss:
--------------------------------------------------------------------------------
1 | $pagination-splitting-breakpoint: 715px;
2 | $pagination-widening-breakpoint: 800px;
3 | $pagination-border-color: #ccc;
4 |
--------------------------------------------------------------------------------
/_includes/header.html:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/_sass/_mixins.scss:
--------------------------------------------------------------------------------
1 | @import
2 | "mixins/retina-background-image",
3 | "mixins/clearfix",
4 | "mixins/breakpoints",
5 | "mixins/typekit-fallback"
6 | ;
7 |
--------------------------------------------------------------------------------
/_sass/mixins/_typekit-fallback.scss:
--------------------------------------------------------------------------------
1 | @mixin typekit-fallback {
2 | @at-root {
3 | .wf-inactive,
4 | .wf-loading {
5 | @content;
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/_sass/modules/legal/_rules.scss:
--------------------------------------------------------------------------------
1 | @import "modules/legal/variables";
2 | @mixin galileo-legal {
3 | .legal {
4 | color: $legal-text-color;
5 | font-style: italic;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/_sass/_modules.scss:
--------------------------------------------------------------------------------
1 | @import
2 | "modules/legal/rules",
3 | "modules/post/rules",
4 | "modules/pagination/rules"
5 | ;
6 |
7 | @include galileo-legal;
8 | @include galileo-post;
9 | @include galileo-pagination;
10 |
--------------------------------------------------------------------------------
/_layouts/page.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 |
9 |
10 |
11 | {{ content }}
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/_sass/mixins/_breakpoints.scss:
--------------------------------------------------------------------------------
1 | @mixin min-breakpoint($point) {
2 | @media only screen and (min-width: $point) {
3 | @content;
4 | }
5 | }
6 |
7 | @mixin max-breakpoint($point) {
8 | @media only screen and (max-width: $point) {
9 | @content;
10 | }
11 | }
12 |
13 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 |
5 |
6 | {% for post in paginator.posts %}
7 | {% include post.html post=post content=post.content %}
8 | {% endfor %}
9 |
10 | {% if paginator.total_pages > 1 %}
11 | {% include pagination.html maxPages=5 %}
12 | {% endif %}
13 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {% include head.html %}
4 |
5 | {% include header.html %}
6 |
2 |
8 |
9 | {% if include.post.location %}
{{ include.post.location }}—{% endif %}{{ include.content }}
10 |
11 |
14 |
15 |
--------------------------------------------------------------------------------
/_sass/mixins/_retina-background-image.scss:
--------------------------------------------------------------------------------
1 | // Assumes that image filenames follow the pattern:
2 | // - 1x: name.png
3 | // - 2x: name@2x.png
4 | // - 3x: name@3x.png
5 | @mixin retina-background-image($img-path, $ext: '.png') {
6 | // Non-retina device
7 | background-image: url($img-path + $ext);
8 | background-size: 100%;
9 |
10 | // Retina @2x device
11 | @media only screen and (-webkit-min-device-pixel-ratio: 1.2), only screen and (min--moz-device-pixel-ratio: 1.2), only screen and (-o-min-device-pixel-ratio: 5/4), only screen and (min-device-pixel-ratio: 1.2), only screen and (min-resolution: 120dpi), only screen and (min-resolution: 1.2dppx) {
12 | background-image: url($img-path + '@2x' + $ext);
13 | }
14 |
15 | // Retina @3x device
16 | @media only screen and (-webkit-min-device-pixel-ratio: 3), only screen and (min--moz-device-pixel-ratio: 3), only screen and (-o-min-device-pixel-ratio: 3/1), only screen and (min-device-pixel-ratio: 3), only screen and (min-resolution: 288dpi), only screen and (min-resolution: 3dppx) {
17 | background-image: url($img-path + '@3x' + $ext);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Rowan Oulton
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/_posts/2015-11-15-the-galileo-theme.markdown:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: "The Galileo Theme"
4 | date: 2015-11-15 13:05:14 +0100
5 | categories: jekyll theme
6 | location: Florence, Italy
7 | ---
8 |
9 | Landing somewhere between a scholarly publication and an adventurers notebook, the Galileo theme presents your words & photographs in a handsome, agreeable manner. It is well behaved on both mobile & desktop and radically minimal in its footprint. Charged and ready for deployment to Github Pages.
10 |
11 | Suitable for shortform, longform, and probably even waveform. It is purpose-built to accomodate photographic content wonderfully and lends itself well to journaling your sojourn.
12 |
13 |
19 |

20 |
Here we demonstrate a caption. This'll adapt to any length of text.
21 |
22 |
--------------------------------------------------------------------------------
/_sass/_base.scss:
--------------------------------------------------------------------------------
1 | /* Universal box-sizing as per https://css-tricks.com/box-sizing/ */
2 | html {
3 | -webkit-box-sizing: border-box;
4 | -moz-box-sizing: border-box;
5 | box-sizing: border-box;
6 | }
7 |
8 | /* Universal box-sizing as per https://css-tricks.com/box-sizing/ */
9 | *, *:before, *:after {
10 | -webkit-box-sizing: inherit;
11 | -moz-box-sizing: inherit;
12 | box-sizing: inherit;
13 | }
14 |
15 | body {
16 | font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
17 | color: $text-color;
18 | background-color: $background-color;
19 | -webkit-text-size-adjust: 100%;
20 | -webkit-font-feature-settings: "kern" 1;
21 | -moz-font-feature-settings: "kern" 1;
22 | -o-font-feature-settings: "kern" 1;
23 | font-feature-settings: "kern" 1;
24 | font-kerning: normal;
25 | text-rendering: optimizeLegibility; /* Beware of performance issues in mobile - see https://css-tricks.com/almanac/properties/t/text-rendering/ */
26 | -webkit-font-smoothing: antialiased;
27 | font-smoothing: antialiased;
28 |
29 | &.is-offset {
30 | margin-top: -195px;
31 | }
32 | }
33 |
34 | a {
35 | text-decoration: none;
36 | color: #443E40;
37 | }
38 |
--------------------------------------------------------------------------------
/js/galileo.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 |
3 | var secretRevealed = false
4 | var doSecretReveal
5 | var resetSecretReveal
6 |
7 | doSecretReveal = function () {
8 | // Remove the negative offset from the banner, while also scrolling down the page
9 | // this reveals the secret without affecting the users position on the page
10 | document.body.className = document.body.className.replace('is-offset', '')
11 | window.scroll(0, window.scrollY + 195)
12 | secretRevealed = true
13 | }
14 |
15 | resetSecretReveal = function () {
16 | if (secretRevealed) {
17 | // The native browser behaviour of automatically scrolling to a users last position on refresh
18 | // is upset by our revealing of the secret banner. This meant that, on refresh, the position
19 | // the browser returns the user to is incorrect. To compensate for this, we hide the secret banner
20 | // section again and adjust the page scroll value accordingly
21 | document.body.className += ' is-offset'
22 | window.scroll(0, Math.max(window.scrollY - 195, 0))
23 | }
24 | }
25 |
26 | document.addEventListener('DOMContentLoaded', function () {
27 | // 3000 ms is arbitrary, though there must be at least some
28 | // delay here, otherwise it doesn't seem to play ball
29 | setTimeout(doSecretReveal, 3000)
30 | })
31 |
32 | window.addEventListener('beforeunload', function () {
33 | resetSecretReveal()
34 | })
35 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | addressable (2.8.5)
5 | public_suffix (>= 2.0.2, < 6.0)
6 | colorator (1.1.0)
7 | ffi (1.12.2)
8 | forwardable-extended (2.6.0)
9 | jekyll (3.6.3)
10 | addressable (~> 2.4)
11 | colorator (~> 1.0)
12 | jekyll-sass-converter (~> 1.0)
13 | jekyll-watch (~> 1.1)
14 | kramdown (~> 1.14)
15 | liquid (~> 4.0)
16 | mercenary (~> 0.3.3)
17 | pathutil (~> 0.9)
18 | rouge (>= 1.7, < 3)
19 | safe_yaml (~> 1.0)
20 | jekyll-paginate (1.1.0)
21 | jekyll-sass-converter (1.5.2)
22 | sass (~> 3.4)
23 | jekyll-watch (1.5.1)
24 | listen (~> 3.0)
25 | kramdown (1.17.0)
26 | liquid (4.0.3)
27 | listen (3.2.1)
28 | rb-fsevent (~> 0.10, >= 0.10.3)
29 | rb-inotify (~> 0.9, >= 0.9.10)
30 | mercenary (0.3.6)
31 | pathutil (0.16.2)
32 | forwardable-extended (~> 2.6)
33 | public_suffix (5.0.3)
34 | rb-fsevent (0.10.4)
35 | rb-inotify (0.10.1)
36 | ffi (~> 1.0)
37 | rouge (2.2.1)
38 | safe_yaml (1.0.5)
39 | sass (3.7.4)
40 | sass-listen (~> 4.0.0)
41 | sass-listen (4.0.0)
42 | rb-fsevent (~> 0.9, >= 0.9.4)
43 | rb-inotify (~> 0.9, >= 0.9.7)
44 |
45 | PLATFORMS
46 | ruby
47 |
48 | DEPENDENCIES
49 | jekyll
50 | jekyll-paginate
51 |
52 | BUNDLED WITH
53 | 2.1.4
54 |
--------------------------------------------------------------------------------
/feed.xml:
--------------------------------------------------------------------------------
1 | ---
2 | layout: null
3 | ---
4 |
5 |