bertie 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
+ }