hexo-theme-stellar 1.33.1 → 1.34.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.
- package/CLAUDE.md +217 -0
- package/README.md +2 -0
- package/_config.yml +28 -14
- package/docs/audits/2026-08-08-stellar-analysis.md +267 -0
- package/docs/release-process.md +59 -0
- package/layout/_partial/comments/artalk/script.ejs +56 -41
- package/layout/_partial/comments/beaudar/script.ejs +35 -20
- package/layout/_partial/comments/giscus/script.ejs +34 -19
- package/layout/_partial/comments/twikoo/script.ejs +29 -14
- package/layout/_partial/comments/utterances/script.ejs +35 -20
- package/layout/_partial/comments/waline/script.ejs +40 -28
- package/layout/_partial/cover/wiki_cover.ejs +1 -1
- package/layout/_partial/head.ejs +53 -4
- package/layout/_partial/scripts/defines.ejs +21 -3
- package/layout/_partial/scripts/lazyload.ejs +2 -2
- package/layout/_partial/scripts/services.ejs +101 -41
- package/layout/_partial/scripts/utils.ejs +144 -5
- package/layout/_partial/sidebar/index_leftbar.ejs +3 -0
- package/layout/_partial/sidebar/search.ejs +3 -0
- package/layout/_partial/widgets/ghuser.ejs +18 -4
- package/layout/_partial/widgets/linklist.ejs +1 -1
- package/layout/_partial/widgets/timeline.ejs +36 -33
- package/layout/_plugins/copycode.ejs +9 -5
- package/layout/_plugins/mermaid.ejs +28 -24
- package/layout/_plugins/pjax.ejs +8 -0
- package/layout/_plugins/scrollreveal.ejs +14 -13
- package/layout/_plugins/swiper.ejs +2 -2
- package/layout/index.ejs +4 -2
- package/layout/index_topic.ejs +4 -2
- package/layout/index_wiki.ejs +6 -4
- package/layout/layout.ejs +3 -2
- package/package.json +2 -1
- package/scripts/commands/new-note.js +49 -0
- package/scripts/filters/lib/img_onerror.js +0 -2
- package/scripts/helpers/json_ld.js +11 -8
- package/scripts/helpers/pretty_url.js +5 -0
- package/scripts/tags/lib/chat.js +16 -9
- package/scripts/tags/lib/frame.js +2 -1
- package/scripts/tags/lib/image.js +6 -5
- package/scripts/tags/lib/link.js +6 -4
- package/scripts/tags/lib/timeline.js +101 -79
- package/source/css/_common/canonical.styl +11 -6
- package/source/css/_common/highlight.styl +4 -1
- package/source/css/_common/html.styl +4 -0
- package/source/css/_common/loading.styl +5 -1
- package/source/css/_components/md.styl +1 -0
- package/source/css/_components/pages/article-story.styl +2 -0
- package/source/css/_components/partial/article-footer.styl +1 -0
- package/source/css/_components/partial/navbar.styl +2 -0
- package/source/css/_components/sidebar/menu.styl +1 -0
- package/source/css/_components/sidebar/search.styl +4 -0
- package/source/css/_components/sidebar/sidebar.styl +12 -5
- package/source/css/_components/tag-plugins/chat.styl +6 -8
- package/source/css/_components/tag-plugins/folding.styl +1 -0
- package/source/css/_components/tag-plugins/gallery.styl +2 -0
- package/source/css/_components/tag-plugins/grid.styl +1 -0
- package/source/css/_components/tag-plugins/image.styl +3 -0
- package/source/css/_components/tag-plugins/link.styl +1 -0
- package/source/css/_components/tag-plugins/navbar.styl +15 -13
- package/source/css/_components/tag-plugins/note.styl +1 -0
- package/source/css/_components/tag-plugins/okr.styl +1 -0
- package/source/css/_components/tag-plugins/sites.styl +2 -0
- package/source/css/_components/tag-plugins/timeline.styl +9 -0
- package/source/css/_components/tag-plugins/vote.styl +2 -0
- package/source/css/_components/widgets/components.styl +1 -0
- package/source/css/_components/widgets/ghuser.styl +19 -3
- package/source/css/_components/widgets/list.styl +1 -0
- package/source/css/_components/widgets/toc.styl +3 -0
- package/source/css/_components/widgets/widgets.styl +4 -0
- package/source/css/_custom.styl +2 -1
- package/source/css/_defines/func.styl +8 -0
- package/source/css/_plugins/comments/artalk.styl +6 -2
- package/source/css/_plugins/comments/twikoo.styl +2 -0
- package/source/css/_plugins/index.styl +2 -0
- package/source/css/_plugins/pjax.styl +61 -0
- package/source/js/main.js +80 -26
- package/source/js/plugins/copycode.js +34 -27
- package/source/js/plugins/pjax.js +646 -0
- package/source/js/search/local-search.js +5 -2
- package/source/js/services/memos.js +42 -4
- package/source/js/services/rss.js +200 -0
|
@@ -14,9 +14,9 @@ p>code:not([class]),li>code:not([class])
|
|
|
14
14
|
--theme: var(--text-p3)
|
|
15
15
|
margin: var(--gap-p) 0
|
|
16
16
|
border-radius: $border-card
|
|
17
|
+
corner-shape: superellipse(1.2)
|
|
17
18
|
overflow: hidden
|
|
18
19
|
background: var(--block)
|
|
19
|
-
line-height: 1.5
|
|
20
20
|
font-family: $ff-codeblock
|
|
21
21
|
box-sizing: border-box
|
|
22
22
|
@media screen and (min-width: $device-mobile)
|
|
@@ -80,6 +80,7 @@ p>code:not([class]),li>code:not([class])
|
|
|
80
80
|
.gist-file
|
|
81
81
|
border: 1px solid var(--block-border)
|
|
82
82
|
border-radius: $border-card
|
|
83
|
+
corner-shape: superellipse(1.2)
|
|
83
84
|
overflow: hidden
|
|
84
85
|
.gist-data
|
|
85
86
|
--bgColor-default: var(--block)
|
|
@@ -182,6 +183,8 @@ table:not([class])
|
|
|
182
183
|
content: "TS"
|
|
183
184
|
&.matlab .code:before
|
|
184
185
|
content: "MATLAB"
|
|
186
|
+
&.nginx .code:before
|
|
187
|
+
content: "Nginx"
|
|
185
188
|
|
|
186
189
|
|
|
187
190
|
|
|
@@ -91,8 +91,10 @@
|
|
|
91
91
|
|
|
92
92
|
p>img, .tag-plugin.image .image-bg
|
|
93
93
|
border-radius: $border-image-l
|
|
94
|
+
corner-shape: superellipse(1.2)
|
|
94
95
|
>img
|
|
95
96
|
border-radius: $border-image-l
|
|
97
|
+
corner-shape: superellipse(1.2)
|
|
96
98
|
|
|
97
99
|
|
|
98
100
|
.l_body[type=story] .md-text.content>blockquote, .md-text.content .tag-plugin.blockquote
|
|
@@ -40,6 +40,8 @@
|
|
|
40
40
|
color: var(--text)
|
|
41
41
|
&.active
|
|
42
42
|
background: var(--bg-a60)
|
|
43
|
+
:root[data-theme="dark"] &
|
|
44
|
+
background: rgba(white, 0.25)
|
|
43
45
|
@media (prefers-color-scheme: dark)
|
|
44
46
|
background: rgba(white, 0.25)
|
|
45
47
|
box-shadow: 0 0 1px rgba(0, 0, 0, 0.04), 0 0 2px rgba(0, 0, 0, 0.04), 0 0 4px rgba(0, 0, 0, 0.08)
|
|
@@ -25,6 +25,8 @@
|
|
|
25
25
|
right: 1rem
|
|
26
26
|
border-radius: $border-bar
|
|
27
27
|
background: var(--bg-a100)
|
|
28
|
+
:root[data-theme="dark"] &
|
|
29
|
+
background: var(--bg-a20)
|
|
28
30
|
@media screen and (prefers-color-scheme: dark)
|
|
29
31
|
background: var(--bg-a20)
|
|
30
32
|
z-index 0
|
|
@@ -44,6 +46,8 @@
|
|
|
44
46
|
color: var(--text)
|
|
45
47
|
&::placeholder
|
|
46
48
|
color: var(--text-p3)
|
|
49
|
+
:root[data-theme="dark"] &
|
|
50
|
+
color: var(--text-p2)
|
|
47
51
|
@media screen and (prefers-color-scheme: dark)
|
|
48
52
|
color: var(--text-p2)
|
|
49
53
|
.search-button
|
|
@@ -38,11 +38,15 @@
|
|
|
38
38
|
--background-opacity: hexo-config('style.leftbar.background-opacity')
|
|
39
39
|
background-image: convert(hexo-config('style.leftbar.background-image'))
|
|
40
40
|
filter: saturate(var(--saturate)) blur(var(--blur-px)) opacity(var(--background-opacity))
|
|
41
|
+
:root[data-theme="dark"] &
|
|
42
|
+
--background-opacity: hexo-config('style.leftbar.background-opacity') * 0.75
|
|
41
43
|
@media screen and (prefers-color-scheme: dark)
|
|
42
44
|
--background-opacity: hexo-config('style.leftbar.background-opacity') * 0.75
|
|
43
|
-
else if $leftbar-background-color
|
|
44
|
-
background-color: convert($leftbar-background-color)
|
|
45
|
-
|
|
45
|
+
else if $leftbar-background-color-light || $leftbar-background-color-dark
|
|
46
|
+
background-color: convert($leftbar-background-color-light)
|
|
47
|
+
@media screen and (prefers-color-scheme: dark)
|
|
48
|
+
background-color: convert($leftbar-background-color-dark)
|
|
49
|
+
|
|
46
50
|
.leftbar-container
|
|
47
51
|
height: 'calc(%s - %s * 2 - %s)' % (100vh var(--gap-margin) $leftbar-bottom-margin)
|
|
48
52
|
display: flex
|
|
@@ -69,12 +73,15 @@
|
|
|
69
73
|
&:before
|
|
70
74
|
if $leftbar-background-image
|
|
71
75
|
@media screen and (min-width: $device-mobile-max)
|
|
72
|
-
background: rgba(white, 0.
|
|
76
|
+
background: rgba(white, 0.05)
|
|
73
77
|
box-shadow: inset 0 0 32px 1px rgba(white, 0.5)
|
|
74
78
|
backdrop-filter: saturate(300%)
|
|
75
79
|
-webkit-backdrop-filter: saturate(300%)
|
|
76
80
|
mask: linear-gradient(black, rgba(black, 0.5), 70%, transparent, 90%, transparent)
|
|
77
81
|
-webkit-mask: linear-gradient(black, rgba(black, 0.5), 70%, transparent, 90%, transparent)
|
|
82
|
+
:root[data-theme="dark"] &
|
|
83
|
+
background: rgba(white, 0.05)
|
|
84
|
+
box-shadow: inset 0 0 32px 1px rgba(white, 0.1)
|
|
78
85
|
@media screen and (prefers-color-scheme: dark)
|
|
79
86
|
background: rgba(white, 0.05)
|
|
80
87
|
box-shadow: inset 0 0 32px 1px rgba(white, 0.1)
|
|
@@ -87,4 +94,4 @@
|
|
|
87
94
|
--inset: 0
|
|
88
95
|
--saturate: 300%
|
|
89
96
|
.leftbar-container:after
|
|
90
|
-
background: var(--bg-a20)
|
|
97
|
+
background: var(--bg-a20)
|
|
@@ -39,8 +39,6 @@ chat_dark()
|
|
|
39
39
|
font-size: $fs-12
|
|
40
40
|
.cap
|
|
41
41
|
color: var(--text-p3)
|
|
42
|
-
*
|
|
43
|
-
word-break: break-all
|
|
44
42
|
box-sizing: border-box
|
|
45
43
|
-webkit-box-sizing: border-box
|
|
46
44
|
-moz-box-sizing: border-box
|
|
@@ -62,7 +60,7 @@ chat_dark()
|
|
|
62
60
|
position: relative
|
|
63
61
|
box-shadow: unset
|
|
64
62
|
>.device-image
|
|
65
|
-
background-image: url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.
|
|
63
|
+
background-image: url(https://gcore.jsdelivr.net/gh/cdn-x/placeholder@1.0.14/frame/iphone11.svg)
|
|
66
64
|
width: 100%
|
|
67
65
|
height: 100%
|
|
68
66
|
position: absolute
|
|
@@ -274,7 +272,7 @@ chat_dark()
|
|
|
274
272
|
&.emoji,
|
|
275
273
|
&.link,
|
|
276
274
|
&.video,
|
|
277
|
-
&.file
|
|
275
|
+
&.chat-file
|
|
278
276
|
background: unset !important
|
|
279
277
|
padding: 0 !important
|
|
280
278
|
&.link
|
|
@@ -394,7 +392,7 @@ chat_dark()
|
|
|
394
392
|
video
|
|
395
393
|
width: 100%
|
|
396
394
|
border-radius: 6px
|
|
397
|
-
&.file
|
|
395
|
+
&.chat-file
|
|
398
396
|
background: transparent !important
|
|
399
397
|
display: flex
|
|
400
398
|
padding: unset !important
|
|
@@ -458,7 +456,7 @@ chat_dark()
|
|
|
458
456
|
flex-basis: 100%
|
|
459
457
|
justify-content: flex-end
|
|
460
458
|
.talk
|
|
461
|
-
&.file
|
|
459
|
+
&.chat-file
|
|
462
460
|
flex-direction: row-reverse
|
|
463
461
|
&.voice
|
|
464
462
|
.voice-btns
|
|
@@ -524,11 +522,11 @@ chat_dark()
|
|
|
524
522
|
display: none
|
|
525
523
|
&.link>.link-card,
|
|
526
524
|
&.video>video,
|
|
527
|
-
&.file>.content,
|
|
525
|
+
&.chat-file>.content,
|
|
528
526
|
&.image>img,
|
|
529
527
|
&.emoji>img
|
|
530
528
|
border-radius: 4px
|
|
531
|
-
&.file .download-btn
|
|
529
|
+
&.chat-file .download-btn
|
|
532
530
|
display: none
|
|
533
531
|
&.voice
|
|
534
532
|
padding: 8px .5em
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
.image-bg
|
|
6
6
|
text-align: center
|
|
7
7
|
border-radius: $border-image
|
|
8
|
+
corner-shape: superellipse(1.2)
|
|
8
9
|
position: relative
|
|
9
10
|
overflow: hidden
|
|
10
11
|
display: flex
|
|
@@ -23,7 +24,9 @@
|
|
|
23
24
|
display: block
|
|
24
25
|
object-fit: cover
|
|
25
26
|
border-radius: $border-image
|
|
27
|
+
corner-shape: superellipse(1.2)
|
|
26
28
|
.image-download
|
|
29
|
+
z-index: 2
|
|
27
30
|
position: absolute
|
|
28
31
|
bottom: 8px
|
|
29
32
|
right: 8px
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
.tag-plugin.navbar
|
|
2
2
|
display: inline-flex
|
|
3
|
-
background: var(--card)
|
|
4
|
-
border-radius: $border-button
|
|
5
|
-
z-index inherit
|
|
6
|
-
box-shadow: 0 0 8px hsla(black, 0.04)
|
|
7
3
|
a
|
|
8
4
|
box-sizing: border-box
|
|
9
|
-
padding: .25rem
|
|
10
|
-
margin: 2px
|
|
5
|
+
padding: .25rem 0
|
|
11
6
|
color: inherit
|
|
12
|
-
|
|
13
|
-
trans1 all
|
|
7
|
+
position: relative
|
|
14
8
|
&+a
|
|
15
|
-
margin-left:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
margin-left: 1rem
|
|
10
|
+
&:after
|
|
11
|
+
content: ''
|
|
12
|
+
position: absolute
|
|
13
|
+
border-radius: 2px
|
|
14
|
+
width: 100%
|
|
15
|
+
height: 2px
|
|
16
|
+
left: 0
|
|
17
|
+
bottom: 0
|
|
18
|
+
trans1 all
|
|
19
|
+
&.active,&:hover
|
|
20
|
+
&:after
|
|
21
|
+
background: var(--theme)
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
position: relative
|
|
13
13
|
.lazy-box
|
|
14
14
|
border-radius: $border-card-s
|
|
15
|
+
corner-shape: superellipse(1.2)
|
|
15
16
|
box-shadow: 0 1px 2px 0px rgba(0, 0, 0, 0.2)
|
|
16
17
|
overflow hidden
|
|
17
18
|
>img
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
margin-right: 8px
|
|
29
30
|
margin-top: 2px
|
|
30
31
|
border-radius: @width
|
|
32
|
+
corner-shape: superellipse(1)
|
|
31
33
|
>img
|
|
32
34
|
width: 28px
|
|
33
35
|
height: @width
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
.tag-plugin.timeline
|
|
2
2
|
position: relative
|
|
3
3
|
padding-left: 16px
|
|
4
|
+
p>img
|
|
5
|
+
border-radius: $border-image-s
|
|
6
|
+
corner-shape: superellipse(1.2)
|
|
4
7
|
&:before
|
|
5
8
|
content: ''
|
|
6
9
|
position: absolute
|
|
@@ -19,6 +22,9 @@
|
|
|
19
22
|
.tag-plugin.timeline
|
|
20
23
|
ol,ul
|
|
21
24
|
margin-left: 0
|
|
25
|
+
p>img
|
|
26
|
+
border-radius: $border-image-s
|
|
27
|
+
corner-shape: superellipse(1.2)
|
|
22
28
|
|
|
23
29
|
.tag-plugin.timeline .timenode
|
|
24
30
|
position: relative
|
|
@@ -87,6 +93,7 @@
|
|
|
87
93
|
.tag-plugin.timeline .body
|
|
88
94
|
background: var(--card)
|
|
89
95
|
border-radius: 16px
|
|
96
|
+
corner-shape: superellipse(1.2)
|
|
90
97
|
border-top-left-radius: 2px
|
|
91
98
|
padding: 0.5rem 1rem
|
|
92
99
|
margin-top: 4px
|
|
@@ -143,6 +150,7 @@
|
|
|
143
150
|
.lazy-box
|
|
144
151
|
margin: .5rem 0
|
|
145
152
|
border-radius: $border-image
|
|
153
|
+
corner-shape: superellipse(1.2)
|
|
146
154
|
>img
|
|
147
155
|
margin: 0 auto
|
|
148
156
|
|
|
@@ -151,6 +159,7 @@
|
|
|
151
159
|
|
|
152
160
|
aside .tag-plugin.timeline[data-api] .body .lazy-box
|
|
153
161
|
border-radius: $border-image-s
|
|
162
|
+
corner-shape: superellipse(1.2)
|
|
154
163
|
|
|
155
164
|
.tag-plugin.timeline[data-api] .body .footer
|
|
156
165
|
margin: 0 0 -0.5rem
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
.widget-wrapper.user-card
|
|
2
2
|
.widget-header+.widget-body
|
|
3
3
|
margin: 0.75rem 0
|
|
4
|
+
.widget-wrapper.user-card .widget-header
|
|
5
|
+
a
|
|
6
|
+
display: flex
|
|
7
|
+
align-items: center
|
|
8
|
+
color: var(--text-p2)
|
|
9
|
+
trans1 all
|
|
10
|
+
svg
|
|
11
|
+
margin-right: 4px
|
|
12
|
+
width 1em
|
|
13
|
+
height: 1em
|
|
14
|
+
&:hover
|
|
15
|
+
color: var(--text)
|
|
16
|
+
|
|
4
17
|
.widget-wrapper.user-card .widget-body
|
|
5
18
|
text-align: center
|
|
6
19
|
background: var(--card)
|
|
@@ -33,7 +46,7 @@
|
|
|
33
46
|
.follow
|
|
34
47
|
font-weight: 500
|
|
35
48
|
border-radius: 64px
|
|
36
|
-
margin: 1rem
|
|
49
|
+
margin-top: 1rem
|
|
37
50
|
padding: 0.5rem 1rem
|
|
38
51
|
background: var(--theme)
|
|
39
52
|
color: white
|
|
@@ -53,7 +66,7 @@
|
|
|
53
66
|
background: var(--accent)
|
|
54
67
|
|
|
55
68
|
.buttons
|
|
56
|
-
margin: 1rem
|
|
69
|
+
margin-top: 1rem
|
|
57
70
|
align-self: stretch
|
|
58
71
|
display: grid
|
|
59
72
|
grid-gap: 2px
|
|
@@ -76,4 +89,7 @@
|
|
|
76
89
|
.desc
|
|
77
90
|
font-size: $fs-12
|
|
78
91
|
color: var(--text-p3)
|
|
79
|
-
font-weight: 500
|
|
92
|
+
font-weight: 500
|
|
93
|
+
|
|
94
|
+
.widget-wrapper.user-card .widget-header+.widget-body
|
|
95
|
+
margin-top: 4px
|
package/source/css/_custom.styl
CHANGED
|
@@ -31,7 +31,8 @@ $fsp3 = 'calc(%s - 3px)' % $fs-body
|
|
|
31
31
|
// site main
|
|
32
32
|
$site-background-image = hexo-config('style.site.background-image')
|
|
33
33
|
$leftbar-background-image = hexo-config('style.leftbar.background-image')
|
|
34
|
-
$leftbar-background-color = hexo-config('style.leftbar.background-color')
|
|
34
|
+
$leftbar-background-color-light = hexo-config('style.leftbar.background-color-light')
|
|
35
|
+
$leftbar-background-color-dark = hexo-config('style.leftbar.background-color-dark')
|
|
35
36
|
|
|
36
37
|
|
|
37
38
|
// colors
|
|
@@ -137,10 +137,14 @@ newblur()
|
|
|
137
137
|
box-shadow: 0 0 2px rgba(black, .04), 0 2px 8px rgba(black, .04), 0 4px 16px rgba(black, .04)
|
|
138
138
|
trans1: all
|
|
139
139
|
text-shadow: 0 0 4px rgba(white, 1), 0 0 8px rgba(white, 0.8), 0 0 16px rgba(white, 0.6)
|
|
140
|
+
:root[data-theme="dark"] &
|
|
141
|
+
text-shadow: 0 0 2px rgba(black, 0.2), 0 0 4px rgba(black, 0.4)
|
|
140
142
|
@media (prefers-color-scheme: dark)
|
|
141
143
|
text-shadow: 0 0 2px rgba(black, 0.2), 0 0 4px rgba(black, 0.4)
|
|
142
144
|
nav a:not(.active,:hover)
|
|
143
145
|
filter: drop-shadow(0 0 0 white) drop-shadow(0 0 4px white)
|
|
146
|
+
:root[data-theme="dark"] &
|
|
147
|
+
filter: none
|
|
144
148
|
@media (prefers-color-scheme: dark)
|
|
145
149
|
filter: none
|
|
146
150
|
&:before,&:after
|
|
@@ -158,6 +162,8 @@ newblur()
|
|
|
158
162
|
-webkit-backdrop-filter: blur(8px)
|
|
159
163
|
background: rgba(white, 0.3)
|
|
160
164
|
margin: 1px
|
|
165
|
+
:root[data-theme="dark"] &
|
|
166
|
+
background: rgba(white, 0.2)
|
|
161
167
|
@media (prefers-color-scheme: dark)
|
|
162
168
|
background: rgba(white, 0.2)
|
|
163
169
|
&:after
|
|
@@ -169,5 +175,7 @@ newblur()
|
|
|
169
175
|
-webkit-mask-image: linear-gradient(white, 20%, transparent, 80%, white), linear-gradient(90deg, white, 20%, transparent, 80%, white)
|
|
170
176
|
box-shadow: inset 0 0 4px 1px rgba(white, 0.5)
|
|
171
177
|
trans1 all
|
|
178
|
+
:root[data-theme="dark"] &
|
|
179
|
+
box-shadow: inset 0 0 2px 1px rgba(white, 0.2)
|
|
172
180
|
@media (prefers-color-scheme: dark)
|
|
173
181
|
box-shadow: inset 0 0 2px 1px rgba(white, 0.2)
|
|
@@ -158,6 +158,7 @@
|
|
|
158
158
|
>img
|
|
159
159
|
margin: var(--gap-p) auto
|
|
160
160
|
border-radius: $border-image-s
|
|
161
|
+
corner-shape: superellipse(1.2)
|
|
161
162
|
a>img
|
|
162
163
|
display: inline
|
|
163
164
|
img[atk-emoticon]
|
|
@@ -175,5 +176,8 @@
|
|
|
175
176
|
padding: 0.25rem 1rem
|
|
176
177
|
p
|
|
177
178
|
color: var(--text-p3)
|
|
178
|
-
.atk-content
|
|
179
|
-
|
|
179
|
+
.atk-content
|
|
180
|
+
a
|
|
181
|
+
--at-color-main: var(--link)
|
|
182
|
+
pre>code
|
|
183
|
+
padding: 0
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
.vemoji, .tk-owo-emotion
|
|
7
7
|
width: unset
|
|
8
8
|
border-radius: $border-image-s
|
|
9
|
+
corner-shape: superellipse(1.2)
|
|
9
10
|
max-height: 24px
|
|
10
11
|
max-width: 100px
|
|
11
12
|
display: inline
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
max-width: 400px
|
|
15
16
|
max-height: 400px
|
|
16
17
|
border-radius: $border-image-s
|
|
18
|
+
corner-shape: superellipse(1.2)
|
|
17
19
|
|
|
18
20
|
.OwO
|
|
19
21
|
.OwO-body
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// PJAX - Seamless page transitions
|
|
2
|
+
|
|
3
|
+
// Custom easing for smooth, natural animations
|
|
4
|
+
$pjax-easing = cubic-bezier(0.4, 0, 0.2, 1)
|
|
5
|
+
$pjax-easing-out = cubic-bezier(0.16, 1, 0.3, 1) // Expo out - more elegant deceleration
|
|
6
|
+
$pjax-duration = 0.4s
|
|
7
|
+
$pjax-translate-distance = convert(hexo-config('plugins.pjax.translate-distance'))
|
|
8
|
+
|
|
9
|
+
.page-loading-bar
|
|
10
|
+
position: fixed
|
|
11
|
+
top: 0
|
|
12
|
+
left: calc(50% - 16px)
|
|
13
|
+
width: 32px
|
|
14
|
+
height: 32px
|
|
15
|
+
display: none
|
|
16
|
+
flex-direction: column
|
|
17
|
+
align-items: center
|
|
18
|
+
img
|
|
19
|
+
height: 100%
|
|
20
|
+
body.pjax-loading
|
|
21
|
+
.page-loading-bar
|
|
22
|
+
display: flex
|
|
23
|
+
|
|
24
|
+
// Main content transition base
|
|
25
|
+
.l_body .l_main, #l_cover
|
|
26
|
+
transition: opacity $pjax-duration $pjax-easing, transform $pjax-duration $pjax-easing
|
|
27
|
+
|
|
28
|
+
// Fade-in animation keyframes
|
|
29
|
+
@keyframes pjax-fade-in
|
|
30
|
+
0%
|
|
31
|
+
opacity: 0
|
|
32
|
+
transform: translateY($pjax-translate-distance)
|
|
33
|
+
100%
|
|
34
|
+
opacity: 1
|
|
35
|
+
transform: translateY(0)
|
|
36
|
+
|
|
37
|
+
// Loading state - content fades out and moves down slightly
|
|
38
|
+
body.pjax-loading
|
|
39
|
+
.l_body .l_main, #l_cover
|
|
40
|
+
opacity: 0.4
|
|
41
|
+
transform: translateY($pjax-translate-distance)
|
|
42
|
+
pointer-events: none
|
|
43
|
+
|
|
44
|
+
// Loaded state - content fades in with upward motion
|
|
45
|
+
body.pjax-loaded
|
|
46
|
+
.l_body .l_main, #l_cover
|
|
47
|
+
animation: pjax-fade-in $pjax-duration $pjax-easing-out forwards
|
|
48
|
+
|
|
49
|
+
// Respect reduced motion preferences
|
|
50
|
+
@media (prefers-reduced-motion: reduce)
|
|
51
|
+
.l_body .l_main, #l_cover
|
|
52
|
+
transition: opacity $pjax-duration ease
|
|
53
|
+
body.pjax-loading .l_body .l_main, body.pjax-loading #l_cover
|
|
54
|
+
transform: none
|
|
55
|
+
body.pjax-loaded .l_body .l_main, body.pjax-loaded #l_cover
|
|
56
|
+
animation: pjax-fade-simple $pjax-duration ease forwards
|
|
57
|
+
@keyframes pjax-fade-simple
|
|
58
|
+
0%
|
|
59
|
+
opacity: 0
|
|
60
|
+
100%
|
|
61
|
+
opacity: 1
|