hexo-theme-stellar 1.31.0 → 1.32.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 (67) hide show
  1. package/_config.yml +15 -13
  2. package/_data/icons.yml +3 -3
  3. package/layout/_partial/comments/artalk/script.ejs +1 -2
  4. package/layout/_partial/comments/layout.ejs +1 -1
  5. package/layout/_partial/head.ejs +15 -3
  6. package/layout/_partial/scripts/theme.ejs +3 -3
  7. package/layout/_partial/sidebar/index_leftbar.ejs +9 -9
  8. package/layout/index.ejs +3 -1
  9. package/layout/layout.ejs +3 -2
  10. package/package.json +4 -2
  11. package/scripts/events/index.js +39 -2
  12. package/scripts/events/lib/fix_image_tags.js +44 -0
  13. package/scripts/events/lib/get_image_ratios.js +110 -0
  14. package/scripts/events/lib/version-check.js +2 -0
  15. package/scripts/helpers/json_ld.js +5 -1
  16. package/scripts/tags/index.js +1 -1
  17. package/scripts/tags/lib/{quote.js → blockquote.js} +5 -5
  18. package/scripts/tags/lib/image.js +16 -6
  19. package/scripts/tags/lib/navbar.js +2 -2
  20. package/scripts/tags/lib/timeline.js +1 -1
  21. package/scripts/tags/lib/video.js +2 -2
  22. package/source/css/_common/base.styl +16 -6
  23. package/source/css/_common/canonical.styl +1 -1
  24. package/source/css/_common/highlight.styl +5 -2
  25. package/source/css/_components/layout.styl +11 -10
  26. package/source/css/_components/list.styl +3 -0
  27. package/source/css/_components/main.styl +1 -1
  28. package/source/css/_components/md.styl +4 -2
  29. package/source/css/_components/pages/archives.styl +2 -2
  30. package/source/css/_components/pages/article-story.styl +40 -32
  31. package/source/css/_components/pages/article-tech.styl +1 -1
  32. package/source/css/_components/pages/notebook.styl +1 -1
  33. package/source/css/_components/partial/article-banner.styl +4 -1
  34. package/source/css/_components/partial/footer.styl +1 -1
  35. package/source/css/_components/partial/navbar.styl +2 -1
  36. package/source/css/_components/sidebar/nav-area.styl +1 -1
  37. package/source/css/_components/sidebar/search.styl +44 -21
  38. package/source/css/_components/sidebar/sidebar.styl +9 -5
  39. package/source/css/_components/tag-plugins/banner.styl +1 -1
  40. package/source/css/_components/tag-plugins/button.styl +3 -4
  41. package/source/css/_components/tag-plugins/copy.styl +12 -8
  42. package/source/css/_components/tag-plugins/friends.styl +1 -1
  43. package/source/css/_components/tag-plugins/gallery.styl +6 -0
  44. package/source/css/_components/tag-plugins/image.styl +10 -0
  45. package/source/css/_components/tag-plugins/navbar.styl +18 -8
  46. package/source/css/_components/tag-plugins/note.styl +0 -3
  47. package/source/css/_components/tag-plugins/override.styl +0 -5
  48. package/source/css/_components/tag-plugins/quot.styl +2 -2
  49. package/source/css/_components/tag-plugins/quote.styl +1 -1
  50. package/source/css/_components/tag-plugins/tabs.styl +4 -3
  51. package/source/css/_components/tag-plugins/timeline.styl +2 -2
  52. package/source/css/_components/tag-plugins/toc.styl +1 -1
  53. package/source/css/_components/widgets/list.styl +1 -1
  54. package/source/css/_components/widgets/markdown.styl +0 -7
  55. package/source/css/_components/widgets/toc.styl +7 -5
  56. package/source/css/_components/widgets/widgets.styl +0 -5
  57. package/source/css/_custom.styl +5 -7
  58. package/source/css/_defines/const.styl +1 -1
  59. package/source/css/_defines/func.styl +9 -5
  60. package/source/css/_defines/theme.styl +4 -15
  61. package/source/css/_plugins/comments/artalk.styl +114 -2
  62. package/source/css/_plugins/comments/twikoo.styl +3 -3
  63. package/source/css/_plugins/index.styl +5 -5
  64. package/source/css/_plugins/lazyload.styl +49 -2
  65. package/source/js/search/local-search.js +163 -151
  66. package/source/js/services/artalk_latest_comment.js +1 -1
  67. package/layout/_partial/widgets/search.ejs +0 -0
