diff --git a/docs/.vuepress/themes/components/CanIUseConfig.vue b/docs/.vuepress/themes/components/CanIUseConfig.vue index 866239e6..18ca97cd 100644 --- a/docs/.vuepress/themes/components/CanIUseConfig.vue +++ b/docs/.vuepress/themes/components/CanIUseConfig.vue @@ -79,7 +79,7 @@ const { output, rendered } = useCaniuse({ feature, embedType, past, future }) background-color: var(--vp-c-bg-safe); border: solid 1px var(--vp-c-divider); border-radius: 5px; - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: background border; } @@ -120,7 +120,7 @@ const { output, rendered } = useCaniuse({ feature, embedType, past, future }) font-size: 1em; background-color: var(--vp-c-bg); border: solid 1px var(--vp-c-divider); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: border background; } @@ -180,7 +180,7 @@ const { output, rendered } = useCaniuse({ feature, embedType, past, future }) padding: 3px 16px; background-color: var(--vp-c-bg); border: solid 1px var(--vp-c-divider); - transition: border var(--t-color), background-color var(--t-color); + transition: border var(--vp-t-color), background-color var(--vp-t-color); } .caniuse-browser-version select:first-of-type { @@ -215,7 +215,7 @@ const { output, rendered } = useCaniuse({ feature, embedType, past, future }) color: var(--vp-c-bg); background-color: var(--vp-c-brand-1); border-radius: 8px; - transition: background-color var(--t-color), color var(--t-color); + transition: background-color var(--vp-t-color), color var(--vp-t-color); } .caniuse-render-button:hover { diff --git a/docs/.vuepress/themes/components/ColorPick.vue b/docs/.vuepress/themes/components/ColorPick.vue index 38b9bd69..7e3bd581 100644 --- a/docs/.vuepress/themes/components/ColorPick.vue +++ b/docs/.vuepress/themes/components/ColorPick.vue @@ -57,7 +57,7 @@ onUnmounted(() => { background-color: var(--vp-c-bg-soft); border: solid 1px var(--vp-c-divider); border-radius: 32px; - transition: border-color var(--t-color), background-color var(--t-color); + transition: border-color var(--vp-t-color), background-color var(--vp-t-color); } .pickr .pcr-button { diff --git a/docs/.vuepress/themes/components/Demos.vue b/docs/.vuepress/themes/components/Demos.vue index 6a33ff8a..ee672de1 100644 --- a/docs/.vuepress/themes/components/Demos.vue +++ b/docs/.vuepress/themes/components/Demos.vue @@ -58,7 +58,7 @@ defineProps<{ border: solid 1px var(--vp-c-divider); border-radius: 8px; box-shadow: var(--vp-shadow-1); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: border background box-shadow; } diff --git a/docs/.vuepress/themes/components/HeroTintPlateConfig.vue b/docs/.vuepress/themes/components/HeroTintPlateConfig.vue index 77d74220..523f63d3 100644 --- a/docs/.vuepress/themes/components/HeroTintPlateConfig.vue +++ b/docs/.vuepress/themes/components/HeroTintPlateConfig.vue @@ -128,7 +128,7 @@ const output = computed(() => { background: linear-gradient(to bottom, #fff 0, transparent 40%, transparent 60%, #fff 140%); } -.hero-tint-plate-wrapper .dark :deep(.bg-filter::after) { +.hero-tint-plate-wrapper [data-theme="dark"] :deep(.bg-filter::after) { background: linear-gradient(to bottom, #1b1b1f 0, transparent 40%, transparent 60%, #1b1b1f 140%); } @@ -142,7 +142,7 @@ const output = computed(() => { border-bottom: 1px solid var(--vp-c-divider); border-top-left-radius: 5px; border-top-right-radius: 5px; - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: background-color, border-bottom-color, color; } diff --git a/docs/.vuepress/themes/components/ThemeColors.vue b/docs/.vuepress/themes/components/ThemeColors.vue index 32a156d0..54d185f2 100644 --- a/docs/.vuepress/themes/components/ThemeColors.vue +++ b/docs/.vuepress/themes/components/ThemeColors.vue @@ -73,6 +73,6 @@ const { lightColors, darkColors, css, reset } = useThemeColors() .theme-color .desc { font-size: 14px; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } diff --git a/docs/.vuepress/themes/composables/theme-colors.ts b/docs/.vuepress/themes/composables/theme-colors.ts index 085f3046..09f3d7e8 100644 --- a/docs/.vuepress/themes/composables/theme-colors.ts +++ b/docs/.vuepress/themes/composables/theme-colors.ts @@ -101,7 +101,7 @@ export function setupThemeColors() { }, { deep: true, immediate: true }) function resolveContent(colors: ThemeColorsGroup[], type: 'light' | 'dark') { - const name = type === 'light' ? ':root' : '.dark' + const name = type === 'light' ? ':root' : '[data-theme="dark"]' let content = `${name} {\n` colors.forEach(({ name, group }) => { content += `\n /**\n * ${name}\n * -------------------------------------------------------------------------- */\n\n` diff --git a/docs/notes/theme/config/主题配置.md b/docs/notes/theme/config/主题配置.md index d942608d..fbb6edd1 100644 --- a/docs/notes/theme/config/主题配置.md +++ b/docs/notes/theme/config/主题配置.md @@ -267,7 +267,7 @@ interface BlogPostCover { - 如果该选项设置为 `false`,用户将无法切换主题。 - 如果该选项设置为 `force-dark`,则用户将无法切换主题,但会强制将主题更改为深色。 -此选项注入一个内联脚本,从本地存储恢复用户设置。这确保在呈现页面之前应用 `.dark` 类以避免闪烁。 +此选项注入一个内联脚本,从本地存储恢复用户设置。这确保在呈现页面之前应用 `[data-theme="dark"]` 以避免闪烁。 ### appearanceText diff --git a/docs/notes/theme/guide/博客.md b/docs/notes/theme/guide/博客.md index f14a7066..6dbd4504 100644 --- a/docs/notes/theme/guide/博客.md +++ b/docs/notes/theme/guide/博客.md @@ -68,7 +68,7 @@ export default defineUserConfig({
@@ -180,7 +180,7 @@ cover: /images/cover.jpg # [!code ++] 默认效果如下: -
+
+
+
+
+
diff --git a/plugins/plugin-md-power/src/client/components/FileTreeItem.vue b/plugins/plugin-md-power/src/client/components/FileTreeItem.vue index 6e0e319f..679161e2 100644 --- a/plugins/plugin-md-power/src/client/components/FileTreeItem.vue +++ b/plugins/plugin-md-power/src/client/components/FileTreeItem.vue @@ -60,7 +60,7 @@ onUnmounted(() => { background-color: var(--vp-c-bg-safe); border: solid 1px var(--vp-c-divider); border-radius: 8px; - transition: border var(--t-color), background-color var(--t-color); + transition: border var(--vp-t-color), background-color var(--vp-t-color); } .vp-file-tree .vp-file-tree-title { @@ -69,7 +69,7 @@ onUnmounted(() => { font-weight: bold; color: var(--vp-c-text-1); border-bottom: solid 1px var(--vp-c-divider); - transition: color var(--t-color), border-color var(--t-color); + transition: color var(--vp-t-color), border-color var(--vp-t-color); } .vp-file-tree ul { @@ -106,7 +106,7 @@ onUnmounted(() => { .file-tree-item .tree-node.folder > .name { color: var(--vp-c-text-1); cursor: pointer; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .file-tree-item .tree-node.folder > .name:hover { @@ -130,7 +130,7 @@ onUnmounted(() => { mask: var(--icon) no-repeat; -webkit-mask-size: 100% 100%; mask-size: 100% 100%; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .file-tree-item .tree-node .name.focus { @@ -141,7 +141,7 @@ onUnmounted(() => { color: var(--vp-c-bg); background-color: var(--vp-c-brand-2); border-radius: 4px; - transition: color var(--t-color), background-color var(--t-color); + transition: color var(--vp-t-color), background-color var(--vp-t-color); } .file-tree-item .tree-node .name.focus:hover { @@ -153,7 +153,7 @@ onUnmounted(() => { margin-left: 20px; overflow: hidden; color: var(--vp-c-text-3); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .file-tree-item .tree-node [class*="vpi-"] { @@ -170,7 +170,7 @@ onUnmounted(() => { padding-left: 8px !important; margin: 0 0 0 6px !important; border-left: solid 1px var(--vp-c-divider); - transition: border-color var(--t-color); + transition: border-color var(--vp-t-color); } .file-tree-item:not(.expanded) > ul { diff --git a/plugins/plugin-md-power/src/client/components/Loading.vue b/plugins/plugin-md-power/src/client/components/Loading.vue index 14e32ce3..10423bfe 100644 --- a/plugins/plugin-md-power/src/client/components/Loading.vue +++ b/plugins/plugin-md-power/src/client/components/Loading.vue @@ -30,7 +30,7 @@ defineProps<{ font-size: 36px; color: currentcolor; background-color: inherit; - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .md-power-loading.absolute { diff --git a/plugins/plugin-md-power/src/client/components/Plot.vue b/plugins/plugin-md-power/src/client/components/Plot.vue index 73bd5451..02e2b2c2 100644 --- a/plugins/plugin-md-power/src/client/components/Plot.vue +++ b/plugins/plugin-md-power/src/client/components/Plot.vue @@ -81,7 +81,7 @@ function onClick() { transition: color ease 0.25s, background-color ease 0.25s; } -.dark .vp-plot { +[data-theme="dark"] .vp-plot { background-color: var(--vp-c-bg-plot-dark, #fff); } @@ -90,8 +90,8 @@ function onClick() { color: var(--vp-c-plot-light, #fff); } -.dark .vp-plot.hover:hover, -.dark .vp-plot.active { +[data-theme="dark"] .vp-plot.hover:hover, +[data-theme="dark"] .vp-plot.active { color: var(--vp-c-plot-dark, #000); } diff --git a/theme/src/client/components/Blog/VPBlog.vue b/theme/src/client/components/Blog/VPBlog.vue index 127a099c..7e324005 100644 --- a/theme/src/client/components/Blog/VPBlog.vue +++ b/theme/src/client/components/Blog/VPBlog.vue @@ -102,7 +102,7 @@ const { theme, page } = useData() position: relative; min-height: calc(100vh - var(--vp-footer-height, 0px)); padding: calc(var(--vp-nav-height) + 32px) 16px 32px; - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } @media(min-width: 419px) { diff --git a/theme/src/client/components/Blog/VPBlogArchives.vue b/theme/src/client/components/Blog/VPBlogArchives.vue index 7c3d523b..f463db72 100644 --- a/theme/src/client/components/Blog/VPBlogArchives.vue +++ b/theme/src/client/components/Blog/VPBlogArchives.vue @@ -43,7 +43,7 @@ const { archives } = useArchives() font-weight: 700; color: var(--vp-c-brand-1); background-color: var(--vp-c-bg); - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .archives-title .icon { @@ -54,7 +54,7 @@ const { archives } = useArchives() padding: 16px; margin: 0 -16px 24px; background-color: var(--vp-c-bg); - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .archive-title { @@ -64,7 +64,7 @@ const { archives } = useArchives() font-size: 18px; font-weight: 700; border-bottom: solid 1px var(--vp-c-divider); - transition: border-bottom var(--t-color); + transition: border-bottom var(--vp-t-color); } @media (min-width: 768px) { @@ -77,7 +77,7 @@ const { archives } = useArchives() margin: 0 0 24px; border-radius: 8px; box-shadow: var(--vp-shadow-1); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: box-shadow, background-color; } @@ -89,7 +89,7 @@ const { archives } = useArchives() padding-left: 24px; margin: 0 -24px; border-bottom: solid 1px var(--vp-c-divider); - transition: border-bottom var(--t-color); + transition: border-bottom var(--vp-t-color); } } diff --git a/theme/src/client/components/Blog/VPBlogCategories.vue b/theme/src/client/components/Blog/VPBlogCategories.vue index 79609a8a..30f1782a 100644 --- a/theme/src/client/components/Blog/VPBlogCategories.vue +++ b/theme/src/client/components/Blog/VPBlogCategories.vue @@ -31,7 +31,7 @@ const { categories } = useBlogCategory() padding: 16px; margin: 0 -16px 32px; background-color: var(--vp-c-bg); - transition: background-color var(--t-color), box-shadow var(--t-color); + transition: background-color var(--vp-t-color), box-shadow var(--vp-t-color); } @media (min-width: 768px) { @@ -57,7 +57,7 @@ const { categories } = useBlogCategory() font-weight: 700; color: var(--vp-c-text-1); border-bottom: solid 1px var(--vp-c-divider); - transition: color var(--t-color), border-color var(--t-color); + transition: color var(--vp-t-color), border-color var(--vp-t-color); } .categories-title .icon { @@ -69,7 +69,7 @@ const { categories } = useBlogCategory() padding: 0 24px 12px; margin: 0 -24px; border-bottom: solid 1px var(--vp-c-divider); - transition: border-bottom var(--t-color); + transition: border-bottom var(--vp-t-color); } } diff --git a/theme/src/client/components/Blog/VPBlogExtract.vue b/theme/src/client/components/Blog/VPBlogExtract.vue index 96789091..ea68a092 100644 --- a/theme/src/client/components/Blog/VPBlogExtract.vue +++ b/theme/src/client/components/Blog/VPBlogExtract.vue @@ -123,7 +123,7 @@ const showBlogExtract = computed(() => { border-top-left-radius: 99px; border-bottom-left-radius: 99px; box-shadow: var(--vp-shadow-2); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: background-color, border, box-shadow; } @@ -131,7 +131,7 @@ const showBlogExtract = computed(() => { display: block; font-size: 16px; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } @media (min-width: 768px) { @@ -182,7 +182,7 @@ const showBlogExtract = computed(() => { transform: translateY(100%); } -.dark .blog-modal-container { +[data-theme="dark"] .blog-modal-container { box-shadow: 0 -3px 12px rgba(0, 0, 0, 0.3), 0 -1px 4px rgba(0, 0, 0, 0.27); @@ -232,7 +232,7 @@ const showBlogExtract = computed(() => { font-weight: 600; color: var(--vp-c-brand-1); border-radius: 8px; - transition: all var(--t-color); + transition: all var(--vp-t-color); } .nav-link .icon { @@ -255,7 +255,7 @@ const showBlogExtract = computed(() => { justify-content: center; font-size: 14px; color: var(--vp-c-text-3); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .profile-location p, diff --git a/theme/src/client/components/Blog/VPBlogNav.vue b/theme/src/client/components/Blog/VPBlogNav.vue index d245f005..9171ee7d 100644 --- a/theme/src/client/components/Blog/VPBlogNav.vue +++ b/theme/src/client/components/Blog/VPBlogNav.vue @@ -83,7 +83,7 @@ const { hasBlogExtract, tags, archives, categories } = useBlogExtract() background-color: var(--vp-c-bg); border-radius: 8px; box-shadow: var(--vp-shadow-1); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: background-color, color, box-shadow, transform; transform: scale(1); } @@ -117,7 +117,7 @@ const { hasBlogExtract, tags, archives, categories } = useBlogExtract() .nav-link .total { padding-right: 8px; color: var(--vp-c-text-3); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .nav-link .icon { @@ -125,7 +125,7 @@ const { hasBlogExtract, tags, archives, categories } = useBlogExtract() height: 1em; font-size: 1.2em; color: var(--vp-c-text-3); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .nav-link .icon-logo { diff --git a/theme/src/client/components/Blog/VPBlogProfile.vue b/theme/src/client/components/Blog/VPBlogProfile.vue index 2e1e2b73..20ce7e1c 100644 --- a/theme/src/client/components/Blog/VPBlogProfile.vue +++ b/theme/src/client/components/Blog/VPBlogProfile.vue @@ -50,7 +50,7 @@ const imageUrl = computed(() => { background-color: var(--vp-c-bg); border-radius: 8px; box-shadow: var(--vp-shadow-1); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: background-color, color, box-shadow; } @@ -74,7 +74,7 @@ const imageUrl = computed(() => { .vp-blog-profile h3, .vp-blog-profile p { color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-blog-profile .circle img { @@ -90,7 +90,7 @@ const imageUrl = computed(() => { margin-top: 16px; font-size: 14px; color: var(--vp-c-text-3); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .profile-location p, @@ -106,7 +106,7 @@ const imageUrl = computed(() => { padding-top: 12px; margin-top: 12px; border-top: 1px solid var(--vp-c-divider); - transition: border var(--t-color); + transition: border var(--vp-t-color); } .profile-social :deep(.vp-social-link) { diff --git a/theme/src/client/components/Blog/VPBlogTags.vue b/theme/src/client/components/Blog/VPBlogTags.vue index a7ff27bd..2fb1febf 100644 --- a/theme/src/client/components/Blog/VPBlogTags.vue +++ b/theme/src/client/components/Blog/VPBlogTags.vue @@ -57,7 +57,7 @@ const { tags, currentTag, postList, handleTagClick } = useTags() padding: 20px 16px; margin: 0 -16px; background-color: var(--vp-c-bg); - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .tags-container { @@ -71,7 +71,7 @@ const { tags, currentTag, postList, handleTagClick } = useTags() font-size: 20px; font-weight: 700; color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .tags-title .icon { @@ -100,7 +100,7 @@ const { tags, currentTag, postList, handleTagClick } = useTags() background-color: var(--vp-tag-color); border: solid 1px var(--vp-tag-color); border-radius: 6px; - transition: all var(--t-color); + transition: all var(--vp-t-color); } .tag-title { @@ -110,7 +110,7 @@ const { tags, currentTag, postList, handleTagClick } = useTags() font-size: 20px; font-weight: 600; border-bottom: 1px solid var(--vp-c-divider); - transition: border-bottom var(--t-color); + transition: border-bottom var(--vp-t-color); } .tag-count { @@ -119,7 +119,7 @@ const { tags, currentTag, postList, handleTagClick } = useTags() margin-left: 4px; color: var(--vp-c-bg); border-left: 1px solid var(--vp-c-bg); - transition: color var(--t-color), border-left var(--t-color); + transition: color var(--vp-t-color), border-left var(--vp-t-color); } .tags .tag:hover, @@ -142,7 +142,7 @@ const { tags, currentTag, postList, handleTagClick } = useTags() background-color: var(--vp-c-bg); border-radius: 8px; box-shadow: var(--vp-shadow-1); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: background-color, box-shadow; } diff --git a/theme/src/client/components/Blog/VPCategories.vue b/theme/src/client/components/Blog/VPCategories.vue index 450c5192..1f7dfaf5 100644 --- a/theme/src/client/components/Blog/VPCategories.vue +++ b/theme/src/client/components/Blog/VPCategories.vue @@ -40,7 +40,7 @@ defineProps<{ width: fit-content; max-width: 100%; color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-categories-item .post:hover { diff --git a/theme/src/client/components/Blog/VPCategoriesGroup.vue b/theme/src/client/components/Blog/VPCategoriesGroup.vue index beb9d548..c87e43a8 100644 --- a/theme/src/client/components/Blog/VPCategoriesGroup.vue +++ b/theme/src/client/components/Blog/VPCategoriesGroup.vue @@ -72,7 +72,7 @@ onMounted(() => { display: block; content: ""; border-left: 1px solid var(--vp-c-divider); - transition: border var(--t-color); + transition: border var(--vp-t-color); } .vp-category-group .folder { @@ -83,7 +83,7 @@ onMounted(() => { font-weight: 600; color: var(--vp-c-text-2); cursor: pointer; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-category-group .folder:hover { diff --git a/theme/src/client/components/Blog/VPPagination.vue b/theme/src/client/components/Blog/VPPagination.vue index 820b86d0..4e2fc5b2 100644 --- a/theme/src/client/components/Blog/VPPagination.vue +++ b/theme/src/client/components/Blog/VPPagination.vue @@ -55,7 +55,7 @@ const { theme } = useData() padding: 16px; margin: 0 -16px; background-color: var(--vp-c-bg); - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .btn { @@ -66,7 +66,7 @@ const { theme } = useData() color: var(--vp-c-text-2); background-color: transparent; border-radius: 4px; - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: color, background-color; } @@ -89,7 +89,7 @@ const { theme } = useData() background-color: var(--vp-c-bg); border-radius: 6px; box-shadow: var(--vp-shadow-1); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: background-color, box-shadow; } diff --git a/theme/src/client/components/Blog/VPPostItem.vue b/theme/src/client/components/Blog/VPPostItem.vue index 9b35e0b8..87c84672 100644 --- a/theme/src/client/components/Blog/VPPostItem.vue +++ b/theme/src/client/components/Blog/VPPostItem.vue @@ -128,7 +128,7 @@ const coverStyles = computed(() => { padding: 16px; margin: 0 -16px; background-color: var(--vp-c-bg); - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .vp-blog-post-item.has-cover:where(.left, .right) { @@ -216,7 +216,7 @@ const coverStyles = computed(() => { color: var(--vp-c-text-2); background-color: var(--vp-c-brand-soft); border-radius: 4px; - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: color, background-color; } @@ -226,7 +226,7 @@ const coverStyles = computed(() => { margin-right: 8px; margin-left: 3px; color: var(--vp-c-text-3); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: color; } @@ -237,7 +237,7 @@ const coverStyles = computed(() => { font-size: 18px; font-weight: 600; color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .blog-post-item-content h3 a { @@ -263,7 +263,7 @@ const coverStyles = computed(() => { margin: 0; border-radius: 8px; box-shadow: var(--vp-shadow-1); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: background-color, color, box-shadow; will-change: transform; } @@ -285,7 +285,7 @@ const coverStyles = computed(() => { font-size: 14px; font-weight: 400; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .blog-post-item-content .post-meta > div { @@ -313,7 +313,7 @@ const coverStyles = computed(() => { color: var(--vp-tag-color); background-color: var(--vp-tag-bg); border-radius: 3px; - transition: color var(--t-color), background-color var(--t-color); + transition: color var(--vp-t-color), background-color var(--vp-t-color); } .blog-post-item-content .post-meta .tag-list .tag:last-of-type { @@ -325,7 +325,7 @@ const coverStyles = computed(() => { height: 14px; margin: 0.3rem; color: var(--vp-c-text-3); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .blog-post-item-content .post-meta a { @@ -348,7 +348,7 @@ const coverStyles = computed(() => { .excerpt.vp-doc :deep(p strong) { color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .excerpt.vp-doc :deep([class^="language-"]) { diff --git a/theme/src/client/components/Blog/VPShortPostList.vue b/theme/src/client/components/Blog/VPShortPostList.vue index 3aec1152..a48f9d48 100644 --- a/theme/src/client/components/Blog/VPShortPostList.vue +++ b/theme/src/client/components/Blog/VPShortPostList.vue @@ -36,7 +36,7 @@ defineProps<{ align-items: center; justify-content: space-between; color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-blog-short-post-list .post-title { @@ -45,7 +45,7 @@ defineProps<{ margin-right: 14px; overflow: hidden; font-weight: 600; - transition: all var(--t-color); + transition: all var(--vp-t-color); -webkit-box-orient: vertical; -webkit-line-clamp: 1; @@ -54,7 +54,7 @@ defineProps<{ .vp-blog-short-post-list .post-time { color: var(--vp-c-text-3); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-blog-short-post-list li:hover .post-title { diff --git a/theme/src/client/components/Home/VPHome.vue b/theme/src/client/components/Home/VPHome.vue index 1aaddf87..3dff8337 100644 --- a/theme/src/client/components/Home/VPHome.vue +++ b/theme/src/client/components/Home/VPHome.vue @@ -114,7 +114,7 @@ onUnmounted(() => { } .vp-home .layout { - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .vp-home .layout:nth-child(odd) { diff --git a/theme/src/client/components/Home/VPHomeBanner.vue b/theme/src/client/components/Home/VPHomeBanner.vue index 0a3ce0b1..c2be7935 100644 --- a/theme/src/client/components/Home/VPHomeBanner.vue +++ b/theme/src/client/components/Home/VPHomeBanner.vue @@ -73,7 +73,7 @@ const actions = computed(() => props.hero?.actions ?? matter.value.hero?.actions background-repeat: no-repeat; background-position: center; background-size: cover; - transition: all var(--t-color); + transition: all var(--vp-t-color); } .vp-home-banner .banner-mask { @@ -83,7 +83,7 @@ const actions = computed(() => props.hero?.actions ?? matter.value.hero?.actions width: 100%; height: 100%; background-color: rgb(0, 0, 0); - transition: opacity var(--t-color); + transition: opacity var(--vp-t-color); } .vp-home-banner .container { diff --git a/theme/src/client/components/Home/VPHomeCustom.vue b/theme/src/client/components/Home/VPHomeCustom.vue index ad4b94d6..cd1fa03f 100644 --- a/theme/src/client/components/Home/VPHomeCustom.vue +++ b/theme/src/client/components/Home/VPHomeCustom.vue @@ -8,6 +8,6 @@ const props = defineProps() diff --git a/theme/src/client/components/Home/VPHomeFeature.vue b/theme/src/client/components/Home/VPHomeFeature.vue index b69a0581..10d13f78 100644 --- a/theme/src/client/components/Home/VPHomeFeature.vue +++ b/theme/src/client/components/Home/VPHomeFeature.vue @@ -66,7 +66,7 @@ const isIconify = computed(() => { background-color: var(--vp-c-bg-soft); border: 1px solid var(--vp-c-bg-soft); border-radius: 12px; - transition: border-color var(--t-color), background-color var(--t-color); + transition: border-color var(--vp-t-color), background-color var(--vp-t-color); } .vp-home-feature.link:hover { @@ -94,7 +94,7 @@ const isIconify = computed(() => { font-size: 24px; background-color: var(--vp-c-default-soft); border-radius: 6px; - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .title { diff --git a/theme/src/client/components/Home/VPHomeFeatures.vue b/theme/src/client/components/Home/VPHomeFeatures.vue index 472460cf..42c17782 100644 --- a/theme/src/client/components/Home/VPHomeFeatures.vue +++ b/theme/src/client/components/Home/VPHomeFeatures.vue @@ -68,7 +68,7 @@ const grid = computed(() => { font-weight: 900; color: var(--vp-c-text-1); text-align: center; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .description { @@ -77,7 +77,7 @@ const grid = computed(() => { line-height: 1.7; color: var(--vp-c-text-1); text-align: center; - transition: color var(--t-color); + transition: color var(--vp-t-color); } @media (min-width: 768px) { diff --git a/theme/src/client/components/Home/VPHomeHero.vue b/theme/src/client/components/Home/VPHomeHero.vue index 3071a8e1..3848e931 100644 --- a/theme/src/client/components/Home/VPHomeHero.vue +++ b/theme/src/client/components/Home/VPHomeHero.vue @@ -147,7 +147,7 @@ useHomeHeroTintPlate( .hero-tagline { color: var(--vp-c-home-hero-tagline, var(--vp-c-text-2)); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .hero-text { @@ -156,7 +156,7 @@ useHomeHeroTintPlate( font-weight: 500; color: var(--vp-c-home-hero-text, var(--vp-c-text-3)); white-space: pre-wrap; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .actions { @@ -206,7 +206,7 @@ useHomeHeroTintPlate( height: 100%; content: ""; background: linear-gradient(to bottom, var(--vp-home-hero-bg-filter) 0, transparent 45%, transparent 55%, var(--vp-home-hero-bg-filter) 140%); - transition: --vp-home-hero-bg-filter var(--t-color); + transition: --vp-home-hero-bg-filter var(--vp-t-color); } .bg-filter canvas { diff --git a/theme/src/client/components/Home/VPHomeProfile.vue b/theme/src/client/components/Home/VPHomeProfile.vue index 472daee0..ca3ff8f5 100644 --- a/theme/src/client/components/Home/VPHomeProfile.vue +++ b/theme/src/client/components/Home/VPHomeProfile.vue @@ -70,6 +70,6 @@ const profile = computed(() => { line-height: 1.5; color: var(--vp-c-text-2); white-space: pre-wrap; - transition: color var(--t-color); + transition: color var(--vp-t-color); } diff --git a/theme/src/client/components/Home/VPHomeTextImage.vue b/theme/src/client/components/Home/VPHomeTextImage.vue index 1ecf0c0f..e7d856ae 100644 --- a/theme/src/client/components/Home/VPHomeTextImage.vue +++ b/theme/src/client/components/Home/VPHomeTextImage.vue @@ -92,21 +92,21 @@ const maxWidth = computed(() => { font-size: 16px; font-weight: 500; color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .content-text ul h3 { margin: 0; font-size: 16px; color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .content-text ul p { margin: 0; font-weight: 500; color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .content-text ul li :only-child { diff --git a/theme/src/client/components/Nav/VPNavBar.vue b/theme/src/client/components/Nav/VPNavBar.vue index eaaf385e..362221b6 100644 --- a/theme/src/client/components/Nav/VPNavBar.vue +++ b/theme/src/client/components/Nav/VPNavBar.vue @@ -33,7 +33,7 @@ watchPostEffect(() => { - +
@@ -250,7 +251,7 @@ watch( width: 224px; height: 32px; background: linear-gradient(transparent, var(--vp-aside-curtain-bg) 70%); - transition: --vp-aside-curtain-bg var(--t-color); + transition: --vp-aside-curtain-bg var(--vp-t-color); } .aside-content { diff --git a/theme/src/client/components/VPDocAsideOutline.vue b/theme/src/client/components/VPDocAsideOutline.vue index 4e7084fb..8fe91186 100644 --- a/theme/src/client/components/VPDocAsideOutline.vue +++ b/theme/src/client/components/VPDocAsideOutline.vue @@ -59,7 +59,7 @@ function handlePrint() { font-size: 13px; font-weight: 500; border-left: 1px solid var(--vp-c-divider); - transition: border-left var(--t-color); + transition: border-left var(--vp-t-color); } .outline-marker { @@ -74,8 +74,8 @@ function handlePrint() { opacity: 0; transition: top 0.25s cubic-bezier(0, 1, 0.5, 1), - background-color var(--t-color), - opacity var(--t-color); + background-color var(--vp-t-color), + opacity var(--vp-t-color); } .outline-title { diff --git a/theme/src/client/components/VPDocBreadcrumbs.vue b/theme/src/client/components/VPDocBreadcrumbs.vue index c6111f39..098c605a 100644 --- a/theme/src/client/components/VPDocBreadcrumbs.vue +++ b/theme/src/client/components/VPDocBreadcrumbs.vue @@ -96,7 +96,7 @@ function resolveSidebar( padding-left: 8px; margin-bottom: 2rem; border-left: solid 2px var(--vp-c-brand-1); - transition: border-left var(--t-color); + transition: border-left var(--vp-t-color); } .vp-breadcrumb ol { @@ -117,7 +117,7 @@ function resolveSidebar( .vp-breadcrumb .breadcrumb { font-weight: bold; color: var(--vp-c-brand-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-breadcrumb .breadcrumb:hover { @@ -131,6 +131,6 @@ function resolveSidebar( .vp-breadcrumb .vpi-chevron-right { margin-left: 4px; color: var(--vp-c-border); - transition: color var(--t-color); + transition: color var(--vp-t-color); } diff --git a/theme/src/client/components/VPDocFooter.vue b/theme/src/client/components/VPDocFooter.vue index 3b1d18c8..89a83e3a 100644 --- a/theme/src/client/components/VPDocFooter.vue +++ b/theme/src/client/components/VPDocFooter.vue @@ -107,7 +107,7 @@ const showFooter = computed(() => { line-height: 32px; color: var(--vp-c-brand-1); border: 0; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .edit-link-button:hover { @@ -130,7 +130,7 @@ const showFooter = computed(() => { font-weight: 500; line-height: 24px; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } @media (min-width: 640px) { @@ -164,16 +164,16 @@ const showFooter = computed(() => { padding-right: 10px; font-weight: 500; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .contributors-info { color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); .contributor { color: var(--vp-c-text-3); - transition: color var(--t-color); + transition: color var(--vp-t-color); } } @@ -183,7 +183,7 @@ const showFooter = computed(() => { padding-top: 24px; margin-top: 10px; border-top: 1px solid var(--vp-c-divider); - transition: border-top var(--t-color); + transition: border-top var(--vp-t-color); } @media (min-width: 640px) { @@ -206,7 +206,7 @@ const showFooter = computed(() => { padding: 11px 16px 13px; border: 1px solid var(--vp-c-divider); border-radius: 8px; - transition: border-color var(--t-color); + transition: border-color var(--vp-t-color); } .pager-link:hover { @@ -224,7 +224,7 @@ const showFooter = computed(() => { font-weight: 500; line-height: 20px; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .title { @@ -233,6 +233,6 @@ const showFooter = computed(() => { font-weight: 500; line-height: 20px; color: var(--vp-c-brand-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } diff --git a/theme/src/client/components/VPDocMeta.vue b/theme/src/client/components/VPDocMeta.vue index 6fc036f5..0ee2715b 100644 --- a/theme/src/client/components/VPDocMeta.vue +++ b/theme/src/client/components/VPDocMeta.vue @@ -75,7 +75,7 @@ const hasMeta = computed(() => readingTime.value.time || tags.value.length || cr font-weight: 600; line-height: 1.5; color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-doc-title.padding { @@ -92,7 +92,7 @@ const hasMeta = computed(() => readingTime.value.time || tags.value.length || cr font-size: 14px; color: var(--vp-c-text-3); border-bottom: solid 1px var(--vp-c-divider); - transition: color var(--t-color), border-bottom var(--t-color); + transition: color var(--vp-t-color), border-bottom var(--vp-t-color); } .vp-doc-meta p { @@ -110,7 +110,7 @@ const hasMeta = computed(() => readingTime.value.time || tags.value.length || cr .vp-doc-meta .author .icon, .vp-doc-meta .author span { color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-doc-meta .tag { diff --git a/theme/src/client/components/VPDocOutlineItem.vue b/theme/src/client/components/VPDocOutlineItem.vue index 676be346..a336ba68 100644 --- a/theme/src/client/components/VPDocOutlineItem.vue +++ b/theme/src/client/components/VPDocOutlineItem.vue @@ -47,7 +47,7 @@ function handleClick({ target: el }: Event) { color: var(--vp-c-text-2); text-overflow: ellipsis; white-space: nowrap; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .outline-link:hover, diff --git a/theme/src/client/components/VPEncryptForm.vue b/theme/src/client/components/VPEncryptForm.vue index 74fbc831..e07c151f 100644 --- a/theme/src/client/components/VPEncryptForm.vue +++ b/theme/src/client/components/VPEncryptForm.vue @@ -84,7 +84,7 @@ async function onSubmit() { border: 1px solid var(--vp-c-border); border-radius: 4px; outline: none; - transition: border-color var(--t-color), background-color var(--t-color); + transition: border-color var(--vp-t-color), background-color var(--vp-t-color); } .encrypt-input:focus { @@ -106,7 +106,7 @@ async function onSubmit() { border: none; border-radius: 4px; outline: none; - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .encrypt-button:hover { diff --git a/theme/src/client/components/VPEncryptGlobal.vue b/theme/src/client/components/VPEncryptGlobal.vue index 07ae46cc..c9bc3b57 100644 --- a/theme/src/client/components/VPEncryptGlobal.vue +++ b/theme/src/client/components/VPEncryptGlobal.vue @@ -36,7 +36,7 @@ const title = computed(() => profile.value?.name || site.value.title) width: 100%; overflow-y: auto; background-color: var(--vp-c-bg); - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } @media (min-width: 768px) { @@ -95,6 +95,6 @@ const title = computed(() => profile.value?.name || site.value.title) line-height: 1.5; color: var(--vp-c-text-1); text-align: center; - transition: color var(--t-color); + transition: color var(--vp-t-color); } diff --git a/theme/src/client/components/VPEncryptPage.vue b/theme/src/client/components/VPEncryptPage.vue index d1da1bac..7b616afb 100644 --- a/theme/src/client/components/VPEncryptPage.vue +++ b/theme/src/client/components/VPEncryptPage.vue @@ -36,7 +36,7 @@ const { theme } = useData() border: solid 1px var(--vp-c-divider); border-radius: 8px; box-shadow: var(--vp-shadow-1); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: box-shadow, border-color; } diff --git a/theme/src/client/components/VPFlyout.vue b/theme/src/client/components/VPFlyout.vue index 6f55433a..6f96261d 100644 --- a/theme/src/client/components/VPFlyout.vue +++ b/theme/src/client/components/VPFlyout.vue @@ -58,7 +58,7 @@ function onBlur() { diff --git a/theme/src/client/components/VPLocalNav.vue b/theme/src/client/components/VPLocalNav.vue index 72bc5eb0..f8efa9a9 100644 --- a/theme/src/client/components/VPLocalNav.vue +++ b/theme/src/client/components/VPLocalNav.vue @@ -82,9 +82,9 @@ const showLocalNav = computed(() => { border-top: 1px solid var(--vp-c-gutter); border-bottom: 1px solid var(--vp-c-gutter); transition: - border-color var(--t-color), - background-color var(--t-color), - border var(--t-color); + border-color var(--vp-t-color), + background-color var(--vp-t-color), + border var(--vp-t-color); } .vp-local-nav.fixed { diff --git a/theme/src/client/components/VPLocalNavOutlineDropdown.vue b/theme/src/client/components/VPLocalNavOutlineDropdown.vue index 961165f4..e4ba0d31 100644 --- a/theme/src/client/components/VPLocalNavOutlineDropdown.vue +++ b/theme/src/client/components/VPLocalNavOutlineDropdown.vue @@ -83,7 +83,7 @@ function scrollToTop() { font-weight: 500; line-height: 24px; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-local-nav-outline-dropdown button:hover { @@ -125,7 +125,7 @@ function scrollToTop() { border: 1px solid var(--vp-c-border); border-radius: 8px; box-shadow: var(--vp-shadow-3); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: background-color, border, box-shadow; } diff --git a/theme/src/client/components/VPMenu.vue b/theme/src/client/components/VPMenu.vue index fd47243b..6f4e1fd1 100644 --- a/theme/src/client/components/VPMenu.vue +++ b/theme/src/client/components/VPMenu.vue @@ -35,7 +35,7 @@ defineProps<{ border: 1px solid var(--vp-c-divider); border-radius: 12px; box-shadow: var(--vp-shadow-3); - transition: background-color var(--t-color), border var(--t-color); + transition: background-color var(--vp-t-color), border var(--vp-t-color); } .vp-menu :deep(.group) { @@ -46,7 +46,7 @@ defineProps<{ .vp-menu :deep(.group + .group) { padding: 11px 12px 12px; border-top: 1px solid var(--vp-c-divider); - transition: border-top var(--t-color); + transition: border-top var(--vp-t-color); } .vp-menu :deep(.group:last-child) { @@ -56,7 +56,7 @@ defineProps<{ .vp-menu :deep(.group + .item) { padding: 11px 16px 0; border-top: 1px solid var(--vp-c-divider); - transition: border-top var(--t-color); + transition: border-top var(--vp-t-color); } .vp-menu :deep(.item) { @@ -70,7 +70,7 @@ defineProps<{ font-weight: 500; line-height: 28px; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-menu :deep(.action) { diff --git a/theme/src/client/components/VPMenuGroup.vue b/theme/src/client/components/VPMenuGroup.vue index 72d84b04..6146a14a 100644 --- a/theme/src/client/components/VPMenuGroup.vue +++ b/theme/src/client/components/VPMenuGroup.vue @@ -27,7 +27,7 @@ defineProps<{ padding: 12px 12px 0; margin: 12px -12px 0; border-top: 1px solid var(--vp-c-divider); - transition: border-top var(--t-color); + transition: border-top var(--vp-t-color); } .vp-menu-group:first-child { @@ -47,7 +47,7 @@ defineProps<{ font-weight: 600; line-height: 32px; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .title :deep(.vp-icon), diff --git a/theme/src/client/components/VPMenuLink.vue b/theme/src/client/components/VPMenuLink.vue index 0781cb12..d9dae409 100644 --- a/theme/src/client/components/VPMenuLink.vue +++ b/theme/src/client/components/VPMenuLink.vue @@ -34,7 +34,7 @@ const { page } = useData() padding: 12px 12px 0; margin: 12px -12px 0; border-top: 1px solid var(--vp-c-divider); - transition: border-top var(--t-color); + transition: border-top var(--vp-t-color); } .link { @@ -47,8 +47,8 @@ const { page } = useData() white-space: nowrap; border-radius: 6px; transition: - background-color var(--t-color), - color var(--t-color); + background-color var(--vp-t-color), + color var(--vp-t-color); } .link:hover { diff --git a/theme/src/client/components/VPPage.vue b/theme/src/client/components/VPPage.vue index be69d50b..81815593 100644 --- a/theme/src/client/components/VPPage.vue +++ b/theme/src/client/components/VPPage.vue @@ -1,7 +1,7 @@ diff --git a/theme/src/client/components/VPSidebar.vue b/theme/src/client/components/VPSidebar.vue index 5da8d57e..f0607a5e 100644 --- a/theme/src/client/components/VPSidebar.vue +++ b/theme/src/client/components/VPSidebar.vue @@ -53,6 +53,7 @@ onMounted(() => { ref="navEl" class="vp-sidebar" :class="{ open }" + vp-sidebar @click.stop >
@@ -95,9 +96,9 @@ onMounted(() => { box-shadow: var(--vp-c-shadow-3); opacity: 0; transition: - opacity var(--t-color), - background-color var(--t-color), - box-shadow var(--t-color), + opacity var(--vp-t-color), + background-color var(--vp-t-color), + box-shadow var(--vp-t-color), transform 0.5s cubic-bezier(0.19, 1, 0.22, 1); transform: translateX(-100%); @@ -113,7 +114,7 @@ onMounted(() => { transform: translateX(0); } -.dark .vp-sidebar { +[data-theme="dark"] .vp-sidebar { box-shadow: var(--vp-shadow-1); } @@ -157,7 +158,7 @@ onMounted(() => { margin-right: -32px; margin-left: -32px; background-color: var(--vp-sidebar-bg-color); - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } } diff --git a/theme/src/client/components/VPSidebarGroup.vue b/theme/src/client/components/VPSidebarGroup.vue index ac9b7e1e..f11ed54a 100644 --- a/theme/src/client/components/VPSidebarGroup.vue +++ b/theme/src/client/components/VPSidebarGroup.vue @@ -44,7 +44,7 @@ onBeforeUnmount(() => { .group + .group { padding-top: 10px; border-top: 1px solid var(--vp-c-divider); - transition: border var(--t-color); + transition: border var(--vp-t-color); } @media (min-width: 960px) { diff --git a/theme/src/client/components/VPSidebarItem.vue b/theme/src/client/components/VPSidebarItem.vue index b5c2e0fc..4391db53 100644 --- a/theme/src/client/components/VPSidebarItem.vue +++ b/theme/src/client/components/VPSidebarItem.vue @@ -138,7 +138,7 @@ function onCaretClick() { bottom: 6px; left: -17px; width: 1px; - transition: background-color var(--t-color); + transition: background-color var(--vp-t-color); } .vp-sidebar-item.level-2.is-active > .item > .indicator, @@ -158,7 +158,7 @@ function onCaretClick() { padding: 4px 0; font-size: 14px; line-height: 24px; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-sidebar-item.level-0 .text { @@ -217,14 +217,14 @@ function onCaretClick() { margin-right: -7px; color: var(--vp-c-text-3); cursor: pointer; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .item :deep(.vp-icon) { margin: 0 0.25rem 0 0; font-size: 0.9em; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .item :deep(.vp-icon-img) { @@ -262,7 +262,7 @@ function onCaretClick() { width: 18px; height: 18px; fill: currentcolor; - transition: transform var(--t-color); + transition: transform var(--vp-t-color); transform: rotate(90deg); } @@ -277,7 +277,7 @@ function onCaretClick() { .vp-sidebar-item.level-5 .items { padding-left: 16px; border-left: 1px solid var(--vp-c-divider); - transition: border-left var(--t-color); + transition: border-left var(--vp-t-color); } .vp-sidebar-item.collapsed .items { diff --git a/theme/src/client/components/VPSocialLink.vue b/theme/src/client/components/VPSocialLink.vue index 10296e29..b73a1971 100644 --- a/theme/src/client/components/VPSocialLink.vue +++ b/theme/src/client/components/VPSocialLink.vue @@ -32,7 +32,7 @@ const svg = computed(() => { width: 36px; height: 36px; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-social-link:hover { diff --git a/theme/src/client/components/VPSwitch.vue b/theme/src/client/components/VPSwitch.vue index 54d9a44a..962ddf0f 100644 --- a/theme/src/client/components/VPSwitch.vue +++ b/theme/src/client/components/VPSwitch.vue @@ -59,7 +59,7 @@ color: var(--vp-c-text-2); } -.dark .icon :deep([class^="vpi-"]) { +[data-theme="dark"] .icon :deep([class^="vpi-"]) { color: var(--vp-c-text-1); transition: opacity 0.25s !important; } diff --git a/theme/src/client/components/VPSwitchAppearance.vue b/theme/src/client/components/VPSwitchAppearance.vue index 8c84d6a8..0e74f163 100644 --- a/theme/src/client/components/VPSwitchAppearance.vue +++ b/theme/src/client/components/VPSwitchAppearance.vue @@ -39,15 +39,15 @@ watchPostEffect(() => { opacity: 0; } -.dark .sun { +[data-theme="dark"] .sun { opacity: 0; } -.dark .moon { +[data-theme="dark"] .moon { opacity: 1; } -.dark .vp-switch-appearance :deep(.check) { +[data-theme="dark"] .vp-switch-appearance :deep(.check) { /* rtl:ignore */ transform: translateX(18px); } diff --git a/theme/src/client/components/global/VPBadge.vue b/theme/src/client/components/global/VPBadge.vue index 82bac9a7..354a4bea 100644 --- a/theme/src/client/components/global/VPBadge.vue +++ b/theme/src/client/components/global/VPBadge.vue @@ -25,7 +25,7 @@ withDefaults(defineProps(), { line-height: 22px; border: 1px solid transparent; border-radius: 12px; - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: color, background-color, border-color; transform: translateY(-2px); } diff --git a/theme/src/client/components/global/VPCard.vue b/theme/src/client/components/global/VPCard.vue index b0c133db..02a8bc35 100644 --- a/theme/src/client/components/global/VPCard.vue +++ b/theme/src/client/components/global/VPCard.vue @@ -42,7 +42,7 @@ const icon = computed(() => { border: solid 1px var(--vp-c-divider); border-radius: 8px; box-shadow: var(--vp-shadow-1); - transition: border-color var(--t-color), box-shadow var(--t-color); + transition: border-color var(--vp-t-color), box-shadow var(--vp-t-color); } .vp-card-wrapper:hover { @@ -62,7 +62,7 @@ const icon = computed(() => { font-size: 20px; font-weight: 700; color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-card-wrapper .body :first-child { diff --git a/theme/src/client/components/global/VPImageCard.vue b/theme/src/client/components/global/VPImageCard.vue index 375cddfc..30e4c56d 100644 --- a/theme/src/client/components/global/VPImageCard.vue +++ b/theme/src/client/components/global/VPImageCard.vue @@ -60,7 +60,7 @@ const date = computed(() => { .vp-image-card { margin: 16px 0; box-shadow: var(--vp-shadow-2); - transition: var(--t-color); + transition: var(--vp-t-color); transition-property: box-shadow; } @@ -91,7 +91,7 @@ const date = computed(() => { background-color: rgba(0, 0, 0, 0.5); border-top-left-radius: 8px; border-top-right-radius: 8px; - transition: transform var(--t-color); + transition: transform var(--vp-t-color); transform: translateY(calc(100% - 60px)); } diff --git a/theme/src/client/components/global/VPLinkCard.vue b/theme/src/client/components/global/VPLinkCard.vue index 4bcad02a..64f26e4c 100644 --- a/theme/src/client/components/global/VPLinkCard.vue +++ b/theme/src/client/components/global/VPLinkCard.vue @@ -39,7 +39,7 @@ defineProps<{ border: solid 1px var(--vp-c-divider); border-radius: 8px; box-shadow: var(--vp-shadow-1); - transition: border-color var(--t-color), box-shadow var(--t-color), background-color var(--t-color); + transition: border-color var(--vp-t-color), box-shadow var(--vp-t-color), background-color var(--vp-t-color); } .vp-link-card:hover { diff --git a/theme/src/client/composables/dark-mode.ts b/theme/src/client/composables/dark-mode.ts index f273a23e..b3a658b8 100644 --- a/theme/src/client/composables/dark-mode.ts +++ b/theme/src/client/composables/dark-mode.ts @@ -24,6 +24,9 @@ export function setupDarkMode(app: App): void { : appearance ? useDark({ storageKey: 'vuepress-theme-appearance', + attribute: 'data-theme', + valueLight: 'light', + valueDark: 'dark', disableTransition, initialValue: () => typeof appearance === 'string' ? appearance : 'auto', diff --git a/theme/src/client/features/components/RepoCard.vue b/theme/src/client/features/components/RepoCard.vue index 12fa2936..13f81d07 100644 --- a/theme/src/client/features/components/RepoCard.vue +++ b/theme/src/client/features/components/RepoCard.vue @@ -46,7 +46,7 @@ const { loaded, data } = useGithubRepo(toRef(props, 'repo')) margin: 16px 0; border: solid 1px var(--vp-c-divider); border-radius: 8px; - transition: border-color var(--t-color); + transition: border-color var(--vp-t-color); } .vp-repo-card:hover { @@ -78,7 +78,7 @@ const { loaded, data } = useGithubRepo(toRef(props, 'repo')) font-weight: 600; color: var(--vp-c-brand-1); text-decoration: none; - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-repo-card .repo-name a:hover { @@ -93,7 +93,7 @@ const { loaded, data } = useGithubRepo(toRef(props, 'repo')) color: var(--vp-c-text-2); border: solid 1px var(--vp-c-divider); border-radius: 22px; - transition: color var(--t-color), border var(--t-color); + transition: color var(--vp-t-color), border var(--vp-t-color); } .vp-repo-card .repo-desc { @@ -101,7 +101,7 @@ const { loaded, data } = useGithubRepo(toRef(props, 'repo')) font-size: 14px; line-height: 22px; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-repo-card .repo-info { @@ -118,12 +118,12 @@ const { loaded, data } = useGithubRepo(toRef(props, 'repo')) gap: 0 4px; align-items: center; color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-repo-card .repo-info p [class^="vpi-github-"] { color: var(--vp-c-text-1); - transition: color var(--t-color); + transition: color var(--vp-t-color); } .vp-repo-card .repo-language { @@ -137,7 +137,7 @@ const { loaded, data } = useGithubRepo(toRef(props, 'repo')) --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1em' height='1em' viewBox='0 0 16 16'%3E%3Cpath fill='%23000' d='M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 0 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7a.75.75 0 1 1-1.072 1.05A2.5 2.5 0 0 1 2 11.5Zm10.5-1h-8a1 1 0 0 0-1 1v6.708A2.5 2.5 0 0 1 4.5 9h8ZM5 12.25a.25.25 0 0 1 .25-.25h3.5a.25.25 0 0 1 .25.25v3.25a.25.25 0 0 1-.4.2l-1.45-1.087a.25.25 0 0 0-.3 0L5.4 15.7a.25.25 0 0 1-.4-.2Z'/%3E%3C/svg%3E"); color: var(--vp-c-text-2); - transition: color var(--t-color); + transition: color var(--vp-t-color); transform: translateY(2px); } diff --git a/theme/src/client/layouts/Layout.vue b/theme/src/client/layouts/Layout.vue index e3690f46..0dcaa397 100644 --- a/theme/src/client/layouts/Layout.vue +++ b/theme/src/client/layouts/Layout.vue @@ -31,6 +31,7 @@ useCloseSidebarOnEscape(isSidebarOpen, closeSidebar)
@@ -175,7 +176,7 @@ useCloseSidebarOnEscape(isSidebarOpen, closeSidebar)
- +