hexo-theme-stellar 1.5.2 → 1.7.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.
Files changed (56) hide show
  1. package/_config.yml +67 -39
  2. package/languages/en.yml +0 -1
  3. package/languages/zh-CN.yml +0 -1
  4. package/languages/zh-TW.yml +0 -1
  5. package/layout/404.ejs +1 -1
  6. package/layout/_partial/cover/index.ejs +12 -0
  7. package/layout/_partial/cover/post_cover.ejs +19 -0
  8. package/layout/_partial/{main/article → cover}/wiki_cover.ejs +1 -4
  9. package/layout/_partial/head.ejs +10 -0
  10. package/layout/_partial/main/article/read_next.ejs +0 -6
  11. package/layout/_partial/main/post_list/post_card.ejs +42 -4
  12. package/layout/_partial/main/post_list/wiki_card.ejs +2 -0
  13. package/layout/_partial/scripts/index.ejs +6 -0
  14. package/layout/_partial/sidebar/index.ejs +11 -6
  15. package/layout/_partial/sidebar/widgets/markdown.ejs +18 -10
  16. package/layout/_partial/sidebar/widgets/recent.ejs +5 -13
  17. package/layout/_partial/sidebar/widgets/toc.ejs +2 -1
  18. package/layout/archive.ejs +3 -3
  19. package/layout/categories.ejs +1 -1
  20. package/layout/index.ejs +5 -2
  21. package/layout/layout.ejs +1 -1
  22. package/layout/post.ejs +6 -2
  23. package/layout/tags.ejs +1 -1
  24. package/package.json +1 -1
  25. package/scripts/events/index.js +5 -7
  26. package/scripts/tags/friends.js +3 -0
  27. package/scripts/tags/image.js +21 -1
  28. package/scripts/tags/link.js +42 -16
  29. package/scripts/tags/poetry.js +48 -0
  30. package/scripts/tags/quot.js +51 -0
  31. package/source/css/_common/device.styl +1 -1
  32. package/source/css/_common/highlight.styl +2 -1
  33. package/source/css/_common/title.styl +3 -1
  34. package/source/css/_custom.styl +5 -4
  35. package/source/css/_layout/layout.styl +1 -1
  36. package/source/css/_layout/list.styl +70 -36
  37. package/source/css/_layout/main.styl +2 -2
  38. package/source/css/_layout/md.styl +36 -8
  39. package/source/css/_layout/pages/archives.styl +48 -16
  40. package/source/css/_layout/partial/cover.styl +50 -10
  41. package/source/css/_layout/partial/navbar.styl +3 -4
  42. package/source/css/_layout/partial/related.styl +1 -3
  43. package/source/css/_layout/sidebar/sidebar.styl +22 -5
  44. package/source/css/_layout/tag-plugins/about.styl +4 -5
  45. package/source/css/_layout/tag-plugins/folding.styl +1 -0
  46. package/source/css/_layout/tag-plugins/friends.styl +2 -1
  47. package/source/css/_layout/tag-plugins/image.styl +1 -2
  48. package/source/css/_layout/tag-plugins/link.styl +47 -9
  49. package/source/css/_layout/tag-plugins/poetry.styl +50 -0
  50. package/source/css/_layout/tag-plugins/quot.styl +82 -0
  51. package/source/css/_layout/tag-plugins/sites.styl +2 -2
  52. package/source/css/_layout/tag-plugins/tabs.styl +2 -2
  53. package/source/css/_layout/tag-plugins/timeline.styl +1 -1
  54. package/source/css/_plugins/fancybox.styl +5 -0
  55. package/source/css/_plugins/index.styl +2 -0
  56. package/source/js/main.js +46 -13
