hexo-theme-solitude 1.5.11 → 1.6.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 (99) hide show
  1. package/.github/logo.svg +44 -10
  2. package/README.md +22 -2
  3. package/README_zh-cn.md +22 -2
  4. package/README_zh-tw.md +22 -2
  5. package/_config.yml +87 -71
  6. package/layout/includes/footer.pug +1 -1
  7. package/layout/includes/inject/head.pug +1 -2
  8. package/layout/includes/loading.pug +1 -1
  9. package/layout/includes/widgets/home/banner.pug +1 -1
  10. package/layout/includes/widgets/home/categoryGroup.pug +0 -1
  11. package/layout/includes/widgets/home/postList.pug +74 -29
  12. package/layout/includes/widgets/nav/group.pug +1 -1
  13. package/layout/page.pug +1 -1
  14. package/package.json +1 -1
  15. package/plugins.yml +0 -4
  16. package/scripts/event/cdn.js +4 -4
  17. package/scripts/event/merge_config.js +9 -1
  18. package/scripts/event/welcome.js +2 -2
  19. package/scripts/filter/checkThemeConfig.js +2 -2
  20. package/scripts/filter/default.js +4 -2
  21. package/scripts/filter/lazyload.js +18 -5
  22. package/scripts/filter/randomPosts.js +1 -1
  23. package/scripts/helper/stylus.js +8 -14
  24. package/source/css/_global/index.styl +362 -1
  25. package/source/css/_layout/aside.styl +751 -0
  26. package/source/css/_layout/capsule.styl +213 -0
  27. package/source/css/_layout/fullpage.styl +47 -0
  28. package/source/css/_layout/keyboard.styl +60 -0
  29. package/source/css/_layout/pace.styl +40 -0
  30. package/source/css/_layout/rightmenu.styl +79 -0
  31. package/source/css/_layout/universe.styl +18 -0
  32. package/source/css/_page/_home/home-top.styl +1 -3
  33. package/source/css/_page/_home/recent-post.styl +407 -170
  34. package/source/css/_page/douban.styl +111 -109
  35. package/source/css/_page/share.styl +1 -17
  36. package/source/css/{_widgets/_post → _post}/content.styl +0 -3
  37. package/source/css/index.styl +20 -5
  38. package/source/css/third_party/snackbar.min.css +1 -0
  39. package/source/css/{_global/var.styl → var.styl} +7 -1
  40. package/source/img/avatar.png +0 -0
  41. package/source/img/default.png +0 -0
  42. package/source/img/pwa/favicon.ico +0 -0
  43. package/source/img/pwa/favicon_128.ico +0 -0
  44. package/source/img/pwa/favicon_16.ico +0 -0
  45. package/source/img/pwa/favicon_256.ico +0 -0
  46. package/source/img/pwa/favicon_32.ico +0 -0
  47. package/source/js/main.js +1 -0
  48. package/layout/includes/recent-posts.pug +0 -9
  49. package/source/css/_layout/basic.styl +0 -308
  50. package/source/css/_layout/index.styl +0 -125
  51. package/source/css/_widgets/_aside/allinfo.styl +0 -168
  52. package/source/css/_widgets/_aside/flip.styl +0 -67
  53. package/source/css/_widgets/_aside/index.styl +0 -90
  54. package/source/css/_widgets/_aside/info.styl +0 -263
  55. package/source/css/_widgets/_aside/newPost.styl +0 -61
  56. package/source/css/_widgets/_aside/toc.styl +0 -108
  57. package/source/css/_widgets/_aside/welcome.styl +0 -14
  58. package/source/css/_widgets/_extra/fullpage.styl +0 -46
  59. package/source/css/_widgets/_extra/music.styl +0 -218
  60. package/source/css/_widgets/_extra/pace.styl +0 -39
  61. package/source/css/_widgets/_extra/rightmenu.styl +0 -78
  62. package/source/css/_widgets/_mixins/keyboard.styl +0 -59
  63. package/source/css/_widgets/index.styl +0 -56
  64. package/source/img/logo.png +0 -0
  65. /package/source/css/{_widgets/_comment → _comments}/index.styl +0 -0
  66. /package/source/css/{_widgets/_comment → _comments}/twikoo.styl +0 -0
  67. /package/source/css/{_widgets/_comment → _comments}/waline.styl +0 -0
  68. /package/source/css/{_widgets/_mixins → _layout}/article-sort.styl +0 -0
  69. /package/source/css/{_widgets/_extra → _layout}/console.styl +0 -0
  70. /package/source/css/{_widgets/_mixins → _layout}/footer.styl +0 -0
  71. /package/source/css/{_widgets/_mixins → _layout}/other.styl +0 -0
  72. /package/source/css/{_widgets/_mixins → _layout}/sidebar.styl +0 -0
  73. /package/source/css/{_widgets/_post → _post}/commentBarrage.styl +0 -0
  74. /package/source/css/{_widgets/_post → _post}/copyright.styl +0 -0
  75. /package/source/css/{_widgets/_post → _post}/index.styl +0 -0
  76. /package/source/css/{_widgets/_post → _post}/meta.styl +0 -0
  77. /package/source/css/{_widgets/_post → _post}/pagination.styl +0 -0
  78. /package/source/css/{_widgets/_post → _post}/postAI.styl +0 -0
  79. /package/source/css/{_widgets/_post → _post}/relatedPost.styl +0 -0
  80. /package/source/css/{_widgets/_post → _post}/tools.styl +0 -0
  81. /package/source/css/{_widgets/_search → _search}/algolia-search.styl +0 -0
  82. /package/source/css/{_widgets/_search → _search}/local-search.styl +0 -0
  83. /package/source/css/{_widgets/_tags → _tags}/button.styl +0 -0
  84. /package/source/css/{_widgets/_tags → _tags}/checkbox.styl +0 -0
  85. /package/source/css/{_widgets/_tags → _tags}/fold.styl +0 -0
  86. /package/source/css/{_widgets/_tags → _tags}/gallery.styl +0 -0
  87. /package/source/css/{_widgets/_tags → _tags}/index.styl +0 -0
  88. /package/source/css/{_widgets/_tags → _tags}/label.styl +0 -0
  89. /package/source/css/{_widgets/_tags → _tags}/link.styl +0 -0
  90. /package/source/css/{_widgets/_tags → _tags}/media.styl +0 -0
  91. /package/source/css/{_widgets/_tags → _tags}/mermaid.styl +0 -0
  92. /package/source/css/{_widgets/_tags → _tags}/note.styl +0 -0
  93. /package/source/css/{_widgets/_tags → _tags}/span.styl +0 -0
  94. /package/source/css/{_widgets/_tags → _tags}/tabs.styl +0 -0
  95. /package/source/css/{_widgets/_tags → _tags}/timeline.styl +0 -0
  96. /package/source/js/{lately.min.js → third_party/lately.min.js} +0 -0
  97. /package/source/js/{sco-ai.min.js → third_party/sco-ai.min.js} +0 -0
  98. /package/source/js/{universe.min.js → third_party/universe.min.js} +0 -0
  99. /package/source/js/{waterfall.min.js → third_party/waterfall.min.js} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hexo-theme-solitude",
