hexo-theme-stellar 1.44.0 → 2.0.0-rc.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 (377) hide show
  1. package/CHANGELOG.md +63 -5
  2. package/CONTRIBUTING.md +29 -120
  3. package/README.md +66 -73
  4. package/README_EN.md +66 -73
  5. package/_config.yml +890 -743
  6. package/_data/icons.yml +43 -171
  7. package/_data/widgets.yml +1 -1
  8. package/assets/icon-v2-x512.webp +0 -0
  9. package/languages/en.yml +59 -2
  10. package/languages/zh-CN.yml +59 -2
  11. package/languages/zh-TW.yml +59 -2
  12. package/layout/404.ejs +7 -4
  13. package/layout/_partial/comments/artalk/layout.ejs +3 -2
  14. package/layout/_partial/comments/beaudar/layout.ejs +2 -2
  15. package/layout/_partial/comments/giscus/layout.ejs +2 -5
  16. package/layout/_partial/comments/layout.ejs +11 -40
  17. package/layout/_partial/comments/twikoo/layout.ejs +3 -2
  18. package/layout/_partial/comments/utterances/layout.ejs +2 -2
  19. package/layout/_partial/comments/waline/layout.ejs +3 -2
  20. package/layout/_partial/components/collection-item.ejs +30 -13
  21. package/layout/_partial/components/collection.ejs +2 -2
  22. package/layout/_partial/cover/index.ejs +5 -2
  23. package/layout/_partial/cover/wiki_cover.ejs +39 -28
  24. package/layout/_partial/dropdown.ejs +26 -14
  25. package/layout/_partial/head.ejs +96 -69
  26. package/layout/_partial/main/article/contributors.ejs +12 -9
  27. package/layout/_partial/main/article/post_footer.ejs +47 -0
  28. package/layout/_partial/main/article/post_read_next.ejs +22 -0
  29. package/layout/_partial/main/article/post_related.ejs +14 -0
  30. package/layout/_partial/main/article/post_tags.ejs +12 -0
  31. package/layout/_partial/main/article/share.ejs +55 -0
  32. package/layout/_partial/main/footer.ejs +11 -10
  33. package/layout/_partial/main/{navbar/nav_tabs_blog.ejs → listing_nav/blog.ejs} +21 -18
  34. package/layout/_partial/main/listing_nav/wiki.ejs +56 -0
  35. package/layout/_partial/main/navbar/article_banner.ejs +39 -35
  36. package/layout/_partial/main/navbar/breadcrumb/blog.ejs +15 -28
  37. package/layout/_partial/main/navbar/breadcrumb/note.ejs +12 -5
  38. package/layout/_partial/main/navbar/breadcrumb/wiki.ejs +15 -11
  39. package/layout/_partial/main/navbar/dateinfo.ejs +28 -12
  40. package/layout/_partial/main/navbar/ghinfo.ejs +5 -3
  41. package/layout/_partial/main/notebook/note_card.ejs +12 -17
  42. package/layout/_partial/main/notebook/note_tags.ejs +3 -4
  43. package/layout/_partial/main/notebook/notebook_card.ejs +11 -4
  44. package/layout/_partial/main/pin_slider.ejs +48 -43
  45. package/layout/_partial/main/post_list/archive_item.ejs +8 -4
  46. package/layout/_partial/main/post_list/latest_post_card.ejs +10 -4
  47. package/layout/_partial/main/post_list/post_card.ejs +39 -90
  48. package/layout/_partial/main/post_list/topic_card.ejs +7 -5
  49. package/layout/_partial/main/post_list/wiki_card.ejs +16 -13
  50. package/layout/_partial/menubtn.ejs +3 -3
  51. package/layout/_partial/primitives/item.ejs +8 -0
  52. package/layout/_partial/primitives/navigation.ejs +17 -0
  53. package/layout/_partial/primitives/region.ejs +16 -0
  54. package/layout/_partial/primitives/section.ejs +8 -0
  55. package/layout/_partial/primitives/shell.ejs +35 -0
  56. package/layout/_partial/regions/widgets.ejs +84 -0
  57. package/layout/_partial/scripts/defines.ejs +46 -76
  58. package/layout/_partial/scripts/runtime.ejs +55 -0
  59. package/layout/_partial/scripts.ejs +18 -42
  60. package/layout/_partial/search/dialog.ejs +33 -0
  61. package/layout/_partial/search/shortcut.ejs +1 -0
  62. package/layout/_partial/sidebar/brand.ejs +127 -0
  63. package/layout/_partial/sidebar/menu.ejs +59 -14
  64. package/layout/_partial/sidebar/search.ejs +58 -41
  65. package/layout/_partial/widgets/actions.ejs +25 -0
  66. package/layout/_partial/widgets/author.ejs +9 -5
  67. package/layout/_partial/widgets/components/linklist.ejs +1 -2
  68. package/layout/_partial/widgets/ghissues.ejs +7 -10
  69. package/layout/_partial/widgets/ghrepo.ejs +23 -16
  70. package/layout/_partial/widgets/ghuser.ejs +3 -3
  71. package/layout/_partial/widgets/recent.ejs +25 -21
  72. package/layout/_partial/widgets/related.ejs +25 -34
  73. package/layout/_partial/widgets/settings.ejs +17 -0
  74. package/layout/_partial/widgets/tagtree.ejs +18 -10
  75. package/layout/_partial/widgets/toc.ejs +17 -9
  76. package/layout/_partial/widgets/tree.ejs +12 -13
  77. package/layout/archive.ejs +20 -13
  78. package/layout/categories.ejs +4 -3
  79. package/layout/collection-preview.ejs +8 -9
  80. package/layout/index.ejs +32 -43
  81. package/layout/index_topic.ejs +6 -13
  82. package/layout/index_wiki.ejs +17 -34
  83. package/layout/layout.ejs +195 -65
  84. package/layout/notebooks.ejs +3 -3
  85. package/layout/notes.ejs +4 -4
  86. package/layout/page.ejs +95 -50
  87. package/layout/settings.ejs +109 -0
  88. package/layout/tags.ejs +4 -3
  89. package/{THIRD-PARTY-NOTICES.md → legal/THIRD-PARTY-NOTICES.md} +8 -4
  90. package/package.json +28 -6
  91. package/scripts/commands/stellar.js +55 -0
  92. package/scripts/events/index.js +15 -9
  93. package/scripts/events/lib/authors.js +9 -7
  94. package/scripts/events/lib/config-hot-reload.js +65 -0
  95. package/scripts/events/lib/config-schema.js +20 -0
  96. package/scripts/events/lib/config.js +22 -63
  97. package/scripts/events/lib/content-config.js +5 -0
  98. package/scripts/events/lib/doc_tree.js +99 -9
  99. package/scripts/events/lib/links.js +6 -3
  100. package/scripts/events/lib/notebooks.js +200 -8
  101. package/scripts/events/lib/utils.js +4 -4
  102. package/scripts/events/lib/version-check.js +57 -3
  103. package/scripts/filters/index.js +2 -27
  104. package/scripts/filters/lib/img_lazyload.js +4 -126
  105. package/scripts/filters/lib/img_onerror.js +14 -17
  106. package/scripts/filters/lib/page-view-model.js +152 -0
  107. package/scripts/generators/404.js +13 -8
  108. package/scripts/generators/author.js +16 -11
  109. package/scripts/generators/notebooks.js +68 -39
  110. package/scripts/generators/search.js +62 -67
  111. package/scripts/generators/settings.js +43 -0
  112. package/scripts/generators/stellar-icons.js +13 -5
  113. package/scripts/generators/topic.js +24 -13
  114. package/scripts/generators/wiki.js +49 -21
  115. package/scripts/helpers/ai_label.js +6 -12
  116. package/scripts/helpers/brand.js +17 -0
  117. package/scripts/helpers/browser_runtime_manifest.js +12 -0
  118. package/scripts/helpers/caption.js +8 -0
  119. package/scripts/helpers/category_color.js +13 -13
  120. package/scripts/helpers/collection.js +18 -0
  121. package/scripts/helpers/comments_model.js +14 -0
  122. package/scripts/helpers/extension_assets.js +8 -0
  123. package/scripts/helpers/json_ld.js +16 -7
  124. package/scripts/helpers/mdrender.js +3 -9
  125. package/scripts/helpers/menu.js +9 -0
  126. package/scripts/helpers/post_view_model.js +23 -0
  127. package/scripts/helpers/regions.js +37 -0
  128. package/scripts/helpers/scrollreveal.js +7 -7
  129. package/scripts/helpers/search_domain.js +34 -0
  130. package/scripts/helpers/service_provider.js +9 -0
  131. package/scripts/helpers/settings.js +16 -0
  132. package/scripts/helpers/share_action.js +8 -0
  133. package/scripts/helpers/stellar_config.js +12 -0
  134. package/scripts/helpers/stellar_data.js +8 -0
  135. package/scripts/helpers/stellar_info.js +21 -16
  136. package/scripts/helpers/stellar_inject.js +9 -0
  137. package/scripts/helpers/ui_classes.js +12 -0
  138. package/scripts/lib/ai_label.js +14 -11
  139. package/scripts/lib/brand.js +41 -0
  140. package/scripts/lib/browser-runtime.js +115 -0
  141. package/scripts/lib/caption.js +21 -0
  142. package/scripts/lib/collection-pipeline/adapters/notebook.js +62 -0
  143. package/scripts/lib/collection-pipeline/adapters/post.js +20 -0
  144. package/scripts/lib/collection-pipeline/adapters/topic.js +82 -0
  145. package/scripts/lib/collection-pipeline/adapters/wiki.js +20 -0
  146. package/scripts/lib/collection-pipeline/index.js +169 -0
  147. package/scripts/lib/collection-pipeline/registry.js +27 -0
  148. package/scripts/lib/collection-pipeline/shared.js +164 -0
  149. package/scripts/lib/comments.js +60 -0
  150. package/scripts/lib/config-inject.js +20 -0
  151. package/scripts/lib/config-schema.js +1095 -0
  152. package/scripts/lib/content-config.js +157 -0
  153. package/scripts/lib/content-defaults.js +56 -0
  154. package/scripts/lib/content-membership.js +233 -0
  155. package/scripts/lib/contribution-contract.js +165 -0
  156. package/scripts/lib/contribution-registry.js +429 -0
  157. package/scripts/lib/doc_tree.js +46 -44
  158. package/scripts/lib/doctor.js +296 -0
  159. package/scripts/lib/front-matter.js +29 -0
  160. package/scripts/lib/hero-effect-registry.js +262 -0
  161. package/scripts/lib/html-images.js +128 -0
  162. package/scripts/lib/internal-constants.js +152 -0
  163. package/scripts/lib/layout-config.js +62 -0
  164. package/scripts/lib/mdrender_html.js +36 -23
  165. package/scripts/lib/menu.js +36 -0
  166. package/scripts/lib/model-schema.js +90 -0
  167. package/scripts/lib/models/index.js +1542 -0
  168. package/scripts/lib/new-note.js +172 -0
  169. package/scripts/lib/page-view-model-registry.js +103 -0
  170. package/scripts/lib/regions.js +132 -0
  171. package/scripts/lib/runtime-data.js +23 -0
  172. package/scripts/lib/safe-path.js +44 -0
  173. package/scripts/lib/search-domain.js +59 -0
  174. package/scripts/lib/seo.js +10 -10
  175. package/scripts/lib/service-provider.js +12 -0
  176. package/scripts/lib/settings.js +16 -0
  177. package/scripts/lib/share-services.js +96 -0
  178. package/scripts/lib/source-config.js +27 -0
  179. package/scripts/lib/theme-metadata.js +22 -0
  180. package/scripts/lib/ui-capabilities.js +32 -0
  181. package/scripts/lib/widget-registry.js +150 -0
  182. package/scripts/lib/wiki_readme.js +15 -11
  183. package/scripts/schema/config-rules.js +290 -0
  184. package/scripts/schema/config-schema.js +163 -0
  185. package/scripts/schema/content-config-rules.js +264 -0
  186. package/scripts/schema/content-config-schema.js +321 -0
  187. package/scripts/schema/model-schema.js +971 -0
  188. package/scripts/schema/schema-utils.js +48 -0
  189. package/scripts/tags/index.js +2 -3
  190. package/scripts/tags/lib/albums.js +6 -6
  191. package/scripts/tags/lib/banner.js +10 -4
  192. package/scripts/tags/lib/box.js +1 -1
  193. package/scripts/tags/lib/button.js +1 -1
  194. package/scripts/tags/lib/chat.js +9 -31
  195. package/scripts/tags/lib/checkbox.js +6 -1
  196. package/scripts/tags/lib/copy.js +4 -1
  197. package/scripts/tags/lib/dropdown.js +6 -4
  198. package/scripts/tags/lib/emoji.js +5 -10
  199. package/scripts/tags/lib/friends.js +4 -4
  200. package/scripts/tags/lib/gallery.js +7 -7
  201. package/scripts/tags/lib/ghcard.js +5 -3
  202. package/scripts/tags/lib/gist.js +16 -0
  203. package/scripts/tags/lib/grid.js +4 -2
  204. package/scripts/tags/lib/hashtag.js +1 -1
  205. package/scripts/tags/lib/icon.js +1 -1
  206. package/scripts/tags/lib/image.js +1 -1
  207. package/scripts/tags/lib/link.js +6 -3
  208. package/scripts/tags/lib/mark.js +8 -3
  209. package/scripts/tags/lib/md.js +1 -1
  210. package/scripts/tags/lib/note.js +1 -1
  211. package/scripts/tags/lib/okr.js +18 -1
  212. package/scripts/tags/lib/posters.js +6 -6
  213. package/scripts/tags/lib/quot.js +15 -5
  214. package/scripts/tags/lib/rating.js +7 -4
  215. package/scripts/tags/lib/sites.js +8 -6
  216. package/scripts/tags/lib/tip.js +6 -6
  217. package/scripts/tags/lib/toc.js +2 -2
  218. package/scripts/tags/lib/vote.js +8 -5
  219. package/source/css/_appearances/_mixins.styl +258 -0
  220. package/source/css/_appearances/card.styl +30 -0
  221. package/source/css/_appearances/flat.styl +44 -0
  222. package/source/css/_appearances/glass.styl +138 -0
  223. package/source/css/_appearances/minimal.styl +325 -0
  224. package/source/css/_common/base.styl +5 -9
  225. package/source/css/_common/blockquote.styl +0 -1
  226. package/source/css/_common/button.styl +1 -1
  227. package/source/css/_common/device.styl +24 -42
  228. package/source/css/_common/dropdown.styl +20 -14
  229. package/source/css/_common/highlight.styl +5 -12
  230. package/source/css/_common/icon.styl +38 -0
  231. package/source/css/_common/input.styl +33 -0
  232. package/source/css/_common/loading.styl +2 -2
  233. package/source/css/_common/svg.styl +0 -8
  234. package/source/css/_components/collection.styl +21 -64
  235. package/source/css/_components/layout.styl +524 -84
  236. package/source/css/_components/list.styl +36 -22
  237. package/source/css/_components/main.styl +16 -19
  238. package/source/css/_components/md.styl +8 -13
  239. package/source/css/_components/pages/article-indent.styl +1 -1
  240. package/source/css/_components/pages/article-story.styl +7 -6
  241. package/source/css/_components/pages/article-tech.styl +5 -5
  242. package/source/css/_components/pages/collection-preview.styl +1 -5
  243. package/source/css/_components/pages/settings.styl +184 -0
  244. package/source/css/_components/partial/article-banner.styl +2 -2
  245. package/source/css/_components/partial/article-footer.styl +0 -32
  246. package/source/css/_components/partial/article-share.styl +48 -0
  247. package/source/css/_components/partial/article-tags.styl +1 -1
  248. package/source/css/_components/partial/cover.styl +13 -13
  249. package/source/css/_components/partial/listing-nav.styl +68 -0
  250. package/source/css/_components/partial/paginator.styl +1 -1
  251. package/source/css/_components/pin-slider.styl +3 -3
  252. package/source/css/_components/sidebar/brand.styl +135 -0
  253. package/source/css/_components/sidebar/footer.styl +14 -31
  254. package/source/css/_components/sidebar/nav-area.styl +4 -0
  255. package/source/css/_components/sidebar/search.styl +176 -26
  256. package/source/css/_components/sidebar/sidebar.styl +76 -110
  257. package/source/css/_components/tag-plugins/banner.styl +16 -28
  258. package/source/css/_components/tag-plugins/checkbox.styl +7 -22
  259. package/source/css/_components/tag-plugins/copy.styl +3 -5
  260. package/source/css/_components/tag-plugins/gallery.styl +2 -2
  261. package/source/css/_components/tag-plugins/grid.styl +3 -0
  262. package/source/css/_components/tag-plugins/image.styl +2 -1
  263. package/source/css/_components/tag-plugins/link.styl +0 -1
  264. package/source/css/_components/tag-plugins/mark.styl +19 -4
  265. package/source/css/_components/tag-plugins/mdrender.styl +2 -2
  266. package/source/css/_components/tag-plugins/navbar.styl +23 -17
  267. package/source/css/_components/tag-plugins/note.styl +2 -2
  268. package/source/css/_components/tag-plugins/okr.styl +1 -2
  269. package/source/css/_components/tag-plugins/quot.styl +5 -0
  270. package/source/css/_components/tag-plugins/rating.styl +3 -2
  271. package/source/css/_components/tag-plugins/timeline.styl +1 -1
  272. package/source/css/_components/tag-plugins/tip.styl +1 -1
  273. package/source/css/_components/tag-plugins/vote.styl +3 -2
  274. package/source/css/_components/widgets/ghrepo.styl +2 -1
  275. package/source/css/_components/widgets/ghuser.styl +4 -6
  276. package/source/css/_components/widgets/settings.styl +49 -0
  277. package/source/css/_components/widgets/timeline.styl +2 -2
  278. package/source/css/_components/widgets/toc.styl +12 -33
  279. package/source/css/_components/widgets/widgets.styl +14 -19
  280. package/source/css/_components/wiki-card.styl +2 -2
  281. package/source/css/_custom.styl +26 -32
  282. package/source/css/_defines/func.styl +47 -37
  283. package/source/css/_defines/theme_base.styl +8 -10
  284. package/source/css/_plugins/card-hover.styl +1 -1
  285. package/source/css/_plugins/copycode.styl +16 -19
  286. package/source/css/_plugins/index.styl +3 -8
  287. package/source/css/_plugins/lazyload.styl +1 -1
  288. package/source/css/main.styl +12 -0
  289. package/source/js/main.js +302 -59
  290. package/source/js/plugins/adaptive-text.js +33 -16
  291. package/source/js/plugins/card-hover.js +2 -24
  292. package/source/js/plugins/copycode.js +10 -16
  293. package/source/js/plugins/voice.js +51 -48
  294. package/source/js/profile.js +316 -0
  295. package/source/js/runtime/asset-loader.js +61 -0
  296. package/source/js/runtime/extension-registry.js +149 -0
  297. package/source/js/runtime/extensions/card-hover.js +5 -0
  298. package/source/js/runtime/extensions/color-scheme-switch.js +101 -0
  299. package/source/js/runtime/extensions/comments.js +200 -0
  300. package/source/js/runtime/extensions/deferred-icons.js +53 -0
  301. package/source/js/{plugins → runtime/extensions}/dropdown.js +69 -30
  302. package/source/js/runtime/extensions/feature.js +200 -0
  303. package/source/js/runtime/extensions/hero-effect.js +179 -0
  304. package/source/js/runtime/extensions/reveal.js +80 -0
  305. package/source/js/runtime/extensions/search.js +23 -0
  306. package/source/js/{services.js → runtime/extensions/services.js} +67 -54
  307. package/source/js/runtime/extensions/settings.js +235 -0
  308. package/source/js/runtime/hero-effects/ferrofluid.js +385 -0
  309. package/source/js/{plugins → runtime/hero-effects}/galaxy.js +53 -177
  310. package/source/js/runtime/hero-effects/light-rays.js +293 -0
  311. package/source/js/runtime/index.js +75 -0
  312. package/source/js/runtime/legacy-request-adapter.js +47 -0
  313. package/source/js/runtime/request-cache.js +219 -0
  314. package/source/js/search/algolia-search.js +76 -51
  315. package/source/js/search/highlight.js +1 -1
  316. package/source/js/search/local-search.js +96 -57
  317. package/source/js/search/shortcut.js +31 -20
  318. package/source/js/services/friends_and_posts.js +6 -1
  319. package/source/js/services/rating.js +14 -6
  320. package/source/js/services/siteinfo.js +3 -7
  321. package/source/js/services/timeline.js +1 -1
  322. package/source/js/services/vote.js +7 -5
  323. package/source/js/services/weibo.js +1 -1
  324. package/source/js/utils.js +19 -444
  325. package/.claude/skills/stellar-theme-dev/SKILL.md +0 -51
  326. package/_data/chat_users.yml +0 -0
  327. package/layout/_partial/comments/artalk/script.ejs +0 -76
  328. package/layout/_partial/comments/beaudar/script.ejs +0 -33
  329. package/layout/_partial/comments/giscus/script.ejs +0 -31
  330. package/layout/_partial/comments/script.ejs +0 -3
  331. package/layout/_partial/comments/twikoo/script.ejs +0 -25
  332. package/layout/_partial/comments/utterances/script.ejs +0 -33
  333. package/layout/_partial/comments/waline/script.ejs +0 -43
  334. package/layout/_partial/main/article/article_footer.ejs +0 -164
  335. package/layout/_partial/main/article/article_tags.ejs +0 -16
  336. package/layout/_partial/main/article/read_next.ejs +0 -63
  337. package/layout/_partial/main/article/related_posts.ejs +0 -16
  338. package/layout/_partial/main/navbar/nav_tabs_wiki.ejs +0 -52
  339. package/layout/_partial/scripts/bootstrap.ejs +0 -37
  340. package/layout/_partial/scripts/lazyload.ejs +0 -89
  341. package/layout/_partial/sidebar/grad-def.ejs +0 -26
  342. package/layout/_partial/sidebar/index_leftbar.ejs +0 -191
  343. package/layout/_partial/sidebar/index_rightbar.ejs +0 -94
  344. package/layout/_partial/sidebar/logo.ejs +0 -99
  345. package/layout/_plugins/adaptive_text.ejs +0 -11
  346. package/layout/_plugins/card_hover.ejs +0 -32
  347. package/layout/_plugins/copycode.ejs +0 -17
  348. package/layout/_plugins/fancybox.ejs +0 -53
  349. package/layout/_plugins/heti.ejs +0 -21
  350. package/layout/_plugins/index.ejs +0 -50
  351. package/layout/_plugins/mathjax.ejs +0 -49
  352. package/layout/_plugins/mermaid.ejs +0 -33
  353. package/layout/_plugins/preload.ejs +0 -9
  354. package/layout/_plugins/scrollreveal.ejs +0 -102
  355. package/layout/_plugins/search/algolia_search.ejs +0 -12
  356. package/layout/_plugins/search/local_search.ejs +0 -9
  357. package/layout/_plugins/swiper.ejs +0 -27
  358. package/layout/_plugins/tianli_gpt.ejs +0 -14
  359. package/scripts/commands/new-note.js +0 -49
  360. package/scripts/events/lib/merge_posts.js +0 -48
  361. package/scripts/events/lib/topic_tree.js +0 -48
  362. package/scripts/helpers/related_posts.js +0 -51
  363. package/scripts/helpers/subtitle.js +0 -8
  364. package/scripts/lib/notebooks.js +0 -181
  365. package/scripts/lib/subtitle.js +0 -28
  366. package/scripts/tags/lib/about.js +0 -48
  367. package/source/css/_components/page-transition.styl +0 -22
  368. package/source/css/_components/partial/navbar.styl +0 -51
  369. package/source/css/_components/sidebar/logo.styl +0 -111
  370. package/source/css/_components/tag-plugins/about.styl +0 -56
  371. package/source/css/_components/widgets/tree.styl +0 -0
  372. package/source/css/_plugins/scrollreveal.styl +0 -6
  373. package/source/css/_plugins/tianli_gpt.styl +0 -213
  374. package/source/css/plugins/mermaid.styl +0 -137
  375. package/source/js/icons.js +0 -60
  376. package/source/js/services/fcircle.js +0 -35
  377. package/source/js/theme.js +0 -61
