hexo-theme-solitude 1.7.1 → 1.7.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 (35) hide show
  1. package/.github/FUNDING.yml +2 -2
  2. package/_config.yml +12 -15
  3. package/languages/en.yml +1 -5
  4. package/languages/zh-CN.yml +1 -4
  5. package/languages/zh-TW.yml +1 -4
  6. package/layout/includes/head/config.pug +40 -34
  7. package/layout/includes/inject/head.pug +1 -1
  8. package/layout/includes/page/says.pug +2 -2
  9. package/layout/includes/widgets/aside/asideTag.pug +9 -4
  10. package/layout/includes/widgets/home/banner.pug +1 -1
  11. package/layout/post.pug +2 -1
  12. package/package.json +3 -3
  13. package/scripts/event/merge_config.js +1 -1
  14. package/scripts/event/welcome.js +7 -9
  15. package/scripts/helper/related_post.js +5 -0
  16. package/scripts/helper/stylus.js +7 -39
  17. package/source/css/_layout/article-container.styl +197 -0
  18. package/source/css/_layout/aside.styl +483 -486
  19. package/source/css/_page/_about/{index.styl → about.styl} +12 -12
  20. package/source/css/_page/_home/home-top.styl +1 -6
  21. package/source/css/_page/_home/{index.styl → home.styl} +0 -3
  22. package/source/css/_page/_home/recent-post.styl +1 -0
  23. package/source/css/_page/category.styl +0 -2
  24. package/source/css/_page/error.styl +1 -1
  25. package/source/css/_page/google.styl +17 -17
  26. package/source/css/_page/index.styl +48 -15
  27. package/source/css/_page/moment.styl +73 -74
  28. package/source/css/_page/{share.styl → other.styl} +1 -3
  29. package/source/css/_post/content.styl +0 -197
  30. package/source/css/_post/index.styl +0 -3
  31. package/source/img/404.webp +0 -0
  32. package/source/img/pwa/favicon_512.ico +0 -0
  33. package/source/js/search/algolia.js +0 -10
  34. package/source/js/search/local.js +3 -14
  35. package/source/css/_page/home.styl +0 -34
@@ -1,6 +1,6 @@
1
1
  # These are supported funding model platforms
2
2
 
3
- github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
3
+ github: [efuo] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4
4
  patreon: # Replace with a single Patreon username
5
5
  open_collective: # Replace with a single Open Collective username
6
6
  ko_fi: # Replace with a single Ko-fi username
@@ -10,4 +10,4 @@ liberapay: # Replace with a single Liberapay username
10
10
  issuehunt: # Replace with a single IssueHunt username
11
11
  otechie: # Replace with a single Otechie username
12
12
  lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
