diff --git a/app.vue b/app.vue index 7881719..88300e4 100644 --- a/app.vue +++ b/app.vue @@ -7,43 +7,39 @@ diff --git a/assets/css/main.css b/assets/css/main.css index 92db817..4a7e628 100644 --- a/assets/css/main.css +++ b/assets/css/main.css @@ -1,9 +1,9 @@ /* Don't do `@import "tailwindcss"`, do this instead: */ @layer theme, base, components, utilities; -@import "tailwindcss/theme" layer(theme) theme(static); -@import "tailwindcss/preflight" layer(base); -@import "tailwindcss/utilities" layer(utilities); +@import 'tailwindcss/theme' layer(theme) theme(static); +@import 'tailwindcss/preflight' layer(base); +@import 'tailwindcss/utilities' layer(utilities); /* Then import "@nuxt/ui": */ -@import "@nuxt/ui"; \ No newline at end of file +@import '@nuxt/ui'; diff --git a/components/ColorModeButton.vue b/components/ColorModeButton.vue index c038f1f..eaeb974 100644 --- a/components/ColorModeButton.vue +++ b/components/ColorModeButton.vue @@ -6,6 +6,7 @@ const preference = computed(() => { // 默认为自动,会跟随用户的浏览器切换 if (colorMode.preference === 'system') { + if (preferredColor.value === 'no-preference') return 'dark' return preferredColor.value } return colorMode.preference @@ -18,14 +19,6 @@ diff --git a/nuxt.config.ts b/nuxt.config.ts index a9e9ae2..42834e0 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,9 +1,19 @@ // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ modules: [ + '@pinia/nuxt', '@nuxt/ui', + '@nuxtjs/color-mode', '@vueuse/nuxt', ], + + colorMode: { + preference: 'system', + dataValue: 'theme', + classSuffix: '', + storage: 'cookie', + }, + css: ['~/assets/css/main.css'], compatibilityDate: '2024-11-01', devtools: { enabled: true }, diff --git a/package.json b/package.json index a45164e..b62196b 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,8 @@ "@iconify-json/lucide": "^1.2.26", "@mendable/firecrawl-js": "^1.16.0", "@nuxt/ui": "3.0.0-alpha.12", + "@nuxtjs/color-mode": "^3.5.2", + "@pinia/nuxt": "^0.9.0", "@tailwindcss/typography": "^0.5.16", "@tavily/core": "^0.0.3", "@types/lodash-es": "^4.17.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d1b074e..856963b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,9 +26,15 @@ importers: '@nuxt/ui': specifier: 3.0.0-alpha.12 version: 3.0.0-alpha.12(@babel/parser@7.26.8)(axios@1.7.9)(change-case@5.4.4)(db0@0.2.3)(embla-carousel@8.5.2)(ioredis@5.5.0)(magicast@0.3.5)(radix-vue@1.9.13(vue@3.5.13(typescript@5.7.3)))(rollup@4.34.6)(typescript@5.7.3)(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)) + '@nuxtjs/color-mode': + specifier: ^3.5.2 + version: 3.5.2(magicast@0.3.5) + '@pinia/nuxt': + specifier: ^0.9.0 + version: 0.9.0(magicast@0.3.5)(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3))) '@tailwindcss/typography': specifier: ^0.5.16 - version: 0.5.16(tailwindcss@4.0.5) + version: 0.5.16(tailwindcss@4.0.6) '@tavily/core': specifier: ^0.0.3 version: 0.0.3 @@ -58,7 +64,7 @@ importers: version: 6.2.0 tailwindcss: specifier: ^4.0.5 - version: 4.0.5 + version: 4.0.6 vue: specifier: latest version: 3.5.13(typescript@5.7.3) @@ -701,6 +707,11 @@ packages: resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} + '@pinia/nuxt@0.9.0': + resolution: {integrity: sha512-2yeRo7LeyCF68AbNeL3xu2h6uw0617RkcsYxmA8DJM0R0PMdz5wQHnc44KeENQxR/Mrq8T910XVT6buosqsjBQ==} + peerDependencies: + pinia: ^2.3.0 + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -892,8 +903,8 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@tailwindcss/node@4.0.5': - resolution: {integrity: sha512-ffTz4DX1cgr4XPuqjhm32YV6Lyx58R1CxAAnSFTamg6wXwfk3oWdb6exgAbGesPzvUgicTO0gwUdQGSsg4nNog==} + '@tailwindcss/node@4.0.4': + resolution: {integrity: sha512-VLFq80IyoV1hsHPcCm1mmlyPyUT6NlovQLoO2y7PGm84mW94ZrNJ7ax5H6K4M7Aj/fdMfem5IX7Ka+LXWZpDGg==} '@tailwindcss/oxide-android-arm64@4.0.5': resolution: {integrity: sha512-kK/ik8aIAKWDIEYDZGUCJcnU1qU5sPoMBlVzPvtsUqiV6cSHcnVRUdkcLwKqTeUowzZtjjRiamELLd9Gb0x5BQ==} @@ -2865,6 +2876,15 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + pinia@2.3.1: + resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==} + peerDependencies: + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -3428,8 +3448,11 @@ packages: tailwindcss@4.0.0: resolution: {integrity: sha512-ULRPI3A+e39T7pSaf1xoi58AqqJxVCLg8F/uM5A3FadUbnyDTgltVnXJvdkTjwCOGA6NazqHVcwPJC5h2vRYVQ==} - tailwindcss@4.0.5: - resolution: {integrity: sha512-DZZIKX3tA23LGTjHdnwlJOTxfICD1cPeykLLsYF1RQBI9QsCR3i0szohJfJDVjr6aNRAIio5WVO7FGB77fRHwg==} + tailwindcss@4.0.4: + resolution: {integrity: sha512-/ezDLEkOLf1lXkr9F2iI5BHJbexJpty5zkV2B8bGHCqAdbc9vk85Jgdkq+ZOvNkNPa3yAaqJ8DjRt584Bc84kw==} + + tailwindcss@4.0.6: + resolution: {integrity: sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==} tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -4927,6 +4950,14 @@ snapshots: '@parcel/watcher-win32-ia32': 2.5.1 '@parcel/watcher-win32-x64': 2.5.1 + '@pinia/nuxt@0.9.0(magicast@0.3.5)(pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)))': + dependencies: + '@nuxt/kit': 3.15.4(magicast@0.3.5) + pinia: 2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)) + transitivePeerDependencies: + - magicast + - supports-color + '@pkgjs/parseargs@0.11.0': optional: true @@ -5081,11 +5112,11 @@ snapshots: dependencies: tslib: 2.8.1 - '@tailwindcss/node@4.0.5': + '@tailwindcss/node@4.0.4': dependencies: enhanced-resolve: 5.18.1 jiti: 2.4.2 - tailwindcss: 4.0.5 + tailwindcss: 4.0.4 '@tailwindcss/oxide-android-arm64@4.0.5': optional: true @@ -5137,23 +5168,23 @@ snapshots: '@tailwindcss/postcss@4.0.0': dependencies: '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.0.5 + '@tailwindcss/node': 4.0.4 '@tailwindcss/oxide': 4.0.5 lightningcss: 1.29.1 postcss: 8.5.1 tailwindcss: 4.0.0 - '@tailwindcss/typography@0.5.16(tailwindcss@4.0.5)': + '@tailwindcss/typography@0.5.16(tailwindcss@4.0.6)': dependencies: lodash.castarray: 4.4.0 lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 4.0.5 + tailwindcss: 4.0.6 '@tailwindcss/vite@4.0.0(vite@6.1.0(@types/node@22.13.1)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.38.1)(yaml@2.7.0))': dependencies: - '@tailwindcss/node': 4.0.5 + '@tailwindcss/node': 4.0.4 '@tailwindcss/oxide': 4.0.5 lightningcss: 1.29.1 tailwindcss: 4.0.0 @@ -7253,6 +7284,16 @@ snapshots: picomatch@4.0.2: {} + pinia@2.3.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.13(typescript@5.7.3) + vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.3)) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - '@vue/composition-api' + pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -7850,7 +7891,9 @@ snapshots: tailwindcss@4.0.0: {} - tailwindcss@4.0.5: {} + tailwindcss@4.0.4: {} + + tailwindcss@4.0.6: {} tapable@2.2.1: {}