From 59bea1e518ef17d1c80099e0e89665afe6a9d57e Mon Sep 17 00:00:00 2001
From: Cell <1024@lruihao.cn>
Date: Wed, 13 Aug 2025 12:48:22 +0800
Subject: [PATCH] :recycle: Refactor: update CSS variable prefixes to use
rootPrefix for consistency
---
assets/css/_core/_media.scss | 2 +-
assets/css/_core/_root.scss | 36 +++++++++----------
.../_partials/_single/_fixit-decryptor.scss | 6 ++--
assets/css/_variables.scss | 2 +-
assets/css/config.template.scss | 11 ++++++
layouts/_partials/footer.html | 2 +-
layouts/_partials/head/link.html | 6 ++++
layouts/_partials/header.html | 6 ++--
layouts/_partials/init/global.html | 6 ----
layouts/_partials/init/index.html | 2 +-
layouts/_partials/single/footer.html | 10 ++++--
layouts/baseof.html | 6 ++--
12 files changed, 55 insertions(+), 40 deletions(-)
create mode 100644 assets/css/config.template.scss
diff --git a/assets/css/_core/_media.scss b/assets/css/_core/_media.scss
index 1be96977..669d551b 100644
--- a/assets/css/_core/_media.scss
+++ b/assets/css/_core/_media.scss
@@ -131,7 +131,7 @@
// 确保打印时没有 scrollbar
:root {
- --fi-scrollbar-width: none !important;
+ #{$rootPrefix}scrollbar-width: none !important;
}
*::-webkit-scrollbar {
diff --git a/assets/css/_core/_root.scss b/assets/css/_core/_root.scss
index b5677359..976cd812 100644
--- a/assets/css/_core/_root.scss
+++ b/assets/css/_core/_root.scss
@@ -2,42 +2,42 @@
// Note: Custom variable values only support SassScript inside `#{}`.
// TODO migrate SCSS variables to CSS variables
- --#{$prefix}global-font-color: #{$global-font-color};
- --#{$prefix}global-border-color: #{$global-border-color};
+ #{$rootPrefix}global-font-color: #{$global-font-color};
+ #{$rootPrefix}global-border-color: #{$global-border-color};
// Theme colors variables
@each $color, $value in $theme-colors {
- --#{$prefix}#{$color}: #{$value};
+ #{$rootPrefix}#{$color}: #{$value};
}
// Scroll margin top and Stack sticky top related
- --#{$prefix}scroll-mt: calc(#{$header-height} + #{$global-scroll-margin-top});
+ #{$rootPrefix}scroll-mt: calc(#{$header-height} + #{$global-scroll-margin-top});
// Set breadcrumb height to 0px if breadcrumb is disabled
- --#{$prefix}breadcrumb-height: 0px;
+ #{$rootPrefix}breadcrumb-height: 0px;
// hr / divider style
- --#{$prefix}hr-background-color: #{darken($global-border-color, 5%)};
- --#{$prefix}hr-before-color: #{lighten($single-link-hover-color, 4%)};
- --#{$prefix}divider-edge-weak: linear-gradient(to right, transparent, var(--#{$prefix}divider-bg, #d0d0d5), transparent);
+ #{$rootPrefix}hr-background-color: #{darken($global-border-color, 5%)};
+ #{$rootPrefix}hr-before-color: #{lighten($single-link-hover-color, 4%)};
+ #{$rootPrefix}divider-edge-weak: linear-gradient(to right, transparent, var(#{$rootPrefix}divider-bg, #d0d0d5), transparent);
// Scrollbar related variables
- --#{$prefix}scrollbar-thumb-color: #{$scrollbar-color};
- --#{$prefix}scrollbar-thumb-hover-color: #{$scrollbar-hover-color};
- --#{$prefix}scrollbar-track-color: transparent;
- --#{$prefix}scrollbar-width: thin;
- --#{$prefix}scrollbar-width-legacy: 12px;
+ #{$rootPrefix}scrollbar-thumb-color: #{$scrollbar-color};
+ #{$rootPrefix}scrollbar-thumb-hover-color: #{$scrollbar-hover-color};
+ #{$rootPrefix}scrollbar-track-color: transparent;
+ #{$rootPrefix}scrollbar-width: thin;
+ #{$rootPrefix}scrollbar-width-legacy: 12px;
}
// Dark theme
[data-theme=dark] {
- --#{$prefix}global-font-color: #{$global-font-color-dark};
- --#{$prefix}global-border-color: #{$global-border-color-dark};
+ #{$rootPrefix}global-font-color: #{$global-font-color-dark};
+ #{$rootPrefix}global-border-color: #{$global-border-color-dark};
@each $color, $value in $theme-colors {
- --#{$prefix}#{$color}: #{darken($value, 5%)};
+ #{$rootPrefix}#{$color}: #{darken($value, 5%)};
}
- --#{$prefix}hr-background-color: #{lighten($global-border-color-dark, 5%)};
- --#{$prefix}hr-before-color: #{darken($global-link-hover-color-dark, 4%)};
+ #{$rootPrefix}hr-background-color: #{lighten($global-border-color-dark, 5%)};
+ #{$rootPrefix}hr-before-color: #{darken($global-link-hover-color-dark, 4%)};
}
diff --git a/assets/css/_partials/_single/_fixit-decryptor.scss b/assets/css/_partials/_single/_fixit-decryptor.scss
index 87a290e5..e0caadb6 100644
--- a/assets/css/_partials/_single/_fixit-decryptor.scss
+++ b/assets/css/_partials/_single/_fixit-decryptor.scss
@@ -1,7 +1,7 @@
.fixit-decryptor-container {
font-family: $global-font-family;
text-align: center;
- margin-block: var(--fixit-decryptor-margin-block);
+ margin-block: var(#{$rootPrefix}decryptor-margin-block);
.fixit-decryptor-loading {
vertical-align: middle;
@@ -90,7 +90,7 @@ fixit-encryptor {
// fixit-encryptor for for the encrypted pages
article fixit-encryptor {
.fixit-decryptor-container {
- --fixit-decryptor-margin-block: 2rem;
+ #{$rootPrefix}decryptor-margin-block: 2rem;
}
&.decrypted > .fixit-decryptor-container {
.fixit-decryptor-loading,
@@ -108,7 +108,7 @@ article fixit-encryptor {
// fixit-encryptor shortcodes
#content fixit-encryptor {
.fixit-decryptor-container {
- --fixit-decryptor-margin-block: 1rem;
+ #{$rootPrefix}decryptor-margin-block: 1rem;
}
&.decrypted > .fixit-decryptor-container {
display: none;
diff --git a/assets/css/_variables.scss b/assets/css/_variables.scss
index ee35340b..4bb7ec1e 100644
--- a/assets/css/_variables.scss
+++ b/assets/css/_variables.scss
@@ -3,8 +3,8 @@
// ==============================
// ========== Global ========== //
-// Prefix for :root CSS variables.
$prefix: fi- !default;
+$rootPrefix: --fi- !default;
// Font and Line Height
$global-font-family: system-ui, -apple-system, BlinkMacSystemFont, PingFang SC, Microsoft YaHei UI, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, sans-serif !default;
diff --git a/assets/css/config.template.scss b/assets/css/config.template.scss
new file mode 100644
index 00000000..a357515e
--- /dev/null
+++ b/assets/css/config.template.scss
@@ -0,0 +1,11 @@
+{{- $loading := resources.Get "images/loading.svg" | minify -}}
+
+@charset "utf-8";
+
+@import "_variables";
+$base: "{{ relURL "" }}" !default;
+
+:root {
+ #{$rootPrefix}base: "#{$base}";
+ #{$rootPrefix}loading-img: url("{{ $loading.RelPermalink }}");
+}
diff --git a/layouts/_partials/footer.html b/layouts/_partials/footer.html
index 507fbbbb..8d0aecd6 100644
--- a/layouts/_partials/footer.html
+++ b/layouts/_partials/footer.html
@@ -42,7 +42,7 @@
{{- /* Author */ -}}
{{- if ne $footerConfig.author false -}}
- {{ partial "plugin/link.html" (dict "Destination" ($.Site.Params.author.link | default (.Site.Store.Get "homeRelPermalink")) "Content" .Site.Params.author.name) -}}
+ {{ partial "plugin/link.html" (dict "Destination" ($.Site.Params.author.link | default (relURL "")) "Content" .Site.Params.author.name) -}}
{{- end -}}
diff --git a/layouts/_partials/head/link.html b/layouts/_partials/head/link.html
index c71f199f..f9e1d0f6 100644
--- a/layouts/_partials/head/link.html
+++ b/layouts/_partials/head/link.html
@@ -37,6 +37,12 @@
{{- end -}}
+{{- /* config.min.css */ -}}
+{{- $options := dict "Source" "css/config.template.scss" "Template" "css/config.scss" "Fingerprint" $fingerprint -}}
+{{- $toCSS := dict "targetPath" "css/config.min.css" "enableSourceMap" true -}}
+{{- $options = dict "Context" . "ToCSS" $toCSS | merge $options -}}
+{{- partial "plugin/style.html" $options -}}
+
{{- /* style.min.css */ -}}
{{- $options := dict "Source" "css/style.scss" "Fingerprint" $fingerprint -}}
{{- $toCSS := dict "targetPath" "css/style.min.css" "enableSourceMap" true -}}
diff --git a/layouts/_partials/header.html b/layouts/_partials/header.html
index 59c1a34c..691f700e 100644
--- a/layouts/_partials/header.html
+++ b/layouts/_partials/header.html
@@ -1,11 +1,11 @@
{{- $buildDrafts := .Site.BuildDrafts -}}
-{{- $homeRelPermalink := .Site.Store.Get "homeRelPermalink" -}}
+{{- $relURL := relURL "" -}}
{{- /* Desktop header */ -}}