@@ -0,0 +1,138 @@
1
+ $glass-leftbar-background-type = hexo-config('appearance.backgrounds.leftbar.type')
2
+ $glass-leftbar-background-image = hexo-config('appearance.backgrounds.leftbar.image')
3
+ $glass-leftbar-has-extra-background = $glass-leftbar-background-type != 'none'
4
+ $glass-leftbar-uses-image = $glass-leftbar-background-type == 'image' && $glass-leftbar-background-image
5
+ $glass-leftbar-decoration-inset = 16px
6
+ $glass-leftbar-decoration-blur = convert(hexo-config('appearance.backgrounds.leftbar.backdrop.radius'))
7
+ $glass-leftbar-decoration-saturation = 350%
8
+ $glass-leftbar-gradient-light = hexo-config('appearance.backgrounds.leftbar.gradient.light')
9
+ $glass-leftbar-gradient-dark = hexo-config('appearance.backgrounds.leftbar.gradient.dark')
10
+ $glass-leftbar-gradient-light-base = unquote(hexo-config('appearance.backgrounds.leftbar.gradient.light.0'))
11
+ $glass-leftbar-gradient-light-top = unquote(hexo-config('appearance.backgrounds.leftbar.gradient.light.1'))
12
+ $glass-leftbar-gradient-light-right = unquote(hexo-config('appearance.backgrounds.leftbar.gradient.light.2'))
13
+ $glass-leftbar-gradient-light-bottom = unquote(hexo-config('appearance.backgrounds.leftbar.gradient.light.3'))
14
+ $glass-leftbar-gradient-dark-base = unquote(hexo-config('appearance.backgrounds.leftbar.gradient.dark.0'))
15
+ $glass-leftbar-gradient-dark-top = unquote(hexo-config('appearance.backgrounds.leftbar.gradient.dark.1'))
16
+ $glass-leftbar-gradient-dark-right = unquote(hexo-config('appearance.backgrounds.leftbar.gradient.dark.2'))
17
+ $glass-leftbar-gradient-dark-bottom = unquote(hexo-config('appearance.backgrounds.leftbar.gradient.dark.3'))
18
+
19
+ glass-leftbar-background-filter($opacity)
20
+ --background-opacity: $opacity
21
+ filter: saturate(var(--saturate)) blur(var(--blur-px)) opacity(var(--background-opacity))
22
+
23
+ glass-leftbar-background-image($opacity)
24
+ glass-leftbar-background-filter($opacity)
25
+ background-color: transparent
26
+ background-image: url($glass-leftbar-background-image)
27
+ background-position: center
28
+ background-size: cover
29
+ background-repeat: no-repeat
30
+
31
+ glass-leftbar-background-gradient($base, $top, $right, $bottom, $opacity)
32
+ --background-opacity: $opacity
33
+ filter: blur(var(--blur-px)) opacity(var(--background-opacity))
34
+ background-color: $base
35
+ background-image: radial-gradient(ellipse at 28% 24%, $top 0%, $top 65%, transparent 100%), radial-gradient(ellipse at 60% 50%, $right 0%, $right 60%, transparent 100%), conic-gradient(from 210deg at 32% 72%, $bottom 0deg, $bottom 110deg, transparent 190deg, $top 270deg, transparent 360deg)
36
+ background-position: left top, right 42%, left bottom
37
+ background-size: 56% 34%, 52% 30%, 60% 38%
38
+ background-repeat: no-repeat
39
+
40
+ .site-shell
41
+ --shell-gap: var(--gap-page)
42
+ --shell-edge-inset: 16px
43
+ --hoverable-card-hover-shadow: $boxshadow-card
44
+ --hoverable-card-hover-transform: none
45
+
46
+ .ui-surface
47
+ appearance-glass-surface()
48
+
49
+ appearance-glass-interactions-light()
50
+ appearance-standard-prose()
51
+ appearance-card-listing-nav()
52
+
53
+ // Rightbar TOC 的当前位置仅由文字与左侧标记表达;指针、键盘与按压反馈仍复用 Glass 交互材质。
54
+ .site-region--rightbar .widget-wrapper.toc .toc-link.active:not(:hover):not(:focus-visible):not(:active)
55
+ background: transparent
56
+ box-shadow: none
57
+
58
+ .widget-wrapper.markdown .ui-interactive
59
+ background: var(--bg-a10)
60
+
61
+ .site-region--topbar.ui-surface,
62
+ .site-region--leftbar .ui-surface
63
+ border: 0
64
+ border-radius: $border-card-l
65
+ background: transparent
66
+ backdrop-filter: none
67
+ -webkit-backdrop-filter: none
68
+
69
+ .site-region--leftbar .site-region__surface.ui-surface
70
+ box-shadow: none
71
+
72
+ @media screen and (max-width: $device-laptop)
73
+ .site-region--rightbar .site-region__surface.ui-drawer-surface
74
+ appearance-glass-surface()
75
+ background: var(--bg-a50)
76
+ box-shadow: none
77
+
78
+ @media screen and (max-width: $device-tablet)
79
+ .site-region--leftbar .site-region__surface.ui-surface
80
+ background: var(--bg-a50)
81
+
82
+ .site-region--topbar > .site-region__viewport
83
+ border-radius: inherit
84
+ corner-shape: inherit
85
+
86
+ .site-region--leftbar
87
+ appearance-translucent-leftbar-light()
88
+ .site-region__decoration
89
+ display: none
90
+ if $glass-leftbar-has-extra-background
91
+ display: block
92
+ pointer-events: none
93
+ position: absolute
94
+ --inset: $glass-leftbar-decoration-inset
95
+ top: var(--inset)
96
+ bottom: var(--inset)
97
+ left: var(--inset)
98
+ right: var(--inset)
99
+ border-radius: inherit
100
+ --saturate: $glass-leftbar-decoration-saturation
101
+ --blur-px: $glass-leftbar-decoration-blur
102
+ --background-opacity: 1
103
+ if $glass-leftbar-uses-image
104
+ glass-leftbar-background-image(hexo-config('appearance.backgrounds.leftbar.opacity'))
105
+ else if length($glass-leftbar-gradient-light) == 4
106
+ glass-leftbar-background-gradient($glass-leftbar-gradient-light-base, $glass-leftbar-gradient-light-top, $glass-leftbar-gradient-light-right, $glass-leftbar-gradient-light-bottom, hexo-config('appearance.backgrounds.leftbar.opacity'))
107
+ :root[data-theme='dark'] &
108
+ if $glass-leftbar-uses-image
109
+ glass-leftbar-background-image(hexo-config('appearance.backgrounds.leftbar.opacity') * 0.75)
110
+ else if length($glass-leftbar-gradient-dark) == 4
111
+ glass-leftbar-background-gradient($glass-leftbar-gradient-dark-base, $glass-leftbar-gradient-dark-top, $glass-leftbar-gradient-dark-right, $glass-leftbar-gradient-dark-bottom, hexo-config('appearance.backgrounds.leftbar.opacity'))
112
+ :root:not([data-theme]) &
113
+ @media screen and (prefers-color-scheme: dark)
114
+ if $glass-leftbar-uses-image
115
+ glass-leftbar-background-image(hexo-config('appearance.backgrounds.leftbar.opacity') * 0.75)
116
+ else if length($glass-leftbar-gradient-dark) == 4
117
+ glass-leftbar-background-gradient($glass-leftbar-gradient-dark-base, $glass-leftbar-gradient-dark-top, $glass-leftbar-gradient-dark-right, $glass-leftbar-gradient-dark-bottom, hexo-config('appearance.backgrounds.leftbar.opacity'))
118
+
119
+ if $glass-leftbar-has-extra-background
120
+ @media screen and (min-width: ($device-tablet + 1px))
121
+ html[data-leftbar-state='collapsed'] .site-shell:not([data-drawer='leftbar']) .site-region--leftbar .site-region__decoration
122
+ --inset: 0px
123
+ --blur-px: ($glass-leftbar-decoration-blur / 2)
124
+
125
+ :root[data-theme='dark']
126
+ appearance-glass-interactions-dark()
127
+ .site-region--leftbar
128
+ appearance-translucent-leftbar-dark()
129
+
130
+ :root:not([data-theme])
131
+ @media screen and (prefers-color-scheme: dark)
132
+ appearance-glass-interactions-dark()
133
+ .site-region--leftbar
134
+ appearance-translucent-leftbar-dark()
135
+
136
+ .listing-nav__surface.is-pinned
137
+ bar-glass()
138
+ background: transparent
@@ -0,0 +1,325 @@
1
+ $editorial-paper-light = x-hsla(44, 50%, 96%, 1)
2
+ $editorial-paper-dark = x-hsla(44, 10%, 10%, 1)
3
+ $editorial-card-light = x-hsla(44, 50%, 98%, 1)
4
+ $editorial-card-dark = x-hsla(44, 10%, 14%, 1)
5
+
6
+ // Minimal 使用同一暖纸色系承载背景与卡片,并覆盖全局冷白、冷灰与移动端纯黑背景。
7
+ :root
8
+ --background: $editorial-paper-light
9
+ --card: $editorial-card-light
10
+
11
+ :root:not([data-theme])
12
+ @media (prefers-color-scheme: dark)
13
+ --background: $editorial-paper-dark
14
+ --card: $editorial-card-dark
15
+
16
+ :root[data-theme='light']
17
+ --background: $editorial-paper-light
18
+ --card: $editorial-card-light
19
+
20
+ :root[data-theme='dark']
21
+ --background: $editorial-paper-dark
22
+ --card: $editorial-card-dark
23
+
24
+ .site-shell
25
+ --leftbar-gap: 0px
26
+
27
+ // Topbar 与 Listing Nav 参与自然文档流,不占用滚动中的固定视口空间。
28
+ .site-shell[data-regions~='topbar']
29
+ --shell-sticky-offset: var(--shell-edge-inset)
30
+ --shell-topbar-bottom: 0px
31
+
32
+ .site-region--topbar,
33
+ .listing-nav
34
+ position: static
35
+ top: auto
36
+
37
+ .site-shell[data-regions~='topbar'] .listing-nav .listing-nav__surface.is-pinned
38
+ transform: none
39
+
40
+ // Editorial Minimal 让布局与排版承担层级,普通 Surface 不再制造卡片边界。
41
+ .ui-surface,
42
+ .site-region--topbar.ui-surface,
43
+ .site-region--leftbar .site-region__surface.ui-surface
44
+ border: 0
45
+ background: transparent
46
+ box-shadow: none
47
+ backdrop-filter: none
48
+ -webkit-backdrop-filter: none
49
+
50
+ appearance-transparent-leftbar()
51
+ appearance-editorial-interactions()
52
+ appearance-standard-prose()
53
+
54
+ // Wiki Brand Search 静止态保留轻量虚线边界,交互态与其它复合控件统一。
55
+ .brand-search .search-trigger
56
+ border: 1px dashed var(--block-border)
57
+ box-shadow: none
58
+
59
+ // Region 内的普通 Widget 去掉填充表面;代码、状态和浮层仍由各自组件负责。
60
+ .widget-wrapper.markdown .widget-body,
61
+ .widget-wrapper.tagcloud .widget-body,
62
+ .widget-wrapper.timeline .tag-plugin.timeline .timenode .body,
63
+ .site-region--leftbar .widget-wrapper.timeline .body,
64
+ .site-region--rightbar .widgets .widget-wrapper.toc
65
+ border: 0
66
+ background: transparent
67
+ box-shadow: none
68
+
69
+ .widget-wrapper.toc .toc-link.active
70
+ background: transparent
71
+ box-shadow: none
72
+
73
+ // Drawer 覆盖正文时必须提供不透明遮挡面,桌面常驻侧栏继续保持透明。
74
+ .site-shell[data-drawer='leftbar'] .site-region--leftbar .site-region__surface,
75
+ .site-shell[data-drawer='rightbar'] .site-region--rightbar .site-region__surface
76
+ background: var(--card)
77
+ backdrop-filter: none
78
+ -webkit-backdrop-filter: none
79
+ &::before
80
+ display: none
81
+
82
+ .site-shell[data-drawer='leftbar'] .site-region--leftbar .site-region__surface
83
+ border-radius: $border-card-l
84
+ corner-shape: $corner-shape
85
+
86
+ // Listing Nav 只保留文字导航;当前项持续显示下划线,但不保留旧按钮背景。
87
+ .listing-nav
88
+ margin: 1rem
89
+ .listing-nav__surface,
90
+ .listing-nav__surface.is-pinned
91
+ margin: 0
92
+ border: 0
93
+ border-radius: 0
94
+ border-bottom: 1px dashed var(--block-border)
95
+ padding: 1rem 0
96
+ background: transparent
97
+ box-shadow: none
98
+ backdrop-filter: none
99
+ -webkit-backdrop-filter: none
100
+ .listing-nav__viewport
101
+ border-radius: 0
102
+ .listing-nav nav
103
+ padding: 0
104
+ .listing-nav nav a
105
+ appearance-editorial-underline()
106
+ width: fit-content
107
+ font-size: var(--fsh4)
108
+ line-height: 1.2
109
+ margin: .25rem .0
110
+ backdrop-filter: none
111
+ -webkit-backdrop-filter: none
112
+ &+a
113
+ margin-left: 1rem
114
+ &:hover,
115
+ &:focus-visible
116
+ appearance-editorial-underline-active()
117
+ &.active
118
+ appearance-editorial-underline()
119
+ appearance-editorial-underline-active()
120
+ background: transparent
121
+ backdrop-filter: none
122
+ -webkit-backdrop-filter: none
123
+
124
+ // bar-item-active() 的暗色分支特异性更高,Minimal 在相同主题范围内收口。
125
+ :root[data-theme='dark'] .listing-nav nav a.active
126
+ appearance-editorial-underline()
127
+ appearance-editorial-underline-active()
128
+ background: transparent
129
+ backdrop-filter: none
130
+ -webkit-backdrop-filter: none
131
+
132
+ :root:not([data-theme])
133
+ @media screen and (prefers-color-scheme: dark)
134
+ .listing-nav nav a.active
135
+ appearance-editorial-underline()
136
+ appearance-editorial-underline-active()
137
+ background: transparent
138
+ backdrop-filter: none
139
+ -webkit-backdrop-filter: none
140
+
141
+ // 分页以排版表示位置,不再包裹成一条卡片。
142
+ .paginator-wrap
143
+ border: 0
144
+ background: transparent
145
+ box-shadow: none
146
+ overflow: visible
147
+ .page-number
148
+ background: transparent
149
+ a.page-number,
150
+ .current
151
+ appearance-editorial-underline()
152
+ margin: 4px 8px
153
+ a.page-number:hover,
154
+ a.page-number:focus-visible,
155
+ .current
156
+ appearance-editorial-underline-active()
157
+ .extend
158
+ border: 0
159
+ appearance-editorial-outline()
160
+ a.extend:hover,
161
+ a.extend:focus-visible
162
+ appearance-editorial-outline-active()
163
+
164
+ // 文本列表使用文章标题式下划线;Tag 等复合短控件使用同色内描边。
165
+ .post-list .archive-list a.post,
166
+ .post-list #cats a.cat,
167
+ .page-footer .sitemap .sitemap-group > a,
168
+ appearance-editorial-underline()
169
+ border: 0
170
+ background-color: transparent
171
+
172
+ .post-list #cats a.cat
173
+ margin: .5em 1rem
174
+
175
+ .page-footer .sitemap .sitemap-group > a
176
+ margin: 4px
177
+
178
+ .post-list .archive-list a.post:hover,
179
+ .post-list .archive-list a.post:focus-visible,
180
+ .post-list #cats a.cat:hover,
181
+ .post-list #cats a.cat:focus-visible,
182
+ .page-footer .sitemap .sitemap-group > a:hover,
183
+ .page-footer .sitemap .sitemap-group > a:focus-visible,
184
+ .page-footer.footnote .text a:hover,
185
+ .page-footer.footnote .text a:focus-visible
186
+ appearance-editorial-underline-active()
187
+ border: 0
188
+ background-color: transparent
189
+
190
+ .post-list #tags a.tag,
191
+ .article-tags a.tag
192
+ appearance-editorial-outline()
193
+ // box-shadow: inset 0 0 0 1px var(--block)
194
+
195
+ .post-list #tags a.tag:hover,
196
+ .post-list #tags a.tag:focus-visible,
197
+ .article-tags a.tag:hover,
198
+ .article-tags a.tag:focus-visible
199
+ appearance-editorial-outline-active()
200
+
201
+ // 普通文章卡片与包装器透明;封面仍作为内容媒体存在。
202
+ .site-main .post-list .post-title
203
+ font-size: var(--fsh3)
204
+ .post-list .post-card-wrap,
205
+ .post-list:not(.topic) .post-card.card-hover
206
+ box-shadow: none
207
+
208
+ .post-list.wiki .wiki-card.card-hover
209
+ box-shadow: none
210
+
211
+ .post-list.post .post-card.post.photo
212
+ border-radius: $border-card-l
213
+ .post-list.post .post-card
214
+ border-radius: 0
215
+
216
+ .post-list.post .post-card-wrap
217
+ margin: 1rem 0
218
+ padding-bottom: 1rem
219
+ border-radius: 0
220
+ border-bottom: 1px dashed var(--block-border)
221
+
222
+ .post-list .post-card .excerpt
223
+ margin: .5rem 0
224
+ > p
225
+ margin: 0
226
+
227
+ .post-list:not(.topic) .post-card:not(.photo)
228
+ border: 0
229
+ background-color: transparent
230
+ background-image: none
231
+ box-shadow: none
232
+
233
+ .post-list:not(.topic) .post-card:not(.photo) .md-text
234
+ padding: 0
235
+ margin: 0
236
+
237
+ // 图片卡与复合卡保留内容裁切,只以同色内描边响应,不产生上浮阴影。
238
+ .post-list .post-card.photo,
239
+ .post-list .post-card.wiki,
240
+ .pin-slider,
241
+ .post-list.topic .post-card.topic .cover
242
+ appearance-editorial-outline()
243
+
244
+ .post-list .post-card.photo:hover,
245
+ .post-list .post-card.photo:focus-visible,
246
+ .post-list .post-card.wiki:hover,
247
+ .post-list .post-card.wiki:focus-visible,
248
+ .pin-slider:hover,
249
+ .pin-slider:focus-within,
250
+ .post-list.topic .post-card.topic .cover:hover,
251
+ .post-list.topic .post-card.topic .cover:focus-visible
252
+ appearance-editorial-outline-active()
253
+
254
+ .post-list.wiki .wiki-card.no-cover,
255
+ .wiki-card-cover.no-cover,
256
+ .md-text .link-card,
257
+ .widget-wrapper.ghrepo .repo
258
+ background: transparent
259
+ box-shadow: none
260
+
261
+ // hoverable-card() 按明暗模式生成高优先级阴影;Minimal 在相同状态层级接管为内描边。
262
+ :root[data-theme='light'],
263
+ :root[data-theme='dark'],
264
+ :root:not([data-theme])
265
+ .md-text .link-card,
266
+ .widget-wrapper.ghrepo .repo,
267
+ .tag-plugin.grid[bg='card'] > .cell
268
+ appearance-editorial-outline()
269
+ transform: none
270
+ box-shadow: inset 0 0 0 1px var(--block-border)
271
+
272
+ .md-text .link-card:hover,
273
+ .md-text .link-card:focus-visible,
274
+ .widget-wrapper.ghrepo .repo:hover,
275
+ .widget-wrapper.ghrepo .repo:focus-visible,
276
+ .tag-plugin.grid[bg='card'] > .cell:hover,
277
+ .tag-plugin.grid[bg='card'] > .cell:focus-within
278
+ appearance-editorial-outline-active()
279
+ transform: none
280
+
281
+ // 搜索结果是复合导航条目;Dialog 与输入区域继续保留语义容器。
282
+ .search-wrapper .search-result li a
283
+ background: transparent
284
+ box-shadow: none
285
+
286
+ // 页脚是文章元信息而不是独立卡片,内部语义分隔线继续保留。
287
+ .article-footer
288
+ background: transparent
289
+ box-shadow: none
290
+
291
+ .article-footer #contributors .header a.edit,
292
+ .article-footer #contributors .body .users-wrap .user-card .card-link
293
+ appearance-editorial-outline()
294
+ background: transparent
295
+
296
+ .article-footer #contributors .header a.edit:hover,
297
+ .article-footer #contributors .header a.edit:focus-visible,
298
+ .article-footer #contributors .body .users-wrap .user-card .card-link:hover,
299
+ .article-footer #contributors .body .users-wrap .user-card .card-link:focus-visible
300
+ appearance-editorial-outline-active()
301
+
302
+ .paginator-wrap .extend
303
+ border-radius: $border-button
304
+
305
+ .paginator-wrap .extend.prev
306
+ border-right: 0
307
+ .paginator-wrap .extend.next
308
+ border-left: 0
309
+
310
+ @media (prefers-reduced-motion: reduce)
311
+ .listing-nav nav a,
312
+ .paginator-wrap a,
313
+ .paginator-wrap .current,
314
+ .post-list .archive-list a.post,
315
+ .post-list #cats a.cat,
316
+ .post-list #tags a.tag,
317
+ .article-tags a.tag,
318
+ .page-footer a,
319
+ .md-text .link-card,
320
+ .widget-wrapper.ghrepo .repo,
321
+ .tag-plugin.grid[bg='card'] > .cell
322
+ transition: none
323
+
324
+ .page-footer .sitemap .sitemap-group > a
325
+ padding: 0
@@ -9,11 +9,9 @@ pre
9
9
  a
