jekyll-theme-switch 0.1.1 → 0.5.1.pre.1

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -22
  3. data/_includes/footer.html +27 -2
  4. data/_includes/head.html +34 -5
  5. data/_includes/post_meta.html +44 -7
  6. data/_includes/rss/post.html +4 -0
  7. data/_layouts/archive.html +1 -1
  8. data/_layouts/category_page.html +30 -10
  9. data/_layouts/default.html +1 -4
  10. data/_layouts/holidays.html +1 -1
  11. data/_layouts/home.html +37 -11
  12. data/_layouts/monthly_archive.html +2 -2
  13. data/_layouts/page.html +29 -7
  14. data/_layouts/post.html +53 -23
  15. data/_layouts/rss.html +32 -0
  16. data/_layouts/series_index.html +1 -1
  17. data/_layouts/series_post.html +3 -3
  18. data/_layouts/tag_page.html +30 -10
  19. data/_layouts/wrapped.html +6 -0
  20. data/_layouts/yearly_archive.html +2 -2
  21. data/_plugins/blog_series_plugin.rb +16 -0
  22. data/_plugins/category_tag_filter.rb +36 -0
  23. data/_plugins/filesize_filter.rb +13 -0
  24. data/_plugins/normalize_whitespace_filter.rb +10 -0
  25. data/_plugins/songlink_tag_plugin.rb +18 -0
  26. data/_plugins/video_tag_plugin.rb +62 -0
  27. data/_plugins/vimeo_tag_plugin.rb +23 -0
  28. data/_plugins/yearly_archive_plugin.rb +81 -0
  29. data/_sass/jekyll-theme-switch/_base.scss +1 -1
  30. data/_sass/jekyll-theme-switch/_dark.scss +51 -5
  31. data/_sass/jekyll-theme-switch/_layout.scss +157 -20
  32. data/_sass/jekyll-theme-switch/_syntax-highlighting.scss +0 -1
  33. data/assets/css/jekyll-theme-switch.scss +5 -5
  34. data/assets/image/arnaud-jaegers-OkXIepDkNBE-unsplash.jpg +0 -0
  35. data/assets/image/fabian-betto-d3npqyXkaGI-unsplash.jpg +0 -0
  36. data/assets/image/jonatan-pie-g6tqHx0ME1o-unsplash.jpg +0 -0
  37. data/assets/image/marek-piwnicki-NPct-Mxw-64-unsplash.jpg +0 -0
  38. metadata +21 -34
@@ -1,5 +1,5 @@
1
1
  ---
2
- layout: default
2
+ layout: wrapped
3
3
  ---
4
4
 
5
5
  <div class="tag-index">
@@ -7,16 +7,36 @@ layout: default
7
7
 
8
8
  <ul class="post-list">
9
9
  {% for post in page.posts %}
10
- <li {% if post.lead_image %}style="background-image: linear-gradient(90deg, rgba(255,255,255,1) 50%, rgba(255,255,255,0.7) 80%), url('{{ post.lead_image }}'); background-size: contain;"{% endif %}>
11
- {% include post_meta.html post=post %}
10
+ {% if post.lead_image %}
11
+ <style type="text/css" scoped>
12
+ li#post-{{ post.id | slugify }} {
13
+ background-image: linear-gradient(90deg, rgba(255,255,255,1) 50%, rgba(255,255,255,0.7) 80%),
14
+ url('{{ post.lead_image | prepend: site.baseurl | prepend: site.url }}');
15
+ background-size: cover;
16
+ background-repeat: no-repeat;
17
+ background-position-x: right;
18
+ }
12
19
 
13
- <h2>
14
- <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
15
- </h2>
16
- <div>
17
- {{ post.excerpt }}
18
- </div>
19
- <a href="{{ post.url | prepend: site.baseurl }}">lees verder</a>
20
+ @media (prefers-color-scheme: dark) {
21
+ li#post-{{ post.id | slugify }} {
22
+ background-image: linear-gradient(90deg, rgba(31,31,31,1) 50%, rgba(31,31,31,0.7) 80%),
23
+ url('{{ post.lead_image | prepend: site.baseurl | prepend: site.url }}');
24
+ }
25
+ }
26
+ </style>
27
+ {% endif %}
28
+ <li id="post-{{ post.id | slugify }}">
29
+ <article>
30
+ {% include post_meta.html post=post %}
31
+
32
+ <h2>
33
+ <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
34
+ </h2>
35
+ <div>
36
+ {{ post.excerpt }}
37
+ </div>
38
+ <a href="{{ post.url | prepend: site.baseurl }}">lees verder</a>
39
+ </article>
20
40
  </li>