@@ -58,6 +58,9 @@ hexo.extend.tag.register('friends', function(args) {
58
58
  }
59
59
  if (groupId in friends) {
60
60
  let group = friends[groupId];
61
+ if ((typeof group == 'object') && group.constructor == Array) {
62
+ group = {items: group};
63
+ }
61
64
  if (group.title || group.description) {
62
65
  el += groupHeader(group);
63
66
  }
@@ -8,7 +8,7 @@
8
8
  'use strict';
9
9
 
10
10
  hexo.extend.tag.register('image', function(args) {
11
- args = hexo.args.map(args, ['width', 'height', 'bg', 'download', 'padding'], ['src', 'alt']);
11
+ args = hexo.args.map(args, ['width', 'height', 'bg', 'download', 'padding', 'fancybox'], ['src', 'alt']);
12
12
  var style = '';
13
13
  if (args.width) {
14
14
  style += 'width:' + args.width + ';';
@@ -16,12 +16,32 @@ hexo.extend.tag.register('image', function(args) {
16
16
  if (args.height) {
17
17
  style += 'height:' + args.height + ';';
18
18
  }
19
+ // fancybox
20
+ var fancybox = false;
21
+ if (hexo.theme.config.plugins.fancybox && hexo.theme.config.plugins.fancybox.enable) {
22
+ // 主题配置
23
+ if (hexo.theme.config.tag_plugins.image && hexo.theme.config.tag_plugins.image.fancybox) {
24
+ fancybox = hexo.theme.config.tag_plugins.image.fancybox;
25
+ }
26
+ // 覆盖配置
27
+ if (args.fancybox && args.fancybox.length > 0) {
28
+ if (args.fancybox == 'true') {
29
+ fancybox = true;
30
+ } else if (args.fancybox == 'false') {
31
+ fancybox = false;
32
+ }
33
+ }
34
+ }
35
+
19
36
  function img(src, alt, style) {
20
37
  let img = '';
21
38
  img += '<img src="' + src + '"';
22
39
  if (alt) {
23
40
  img += ' alt="' + alt + '"';
24
41
  }
42
+ if (fancybox) {
43
+ img += ' fancybox="true"';
44
+ }
25
45
  if (style.length > 0) {
26
46
  img += ' style="' + style + '"';
27
47
  }
@@ -1,36 +1,62 @@
1
1
  /**
2
- * link.js v1 | https://github.com/xaoxuu/hexo-theme-stellar/
2
+ * link.js v1.1 | https://github.com/xaoxuu/hexo-theme-stellar/
3
3
  * 格式与官方标签插件一致使用空格分隔,中括号内的是可选参数(中括号不需要写出来)
4
4
  *
5
- * {% link url title [description] [img:src] %}
5
+ * {% link url title [description] [icon:src] %}
6
6
  */
7
7
 
8
8
  'use strict';
9
9
 
10
+ var util = require('hexo-util');
11
+ const full_url_for = require('hexo-util').full_url_for.bind(hexo);
12
+
10
13
  hexo.extend.tag.register('link', function(args) {
11
- args = hexo.args.map(args, ['img'], ['url', 'title', 'description']);
14
+ args = hexo.args.map(args, ['icon'], ['url', 'title', 'description']);
12
15
 
13
16
  var el = '';
14
17
  el += '<div class="tag-plugin link dis-select">';
15
- el += '<a class="link-card" title="' + args.title + '" href="' + args.url + '"';
18
+ el += '<a class="link-card' + (args.description ? ' rich' : ' plain') + '" title="' + args.title + '" href="' + args.url + '"';
16
19
  if (args.url.includes('://')) {
17
20
  el += ' target="_blank" rel="external nofollow noopener noreferrer"';
18
21
  }
19
22
  el += '>';
20
- // left
21
- el += '<div class="left">';
22
- el += '<span class="title fs14">' + args.title + '</span><span class="url fs12">' + (args.description || args.url) + '</span>';
23
- el += '</div>';
24
-
25
- // right
26
- el += '<div class="right">';
27
- if (hexo.theme.config.plugins.lazyload && hexo.theme.config.plugins.lazyload.enable) {
28
- el += '<div class="lazy img" data-bg="' + (args.img || hexo.theme.config.default.link) + '"></div>';
29
- } else {
30
- el += '<div class="lazy img" style="background-image:url(&quot;' + (args.img || hexo.theme.config.default.link) + '&quot;)"></div>';
23
+
24
+ function loadIcon() {
25
+ var el = '';
26
+ if (hexo.theme.config.plugins.lazyload && hexo.theme.config.plugins.lazyload.enable) {
27
+ el += '<div class="lazy img" data-bg="' + (args.icon || hexo.theme.config.default.link) + '"></div>';
28
+ } else {
29
+ el += '<div class="lazy img" style="background-image:url(&quot;' + (args.icon || hexo.theme.config.default.link) + '&quot;)"></div>';
30
+ }
31
+ return el;
32
+ }
33
+ function loadTitle() {
34
+ return '<span class="title">' + args.title + '</span>';
35
+ }
36
+ function loadDesc() {
37
+ return '<span class="desc fs12">' + (args.description || full_url_for(args.url)) + '</span>';
31
38
  }
32
39
 
33
- el += '</div>';
40
+ if (args.description) {
41
+ // top
42
+ el += '<div class="top">';
43
+ el += loadIcon();
44
+ el += '<span class="desc fs12">' + full_url_for(args.url) + '</span>';
45
+ el += '</div>';
46
+ // bottom
47
+ el += '<div class="bottom">';
48
+ el += loadTitle() + loadDesc();
49
+ el += '</div>';
50
+ } else {
51
+ // left
52
+ el += '<div class="left">';
53
+ el += loadTitle() + loadDesc();
54
+ el += '</div>';
55
+ // right
56
+ el += '<div class="right">';
57
+ el += loadIcon();
58
+ el += '</div>';
59
+ }
34
60
 
35
61
  // end
36
62
  el += '</a></div>';
@@ -0,0 +1,48 @@
1
+ /**
2
+ * poetry.js v1.1 | https://github.com/xaoxuu/hexo-theme-stellar/
3
+ * 格式与官方标签插件一致使用空格分隔,中括号内的是可选参数(中括号不需要写出来)
4
+ *
5
+ * poetry:
6
+ * {% poetry [align:center] [title] [author:作者] [date:日期] [footer:footer] %}
7
+ * body
8
+ * {% endpoetry %}
9
+ *
10
+ */
11
+
12
+ 'use strict';
13
+
14
+ hexo.extend.tag.register('poetry', function(args, content) {
15
+ var el = '';
16
+ args = hexo.args.map(args, ['author', 'date', 'align', 'footer'], ['title']);
17
+
18
+ el += '<div class="tag-plugin poetry"';
19
+ if (args.align) {
20
+ el += ' align="' + args.align + '"';
21
+ }
22
+ el += '>';
23
+ if (args.title) {
24
+ el += '<div class="title">';
25
+ el += args.title;
26
+ el += '</div>';
27
+ }
28
+ if (args.author || args.date) {
29
+ el += '<div class="meta">';
30
+ if (args.author) {
31
+ el += '<span>' + args.author + '</span>';
32
+ }
33
+ if (args.date) {
34
+ el += '<span>' + args.date + '</span>';
35
+ }
36
+ el += '</div>';
37
+ }
38
+ el += '<div class="body">';
39
+ el += hexo.render.renderSync({text: content, engine: 'markdown'}).split('\n').join('');
40
+ el += '</div>';
41
+ if (args.footer) {
42
+ el += '<div class="footer">';
43
+ el += args.footer;
44
+ el += '</div>';
45
+ }
46
+ el += '</div>';
47
+ return el;
48
+ }, {ends: true});
@@ -0,0 +1,51 @@
1
+ /**
2
+ * quot.js v1.1 | https://github.com/xaoxuu/hexo-theme-stellar/
3
+ * 格式与官方标签插件一致使用空格分隔,中括号内的是可选参数(中括号不需要写出来)
4
+ *
5
+ * quot:
6
+ * {% quot [el:h1] [icon:default] text %}
7
+ *
8
+ */
9
+
10
+ 'use strict';
11
+
12
+ hexo.extend.tag.register('quot', function(args) {
13
+ var el = '';
14
+ args = hexo.args.map(args, ['el', 'icon'], ['text']);
15
+ if (!args.el) {
16
+ args.el = 'p';
17
+ }
18
+
19
+ var type = '';
20
+ if (args.icon && args.icon != 'square' && args.icon != 'quotes') {
21
+ type = ' type="icon"';
22
+ } else {
23
+ type = ' type="text"';
24
+ }
25
+ function content() {
26
+ if (!args.icon) {
27
+ return args.text;
28
+ }
29
+ var el = '';
30
+ const cfg = hexo.theme.config.tag_plugins.quot[args.icon];
31
+ if (cfg && cfg.prefix) {
32
+ el += '<img class="icon prefix" src="' + cfg.prefix + '" />';
33
+ }
34
+ el += args.text;
35
+ if (cfg && cfg.suffix) {
36
+ el += '<img class="icon suffix" src="' + cfg.suffix + '" />';
37
+ }
38
+ return el;
39
+ }
40
+ if (args.el.includes('h')) {
41
+ el += '<' + args.el + ' class="tag-plugin quot"' + type + ' id="' + args.text + '">';
42
+ el += '<a href="#' + args.text + '" class="headerlink" title="' + args.text + '"></a>';
43
+ el += content();
44
+ el += '</' + args.el + '>';
45
+ } else {
46
+ el += '<' + args.el + ' class="tag-plugin quot"' + type + '>';
47
+ el += content();
48
+ el += '</' + args.el + '>';
49
+ }
50
+ return el;
51
+ });
@@ -12,7 +12,7 @@
12
12
  right: 0
13
13
  bottom: 2rem
14
14
  float: right
15
- z-index: 9
15
+ z-index: 10
16
16
  display: flex
17
17
  border-radius: $border-block 0 0 $border-block
18
18
  padding-right: 1rem
@@ -10,7 +10,7 @@ code
10
10
  border-radius: 4px
11
11
 
12
12
  article.md .highlight
13
- margin: 1rem 0
13
+ margin: var(--gap-p) 0
14
14
  border-radius: $border-block
15
15
  overflow: hidden
16
16
  background: var(--block)
@@ -88,6 +88,7 @@ article.md .highlight
88
88
  padding: 4px 0.5rem
89
89
  opacity: .25
90
90
  font-weight: 700
91
+ color: var(--theme)
91
92
 
92
93
  &.yaml .code:before
93
94
  content: "YAML"
@@ -1,6 +1,8 @@
1
1
  h1,.h1
2
2
  font-size: $fs-h1
3
- font-weight: 500
3
+ font-weight: 700
4
+ @media screen and (max-width: $device-mobile)
5
+ font-size: $fs-h1
4
6
  h2,.h2
5
7
  font-size: $fs-h2
6
8
  h3,.h3
@@ -5,6 +5,7 @@ $color-theme = #1BCDFC
5
5
  $color-link = #2196f3
6
6
  $color-button = #1BCDFC
7
7
  $color-hover = #ff5722
8
+ $color-highlight = #ff5722
8
9
  $color-inner = #fff
9
10
  $color-cat = #FF7844
10
11
  $color-cat-hover = darken($color-cat, 20)
@@ -47,7 +48,7 @@ $fs-14 = .875rem
47
48
  $fs-13 = .8125rem
48
49
  $fs-12 = .75rem
49
50
 
50
- $fs-h1 = 2rem // 32px
51
+ $fs-h1 = 1.75rem // 32px
51
52
  $fs-h2 = 1.5rem // 24px
52
53
  $fs-h3 = 1.375rem // 22px
53
54
  $fs-h4 = 1.125rem // 18px
@@ -63,14 +64,14 @@ $border-image = 6px
63
64
  // 可以动态变化的属性
64
65
  :root
65
66
  --width-left: 256px
66
- --width-main: 680px
67
+ --width-main: 720px
67
68
  --gap-l: 16px
68
- --gap-p: 1.25rem // gap for paragraph
69
+ --gap-p: .75rem // gap for paragraph
69
70
  // desktop 2k or larger
70
71
  @media screen and (min-width: $device-2k)
71
72
  --gap-l: 32px
72
73
  --width-left: 320px
73
- --width-main: 740px
74
+ --width-main: 780px
74
75
  // desktop 4k or larger
75
76
  @media screen and (min-width: $device-4k)
76
77
  --width-main: 860px
@@ -32,7 +32,7 @@
32
32
  left: 0
33
33
  background: var(--site-bg)
34
34
  box-shadow: $boxshadow-card-float
35
- z-index: 10
35
+ z-index: 9
36
36
  .l_main
37
37
  max-width: 100%
38
38
  .l_body.mobile
@@ -11,15 +11,18 @@
11
11
  trans1 box-shadow
12
12
  overflow: hidden
13
13
  background: var(--card)
14
+ position: relative
14
15
  .excerpt
15
16
  margin: 1rem 0
16
17
  >p
17
18
  margin: 1rem 0
19
+ line-height: 1.5
18
20
  .meta.cap
19
21
  display: flex
20
22
  flex-wrap: wrap
21
23
  align-items: center
22
24
  margin: .5rem 0
25
+ line-height: 1.5
23
26
  span+span
24
27
  margin-left: 0.5rem
25
28
  span.pin
@@ -28,49 +31,76 @@
28
31
  object-fit: contain
29
32
  height: 1.5em
30
33
  .post-list .post-card:hover
31
- box-shadow: 0 1px 4px 0px rgba(0, 0, 0, 0.08), 0 2px 8px 0px rgba(0, 0, 0, 0.06), 0 4px 16px 0px rgba(0, 0, 0, 0.04)
34
+ box-shadow: 0 1px 4px 0px rgba(0, 0, 0, 0.1), 0 4px 16px 0px rgba(0, 0, 0, 0.1)
32
35
 
33
36
 
34
37
  // common article
35
- .post-list article
38
+ .post-list article.md
36
39
  padding: 1rem
40
+ p
41
+ color: var(--text-p2)
42
+ @media screen and (min-width: $device-mobile)
43
+ font-size: $fs-14
44
+
37
45
 
38
46
  // posts
39
- .post-list .post-card
40
- .post-cover
41
- overflow: hidden
42
- margin-left: -1rem
43
- margin-top: -1rem
44
- margin-right: -1rem
47
+ .post-list .post-card .post-cover
48
+ overflow: hidden
49
+ width: 'calc(100% + 2 * %s)' % 1rem
50
+ border-radius: 0
51
+ margin-left: -1rem
52
+ margin-top: -1rem
53
+ margin-right: -1rem
54
+ &:not(.lazy)
55
+ trans1: transform 1s
56
+ img
57
+ object-fit: cover
58
+ width: 100%
59
+ border-radius: 0
60
+ height: 280px
61
+ @media screen and (max-width: 900px)
62
+ height: 240px
63
+ @media screen and (max-width: $device-tablet)
64
+ height: 280px
65
+ @media screen and (max-width: $device-mobile)
66
+ height: 240px
67
+ @media screen and (max-width: $device-mobile-425)
68
+ height: 220px
69
+ @media screen and (max-width: $device-mobile-375)
70
+ height: 180px
71
+
72
+ .post-list .post-card.post.photo
73
+ .cover
74
+ position: relative
75
+ line-height: 0
45
76
  img
46
- object-fit: cover
47
77
  width: 100%
48
- border-radius: 0
49
- height: 280px
50
- @media screen and (max-width: 900px)
51
- height: 240px
52
- @media screen and (max-width: $device-tablet)
53
- height: 280px
54
- @media screen and (max-width: $device-mobile)
55
- height: 240px
56
- @media screen and (max-width: $device-mobile-425)
57
- height: 220px
58
- @media screen and (max-width: $device-mobile-375)
59
- height: 180px
60
- &:not(.lazy)
61
- trans1: transform 1s
62
- .post-list .post-card.post.photo .post-cover img
63
- height: 400px
64
- @media screen and (max-width: 900px)
65
- height: 320px
66
- @media screen and (max-width: $device-tablet)
67
- height: 400px
68
- @media screen and (max-width: $device-mobile)
69
- height: 320px
70
- @media screen and (max-width: $device-mobile-425)
71
- height: 280px
72
- @media screen and (max-width: $device-mobile-375)
73
- height: 240px
78
+ .cover-info
79
+ padding: 1rem
80
+ position: absolute
81
+ line-height: 1.2
82
+ width: 'calc(100% - %s * 2)' % 1rem
83
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2)
84
+ color: white
85
+ &[position=top]
86
+ top: 0
87
+ background-image: linear-gradient(rgba(0,0,0,0.4),rgba(0,0,0,0.3),rgba(0,0,0,0))
88
+ &[position=bottom]
89
+ bottom: 0
90
+ background-image: linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.3),rgba(0,0,0,0.4))
91
+ div+div
92
+ margin-top: 8px
93
+ @media screen and (max-width: $device-mobile)
94
+ margin-top: 4px
95
+ .cap
96
+ color: white
97
+ font-size: $fs-13
98
+ .title
99
+ font-weight: 500
100
+ font-size: $fs-h3
101
+ h2
102
+ margin: .25rem 0
103
+ font-size: $fs-h4
74
104
 
75
105
 
76
106
  // wiki
@@ -86,6 +116,8 @@
86
116
  display: flex
87
117
  width: 200px
88
118
  margin: 1rem .5rem
119
+ @media screen and (min-width: 950px)
120
+ margin: 1rem
89
121
  align-items: center
90
122
  img
91
123
  object-fit: contain
@@ -93,7 +125,9 @@
93
125
  trans1: transform 0.75s
94
126
  .post-list .post-card.wiki article .excerpt
95
127
  margin: 1rem .5rem
96
- min-width: 220px
128
+ @media screen and (min-width: 950px)
129
+ margin-right: 2rem
130
+ min-width: 280px
97
131
  flex: 1
98
132
  overflow: hidden
99
133
  word-wrap: break-word
@@ -1,9 +1,9 @@
1
1
  .l_main
2
2
  position: relative
3
3
  padding-bottom: "calc(1 * %s)" % var(--gap-l)
4
- @media screen and (min-width: 1200px)
4
+ @media screen and (min-width: 1280px)
5
5
  margin-left: "calc(2 * %s)" % var(--gap-l)
6
- margin-right: "calc(0.75 * %s)" % var(--width-left)
6
+ margin-right: "calc(2 * %s + %s)" % (var(--gap-l) var(--width-left))
7
7
  @media screen and (min-width: $device-tablet)
8
8
  padding-top: "calc(2 * %s)" % var(--gap-l)
9
9
  header
@@ -10,26 +10,44 @@ article.md.excerpt
10
10
  font-size: $fs-14
11
11
  margin: 1em 0
12
12
 
13
+ h1.article-title
14
+ margin-top: .5em
15
+ margin-bottom: 1em
16
+ line-height: 1.2
17
+ color: var(--text-p0)
18
+
13
19
  article.md.content
14
20
  position: relative
15
21
  margin-bottom: 2rem
22
+ display: flex
23
+ flex-direction: column
24
+ &.indent
25
+ >p:not([class])
26
+ text-indent: 'calc(%s * 2)' % $fs-p
27
+ text-align: justify
28
+ h1,h2,h3,h4,h5,h6
29
+ text-align: center
30
+ >h2:not([class])
31
+ align-self: center
32
+ border-bottom-style: dashed
33
+ border-bottom-color: $color-highlight
16
34
  >:first-child
17
- margin-top: 0
18
- h1.article-title
19
- margin-top: 0.5rem
20
- line-height: 1.2
21
- color: var(--text-p0)
35
+ margin-top: 1rem
36
+ h1:not(:first-child)
37
+ margin-top: 2em
22
38
  h2:first-child
23
39
  margin-top: 0
24
40
  h2,h3,h4,h5,h6
25
41
  color: var(--text-p0)
26
42
  padding-top: 1rem
27
- margin-bottom: 1em
43
+ margin-bottom: .5rem
28
44
  line-height: 1.8
29
45
  &:hover
30
46
  a.headerlink:before
31
47
  opacity: 1
32
48
 
49
+
50
+
33
51
  .md
34
52
  ul:not(:last-child),
35
53
  ol:not(:last-child)
@@ -42,11 +60,17 @@ article.md.content
42
60
  p,blockquote,.tag-plugin,ul,ol,.highlight,table
43
61
  *
44
62
  --gap-p: .5rem
45
- p,.tag-plugin
63
+ p,>ul:not(:last-child),>ol:not(:last-child)
64
+ margin-top: 'calc(%s - 4px)' % var(--gap-p)
65
+ margin-bottom: 'calc(%s - 4px)' % var(--gap-p)
66
+ .tag-plugin,iframe
46
67
  margin-top: var(--gap-p)
47
68
  margin-bottom: var(--gap-p)
69
+ p,.tag-plugin
48
70
  .highlight,table
49
71
  --gap-p: 1rem
72
+ iframe
73
+ display: block
50
74
 
51
75
  // titles
52
76
  article.md.content
@@ -56,7 +80,7 @@ article.md.content
56
80
  position: absolute
57
81
  margin-left: -0.75em
58
82
  h2
59
- margin-top: 3rem
83
+ margin-top: 2rem
60
84
  border-bottom: 1px solid var(--block-border)
61
85
  font-weight: 400
62
86
  h3
@@ -90,6 +114,10 @@ article.md pre
90
114
  -webkit-font-smoothing: auto
91
115
  -moz-osx-font-smoothing: auto
92
116
 
117
+ article.md
118
+ .center
119
+ align-self: center
120
+
93
121
  // div
94
122
  article.md>div
95
123
  margin: var(--gap-p) 0
@@ -1,12 +1,24 @@
1
- .post-list .post-card#archive
2
- .archive-year
3
- color: $color-theme
4
- opacity: .4
1
+ .post-list #archive
2
+ padding: 1rem
3
+ .archive-header
4
+ display: inline-block
5
5
  font-family: $ff-code
6
6
  font-weight: 700
7
7
  line-height: 1.2
8
- padding-bottom: 0.5rem
9
- trans1 opacity
8
+ margin-bottom: .5em
9
+ position: relative
10
+ padding: 4px 0
11
+ color: var(--text-p3)
12
+ &:after
13
+ content: ""
14
+ position: absolute
15
+ height: 4px
16
+ bottom: 0
17
+ left: 0
18
+ right: 0
19
+ z-index: -1
20
+ border-radius: 4px
21
+ background: var(--block-border)
10
22
  a.post
11
23
  display: inline-flex
12
24
  align-items: baseline
@@ -19,44 +31,64 @@
19
31
  margin-right: 1em
20
32
  font-weight: 700
21
33
  flex-shrink: 0
22
- opacity .65
23
- &:hover .archive-year
24
- opacity: 1
34
+ opacity .5
35
+ &:hover
36
+ .archive-header
37
+ color: var(--text-p1)
38
+ &:after
39
+ background: $color-theme
40
+
25
41
 
26
- .post-list .post-card#cats
42
+
43
+ .post-list #cats
44
+ padding: 0
27
45
  a.cat
28
46
  display: flex
29
47
  &.child
30
48
  padding-left: 2rem
31
- padding: 0.5rem 1rem
49
+ padding: .5em 1rem
32
50
  border-radius: $border-block
33
51
  color: var(--text-p2)
34
52
  align-items: center
35
53
  justify-content: space-between
54
+ font-weight: 500
55
+ font-size: $fs-14
36
56
  .badge
37
- color: $color-theme
38
57
  font-weight: 700
39
58
  font-family: $ff-code
40
59
  opacity: .5
60
+ font-size: $fs-12
41
61
  &:hover
42
- background: var(--block)
62
+ background: var(--block-hover)
43
63
  color: var(--text-p0)
44
64
  .badge
45
65
  opacity: 1
66
+ color: $color-theme
46
67
 
47
- .post-list .post-card#tags
68
+ .post-list #tags
48
69
  display: flex
49
70
  flex-wrap: wrap
71
+ padding: 0
72
+ margin: 0 -4px
50
73
  a.tag
51
74
  display: inline-flex
52
75
  align-items: center
53
76
  position: relative
54
77
  color: var(--text-p2)
55
78
  margin: 4px
56
- padding: 4px 8px
79
+ padding: .5em .75rem
57
80
  border-radius: 4px
58
81
  background: var(--block)
59
- font-size: $fs-14
82
+ font-size: $fs-13
83
+ font-weight: 500
84
+ &:before
85
+ content: "#"
86
+ margin-left: -2px
87
+ margin-right: 2px
88
+ opacity: .4
60
89
  &:hover
90
+ &:before
91
+ color $color-theme
92
+ opacity: 1
61
93
  color: var(--text-p0)
62
94
  background: var(--block-hover)