10
10
  text-decoration: none
11
11
  color: var(--link)
12
- &:hover
13
- color: var(--accent)
14
12
 
15
13
  .md-text p:not([class])
16
- text-align: convert(hexo-config('style.text-align'))
14
+ text-align: convert(hexo-config('appearance.typography.content_align'))
17
15
 
18
16
  hr
19
17
  color: var(--text-meta)
@@ -44,19 +42,17 @@ table:not([class])
44
42
  font-size: var(--fs-content)
45
43
  scrollbar(0,0)
46
44
  th
47
- background: var(--block)
48
- border-top: 1px solid var(--block-border)
49
- border-bottom: 1px solid var(--block-border)
45
+ border-style: solid
46
+ border-width: 1px 0
50
47
  td,th
51
48
  padding: 4px 1em
52
49
  line-height: 1.5
53
50
  tr
54
51
  word-break: keep-all
55
52
  white-space: nowrap
56
- border-bottom: 1px dashed var(--block-border)
53
+ border-bottom-style: dashed
54
+ border-bottom-width: 1px
57
55
  trans()
58
- &:hover
59
- background: var(--block)
60
56
 
61
57
  @media screen and (min-width: $device-mobile-max)
62
58
  width 100%
@@ -16,6 +16,5 @@ blockquote
16
16
  border-radius: 1px
