jekyll-theme-hydra 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e0d4410f526b63063ab33f04a983ae6ed009f0ba
4
+ data.tar.gz: 3958f183d587d932815b3cbfe23fb9fb084b7547
5
+ SHA512:
6
+ metadata.gz: a9925ab1d3a22004b2131937da32eea9fec317e42be725af7ff0169f418ae357e6856c57a010301e1f95065e2d46935713ce58df66ce123fda453e9105fcd6cc
7
+ data.tar.gz: 65f4817ffbbe64c60f5412bce137051a9e3b1a0d399bf291566486c33bb6a4d68775de0355b94d67899b196253a0a5344fa62a5eeae4aad61cc9039356481725
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2016 CloudCannon
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.
@@ -0,0 +1,134 @@
1
+ # Hydra / jekyll-theme-hydra
2
+
3
+ Marketing site template for Jekyll. Browse through a [live demo](https://proud-alligator.cloudvent.net/).
4
+ Increase the web presence of your brand with this configurable theme.
5
+
6
+ ![Hydra template screenshot](images/_screenshot.png)
7
+
8
+ Hydra was made by [CloudCannon](http://cloudcannon.com/), the Cloud CMS for Jekyll.
9
+
10
+ Find more templates, themes and step-by-step Jekyll tutorials at [CloudCannon Academy](https://learn.cloudcannon.com/).
11
+
12
+
13
+ Put your layouts in `_layouts`, your includes in `_includes`, your sass files in `_sass` and any other assets in `assets`.
14
+
15
+ To experiment with this code, add some sample content and run `bundle exec jekyll serve` – this directory is setup just like a Jekyll site!
16
+
17
+
18
+ ## Features
19
+
20
+ * Contact form
21
+ * Pre-built pages
22
+ * Pre-styled components
23
+ * Blog with pagination
24
+ * Post category pages
25
+ * Disqus comments for posts
26
+ * Staff and author system
27
+ * Configurable footer
28
+ * Optimised for editing in [CloudCannon](http://cloudcannon.com/)
29
+ * RSS/Atom feed
30
+ * SEO tags
31
+ * Google Analytics
32
+
33
+
34
+ ## Installation
35
+
36
+ Include the gem in your Jekyll site's `Gemfile`:
37
+
38
+ ```ruby
39
+ gem 'jekyll-theme-hydra'
40
+ ```
41
+
42
+ Hydra's default layout depends on the `jekyll-seo-tag` gem. Add in the relevant section. Example:
43
+
44
+ ```ruby
45
+ group :jekyll_plugins do
46
+ # ...
47
+ gem 'jekyll-seo-tag', '2.6.1'
48
+ # ...
49
+ end
50
+ ```
51
+
52
+
53
+ And add this line to your Jekyll site's `_config.yml`:
54
+
55
+ ```yaml
56
+ theme: jekyll-theme-hydra
57
+ ```
58
+
59
+ And then execute:
60
+
61
+ $ bundle
62
+
63
+ Or install it yourself as:
64
+
65
+ $ gem install jekyll-theme-hydra
66
+
67
+
68
+ ## Basic setup
69
+
70
+ 1. Add your site and author details in `_config.yml`.
71
+ 2. Add your Google Analytics and Disqus keys to `_config.yml`.
72
+ 3. Get a workflow going to see your site's output (with [CloudCannon](https://app.cloudcannon.com/) or Jekyll locally).
73
+
74
+
75
+ ## Usage / Editing
76
+
77
+ Hydra is already optimised for adding, updating and removing pages, staff, advice, company details and footer elements in CloudCannon.
78
+
79
+ ### Posts
80
+
81
+ * Add, update or remove a post in the *Posts* collection.
82
+ * The **Staff Author** field links to members in the **Staff** collection.
83
+ * Documentation pages are organised in the navigation by category, with URLs based on the path inside the `_docs` folder.
84
+ * Change the defaults when new posts are created in `_posts/_defaults.md`.
85
+
86
+ ### Contact Form
87
+
88
+ * Preconfigured to work with CloudCannon, but easily changed to another provider (e.g. [FormSpree](https://formspree.io/)).
89
+ * Sends email to the address listed in company details.
90
+
91
+ ### Staff
92
+
93
+ * Reused around the site to save multiple editing locations.
94
+ * Add `excluded_in_search: true` to any documentation page's front matter to exclude that page in the search results.
95
+
96
+ ### Navigation
97
+
98
+ * Exposed as a data file to give clients better access.
99
+ * Set in the *Data* / *Navigation* section.
100
+
101
+ ### Footer
102
+
103
+ * Exposed as a data file to give clients better access.
104
+ * Set in the *Data* / *Footer* section.
105
+
106
+
107
+ ## Contributing
108
+
109
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/hello. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
110
+
111
+ ## Development
112
+
113
+ Hydra was built with [Jekyll](http://jekyllrb.com/) version 3.3.1, but should support newer versions as well.
114
+
115
+ Install the dependencies with [Bundler](http://bundler.io/):
116
+
117
+ ~~~bash
118
+ $ bundle install
119
+ ~~~
120
+
121
+ Run `jekyll` commands through Bundler to ensure you're using the right versions:
122
+
123
+ ~~~bash
124
+ $ bundle exec jekyll serve
125
+ ~~~
126
+
127
+ Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
128
+
129
+ When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
130
+ To add a custom directory to your theme-gem, please edit the regexp in `jekyll-theme-hydra.gemspec` accordingly.
131
+
132
+ ## License
133
+
134
+ The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,10 @@
1
+ {% for post in include.posts %}
2
+ <li class="blog-post">
3
+ <h3><a href="{% include relative-src.html src=post.url %}">{{ post.title }}</a></h3>
4
+ {% include post-title.html post=post %}
5
+ <div class="post-content">
6
+ {{ post.excerpt }}
7
+ <div class="button"><a href="{% include relative-src.html src=post.url %}">Read More</a></div>
8
+ </div>
9
+ </li>
10
+ {% endfor %}
@@ -0,0 +1,15 @@
1
+ <nav>
2
+ <a class="nav-toggle" id="open-nav" href="#">&#9776;</a>
3
+ <a class="editor-link btn" href="cloudcannon:collections/_data/navigation.yml" class="btn"><strong>&#9998;</strong> Edit navigation</a>
4
+ {% for link in site.data.navigation %}
5
+ {% assign class = "" %}
6
+ {% if link.highlight %}
7
+ {% assign class = class | append: " highlight" %}
8
+ {% endif %}
9
+
10
+ {% if link.link == page.url %}
11
+ {% assign class = class | append: " active" %}
12
+ {% endif %}
13
+ <a href="{% include relative-src.html src=link.link %}" class="{{ class }}" {% if link.new_window %}target="_blank"{% endif %}>{{ link.name }}</a>
14
+ {% endfor %}
15
+ </nav>
@@ -0,0 +1,8 @@
1
+ <p class="post-details">
2
+ {% for category in include.post.categories %}
3
+ <span class="blog-filter">
4
+ <a href="{{ site.baseurl }}/category/{{ category | slugify }}/">{{ category | capitalize }}</a>
5
+ </span>
6
+ {% endfor %}
7
+ <span class="post-date">{{ include.post.date | date: "%B %d, %Y" }}</span>
8
+ </p>
@@ -0,0 +1 @@
1
+ {% assign prefix = include.src | slice: 0, 2 %}{% assign protocol = include.src | slice: 0, 4 %}{% unless protocol == 'http' or prefix == "//" %}{{ site.baseurl }}{% endunless %}{{ include.src }}
@@ -0,0 +1,20 @@
1
+ {% case include.icon %}
2
+ {% when "Facebook" %}
3
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19,4V7H17A1,1 0 0,0 16,8V10H19V13H16V20H13V13H11V10H13V7.5C13,5.56 14.57,4 16.5,4M20,2H4A2,2 0 0,0 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z" /></svg>
4
+ {% when "Google Plus" %}
5
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M23,11H21V9H19V11H17V13H19V15H21V13H23M8,11V13.4H12C11.8,14.4 10.8,16.4 8,16.4C5.6,16.4 3.7,14.4 3.7,12C3.7,9.6 5.6,7.6 8,7.6C9.4,7.6 10.3,8.2 10.8,8.7L12.7,6.9C11.5,5.7 9.9,5 8,5C4.1,5 1,8.1 1,12C1,15.9 4.1,19 8,19C12,19 14.7,16.2 14.7,12.2C14.7,11.7 14.7,11.4 14.6,11H8Z" /></svg>
6
+ {% when "Instagram" %}
7
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M7.8,2H16.2C19.4,2 22,4.6 22,7.8V16.2A5.8,5.8 0 0,1 16.2,22H7.8C4.6,22 2,19.4 2,16.2V7.8A5.8,5.8 0 0,1 7.8,2M7.6,4A3.6,3.6 0 0,0 4,7.6V16.4C4,18.39 5.61,20 7.6,20H16.4A3.6,3.6 0 0,0 20,16.4V7.6C20,5.61 18.39,4 16.4,4H7.6M17.25,5.5A1.25,1.25 0 0,1 18.5,6.75A1.25,1.25 0 0,1 17.25,8A1.25,1.25 0 0,1 16,6.75A1.25,1.25 0 0,1 17.25,5.5M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z" /></svg>
8
+ {% when "LinkedIn" %}
9
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M19,19H16V13.7A1.5,1.5 0 0,0 14.5,12.2A1.5,1.5 0 0,0 13,13.7V19H10V10H13V11.2C13.5,10.36 14.59,9.8 15.5,9.8A3.5,3.5 0 0,1 19,13.3M6.5,8.31C5.5,8.31 4.69,7.5 4.69,6.5A1.81,1.81 0 0,1 6.5,4.69C7.5,4.69 8.31,5.5 8.31,6.5A1.81,1.81 0 0,1 6.5,8.31M8,19H5V10H8M20,2H4C2.89,2 2,2.89 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z" /></svg>
10
+ {% when "Pinterest" %}
11
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M13,16.2C12.2,16.2 11.43,15.86 10.88,15.28L9.93,18.5L9.86,18.69L9.83,18.67C9.64,19 9.29,19.2 8.9,19.2C8.29,19.2 7.8,18.71 7.8,18.1C7.8,18.05 7.81,18 7.81,17.95H7.8L7.85,17.77L9.7,12.21C9.7,12.21 9.5,11.59 9.5,10.73C9.5,9 10.42,8.5 11.16,8.5C11.91,8.5 12.58,8.76 12.58,9.81C12.58,11.15 11.69,11.84 11.69,12.81C11.69,13.55 12.29,14.16 13.03,14.16C15.37,14.16 16.2,12.4 16.2,10.75C16.2,8.57 14.32,6.8 12,6.8C9.68,6.8 7.8,8.57 7.8,10.75C7.8,11.42 8,12.09 8.34,12.68C8.43,12.84 8.5,13 8.5,13.2A1,1 0 0,1 7.5,14.2C7.13,14.2 6.79,14 6.62,13.7C6.08,12.81 5.8,11.79 5.8,10.75C5.8,7.47 8.58,4.8 12,4.8C15.42,4.8 18.2,7.47 18.2,10.75C18.2,13.37 16.57,16.2 13,16.2M20,2H4C2.89,2 2,2.89 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z" /></svg>
12
+ {% when "Tumblr" %}
13
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M16,11H13V14.9C13,15.63 13.14,16 14.1,16H16V19C16,19 14.97,19.1 13.9,19.1C11.25,19.1 10,17.5 10,15.7V11H8V8.2C10.41,8 10.62,6.16 10.8,5H13V8H16M20,2H4C2.89,2 2,2.89 2,4V20A2,2 0 0,0 4,22H20A2,2 0 0,0 22,20V4C22,2.89 21.1,2 20,2Z" /></svg>
14
+ {% when "Twitter" %}
15
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M22.46,6C21.69,6.35 20.86,6.58 20,6.69C20.88,6.16 21.56,5.32 21.88,4.31C21.05,4.81 20.13,5.16 19.16,5.36C18.37,4.5 17.26,4 16,4C13.65,4 11.73,5.92 11.73,8.29C11.73,8.63 11.77,8.96 11.84,9.27C8.28,9.09 5.11,7.38 3,4.79C2.63,5.42 2.42,6.16 2.42,6.94C2.42,8.43 3.17,9.75 4.33,10.5C3.62,10.5 2.96,10.3 2.38,10C2.38,10 2.38,10 2.38,10.03C2.38,12.11 3.86,13.85 5.82,14.24C5.46,14.34 5.08,14.39 4.69,14.39C4.42,14.39 4.15,14.36 3.89,14.31C4.43,16 6,17.26 7.89,17.29C6.43,18.45 4.58,19.13 2.56,19.13C2.22,19.13 1.88,19.11 1.54,19.07C3.44,20.29 5.7,21 8.12,21C16,21 20.33,14.46 20.33,8.79C20.33,8.6 20.33,8.42 20.32,8.23C21.16,7.63 21.88,6.87 22.46,6Z" /></svg>
16
+ {% when "YouTube" %}
17
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M10,16.5V7.5L16,12M20,4.4C19.4,4.2 15.7,4 12,4C8.3,4 4.6,4.19 4,4.38C2.44,4.9 2,8.4 2,12C2,15.59 2.44,19.1 4,19.61C4.6,19.81 8.3,20 12,20C15.7,20 19.4,19.81 20,19.61C21.56,19.1 22,15.59 22,12C22,8.4 21.56,4.91 20,4.4Z" /></svg>
18
+ {% when "RSS" %}
19
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"/><circle cx="6.18" cy="17.82" r="2.18"/><path d="M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z"/></svg>
20
+ {% endcase %}
@@ -0,0 +1,23 @@
1
+ ---
2
+ layout: page
3
+ ---
4
+
5
+ <div class="text-container">
6
+ {% assign blog = site.pages | where: "path", "blog/index.html" | first %}
7
+
8
+ {% if blog.title %}
9
+ <h2>{{ blog.title }}</h2>
10
+ {% endif %}
11
+
12
+ {% if blog.description %}
13
+ <p class="subtext">{{ blog.description }}</p>
14
+ {% endif %}
15
+
16
+ <div class="center-text">
17
+ <span class="blog-filter cross"><a href="{{ site.baseurl }}/blog/">{{ page.title | capitalize }}</a></span>
18
+ </div>
19
+
20
+ <ul class="blog-posts">
21
+ {% include list-posts.html posts=page.posts %}
22
+ </ul>
23
+ </div>
@@ -0,0 +1,57 @@
1
+ <!doctype html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+
8
+ {% seo %}
9
+ {% feed_meta %}
10
+
11
+ <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/screen.css">
12
+ <link rel="icon" type="image/png" href="{{ site.baseurl }}/favicon.png">
13
+
14
+ {% if jekyll.environment == 'production' and site.google_analytics_key != '' %}
15
+ <script>
16
+ window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
17
+ ga('create', '{{ site.google_analytics_key }}', 'auto');
18
+ ga('send', 'pageview');
19
+ </script>
20
+ <script async src='https://www.google-analytics.com/analytics.js'></script>
21
+ {% endif %}
22
+ </head>
23
+ <body>
24
+ <header>
25
+ <div class="container">
26
+ <div class="company-name"><a href="{{ site.baseurl }}/"><img src="{{ site.baseurl }}/assets/images/logo.svg" alt="Hydra Logo" width="95" height="33" /></a></div>
27
+ {% include navigation.html %}
28
+ </div>
29
+ </header>
30
+ {{ content }}
31
+ <footer>
32
+ <div class="container">
33
+ <p class="editor-link"><a href="cloudcannon:collections/_data/footer.yml" class="btn"><strong>&#9998;</strong> Edit footer</a></p>
34
+ <div class="footer-columns">
35
+ {% for column in site.data.footer %}
36
+ <ul class="footer-links">
37
+ {% for link in column.links %}
38
+ <li><a {% if link.new_window %}target="_blank"{% endif %} href="{% include relative-src.html src=link.link %}" {% if link.social_icon %}class="{{ link.social_icon }}-icon"{% endif %}>
39
+ {% if link.social_icon %}
40
+ {% include social-icon.html icon=link.social_icon %}
41
+ {% endif %}
42
+ {{ link.name }}</a></li>
43
+ {% endfor %}
44
+ </ul>
45
+ {% endfor %}
46
+ </div>
47
+ <p class="copyright">&copy; {{ site.time | date: '%Y' }} MyApp Ltd. • <a href="#">Terms</a> &amp; <a href="#">Privacy</a> • <a href="https://cloudcannon.com/">Template by CloudCannon</a></p>
48
+ </div>
49
+ </footer>
50
+ <script>
51
+ document.getElementById("open-nav").onclick = function () {
52
+ document.body.classList.toggle("nav-open");
53
+ return false;
54
+ };
55
+ </script>
56
+ </body>
57
+ </html>
@@ -0,0 +1,18 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <div class="content">
5
+ <section class="page">
6
+ <div class="container {% if page.full_width %}max-container{% endif %}">
7
+ {% if page.heading %}
8
+ <h2>{{ page.heading }}</h2>
9
+ {% elsif page.title and page.layout != 'archive' %}
10
+ <h2>{{ page.title }}</h2>
11
+ {% endif %}
12
+ {% if page.description %}
13
+ <p class="subtext">{{ page.description }}</p>
14
+ {% endif %}
15
+ {{ content }}
16
+ </div>
17
+ </section>
18
+ </div>
@@ -0,0 +1,46 @@
1
+ ---
2
+ layout: page
3
+ ---
4
+ <div class="blog-post text-container">
5
+ {% include post-title.html post=page %}
6
+
7
+ <p class="editor-link"><a href="cloudcannon:collections/{{ page.path }}" class="btn"><strong>&#9998;</strong> Edit Post</a></p>
8
+ <div class="post-content">
9
+ {{ content }}
10
+
11
+ <div class="author">
12
+ {% assign author_id = page.author_staff_member | prepend: "/staff_members/" | append: "/" %}
13
+ {% assign author = site.staff_members | where: "url", author_id | first %}
14
+ <div class="square-image"><img src="{% include relative-src.html src=author.image_path %}" alt="{{ author.name }}"/></div>
15
+ <p class="blurb">{{ author.blurb }}</p>
16
+ </div>
17
+
18
+ <div class="blog-navigation">
19
+ {% if page.previous.url %}
20
+ <a class="prev" href="{% include relative-src.html src=page.previous.url %}">&laquo; {{ page.previous.title }}</a>
21
+ {% endif %}
22
+ {% if page.next.url %}
23
+ <a class="next" href="{% include relative-src.html src=page.next.url %}">{{ page.next.title }} &raquo;</a>
24
+ {% endif %}
25
+ </div>
26
+
27
+ {% if site.disqus_shortname and page.comments %}
28
+ <div id="disqus_thread"></div>
29
+ <script>
30
+ var disqus_shortname = '{{ site.disqus_shortname }}';
31
+ var disqus_config = function () {
32
+ this.page.url = "{{ page.url | prepend: site.url }}";
33
+ this.page.identifier = "{{ page.id }}";
34
+ };
35
+
36
+ (function() { // DON'T EDIT BELOW THIS LINE
37
+ var d = document, s = d.createElement('script');
38
+ s.src = '//' + disqus_shortname + '.disqus.com/embed.js';
39
+ s.setAttribute('data-timestamp', +new Date());
40
+ (d.head || d.body).appendChild(s);
41
+ })();
42
+ </script>
43
+ <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" rel="nofollow">comments powered by Disqus.</a></noscript>
44
+ {% endif %}
45
+ </div>
46
+ </div>
@@ -0,0 +1,125 @@
1
+ .blog-posts {
2
+ list-style: none;
3
+ padding: 0;
4
+
5
+ li {
6
+ margin: 100px 0;
7
+ }
8
+ }
9
+
10
+ .blog-post {
11
+ .author {
12
+ padding: 30px 0 0 0;
13
+ border: 1px solid #eee;
14
+ margin: 30px 0;
15
+ font-size: .8em;
16
+
17
+ .square-image {
18
+ width: 125px;
19
+ height: 125px;
20
+ margin-top: 0;
21
+ }
22
+ .blurb {
23
+ text-align: center;
24
+ }
25
+ }
26
+
27
+ h3 {
28
+ margin: 0;
29
+ a {
30
+ color: #000;
31
+ text-decoration: none;
32
+ font-weight: normal;
33
+ font-size: 1.3em;
34
+ }
35
+ }
36
+
37
+ h2 {
38
+ text-align: left;
39
+ }
40
+
41
+ .blog-navigation {
42
+ font-size: 14px;
43
+ display: block;
44
+ width: auto;
45
+ overflow: hidden;
46
+ a {
47
+ display: block;
48
+ width: 50%;
49
+ float: left;
50
+ margin: 1em 0;
51
+ }
52
+
53
+ .next {
54
+ text-align: right;
55
+ }
56
+ }
57
+
58
+ .post-details {
59
+ border-bottom: 1px solid #eee;
60
+ font-size: .9em;
61
+
62
+ .blog-filter {
63
+ display: inline-block;
64
+ text-align: left;
65
+
66
+ a {
67
+ position: relative;
68
+ top: -5px;
69
+ }
70
+ }
71
+
72
+ a {
73
+ text-decoration: none;
74
+ }
75
+
76
+ .post-date {
77
+ float: right;
78
+ }
79
+
80
+ &:after {
81
+ content: "";
82
+ display: table;
83
+ clear: both;
84
+ }
85
+ }
86
+
87
+ .post-content {
88
+ .button {
89
+ margin: 30px 0 0 0;
90
+ }
91
+ }
92
+ }
93
+
94
+ .pagination {
95
+ text-align: center;
96
+ }
97
+
98
+ .blog-filter {
99
+ text-align: center;
100
+ a {
101
+ background: #eee;
102
+ padding: 3px 5px;
103
+ font-size: .8em;
104
+ border-radius: 5px;
105
+ color: #888;
106
+ transition: .2s ease-in-out;
107
+
108
+ &:hover {
109
+ color: #555;
110
+ text-decoration: none;
111
+ }
112
+ }
113
+ }
114
+
115
+ .blog-filter.cross a {
116
+ padding-right: 8px;
117
+
118
+ &:after {
119
+ content: "x";
120
+ font-size: .5em;
121
+ position: relative;
122
+ bottom: 4px;
123
+ right: -3px;
124
+ }
125
+ }