13
- custom: ['https://afdian.net/a/efu0u0','https://7.isyangs.cn/34/65f2e5814db1a-34.png','https://7.isyangs.cn/34/65ed434e0b8d7-34.png'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13
+ custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
package/_config.yml CHANGED
@@ -29,7 +29,7 @@ site:
29
29
  siteIcon: /img/pwa/favicon.ico
30
30
  # 页脚的Logo、加载动画默认的logo
31
31
  # Logo in the footer, default logo for loading animation
32
- icon: /img/avatar.png
32
+ icon: /img/pwa/favicon.ico
33
33
 
34
34
  # 导航栏
35
35
  # NavBar
@@ -38,7 +38,7 @@ nav:
38
38
  # logo group
39
39
  group:
40
40
  # 项目: # 分类名称
41
- # Solitude: https://github.com/valor-x/hexo-theme-solitude || /img/logo.png # 子菜单名称(submenu name): 链接地址(address) || 图标(icon)
41
+ # Solitude: https://github.com/valor-x/hexo-theme-solitude || /img/pwa/favicon.ico # 子菜单名称(submenu name): 链接地址(address) || 图标(icon)
42
42
 
43
43
  # 中心菜单
44
44
  # center menu
@@ -172,7 +172,7 @@ aside:
172
172
  author:
173
173
  # 头像
174
174
  # Avatar
175
- img: /img/logo.png
175
+ img: /img/avatar.png
176
176
  # 表情图片链接
177
177
  # Emoticon image link
178
178
  # tip: 26x26 size
@@ -251,13 +251,10 @@ aside:
251
251
  # 显示标签数量,当高于标签总数时,显示全部标签按钮
252
252
  # Display the number of tags, when it is higher than the total number of tags, display all tags button
253
253
  limit: 20
254
- # 高亮显示
255
- # Highlight
256
- highlight: false
257
254
  # 高亮显示标签列表
258
255
  # Highlighted tag list
259
- list:
260
- # - "Solitude"
256
+ highlight_list:
257
+ # - Hexo
261
258
 
262
259
  # 侧边栏归档
263
260
  # aside archive
@@ -455,7 +452,7 @@ footer:
455
452
  errorpage:
456
453
  # 图片
457
454
  # image
458
- img: https://7.isyangs.cn/34/65f2e65eae32a-34.png
455
+ img: /img/404.webp
459
456
  # 文字
460
457
  # text
461
458
  text: =awa= 页面走丢了
@@ -526,7 +523,7 @@ moments:
526
523
  # example: https://example.com/
527
524
  api: # https://example.com/
528
525
  # 加载失败显示图片 / Loading failed display image
529
- error_img: /img/logo.png
526
+ error_img: /img/pwa/favicon_64.ico
530
527
  # 排序规则:created:按创建时间排序 / updated:按更新时间排序
531
528
  # Sort rule: created: Sort by creation time / updated: Sort by update time
532
529
  sort_rule: created
@@ -782,11 +779,11 @@ pwa:
782
779
  enable: false
783
780
  manifest: /manifest.json # manifest.json 文件路径
784
781
  theme_color: "#006a73" # 主题颜色
785
- mask_icon: /img/logo.png # 遮罩图标
786
- apple_touch_icon: /img/logo.png # 苹果触摸图标
787
- bookmark_icon: /img/logo.png # 书签图标
788
- favicon_32_32: /img/logo.png # 32x32图标
789
- favicon_16_16: /img/logo.png # 16x16图标
782
+ mask_icon: /img/pwa/favicon.ico # 遮罩图标
783
+ apple_touch_icon: /img/pwa/favicon.ico # 苹果触摸图标
784
+ bookmark_icon: /img/pwa/favicon.ico # 书签图标
785
+ favicon_32_32: /img/pwa/favicon_32.ico # 32x32图标
786
+ favicon_16_16: /img/pwa/favicon_16.ico # 16x16图标
790
787
 
791
788
  # 谷歌广告 (Google Adsense)
792
789
  google_adsense:
package/languages/en.yml CHANGED
@@ -26,10 +26,6 @@ lately:
26
26
  ago: ' ago'
27
27
  error: ' NaN'
28
28
 
29
- chs:
30
- chs_tw: Traditional Chinese
31
- chs_cn: Simplified Chinese
32
-
33
29
  page:
34
30
  tag: Tags
35
31
  category: Categories
@@ -74,11 +70,11 @@ award:
74
70
  tipping: Tipping
75
71
  title: List of appreciation
76
72
 
77
-
78
73
  search:
79
74
  empty: No results found
80
75
  hit: Found ${query} results for you
81
76
  placeholder: Enter keywords to quickly search
77
+ count: Total <b>${count}</b> results.
82
78
 
83
79
  head:
84
80
  noscript: Please enable JavaScript to view the site
@@ -27,10 +27,6 @@ lately:
27
27
  ago: 前
28
28
  error: NaN
29
29
 
30
- chs:
31
- chs_tw: 繁體中文
32
- chs_cn: 简体中文
33
-
34
30
  page:
35
31
  tag: 标签
36
32
  category: 分类
@@ -80,6 +76,7 @@ search:
80
76
  empty: 找不到你查询的内容:${query}
81
77
  hit: 找到 ${hits} 条结果,用时 ${time} 毫秒
82
78
  placeholder: 输入关键词快速查找
79
+ count: 共 <b>${count}</b> 条结果。
83
80
 
84
81
  head:
85
82
  noscript: 开启JavaScript才能访问本站哦~
@@ -27,10 +27,6 @@ lately:
27
27
  ago: 前
28
28
  error: NaN
29
29
 
30
- chs:
31
- chs_tw: 繁體中文
32
- chs_cn: 簡體中文
33
-
34
30
  page:
35
31
  tag: 標籤
36
32
  category: 分類
@@ -80,6 +76,7 @@ search:
80
76
  empty: 找不到你查詢的內容:${query}
81
77
  hit: 找到 ${hits} 條結果,用時 ${time} 毫秒
82
78
  placeholder: 輸入關鍵詞快速查找
79
+ count: 共 <b>${count}<b> 條結果。
83
80
 
84
81
  head:
85
82
  noscript: 開啟JavaScript才能訪問本站哦~
@@ -86,6 +86,45 @@
86
86
  })