17
17
  left: 0
18
18
  opacity: 0.5
19
- background: var(--text-meta)
20
19
  &:hover:before
21
20
  background: var(--theme)
@@ -31,7 +31,7 @@ a.button.start.gradient
31
31
  ondark()
32
32
  transition: 0.38s ease-out
33
33
  z-index: 0
34
- background: convert(hexo-config('style.gradient.start'))
34
+ background: convert(hexo-config('appearance.gradients.primary_action'))
35
35
  background-size: 1000%
36
36
  color: white
37
37
  text-shadow: 0 0 1px rgba(0,0,0,0.12)
@@ -7,32 +7,22 @@
7
7
  @media screen and (max-width: $device-mobile-max)
8
8
  display: none !important
9
9
 
10
- .float-panel
11
- position: sticky
12
- grid-column-end: span 3
13
- --inset: 2rem
14
- right: 0
15
- bottom: calc(var(--inset) * 1)
16
- margin-left: auto
17
- margin-right: var(--inset)
18
- float: right
19
- z-index: 999999
20
- display: flex
10
+ .site-dock
11
+ position: fixed
12
+ inset-inline-end: 2rem
13
+ bottom: 2rem
14
+ z-index: 20
15
+ display: none
21
16
  align-items: center
22
17
  justify-content: center
