hexo-theme-stellar 1.30.1 → 1.30.3

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 (66) hide show
  1. package/_config.yml +34 -25
  2. package/layout/_partial/main/article/article_footer.ejs +1 -1
  3. package/layout/_partial/main/navbar/nav_tabs_blog.ejs +4 -0
  4. package/layout/_partial/main/navbar/nav_tabs_wiki.ejs +4 -0
  5. package/layout/_partial/main/post_list/post_card.ejs +4 -3
  6. package/layout/_partial/menubtn.ejs +1 -1
  7. package/layout/_partial/scripts/utils.ejs +1 -1
  8. package/layout/layout.ejs +1 -1
  9. package/layout/page.ejs +1 -1
  10. package/package.json +1 -1
  11. package/scripts/tags/inline-labels.js +3 -0
  12. package/scripts/tags/lib/okr.js +6 -6
  13. package/scripts/tags/lib/quot.js +16 -15
  14. package/source/css/_common/base.styl +1 -1
  15. package/source/css/_common/blockquote.styl +16 -5
  16. package/source/css/_common/blur.styl +2 -2
  17. package/source/css/_common/device.styl +12 -21
  18. package/source/css/_common/pre.styl +1 -0
  19. package/source/css/_components/layout.styl +12 -4
  20. package/source/css/_components/list.styl +4 -1
  21. package/source/css/_components/md.styl +3 -46
  22. package/source/css/_components/pages/article-indent.styl +6 -0
  23. package/source/css/_components/pages/article-story.styl +120 -0
  24. package/source/css/_components/pages/article-tech.styl +35 -0
  25. package/source/css/_components/partial/article-banner.styl +12 -7
  26. package/source/css/_components/partial/article-footer.styl +25 -15
  27. package/source/css/_components/partial/navbar.styl +31 -50
  28. package/source/css/_components/partial/related.styl +1 -1
  29. package/source/css/_components/sidebar/sidebar.styl +3 -2
  30. package/source/css/_components/tag-plugins/button.styl +11 -11
  31. package/source/css/_components/tag-plugins/common.styl +7 -4
  32. package/source/css/_components/tag-plugins/friends_posts.styl +2 -2
  33. package/source/css/_components/tag-plugins/inline-labels.styl +5 -0
  34. package/source/css/_components/tag-plugins/link.styl +2 -1
  35. package/source/css/_components/tag-plugins/mark.styl +1 -1
  36. package/source/css/_components/tag-plugins/mdrender.styl +15 -0
  37. package/source/css/_components/tag-plugins/note.styl +4 -1
  38. package/source/css/_components/tag-plugins/poetry.styl +2 -0
  39. package/source/css/_components/tag-plugins/quot.styl +51 -25
  40. package/source/css/_components/tag-plugins/sites.styl +1 -0
  41. package/source/css/_components/tag-plugins/tabs.styl +8 -10
  42. package/source/css/_components/tag-plugins/timeline.styl +12 -20
  43. package/source/css/_components/widgets/ghrepo.styl +1 -1
  44. package/source/css/_components/widgets/ghuser.styl +1 -1
  45. package/source/css/_components/widgets/markdown.styl +4 -3
  46. package/source/css/_components/widgets/related.styl +1 -1
  47. package/source/css/_components/widgets/tagcloud.styl +1 -1
  48. package/source/css/_components/widgets/timeline.styl +1 -1
  49. package/source/css/_components/widgets/toc.styl +1 -1
  50. package/source/css/_components/widgets/widgets.styl +1 -1
  51. package/source/css/_custom.styl +6 -2
  52. package/source/css/_defines/const.styl +4 -0
  53. package/source/css/_defines/func.styl +37 -0
  54. package/source/css/_defines/theme.styl +9 -0
  55. package/source/js/services/artalk_latest_comment.js +2 -1
  56. package/source/js/services/fcircle.js +2 -1
  57. package/source/js/services/friends.js +2 -1
  58. package/source/js/services/friends_and_posts.js +2 -1
  59. package/source/js/services/ghinfo.js +2 -1
  60. package/source/js/services/giscus_latest_comment.js +2 -1
  61. package/source/js/services/mdrender.js +5 -2
  62. package/source/js/services/memos.js +2 -1
  63. package/source/js/services/sites.js +2 -1
  64. package/source/js/services/timeline.js +2 -1
  65. package/source/js/services/waline_latest_comment.js +2 -1
  66. package/source/js/services/weibo.js +2 -1