87
87
  }
88
88
 
89
+ let lang = false
90
+ lang = {
91
+ theme: {
92
+ dark: _p('theme.dark'),
93
+ light: _p('theme.light'),
94
+ },
95
+ copy: {
96
+ success: _p('copy.success'),
97
+ error: _p('copy.error'),
98
+ },
99
+ backtop: _p('nav.backtop'),
100
+ lately: {
101
+ second: _p('lately.second'),
102
+ minute: _p('lately.minute'),
103
+ hour: _p('lately.hour'),
104
+ day: _p('lately.day'),
105
+ month: _p('lately.month'),
106
+ year: _p('lately.year'),
107
+ ago: _p('lately.ago'),
108
+ error: _p('lately.error'),
109
+ },
110
+ f12: _p('f12'),
111
+ }
112
+
113
+ if (theme.search.enable) {
114
+ lang.search = {
115
+ empty: _p('search.empty'),
116
+ hit: _p('search.hit'),
117
+ placeholder: _p('search.placeholder'),
118
+ count: _p('search.count')
119
+ }
120
+ }
121
+
122
+ if (theme.comment.enable && theme.comment.commentBarrage) {
123
+ lang.barrage = {
124
+ title: _p('commentBarrage.title'),
125
+ }
126
+ }
127
+
89
128
  script.
90
129
  const GLOBAL_CONFIG = {
91
130
  root: '!{config.root}',
@@ -105,40 +144,7 @@ script.
105
144
  syntax: '!{config.syntax_highlighter}'
106
145
  },
107
146
  randomlink: !{theme.footer.randomlink},