23
18
  flex-direction: column
24
19
  gap: $bar-item-gap
25
20
  padding: $bar-item-gap
26
- @media screen and (min-width: $device-mobile-max)
27
- margin-right: 3rem
28
21
  overflow: hidden
29
22
  trans1: all
30
-
31
23
  bar-glass()
32
24
 
33
-
34
- // 侧边栏弹出按钮
35
- .float-panel button
25
+ .site-dock__button
36
26
  bar-item()
37
27
  cursor: pointer
38
28
  color: var(--text)
@@ -45,36 +35,28 @@
45
35
  padding: 4px
46
36
  line-height: 0
47
37
  font-size: 28px
48
- display: flex
38
+ display: none
49
39
  justify-content: center
50
40
  align-items: center
51
- >*
52
- path#sep
53
- trans1 transform
41
+ > *
54
42
  width: auto
55
43
  height: 28px
44
+ path#sep
45
+ trans1 transform
56
46
 
57
- // 侧边栏弹出后
58
- .l_body[leftbar] .float-panel button.leftbar-toggle, .l_body[rightbar] .float-panel button.rightbar-toggle
47
+ .site-shell[data-drawer='leftbar'] .site-dock__button--leftbar,
48
+ .site-shell[data-drawer='rightbar'] .site-dock__button--rightbar
59
49
  bar-item-active()
