hexo-theme-stellar 1.8.0 → 1.10.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 (70) hide show
  1. package/_config.yml +85 -22
  2. package/languages/en.yml +0 -5
  3. package/languages/zh-CN.yml +0 -5
  4. package/languages/zh-TW.yml +0 -5
  5. package/layout/404.ejs +1 -1
  6. package/layout/_partial/cover/post_cover.ejs +25 -3
  7. package/layout/_partial/head.ejs +11 -0
  8. package/layout/_partial/main/footer.ejs +6 -17
  9. package/layout/_partial/main/header/index.ejs +1 -1
  10. package/layout/_partial/plugins/comments/giscus/layout.ejs +39 -0
  11. package/layout/_partial/plugins/comments/giscus/script.ejs +26 -0
  12. package/layout/_partial/plugins/comments/layout.ejs +1 -1
  13. package/layout/_partial/plugins/comments/valine/script.ejs +1 -1
  14. package/layout/_partial/scripts/index.ejs +5 -3
  15. package/layout/_partial/sidebar/index.ejs +3 -1
  16. package/layout/_partial/sidebar/widgets/ghuser.ejs +59 -0
  17. package/layout/_partial/sidebar/widgets/repo_info.ejs +28 -9
  18. package/layout/mathjax.ejs +29 -0
  19. package/layout/page.ejs +1 -1
  20. package/layout/post.ejs +4 -1
  21. package/layout/wiki.ejs +1 -1
  22. package/package.json +1 -1
  23. package/scripts/tags/about.js +12 -13
  24. package/scripts/tags/friends.js +2 -3
  25. package/scripts/tags/ghcard.js +2 -2
  26. package/scripts/tags/index.js +3 -0
  27. package/scripts/tags/lib/users.js +22 -0
  28. package/scripts/tags/sites.js +2 -3
  29. package/scripts/tags/timeline.js +30 -25
  30. package/source/css/_common/base.styl +2 -0
  31. package/source/css/_common/button.styl +1 -1
  32. package/source/css/_common/cap.styl +1 -0
  33. package/source/css/_common/device.styl +2 -2
  34. package/source/css/_common/highlight.styl +18 -6
  35. package/source/css/_common/html.styl +2 -0
  36. package/source/css/_common/loading.styl +5 -0
  37. package/source/css/_common/pre.styl +6 -0
  38. package/source/css/_custom.styl +17 -1
  39. package/source/css/_defines/const.styl +1 -0
  40. package/source/css/_defines/theme.styl +1 -1
  41. package/source/css/_layout/layout.styl +2 -2
  42. package/source/css/_layout/main.styl +3 -3
  43. package/source/css/_layout/md.styl +39 -13
  44. package/source/css/_layout/partial/article-footer.styl +0 -2
  45. package/source/css/_layout/partial/footer.styl +4 -2
  46. package/source/css/_layout/partial/navbar.styl +1 -1
  47. package/source/css/_layout/partial/paginator.styl +4 -0
  48. package/source/css/_layout/partial/related.styl +3 -0
  49. package/source/css/_layout/sidebar/ghuser.styl +80 -0
  50. package/source/css/_layout/sidebar/repo_info.styl +4 -1
  51. package/source/css/_layout/sidebar/sidebar.styl +3 -4
  52. package/source/css/_layout/tag-plugins/about.styl +13 -16
  53. package/source/css/_layout/tag-plugins/common.styl +1 -1
  54. package/source/css/_layout/tag-plugins/folding.styl +2 -0
  55. package/source/css/_layout/tag-plugins/friends.styl +3 -6
  56. package/source/css/_layout/tag-plugins/inline-labels.styl +1 -0
  57. package/source/css/_layout/tag-plugins/link.styl +2 -1
  58. package/source/css/_layout/tag-plugins/note.styl +8 -0
  59. package/source/css/_layout/tag-plugins/sites.styl +2 -6
  60. package/source/css/_layout/tag-plugins/tabs.styl +5 -0
  61. package/source/css/_layout/tag-plugins/timeline.styl +85 -2
  62. package/source/css/_layout/tag-plugins/toc.styl +1 -1
  63. package/source/css/_plugins/comments/utterances.styl +3 -0
  64. package/source/css/_plugins/comments/waline.styl +61 -0
  65. package/source/css/_plugins/index.styl +2 -0
  66. package/source/js/main.js +13 -15
  67. package/source/js/plugins/friends.js +5 -5
  68. package/source/js/plugins/ghinfo.js +73 -0
  69. package/source/js/plugins/sites.js +1 -1
  70. package/source/js/plugins/timeline.js +122 -0