108
- lang: {
109
- theme: {
110
- dark: '!{_p('theme.dark')}',
111
- light: '!{_p('theme.light')}',
112
- },
113
- copy: {
114
- success: '!{_p('copy.success')}',
115
- error: '!{_p('copy.error')}',
116
- },
117
- backtop: '!{_p('nav.backtop')}',
118
- lately: {
119
- second: '!{_p('lately.second')}',
120
- minute: '!{_p('lately.minute')}',
121
- hour: '!{_p('lately.hour')}',
122
- day: '!{_p('lately.day')}',
123
- month: '!{_p('lately.month')}',
124
- year: '!{_p('lately.year')}',
125
- ago: '!{_p('lately.ago')}',
126
- error: '!{_p('lately.error')}',
127
- },
128
- search: {
129
- empty: '!{_p('search.empty')}',
130
- hit: '!{_p('search.hit')}',
131
- placeholder: '!{_p('search.placeholder')}',
132
- },
133
- chs: {
134
- chs_to_cht: '!{_p('chs.chs_tw')}',
135
- cht_to_chs: '!{_p('chs.chs_cn')}',
136
- },
137
- barrage: {
138
- title: '!{_p('commentBarrage.title')}',
139
- },
140
- f12: '!{_p('f12')}',
141
- },
147
+ lang: !{JSON.stringify(lang)},
142
148
  aside: {
143
149
  sayhello: {
144
150
  morning: '!{theme.aside.card.sayhello.morning}',
@@ -111,7 +111,7 @@ script.
111
111
  )(window)
112
112
 
113
113
  console.log(
114
- "%c Program: Hexo %c Theme: Solitude %c Version: v1.7.1",
114
+ "%c Program: Hexo %c Theme: Solitude %c Version: v1.7.3",
115
115
  "border-radius:5px 0 0 5px;padding: 5px 10px;color:white;background:#ff3842;",
116
116
  "padding: 5px 10px;color:white;background:#3e9f50;",
117
117
  "border-radius:0 5px 5px 0;padding: 5px 10px;background:#0084ff;color:white;"
@@ -20,7 +20,7 @@ if theme.says.enable
20
20
  if item.image
21
21
  .bber-content-img
22
22
  each img in item.image
23
- img(src=img title="即刻短文配图")
23
+ img(src=img alt="image")
24
24
 
25
25
  if item.aplayer
26
26
  .bber-music
@@ -41,7 +41,7 @@ if theme.says.enable
41
41
  i.solitude.st-calendar-todo-fill
42
42
  time.datetime(datetime=moment(item.date).format())
43
43
  if item.link
44
- a.bber-content-link(href=url_for(item.link) title="跳转到短文指引的链接" target="_blank")
44
+ a.bber-content-link(href=url_for(item.link) target="_blank")
45
45
  i.solitude.st-link-m-line
46
46
  | 链接
47
47
  if item.content
@@ -1,9 +1,14 @@
1
+ - const highlight = theme.aside.tags.highlight_list || []
1
2
  .card-tag-cloud
2
3
  each tag in site.tags.find({ parent: { $exists: false } }).data
3
- a(href=url_for(tag.path))= tag.name
4
- sup= tag.length
5
- if site.tags.length > theme.aside.tags.limit
6
- a#more-tags-btn(href="javascript:void(0);", onclick="sco.openAllTags();")= __('aside.tagmore')
4
+ if highlight.includes(tag.name)
5
+ a.highlight(href=url_for(tag.path))= tag.name
6
+ sup= tag.length
7
+ else
8
+ a(href=url_for(tag.path))= tag.name
9
+ sup= tag.length
10
+ if site.tags.length >= theme.aside.tags.limit
11
+ span#more-tags-btn(onclick="sco.openAllTags()")= __('aside.tagmore')
7
12
  else
8
13
  style.
9
14
  .card-tag-cloud::after {
@@ -6,7 +6,7 @@ if group
6
6
  div.banners-links
7
7
  each value,label in group
8
8
  - var array = value.split('||')
9
- a.banners-link-btn(href=url_for(trim(array[0])) class="banners-link-"+label)
9
+ a.banners-link-btn(href=url_for(trim(array[0])) style=`background-image: ${array[2]} `)
10
10
  if array[1]
11
11
  i.solitude(class=array[1])
12
12
  .banners-link-title= label
package/layout/post.pug CHANGED
@@ -17,7 +17,8 @@ block content
17
17
  span.tagsPageCount #{data.length}
18
18
  if site.posts.length > 1
19
19
  include includes/widgets/post/postNav
20
- != related_posts(page, site.posts)
20
+ if theme.related_post.enable
21
+ != related_posts(page, site.posts)
21
22
  if page.comment
22
23
  include includes/widgets/third-party/comments/comment
23
24
  include includes/widgets/aside/aside
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "hexo-theme-solitude",
3
- "version": "1.7.1",
4
- "description": "A beautiful, powerful, and efficient Hexo theme developed by the wleelw",
3
+ "version": "1.7.3",
4
+ "description": "A beautiful, powerful, and efficient Hexo theme developed by the efu.",
5
5
  "main": "package.json",
6
6
  "scripts": {
7
7
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -26,7 +26,7 @@
26
26
  "url": "https://github.com/valor-x/hexo-theme-solitude/issues",
27
27
  "email": "o@efu.me"
28
28
  },
29
- "homepage": "https://solitude-demo.efu.me/",
29
+ "homepage": "https://efu.me/",
30
30
  "author": "Hexo-Theme-Solitude<o@efu.me>",
31
31
  "license": "MIT"
32
32
  }
@@ -3,7 +3,7 @@ hexo.extend.filter.register('before_generate', () => {
3
3
  site: {
4
4
  name: {
5
5
  class: 'text', custom: 'Solitude'
6
- }, siteIcon: '/img/logo.png', icon: 'icon'
6
+ }, siteIcon: '/img/pwa/favicon.ico', icon: 'icon'
7
7
  }, nav: {
8
8
  group: null, menu: null, right: {
9
9
  random: false, console: false, custom: [],
@@ -1,14 +1,12 @@
1
1
  hexo.on('ready', () => {
2
2
  const {version} = require('../../package.json')
3
3
  hexo.log.info(`
4
- ===================================================================
5
- ##### #### # ##### ###### # # ###### ######
6
- # # # # # # # # # # #
7
- ##### # # # # # # # # # ######
8
- # # # # # # # # # # #
9
- ###### #### ##### ##### # ### ###### ######
10
- ${version}
11
- ===================================================================
12
- GitHub: https://github.com/valor-x/hexo-theme-solitude
4
+ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮
5
+ │ │
6
+ Theme: Solitude │
7
+ Version: v${version} │
8
+ Changelog: https://github.com/valor-x/hexo-theme-solitude/releases/tag/v${version} │
9
+ │ │
10
+ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯
13
11
  `)
14
12
  })
@@ -1,3 +1,8 @@
1
+ /**
2
+ * related post
3
+ * from solitude
4
+ */
5
+
1
6
  'use strict'
2
7
 
3
8
  hexo.extend.helper.register('related_posts', function (currentPost, allPosts) {
@@ -2,20 +2,14 @@ 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
- if (theme.config.aside.tags.highlight) {
6
- const array = theme.config.aside.tags.list.map(item => encodeURIComponent(item));
7
- style.define('highlightTags', array);
8
- }
9
-
10
- const aside = [theme.config.aside.home.noSticky, theme.config.aside.home.Sticky, theme.config.aside.post.noSticky, theme.config.aside.post.Sticky, theme.config.aside.page.Sticky, theme.config.aside.page.noSticky].join(',').split(',');
11
- const uniqueArr = [...new Set(aside)];
12
- if (uniqueArr.length > 0) {
13
- style.define('aside', uniqueArr);
14
- }
5
+ // about card
6
+ style.define('$about', data && data.about ? Object.keys(data.about) : false);
15
7
 
16
- style.define('about', data && data.about ? Object.keys(data.about) : []);
8
+ // links
9
+ style.define('$link', !!(data && data.links))
17
10
 
18
- initGroupColor(theme.config.hometop.group, style);
11
+ // equipment
12
+ style.define('$equipment', !!(data && data.equipment))
19
13
 
20
14
  // highlight
21
15
  const {syntax_highlighter: syntaxHighlighter, highlight, prismjs} = hexo.config
@@ -32,30 +26,4 @@ hexo.extend.filter.register('stylus:renderer', function (style) {
32
26
  style.define('$highlight_line_number', highlightLineNumber)
33
27
  style.define('$prismjs_enable', prismjsEnable)
34
28
  style.define('$prismjs_line_number', prismjsLineNumber)
35
- });
36
-
37
- function initGroupColor(gg, style) {
38
- if (gg === null || gg === undefined) {
39
- style.define('banner_group', [])
40
- return;
41
- }
42
- let group = Object.keys(gg).map(key => {
43
- return {
44
- [key]: (gg[key]).split('||')[2]
45
- }
46
- });
47
-
48
- style.define('banner_group', group);
49
-
50
- function getGroupColor(key) {
51
- let color = '';
52
- group.forEach(item => {
53
- if (item[key]) {
54
- color = item[key];
55
- }
56
- });
57
- return color;
58
- }
59
-
60
- style.define('getGroupColor', getGroupColor);
61
- }
29
+ });
@@ -0,0 +1,197 @@
1
+ #article-container
2
+ overflow-wrap break-word
3
+ +maxWidth768()
4
+ overflow hidden
5
+
6
+ iframe
7
+ border-radius 12px
8
+ margin 0 0 1rem
9
+
10
+ a
11
+ color var(--efu-fontcolor)
12
+ border-radius 4px 4px 0 0
13
+
14
+ border-bottom 2px dotted var(--efu-lighttext)
15
+ font-weight 700
16
+
17
+ &:not(.fancybox)
18
+ padding 0 4px
19
+
20
+ &:hover
21
+ border 0
22
+ text-decoration none
23
+ color var(--efu-white)
24
+ border-radius 4px
25
+ background var(--efu-main)
26
+
27
+ .table-wrap
28
+ margin 1rem 0
29
+ border-radius 8px
30
+ overflow-x scroll
31
+
32
+ a.headerlink
33
+ float right
34
+ opacity .08
35
+ position relative
36
+ padding 0
37
+ border none
38
+ border-radius 8px
39
+ line-height 1
40
+ font-size .8rem
41
+
42
+ #page &
43
+ display none
44
+
45
+ &::before
46
+ content "\e082"
47
+ font-family solitude
48
+ cursor pointer
49
+
50
+ &:hover
51
+ border-bottom none
52
+ box-shadow none
53
+ background var(--efu-none)
54
+ color var(--efu-lighttext)
55
+ opacity 1
56
+
57
+ &::before
58
+ color var(--efu-main)
59
+
60
+ p
61
+ font-size .9rem
62
+ line-height 1.7
63
+ font-weight 400
64
+ margin 1rem 0
65
+ text-align left
66
+ letter-spacing .6px
67
+
68
+ img
69
+ margin auto
70
+
71
+ a
72
+ &:not(.fancybox)
73
+ text-decoration none
74
+ border-bottom 2px dotted var(--efu-lighttext)
75
+ color var(--efu-fontcolor)
76
+ font-weight 700
77
+ padding 0 4px
78
+ border-radius 4px 4px 0 0
79
+
80
+ &:hover
81
+ color var(--efu-white)
82
+ border-radius 4px
83
+ background var(--efu-main)
84
+
85
+ code:not([class*='language-'])
86
+ color var(--efu-white)
87
+ padding 0.2rem 0.4rem
88
+ border-radius 4px
89
+ margin 0 4px
90
+ background var(--efu-pink)
91
+ line-height 2
92
+ box-shadow var(--efu-shadow-border)
93
+
94
+ img
95
+ border-radius 12px
96
+ object-fit cover
97
+ display block
98
+ margin 0.8rem auto
99
+ max-width 90%
100
+ max-height 450px
101
+
102
+ ul, ol
103
+ padding 0
104
+ margin-top 0.4rem
105
+ list-style none
106
+ counter-reset li 0
107
+
108
+ li
109
+ &:before
110
+ position absolute
111
+ top 0
112
+ left 0
113
+ color var(--efu-fontcolor)
114
+ transition all .3s ease-out 0s
115
+ background var(--efu-lighttext)
116
+
117
+ &:not(.tab)
118
+ position relative
119
+ margin 0.2rem 0
120
+
121
+ ul
122
+ > li
123
+ &:not(.tab)
124
+ padding 0.2em 0.2em 0.2em 1.4em
125
+
126
+ &:before
127
+ margin 0
128
+ top 0.78em
129
+ width 0.42em
130
+ height 0.42em
131
+ border-radius 0.42em
132
+ background 0 0
133
+ content ""
134
+ line-height .42em
135
+ border 0.21em solid var(--efu-lighttext)
136
+ background var(--efu-lighttext)
137
+
138
+ ol
139
+ > li:before
140
+ margin-top .65em
141
+ width 1.45em
142
+ height 1.45em
143
+ border-radius .725em
144
+ text-align center
145
+ font-size .85em
146
+ color var(--efu-white)
147
+ line-height 1.45em
148
+
149
+ ul li
150
+ line-height 1.7
151
+
152
+ > li
153
+
154
+ &:not(.tab)
155
+ padding .2em .2em .2em 1.8em
156
+
157
+ &:before
158
+ content counter(li)
159
+ counter-increment li 1
160
+
161
+ > ol
162
+ > li
163
+ &:before
164
+ content counter(li, lower-alpha)
165
+ counter-increment li
166
+
167
+ > ol
168
+ > li
169
+ &:before
170
+ content counter(li, lower-roman)
171
+ counter-increment li
172
+
173
+ &.post-content
174
+ h1, h2, h3, h4
175
+ display flex
176
+ align-items center
177
+ justify-content space-between
178
+ flex-direction row-reverse
179
+ transition all .2s ease-out 0s
180
+
181
+ h1
182
+ font-size 1.5rem
183
+ line-height 1.3
184
+
185
+ h2
186
+ font-size 1.3rem
187
+ line-height 1.3
188
+ border-top 1px dashed var(--efu-theme-op)
189
+ padding-top 1.5rem
190
+
191
+ h3
192
+ font-size 1.1rem
193
+ line-height 1.3
194
+
195
+ h4
196
+ font-size 1.1rem
197
+ line-height 1.3