60
-
61
- .l_body[leftbar] .float-panel button.leftbar-toggle
62
50
  color: var(--theme)
63
- svg g
64
- fill: currentColor
65
- fill-opacity: 0.3
66
- path#sep
67
- transform: translateX(2px)
68
-
69
51
 
70
- // 侧边栏有内容时才显示弹出按钮
71
- .l_body .l_right:empty+.float-panel button.rightbar-toggle
72
- display: none !important
73
-
74
- .l_body[rightbar] .float-panel button.rightbar-toggle
75
- color: var(--theme)
76
- svg g
77
- fill: currentColor
78
- fill-opacity: 0.3
79
- path#sep
80
- transform: translateX(2px)
52
+ @media screen and (max-width: $device-laptop)
53
+ .site-shell[data-regions~='rightbar'] .site-dock
54
+ display: flex
55
+ .site-shell[data-regions~='rightbar'] .site-dock__button--rightbar
56
+ display: flex
57
+
58
+ @media screen and (max-width: $device-tablet)
59
+ .site-shell[data-regions~='leftbar'] .site-dock
60
+ display: flex
61
+ .site-shell[data-regions~='leftbar'] .site-dock__button--leftbar
62
+ display: flex
@@ -17,7 +17,6 @@
17
17
  outline: none
