bertie 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,34 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="home">
6
+ {%- if page.title -%}
7
+ <h1 class="page-heading">{{ page.title }}</h1>
8
+ {%- endif -%}
9
+
10
+ {{ content }}
11
+
12
+ {%- if site.posts.size > 0 -%}
13
+ <h2 class="post-list-heading">{{ page.list_title | default: "Posts" }}</h2>
14
+ <ul class="post-list">
15
+ {%- for post in site.posts -%}
16
+ <li>
17
+ {%- assign date_format = site.bertie.date_format | default: "%b %-d, %Y" -%}
18
+ <span class="post-meta">{{ post.date | date: date_format }}</span>
19
+ <h3>
20
+ <a class="post-link" href="{{ post.url | relative_url }}">
21
+ {{ post.title | escape }}
22
+ </a>
23
+ </h3>
24
+ {%- if site.show_excerpts -%}
25
+ {{ post.excerpt }}
26
+ {%- endif -%}
27
+ </li>
28
+ {%- endfor -%}
29
+ </ul>
30
+
31
+ <p class="feed-subscribe"><svg class="svg-icon orange"><use xlink:href="{{ '/assets/bertie-social-icons.svg#rss' | relative_url }}"></use></svg><a href="{{ "/feed.xml" | relative_url }}">Subscribe</a></p>
32
+ {%- endif -%}
33
+
34
+ </div>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <article class="post">
5
+
6
+ <header class="post-header">
7
+ <h1 class="post-title">{{ page.title | escape }}</h1>
8
+ </header>
9
+
10
+ <div class="post-content">
11
+ {{ content }}
12
+ </div>
13
+
14
+ </article>
@@ -0,0 +1,27 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <article class="post h-entry" itemscope itemtype="http://schema.org/BlogPosting">
5
+
6
+ <header class="post-header">
7
+ <h1 class="post-title p-name" itemprop="name headline">{{ page.title | escape }}</h1>
8
+ <p class="post-meta">
9
+ <time class="dt-published" datetime="{{ page.date | date_to_xmlschema }}" itemprop="datePublished">
10
+ {%- assign date_format = site.bertie.date_format | default: "%b %-d, %Y" -%}
11
+ {{ page.date | date: date_format }}
12
+ </time>
13
+ {%- if page.author -%}
14
+ • <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span class="p-author h-card" itemprop="name">{{ page.author | escape }}</span></span>
15
+ {%- endif -%}</p>
16
+ </header>
17
+
18
+ <div class="post-content e-content" itemprop="articleBody">
19
+ {{ content }}
20
+ </div>
21
+
22
+ {%- if site.disqus.shortname -%}
23
+ {%- include disqus_comments.html -%}
24
+ {%- endif -%}
25
+
26
+ <a class="u-url" href="{{ page.url | relative_url }}" hidden></a>
27
+ </article>
data/_sass/bertie.scss ADDED
@@ -0,0 +1,56 @@
1
+ @charset "utf-8";
2
+
3
+ // Define defaults for each variable.
4
+
5
+ $base-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !default;
6
+ $base-font-size: 16px !default;
7
+ $base-font-weight: 400 !default;
8
+ $small-font-size: $base-font-size * 0.875 !default;
9
+ $base-line-height: 1.5 !default;
10
+
11
+ $spacing-unit: 30px !default;
12
+
13
+ $text-color: #111 !default;
14
+ $background-color: #fdfdfd !default;
15
+ $brand-color: #2a7ae2 !default;
16
+
17
+ $grey-color: #828282 !default;
18
+ $grey-color-light: lighten($grey-color, 40%) !default;
19
+ $grey-color-dark: darken($grey-color, 25%) !default;
20
+ $orange-color: #f66a0a !default;
21
+ $table-text-align: left !default;
22
+
23
+ // Width of the content area
24
+ $content-width: 800px !default;
25
+
26
+ $on-palm: 600px !default;
27
+ $on-laptop: 800px !default;
28
+
29
+ $on-medium: $on-palm !default;
30
+ $on-large: $on-laptop !default;
31
+
32
+ // Use media queries like this:
33
+ // @include media-query($on-palm) {
34
+ // .wrapper {
35
+ // padding-right: $spacing-unit / 2;
36
+ // padding-left: $spacing-unit / 2;
37
+ // }
38
+ // }
39
+ // Notice the following mixin uses max-width, in a deprecated, desktop-first
40
+ // approach, whereas media queries used elsewhere now use min-width.
41
+ @mixin media-query($device) {
42
+ @media screen and (max-width: $device) {
43
+ @content;
44
+ }
45
+ }
46
+
47
+ @mixin relative-font-size($ratio) {
48
+ font-size: $base-font-size * $ratio;
49
+ }
50
+
51
+ // Import partials.
52
+ @import
53
+ "bertie/base",
54
+ "bertie/layout",
55
+ "bertie/syntax-highlighting"
56
+ ;
@@ -0,0 +1,262 @@
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
+ /**
15
+ * Basic styling
16
+ */
17
+ body {
18
+ font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;
19
+ color: $text-color;
20
+ background-color: $background-color;
21
+ -webkit-text-size-adjust: 100%;
22
+ -webkit-font-feature-settings: "kern" 1;
23
+ -moz-font-feature-settings: "kern" 1;
24
+ -o-font-feature-settings: "kern" 1;
25
+ font-feature-settings: "kern" 1;
26
+ font-kerning: normal;
27
+ display: flex;
28
+ min-height: 100vh;
29
+ flex-direction: column;
30
+ }
31
+
32
+
33
+
34
+ /**
35
+ * Set `margin-bottom` to maintain vertical rhythm
36
+ */
37
+ h1, h2, h3, h4, h5, h6,
38
+ p, blockquote, pre,
39
+ ul, ol, dl, figure,
40
+ %vertical-rhythm {
41
+ margin-bottom: $spacing-unit / 2;
42
+ }
43
+
44
+
45
+
46
+ /**
47
+ * `main` element
48
+ */
49
+ main {
50
+ display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */
51
+ }
52
+
53
+
54
+
55
+ /**
56
+ * Images
57
+ */
58
+ img {
59
+ max-width: 100%;
60
+ vertical-align: middle;
61
+ }
62
+
63
+
64
+
65
+ /**
66
+ * Figures
67
+ */
68
+ figure > img {
69
+ display: block;
70
+ }
71
+
72
+ figcaption {
73
+ font-size: $small-font-size;
74
+ }
75
+
76
+
77
+
78
+ /**
79
+ * Lists
80
+ */
81
+ ul, ol {
82
+ margin-left: $spacing-unit;
83
+ }
84
+
85
+ li {
86
+ > ul,
87
+ > ol {
88
+ margin-bottom: 0;
89
+ }
90
+ }
91
+
92
+
93
+
94
+ /**
95
+ * Headings
96
+ */
97
+ h1, h2, h3, h4, h5, h6 {
98
+ font-weight: $base-font-weight;
99
+ }
100
+
101
+
102
+
103
+ /**
104
+ * Links
105
+ */
106
+ a {
107
+ color: $brand-color;
108
+ text-decoration: none;
109
+
110
+ &:visited {
111
+ color: darken($brand-color, 15%);
112
+ }
113
+
114
+ &:hover {
115
+ color: $text-color;
116
+ text-decoration: underline;
117
+ }
118
+
119
+ .social-media-list &:hover {
120
+ text-decoration: none;
121
+
122
+ .username {
123
+ text-decoration: underline;
124
+ }
125
+ }
126
+ }
127
+
128
+
129
+ /**
130
+ * Blockquotes
131
+ */
132
+ blockquote {
133
+ color: $grey-color;
134
+ border-left: 4px solid $grey-color-light;
135
+ padding-left: $spacing-unit / 2;
136
+ @include relative-font-size(1.125);
137
+ letter-spacing: -1px;
138
+ font-style: italic;
139
+
140
+ > :last-child {
141
+ margin-bottom: 0;
142
+ }
143
+ }
144
+
145
+
146
+
147
+ /**
148
+ * Code formatting
149
+ */
150
+ pre,
151
+ code {
152
+ @include relative-font-size(0.9375);
153
+ border: 1px solid $grey-color-light;
154
+ border-radius: 3px;
155
+ background-color: #eef;
156
+ }
157
+
158
+ code {
159
+ padding: 1px 5px;
160
+ }
161
+
162
+ pre {
163
+ padding: 8px 12px;
164
+ overflow-x: auto;
165
+
166
+ > code {
167
+ border: 0;
168
+ padding-right: 0;
169
+ padding-left: 0;
170
+ }
171
+ }
172
+
173
+
174
+
175
+ /**
176
+ * Wrapper
177
+ */
178
+ .wrapper {
179
+ max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
180
+ max-width: calc(#{$content-width} - (#{$spacing-unit}));
181
+ margin-right: auto;
182
+ margin-left: auto;
183
+ padding-right: $spacing-unit / 2;
184
+ padding-left: $spacing-unit / 2;
185
+ @extend %clearfix;
186
+
187
+ @media screen and (min-width: $on-large) {
188
+ max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
189
+ max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
190
+ padding-right: $spacing-unit;
191
+ padding-left: $spacing-unit;
192
+ }
193
+ }
194
+
195
+
196
+
197
+ /**
198
+ * Clearfix
199
+ */
200
+ %clearfix:after {
201
+ content: "";
202
+ display: table;
203
+ clear: both;
204
+ }
205
+
206
+
207
+
208
+ /**
209
+ * Icons
210
+ */
211
+
212
+ .orange {
213
+ color: $orange-color;
214
+ }
215
+
216
+ .grey {
217
+ color: $grey-color;
218
+ }
219
+
220
+ .svg-icon {
221
+ width: 16px;
222
+ height: 18px;
223
+ display: inline-block;
224
+ fill: currentColor;
225
+ padding-right: 5px;
226
+ vertical-align: text-bottom;
227
+ }
228
+
229
+ .social-media-list {
230
+ li + li {
231
+ padding-top: 5px;
232
+ }
233
+ }
234
+
235
+
236
+ /**
237
+ * Tables
238
+ */
239
+ table {
240
+ margin-bottom: $spacing-unit;
241
+ width: 100%;
242
+ text-align: $table-text-align;
243
+ color: lighten($text-color, 18%);
244
+ border-collapse: collapse;
245
+ border: 1px solid $grey-color-light;
246
+ tr {
247
+ &:nth-child(even) {
248
+ background-color: lighten($grey-color-light, 6%);
249
+ }
250
+ }
251
+ th, td {
252
+ padding: ($spacing-unit / 3) ($spacing-unit / 2);
253
+ }
254
+ th {
255
+ background-color: lighten($grey-color-light, 3%);
256
+ border: 1px solid darken($grey-color-light, 4%);
257
+ border-bottom-color: darken($grey-color-light, 12%);
258
+ }
259
+ td {
260
+ border: 1px solid $grey-color-light;
261
+ }
262
+ }
@@ -0,0 +1,271 @@
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: $spacing-unit * 1.865;
8
+ line-height: $base-line-height * $base-font-size * 2.25;
9
+
10
+ // Positioning context for the mobile navigation icon
11
+ position: relative;
12
+ }
13
+
14
+ .site-title {
15
+ @include relative-font-size(1.625);
16
+ font-weight: 300;
17
+ letter-spacing: -1px;
18
+ margin-bottom: 0;
19
+ float: left;
20
+
21
+ @include media-query($on-palm) {
22
+ padding-right: 45px;
23
+ }
24
+
25
+ &,
26
+ &:visited {
27
+ color: $grey-color-dark;
28
+ }
29
+ }
30
+
31
+ .site-nav {
32
+ position: absolute;
33
+ top: 9px;
34
+ right: $spacing-unit / 2;
35
+ background-color: $background-color;
36
+ border: 1px solid $grey-color-light;
37
+ border-radius: 5px;
38
+ text-align: right;
39
+
40
+ .nav-trigger {
41
+ display: none;
42
+ }
43
+
44
+ .menu-icon {
45
+ float: right;
46
+ width: 36px;
47
+ height: 26px;
48
+ line-height: 0;
49
+ padding-top: 10px;
50
+ text-align: center;
51
+
52
+ > svg path {
53
+ fill: $grey-color-dark;
54
+ }
55
+ }
56
+
57
+ label[for="nav-trigger"] {
58
+ display: block;
59
+ float: right;
60
+ width: 36px;
61
+ height: 36px;
62
+ z-index: 2;
63
+ cursor: pointer;
64
+ }
65
+
66
+ input ~ .trigger {
67
+ clear: both;
68
+ display: none;
69
+ }
70
+
71
+ input:checked ~ .trigger {
72
+ display: block;
73
+ padding-bottom: 5px;
74
+ }
75
+
76
+ .page-link {
77
+ color: $text-color;
78
+ line-height: $base-line-height;
79
+ display: block;
80
+ padding: 5px 10px;
81
+
82
+ // Gaps between nav items, but not on the last one
83
+ &:not(:last-child) {
84
+ margin-right: 0;
85
+ }
86
+ margin-left: 20px;
87
+ }
88
+
89
+ @media screen and (min-width: $on-medium) {
90
+ position: static;
91
+ float: right;
92
+ border: none;
93
+ background-color: inherit;
94
+
95
+ label[for="nav-trigger"] {
96
+ display: none;
97
+ }
98
+
99
+ .menu-icon {
100
+ display: none;
101
+ }
102
+
103
+ input ~ .trigger {
104
+ display: block;
105
+ }
106
+
107
+ .page-link {
108
+ display: inline;
109
+ padding: 0;
110
+
111
+ &:not(:last-child) {
112
+ margin-right: 20px;
113
+ }
114
+ margin-left: auto;
115
+ }
116
+ }
117
+ }
118
+
119
+
120
+
121
+ /**
122
+ * Site footer
123
+ */
124
+ .site-footer {
125
+ border-top: 1px solid $grey-color-light;
126
+ padding: $spacing-unit 0;
127
+ }
128
+
129
+ .footer-heading {
130
+ @include relative-font-size(1.125);
131
+ margin-bottom: $spacing-unit / 2;
132
+ }
133
+
134
+ .contact-list,
135
+ .social-media-list {
136
+ list-style: none;
137
+ margin-left: 0;
138
+ }
139
+
140
+ .footer-col-wrapper {
141
+ @include relative-font-size(0.9375);
142
+ color: $grey-color;
143
+ margin-left: -$spacing-unit / 2;
144
+ @extend %clearfix;
145
+ }
146
+
147
+ .footer-col {
148
+ width: -webkit-calc(100% - (#{$spacing-unit} / 2));
149
+ width: calc(100% - (#{$spacing-unit} / 2));
150
+ margin-bottom: $spacing-unit / 2;
151
+ padding-left: $spacing-unit / 2;
152
+ }
153
+
154
+ .footer-col-1,
155
+ .footer-col-2 {
156
+ width: -webkit-calc(50% - (#{$spacing-unit} / 2));
157
+ width: calc(50% - (#{$spacing-unit} / 2));
158
+ }
159
+
160
+ .footer-col-3 {
161
+ width: -webkit-calc(100% - (#{$spacing-unit} / 2));
162
+ width: calc(100% - (#{$spacing-unit} / 2));
163
+ }
164
+
165
+ @media screen and (min-width: $on-large) {
166
+ .footer-col-1 {
167
+ width: -webkit-calc(35% - (#{$spacing-unit} / 2));
168
+ width: calc(35% - (#{$spacing-unit} / 2));
169
+ }
170
+
171
+ .footer-col-2 {
172
+ width: -webkit-calc(20% - (#{$spacing-unit} / 2));
173
+ width: calc(20% - (#{$spacing-unit} / 2));
174
+ }
175
+
176
+ .footer-col-3 {
177
+ width: -webkit-calc(45% - (#{$spacing-unit} / 2));
178
+ width: calc(45% - (#{$spacing-unit} / 2));
179
+ }
180
+ }
181
+
182
+ @media screen and (min-width: $on-medium) {
183
+ .footer-col {
184
+ float: left;
185
+ }
186
+ }
187
+
188
+
189
+
190
+ /**
191
+ * Page content
192
+ */
193
+ .page-content {
194
+ padding: $spacing-unit 0;
195
+ flex: 1 0 auto;
196
+ }
197
+
198
+ .page-heading {
199
+ @include relative-font-size(2);
200
+ }
201
+
202
+ .post-list-heading {
203
+ @include relative-font-size(1.75);
204
+ }
205
+
206
+ .post-list {
207
+ margin-left: 0;
208
+ list-style: none;
209
+
210
+ > li {
211
+ margin-bottom: $spacing-unit;
212
+ }
213
+ }
214
+
215
+ .post-meta {
216
+ font-size: $small-font-size;
217
+ color: $grey-color;
218
+ }
219
+
220
+ .post-link {
221
+ display: block;
222
+ @include relative-font-size(1.5);
223
+ }
224
+
225
+
226
+
227
+ /**
228
+ * Posts
229
+ */
230
+ .post-header {
231
+ margin-bottom: $spacing-unit;
232
+ }
233
+
234
+ .post-title,
235
+ .post-content h1 {
236
+ @include relative-font-size(2.625);
237
+ letter-spacing: -1px;
238
+ line-height: 1;
239
+
240
+ @media screen and (min-width: $on-large) {
241
+ @include relative-font-size(2.625);
242
+ }
243
+ }
244
+
245
+ .post-content {
246
+ margin-bottom: $spacing-unit;
247
+
248
+ h2 {
249
+ @include relative-font-size(1.75);
250
+
251
+ @media screen and (min-width: $on-large) {
252
+ @include relative-font-size(2);
253
+ }
254
+ }
255
+
256
+ h3 {
257
+ @include relative-font-size(1.375);
258
+
259
+ @media screen and (min-width: $on-large) {
260
+ @include relative-font-size(1.625);
261
+ }
262
+ }
263
+
264
+ h4 {
265
+ @include relative-font-size(1.125);
266
+
267
+ @media screen and (min-width: $on-large) {
268
+ @include relative-font-size(1.25);
269
+ }
270
+ }
271
+ }