hexo-theme-solitude 3.0.0 → 3.0.2

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 (53) hide show
  1. package/.github/FUNDING.yml +3 -4
  2. package/.github/ISSUE_TEMPLATE/config.yml +3 -3
  3. package/.github/workflows/npm-publish.yml +1 -1
  4. package/.github/workflows/release.yml +29 -0
  5. package/LICENSE +202 -21
  6. package/README.md +3 -1
  7. package/README_en-US.md +3 -1
  8. package/README_zh-Hant.md +3 -1
  9. package/_config.yml +19 -18
  10. package/languages/en.yml +0 -0
  11. package/languages/zh-CN.yml +0 -0
  12. package/languages/zh-TW.yml +0 -0
  13. package/layout/includes/footer.pug +10 -7
  14. package/layout/includes/head/config.pug +9 -9
  15. package/layout/includes/inject/body.pug +4 -4
  16. package/layout/includes/inject/head.pug +2 -2
  17. package/layout/includes/page/brevity.pug +7 -7
  18. package/layout/includes/widgets/aside/asideInfoCard.pug +18 -86
  19. package/layout/includes/widgets/home/banner.pug +0 -1
  20. package/layout/includes/widgets/home/bbTimeList.pug +4 -4
  21. package/layout/includes/widgets/page/about/contentinfo.pug +1 -1
  22. package/layout/includes/widgets/page/recentcomment/waline.pug +0 -1
  23. package/layout/index.pug +2 -2
  24. package/package.json +10 -10
  25. package/scripts/event/merge_config.js +4 -6
  26. package/scripts/filter/checkThemeConfig.js +3 -3
  27. package/scripts/helper/stylus.js +1 -1
  28. package/source/css/_components/capsule.styl +228 -0
  29. package/source/css/_components/expire.styl +12 -0
  30. package/source/css/_components/index.styl +17 -0
  31. package/source/css/_components/keyboard.styl +59 -0
  32. package/source/css/_components/pace.styl +39 -0
  33. package/source/css/_components/rightside.styl +63 -0
  34. package/source/css/_components/universe.styl +17 -0
  35. package/source/css/_layout/aside.styl +162 -460
  36. package/source/css/_layout/footer.styl +6 -9
  37. package/source/css/_page/_about/contentinfo.styl +1 -1
  38. package/source/css/_page/_home/home.styl +1 -1
  39. package/source/css/_page/{says.styl → brevity.styl} +54 -53
  40. package/source/css/_page/index.styl +2 -2
  41. package/source/css/index.styl +4 -1
  42. package/source/css/var.styl +2 -0
  43. package/source/js/main.js +7 -7
  44. package/.github/PULL_REQUEST_TEMPLATE.md +0 -28
  45. package/.github/workflows/issue_invalid.yml +0 -18
  46. package/.github/workflows/issue_question.yml +0 -30
  47. package/.github/workflows/issue_wontfix.yml +0 -29
  48. package/source/css/_layout/capsule.styl +0 -229
  49. package/source/css/_layout/expire.styl +0 -13
  50. package/source/css/_layout/keyboard.styl +0 -60
  51. package/source/css/_layout/pace.styl +0 -40
  52. package/source/css/_layout/rightside.styl +0 -58
  53. package/source/css/_layout/universe.styl +0 -18
@@ -1,89 +1,21 @@
1
- - const {style ,url} = theme.aside.card
2
1
  .card-widget.card-info
3
2
  .card-content