@@ -0,0 +1,6 @@
1
+ .l_body[text-indent] article.content
2
+ p:not([class])
3
+ text-indent: 'calc(%s * 2)' % var(--fsp)
4
+ text-align: justify
5
+ a
6
+ text-indent: 0
@@ -0,0 +1,120 @@
1
+ .l_body[type=story] .md-text.content
2
+ --fsp: 'calc(%s + 1px)' % $fs-body
3
+ // 段落标题
4
+ h1,h2,h3,h4,h5,h6
5
+ color: var(--text)
6
+ line-height: 1.2
7
+ >a:first-child
8
+ background: $color-theme
9
+ border-radius: 2px
10
+ margin-right: 8px
11
+ padding: 0 2px
12
+ trans1 all
13
+ &:hover
14
+ background: $color-hover
15
+ &:before,&:after
16
+ color: white
17
+ font-weight: 700
18
+ &:before
19
+ content: ''
20
+ font-size: 0.5em
21
+ &:after
22
+ font-size: 0.25em
23
+ h2:not([class])
24
+ &:before,&:after
25
+ content: ''
26
+ display: inline-block
27
+ width: 12px
28
+ height: 1.2em
29
+ background: $cDeepOrange
30
+ transform: skewX(-20deg)
31
+ margin: 0 0.5em
32
+ vertical-align: top
33
+ position: relative
34
+
35
+ h3:not([class])
36
+ &:before,&:after
37
+ color: hsla($color-theme, 0.5)
38
+ margin: 0 8px
39
+ trans1 all
40
+ &:before
41
+ content: '⏵'
42
+ &:after
43
+ content: '⏴'
44
+ &:hover
45
+ &:before,&:after
46
+ color: hsla($color-theme, 1)
47
+
48
+ h4:not([class])
49
+ position: relative
50
+ &:before
51
+ content: ''
52
+ position: absolute
53
+ width: 32px
54
+ height: 32px
55
+ margin-left: -16px
56
+ margin-top: -12px
57
+ background: hsla($color-theme, 0.3)
58
+ border-radius: 50%
59
+ filter: blur(12px)
60
+ pointer-events: none
61
+ z-index: -1
62
+ trans1 all
63
+ &:hover:before
64
+ background: hsla($color-theme, 0.6)
65
+
66
+ ol,ul
67
+ margin-left: 'calc(%s * 2)' % var(--fsp)
68
+ h1,h2,h3,h4,h5,h6
69
+ text-align: center
70
+ margin: 2em 0 1.5em
71
+ >a:first-child
72
+ display: none
73
+ // 修正缩进效果
74
+ >blockquote
75
+ text-align: center
76
+ --inset: calc(var(--fsp) * 2)
77
+ margin-left: var(--inset)
78
+ margin-right: var(--inset)
79
+ background: var(--block)
80
+ padding: 1rem 2rem
81
+ border-radius: $border-card
82
+ &:before,&:after
83
+ position: absolute
84
+ font-size: 2rem
85
+ background-color: hsla($color-theme, 0.25)
86
+ top: -0.3em
87
+ width: 1em
88
+ height: 1em
89
+ content: ''
90
+ opacity 1
91
+ trans1 all
92
+ &:before
93
+ left: -0.3em
94
+ svg-mask-icon($iQuoteLeft)
95
+ &:after
96
+ right: -0.3em
97
+ svg-mask-icon($iQuoteRight)
98
+ p:not([class])
99
+ color: var(--text-p2)
100
+ font-size: $fs-body
101
+ text-indent: 2em
102
+ &:hover
103
+ &:before,&:after
104
+ background-color: hsla($color-theme, 0.5)
105
+ // 取消缩进效果
106
+ .poetry, .okr, .timeline, li, .article-footer
107
+ p:not([class])
108
+ text-indent: 0
109
+ text-align: convert(hexo-config('style.text-align'))
110
+
111
+
112
+
113
+ .l_body[type=story] .article.banner .content .bottom.only-title
114
+ justify-content: center
115
+
116
+
117
+ .l_body[text-indent] .tag-plugin.tabs .tab-content .tab-pane>p:not([class])
118
+ text-indent: 'calc(%s * 2)' % var(--fsp)
119
+ a
120
+ text-indent: 0
@@ -0,0 +1,35 @@
1
+ .l_body[type='tech'] .md-text
2
+ h1,h2,h3,h4,h5,h6
3
+ color: var(--text)
4
+ line-height: 1.8
5
+ >a:first-child
6
+ background: $color-theme
7
+ border-radius: 2px
8
+ margin-right: 8px
9
+ padding: 0 2px
10
+ trans1 all
11
+ &:hover
12
+ background: $color-hover
13
+ &:before,&:after
14
+ color: white
15
+ font-weight: 700
16
+ &:before
17
+ content: ''
18
+ font-size: 0.5em
19
+ &:after
20
+ font-size: 0.25em
21
+ h2
22
+ font-weight: 500
23
+ >a:first-child
24
+ &:before
25
+ content: hexo-config('style.header_prefix.h2')
26
+ h3
27
+ >a:first-child:before
28
+ content: hexo-config('style.header_prefix.h3')
29
+ h4
30
+ >a:first-child:before
31
+ content: hexo-config('style.header_prefix.h4')
32
+ h5
33
+ >a:first-child:before
34
+ content: hexo-config('style.header_prefix.h5')
35
+
@@ -6,7 +6,8 @@
6
6
 