18
18
  border-radius: $border-bar
19
19
  color: var(--text-p2)
20
- background: var(--block)
21
20
  text-decoration: none
22
21
  white-space: nowrap
23
22
  &::-webkit-details-marker
@@ -26,8 +25,7 @@
26
25
  display: none
27
26
  &:hover, &:focus-visible
28
27
  color: var(--text-p1)
29
- background: var(--block-border)
30
- >svg, >img, >.icon
28
+ >.ui-icon, >.dropdown-arrow
31
29
  flex: 0 0 1.25rem
32
30
  width: 1.25rem
33
31
  height: 1.25rem
@@ -40,9 +38,17 @@
40
38
  z-index: 10
41
39
  >.dropdown-trigger
42
40
  color: var(--text-p1)
43
- background: var(--block-border)
44
41
  >.dropdown-arrow
45
42
  transform: rotate(180deg)
43
+
44
+ .tag-plugin > .dropdown-trigger
45
+ background: var(--block)
46
+ &:hover
47
+ background: var(--block-border)
48
+
49
+ .tag-plugin[open] > .dropdown-trigger
50
+ background: var(--block-border)
51
+
46
52
  .dropdown-menu
47
53
  display: flex
48
54
  flex-direction: column
@@ -54,18 +60,9 @@
54
60
  overflow-x: hidden