3
- "version": "1.5.11",
3
+ "version": "1.6.0",
4
4
  "description": "A beautiful, powerful, and efficient Hexo theme developed by the wleelw",
5
5
  "main": "package.json",
6
6
  "scripts": {
package/plugins.yml CHANGED
@@ -74,10 +74,6 @@ busuanzi_js:
74
74
  name: busuanzi
75
75
  file: bsz.pure.mini.js
76
76
  version: 2.3.0
77
- snackbar_css:
78
- name: node-snackbar
79
- file: dist/snackbar.min.css
80
- version: 0.1.16
81
77
  snackbar:
82
78
  name: node-snackbar
83
79
  file: dist/snackbar.min.js
@@ -61,7 +61,7 @@ hexo.extend.filter.register('before_generate', () => {
61
61
  },
62
62
  sco_ai_js: {
63
63
  name: 'hexo-theme-solitude',
64
- file: 'js/sco-ai.min.js',
64
+ file: 'js/third_party/sco-ai.min.js',
65
65
  version
66
66
  },
67
67
  twikoo_commentBarrage: {
@@ -76,17 +76,17 @@ hexo.extend.filter.register('before_generate', () => {
76
76
  },
77
77
  waterfall: {
78
78
  name: 'hexo-theme-solitude',
79
- file: 'js/waterfall.min.js',
79
+ file: 'js/third_party/waterfall.min.js',
80
80
  version
81
81
  },
82
82
  universe_js: {
83
83
  name: 'hexo-theme-solitude',
84
- file: 'js/universe.min.js',
84
+ file: 'js/third_party/universe.min.js',
85
85
  version
86
86
  },
87
87
  lately_js: {
88
88
  name: 'hexo-theme-solitude',
89
- file: 'js/lately.min.js',
89
+ file: 'js/third_party/lately.min.js',
90
90
  version
91
91
  },
92
92
  }
@@ -58,6 +58,8 @@ hexo.extend.filter.register('before_generate', () => {
58
58
  runtimeenable: true,
59
59
  runtime: "2023-04-20 00:00:00",
60
60
  },
61
+ }, index_post_list: {
62
+ direction: 'column', content: false, length: 500, cover: 'both'
61
63
  }, page: {
62
64
  error: true, tags: true, categories: true, default: {
63
65
  cover: ['/img/default.png'],
@@ -128,7 +130,7 @@ hexo.extend.filter.register('before_generate', () => {
128
130
  }, keyboard: {
129
131
  enable: false, list: []
130
132
  }, lazyload: {
131
- enable: false, placeholder: '/img/loading.gif', errorimg: '/img/error_load.png'
133
+ enable: false, field: 'site', placeholder: '/img/loading.gif', errorimg: '/img/error_load.png'
132
134
  }, loading: {
133
135
  fullpage: false, pace: true,
134
136
  }, highlight: {
@@ -167,6 +169,12 @@ hexo.extend.filter.register('before_generate', () => {
167
169
  },
168
170
  verify_site: [],
169
171
  css_prefix: false,
172
+ font: {
173
+ 'font-size': '16px',
174
+ 'code-font-size': '16px',
175
+ 'font-family': '"PingFang SC","Hiragino Sans GB","Microsoft YaHei"',
176
+ 'code-font-family': '"monospace", "monospace"',
177
+ },
170
178
  extends: {
171
179
  head: [], body: [],
172
180
  },
@@ -1,6 +1,6 @@
1
1
  hexo.on('ready', () => {
2
- const { version } = require('../../package.json')
3
- hexo.log.info(`
2
+ const {version} = require('../../package.json')
3
+ hexo.log.info(`
4
4
  ===================================================================
5
5
  ##### #### # ##### ###### # # ###### ######
6
6
  # # # # # # # # # # #
@@ -4,12 +4,12 @@ hexo.extend.filter.register('before_post_render', () => {
4
4
  const data = hexo.locals.get('data');
5
5
  const logger = hexo.log;
6
6
  const theme = hexo.theme.config;
7
- if (theme.hometop.banner.enable && !theme.hometop.banner.icon) {
7
+ if (theme.hometop.enable && !theme.hometop.banner.icon) {
8
8
  logger.error('\n 启用banner的情况下,必须提供 icon 图片!\n 请在主题配置文件中设置 hometop.banner.icon 选项。');
9
9
  logger.error('\n If banner is enabled, icon image must be supplied! \n Please set the hometop.banner.icon option in the theme configuration file.');
10
10
  process.exit(-1);
11
11
  }
12
- if (theme.says.enable && theme.says.mode === 'local' && !data.essay) {
12
+ if (theme.says.enable && !data.essay) {
13
13
  logger.error('\n 启用说说的情况下,必须提供 essay 数据文件!\n 请新建 essay.yaml。');
14
14
  logger.error('\n If says is enabled, essay data must be supplied! \n Please create essay.yaml.');
15
15
  process.exit(-1);
@@ -4,7 +4,8 @@ hexo.extend.filter.register('after_post_render', function (data) {
4
4
  data.title = data.title || 'Untitled';
5
5
  const {config} = hexo.theme;
6
6
  if (data.layout === 'post') {
7
- const {copyright, locate, cover} = hexo.theme.config.post.default
7
+ let {copyright, locate, cover} = hexo.theme.config.post.default
8
+ cover = cover !== null ? cover : ['/img/default.png']
8
9
  data.locate = data.locate || locate
9
10
  data.cc = data.cc || copyright
10
11
  data.cover = data.cover || cover[getRandomInt(0, cover?.length)]
@@ -12,7 +13,8 @@ hexo.extend.filter.register('after_post_render', function (data) {
12
13
  data.toc = !!(config.aside.toc.post && data.toc !== false);
13
14
  }
14
15
  if (data.layout === 'page') {
15
- const {cover} = hexo.theme.config.page.default
16
+ let {cover} = hexo.theme.config.page.default
17
+ cover = cover !== null ? cover : ['/img/default.png']
16
18
  data.cover = data.cover || cover[getRandomInt(0, cover?.length)]
17
19
  data.excerpt = data.title
18
20
  data.toc = !!(config.aside.toc.page && data.toc !== false && data.aside);
@@ -1,7 +1,20 @@
1
+ 'use strict'
2
+
3
+ const urlFor = require('hexo-util').url_for.bind(hexo)
4
+
5
+ const lazyload = (content, img) => {
6
+ return content.replace(/(<img(?!.*?class[\t]*=[\t]*['"].*?nolazyload.*?['"]).*? src=)/gi, `$1 "${img}" data-lazy-src=`)
7
+ }
8
+
1
9
  hexo.extend.filter.register('after_render:html', function (data) {
2
- if (!hexo.theme.config.lazyload.enable) return
3
- return data.replace(
4
- /(<img(?!.*?class\t*=\t*['"].*?nolazyload.*?['"]).*?)( src=)/gi,
5
- `$1 data-lazy-src=`
6
- )
10
+ const { enable, placeholder ,field } = hexo.theme.config.lazyload
11
+ if (!enable || field !== 'site') return;
12
+ return lazyload(data, urlFor(placeholder))
13
+ })
14
+
15
+ hexo.extend.filter.register('after_post_render', data => {
16
+ const { enable, placeholder, field } = hexo.theme.config.lazyload
17
+ if (!enable || field !== 'post') return
18
+ data.content = lazyload(data.content, urlFor(placeholder))
19
+ return data
7
20
  })
@@ -1,5 +1,5 @@
1
1
  hexo.extend.filter.register('after_render:html', function (data) {
2
2
  const posts = hexo.locals.get('posts').filter(post => post.random !== false).map(post => post.path);
3
- data += `<script>const posts=${JSON.stringify(posts)};function toRandomPost(){ pjax.loadUrl('/'+posts[Math.floor(Math.random()*posts.length)]); };</script>`;
3
+ data += `<script>const posts=${JSON.stringify(posts)};function toRandomPost(){ pjax.loadUrl('/'+posts[Math.floor(Math.random()*posts.length)]); }</script>`;
4
4
  return data;
5
5
  });
@@ -7,14 +7,7 @@ hexo.extend.filter.register('stylus:renderer', function (style) {
7
7
  style.define('highlightTags', array);
8
8
  }
9
9
 
10
- const aside = [
11
- theme.config.aside.home.noSticky,
12
- theme.config.aside.home.Sticky,
13
- theme.config.aside.post.noSticky,
14
- theme.config.aside.post.Sticky,
15
- theme.config.aside.page.Sticky,
16
- theme.config.aside.page.noSticky
17
- ].join(',').split(',');
10
+ const aside = [theme.config.aside.home.noSticky, theme.config.aside.home.Sticky, theme.config.aside.post.noSticky, theme.config.aside.post.Sticky, theme.config.aside.page.Sticky, theme.config.aside.page.noSticky].join(',').split(',');
18
11
  const uniqueArr = [...new Set(aside)];
19
12
  if (uniqueArr.length > 0) {
20
13
  style.define('aside', uniqueArr);
@@ -22,12 +15,12 @@ hexo.extend.filter.register('stylus:renderer', function (style) {
22
15
 
23
16
  style.define('about', data && data.about ? Object.keys(data.about) : []);
24
17
 
25
- initGroupColor(theme.config.hometop.group,style);
18
+ initGroupColor(theme.config.hometop.group, style);
26
19
 
27
20
  // highlight
28
- const { syntax_highlighter: syntaxHighlighter, highlight, prismjs } = hexo.config
29
- let { enable: highlightEnable, line_number: highlightLineNumber } = highlight
30
- let { enable: prismjsEnable, line_number: prismjsLineNumber } = prismjs
21
+ const {syntax_highlighter: syntaxHighlighter, highlight, prismjs} = hexo.config
22
+ let {enable: highlightEnable, line_number: highlightLineNumber} = highlight
23
+ let {enable: prismjsEnable, line_number: prismjsLineNumber} = prismjs
31
24
 
32
25
  // for hexo > 7.0
33
26
  if (syntaxHighlighter) {
@@ -41,8 +34,8 @@ hexo.extend.filter.register('stylus:renderer', function (style) {
41
34
  style.define('$prismjs_line_number', prismjsLineNumber)
42
35
  });
43
36
 
44
- function initGroupColor(gg,style) {
45
- if(gg === null || gg === undefined) {
37
+ function initGroupColor(gg, style) {
38
+ if (gg === null || gg === undefined) {
46
39
  style.define('banner_group', [])
47
40
  return;
48
41
  }
@@ -63,5 +56,6 @@ function initGroupColor(gg,style) {
63
56
  });
64
57
  return color;
65
58
  }
59
+
66
60
  style.define('getGroupColor', getGroupColor);
67
61
  }
@@ -54,4 +54,365 @@
54
54
  --card-box-shadow 0 3px 8px 6px rgba(7, 17, 27, 0.06)
55
55
  --card-hover-box-shadow 0 3px 8px 6px rgba(7, 17, 27, 0.15)
56
56
  --offset 0px
57
- --hlscrollbar-bg #121212
57
+ --hlscrollbar-bg #121212
58
+
59
+ body
60
+ position relative
61
+ min-height 100%
62
+ background var(--efu-background)
63
+ color var(--efu-fontcolor)
64
+ font-size $font-size
65
+ font-family $font-family
66
+ line-height 2
67
+ -webkit-tap-highlight-color transparent
68
+ margin 0
69
+
70
+ *
71
+ box-sizing border-box
72
+
73
+ html
74
+ line-height 1.15
75
+ -webkit-text-size-adjust 100%
76
+ text-size-adjust 100%
77
+ height: 100%;
78
+ font-size: 20px
79
+ overflow-y: overlay
80
+
81
+ main
82
+ display block
83
+
84
+ // scrollbar - chrome/safari
85
+ *::-webkit-scrollbar
86
+ width 5px
87
+ height 5px
88
+
89
+ *::-webkit-scrollbar-thumb
90
+ background var(--scrollbar-color)
91
+
92
+ *::-webkit-scrollbar-track
93
+ background-color transparent
94
+
95
+ #site-title,
96
+ #site-subtitle,
97
+ .site-name,
98
+ #aside-content .author-info__name,
99
+ #aside-content .author-info__description
100
+ font-family "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif
101
+
102
+
103
+ if hexo-config('lazyload.enable') && !hexo-config('lazyload.placeholder')
104
+ img
105
+ &[data-lazy-src]:not(.loaded)
106
+ filter blur(8px) brightness(1)
107
+
108
+ &[data-lazy-src].error
109
+ filter none
110
+
111
+ ::selection
112
+ background var(--efu-main)
113
+ color var(--efu-white)
114
+
115
+ h1
116
+ font-size 2em
117
+ margin .67em 0
118
+
119
+ h1, h2, h3, h4, h5, h6
120
+ padding-top 0
121
+ padding-left 0
122
+ font-weight 700
123
+ position relative
124
+ margin 1rem 0 0.7rem
125
+ color var(--efu-fontcolor)
126
+
127
+ hr
128
+ box-sizing content-box
129
+ height 0
130
+ overflow visible
131
+ display: none
132
+
133
+ pre
134
+ font-family monospace, monospace
135
+
136
+ a
137
+ color var(--efu-fontcolor)
138
+ text-decoration none
139
+ transition all .3s ease 0s
140
+ overflow-wrap break-word
141
+ -webkit-user-drag none
142
+
143
+ abbr[title]
144
+ border-bottom none
145
+ text-decoration underline dotted
146
+
147
+ b, strong
148
+ font-weight bolder
149
+
150
+ code, kbd, samp
151
+ font-family $code-font-family
152
+ font-size $code-font-size
153
+
154
+ small
155
+ font-size 80%
156
+
157
+ sub, sup
158
+ font-size 75%
159
+ line-height 0
160
+ position relative
161
+ vertical-align baseline
162
+
163
+ sub
164
+ bottom -.25em
165
+
166
+ sup
167
+ top -.5em
168
+
169
+ button, input, optgroup, select, textarea
170
+ font-family inherit
171
+ font-size 100%
172
+ line-height 1.15
173
+ margin 0
174
+
175
+ button, input
176
+ overflow visible
177
+
178
+ input::placeholder
179
+ color var(--efu-gray)
180
+
181
+ button, select
182
+ text-transform none
183
+
184
+ [type=button], [type=reset], [type=submit], button
185
+ appearance button
186
+
187
+ fieldset
188
+ padding .35em .75em .625em
189
+
190
+ legend
191
+ box-sizing border-box
192
+ color inherit
193
+ display table
194
+ max-width 100%
195
+ padding 0
196
+ white-space normal
197
+
198
+ progress
199
+ vertical-align baseline
200
+
201
+ textarea
202
+ overflow auto
203
+
204
+ [type=checkbox], [type=radio]
205
+ box-sizing border-box
206
+ padding 0
207
+
208
+ [type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button
209
+ height auto
210
+
211
+ [type=search]
212
+ appearance textfield
213
+ outline-offset -2px
214
+
215
+ [type=search]::-webkit-search-decoration
216
+ appearance none
217
+
218
+ input[type=checkbox] + label::before, input[type=radio] + label::before
219
+ content ''
220
+ display inline-block
221
+ width 16px
222
+ height 16px
223
+ border 1px solid #999
224
+ background-color #fff
225
+ margin-right 5px
226
+ vertical-align middle
227
+
228
+ ::-webkit-file-upload-button
229
+ appearance button
230
+ font inherit
231
+
232
+ summary
233
+ display list-item
234
+
235
+ template
236
+ display none
237
+
238
+ [hidden]
239
+ display none
240
+
241
+ input::placeholder
242
+ color var(--efu-fontcolor)
243
+
244
+ .table-wrap
245
+ overflow-x scroll
246
+ margin 0 0 1rem
247
+
248
+ table
249
+ display table
250
+ width 100%
251
+ border-spacing 0
252
+ border-collapse collapse
253
+ empty-cells show
254
+
255
+ table thead
256
+ background rgba(153, 169, 191, .1)
257
+
258
+ table td, table th
259
+ padding .3rem .6rem
260
+ border 1px solid var(--light-grey)
261
+ vertical-align middle
262
+
263
+ button
264
+ padding 0
265
+ outline 0
266
+ border none
267
+ color var(--efu-fontcolor)
268
+ background 0 0
269
+ cursor pointer
270
+
271
+ img
272
+ border-style none
273
+ max-width 100%
274
+ transition all .2s ease 0s
275
+ -webkit-user-drag none
276
+
277
+ img:not([src]), img[src=""]
278
+ opacity 0
279
+
280
+ .img-alt
281
+ font-size 12px
282
+ margin 0
283
+ margin-top 8px
284
+ color var(--efu-secondtext)
285
+
286
+ .is-center
287
+ text-align center
288
+ display flex
289
+ flex-wrap wrap
290
+ justify-content center
291
+ flex-direction row
292
+ align-items center
293
+
294
+ .copy-true
295
+ user-select all
296
+
297
+ .pull-left
298
+ float left
299
+
300
+ .pull-right
301
+ float right
302
+
303
+ blockquote
304
+ border var(--style-border-always)
305
+ background-color var(--efu-secondbg)
306
+ color var(--efu-secondtext)
307
+ border-radius 8px
308
+ margin 1rem 0
309
+ padding .5rem .8rem
310
+
311
+ p
312
+ padding 0
313
+ margin 0
314
+
315
+ li, ul
316
+ list-style none
317
+ display block
318
+ margin 0
319
+ padding 0
320
+
321
+ ::-webkit-scrollbar
322
+ width 6px
323
+ height 6px
324
+
325
+ ::-webkit-scrollbar-thumb
326
+ background var(--efu-scrollbar)
327
+ border-radius 8px
328
+ cursor pointer
329
+
330
+ ::-webkit-scrollbar-thumb:hover
331
+ background var(--efu-main)
332
+ opacity 1
333
+ display block !important
334
+
335
+ ::-webkit-scrollbar-track
336
+ background-color var(--efu-none)
337
+
338
+ [data-theme=dark] img
339
+ filter brightness(1)
340
+
341
+ a.extend
342
+ .next
343
+ right 0
344
+
345
+ .prev
346
+ left 0
347
+
348
+ table td, table th
349
+ border var(--style-border-always)
350
+
351
+ table thead
352
+ background var(--efu-secondbg)
353
+
354
+ b, strong
355
+ color var(--efu-lighttext)
356
+
357
+ .button--animated
358
+ border-radius 8px
359
+ transition .3s
360
+ position relative
361
+
362
+ i.solitude
363
+ font-size 22px
364
+ line-height 1
365
+
366
+ .layout
367
+ display: flex
368
+ margin: 0 auto
369
+ padding: 1rem 1.5rem
370
+ max-width: 1200px
371
+ +maxWidth768()
372
+ padding 0
373
+
374
+ &#content-inner
375
+ max-width: 1400px
376
+
377
+ /.hide-aside.layout
378
+ max-width: 1400px
379
+
380
+ > div
381
+ width: 100% !important
382
+
383
+ > div:first-child
384
+ width calc(100% - 300px)
385
+
386
+ +maxWidth1200()
387
+ width 100%
388
+
389
+ > div:first-child:not(.recent-posts)
390
+ box-shadow var(--efu-shadow-border)
391
+ padding 1rem 2rem
392
+ border-radius 12px
393
+ background var(--efu-card-bg)
394
+ border var(--style-border)
395
+ align-self flex-start
396
+ animation slide-in .6s .1s backwards
397
+ position relative
398
+
399
+ +maxWidth768()
400
+ box-shadow none
401
+ border none
402
+ padding 0 1rem
403
+ background var(--efu-background)
404
+
405
+ span.tags-punctuation::before
406
+ content: "\e071"
407
+ font-family: solitude, serif !important
408
+ font-size: 12px
409
+ transition none
410
+ margin-right: 2px
411
+ opacity: .4
412
+
413
+ .hide-aside #page &
414
+ font-size 16px
415
+
416
+ #post-info &
417
+ font-size 14px
418
+ line-height 32px