21
41
  {% endfor %}
22
42
  </ul>
@@ -0,0 +1,6 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <div class="wrapper">
5
+ {{ content }}
6
+ </div>
@@ -1,5 +1,5 @@
1
1
  ---
2
- layout: default
2
+ layout: wrapped
3
3
  ---
4
4
  <div class="yearly-archive">
5
5
  <div>
@@ -12,7 +12,7 @@ layout: default
12
12
  <dl>
13
13
  {% for post in group.items reversed %}
14
14
  <dt>{% include date.html date=post.date %}</dt>
15
- <dd><a href="{{ post.url }}"><span>{{ post.title }}</span></a></dd>
15
+ <dd><a href="{{ post.url | prepend: site.baseurl }}"><span>{{ post.title }}</span></a></dd>
16
16
  {% endfor %}
17
17
  </dl>
18
18
  {% endfor %}
@@ -0,0 +1,16 @@
1
+
2
+
3
+ Jekyll::Hooks.register :site, :pre_render do |site|
4
+
5
+ seriesIndexes = site.posts.docs
6
+ .select { |p| p.data.key? 'series_slug' }
7
+ .reduce(Hash.new {|h,k| h[k] = []} ) { |series, post| series[post.data['series_slug']] << post; series }
8
+
9
+ seriesPosts = site.posts.docs
10
+ .select { |p| p.data.key? 'series' }
11
+ .reduce(Hash.new {|h,k| h[k] = []}) { |series, post| series[post.data['series']] << post; series }
12
+
13
+ seriesIndexes.each { |slug, posts| posts.each {|post| post.data['series_posts'] = seriesPosts[slug] }}
14
+ seriesPosts.each { |slug, posts| posts.each {|post| post.data['series_index'] = seriesIndexes[slug] }}
15
+ end
16
+
@@ -0,0 +1,36 @@
1
+
2
+ module Jekyll
3
+ module CategoryTagFilter
4
+ def taglinks(input)
5
+ site = @context.registers[:site]
6
+ input.map do |tag|
7
+ "<a href=\"#{site.baseurl}/#{site.config['tag_dir']}/#{tag}\">#{tag}</a>"
8
+ end
9
+ end
10
+
11
+ def categorylinks(input)
12
+ site = @context.registers[:site]
13
+ input.map do |cat|
14
+ "<a href=\"#{site.baseurl}/#{site.config['category_dir']}/#{cat}\">#{cat}</a>"
15
+ end
16
+ end
17
+ end
18
+
19
+ class CategoryLinkTag < Liquid::Tag
20
+ def initialize(tag_name, text, tokens)
21
+ super
22
+ @text = text
23
+ end
24
+
25
+ def render(context)
26
+ @context = context
27
+ site = context.registers[:site]
28
+ dir = site.config['category_dir'] || 'categories'
29
+
30
+ "/#{dir}/#{@text}"
31
+ end
32
+ end
33
+ end
34
+
35
+ Liquid::Template.register_tag('category_link', Jekyll::CategoryLinkTag)
36
+ Liquid::Template.register_filter(Jekyll::CategoryTagFilter)
@@ -0,0 +1,13 @@
1
+
2
+ module Jekyll
3
+ module FilesizeFilter
4
+ def filesize(input)
5
+ site = @context.registers[:site]
6
+ file = site.static_files.find {|f| f.path.end_with?(input) }
7
+
8
+ File.size(file.path)
9
+ end
10
+ end
11
+ end
12
+
13
+ Liquid::Template.register_filter(Jekyll::FilesizeFilter)
@@ -0,0 +1,10 @@
1
+
2
+ module Jekyll
3
+ module NormalizeWhitespaceFilter
4
+ def normalize_whitespace(input)
5
+ input.gsub(/\s+/, ' ')
6
+ end
7
+ end
8
+ end
9
+
10
+ Liquid::Template.register_filter(Jekyll::NormalizeWhitespaceFilter)
@@ -0,0 +1,18 @@
1
+
2
+ module Jekyll
3
+ class SonglinkTag < Liquid::Tag
4
+ @songlink = ''
5
+
6
+ def initialize(tag_name, markup, tokens)
7
+ @songlink = markup.split(' ').first
8
+ end
9
+
10
+ def render(context)
11
+ output = super
12
+ url = "https://embed.song.link/?url=#{@songlink}&theme=light"
13
+ songlink = "<iframe width='100%' height='414' src='#{url}' frameborder='0' allowfullscreen sandbox='allow-same-origin allow-scripts allow-presentation allow-popups allow-popups-to-escape-sandbox'></iframe>"
14
+ end
15
+ end
16
+ end
17
+
18
+ Liquid::Template.register_tag('songlink', Jekyll::SonglinkTag)
@@ -0,0 +1,62 @@
1
+ # Title: Simple Video tag for Jekyll
2
+ # Author: Brandon Mathis http://brandonmathis.com
3
+ # Description: Easily output MPEG4 HTML5 video with a flash backup.
4
+ #
5
+ # Syntax {% video url/to/video [width height] [url/to/poster] %}
6
+ #
7
+ # Example:
8
+ # {% video http://site.com/video.mp4 720 480 http://site.com/poster-frame.jpg %}
9
+ #
10
+ # Output:
11
+ # <video width='720' height='480' preload='none' controls poster='http://site.com/poster-frame.jpg'>
12
+ # <source src='http://site.com/video.mp4' type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'/>
13
+ # </video>
14
+ #
15
+
16
+ module Jekyll
17
+
18
+ class VideoTag < Liquid::Tag
19
+ @video = nil
20
+ @poster = ''
21
+ @height = ''
22
+ @width = ''
23
+
24
+ def initialize(tag_name, markup, tokens)
25
+ @videos = markup.scan(/((https?:\/\/|\/)\S+\.(webm|ogv|mp4)\S*)/i).map(&:first).compact
26
+ @poster = markup.scan(/((https?:\/\/|\/)\S+\.(png|gif|jpe?g)\S*)/i).map(&:first).compact.first
27
+ @sizes = markup.scan(/\s(\d\S+)/i).map(&:first).compact
28
+ super
29
+ end
30
+
31
+ def render(context)
32
+ output = super
33
+ types = {
34
+ '.mp4' => "type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'",
35
+ '.ogv' => "type='video/ogg; codecs=theora, vorbis'",
36
+ '.webm' => "type='video/webm; codecs=vp8, vorbis'"
37
+ }
38
+ if @videos.size > 0
39
+ video = "<video #{sizes} preload='metadata' controls #{poster}>"
40
+ @videos.each do |v|
41
+ video << "<source src='#{v}' #{types[File.extname(v)]}>"
42
+ end
43
+ video += "</video>"
44
+ else
45
+ "Error processing input, expected syntax: {% video url/to/video [url/to/video] [url/to/video] [width height] [url/to/poster] %}"
46
+ end
47
+ end
48
+
49
+ def poster
50
+ "poster='#{@poster}'" if @poster
51
+ end
52
+
53
+ def sizes
54
+ attrs = "width='#{@sizes[0]}'" if @sizes[0]
55
+ attrs += " height='#{@sizes[1]}'" if @sizes[1]
56
+ attrs
57
+ end
58
+ end
59
+ end
60
+
61
+ Liquid::Template.register_tag('video', Jekyll::VideoTag)
62
+
@@ -0,0 +1,23 @@
1
+
2
+ class VimeoEmbed < Liquid::Tag
3
+
4
+ def initialize(tagName, content, tokens)
5
+ super
6
+ @content = content
7
+ content[/([0-9]+)/]
8
+ @vimeo_id = $1
9
+ end
10
+
11
+ def render(context)
12
+ tmpl_path = File.join Dir.pwd, "_includes", "vimeo.html"
13
+ if File.exist?(tmpl_path)
14
+ tmpl = File.read tmpl_path
15
+ site = context.registers[:site]
16
+ tmpl = (Liquid::Template.parse tmpl).render site.site_payload.merge!({"vimeo_id" => @vimeo_id})
17
+ else
18
+ %Q{<style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style><div class='embed-container'> <iframe title="vimeo video player" width="640" height="390" src="//www.vimeo.com/embed/#{ @vimeo_id }" frameborder="0" allowfullscreen></iframe></div>}
19
+ end
20
+ end
21
+
22
+ Liquid::Template.register_tag "vimeo", self
23
+ end
@@ -0,0 +1,81 @@
1
+ # Jekyll Module to create yearly archive pages
2
+ #
3
+ # Shigeya Suzuki, November 2013
4
+ # Copyright notice (MIT License) attached at the end of this file
5
+ #
6
+
7
+ #
8
+ # This code is based on the following works:
9
+ # https://gist.github.com/ilkka/707909
10
+ # https://gist.github.com/ilkka/707020
11
+ # https://gist.github.com/nlindley/6409459
12
+ #
13
+
14
+ #
15
+ # Archive will be written as #{archive_path}/#{year}/#{month}/index.html
16
+ # archive_path can be configured in 'path' key in 'yearly_archive' of
17
+ # site configuration file. 'path' is default null.
18
+ #
19
+
20
+ module Jekyll
21
+
22
+ module YearlyArchiveUtil
23
+ def self.archive_base(site)
24
+ site.config['yearly_archive'] && site.config['yearly_archive']['path'] || ''
25
+ end
26
+ end
27
+
28
+ # Generator class invoked from Jekyll
29
+ class YearlyArchiveGenerator < Generator
30
+ def generate(site)
31
+ posts_by_year = posts_group_by_year(site)
32
+ site.pages << ArchivePage.new(site, YearlyArchiveUtil.archive_base(site), posts_by_year)
33
+ end
34
+
35
+ def posts_group_by_year(site)
36
+ site.posts.docs.each.group_by { |post| post.date.year }
37
+ end
38
+
39
+ end
40
+
41
+ class ArchivePage < Page
42
+ def initialize(site, dir, posts_by_year)
43
+ @site = site
44
+ @dir = dir
45
+ @years = posts_by_year
46
+ @layout = 'archive'
47
+ self.ext = '.html'
48
+ self.basename = 'archive'
49
+ self.data = {
50
+ 'layout' => @layout,
51
+ 'type' => 'archive',
52
+ 'title' => 'Archieven',
53
+ 'site_header' => 'Archieven',
54
+ 'years' => @years,
55
+ 'url' => File.join('/', YearlyArchiveUtil.archive_base(site), 'archives.html')
56
+ }
57
+ end
58
+ end
59
+ end
60
+
61
+ # The MIT License (MIT)
62
+ #
63
+ # Copyright (c) 2013 Shigeya Suzuki
64
+ #
65
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
66
+ # of this software and associated documentation files (the "Software"), to deal
67
+ # in the Software without restriction, including without limitation the rights
68
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
69
+ # copies of the Software, and to permit persons to whom the Software is
70
+ # furnished to do so, subject to the following conditions:
71
+ #
72
+ # The above copyright notice and this permission notice shall be included in all
73
+ # copies or substantial portions of the Software.
74
+ #
75
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
76
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
77
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
78
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
79
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
80
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
81
+ # SOFTWARE.
@@ -126,7 +126,7 @@ a {
126
126
  color: $brand-color;
127
127
 
128
128
  &:visited {
129
- color: darken($brand-color, 15%);
129
+ color: adjust-hue($brand-color, +120deg);
130
130
  }
131
131
 
132
132
  &:hover {
@@ -1,26 +1,72 @@
1
-
2
1
  @media (prefers-color-scheme: dark) {
3
2
  body {
4
3
  color: $text-color-dark;
5
4
  }
6
5
 
6
+ .post-meta ul li {
7
+ .meta-text {
8
+ color: $grey-color-dark;
9
+ }
10
+
11
+ .meta-icon svg {
12
+ fill: $grey-color-dark;
13
+ }
14
+ }
15
+
7
16
  body,
8
17
  .page-content,
9
18
  .post-content,
19
+ {
20
+ background-color: $background-color-dark;
21
+ }
22
+
23
+ body > header,
24
+ body > footer,
25
+ article div.series-header,
26
+ article div.series-footer,
10
27
  .pagination,
28
+ .post-list > li,
11
29
  .site-nav,
12
30
  .section-nav,
13
31
  .post-nav,
14
- .post-list li
15
- {
16
- background-color: $background-color-dark;
32
+ .post-content tbody tr:nth-child(odd) {
33
+ background-color: lighten($background-color-dark, 5%);
34
+ }
35
+
36
+ .post-content {
37
+ td, th {
38
+ border-bottom-color: $brand-color-dark;
39
+ }
40
+
41
+ q {
42
+ background-color: lighten($background-color-dark, 10);
43
+ }
44
+ }
45
+
46
+ .pagination,
47
+ .post-nav,
48
+ .section-nav {
49
+ .button {
50
+ border-color: $grey-color-dark;
51
+
52
+ &.disabled {
53
+ color: $grey-color-dark;
54
+ }
55
+ }
56
+ }
57
+
58
+ .highlight,
59
+ pre,
60
+ code {
61
+ background-color: lighten($background-color-dark, 10%);
62
+ border-color: $grey-color-dark;
17
63
  }
18
64
 
19
65
  a {
20
66
  color: $brand-color-dark;
21
67
 
22
68
  &:visited {
23
- color: lighten($brand-color-dark, 15%);
69
+ color: adjust-hue($brand-color-dark, -120deg);
24
70
  }
25
71
 
26
72
  &:hover {
@@ -4,6 +4,7 @@
4
4
  .site-header {
5
5
  border-top: 5px solid $grey-color-dark;
6
6
  min-height: 56px;
7
+ z-index: 100;
7
8
 
8
9
  // Positioning context for the mobile navigation icon
9
10
  position: relative;
@@ -101,6 +102,10 @@
101
102
  margin-left: 0;
102
103
  }
103
104
 
105
+ .footer-wide {
106
+ text-align: center;
107
+ }
108
+
104
109
  .footer-col-wrapper {
105
110
  font-size: 15px;
106
111
  color: $grey-color;
@@ -189,6 +194,33 @@
189
194
  .post-meta {
190
195
  font-size: $small-font-size;
191
196
  color: $grey-color;
197
+
198
+ ul {
199
+ display: flex;
200
+ flex-wrap: wrap;
201
+ list-style: none;
202
+ margin: 0;
203
+
204
+ li {
205
+ display: flex;
206
+ flex-shrink: 0;
207
+ flex-wrap: nowrap;
208
+ align-items: center;
209
+
210
+ .meta-icon {
211
+ line-height: 0.8;
212
+
213
+ svg {
214
+ fill: $grey-color;
215
+ height: 24px;
216
+ }
217
+ }
218
+
219
+ .meta-text {
220
+ margin: 4px;
221
+ }
222
+ }
223
+ }
192
224
  }
193
225
 
194
226
  .post-link {
@@ -240,6 +272,20 @@
240
272
  }
241
273
  }
242
274
 
275
+ q {
276
+ font-style: italic;
277
+ background-color: darken($background-color, 10);
278
+ quotes: "«" "»" "‹" "›";
279
+
280
+ &:before {
281
+ content: open-quote;
282
+ }
283
+
284
+ &:after {
285
+ content: close-quote;
286
+ }
287
+ }
288
+
243
289
  table {
244
290
  width: 100%;
245
291
  border-collapse: collapse;
@@ -252,18 +298,60 @@
252
298
  border-bottom: thin solid $brand-color;
253
299
  }
254
300
 
255
- tbody tr:nth-child(odd) {background-color: #f2f2f2;}
301
+ tbody tr:nth-child(odd) {
302
+ background-color: darken($background-color, 5%);
303
+ }
256
304
  }
257
305
 
258
306
  .pagination,
259
307
  .post-nav,
260
308
  .section-nav {
261
- text-align: center;
262
- background-color: white;
263
- padding: $spacing-unit;
264
- margin: $spacing-unit 0;
309
+ display: flex;
310
+ justify-content: space-between;
311
+ text-align: center;
312
+ background-color: white;
313
+ padding: $spacing-unit;
314
+ margin: $spacing-unit 0;
315
+ border-radius: 4px;
316
+ @include BoxShadow(1);
317
+
318
+ .button {
319
+ display: flex;
320
+ align-items: center;
321
+
322
+ min-width: 64px;
323
+ height: 36px;
324
+ padding: 0 16px 0 12px;
325
+
326
+ font-size: 14px;
327
+ font-weight: bold;
328
+
329
+ text-decoration: none;
330
+ text-transform: uppercase;
331
+
265
332
  border-radius: 4px;
266
- @include BoxShadow(1);
333
+ border: thin solid $grey-color-light;
334
+
335
+ &.disabled {
336
+ color: $grey-color-light;
337
+ }
338
+
339
+ &.previous {
340
+ padding: 0 16px 0 12px;
341
+
342
+ .material-icons {
343
+ padding-right: 8px;
344
+ }
345
+ }
346
+
347
+ &.next {
348
+ padding: 0 12px 0 16px;
349
+
350
+ .material-icons {
351
+ padding-left: 8px;
352
+ }
353
+ }
354
+ }
267
355
  }
268
356
 
269
357
  .post-nav + h3 {
@@ -287,13 +375,8 @@ span.button,
287
375
  padding: 5pt 15pt;
288
376
  }
289
377
 
290
- div.post-nav .button,
291
- div.pagination span.button,
292
- div.pagination a.button {
293
- margin: 0 5%;
294
- }
295
-
296
378
  a.button:hover,
379
+ .pagination a:hover,
297
380
  .post-nav a:hover,
298
381
  .section-nav a:hover {
299
382
  background: lightgray;
@@ -343,14 +426,16 @@ article div.comment
343
426
  article div.series-header,
344
427
  article div.series-footer
345
428
  {
346
- border: thin dotted lightgrey;
347
- padding: 1em;
348
- margin: 1em 0;
349
- clear: both;
350
-
351
- :last-child {
352
- margin-bottom: 0;
353
- }
429
+ background-color: white;
430
+ padding: $spacing-unit;
431
+ margin: $spacing-unit 0;
432
+ border-radius: 4px;
433
+ @include BoxShadow(1);
434
+ clear: both;
435
+
436
+ :last-child {
437
+ margin-bottom: 0;
438
+ }
354
439
  }
355
440
 
356
441
  .yearly-archive dl h2 {
@@ -387,3 +472,55 @@ article div.series-footer
387
472
  grid-template-columns: 12em 1fr;
388
473
  margin-bottom: 1em;
389
474
  }
475
+
476
+ .page-content .post {
477
+ .lead-image {
478
+ position: relative;
479
+ top: -1.5em;
480
+ display: flex;
481
+ flex-direction: column;
482
+ background-size: cover;
483
+ background-position: 50%;
484
+ background-color: #707070;
485
+ background-blend-mode: color-dodge;
486
+ box-shadow: inset 0 -8px 10px 1px rgba(0, 0, 0, .14),
487
+ inset 0 -3px 14px 2px rgba(0, 0, 0, .12),
488
+ inset 0 -5px 5px -3px rgba(0, 0, 0, .20);
489
+
490
+ header {
491
+ text-align: center;
492
+ align-self: center;
493
+ padding-top: 100px;
494
+ padding-bottom: 60px;
495
+ color: black;
496
+ max-width: 90vw;
497
+ display: flex;
498
+ flex-direction: column;
499
+ justify-content: space-around;
500
+ gap: 4px;
501
+
502
+ .post-title {
503
+ font-size: 7vw;
504
+ margin-bottom: 0;
505
+ }
506
+
507
+ ul {
508
+ justify-content: center;
509
+ gap: 16px;
510
+
511
+ li {
512
+ background-color: rgba(255, 255, 255, 0.9);
513
+ border-radius: 4px;
514
+ padding: 4px;
515
+ align-items: center;
516
+ }
517
+ }
518
+ }
519
+ }
520
+
521
+ .lead-image-credit {
522
+ text-align: center;
523
+ font-style: italic;
524
+ color: $grey-color;
525
+ }
526
+ }
@@ -2,7 +2,6 @@
2
2
  * Syntax highlighting styles
3
3
  */
4
4
  .highlight {
5
- background: #fff;
6
5
  @extend %vertical-rhythm;
7
6
 
8
7
  .c { color: #998; font-style: italic } // Comment