hexo-theme-gnix 1.1.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.
Files changed (143) hide show
  1. package/README.md +106 -0
  2. package/include/hexo/filter/locals.js +109 -0
  3. package/include/hexo/generator/categories.js +12 -0
  4. package/include/hexo/generator/category.js +52 -0
  5. package/include/hexo/generator/insight.js +50 -0
  6. package/include/hexo/generator/manifest.js +23 -0
  7. package/include/hexo/generator/tags.js +12 -0
  8. package/include/hexo/helper/cdn.js +21 -0
  9. package/include/hexo/helper/page.js +27 -0
  10. package/include/hexo/view.js +40 -0
  11. package/include/register.js +11 -0
  12. package/include/util/common.js +33 -0
  13. package/languages/en.yml +47 -0
  14. package/languages/fr.yml +46 -0
  15. package/languages/ja.yml +46 -0
  16. package/languages/zh-CN.yml +47 -0
  17. package/languages/zh-TW.yml +47 -0
  18. package/layout/archive.jsx +118 -0
  19. package/layout/categories.jsx +137 -0
  20. package/layout/category.jsx +38 -0
  21. package/layout/comment/disqus.jsx +79 -0
  22. package/layout/comment/disqusjs.jsx +127 -0
  23. package/layout/comment/giscus.jsx +193 -0
  24. package/layout/comment/gitalk.jsx +141 -0
  25. package/layout/comment/twikoo.jsx +63 -0
  26. package/layout/comment/utterances.jsx +86 -0
  27. package/layout/comment/valine.jsx +143 -0
  28. package/layout/comment/waline.jsx +156 -0
  29. package/layout/common/article.jsx +131 -0
  30. package/layout/common/article_cover.jsx +33 -0
  31. package/layout/common/article_media.jsx +34 -0
  32. package/layout/common/comment.jsx +38 -0
  33. package/layout/common/footer.jsx +228 -0
  34. package/layout/common/head.jsx +242 -0
  35. package/layout/common/navbar.jsx +219 -0
  36. package/layout/common/plugins.jsx +39 -0
  37. package/layout/common/scripts.jsx +49 -0
  38. package/layout/common/search.jsx +22 -0
  39. package/layout/common/theme_selector.jsx +79 -0
  40. package/layout/common/toc.jsx +53 -0
  41. package/layout/index.jsx +29 -0
  42. package/layout/layout.jsx +34 -0
  43. package/layout/misc/article_licensing.jsx +114 -0
  44. package/layout/misc/meta.jsx +61 -0
  45. package/layout/misc/open_graph.jsx +164 -0
  46. package/layout/misc/paginator.jsx +90 -0
  47. package/layout/misc/structured_data.jsx +110 -0
  48. package/layout/misc/web_app.jsx +106 -0
  49. package/layout/page.jsx +12 -0
  50. package/layout/plugin/bing_webmaster.jsx +47 -0
  51. package/layout/plugin/busuanzi.jsx +40 -0
  52. package/layout/plugin/clarity.jsx +22 -0
  53. package/layout/plugin/cookie_consent.jsx +136 -0
  54. package/layout/plugin/google_analytics.jsx +66 -0
  55. package/layout/plugin/google_tag_mamager.jsx +41 -0
  56. package/layout/plugin/netlify.jsx +39 -0
  57. package/layout/plugin/pjax.jsx +20 -0
  58. package/layout/plugin/statcounter.jsx +69 -0
  59. package/layout/plugin/twitter_conversion_tracking.jsx +51 -0
  60. package/layout/post.jsx +16 -0
  61. package/layout/search/insight.jsx +53 -0
  62. package/layout/tag.jsx +29 -0
  63. package/layout/tags.jsx +55 -0
  64. package/package.json +42 -0
  65. package/scripts/index.js +1 -0
  66. package/source/css/callout_blocks.css +204 -0
  67. package/source/css/default.css +1590 -0
  68. package/source/css/font/woff2/Futura-Book.woff2 +0 -0
  69. package/source/css/font/woff2/Paris2024-Variable.woff2 +0 -0
  70. package/source/css/font/woff2/doto.woff2 +0 -0
  71. package/source/css/optional/chinese.css +17 -0
  72. package/source/css/responsive/desktop.css +164 -0
  73. package/source/css/responsive/mobile.css +46 -0
  74. package/source/css/responsive/tablet.css +46 -0
  75. package/source/css/responsive/touch.css +254 -0
  76. package/source/css/shiki/shiki.min.css +1 -0
  77. package/source/css/twikoo.css +2143 -0
  78. package/source/img/avatar.webp +0 -0
  79. package/source/img/background.webp +0 -0
  80. package/source/img/favicon.svg +6 -0
  81. package/source/img/logo.svg +9 -0
  82. package/source/img/og_image.png +0 -0
  83. package/source/js/busuanzi.js +46 -0
  84. package/source/js/host/cookieconsent/3.1.1/build/cookieconsent.min.css +6 -0
  85. package/source/js/host/cookieconsent/3.1.1/build/cookieconsent.min.js +1 -0
  86. package/source/js/host/iconify-icon/3.0.2/iconify-icon.min.js +12 -0
  87. package/source/js/host/medium-zoom/dist/medium-zoom.min.js +2 -0
  88. package/source/js/host/mermaid/mermaid.min.js +2811 -0
  89. package/source/js/host/pjax/0.2.8/pjax.min.js +1 -0
  90. package/source/js/host/twikoo/1.6.41/dist/twikoo.all.min.js +2 -0
  91. package/source/js/insight.js +330 -0
  92. package/source/js/instant-page.min.js +1 -0
  93. package/source/js/live2d_Asoul/Model/Ava/Ava.4096/texture_00.webp +0 -0
  94. package/source/js/live2d_Asoul/Model/Ava/Ava.moc3 +0 -0
  95. package/source/js/live2d_Asoul/Model/Ava/Ava.model3.json +323 -0
  96. package/source/js/live2d_Asoul/Model/Ava/Ava.physics3.json +1225 -0
  97. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_idle.motion3.json +1 -0
  98. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_shake01.motion3.json +1 -0
  99. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_shake02.motion3.json +1 -0
  100. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap01.motion3.json +1 -0
  101. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap02.motion3.json +1 -0
  102. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap03.motion3.json +1 -0
  103. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap04.motion3.json +1 -0
  104. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap05.motion3.json +1 -0
  105. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap06.motion3.json +1 -0
  106. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap07.motion3.json +1 -0
  107. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap08.motion3.json +1 -0
  108. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap09.motion3.json +1 -0
  109. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap10.motion3.json +1 -0
  110. package/source/js/live2d_Asoul/Model/Ava/motions/Ava_tap11.motion3.json +1 -0
  111. package/source/js/live2d_Asoul/Model/Ava/raw.ex.json +16 -0
  112. package/source/js/live2d_Asoul/Model/Ava/raw.model3.json +321 -0
  113. package/source/js/live2d_Asoul/Model/Diana/Diana.4096/texture_00.webp +0 -0
  114. package/source/js/live2d_Asoul/Model/Diana/Diana.moc3 +0 -0
  115. package/source/js/live2d_Asoul/Model/Diana/Diana.model3.json +212 -0
  116. package/source/js/live2d_Asoul/Model/Diana/Diana.physics3.json +764 -0
  117. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_idle.motion3.json +1 -0
  118. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap01.motion3.json +1 -0
  119. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap02.motion3.json +1 -0
  120. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap03.motion3.json +1 -0
  121. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap04.motion3.json +1 -0
  122. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap05.motion3.json +1 -0
  123. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap06.motion3.json +1 -0
  124. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap07.motion3.json +1 -0
  125. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap08.motion3.json +1 -0
  126. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap09.motion3.json +1 -0
  127. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap10.motion3.json +1 -0
  128. package/source/js/live2d_Asoul/Model/Diana/motions/Diana_tap11.motion3.json +1 -0
  129. package/source/js/live2d_Asoul/Model/Diana/raw.ex.json +16 -0
  130. package/source/js/live2d_Asoul/Model/Diana/raw.model3.json +210 -0
  131. package/source/js/live2d_Asoul/TweenLite.js +12 -0
  132. package/source/js/live2d_Asoul/cubism4.min.js +2 -0
  133. package/source/js/live2d_Asoul/live2dcubismcore.min.js +9 -0
  134. package/source/js/live2d_Asoul/load.js +231 -0
  135. package/source/js/live2d_Asoul/pio.css +161 -0
  136. package/source/js/live2d_Asoul/pio.js +296 -0
  137. package/source/js/live2d_Asoul/pio_sdk4.js +149 -0
  138. package/source/js/live2d_Asoul/pixi.min.js +9 -0
  139. package/source/js/main.js +218 -0
  140. package/source/js/pjax.js +29 -0
  141. package/source/js/shiki/shiki.js +191 -0
  142. package/source/js/theme-selector.js +206 -0
  143. package/util/cache.js +47 -0
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Insight search plugin JSX component.
3
+ * @module view/search/insight
4
+ */
5
+ const { Component, cacheComponent } = require("../../include/util/common");
6
+ class Insight extends Component {
7
+ render() {
8
+ const { translation, contentUrl, jsUrl } = this.props;
9
+
10
+ const js = `document.addEventListener('DOMContentLoaded', function () {
11
+ loadInsight(${JSON.stringify({ contentUrl })}, ${JSON.stringify(translation)});
12
+ });`;
13
+
14
+ return (
15
+ <>
16
+ <div class="searchbox">
17
+ <div class="searchbox-container">
18
+ <div class="searchbox-input-container">
19
+ <input
20
+ type="text"
21
+ name="search-input"
22
+ class="searchbox-input"
23
+ placeholder={translation.hint}
24
+ />
25
+ </div>
26
+ <div class="searchbox-body"></div>
27
+ </div>
28
+ </div>
29
+ <script data-pjax src={jsUrl} defer={true}></script>
30
+ <script data-pjax dangerouslySetInnerHTML={{ __html: js }}></script>
31
+ </>
32
+ );
33
+ }
34
+ }
35
+
36
+ Insight.Cacheable = cacheComponent(Insight, "search.insight", (props) => {
37
+ const { helper } = props;
38
+
39
+ return {
40
+ translation: {
41
+ hint: helper.__("search.hint"),
42
+ untitled: helper.__("search.untitled"),
43
+ posts: helper._p("common.post", Infinity),
44
+ pages: helper._p("common.page", Infinity),
45
+ categories: helper._p("common.category", Infinity),
46
+ tags: helper._p("common.tag", Infinity),
47
+ },
48
+ contentUrl: helper.url_for("/content.json"),
49
+ jsUrl: helper.url_for("/js/insight.js"),
50
+ };
51
+ });
52
+
53
+ module.exports = Insight;
package/layout/tag.jsx ADDED
@@ -0,0 +1,29 @@
1
+ const { Component, Fragment } = require("../include/util/common");
2
+ const Index = require("./index");
3
+
4
+ module.exports = class extends Component {
5
+ render() {
6
+ const { config, page, helper } = this.props;
7
+ const { url_for, _p } = helper;
8
+
9
+ return (
10
+ <Fragment>
11
+ <nav class="breadcrumb" aria-label="breadcrumbs">
12
+ <ul>
13
+ <li>
14
+ {" "}
15
+ <font style="color: var(--green)">$</font>&nbsp;ls&nbsp;
16
+ <a href={url_for("/tags/")}>{_p("common.tag", Infinity)}</a>
17
+ </li>
18
+ <li class="is-active">
19
+ <a href="#" aria-current="page">
20
+ {page.tag}
21
+ </a>
22
+ </li>
23
+ </ul>
24
+ </nav>
25
+ <Index config={config} page={page} helper={helper} />
26
+ </Fragment>
27
+ );
28
+ }
29
+ };
@@ -0,0 +1,55 @@
1
+ const { Component, cacheComponent } = require("../include/util/common");
2
+
3
+ class Tags extends Component {
4
+ render() {
5
+ const { tags, showCount } = this.props;
6
+
7
+ return (
8
+ <div class="card widget" data-type="tags">
9
+ <div class="card-content">
10
+ <div class="menu">
11
+ {tags.map((tag) => (
12
+ <a class="tags" href={tag.url}>
13
+ <span class="tag">{tag.name}</span>
14
+ {showCount ? <span class="tag">{tag.count}</span> : null}
15
+ </a>
16
+ ))}
17
+ </div>
18
+ </div>
19
+ </div>
20
+ );
21
+ }
22
+ }
23
+
24
+ Tags.Cacheable = cacheComponent(Tags, "widget.tags", (props) => {
25
+ const { helper, widget = {} } = props;
26
+ const { order_by = "name", amount, show_count = true } = widget;
27
+ let tags = props.tags || props.site.tags;
28
+ const { url_for, _p } = helper;
29
+
30
+ if (!tags || !tags.length) {
31
+ return null;
32
+ }
33
+
34
+ tags = tags.sort(order_by).filter((tag) => tag.length);
35
+ if (amount) {
36
+ tags = tags.limit(amount);
37
+ }
38
+
39
+ return {
40
+ showCount: show_count,
41
+ title: _p("common.tag", Infinity),
42
+ tags: tags.map((tag) => ({
43
+ name: tag.name,
44
+ count: tag.length,
45
+ url: url_for(tag.path),
46
+ })),
47
+ };
48
+ });
49
+ module.exports = class extends Component {
50
+ render() {
51
+ const { site, helper } = this.props;
52
+
53
+ return <Tags.Cacheable site={site} helper={helper} />;
54
+ }
55
+ };
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "hexo-theme-gnix",
3
+ "version": "1.1.0",
4
+ "author": "Efterklang <gaojiaxing0220@gmail.com>",
5
+ "license": "MIT",
6
+ "description": "Second generation of Hexo theme Icarus, now with Catppuccin flavor and night mode support.",
7
+ "keywords": [
8
+ "hexo",
9
+ "theme",
10
+ "icarus",
11
+ "catppuccin"
12
+ ],
13
+ "homepage": "https://github.com/Efterklang/hexo-theme-icarus",
14
+ "repository": "https://github.com/Efterklang/hexo-theme-icarus.git",
15
+ "bugs": {
16
+ "url": "https://github.com/Efterklang/hexo-theme-icarus/issues"
17
+ },
18
+ "engines": {
19
+ "node": ">=14"
20
+ },
21
+ "scripts": {
22
+ "lint": "biome check --write ."
23
+ },
24
+ "files": [
25
+ "include",
26
+ "layout",
27
+ "scripts",
28
+ "source",
29
+ "util",
30
+ "languages",
31
+ "README.md"
32
+ ],
33
+ "dependencies": {
34
+ "hexo-renderer-inferno": "^1.0.2",
35
+ "moment": "^2.30.1"
36
+ },
37
+ "peerDependencies": {
38
+ "hexo": ">=7.0.0",
39
+ "hexo-util": ">=4.0.0",
40
+ "hexo-pagination": ">=3.0.0"
41
+ }
42
+ }
@@ -0,0 +1 @@
1
+ require("../include/register")(hexo);
@@ -0,0 +1,204 @@
1
+ :root {
2
+ --line-height-tight: 1.3;
3
+ --callout-border-width: 1.5px;
4
+ --callout-padding: 10px 12px 10px 15px;
5
+ --callout-radius: 8px;
6
+ --callout-title-color: inherit;
7
+ --callout-title-padding: 0;
8
+ --callout-title-size: inherit;
9
+ --callout-title-weight: 600;
10
+ --callout-content-padding: 0;
11
+ --callout-collapse-icon: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0ibTkgMThsNi02bC02LTYiLz48L3N2Zz4=);
12
+ }
13
+ .callout {
14
+ border-style: solid;
15
+ border-width: var(--callout-border-width);
16
+ border-radius: var(--callout-radius);
17
+ margin: 1em 0;
18
+ padding: var(--callout-padding);
19
+ --callout-icon: lucide-pencil;
20
+ border-color: hsl(from var(--blue) h s l / 0.5);
21
+ background-color: hsl(from var(--blue) h s l / 0.2);
22
+ }
23
+ .callout-title {
24
+ padding: var(--callout-title-padding);
25
+ display: flex;
26
+ gap: 7px;
27
+ font-size: var(--callout-title-size);
28
+ line-height: var(--line-height-tight);
29
+ align-items: center;
30
+ cursor: pointer;
31
+ color: var(--blue);
32
+ > .callout-icon {
33
+ flex: 0 0 auto;
34
+ display: flex;
35
+ align-items: center;
36
+ }
37
+ > .callout-title-inner {
38
+ --font-weight: var(--callout-title-weight);
39
+ font-weight: var(--font-weight);
40
+ color: var(--callout-title-color);
41
+ }
42
+ > .callout-fold {
43
+ mask-image: var(--callout-collapse-icon);
44
+ mask-size: 100%;
45
+ -webkit-mask-image: var(--callout-collapse-icon);
46
+ -webkit-mask-size: 100%;
47
+ height: 20px;
48
+ width: 20px;
49
+ transition: 0.1s ease-in-out;
50
+ background-color: var(--blue);
51
+ }
52
+ }
53
+ .callout-content {
54
+ padding: var(--callout-content-padding);
55
+ }
56
+ details[close].callout > .callout-title > .callout-fold {
57
+ transform: rotate(-90deg);
58
+ }
59
+ details[open].callout > .callout-title > .callout-fold {
60
+ transform: rotate(90deg);
61
+ }
62
+ .callout[data-callout="info"],
63
+ .callout[data-callout="todo"] {
64
+ --callout-icon: lucide-check-circle-2;
65
+ border-color: hsl(from var(--sapphire) h s l / 0.5);
66
+ background-color: hsl(from var(--sapphire) h s l / 0.2);
67
+ svg {
68
+ color: var(--sapphire);
69
+ }
70
+ .callout-title {
71
+ --callout-title-color: var(--sapphire);
72
+ }
73
+ .callout-title .callout-fold {
74
+ background-color: var(--sapphire);
75
+ }
76
+ }
77
+ .callout[data-callout="success"],
78
+ .callout[data-callout="check"],
79
+ .callout[data-callout="done"] {
80
+ --callout-icon: lucide-check;
81
+ border-color: hsl(from var(--green) h s l / 0.5);
82
+ background-color: hsl(from var(--green) h s l / 0.2);
83
+ svg {
84
+ color: var(--green);
85
+ }
86
+ .callout-title {
87
+ --callout-title-color: var(--green);
88
+ }
89
+ .callout-title .callout-fold {
90
+ background-color: var(--green);
91
+ }
92
+ }
93
+ .callout[data-callout="warning"],
94
+ .callout[data-callout="caution"],
95
+ .callout[data-callout="attention"] {
96
+ --callout-icon: lucide-alert-triangle;
97
+ border-color: hsl(from var(--peach) h s l / 0.5);
98
+ background-color: hsl(from var(--peach) h s l / 0.2);
99
+ svg {
100
+ color: var(--peach);
101
+ }
102
+ .callout-title {
103
+ --callout-title-color: var(--peach);
104
+ }
105
+ .callout-title .callout-fold {
106
+ background-color: var(--peach);
107
+ }
108
+ }
109
+ .callout[data-callout="question"],
110
+ .callout[data-callout="help"],
111
+ .callout[data-callout="faq"] {
112
+ --callout-icon: lucide-alert-mark;
113
+ border-color: hsl(from var(--yellow) h s l / 0.5);
114
+ background-color: hsl(from var(--yellow) h s l / 0.2);
115
+ svg {
116
+ color: var(--yellow);
117
+ }
118
+ .callout-title {
119
+ --callout-title-color: var(--yellow);
120
+ }
121
+ .callout-title .callout-fold {
122
+ background-color: var(--yellow);
123
+ }
124
+ }
125
+ .callout[data-callout="danger"],
126
+ .callout[data-callout="error"],
127
+ .callout[data-callout="bug"],
128
+ .callout[data-callout="failure"],
129
+ .callout[data-callout="fail"],
130
+ .callout[data-callout="missing"] {
131
+ --callout-icon: lucide-zap;
132
+ border-color: hsl(from var(--red) h s l / 0.5);
133
+ background-color: hsl(from var(--red) h s l / 0.2);
134
+ svg {
135
+ color: var(--red);
136
+ }
137
+ .callout-title {
138
+ --callout-title-color: var(--red);
139
+ }
140
+ .callout-title .callout-fold {
141
+ background-color: var(--red);
142
+ }
143
+ }
144
+ .callout[data-callout="tip"],
145
+ .callout[data-callout="hint"],
146
+ .callout[data-callout="important"] {
147
+ --callout-icon: lucide-flame;
148
+ border-color: hsl(from var(--pink) h s l / 0.5);
149
+ background-color: hsl(from var(--pink) h s l / 0.2);
150
+ svg {
151
+ color: var(--pink);
152
+ }
153
+ .callout-title {
154
+ --callout-title-color: var(--pink);
155
+ }
156
+ .callout-title .callout-fold {
157
+ background-color: var(--pink);
158
+ }
159
+ }
160
+ .callout[data-callout="example"] {
161
+ --callout-icon: lucide-list;
162
+ border-color: hsl(from var(--mauve) h s l / 0.5);
163
+ background-color: hsl(from var(--mauve) h s l / 0.2);
164
+ svg {
165
+ color: var(--mauve);
166
+ }
167
+ .callout-title {
168
+ --callout-title-color: var(--mauve);
169
+ }
170
+ .callout-title .callout-fold {
171
+ background-color: var(--mauve);
172
+ }
173
+ }
174
+ .callout[data-callout="abstract"],
175
+ .callout[data-callout="summary"],
176
+ .callout[data-callout="tldr"] {
177
+ --callout-icon: lucide-clipboard-list;
178
+ border-color: hsl(from var(--teal) h s l / 0.5);
179
+ background-color: hsl(from var(--teal) h s l / 0.2);
180
+ svg {
181
+ color: var(--teal);
182
+ }
183
+ .callout-title {
184
+ --callout-title-color: var(--teal);
185
+ }
186
+ .callout-title .callout-fold {
187
+ background-color: var(--teal);
188
+ }
189
+ }
190
+ .callout[data-callout="quote"],
191
+ .callout[data-callout="cite"] {
192
+ --callout-icon: quote-glyph;
193
+ border-color: hsl(from var(--lavender) h s l / 0.5);
194
+ background-color: hsl(from var(--lavender) h s l / 0.2);
195
+ svg {
196
+ color: var(--lavender);
197
+ }
198
+ .callout-title {
199
+ --callout-title-color: var(--lavender);
200
+ }
201
+ .callout-title .callout-fold {
202
+ background-color: var(--lavender);
203
+ }
204
+ }