@@ -18,7 +18,7 @@ module.exports = ctx => function(args) {
18
18
  if (args.links) {
19
19
  args.links = args.links.split(' ')
20
20
  }
21
- var el = `<div class="tag-plugin navbar"><nav>`
21
+ var el = `<div class="tag-plugin navbar">`
22
22
  for (let link of args.links) {
23
23
  const matches = link.match(/\[(.*?)\]\((.*?)\)/i)
24
24
  if (matches?.length > 2) {
@@ -33,6 +33,6 @@ module.exports = ctx => function(args) {
33
33
  el += `<a class="link" href="#${link}">${link}</a>`
34
34
  }
35
35
  }
36
- el += `</nav></div>`
36
+ el += `</div>`
37
37
  return el
38
38
  }
@@ -18,7 +18,7 @@ function layoutNodeTitle(ctx, content) {
18
18
  var el = ''
19
19
  el += '<div class="header">'
20
20
  if (content && content.length > 0) {
21
- el += content
21
+ el += `<span>${content}</span>`
22
22
  }
23
23
  el += '</div>'
24
24
  return el
@@ -14,7 +14,7 @@ module.exports = ctx => function (args) {
14
14
  args.width = '100%'
15
15
  }
16
16
  if (args.bilibili) {
17
- return `<div class="tag-plugin video" style="aspect-ratio:${args.ratio || 16 / 9};max-width:${args.width};">
17
+ return `<div class="tag-plugin video-player" style="aspect-ratio:${args.ratio || 16 / 9};max-width:${args.width};">
18
18
  <iframe src="https://player.bilibili.com/player.html?bvid=${args.bilibili}&autoplay=${args.autoplay || 'false'}" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true">
19
19
  </iframe>
20
20
  </div>
@@ -26,7 +26,7 @@ module.exports = ctx => function (args) {
26
26
  } else {
27
27
  args.autoplay = '0'
28
28
  }
29
- return `<div class="tag-plugin video" style="aspect-ratio:${args.ratio || 16 / 9};max-width:${args.width};">
29
+ return `<div class="tag-plugin video-player" style="aspect-ratio:${args.ratio || 16 / 9};max-width:${args.width};">
30
30
  <iframe style="border:none" src="https://www.youtube.com/embed/${args.youtube}?rel=0&disablekb=1&playsinline=1&autoplay=${args.autoplay}" picture-in-picture="true" allowfullscreen="true" >
31
31
  </iframe>
32
32
  </div>
@@ -23,7 +23,6 @@ hr
23
23
  img
24
24
  max-width: 100%
25
25
 
26
-
27
26
  li
28
27
  font-size: 'calc(%s - 1px)' % var(--fsp)
29
28
 
@@ -36,24 +35,35 @@ ul,ol
36
35
  table:not([class])
37
36
  border-collapse: collapse
38
37
  overflow: auto
39
- display: block
40
38
  margin: 1rem 0
41
39
  max-width: 100%
42
40
  vertical-align: text-top
43
41
  --fsp: $fsp2
44
42
  font-size: var(--fsp)
43
+ scrollbar(0,0)
44
+ display: table
45
45
  th
46
46
  background: var(--block)
47
+ border-top: 1px solid var(--block-border)
48
+ border-bottom: 1px solid var(--block-border)
47
49
  td,th
48
- padding: 0.5em 1em
49
- border: 1px solid var(--block-hover)
50
+ padding: 4px 1em
50
51
  line-height: 1.5
51
52
  tr
52
- word-break: keep-all
53
- white-space:nowrap
53
+ border-bottom: 1px dashed var(--block-border)
54
54
  trans()
55
55
  &:hover
56
56
  background: var(--block)
57
57
 
58
+ @media screen and (min-width: $device-mobile-max)
59
+ width 100%
60
+
61
+ @media screen and (max-width: $device-mobile-max)
62
+ display: block
63
+ tr
64
+ word-break: keep-all
65
+ white-space:nowrap
66
+
67
+
58
68
  *[ff=title]
59
69
  font-family: $ff-logo
@@ -5,7 +5,7 @@
5
5
  left: 50%
6
6
  transform: translateX(-50%)
7
7
  max-width: 90%
8
- background-color: var(--block-hover)
8
+ background-color: var(--card)
9
9
  color: var(--text-p1)
10
10
  font-size: 1rem
11
11
  font-family: #fff8e1
@@ -36,7 +36,7 @@ p>code:not([class]),li>code:not([class])
36
36
  display: block
37
37
  border-bottom-left-radius: $border-button
38
38
  border-bottom-right-radius: $border-button
39
- background: var(--block-hover)
39
+ background: var(--block)
40
40
  >table
41
41
  overflow: auto
42
42
  display: block
@@ -50,6 +50,7 @@ p>code:not([class]),li>code:not([class])
50
50
  scrollbar-codeblock(convert(hexo-config('style.codeblock.scrollbar')))
51
51
  tr
52
52
  background: transparent
53
+ border: none
53
54
  &:hover
54
55
  background: transparent
55
56
 
@@ -88,11 +89,13 @@ p>code:not([class]),li>code:not([class])
88
89
  background: var(--block)
89
90
  margin: 0
90
91
  padding: 1em 0
92
+ pre
93
+ background: none
91
94
  .blob-code-inner
92
95
  color: var(--text-p1)
93
96
  font-family: $ff-codeblock
94
97
  .gist-meta
95
- background: var(--block-border)
98
+ background: var(--block)
96
99
 
97
100
 
98
101
  table:not([class])
@@ -1,7 +1,9 @@
1
1
  .l_body
2
2
  display: grid
3
3
  grid-template-columns: 1fr minmax(200px,var(--width-main)) 1fr
4
- grid-gap: var(--gap-margin)
4
+ grid-gap: calc(var(--gap-margin) * 4)
5
+ @media screen and (max-width: $device-desktop)
6
+ grid-gap: calc(var(--gap-margin) * 2)
5
7
  margin: auto
6
8
  font-size: var(--fsp)
7
9
 
@@ -16,11 +18,10 @@
16
18
 
17
19
  .l_body .l_left
18
20
  justify-self: right
19
- top: 8px
21
+ top: calc(var(--gap-margin) * 2)
20
22
  .l_body .l_right
21
23
  justify-self: left
22
- --gap-margin: 0px
23
- max-height: calc(100% - 8px * 2)
24
+ max-height: calc(100% - calc(var(--gap-margin) * 2) * 2)
24
25
  .widgets
25
26
  height: 100%
26
27
  overflow visible
@@ -32,16 +33,16 @@
32
33
  .laptop-only
33
34
  display: block !important
34
35
  .l_body
36
+ grid-gap: calc(var(--gap-margin) * 1)
35
37
  .l_right
36
- top: 8px
37
38
  position: fixed
38
39
  transform: translateX(320px)
39
40
  transition: transform .38s ease-out
40
41
  margin: 0
41
42
  --inset: 8px
42
43
  right: var(--inset)
43
- top: var(--inset)
44
- max-height: 'calc(%s - %s)' % (100vh $rightbar-bottom-margin)
44
+ top: calc(var(--gap-margin) * 2)
45
+ max-height: 'calc(%s - %s * 2 - %s)' % (100vh var(--gap-margin) $rightbar-bottom-margin)
45
46
  box-shadow: $boxshadow-card-float
46
47
  z-index: 10
47
48
  background: var(--site-bg)
@@ -70,11 +71,11 @@
70
71
  margin: 0
71
72
  --inset: 8px
72
73
  left: var(--inset)
73
- top: var(--inset)
74
- max-height: 'calc(%s - %s)' % (100vh $leftbar-bottom-margin)
74
+ top: calc(var(--gap-margin) * 2)
75
+ max-height: 'calc(%s - %s * 2 - %s)' % (100vh var(--gap-margin) $leftbar-bottom-margin)
75
76
  .leftbar-container
76
77
  --inset: 8px
77
- height: 'calc(%s - %s)' % (100vh $leftbar-bottom-margin)
78
+ height: 'calc(%s - %s * 2 - %s)' % (100vh var(--gap-margin) $leftbar-bottom-margin)
78
79
  box-shadow: $boxshadow-card-float
79
80
  z-index: 10
80
81
  .l_main
@@ -120,13 +120,16 @@
120
120
  right: 0
121
121
  height: var(--blur-height)
122
122
  backdrop-filter: saturate(var(--blur-sat)) blur(var(--blur-px))
123
+ -webkit-backdrop-filter: saturate(var(--blur-sat)) blur(var(--blur-px))
123
124
  trans1 all
124
125
  &[position=top]:before
125
126
  top: 0
126
127
  mask: linear-gradient(black, rgba(black, 0.75), transparent)
128
+ -webkit-mask: linear-gradient(black, rgba(black, 0.75), transparent)
127
129
  &[position=bottom]:before
128
130
  bottom: 0
129
131
  mask: linear-gradient(transparent, rgba(black, 0.75), black)
132
+ -webkit-mask: linear-gradient(transparent, rgba(black, 0.75), black)
130
133
  .cover-info
131
134
  padding: 1.5rem 1rem
132
135
  position: absolute
@@ -2,7 +2,7 @@
2
2
  position: relative
3
3
  padding-bottom: var(--gap-max)
4
4
  @media screen and (min-width: $device-mobile-max)
5
- padding-top: 8px
5
+ padding-top: calc(var(--gap-margin) * 2)
6
6
  header
7
7
  margin: 2rem 1rem 1rem
8
8
  .logo-wrap
@@ -24,7 +24,7 @@
24
24
  ul:not(:last-child),
25
25
  ol:not(:last-child)
26
26
  padding-bottom: .5rem
27
- margin: 0
27
+ margin: 0 .25rem
28
28
  blockquote,ul,ol
29
29
  p,ul,ol
30
30
  --fsp: $fsp1
@@ -75,9 +75,11 @@
75
75
 
76
76
  // 图片样式
77
77
  .md-text img
78
- border-radius: $border-image
79
78
  margin: auto
80
79
  display: block
80
+ .md-text.content
81
+ p>img, .tag-plugin.image .image-bg
82
+ border-radius: $border-image
81
83
 
82
84
  // 链接样式
83
85
  li:not([class]) a:not([class])
@@ -67,7 +67,7 @@
67
67
  opacity: .5
68
68
  font-size: $fs-12
69
69
  &:hover
70
- background: var(--block-hover)
70
+ background: var(--block-border)
71
71
  color: var(--text)
72
72
  .badge
73
73
  opacity: 1
@@ -99,7 +99,7 @@
99
99
  color $color-theme
100
100
  opacity: 1
101
101
  color: var(--text)
102
- background: var(--block-hover)
102
+ background: var(--block-border)
103
103
 
104
104
  @media screen and (min-width: $device-mobile)
105
105
  .post-list.author #archive
@@ -1,5 +1,9 @@
1
1
  .l_body[type=story] .md-text.content
2
2
  --fsp: 'calc(%s + 1px)' % $fs-body
3
+ --gap-p: 2rem
4
+ div.tag-plugin,p>img
5
+ margin-top: 2.4rem
6
+ margin-bottom: 2.4rem
3
7
  // 段落标题
4
8
  h1,h2,h3,h4,h5,h6
5
9
  color: var(--text)
@@ -78,44 +82,48 @@
78
82
  margin: 2em 0 1.5em
79
83
  >a:first-child
80
84
  display: none
81
- // 修正缩进效果
82
- >blockquote,.tag-plugin.quote
83
- text-align: center
84
- --inset: calc(var(--fsp) * 2)
85
- margin-left: var(--inset)
86
- margin-right: var(--inset)
87
- background: var(--block)
88
- padding: 1rem 2rem
89
- border-radius: $border-card
90
- &:before,&:after
91
- position: absolute
92
- font-size: 2rem
93
- background-color: hsla($color-theme, 0.25)
94
- top: -0.3em
95
- width: 1em
96
- height: 1em
97
- content: ''
98
- opacity 1
99
- trans1 all
100
- &:before
101
- left: -0.3em
102
- svg-mask-icon($iQuoteLeft)
103
- &:after
104
- right: -0.3em
105
- svg-mask-icon($iQuoteRight)
106
- p:not([class])
107
- color: var(--text-p2)
108
- font-size: $fs-body
109
- text-indent: 2em
110
- &:hover
111
- &:before,&:after
112
- background-color: hsla($color-theme, 0.5)
85
+
113
86
  // 取消缩进效果
114
87
  .poetry, .okr, .timeline, li, .article-footer
115
88
  p:not([class])
116
89
  text-indent: 0
117
90
  text-align: convert(hexo-config('style.text-align'))
118
91
 
92
+ p>img, .tag-plugin.image .image-bg
93
+ border-radius: $border-image-l
94
+
95
+
96
+ .l_body[type=story] .md-text.content>blockquote, .md-text.content .tag-plugin.blockquote
97
+ text-align: center
98
+ --inset: calc(var(--fsp) * 2)
99
+ margin-left: var(--inset)
100
+ margin-right: var(--inset)
101
+ background: var(--block)
102
+ padding: 1rem 2rem
103
+ border-radius: $border-card
104
+ &:before,&:after
105
+ position: absolute
106
+ font-size: 2rem
107
+ background-color: hsla($color-theme, 0.25)
108
+ top: -0.3em
109
+ width: 1em
110
+ height: 1em
111
+ content: ''
112
+ opacity 1
113
+ trans1 all
114
+ &:before
115
+ left: -0.3em
116
+ svg-mask-icon($iQuoteLeft)
117
+ &:after
118
+ right: -0.3em
119
+ svg-mask-icon($iQuoteRight)
120
+ p:not([class])
121
+ color: var(--text-p2)
122
+ font-size: $fs-body
123
+ text-indent: 2em
124
+ &:hover
125
+ &:before,&:after
126
+ background-color: hsla($color-theme, 0.5)
119
127
 
120
128
 
121
129
  .l_body[type=story] .article.banner .content .bottom.only-title
@@ -1,4 +1,4 @@
1
- .l_body[type='tech'] .md-text
1
+ .l_body[type='tech'] article.content
2
2
  h1,h2,h3,h4,h5,h6
3
3
  color: var(--text)
4
4
  line-height: 1.8
@@ -24,7 +24,7 @@
24
24
  color $color-theme
25
25
  opacity: 1
26
26
  color: var(--text)
27
- background: var(--block-hover)
27
+ background: var(--block-border)
28
28
 
29
29
  .post-list .post-card .meta.cap .tag
30
30
  &:before
@@ -49,18 +49,21 @@
49
49
  position: absolute
50
50
  z-index 0
51
51
  left: 0
52
- width: 100%
52
+ right: 0
53
53
  backdrop-filter: saturate(var(--blur-sat)) blur(var(--blur-px))
54
+ -webkit-backdrop-filter: saturate(var(--blur-sat)) blur(var(--blur-px))
54
55
  trans1 all
55
56
  opacity var(--blur-opacity)
56
57
  &:before
57
58
  top: 0
58
59
  height: var(--blur-height-top)
59
60
  mask: linear-gradient(black, rgba(black, 0.75), transparent)
61
+ -webkit-mask: linear-gradient(black, rgba(black, 0.75), transparent)
60
62
  &:after
61
63
  bottom: 0
62
64
  height: var(--blur-height-bottom)
63
65
  mask: linear-gradient(transparent, rgba(black, 0.75), black)
66
+ -webkit-mask: linear-gradient(transparent, rgba(black, 0.75), black)
64
67
  .top,.bottom
65
68
  z-index 1
66
69
 
@@ -7,7 +7,7 @@
7
7
  transition: background 0.2s ease-out
8
8
  &:hover
9
9
  color: var(--text)
10
- background: var(--block-hover)
10
+ background: var(--block-border)
11
11
 
12
12
  .page-footer .sitemap
13
13
  margin: .5rem -4px 2rem
@@ -1,6 +1,6 @@
1
1
  .navbar
2
2
  z-index: 8
3
- top: 8px
3
+ top: calc(var(--gap-margin) * 2)
4
4
  position: sticky
5
5
  position: -webkit-sticky
6
6
 
@@ -46,6 +46,7 @@
46
46
  cursor default
47
47
  pointer-events: none
48
48
  backdrop-filter: saturate(300%)
49
+ -webkit-backdrop-filter: saturate(300%)
49
50
  &.active:after
50
51
  content: ''
51
52
  a+a
@@ -1,2 +1,2 @@
1
1
  .nav-area
2
- margin: 32px var(--gap-margin) 0
2
+ margin: 1rem var(--gap-margin) 0
@@ -1,21 +1,40 @@
1
1
 
2
2
  .search-wrapper
3
+ padding-bottom: 32px
3
4
  width: 100%
5
+ border-radius: $border-card-s
4
6
  >.search-form
5
7
  position: sticky
6
- margin-bottom: 8px
7
- top: 1rem
8
+ top: 0
8
9
  height: 40px
9
10
  display: flex
10
11
  flex-direction: row
11
12
  align-items: center
12
13
  transition: 0.38s ease-out
13
- z-index: 0
14
- border-radius: $border-bar
14
+ z-index: 1
15
+ border-radius: $border-card-s
15
16
  color: var(--text)
16
- background: var(--alpha50)
17
- &:has(input:focus)
17
+ >*
18
+ z-index: 1
19
+ &:before
20
+ position: absolute
21
+ content: ''
22
+ height: 2px
23
+ bottom: 0
24
+ left: 1rem
25
+ right: 1rem
26
+ border-radius: $border-bar
18
27
  background: var(--alpha100)
28
+ @media screen and (prefers-color-scheme: dark)
29
+ background: var(--alpha20)
30
+ z-index 0
31
+ trans1 all
32
+ &:hover,&:has(input:focus),&:has(input:not(:placeholder-shown))
33
+ &:before
34
+ background: var(--alpha100)
35
+ height: 100%
36
+ left: 0
37
+ right: 0
19
38
  .search-input
20
39
  width: 100%
21
40
  box-sizing: border-box
@@ -23,6 +42,10 @@
23
42
  font-size: $fs-14
24
43
  padding: 12px 0
25
44
  color: var(--text)
45
+ &::placeholder
46
+ color: var(--text-p3)
47
+ @media screen and (prefers-color-scheme: dark)
48
+ color: var(--text-p2)
26
49
  .search-button
27
50
  border-radius: $border-bar
28
51
  display: flex
@@ -30,8 +53,7 @@
30
53
  height: 40px
31
54
  svg
32
55
  height: 1rem
33
- width: 40px
34
- margin-left: 4px
56
+ width: calc((var(--side-content-width) + var(--gap-padding) * 2 - 3 * 8px) * 0.25)
35
57
  color: var(--text-p2)
36
58
  fill: currentColor
37
59
  path[p-id="1562"]
@@ -52,33 +74,34 @@
52
74
  text-align: center
53
75
  font-size: $fs-14
54
76
  padding: 2rem
77
+ margin: 8px 0
55
78
  background: var(--alpha20)
56
- border-radius: $border-card
79
+ border-radius: $border-card-s
57
80
 
58
81
 
59
82
  #search-result
60
83
  max-height: 60vh
61
- overflow: scroll
84
+ overflow: auto
62
85
  scrollbar-width: none
63
86
  scrollbar(0, 0)
64
- border-radius: $border-card
87
+ border-radius: $border-bar
65
88
  &:empty
66
89
  display: none
67
90
  .search-result-list
68
91
  padding: 0
69
- margin: 0
92
+ margin: 8px 0
70
93
  list-style-type: none
71
94
  li a
72
- display: block
73
- background: var(--alpha20)
74
- line-height: 1.2
75
- padding: 0.75rem 1rem
76
- border-radius: $border-card
77
- trans1 background
78
- &:hover
79
- background: var(--alpha100)
95
+ display: block
96
+ background: var(--alpha20)
97
+ line-height: 1.2
98
+ padding: 0.75rem 1rem
99
+ border-radius: $border-card-s
100
+ trans1 background
101
+ &:hover
102
+ background: var(--alpha100)
80
103
  li+li
81
- margin-top: 8px
104
+ margin-top: 8px
82
105
  .search-result-title
83
106
  color: var(--text-p1)
84
107
  font-weight: 700
@@ -1,12 +1,12 @@
1
1
  .l_left
2
- margin: 8px
3
- max-height: 'calc(%s - 16px)' % 100vh
2
+ margin: calc(var(--gap-margin) * 2) var(--gap-margin)
3
+ max-height: 'calc(%s - %s * 2 - %s)' % (100vh var(--gap-margin) $leftbar-bottom-margin)
4
4
  border-radius: $border-card-l
5
5
  .header
6
6
  margin: var(--gap-max) var(--gap-margin) 0
7
7
 
8
8
  .l_right
9
- margin: 8px
9
+ margin: calc(var(--gap-margin) * 2) 0
10
10
  border-radius: $border-card-l
11
11
  @media screen and (min-width: $device-2k)
12
12
  .l_left
@@ -44,7 +44,7 @@
44
44
  background: convert(hexo-config('style.leftbar.background'))
45
45
 
46
46
  .leftbar-container
47
- height: 'calc(%s - 80px)' % 100vh
47
+ height: 'calc(%s - %s * 2 - %s)' % (100vh var(--gap-margin) $leftbar-bottom-margin)
48
48
  display: flex
49
49
  flex-direction: column
50
50
  word-break: break-all
@@ -52,7 +52,9 @@
52
52
  border-radius: $border-card-l
53
53
  overflow: hidden
54
54
  >.widgets
55
- mask: linear-gradient(transparent, white, 10%, white, 90%, transparent)
55
+ border-radius: $border-bar
56
+ mask: linear-gradient(white, 90%, transparent)
57
+ -webkit-mask: linear-gradient(white, 90%, transparent)
56
58
  >*
57
59
  z-index 1
58
60
  &:before,&:after
@@ -69,7 +71,9 @@
69
71
  background: rgba(white, 0.5)
70
72
  box-shadow: inset 0 0 32px 1px rgba(white, 0.5)
71
73
  backdrop-filter: saturate(300%)
74
+ -webkit-backdrop-filter: saturate(300%)
72
75
  mask: linear-gradient(black, rgba(black, 0.5), 70%, transparent, 90%, transparent)
76
+ -webkit-mask: linear-gradient(black, rgba(black, 0.5), 70%, transparent, 90%, transparent)
73
77
 
74
78
  @media screen and (prefers-color-scheme: dark)
75
79
  background: rgba(white, 0.05)
@@ -1,5 +1,5 @@
1
1
  .banner
2
- border-radius: $border-card
2
+ border-radius: $border-image
3
3
  &.top
4
4
  border-radius: $border-card-l
5
5
  position: relative
@@ -4,7 +4,7 @@ a.tag-plugin.button
4
4
  display: inline-flex
5
5
  align-items: baseline
6
6
  justify-content: center
7
- padding: 0 4px
7
+ padding: 0 .5rem
8
8
  trans1 background
9
9
  margin: .5em 0
10
10
  font-size: 1em
@@ -23,10 +23,9 @@ a.tag-plugin.button
23
23
  a.tag-plugin.button[size='xs']
24
24
  margin: 0
25
25
  border-radius: 4px
26
- svg,img
26
+ padding: 0 4px
27
+ svg,img,span
27
28
  margin: 0 2px
28
- span
29
- margin: 2px
30
29
 
31
30
  a.tag-plugin.button:hover
32
31
  --theme: $color-hover
@@ -9,11 +9,12 @@
9
9
  width: 100%
10
10
  min-width: 200px
11
11
  span
12
- line-height: 3
13
- padding: 0 1rem
14
- background: var(--block)
15
- border-right: 1px solid var(--block-border)
16
- color: var(--text-p3)
12
+ padding: .25rem .5rem
13
+ margin: auto .5rem
14
+ line-height: 1
15
+ border-radius: 4px
16
+ background: hsla($color-theme, 0.2)
17
+ color: $color-theme
17
18
  font-family: $ff-code
18
19
  font-size: $fs-13
19
20
  font-weight: 700
@@ -25,14 +26,17 @@
25
26
  color: var(--text-p2)
26
27
  line-height: 3
27
28
  text-indent: 1rem
29
+ span+input.copy-area
30
+ text-indent: 0
28
31
  button.copy-btn
29
- margin: 2px
32
+ margin: 2px 2px 2px 0
30
33
  border-radius: 'calc(%s - 2px)' % $border-bar
31
34
  display: inline-block
32
- background: none
35
+ background: var(--block)
36
+ trans1 all
33
37
  line-height: 0
34
38
  font-size: 1rem
35
39
  padding: 0 .75rem
36
40
  color: var(--text-p2)
37
41
  &:hover
38
- background: var(--block-hover)
42
+ background: var(--block-border)
@@ -46,7 +46,7 @@
46
46
  >img
47
47
  floatable-trans()
48
48
  &:hover
49
- background: var(--block-hover)
49
+ background: var(--block-border)
50
50
  img
51
51
  transform: scale(1.2) rotate(8deg)
52
52
  box-shadow: $boxshadow-card-float