package/layout/post.ejs CHANGED
@@ -3,7 +3,7 @@ if (page.menu_id == undefined) {
3
3
  page.menu_id = 'post';
4
4
  }
5
5
  if (page.header == undefined) {
6
- page.header = false;
6
+ page.header = 'auto';
7
7
  }
8
8
  function layoutTitle() {
9
9
  const title = page.h1 || page.title;
@@ -19,6 +19,9 @@ if (theme.plugins.heti && theme.plugins.heti.enable) {
19
19
  heti = ' heti';
20
20
  }
21
21
  %>
22
+ <% if (page.mathjax == true){ %>
23
+ <%- partial('mathjax') %>
24
+ <% } %>
22
25
  <%- partial('_partial/main/navbar/breadcrumb') %>
23
26
  <article class='content<%- heti %> md <%- post.layout %><%- post.indent ? ' indent' : '' %><%- scrollreveal() %>'>
24
27
  <%- layoutTitle() %>
package/layout/wiki.ejs CHANGED
@@ -26,7 +26,7 @@ function layoutTitle() {
26
26
  <% } else { %>
27
27
  <%
28
28
  if (page.header == undefined) {
29
- page.header = false;
29
+ page.header = 'auto';
30
30
  }
31
31
  %>
32
32
  <%- partial('_partial/main/navbar/breadcrumb') %>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-stellar",
3
- "version": "1.8.0",
3
+ "version": "1.10.0",
4
4
  "description": "Elegant and powerful theme for Hexo.",
5
5
  "main": "package.json",
6
6
  "scripts": {
@@ -10,30 +10,29 @@
10
10
  'use strict';
11
11
 
12
12
  hexo.extend.tag.register('about', function(args, content) {
13
- args = hexo.args.map(args, ['avatar', 'height']);
13
+ args = hexo.args.map(args, ['avatar', 'height', 'border']);
14
14
  var rows = hexo.render.renderSync({text: content, engine: 'markdown'}).split('\n');
15
15
  var el = '';
16
16
  // wrapper
17
17
  el += '<div class="tag-plugin about">';
18
18
  el += '<div class="about-header">';
19
19
  // avatar
20
- if (args.avatar) {
20
+ var avatar_url = args.avatar;
21
+ if (args.avatar === undefined) {
22
+ avatar_url = hexo.config.avatar;
23
+ }
24
+ if (avatar_url) {
21
25
  el += '<div class="avatar">'
22
- el += '<img src="' + args.avatar + '"';
26
+ el += '<img src="' + avatar_url + '"';
27
+ if (args.border && args.border.length > 0) {
28
+ el += ' style="border-radius:' + args.border + '"';
29
+ }
23
30
  if (args.height && args.height.length > 0) {
24
- el += ' height="' + args.height + '"/>';
25
- } else {
26
- el += '/>';
31
+ el += ' height="' + args.height + '"';
27
32
  }
33
+ el += '/>';
28
34
  el += '</div>';
29
35
  }
30
- // title
31
- if (rows.length > 0) {
32
- // el += '<div class="title">';
33
- el += rows.shift();
34
- // el += '</div>';
35
- }
36
-
37
36
  el += '</div>';
38
37
 
39
38
  // content
@@ -65,9 +65,8 @@ hexo.extend.tag.register('friends', function(args) {
65
65
  el += groupHeader(group);
66
66
  }
67
67
  if (group.repo) {
68
- el += '<div class="friendsjs-wrap"';
69
- el += ' id="friends-api"';
70
- el += ' api="' + (group.api || 'https://issues-api.vercel.app') + '/v1/' + group.repo + '"';
68
+ el += '<div class="stellar-friends-api"';
69
+ el += ' api="' + (group.api || 'https://issues-api.xaoxuu.com') + '/v1/' + group.repo + '"';
71
70
  el += '>';
72
71
  el += '<div class="group-body"></div>';
73
72
  el += '</div>';
@@ -24,10 +24,10 @@ hexo.extend.tag.register('ghcard', function(args) {
24
24
  if (path.includes('/')) {
25
25
  // is repo
26
26
  const ps = path.split('/');
27
- url += 'https://github-readme-stats.vercel.app/api/pin/?username=' + ps[0] + '&repo=' + ps[1];
27
+ url += 'https://github-readme-stats.xaoxuu.com/api/pin/?username=' + ps[0] + '&repo=' + ps[1];
28
28
  } else {
29
29
  // is user
30
- url += 'https://github-readme-stats.vercel.app/api/?username=' + path;
30
+ url += 'https://github-readme-stats.xaoxuu.com/api/?username=' + path;
31
31
  }
32
32
  url += '&' + hexo.args.joinURLParams(args, params);
33
33
  if (!url.includes('&show_owner=')) {
@@ -6,3 +6,6 @@ const postTabs = require('./lib/tabs')(hexo);
6
6
  hexo.extend.tag.register('tabs', postTabs, true);
7
7
  hexo.extend.tag.register('subtabs', postTabs, true);
8
8
  hexo.extend.tag.register('subsubtabs', postTabs, true);
9
+
10
+ const users = require('./lib/users')(hexo);
11
+ hexo.extend.tag.register('users', users);
@@ -0,0 +1,22 @@
1
+ /**
2
+ * users.js v1 | https://github.com/xaoxuu/hexo-theme-stellar/
3
+ * 格式与官方标签插件一致使用空格分隔,中括号内的是可选参数(中括号不需要写出来)
4
+ *
5
+ * {% users api:https://api.github.com/repos/xaoxuu/hexo-theme-stellar/contributors %}
6
+ */
7
+
8
+ 'use strict';
9
+
10
+ module.exports = ctx => function(args) {
11
+ args = ctx.args.map(args, ['api']);
12
+ var el = '<div class="tag-plugin users-wrap">';
13
+
14
+ el += '<div class="stellar-friends-api"';
15
+ el += ' api="' + args.api + '"';
16
+ el += '>';
17
+ el += '<div class="group-body"></div>';
18
+ el += '</div>';
19
+
20
+ el += '</div>';
21
+ return el;
22
+ };
@@ -69,9 +69,8 @@ hexo.extend.tag.register('sites', function(args) {
69
69
  el += groupHeader(group);
70
70
  }
71
71
  if (group.repo) {
72
- el += '<div class="sitesjs-wrap"';
73
- el += ' id="sites-api"';
74
- el += ' api="' + (group.api || 'https://issues-api.vercel.app') + '/v1/' + group.repo + '"';
72
+ el += '<div class="stellar-sites-api"';
73
+ el += ' api="' + (group.api || 'https://issues-api.xaoxuu.com') + '/v1/' + group.repo + '"';
75
74
  el += '>';
76
75
  el += '<div class="group-body"></div>';
77
76
  el += '</div>';
@@ -36,36 +36,41 @@ function layoutNodeContent(content) {
36
36
 
37
37
 
38
38
  function postTimeline(args, content) {
39
+ args = hexo.args.map(args, ['api']);
39
40
  var el = '';
41
+
42
+ if (args.api && args.api.length > 0) {
43
+ el += '<div class="tag-plugin timeline stellar-timeline-api" api="' + args.api + '">';
44
+ } else {
45
+ el += '<div class="tag-plugin timeline">';
46
+ }
47
+
40
48
  var arr = content.split(/<!--\s*(.*?)\s*-->/g).filter((item, i) => {
41
49
  return item.trim().length > 0;
42
50
  });
43
- if (arr.length < 1) {
44
- return el;
45
- }
46
- var nodes = [];
47
- arr.forEach((item, i) => {
48
- if (item.startsWith('node ')) {
49
- nodes.push({
50
- header: item
51
- });
52
- } else if (nodes.length > 0) {
53
- var node = nodes[nodes.length-1];
54
- if (node.body == undefined) {
55
- node.body = item;
56
- } else {
57
- node.body += '\n' + item;
51
+ if (arr.length > 0) {
52
+ var nodes = [];
53
+ arr.forEach((item, i) => {
54
+ if (item.startsWith('node ')) {
55
+ nodes.push({
56
+ header: item
57
+ });
58
+ } else if (nodes.length > 0) {
59
+ var node = nodes[nodes.length-1];
60
+ if (node.body == undefined) {
61
+ node.body = item;
62
+ } else {
63
+ node.body += '\n' + item;
64
+ }
58
65
  }
59
- }
60
- });
61
-
62
- el += '<div class="tag-plugin timeline">';
63
- nodes.forEach((node, i) => {
64
- el += '<div class="timenode" item="' + (i + 1) + '">';
65
- el += layoutNodeTitle(node.header.substring(5));
66
- el += layoutNodeContent(node.body);
67
- el += '</div>';
68
- });
66
+ });
67
+ nodes.forEach((node, i) => {
68
+ el += '<div class="timenode" index="' + (i) + '">';
69
+ el += layoutNodeTitle(node.header.substring(5));
70
+ el += layoutNodeContent(node.body);
71
+ el += '</div>';
72
+ });
73
+ }
69
74
 
70
75
  el += '</div>';
71
76
  return el;
@@ -12,6 +12,8 @@ a
12
12
  &:hover
13
13
  color: $color-hover
14
14
 
15
+ p:not([class])
16
+ text-align: justify
15
17
 
16
18
  hr
17
19
  color: var(--text-meta)
@@ -14,7 +14,7 @@ a.button
14
14
  font-size: $fs-15
15
15
  &.theme
16
16
  background: $color-theme
17
- color: var(--site-bg)
17
+ color: var(--card)
18
18
  &:hover
19
19
  background: $color-hover
20
20
 
@@ -1,6 +1,7 @@
1
1
  .cap
2
2
  font-weight: 500
3
3
  font-size: $fs-12
4
+ scrollbar-width: none
4
5
  color: var(--text-p3)
5
6
  &.blue
6
7
  color: darken($color-md-blue, 6)
@@ -1,10 +1,10 @@
1
1
  .mobile-only
2
2
  display: none
3
- @media screen and (max-width: $device-tablet)
3
+ @media screen and (max-width: $device-mobile-max)
4
4
  display: block !important
5
5
 
6
6
  .mobile-hidden
7
- @media screen and (max-width: $device-tablet)
7
+ @media screen and (max-width: $device-mobile-max)
8
8
  display: none !important
9
9
 
10
10
  .float-panel
@@ -3,13 +3,14 @@ code
3
3
  -moz-osx-font-smoothing: auto
4
4
  color: var(--text-code)
5
5
  font-family: $ff-code
6
- word-break: break-all
6
+
7
+ p>code:not([class]),li>code:not([class])
7
8
  font-size: 85%
8
9
  background: var(--block)
9
10
  padding: .2em .4em
10
11
  border-radius: 4px
11
12
 
12
- article.md .highlight
13
+ article.md .highlight, pre:not([class]):has(>code)
13
14
  margin: var(--gap-p) 0
14
15
  border-radius: $border-block
15
16
  overflow: hidden
@@ -78,6 +79,17 @@ article.md .highlight
78
79
  table:not([class])
79
80
  border-collapse: collapse
80
81
 
82
+
83
+ article.md pre
84
+ >.caption
85
+ color: var(--text-p3)
86
+ >.hljs
87
+ padding: 1rem
88
+ border-radius: $border-block
89
+ border: 1px solid var(--block-border)
90
+ line-height: 1.5
91
+ box-sizing: border-box
92
+
81
93
  article.md .highlight
82
94
  .code
83
95
  vertical-align: top
@@ -133,7 +145,7 @@ article.md .highlight
133
145
  content: "Python"
134
146
  &.php .code:before
135
147
  content: "PHP"
136
- &.rust .code:before
148
+ &.rust .code:before,&.rs .code:before
137
149
  content: "Rust"
138
150
  &.sql .code:before
139
151
  content: "SQL"
@@ -143,8 +155,8 @@ article.md .highlight
143
155
  content: "Makefile"
144
156
  &.go .code:before
145
157
  content: "Go"
146
- &.typescript .code:before
147
- content: "TypeScript"
158
+ &.typescript .code:before,&.ts .code:before
159
+ content: "TS"
148
160
 
149
161
 
150
162
 
@@ -157,7 +169,7 @@ $hl-red = #EE2B29
157
169
  $hl-orange = #FB3F1B
158
170
  $hl-amber = #FD8607
159
171
  $hl-text = var(--text-p1)
160
- pre
172
+ .code>pre
161
173
  .code:before
162
174
  display: none
163
175
  // 行
@@ -5,6 +5,8 @@ html
5
5
  font-size: $fs-root
6
6
  -webkit-text-size-adjust: 100%
7
7
  -ms-text-size-adjust: 100%
8
+ if hexo-config('style.smooth_scroll')
9
+ scroll-behavior: smooth
8
10
  body
9
11
  background: var(--site-bg)
10
12
  margin: 0
@@ -13,3 +13,8 @@ svg.loading
13
13
  transform:rotate(0deg)
14
14
  to
15
15
  transform:rotate(360deg)
16
+
17
+ .loading-wrap
18
+ min-height: 50px
19
+ margin: 2rem 0
20
+ text-align: center
@@ -0,0 +1,6 @@
1
+ pre:not([class]):has(>code)
2
+ display: block
3
+ padding: 1rem
4
+ overflow: scroll
5
+ code
6
+ padding: 0
@@ -38,9 +38,18 @@ $dark-site-bg-mobile = black
38
38
 
39
39
  $ff-body = system-ui, "Microsoft Yahei", "Segoe UI", -apple-system, Roboto, Ubuntu, "Helvetica Neue", Arial, "WenQuanYi Micro Hei", sans-serif
40
40
  $ff-code = Menlo, Monaco, Consolas, system-ui, "Courier New", monospace, sans-serif
41
-
42
41
  $ff-logo = $ff-body
43
42
 
43
+ if hexo-config('style.font-family.body')
44
+ $ff-body = convert(hexo-config('style.font-family.body'))
45
+
46
+ if hexo-config('style.font-family.code')
47
+ $ff-code = convert(hexo-config('style.font-family.code'))
48
+
49
+ if hexo-config('style.font-family.logo')
50
+ $ff-logo = convert(hexo-config('style.font-family.logo'))
51
+
52
+
44
53
  // font size
45
54
  $fs-root = 16px
46
55
  $fs-15 = .9375rem
@@ -76,6 +85,13 @@ $border-image = 6px
76
85
  @media screen and (min-width: $device-4k)
77
86
  --width-main: 860px
78
87
  --gap-l: 64px
88
+ // iPad 竖屏
89
+ @media screen and (max-width: $device-tablet)
90
+ --width-left: 220px
91
+ // iPad 竖屏
92
+ @media screen and (max-width: $device-mobile-max)
93
+ --width-left: 256px
94
+
79
95
 
80
96
 
81
97
  // shadow
@@ -2,6 +2,7 @@
2
2
  $device-mobile-375 = 375px
3
3
  $device-mobile-425 = 425px
4
4
  $device-mobile = 500px
5
+ $device-mobile-max = 667px
5
6
  $device-tablet = 768px
6
7
  $device-laptop = 1024px
7
8
  $device-desktop = 1440px
@@ -30,7 +30,7 @@ set_darkmode()
30
30
  --card: $dark-card
31
31
  --theme-highlight: $color-theme
32
32
  --theme-bg: mix($color-theme, $dark-card, 10)
33
- @media screen and (max-width: $device-tablet)
33
+ @media screen and (max-width: $device-mobile-max)
34
34
  --site-bg: $dark-site-bg-mobile
35
35
  --card: darken($dark-card, 6)
36
36
  --block: darken($dark-block, 4)
@@ -19,8 +19,8 @@
19
19
  max-width: var(--width-main)
20
20
 
21
21
 
22
- // iPad 竖屏
23
- @media screen and (max-width: $device-tablet)
22
+ // 手机布局
23
+ @media screen and (max-width: $device-mobile-max)
24
24
  .mobile-only
25
25
  display: block !important
26
26
  .l_body
@@ -1,10 +1,10 @@
1
1
  .l_main
2
2
  position: relative
3
3
  padding-bottom: "calc(1 * %s)" % var(--gap-l)
4
- @media screen and (min-width: 1280px)
4
+ @media screen and (min-width: 1400px)
5
5
  margin-left: "calc(2 * %s)" % var(--gap-l)
6
- margin-right: "calc(2 * %s + %s)" % (var(--gap-l) var(--width-left))
7
- @media screen and (min-width: $device-tablet)
6
+ margin-right: "calc(2 * %s + %s / 2)" % (var(--gap-l) var(--width-left))
7
+ @media screen and (min-width: $device-mobile-max)
8
8
  padding-top: "calc(2 * %s)" % var(--gap-l)
9
9
  header
10
10
  margin: 4rem 1rem 2rem
@@ -25,6 +25,8 @@ article.md.content
25
25
  >p:not([class])
26
26
  text-indent: 'calc(%s * 2)' % $fs-p
27
27
  text-align: justify
28
+ a
29
+ text-indent: 0
28
30
  h1,h2,h3,h4,h5,h6
29
31
  text-align: center
30
32
  >h2:not([class])
@@ -32,7 +34,7 @@ article.md.content
32
34
  border-bottom-style: dashed
33
35
  border-bottom-color: $color-highlight
34
36
  >:first-child
35
- margin-top: 1rem
37
+ margin-top: 0
36
38
  h1:not(:first-child)
37
39
  margin-top: 2em
38
40
  h2:first-child
@@ -91,21 +93,13 @@ article.md.content
91
93
  h1+h2
92
94
  margin-top: -0.5rem
93
95
  h2+h3
94
- margin-top: -1rem
96
+ margin-top: -0.5rem
95
97
  h3+h4
96
- margin-top: -1rem
98
+ margin-top: -0.5rem
97
99
  h4+h5
98
- margin-top: -1rem
100
+ margin-top: -0.5rem
99
101
  h5+h6
100
- margin-top: -1rem
101
-
102
- // a
103
- article.md
104
- p, li:not([class])
105
- >a:not([class])
106
- font-weight: 500
107
- &:hover
108
- text-decoration: underline
102
+ margin-top: -0.5rem
109
103
 
110
104
  article.md p
111
105
  font-size: $fs-p
@@ -137,3 +131,35 @@ article.md img
137
131
  border-radius: $border-image
138
132
  margin: auto
139
133
  display: block
134
+
135
+ article.md
136
+ p:not([class]), li:not([class])
137
+ a:not([class])
138
+ position: relative
139
+ padding: 2px
140
+ text-decoration: none
141
+ display: inline-block
142
+ line-height: 1.2
143
+ &:after
144
+ content: ''
145
+ position: absolute
146
+ border-radius: 2px
147
+ bottom: 1px
148
+ left: 2px
149
+ right: 2px
150
+ height: 1px
151
+ opacity: 0.5
152
+ background: $color-link
153
+ trans1: all
154
+ &:hover
155
+ border-bottom: none
156
+ color: $color-link
157
+ // color: darken($color-hover, 10)
158
+ // background: alpha($color-hover, 0.08)
159
+ &:after
160
+ height: 100%
161
+ opacity: 0.2
162
+ bottom: 0
163
+ left: 0
164
+ right: 0
165
+ // background-color: alpha($color-hover, 0.08)
@@ -23,8 +23,6 @@
23
23
  ul
24
24
  margin: 0
25
25
  overflow: hidden
26
- a:hover
27
- text-decoration: underline
28
26
  .post-title
29
27
  margin: 0.5rem 0
30
28
  line-height: 1.2
@@ -9,6 +9,7 @@
9
9
  .page-footer .sitemap
10
10
  margin: .5rem 0 2rem
11
11
  display: grid
12
+ scrollbar-width: none
12
13
  grid-gap: 1rem 1rem
13
14
  grid-auto-flow: column dense
14
15
  overflow: scroll
@@ -33,6 +34,7 @@
33
34
  .page-footer .text
34
35
  p
35
36
  margin: 4px 0
36
- line-height: 1.2
37
- a
37
+ line-height: 1.5
38
+ a:not([class])
38
39
  text-decoration: underline
40
+ font-weight: 500
@@ -54,6 +54,6 @@ nav.cap
54
54
  a+a
55
55
  margin-left: 4px
56
56
 
57
- @media screen and (max-width: $device-tablet)
57
+ @media screen and (max-width: $device-mobile-max)
58
58
  .nav-wrap
59
59
  margin-top: 0
@@ -12,6 +12,10 @@
12
12
  &:hover
13
13
  .paginator
14
14
  text-align: center
15
+ &.next
16
+ border-left: 1px dashed var(--block-border)
17
+ &.prev
18
+ border-right: 1px dashed var(--block-border)
15
19
  .current
16
20
  font-family: $ff-code
17
21
  color: var(--text-p3)
@@ -42,6 +42,7 @@
42
42
  width: 40vw
43
43
  max-width: 460px
44
44
  border: 1px solid var(--block-hover)
45
+ z-index: 1
45
46
  .img
46
47
  min-width: 100%
47
48
  min-height: 140px
@@ -130,6 +131,8 @@
130
131
  text-decoration: underline
131
132
  &:hover
132
133
  color: $color-hover
134
+ &:after
135
+ display: none
133
136
  div.cmt-body
134
137
  min-height: 150px
135
138
  position: relative
@@ -0,0 +1,80 @@
1
+ .widget-wrap#github-user
2
+ .widget-header+.widget-body
3
+ margin: 0.75rem 0
4
+ .widget-wrap#github-user .widget-body
5
+ text-align: center
6
+ background: var(--card)
7
+ border-radius: $border-card
8
+ padding: 1rem
9
+
10
+ .widget-wrap#github-user .widget-body .avatar
11
+ display: block
12
+ border-radius: 100%
13
+ margin: 1rem auto 1.25rem auto
14
+ max-width: 75%
15
+ overflow: hidden
16
+ img
17
+ display: block
18
+ @media screen and (max-width: $device-tablet)
19
+ max-width: 50%
20
+
21
+ .widget-wrap#github-user .widget-body .username
22
+ font-weight: 900
23
+ font-size: $fs-h2
24
+ color: var(--text-p0)
25
+ margin: 0.5rem 0
26
+
27
+ .widget-wrap#github-user .widget-body .bio
28
+ font-size: $fs-13
29
+ margin: 0.5rem 0
30
+
31
+ .widget-wrap#github-user .widget-body .follow
32
+ font-weight: 500
33
+ border-radius: 64px
34
+ padding: 0.5rem 1rem
35
+ background: $color-theme
36
+ color: var(--card)
37
+ font-size: 1rem
38
+ align-self: stretch
39
+ text-align: center
40
+ line-height: 1.5
41
+ display: flex
42
+ align-items: center
43
+ justify-content: center
44
+ trans1: background
45
+ svg
46
+ margin-right: 6px
47
+ &:hover
48
+ background: $color-hover
49
+
50
+
51
+
52
+ .widget-wrap#github-user .widget-body .buttons
53
+ margin: 1rem 0
54
+ align-self: stretch
55
+ display: grid
56
+ grid-gap: 2px
57
+ grid-template-columns: repeat(auto-fill, "calc((100% - 2 * %s) / 3)" % 2px)
58
+
59
+ .widget-wrap#github-user .widget-body .btn
60
+ display: flex
61
+ flex-direction: column
62
+ align-items: center
63
+ color: inherit
64
+ border: 1px solid transparent
65
+ border-radius: 4px
66
+ padding: 0.25rem 0
67
+ trans1: background
68
+ &:hover
69
+ background: var(--block)
70
+
71
+
72
+ .widget-wrap#github-user .widget-body .buttons .btn .title
73
+ font-size: 1rem
74
+ font-weight: 700
75
+
76
+
77
+ .widget-wrap#github-user .widget-body .buttons .btn .desc
78
+ font-size: $fs-12
79
+ color: var(--text-p3)
80
+ font-weight: 500