4
- case style
5
- when 0
6
- .card-info-avatar.is-center
7
- .author-info__top-group
8
- .author-info__sayhi#author-info__sayhi(onclick="sco.changeSayHelloText()")= _p('sayhello.morning')
9
- .avatar-img-group
10
- img.avatar-img(alt=_p('aside.avatar'), src=theme.aside.card.author.img)
11
- if theme.aside.card.author.sticker
12
- .avatar-sticker
13
- img.avatar-sticker-img(src=theme.aside.card.author.sticker, alt=_p('aside.sticker'))
14
- .author-info__description_group
15
- .author-info__description!= theme.aside.card.content
16
- .author-info__description2!= theme.aside.card.content2
17
- .author-info__bottom-group
18
- a.author-info__bottom-group-left(href=url_for(theme.aside.card.url))
19
- .author-info__name= config.author
20
- .author-info__desc!= config.subtitle
21
- .card-info-social-icons.is-center
22
- each value, label in theme.aside.card.information || {}
23
- - var array = value.split('||')
24
- a.social-icon(href=url_for(trim(array[0])), title=label)
25
- i.solitude(class=array[1])
26
- when 1
27
- .card-info-bg-top
28
- .is-center
29
- .author-info__top-group
30
- .author-info__sayhi#author-info__sayhi(onclick="sco.changeSayHelloText()")= _p('sayhello.morning')
31
- a.card-info-avatar(href=url_for(theme.aside.card.url) title=_p('aside.avatar'))
32
- .avatar-img
33
- img(src=theme.aside.card.author.img alt=_p('aside.avatar'))
34
- if theme.aside.card.author.sticker
35
- .avatar-sticker
36
- img.avatar-sticker-img(src=theme.aside.card.author.sticker, alt=_p('aside.sticker'))
37
- .card-info__desc_group
38
- .author-info__name= config.author
39
- .author-info__desc!= config.subtitle
40
-
41
- .card-info__data.is-center
42
- if site.posts.length !== 0
43
- a(href=url_for('/archives/') title=_p('aside.card.posts') + site.posts.length)
44
- .length-num= site.posts.length
45
- .headline= _p('page.archives')
46
- if site.tags.length !== 0 || theme.page.tags
47
- a(href=url_for('/tags/') title=_p('aside.card.tags') + site.tags.length)
48
- .length-num= site.tags.length
49
- .headline= _p('page.tag')
50
- if site.categories.length !== 0 || theme.page.categories
51
- a(href=url_for('/categories/') title=_p('aside.card.categories') + site.categories.length)
52
- .length-num= site.categories.length
53
- .headline= _p('page.category')
54
-
55
- .card-info-social-icons.is-center
56
- each value, label in theme.aside.card.information || {}
57
- - var array = value.split('||')
58
- a.social-icon(href=url_for(trim(array[0])), title=label)
59
- i.solitude(class=array[1])
60
- when 2
61
- .card-info-bg-top
62
- .author-info-social
63
- .social-icons
64
- each value, label in theme.aside.card.information || {}
65
- - var array = value.split('||')
66
- a.social-icon(href=url_for(trim(array[0])), title=label)
67
- i.solitude(class=array[1])
68
- span.more-info(onclick="document.querySelector('.social-icons').classList.toggle('show')")
69
- i.solitude.fa-solid.fa-ellipsis-vertical
70
- a.card-info-avatar(href=url_for(theme.aside.card.url) title=_p('aside.avatar'))
71
- .avatar-img
72
- img(src=theme.aside.card.author.img alt=_p('aside.avatar'))
73
- if theme.aside.card.author.sticker
74
- .avatar-sticker
75
- img.avatar-sticker-img(src=theme.aside.card.author.sticker, alt=_p('aside.sticker'))
3
+ .card-info-avatar.is-center
4
+ .author-info__top-group
5
+ .author-info__sayhi#author-info__sayhi(onclick="sco.changeWittyWord()")
6
+ .avatar-img-group
7
+ img.avatar-img(alt=_p('aside.avatar'), src=theme.aside.my_card.author.img)
8
+ if theme.aside.my_card.author.sticker
9
+ .avatar-sticker
10
+ img.avatar-sticker-img(src=theme.aside.my_card.author.sticker, alt=_p('aside.sticker'))
11
+ .author-info__description_group
12
+ .author-info__description!= theme.aside.my_card.content
13
+ .author-info__bottom-group
14
+ span.author-info__bottom-group-left
76
15
  .author-info__name= config.author
