hexo-theme-stellar 1.30.2 → 1.30.4
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.
- package/_config.yml +7 -1
- package/layout/_partial/head.ejs +1 -1
- package/layout/_partial/main/navbar/nav_tabs_blog.ejs +4 -0
- package/layout/_partial/main/navbar/nav_tabs_wiki.ejs +4 -0
- package/layout/_partial/menubtn.ejs +1 -1
- package/layout/layout.ejs +1 -0
- package/package.json +1 -1
- package/scripts/tags/index.js +1 -0
- package/scripts/tags/lib/quote.js +22 -0
- package/source/css/_common/blur.styl +2 -2
- package/source/css/_common/device.styl +14 -23
- package/source/css/_components/layout.styl +12 -4
- package/source/css/_components/pages/article-story.styl +20 -12
- package/source/css/_components/pages/article-tech.styl +4 -4
- package/source/css/_components/partial/article-footer.styl +2 -2
- package/source/css/_components/partial/navbar.styl +31 -50
- package/source/css/_components/sidebar/sidebar.styl +63 -19
- package/source/css/_components/tag-plugins/quote.styl +7 -0
- package/source/css/_components/widgets/ghrepo.styl +1 -1
- package/source/css/_components/widgets/toc.styl +1 -1
- package/source/css/_components/widgets/widgets.styl +1 -1
- package/source/css/_custom.styl +3 -0
- package/source/css/_defines/const.styl +6 -1
- package/source/css/_defines/func.styl +27 -0
package/_config.yml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
######## Stellar info ########
|
|
2
2
|
stellar:
|
|
3
|
-
version: '1.30.
|
|
3
|
+
version: '1.30.4'
|
|
4
4
|
homepage: 'https://xaoxuu.com/wiki/stellar/'
|
|
5
5
|
repo: 'https://github.com/xaoxuu/hexo-theme-stellar'
|
|
6
6
|
main_css: /css/main.css
|
|
@@ -654,6 +654,12 @@ style:
|
|
|
654
654
|
background-image: #'url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.14/image/site-bg1@small.webp)' # 未完全适配,慎用
|
|
655
655
|
blur-px: 100px
|
|
656
656
|
blur-bg: var(--alpha75)
|
|
657
|
+
# 技术文章内页各级标题前面的符号
|
|
658
|
+
header_prefix:
|
|
659
|
+
h2: '⌘'
|
|
660
|
+
h3: '='
|
|
661
|
+
h4: '|'
|
|
662
|
+
h5: ':'
|
|
657
663
|
|
|
658
664
|
|
|
659
665
|
default:
|
package/layout/_partial/head.ejs
CHANGED
|
@@ -100,7 +100,7 @@ function custom_inject() {
|
|
|
100
100
|
<meta name="force-rendering" content="webkit">
|
|
101
101
|
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
|
102
102
|
<meta name="HandheldFriendly" content="True" >
|
|
103
|
-
<meta name="
|
|
103
|
+
<meta name="mobile-web-app-capable" content="yes">
|
|
104
104
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
105
105
|
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#000">
|
|
106
106
|
<meta name="theme-color" content="#f9fafb">
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
function layoutDiv() {
|
|
3
3
|
var el = '';
|
|
4
4
|
el += '<div class="navbar top">';
|
|
5
|
+
el += '<div class="navbar-blur">';
|
|
6
|
+
el += '<div class="navbar-container">';
|
|
5
7
|
el += '<nav class="post">';
|
|
6
8
|
if (is_home()) {
|
|
7
9
|
el += '<a class="active" href="' + url_for(config.index_generator.path) + '">' + __("btn.recent_publish") + '</a>';
|
|
@@ -60,6 +62,8 @@ function layoutDiv() {
|
|
|
60
62
|
|
|
61
63
|
el += '</nav>';
|
|
62
64
|
el += '</div>';
|
|
65
|
+
el += '</div>';
|
|
66
|
+
el += '</div>';
|
|
63
67
|
return el;
|
|
64
68
|
}
|
|
65
69
|
%>
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
function layoutDiv() {
|
|
3
3
|
var el = '';
|
|
4
4
|
el += '<div class="navbar top">';
|
|
5
|
+
el += '<div class="navbar-blur">';
|
|
6
|
+
el += '<div class="navbar-container">';
|
|
5
7
|
el += '<nav class="wiki">';
|
|
6
8
|
// 所有项目
|
|
7
9
|
el += '<a';
|
|
@@ -40,6 +42,8 @@ function layoutDiv() {
|
|
|
40
42
|
|
|
41
43
|
el += '</nav>';
|
|
42
44
|
el += '</div>';
|
|
45
|
+
el += '</div>';
|
|
46
|
+
el += '</div>';
|
|
43
47
|
return el;
|
|
44
48
|
}
|
|
45
49
|
%>
|
package/layout/layout.ejs
CHANGED
|
@@ -48,6 +48,7 @@ if (theme.style.prefers_theme === 'auto') {
|
|
|
48
48
|
html += partial('_partial/cover/index')
|
|
49
49
|
html += `<div class="l_body ${page_type}" id="start" layout="${page.layout}" type="${article_type}" ${indent ? 'text-indent' : ''}>`
|
|
50
50
|
html += `<aside class="l_left">`
|
|
51
|
+
html += `<div class="sidebg"></div>`
|
|
51
52
|
html += `<div class="leftbar-container${theme.style.leftbar?.blur ? ' leftbar-blur' : ''}">`
|
|
52
53
|
html += partial('_partial/sidebar/index_leftbar')
|
|
53
54
|
html += `</div>`
|
package/package.json
CHANGED
package/scripts/tags/index.js
CHANGED
|
@@ -40,6 +40,7 @@ hexo.extend.tag.register('navbar', require('./lib/navbar')(hexo))
|
|
|
40
40
|
hexo.extend.tag.register('note', require('./lib/note')(hexo))
|
|
41
41
|
hexo.extend.tag.register('poetry', require('./lib/poetry')(hexo), true)
|
|
42
42
|
hexo.extend.tag.register('quot', require('./lib/quot')(hexo))
|
|
43
|
+
hexo.extend.tag.register('quote', require('./lib/quote')(hexo), true)
|
|
43
44
|
hexo.extend.tag.register('hashtag', require('./lib/hashtag')(hexo))
|
|
44
45
|
hexo.extend.tag.register('okr', require('./lib/okr')(hexo), {ends: true})
|
|
45
46
|
hexo.extend.tag.register('audio', require('./lib/audio')(hexo))
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* quote.js v1.1 | https://github.com/xaoxuu/hexo-theme-stellar/
|
|
3
|
+
* 格式与官方标签插件一致使用空格分隔,中括号内的是可选参数(中括号不需要写出来)
|
|
4
|
+
*
|
|
5
|
+
* quote:
|
|
6
|
+
* {% quote [indent:true/false] %}
|
|
7
|
+
* body
|
|
8
|
+
* {% endquote %}
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
'use strict'
|
|
13
|
+
|
|
14
|
+
module.exports = ctx => function(args, content) {
|
|
15
|
+
var el = ''
|
|
16
|
+
args = ctx.args.map(args, ['indent'], [])
|
|
17
|
+
|
|
18
|
+
el += `<div class="tag-plugin quote" indent="${args.indent}">`
|
|
19
|
+
el += ctx.render.renderSync({text: content, engine: 'markdown'}).split('\n').join('')
|
|
20
|
+
el += `</div>`
|
|
21
|
+
return el
|
|
22
|
+
}
|
|
@@ -6,8 +6,8 @@ blur-effect()
|
|
|
6
6
|
background: var(--blur-bg)
|
|
7
7
|
@supports ((-webkit-backdrop-filter:blur(var(--blur-px))) or (backdrop-filter:blur(var(--blur-px))))
|
|
8
8
|
background: var(--blur-bg) !important
|
|
9
|
-
backdrop-filter: saturate(
|
|
10
|
-
-webkit-backdrop-filter: saturate(
|
|
9
|
+
backdrop-filter: saturate(300%) blur(var(--blur-px))
|
|
10
|
+
-webkit-backdrop-filter: saturate(300%) blur(var(--blur-px))
|
|
11
11
|
&:hover
|
|
12
12
|
background: var(--card)
|
|
13
13
|
|
|
@@ -10,35 +10,32 @@
|
|
|
10
10
|
.float-panel
|
|
11
11
|
position: sticky
|
|
12
12
|
grid-column-end: span 3
|
|
13
|
+
padding: 4px
|
|
14
|
+
--inset: 2rem
|
|
13
15
|
right: 0
|
|
14
|
-
bottom:
|
|
16
|
+
bottom: calc(var(--inset) * 2)
|
|
17
|
+
margin-left: auto
|
|
18
|
+
margin-right: var(--inset)
|
|
15
19
|
float: right
|
|
16
20
|
z-index: 10
|
|
17
21
|
display: flex
|
|
22
|
+
justify-content: center
|
|
18
23
|
flex-direction: column
|
|
19
|
-
border-radius:
|
|
20
|
-
margin-left: auto
|
|
21
|
-
margin-right: 1rem
|
|
24
|
+
border-radius: 64px
|
|
22
25
|
@media screen and (min-width: $device-mobile-max)
|
|
23
|
-
margin-right:
|
|
26
|
+
margin-right: 3rem
|
|
24
27
|
overflow: hidden
|
|
25
|
-
--blur-px: 16px
|
|
26
|
-
--blur-bg: alpha(#fff, .4)
|
|
27
28
|
trans1: all
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
:root[data-theme="dark"] &
|
|
31
|
-
ondark()
|
|
32
|
-
:root:not([data-theme]) &
|
|
33
|
-
@media (prefers-color-scheme: dark)
|
|
34
|
-
ondark()
|
|
29
|
+
newblur()
|
|
30
|
+
|
|
35
31
|
|
|
36
32
|
// 侧边栏弹出按钮
|
|
37
33
|
.float-panel button
|
|
38
34
|
cursor: pointer
|
|
39
35
|
color: var(--text)
|
|
40
36
|
background: none
|
|
41
|
-
|
|
37
|
+
width: 40px
|
|
38
|
+
height: 40px
|
|
42
39
|
line-height: 0
|
|
43
40
|
font-size: 28px
|
|
44
41
|
margin: 0
|
|
@@ -52,13 +49,11 @@
|
|
|
52
49
|
// 侧边栏弹出后
|
|
53
50
|
.l_body[leftbar] .float-panel, .l_body[rightbar] .float-panel
|
|
54
51
|
box-shadow: 0 0 4px -1px $color-theme, 0 0 16px -4px $color-theme, 0 0 32px -12px $color-theme, 0 0 128px -32px $color-theme
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
background: var(--alpha100)
|
|
52
|
+
&:before
|
|
53
|
+
background: var(--alpha50)
|
|
58
54
|
|
|
59
55
|
.l_body[leftbar] .float-panel button.leftbar-toggle
|
|
60
56
|
color: $color-theme
|
|
61
|
-
border-color: var(--block-border)
|
|
62
57
|
svg g
|
|
63
58
|
fill: currentColor
|
|
64
59
|
fill-opacity: 0.3
|
|
@@ -70,12 +65,8 @@
|
|
|
70
65
|
.l_body .l_right:empty+.float-panel button.rightbar-toggle
|
|
71
66
|
display: none !important
|
|
72
67
|
|
|
73
|
-
.l_body[rightbar] .float-panel button.rightbar-toggle
|
|
74
|
-
background: var(--alpha100)
|
|
75
|
-
|
|
76
68
|
.l_body[rightbar] .float-panel button.rightbar-toggle
|
|
77
69
|
color: $color-theme
|
|
78
|
-
border-color: var(--block-border)
|
|
79
70
|
svg g
|
|
80
71
|
fill: currentColor
|
|
81
72
|
fill-opacity: 0.3
|
|
@@ -35,11 +35,13 @@
|
|
|
35
35
|
.l_right
|
|
36
36
|
top: 8px
|
|
37
37
|
position: fixed
|
|
38
|
-
max-height: calc(100% - 8px * 2)
|
|
39
38
|
transform: translateX(320px)
|
|
40
39
|
transition: transform .38s ease-out
|
|
41
40
|
margin: 0
|
|
42
|
-
|
|
41
|
+
--inset: 8px
|
|
42
|
+
right: var(--inset)
|
|
43
|
+
top: var(--inset)
|
|
44
|
+
max-height: 'calc(%s - %s)' % (100vh $rightbar-bottom-margin)
|
|
43
45
|
box-shadow: $boxshadow-card-float
|
|
44
46
|
z-index: 10
|
|
45
47
|
background: var(--site-bg)
|
|
@@ -66,7 +68,13 @@
|
|
|
66
68
|
transform: translateX(-320px)
|
|
67
69
|
transition: transform .38s ease-out
|
|
68
70
|
margin: 0
|
|
69
|
-
|
|
71
|
+
--inset: 8px
|
|
72
|
+
left: var(--inset)
|
|
73
|
+
top: var(--inset)
|
|
74
|
+
max-height: 'calc(%s - %s)' % (100vh $leftbar-bottom-margin)
|
|
75
|
+
.leftbar-container
|
|
76
|
+
--inset: 8px
|
|
77
|
+
height: 'calc(%s - %s)' % (100vh $leftbar-bottom-margin)
|
|
70
78
|
box-shadow: $boxshadow-card-float
|
|
71
79
|
z-index: 10
|
|
72
80
|
.l_main
|
|
@@ -75,7 +83,7 @@
|
|
|
75
83
|
.l_left
|
|
76
84
|
transform: translateX(0px)
|
|
77
85
|
.main-mask
|
|
78
|
-
opacity 1
|
|
86
|
+
// opacity 1
|
|
79
87
|
pointer-events: inherit
|
|
80
88
|
|
|
81
89
|
|
|
@@ -33,17 +33,23 @@
|
|
|
33
33
|
position: relative
|
|
34
34
|
|
|
35
35
|
h3:not([class])
|
|
36
|
+
position: relative
|
|
36
37
|
&:before,&:after
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
position absolute
|
|
39
|
+
font-size: 1.2em
|
|
40
|
+
background-color: hsla($color-theme, 0.5)
|
|
41
|
+
width: 1em
|
|
42
|
+
height: 1em
|
|
43
|
+
content: ''
|
|
44
|
+
opacity 1
|
|
45
|
+
display: inline-block
|
|
39
46
|
trans1 all
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
vertical-align: middle
|
|
48
|
+
&:before
|
|
49
|
+
margin-left: -1em
|
|
50
|
+
svg-mask-icon($h3Left)
|
|
42
51
|
&:after
|
|
43
|
-
|
|
44
|
-
&:hover
|
|
45
|
-
&:before,&:after
|
|
46
|
-
color: hsla($color-theme, 1)
|
|
52
|
+
svg-mask-icon($h3Right)
|
|
47
53
|
|
|
48
54
|
h4:not([class])
|
|
49
55
|
position: relative
|
|
@@ -56,12 +62,14 @@
|
|
|
56
62
|
margin-top: -12px
|
|
57
63
|
background: hsla($color-theme, 0.3)
|
|
58
64
|
border-radius: 50%
|
|
59
|
-
|
|
65
|
+
--blur-px: 8px
|
|
66
|
+
filter: blur(var(--blur-px))
|
|
60
67
|
pointer-events: none
|
|
61
68
|
z-index: -1
|
|
62
|
-
trans1 all
|
|
69
|
+
trans1 all 0.5s
|
|
63
70
|
&:hover:before
|
|
64
|
-
|
|
71
|
+
--blur-px: 24px
|
|
72
|
+
background: hsla($color-theme, 1)
|
|
65
73
|
|
|
66
74
|
ol,ul
|
|
67
75
|
margin-left: 'calc(%s * 2)' % var(--fsp)
|
|
@@ -71,7 +79,7 @@
|
|
|
71
79
|
>a:first-child
|
|
72
80
|
display: none
|
|
73
81
|
// 修正缩进效果
|
|
74
|
-
>blockquote
|
|
82
|
+
>blockquote,.tag-plugin.quote
|
|
75
83
|
text-align: center
|
|
76
84
|
--inset: calc(var(--fsp) * 2)
|
|
77
85
|
margin-left: var(--inset)
|
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
font-weight: 500
|
|
23
23
|
>a:first-child
|
|
24
24
|
&:before
|
|
25
|
-
content: '
|
|
25
|
+
content: hexo-config('style.header_prefix.h2')
|
|
26
26
|
h3
|
|
27
27
|
>a:first-child:before
|
|
28
|
-
content: '
|
|
28
|
+
content: hexo-config('style.header_prefix.h3')
|
|
29
29
|
h4
|
|
30
30
|
>a:first-child:before
|
|
31
|
-
content: '
|
|
31
|
+
content: hexo-config('style.header_prefix.h4')
|
|
32
32
|
h5
|
|
33
33
|
>a:first-child:before
|
|
34
|
-
content: '
|
|
34
|
+
content: hexo-config('style.header_prefix.h5')
|
|
35
35
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.article-footer
|
|
2
|
-
margin
|
|
2
|
+
margin: 2rem 1rem 1rem
|
|
3
3
|
padding: 1rem
|
|
4
4
|
background: var(--block)
|
|
5
5
|
border-radius: $border-card-l
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
|
|
43
43
|
.article-footer .social-wrap
|
|
44
44
|
grid-gap: 0.5rem 2rem
|
|
45
|
-
margin: 0
|
|
45
|
+
margin: 1rem 0 0.5rem
|
|
46
46
|
grid-template-columns: repeat(auto-fill, 20px);
|
|
47
47
|
a.social
|
|
48
48
|
background: none
|
|
@@ -1,76 +1,57 @@
|
|
|
1
1
|
.navbar
|
|
2
|
-
padding: 0 1rem
|
|
3
2
|
z-index: 8
|
|
4
|
-
top:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
position inherit
|
|
8
|
-
background: none
|
|
9
|
-
else
|
|
10
|
-
position: sticky
|
|
11
|
-
position: -webkit-sticky
|
|
12
|
-
margin-bottom: 1px
|
|
13
|
-
margin-top: -8px
|
|
14
|
-
&:after
|
|
15
|
-
content: ''
|
|
16
|
-
height: 2px
|
|
17
|
-
border-radius: 2px
|
|
18
|
-
position: absolute
|
|
19
|
-
bottom: 0
|
|
20
|
-
left: 1rem
|
|
21
|
-
right: 1rem
|
|
22
|
-
background: var(--block-hover)
|
|
3
|
+
top: 8px
|
|
4
|
+
position: sticky
|
|
5
|
+
position: -webkit-sticky
|
|
23
6
|
|
|
24
|
-
.navbar
|
|
25
|
-
|
|
7
|
+
.navbar-blur
|
|
8
|
+
margin: 0 1rem
|
|
9
|
+
border-radius: 64px
|
|
10
|
+
position: relative
|
|
11
|
+
newblur()
|
|
12
|
+
|
|
13
|
+
.navbar-container
|
|
14
|
+
max-width: 100%
|
|
15
|
+
margin: 1px
|
|
16
|
+
border-radius: 64px
|
|
26
17
|
overflow: scroll visible
|
|
27
18
|
scrollbar(0, 0)
|
|
19
|
+
|
|
20
|
+
.navbar nav
|
|
21
|
+
display: inline-flex
|
|
28
22
|
font-size: $fs-14
|
|
23
|
+
z-index: 1
|
|
29
24
|
>p
|
|
30
25
|
margin: 0
|
|
31
26
|
a
|
|
32
|
-
padding:
|
|
33
|
-
|
|
34
|
-
margin: 10px 0.25rem 8px 0
|
|
35
|
-
else
|
|
36
|
-
margin: 10px 0.25rem 8px 0.25rem
|
|
27
|
+
padding: .25rem 0.75rem
|
|
28
|
+
margin: 0.25rem
|
|
37
29
|
line-height: 2
|
|
38
|
-
color: var(--text-
|
|
39
|
-
border-radius:
|
|
30
|
+
color: var(--text-p1)
|
|
31
|
+
border-radius: 32px
|
|
40
32
|
font-weight: 500
|
|
41
33
|
white-space: nowrap
|
|
42
34
|
position: relative
|
|
43
35
|
z-index: 1
|
|
44
|
-
|
|
45
|
-
height: 2px
|
|
46
|
-
position: absolute
|
|
47
|
-
bottom: -8px
|
|
48
|
-
left: 0.75rem
|
|
49
|
-
right: 0.75rem
|
|
50
|
-
background: $color-theme
|
|
51
|
-
border-radius: 2px
|
|
52
|
-
pointer-events: none
|
|
36
|
+
trans1 all
|
|
53
37
|
&:hover
|
|
54
|
-
background: var(--
|
|
38
|
+
background: var(--alpha100)
|
|
55
39
|
&.active, &:hover
|
|
56
|
-
color: var(--text
|
|
40
|
+
color: var(--text)
|
|
57
41
|
&.active
|
|
58
|
-
background: var(--
|
|
42
|
+
background: var(--alpha60)
|
|
43
|
+
@media (prefers-color-scheme: dark)
|
|
44
|
+
background: rgba(white, 0.25)
|
|
59
45
|
box-shadow: $boxshadow-button
|
|
60
46
|
cursor default
|
|
61
47
|
pointer-events: none
|
|
48
|
+
backdrop-filter: saturate(300%)
|
|
62
49
|
&.active:after
|
|
63
50
|
content: ''
|
|
64
51
|
a+a
|
|
65
52
|
margin-left: 4px
|
|
66
53
|
|
|
67
|
-
@media screen and (max-width: $device-mobile-max)
|
|
54
|
+
@media screen and (max-width: $device-mobile-iphone-max)
|
|
68
55
|
.navbar.top
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
padding-right: 0
|
|
72
|
-
nav
|
|
73
|
-
a:first-child
|
|
74
|
-
margin-left: 1rem
|
|
75
|
-
a:last-child
|
|
76
|
-
margin-right: 1rem
|
|
56
|
+
top: 36px
|
|
57
|
+
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
.l_left
|
|
2
2
|
margin: 8px
|
|
3
|
-
height: 'calc(%s - 16px)' % 100vh
|
|
3
|
+
max-height: 'calc(%s - 16px)' % 100vh
|
|
4
4
|
border-radius: $border-card-l
|
|
5
|
-
overflow: hidden
|
|
6
|
-
overflow: clip
|
|
7
|
-
overflow-clip-margin: .5px
|
|
8
5
|
.header
|
|
9
6
|
margin: var(--gap-max) var(--gap-margin) 0
|
|
10
7
|
|
|
@@ -20,23 +17,70 @@
|
|
|
20
17
|
margin-right: auto
|
|
21
18
|
|
|
22
19
|
.l_left
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
.sidebg
|
|
21
|
+
pointer-events: none
|
|
22
|
+
position: absolute
|
|
23
|
+
top: 0
|
|
24
|
+
bottom: 0
|
|
25
|
+
left: 0
|
|
26
|
+
right: 0
|
|
27
|
+
background-position: center
|
|
28
|
+
background-size: cover
|
|
29
|
+
border-radius: $border-card-l
|
|
30
|
+
--saturate: 300%
|
|
31
|
+
--blur-px: convert(hexo-config('style.leftbar.blur-px'))
|
|
32
|
+
--brightness: 100%
|
|
33
|
+
if hexo-config('style.leftbar') && hexo-config('style.leftbar.background-image')
|
|
34
|
+
if hexo-config('style.leftbar.blur-px')
|
|
35
|
+
left: 20%
|
|
36
|
+
right: 20%
|
|
37
|
+
background-image: convert(hexo-config('style.leftbar.background-image'))
|
|
38
|
+
filter: saturate(var(--saturate)) brightness(var(--brightness)) blur(var(--blur-px))
|
|
39
|
+
@media screen and (prefers-color-scheme: dark)
|
|
40
|
+
--blur-px: 'calc(%s * 0.75)' % convert(hexo-config('style.leftbar.blur-px'))
|
|
41
|
+
--saturate: 200%
|
|
42
|
+
--brightness: 75%
|
|
43
|
+
else if hexo-config('style.leftbar') && hexo-config('style.leftbar.background')
|
|
44
|
+
background: convert(hexo-config('style.leftbar.background'))
|
|
45
|
+
|
|
29
46
|
.leftbar-container
|
|
30
|
-
height:
|
|
47
|
+
height: 'calc(%s - 16px)' % 100vh
|
|
31
48
|
display: flex
|
|
32
49
|
flex-direction: column
|
|
33
50
|
word-break: break-all
|
|
34
51
|
text-align: justify
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
52
|
+
border-radius: $border-card-l
|
|
53
|
+
overflow: hidden
|
|
54
|
+
&:before,&:after
|
|
55
|
+
position: absolute
|
|
56
|
+
pointer-events: none
|
|
57
|
+
content: ''
|
|
58
|
+
top: 0
|
|
59
|
+
bottom: 0
|
|
60
|
+
left: 0
|
|
61
|
+
right: 0
|
|
62
|
+
border-radius: $border-card-l
|
|
63
|
+
&:before
|
|
64
|
+
@media screen and (min-width: $device-mobile-max)
|
|
65
|
+
background: rgba(white, 0.5)
|
|
66
|
+
box-shadow: inset 0 0 32px 1px rgba(white, 0.5)
|
|
67
|
+
backdrop-filter: saturate(300%)
|
|
68
|
+
mask: linear-gradient(black, rgba(black, 0.5), 80%, transparent, 90%, transparent)
|
|
69
|
+
|
|
70
|
+
@media screen and (prefers-color-scheme: dark)
|
|
71
|
+
background: rgba(white, 0.05)
|
|
72
|
+
box-shadow: inset 0 0 32px 1px rgba(white, 0.2)
|
|
73
|
+
|
|
74
|
+
@media screen and (max-width: $device-mobile-max)
|
|
75
|
+
.l_left
|
|
76
|
+
overflow: hidden
|
|
77
|
+
background: var(--alpha100)
|
|
78
|
+
.sidebg
|
|
79
|
+
left: 0
|
|
80
|
+
right: 0
|
|
81
|
+
--saturate: 300%
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
@media screen and (max-width: $device-mobile-max) and (prefers-color-scheme: dark)
|
|
85
|
+
.l_left .leftbar-container:after
|
|
86
|
+
background: var(--alpha20)
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
@media screen and (max-width: $device-laptop)
|
|
78
78
|
.widget-wrapper
|
|
79
79
|
margin-top: var(--gap-margin)
|
|
80
|
-
border-radius: $border-card
|
|
80
|
+
border-radius: $border-card-s
|
|
81
81
|
// 大屏幕
|
|
82
82
|
@media screen and (min-width: $device-laptop)
|
|
83
83
|
.widget-wrapper.markdown .widget-body
|
package/source/css/_custom.styl
CHANGED
|
@@ -21,6 +21,9 @@ $ff-logo = $ff-body
|
|
|
21
21
|
$iQuoteLeft = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3C!-- Icon from BoxIcons Solid by Atisa - https://creativecommons.org/licenses/by/4.0/ --%3E%3Cpath fill='currentColor' d='M3.691 6.292C5.094 4.771 7.217 4 10 4h1v2.819l-.804.161c-1.37.274-2.323.813-2.833 1.604A2.9 2.9 0 0 0 6.925 10H10a1 1 0 0 1 1 1v7c0 1.103-.897 2-2 2H3a1 1 0 0 1-1-1v-5l.003-2.919c-.009-.111-.199-2.741 1.688-4.789M20 20h-6a1 1 0 0 1-1-1v-5l.003-2.919c-.009-.111-.199-2.741 1.688-4.789C16.094 4.771 18.217 4 21 4h1v2.819l-.804.161c-1.37.274-2.323.813-2.833 1.604A2.9 2.9 0 0 0 17.925 10H21a1 1 0 0 1 1 1v7c0 1.103-.897 2-2 2'/%3E%3C/svg%3E"
|
|
22
22
|
$iQuoteRight = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3C!-- Icon from BoxIcons Solid by Atisa - https://creativecommons.org/licenses/by/4.0/ --%3E%3Cpath fill='currentColor' d='M20.309 17.708C22.196 15.66 22.006 13.03 22 13V5a1 1 0 0 0-1-1h-6c-1.103 0-2 .897-2 2v7a1 1 0 0 0 1 1h3.078a2.9 2.9 0 0 1-.429 1.396c-.508.801-1.465 1.348-2.846 1.624l-.803.16V20h1c2.783 0 4.906-.771 6.309-2.292m-11.007 0C11.19 15.66 10.999 13.03 10.993 13V5a1 1 0 0 0-1-1h-6c-1.103 0-2 .897-2 2v7a1 1 0 0 0 1 1h3.078a2.9 2.9 0 0 1-.429 1.396c-.508.801-1.465 1.348-2.846 1.624l-.803.16V20h1c2.783 0 4.906-.771 6.309-2.292'/%3E%3C/svg%3E"
|
|
23
23
|
|
|
24
|
+
$h3Left = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3C!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --%3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M13.488 4.43a.75.75 0 0 1 .081 1.058L7.988 12l5.581 6.512a.75.75 0 1 1-1.138.976l-6-7a.75.75 0 0 1 0-.976l6-7a.75.75 0 0 1 1.057-.081' clip-rule='evenodd'/%3E%3Cpath fill='currentColor' d='M17.75 5a.75.75 0 0 0-1.32-.488l-6 7a.75.75 0 0 0 0 .976l6 7A.75.75 0 0 0 17.75 19z'/%3E%3C/svg%3E"
|
|
25
|
+
$h3Right = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 24 24'%3E%3C!-- Icon from Solar by 480 Design - https://creativecommons.org/licenses/by/4.0/ --%3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M10.512 4.43a.75.75 0 0 0-.081 1.058L16.012 12l-5.581 6.512a.75.75 0 1 0 1.138.976l6-7a.75.75 0 0 0 0-.976l-6-7a.75.75 0 0 0-1.057-.081' clip-rule='evenodd'/%3E%3Cpath fill='currentColor' d='M6.25 5a.75.75 0 0 1 1.32-.488l6 7a.75.75 0 0 1 0 .976l-6 7A.75.75 0 0 1 6.25 19z'/%3E%3C/svg%3E"
|
|
26
|
+
|
|
24
27
|
if hexo-config('style.font-family.body')
|
|
25
28
|
$ff-body = convert(hexo-config('style.font-family.body'))
|
|
26
29
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// 用来进行设备适配,请勿修改
|
|
2
2
|
$device-mobile-375 = 375px
|
|
3
3
|
$device-mobile-425 = 425px
|
|
4
|
+
$device-mobile-iphone-max = 450px
|
|
4
5
|
$device-mobile = 500px
|
|
5
6
|
$device-mobile-max = 667px
|
|
6
7
|
$device-tablet = 768px
|
|
@@ -50,4 +51,8 @@ $c-blue = #2196f3
|
|
|
50
51
|
$c-purple = #9c27b0
|
|
51
52
|
|
|
52
53
|
$hue-yellow = 50
|
|
53
|
-
$cDeepOrange = hsl(14 100% 57%)
|
|
54
|
+
$cDeepOrange = hsl(14 100% 57%)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
$leftbar-bottom-margin = 128px
|
|
58
|
+
$rightbar-bottom-margin = 96px
|
|
@@ -132,3 +132,30 @@ hoverable-card()
|
|
|
132
132
|
onlight()
|
|
133
133
|
@media (prefers-color-scheme: dark)
|
|
134
134
|
ondark()
|
|
135
|
+
|
|
136
|
+
newblur()
|
|
137
|
+
box-shadow: 0 0 2px rgba(black, .05), 0 0 8px rgba(black, .05)
|
|
138
|
+
trans1: all
|
|
139
|
+
&:before,&:after
|
|
140
|
+
z-index -1
|
|
141
|
+
position: absolute
|
|
142
|
+
pointer-events: none
|
|
143
|
+
content: ''
|
|
144
|
+
left: 0
|
|
145
|
+
right: 0
|
|
146
|
+
top: 0
|
|
147
|
+
bottom: 0
|
|
148
|
+
border-radius: 64px
|
|
149
|
+
&:before
|
|
150
|
+
backdrop-filter: blur(8px)
|
|
151
|
+
&:after
|
|
152
|
+
--blur-px: 16px
|
|
153
|
+
--blur-sat: 500%
|
|
154
|
+
background: var(--alpha50)
|
|
155
|
+
backdrop-filter: saturate(var(--blur-sat)) blur(var(--blur-px))
|
|
156
|
+
mask: linear-gradient(rgba(white, 1), 10%, rgba(white, 0.2), 90%, rgba(white, 1)), linear-gradient(90deg, rgba(white, 1), 10%, rgba(white, 0.2), 90%, rgba(white, 1))
|
|
157
|
+
box-shadow: inset 0 0 8px 1px white
|
|
158
|
+
trans1 all
|
|
159
|
+
@media (prefers-color-scheme: dark)
|
|
160
|
+
opacity 0.4
|
|
161
|
+
background: var(--alpha20)
|