55
61
  overflow-y: auto
56
62
  font-size: $fs-14
57
- border: 1px solid var(--block-border)
58
63
  border-radius: $border-card
59
64
  corner-shape: $corner-shape
60
- background: rgba(white, 0.3)
61
- box-shadow: 0 0 2px rgba(black, .04), 0 2px 8px rgba(black, .04), 0 4px 16px rgba(black, .04)
62
- backdrop-filter: saturate(300%) blur(16px)
63
- -webkit-backdrop-filter: saturate(300%) blur(16px)
64
- :root[data-theme="dark"] &
65
- background: rgba(white, 0.2)
66
- :root:not([data-theme]) &
67
- @media (prefers-color-scheme: dark)
68
- background: rgba(white, 0.2)
65
+ frosted-surface()
69
66
  text-align: left
70
67
  line-height: 1
71
68
 
@@ -73,6 +70,15 @@
73
70
  min-width: 150px
74
71
  --ui-item-min-height: calc(1.5rem + 2 * var(--ui-item-padding-y))
75
72
 
73
+ .dropdown-menu button.dropdown-item
74
+ width: 100%
75
+ border: 0
76
+ color: inherit
77
+ font: inherit
78
+ text-align: left
79
+ cursor: pointer
80
+ appearance: none
81
+
76
82
  .dropdown > .dropdown-menu
77
83
  position: absolute
78
84
  z-index: 10