7
7
  .article.banner
8
8
  .bg+.content
9
- min-height: 224px
9
+ min-height: 200px
10
+ aspect-ratio: hexo-config('article.banner_ratio')
10
11
  --text-banner: white
11
12
  --button-hover-bg: rgba(white, 0.25)
12
13
 
@@ -24,20 +25,23 @@
24
25
  .l_body .article.banner .content .bottom.only-title .title
25
26
  padding: 0.75rem 0
26
27
 
27
- .l_body[text-indent] .article.banner .content .bottom.only-title
28
- justify-content: center
29
28
 
30
29
 
31
30
  // 动画配置
32
31
  .article.banner
33
32
  .bg+.content
34
33
  --blur-bg: rgba(black, 0)
35
- --blur-px: 0px
34
+ --blur-px: 1em
36
35
  --blur-sat: 100%
36
+ --blur-height-top: 6rem
37
+ --blur-height-bottom: 7rem
38
+ --blur-opacity: 0
37
39
  &:hover
38
40
  --blur-bg: rgba(black, 0.1)
39
- --blur-px: 1em
40
41
  --blur-sat: 150%
42
+ --blur-height-top: 6rem
43
+ --blur-height-bottom: 7rem
44
+ --blur-opacity: 1
41
45
  background: var(--blur-bg)
42
46
  trans1 all
43
47
  &:before,&:after
@@ -48,13 +52,14 @@
48
52
  width: 100%
49
53
  backdrop-filter: saturate(var(--blur-sat)) blur(var(--blur-px))
50
54
  trans1 all
55
+ opacity var(--blur-opacity)
51
56
  &:before
52
57
  top: 0
53
- height: 4rem
58
+ height: var(--blur-height-top)
54
59
  mask: linear-gradient(black, rgba(black, 0.75), transparent)
55
60
  &:after
56
61
  bottom: 0
57
- height: 5rem
62
+ height: var(--blur-height-bottom)
58
63
  mask: linear-gradient(transparent, rgba(black, 0.75), black)
59
64
  .top,.bottom
60
65
  z-index 1
@@ -1,31 +1,36 @@
1
- .md-text .article-footer
2
- margin-top: 4rem
1
+ .article-footer
2
+ margin: 2rem 1rem 1rem
3
3
  padding: 1rem
4
4
  background: var(--block)
5
- border-radius: $border-card
5
+ border-radius: $border-card-l
6
6
  border: 1px solid var(--block-border)
7
+ font-size: $fs-15
8
+ line-height: 1.6
9
+ color: var(--text-p1)
7
10
  &:empty
8
11
  display: none
9
12
  .header
10
13
  font-weight: 500
11
- color: var(--text-p2)
12
14
  font-size: $fsh5
13
15
  .body
14
16
  --fsp: $fsp2
15
- input.copy-area
16
- margin: 0.75rem 0
17
- padding: 0
18
- width: 100%
17
+ >.link
18
+ margin: 0
19
+ height: 0
20
+ opacity 0
19
21
  p
20
22
  color: var(--text-p2)
21
- margin: 0.5em 0
23
+ margin: 0.5rem 0
22
24
  a
23
25
  font-weight: unset
24
26
  ul
25
27
  margin: 0
26
28
  overflow: hidden
29
+ padding-left: 1rem
30
+ li
31
+ font-size: var(--fsp)
27
32
  .post-title
28
- margin: 2px 0
33
+ margin: 0
29
34
  line-height: 1.2
30
35
  word-break: break-all
31
36
  p
@@ -35,11 +40,16 @@
35
40
  padding-top: 1rem
36
41
  border-top: 1px solid var(--block-border)
37
42
 