77
- .card-info__data.is-center
78
- a(href=url_for('/archives/') title=_p('aside.card.posts') + site.posts.length)
79
- .length-num= site.posts.length
80
- .headline= _p('page.archives')
81
- a(href=url_for('/tags/') title=_p('aside.card.tags') + site.tags.length)
82
- .length-num= site.tags.length
83
- .headline= _p('page.tag')
84
- a(href=url_for('/categories/') title=_p('aside.card.categories') + site.categories.length)
85
- .length-num= site.categories.length
86
- .headline= _p('page.category')
87
- .card-info__desc_group
88
- .author-info__description!= theme.aside.card.content
89
- .author-info__description2!= theme.aside.card.content2
16
+ .author-info__desc!= config.subtitle
17
+ .card-info-social-icons.is-center
18
+ each value, label in theme.aside.my_card.information || {}
19
+ - var array = value.split('||')
20
+ a.social-icon(href=url_for(trim(array[0])), title=label)
21
+ i.solitude(class=array[1])
@@ -2,7 +2,6 @@
2
2
 
3
3
  div.banners-title
4
4
  div.banners-title-big!= title
5
- - console.log(typeof(desc))
6
5
  if typeof(desc) === 'object'
7
6
  div.banners-title-small
8
7
  script.
@@ -1,8 +1,8 @@
1
1
  .bbTimeList.container#bbTimeList(class=is_home_first_page() ? '' : 'more-page')
2
- i.bber-logo.solitude.fa-solid.fa-newspaper(onclick=`pjax.loadUrl('${url_for(theme.says.page)}')`)
3
- .swiper-container.swiper-no-swiping.swiper-container-initialized.swiper-container-vertical.swiper-container-pointer-events#bbtalk(tabindex="-1" onclick=`pjax.loadUrl('${url_for(theme.says.page)}')`)
2
+ i.bber-logo.solitude.fa-solid.fa-newspaper(onclick=`pjax.loadUrl('${url_for(theme.brevity.page)}')`)
3
+ .swiper-container.swiper-no-swiping.swiper-container-initialized.swiper-container-vertical.swiper-container-pointer-events#bbtalk(tabindex="-1" onclick=`pjax.loadUrl('${url_for(theme.brevity.page)}')`)
4
4
  .swiper-wrapper#bber-talk
5
- each item, i in site.data.essay.essay_list.slice(0, 10)
5
+ each item, i in site.data.brevity.slice(0, 10)
6
6
  .li-style.swiper-slide
7
7
  | #{item.content}
8
8
  if item.image
@@ -13,4 +13,4 @@
13
13
  i.solitude.fa-solid.fa-video
14
14
  else if item.link
15
15
  i.solitude.fa-solid.fa-link
16
- i.bber-gotobb.solitude.fa-solid.fa-circle-chevron-right(title=_p('home.bbtime.text') onclick=`pjax.loadUrl('${url_for(theme.says.page)}')`)
16
+ i.bber-gotobb.solitude.fa-solid.fa-circle-chevron-right(title=_p('home.bbtime.text') onclick=`pjax.loadUrl('${url_for(theme.brevity.page)}')`)
@@ -2,7 +2,7 @@
2
2
 
3
3
  if contentinfo
4
4
  .author-content
5
- .author-content-item.myInfoAndSayHello
5
+ .author-content-item.myInfoAndWittyWord
6
6
  .title1= contentinfo.sup
7
7
  .title2
8
8
  span.inline-word= contentinfo.name
@@ -10,7 +10,6 @@ script(pjax).
10
10
  let ls = []
11
11
  await fetch('!{theme.waline.envId}/api/comment?type=recent&count=!{limit}', {method: 'GET'}).then(async res => res.json())