38
- .md-text .article-footer .social-wrap
39
- grid-gap: 0.5rem 1rem
40
- margin: 0
43
+ .article-footer .social-wrap
44
+ grid-gap: 0.5rem 2rem
45
+ margin: 1rem 0 0.5rem
46
+ grid-template-columns: repeat(auto-fill, 20px);
47
+ a.social
48
+ background: none
49
+ border-radius: 4px
50
+ padding: 0
41
51
 
42
- .md-text .article-footer .qrcode
52
+ .article-footer .qrcode
43
53
  width: 128px
44
54
  padding: 4px
45
55
  background: white
@@ -53,7 +63,7 @@
53
63
  img
54
64
  object-fit: contain
55
65
 
56
- .md-text .article-footer .qrcode.display
66
+ .article-footer .qrcode.display
57
67
  margin: 2rem auto 1rem
58
68
  height: 128px !important
59
69
  opacity: 1 !important
@@ -1,76 +1,57 @@
1
1
  .navbar
2
- padding: 0 1rem
3
2
  z-index: 8
4
- top: 0
5
- background: var(--site-bg)
6
- if hexo-config('style.site') && hexo-config('style.site.background-image')
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 nav
25
- display: flex
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: 2px 0.75rem
33
- if hexo-config('style.site') && hexo-config('style.site.background-image')
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-p3)
39
- border-radius: $border-button
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
- &:after
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(--block-hover)
38
+ background: var(--alpha100)
55
39
  &.active, &:hover
56
- color: var(--text-p1)
40
+ color: var(--text)
57
41
  &.active
58
- background: var(--card)
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
- margin-top: 0
70
- padding-left: 0
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
+
@@ -102,6 +102,6 @@ article.md-text.content+.related-wrap
102
102
  svg.loading
103
103
  top: 60px
104
104
  iframe
105
- border-radius: $border-card
105
+ border-radius: 4px
106
106
  border: none
107
107
  width: 100%
@@ -1,6 +1,6 @@
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
5
  overflow: hidden
6
6
  overflow: clip
@@ -20,13 +20,14 @@
20
20
  margin-right: auto
21
21
 
22
22
  .l_left
23
+ background-position: center
23
24
  background-size: cover
24
25
  if hexo-config('style.leftbar') && hexo-config('style.leftbar.background-image')
25
26
  background-image: convert(hexo-config('style.leftbar.background-image'))
26
27
  else if hexo-config('style.leftbar') && hexo-config('style.leftbar.background')
27
28
  background: convert(hexo-config('style.leftbar.background'))
28
29
  .leftbar-container
29
- height: 100%
30
+ height: 'calc(%s - 16px)' % 100vh
30
31
  display: flex
31
32
  flex-direction: column
32
33
  word-break: break-all
@@ -2,31 +2,31 @@ a.tag-plugin.button
2
2
  background: var(--theme)
3
3
  color: var(--alpha100)
4
4
  display: inline-flex
5
- align-items: center
5
+ align-items: baseline
6
6
  justify-content: center
7
7
  padding: 0 4px
8
8
  trans1 background
9
- margin-top: 8px
10
- margin-bottom: 8px
9
+ margin: .5em 0
10
+ font-size: 1em
11
+ line-height: 1.5
11
12
  svg,img
12
- height: 24px
13
+ height: 1.2em
13
14
  width: auto
14
- margin: 0 -0.5em 0 1em
15
+ margin: 0 -0.25em 0 .5em
15
16
  flex-shrink: 0
17
+ align-self: center
16
18
  span
17
19
  text-indent: 0
18
- line-height: 24px
19
- margin: 8px 1em
20
+ margin: .5em
20
21
 
21
22
 
22
23
  a.tag-plugin.button[size='xs']
23
24
  margin: 0
24
- border-radius: 2px
25
+ border-radius: 4px
25
26
  svg,img
26
- margin: 0 2px 0 0
27
- height: 1em
27
+ margin: 0 2px
28
28
  span
29
- margin: 0
29
+ margin: 2px
30
30
 
31
31
  a.tag-plugin.button:hover
32
32
  --theme: $color-hover
@@ -15,6 +15,7 @@ set_dynamic_color($theme)
15
15
  --theme: $theme
16
16
  --theme-border: hsl(hue($theme), 50, 80)
17
17
  --theme-block: hsl(hue($theme), 90, 92)
18
+ --theme-mark: hsl(hue($theme), 95, 80)
18
19
  --theme-codeblock: hsl(hue($theme), 50, 95)
19
20
  --text: hsl(hue($theme), 55, 16)