12
12
  .then(async data => {
13
- console.log(data)
14
13
  for (const i of data.data) {
15
14
  let title = ''
16
15
  if (i.url) {
package/layout/index.pug CHANGED
@@ -1,9 +1,9 @@
1
1
  extends includes/layout
2
2
 
3
3
  block content
4
- if theme.hometop.enable || (theme.says.home_mini && theme.says.enable)
4
+ if theme.hometop.enable || (theme.brevity.home_mini && theme.brevity.enable)
5
5
  #home_top
6
- if theme.says.home_mini && theme.says.enable
6
+ if theme.brevity.home_mini && theme.brevity.enable
7
7
  include ./includes/widgets/home/bbTimeList
8
8
  if theme.hometop.enable && is_home_first_page()
9
9
  include ./includes/widgets/home/hometop
package/package.json CHANGED
@@ -1,18 +1,15 @@
1
1
  {
2
2
  "name": "hexo-theme-solitude",
3
- "version": "3.0.0",
3
+ "version": "3.0.2",
4
4
  "description": "A beautiful, powerful, and efficient Hexo theme developed by everfu.",
5
5
  "main": "package.json",
6
- "scripts": {
7
- "test": "echo \"Error: no test specified\" && exit 1"
8
- },
9
6
  "keywords": [
10
7
  "hexo",
11
8
  "theme",
12
9
  "solitude",
13
10
  "Card UI Design",
14
- "everfu",
15
- "伍十七",
11
+ "@everfu",
12
+ "everly",
16
13
  "hexo-theme-solitude"
17
14
  ],
18
15
  "repository": {
@@ -25,9 +22,12 @@
25
22
  },
26
23
  "bugs": {
27
24
  "url": "https://github.com/everfu/hexo-theme-solitude/issues",
28
- "email": "o@everfu.org"
25
+ "email": "o@efu.me"
29
26
  },
30
27
  "homepage": "https://solitude.js.org",
31
- "author": "Hexo-Theme-Solitude<o@everfu.org>",
32
- "license": "MIT"
33
- }
28
+ "author": "Hexo-Theme-Solitude<o@efu.me>",
29
+ "license": "Apache-2.0",
30
+ "scripts": {
31
+ "test": "echo \"Error: no test specified\" && exit 1"
32
+ }
33
+ }
@@ -37,23 +37,20 @@ hexo.extend.filter.register('before_generate', () => {
37
37
  post: { noSticky: 'about', Sticky: 'allInfo' },
38
38
  page: { noSticky: 'about', Sticky: 'allInfo' },
39
39
  card: {
40
- style: 0,
41
40
  author: {
42
41
  img: '/img/logo.png',
43
42
  sticker: '/img/happy-sticker.avif',
44
43
  },
45
44
  url: '/about/',
46
- background: null,
47
45
  content1: 'Solitude',
48
- content2: 'A simple theme for Hexo',
49
- sayhello: {
46
+ state: {
50
47
  morning: 'Good Morning',
51
48
  noon: 'Good Noon',
52
49
  afternoon: 'Good Afternoon',
53
50
  night: 'Good Night',
54
51
  goodnight: 'Good Night',
55
52
  },
56
- sayhello2: ['Welcome to Solitude', 'A simple theme for Hexo', 'Enjoy your time', 'Have a nice day', 'Good luck'],
53
+ witty_words: [],
57
54
  information: null,
58
55
  },
59
56
  flip: {
@@ -171,8 +168,9 @@ hexo.extend.filter.register('before_generate', () => {
171
168
  text: '404 Not Found',
172
169
  recommendList: true
173
170
  },
174
- says: {
171
+ brevity: {
175
172
  enable: false,
173
+ music: false,
176
174
  home_mini: false,
177
175
  style: 1,
178
176
  strip: 30
@@ -4,9 +4,9 @@ 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.says.enable && !data.essay) {
8
- logger.error('\n 启用即刻短文的情况下,请新建 essay.yaml。');
9
- logger.error('\n If says is enabled, essay data must be supplied! \n Please create essay.yaml.');
7
+ if (theme.brevity.enable && !data.brevity) {
8
+ logger.error('\n 启用即刻短文的情况下,请新建 brevity.yaml。');
9
+ logger.error('\n If brevity is enabled, brevity data must be supplied! \n Please create brevity.yaml.');
10
10
  process.exit(-1);
11
11
  }
12
12
  if (theme.footer.randomlink && !data.links){
@@ -2,7 +2,7 @@ hexo.extend.filter.register('stylus:renderer', function (style) {
2
2
  const {config, theme} = this;
3
3
  const data = hexo.locals.get('data');
4
4
 
5
- style.define('$about', data && data.about ? Object.keys(data.about) : false);
5
+ style.define('$about', data && data.about ? Object.keys(data.about) : {});
6
6
 
7
7
  // highlight
8
8
  const {syntax_highlighter: syntaxHighlighter, highlight, prismjs} = hexo.config
@@ -0,0 +1,228 @@
1
+ @keyframes changeright
2
+ 0%, 50%, 100%
3
+ transform: rotate(0deg) scale(1.1)
4
+ box-shadow: 0 0 2px #ffffff00
5
+ 25%, 75%
6
+ transform: rotate(90deg) scale(1.1)
7
+ box-shadow: 0 0 14px #ffffff
8
+
9
+ @keyframes playingShadow
10
+ 0%, 100%
11
+ box-shadow: 0 0px 12px -3px var(--efu-none)
12
+ 50%
13
+ box-shadow: 0 0px 12px 0px var(--efu-main)
14
+
15
+ @keyframes lightBar
16
+ 0%, 100%
17
+ opacity: 0.1
18
+ 60%
19
+ opacity: 0.3
20
+
21
+ .aplayer.aplayer-narrow
22
+ .aplayer-body,
23
+ .aplayer-pic
24
+ height: 66px
25
+ width: 66px
26
+
27
+ #nav-music
28
+ display: flex
29
+ align-items: center
30
+ z-index: 12
31
+ position: fixed
32
+ bottom: 20px
33
+ left: 20px
34
+ cursor: pointer
35
+ transition: all 0.5s, left 0s
36
+ transform-origin: left bottom
37
+ box-shadow: var(--efu-shadow-border)
38
+ border-radius: 40px
39
+ overflow: hidden
40
+
41
+ &:active
42
+ transform: scale(0.97)
43
+
44
+ &.playing
45
+ border: var(--style-border)
46
+ box-shadow: 0 0px 12px -3px var(--efu-none)
47
+ animation: playingShadow 5s linear infinite
48
+
49
+ .aplayer.aplayer-withlrc
50
+ .aplayer-pic
51
+ box-shadow: 0 0 14px #ffffffa6
52
+ transform: rotate(0deg) scale(1.1)
53
+ border-color: var(--efu-white)
54
+ animation-play-state: running
55
+
56
+ .aplayer-info
57
+ color: var(--efu-white)
58
+
59
+ #nav-music-hoverTips
60
+ width: 0
61
+
62
+ .aplayer
63
+ background: var(--efu-main)
64
+ border: var(--style-border-hover)
65
+ backdrop-filter: saturate(180%) blur(20px)
66
+ transform: translateZ(0)
67
+
68
+ .aplayer .aplayer-info .aplayer-controller .aplayer-bar-wrap .aplayer-bar .aplayer-played
69
+ animation-play-state: running
70
+
71
+ &:hover:not(.playing) #nav-music-hoverTips
72
+ opacity: 1
73
+
74
+ .aplayer.aplayer-withlrc
75
+ .aplayer-pic
76
+ height: 25px
77
+ width: 25px
78
+ border-radius: 40px
79
+ z-index: 1
80
+ transition: 0.3s
81
+ transform: rotate(0deg) scale(1)
82
+ border: var(--style-border-always)
83
+ animation: changeright 24s linear infinite
84
+ animation-play-state: paused
85
+
86
+ .aplayer-info
87
+ height: 100%
88
+ color: var(--efu-fontcolor)
89
+ margin: 0
90
+ padding: 0
91
+ display: flex
92
+ align-items: center
93
+
94
+ #nav-music-hoverTips
95
+ color: var(--efu-white)
96
+ background: var(--efu-main)
97
+ width: 100%
98
+ height: 100%
99
+ position: absolute
100
+ top: 0
101
+ left: 0
102
+ align-items: center
103
+ justify-content: center
104
+ display: flex
105
+ border-radius: 40px
106
+ opacity: 0
107
+ font-size: 12px
108
+ z-index: 2
109
+ transition: 0.3s
110
+
111
+ .aplayer
112
+ background: var(--efu-card-bg)
113
+ border-radius: 60px
114
+ height: 41px
115
+ display: flex
116
+ margin: 0
117
+ transition: 0.3s
118
+ border: var(--style-border)
119
+ box-shadow: none
120
+
121
+ .aplayer-notice,
122
+ .aplayer-miniswitcher,
123
+ .aplayer-list
124
+ display: none
125
+
126
+ .aplayer-body
127
+ position: relative
128
+ display: flex
129
+ align-items: center
130
+
131
+ .aplayer-info
132
+ .aplayer-music
133
+ margin: 0
134
+ display: flex
135
+ align-items: center
136
+ padding: 0 12px 0 8px
137
+ cursor: pointer
138
+ z-index: 1
139
+ height: 100%
140
+
141
+ .aplayer-title
142
+ cursor: pointer
143
+ line-height: 1
144
+ display: inline-block
145
+ white-space: nowrap
146
+ max-width: 120px
147
+ overflow: hidden
148
+ text-overflow: ellipsis
149
+ transition: 0.3s
150
+ user-select: none
151
+
152
+ .aplayer-controller
153
+ position: absolute
154
+ width: 100%
155
+ height: 100%
156
+ top: 0
157
+ left: 0
158
+
159
+ .aplayer-bar-wrap
160
+ margin: 0
161
+ padding: 0
162
+
163
+ .aplayer-bar
164
+ height: 100%
165
+ background: 0 0
166
+
167
+ .aplayer-loaded
168
+ display: none
169
+
170
+ .aplayer-played
171
+ height: 100%
172
+ opacity: 0.1
173
+ background-color: var(--efu-white) !important
174
+ animation: lightBar 5s ease infinite
175
+ animation-play-state: paused
176
+
177
+ .aplayer-pic
178
+ pointer-events: none
179
+
180
+ .aplayer-button
181
+ bottom: 50%
182
+ right: 50%
183
+ transform: translate(50%, 50%)
184
+ margin: 0
185
+ transition: 0.3s
186
+ pointer-events all
187
+
188
+ &:has(.aplayer-button.aplayer-play)
189
+ animation-play-state: paused
190
+ transform: rotate(0deg) scale(1) !important
191
+
192
+ margin-left: 8px
193
+
194
+ .aplayer-info .aplayer-controller .aplayer-time,
195
+ .aplayer-info .aplayer-music .aplayer-author
196
+ display: none
197
+
198
+ &.aplayer-withlist .aplayer-info
199
+ border: none
200
+
201
+ .aplayer-lrc
202
+ width: 0
203
+ opacity: 0
204
+ transition: 0.3s
205
+ margin-bottom: -15px
206
+
207
+ p.aplayer-lrc-current
208
+ color: var(--efu-white)
209
+ border: none
210
+ min-height: 20px
211
+ filter: none
212
+
213
+ &:after,
214
+ &:before
215
+ display: none
216
+
217
+ p
218
+ color: #ffffffb3
219
+ filter: blur(.8px)
220
+
221
+ &.stretch .aplayer.aplayer-withlrc .aplayer-lrc
222
+ width: 200px
223
+ margin-left: 8px
224
+ opacity: 1
225
+
226
+ .aplayer-thumb
227
+ width: 0 !important
228
+ height: 0 !important
@@ -0,0 +1,12 @@
1
+ .expire
2
+ display flex
3
+ align-items center
4
+ border-radius 8px
5
+ background-color rgba(255, 0, 0, .5)
6
+ border-left 5px solid var(--efu-red)
7
+ padding 10px 16px
8
+ color var(--efu-white)
9
+
10
+ i.solitude
11
+ color var(--efu-white)
12
+ margin-right 8px
@@ -0,0 +1,17 @@
1
+ if hexo-config('capsule.enable')
2
+ @import 'capsule.styl'
3
+
4
+ if hexo-config('rightside.enable')
5
+ @import 'rightside.styl'
6
+
7
+ if hexo-config('expire.enable')
8
+ @import 'expire.styl'
9
+
10
+ if hexo-config('keyboard.enable')
11
+ @import 'keyboard.styl'
12
+
13
+ if hexo-config('loading.pace')
14
+ @import 'pace.styl'
15
+
16
+ if hexo-config('display_mode.universe')
17
+ @import 'universe.styl'
@@ -0,0 +1,59 @@
1
+ #keyboard-tips
2
+ position fixed
3
+ top 80px
4
+ left 20px
5
+ z-index 999
6
+ background var(--efu-maskbgdeep)
7
+ border-radius 12px
8
+ border var(--style-border)
9
+ padding 20px
10
+ display flex
11
+ flex-direction column
12
+ backdrop-filter saturate(180%) blur(20px)
13
+ transform translateZ(0)
14
+ pointer-events none
15
+ box-shadow var(--efu-shadow-border)
16
+ opacity 0
17
+ transition .3s
18
+
19
+ &.show
20
+ opacity 1
21
+ transition .1s
22
+
23
+ .keyboardTitle
24
+ font-size 12px
25
+ color var(--efu-secondtext)
26
+ line-height 1
27
+
28
+ .keyboardList
29
+ display flex
30
+ flex-direction column
31
+ margin-top 8px
32
+
33
+ .keyboardItem
34
+ display flex
35
+ margin-top 4px
36
+
37
+ .keyGroup
38
+ display flex
39
+ align-items center
40
+ width 90px
41
+
42
+ .key
43
+ padding 0.2em 0.4em
44
+ font-family inherit
45
+ background-color var(--efu-card-bg)
46
+ color var(--efu-fontcolor)
47
+ border var(--style-border)
48
+ border-color var(--efu-secondtext)
49
+ border-bottom 2px solid var(--efu-secondtext)
50
+ box-shadow var(--efu-shadow-border)
51
+ border-radius 0.25rem
52
+ overflow-wrap break-word
53
+ overflow-x auto
54
+ font-weight 500
55
+ font-size .875em
56
+ margin-right 4px
57
+ vertical-align baseline
58
+ line-height 1
59
+ height 24px
@@ -0,0 +1,39 @@
1
+ .pace
2
+ pointer-events: none
3
+ user-select: none
4
+ z-index: 2000
5
+ position: fixed
6
+ margin: auto
7
+ top: 4px
8
+ left: 0
9
+ right: 0
10
+ height: 8px
11
+ border-radius: 8px
12
+ width: 4rem
13
+ background: var(--efu-secondbg)
14
+ border: var(--style-border)
15
+ overflow: hidden
16
+
17
+ &.pace-inactive
18
+ opacity: 0
19
+ transition: .3s
20
+ top: -8px
21
+
22
+ .pace-progress
23
+ opacity: 0
24
+ transition: .3s ease-in
25
+
26
+ .pace-progress
27
+ box-sizing: border-box
28
+ transform: translate3d(0, 0, 0)
29
+ max-width: 200px
30
+ z-index: 2000
31
+ display: block
32
+ position: absolute
33
+ top: 0
34
+ right: 100%
35
+ height: 100%
36
+ width: 100%
37
+ background: var(--efu-logo-color)
38
+ animation: gradient 2s ease infinite
39
+ background-size: 200%