20
21
  --text-p1: hsl(hue($theme), 55, 20)
@@ -24,6 +25,7 @@ set_dynamic_color($theme)
24
25
  --theme: var(--text-p1)
25
26
  --theme-border: var(--block-border)
26
27
  --theme-block: var(--block)
28
+ --theme-mark: var(--theme-block)
27
29
  --theme-codeblock: var(--block)
28
30
 
29
31
  .colorful[color='red']
@@ -72,11 +74,12 @@ _dark_tags()
72
74
  set_dynamic_color($theme)
73
75
  --theme: $theme
74
76
  --theme-border: hsl(hue($theme), 50, 24)
75
- --theme-block: hsl(hue($theme), 16, 16)
77
+ --theme-block: hsl(hue($theme), 24, 24)
78
+ --theme-mark: hsl(hue($theme), 24, 24)
76
79
  --theme-codeblock: hsl(hue($theme), 12, 18)
77
- --text: hsl(hue($theme), 100, 85)
78
- --text-p1: hsl(hue($theme), 50, 75)
79
- --text-p2: hsl(hue($theme), 80, 72)
80
+ --text: hsl(hue($theme), 100, 80)
81
+ --text-p1: hsl(hue($theme), 50, 72)
82
+ --text-p2: hsl(hue($theme), 80, 64)
80
83
  .tag-plugin.tag
81
84
  set_dynamic_color($color-theme)
82
85
  .colorful[color='red']
@@ -26,7 +26,7 @@
26
26
  .label
27
27
  color: white
28
28
  font-size: 12px
29
- padding: 3px 6px 2px 6px
29
+ padding: 2px 6px
30
30
  margin: 4px 2px 0 2px
31
31
  line-height: 1
32
32
  border-radius: 16px
@@ -89,7 +89,7 @@
89
89
  color: var(--block-border)
90
90
  top: 0
91
91
  content: '“'
92
- left: -20px
92
+ left: -16px
93
93
  trans1 all
94
94
  .spacer
95
95
  height: 100%
@@ -28,6 +28,11 @@
28
28
  &:hover
29
29
  color: inherit
30
30
  background: none
31
+ blur
32
+ filter: blur(4px)
33
+ trans1 all
34
+ &:hover
35
+ filter: blur(0)
31
36
  sup,sub
32
37
  color: var(--theme)
33
38
  line-height: 1
@@ -2,6 +2,7 @@
2
2
  margin: 1em auto
3
3
  display: flex
4
4
  justify-content: center
5
+ text-align: left
5
6
 
6
7
  .md-text .link-card
7
8
  background: var(--card)
@@ -11,7 +12,7 @@
11
12
  cursor: pointer
12
13
  width: 300px
13
14
  max-width: 100%
14
- border-radius: $border-card
15
+ border-radius: $border-card-s
15
16
  hoverable-card()
16
17
 
17
18
  .md-text .link-card.plain
@@ -1,5 +1,5 @@
1
1
  .md-text .tag-plugin.mark
2
2
  padding: 1px 2px
3
3
  border-radius: 2px
4
- background: var(--theme-block)
4
+ background: var(--theme-mark)
5
5
  color: var(--text)
@@ -0,0 +1,15 @@
1
+ .ds-mdrender
2
+ p strong
3
+ font-size: $fs-body
4
+ font-weight: 500
5
+ color: var(--text)
6
+
7
+ .l_body[text-indent] article.content .ds-mdrender
8
+ p:not([class])
9
+ text-indent: 0
10
+
11
+
12
+ .l_body[type=story] .md-text.content
13
+ .ds-mdrender
14
+ ol,ul
15
+ margin-left: .5rem
@@ -29,7 +29,7 @@
29
29
  code
30
30
  background: none
31
31
  .md-text .tag-plugin.note:not([color])
32
- .highlight
32
+ .highlight, pre
33
33
  background: var(--block-hover)
34
34
  .md-text .tag-plugin.note[child=codeblock]
35
35
  padding: 0
@@ -66,3 +66,6 @@
66
66
 
67
67
  .md-text .tag-plugin .tag-plugin.note
68
68
  --gap-p: 1rem
69
+
70
+ .l_body[type=story] .tag-plugin.note .title p:not([class])
71
+ text-indent: 0
@@ -2,6 +2,8 @@
2
2
  display: flex
3
3
  flex-direction: column
4
4
  align-items: center
5
+ text-align: left
6
+ --fsp: $fs-body
5
7
  .content
6
8
  >.title
7
9
  font-weight: 500