通過 Tailwind CSS 自定義樣式 實現深色模式切換

創建vite項目或者vue-cli配置大同小異

1、當前環境

  • Vue.js 3.5
  • @nuxtjs/tailwindcss 6.13.1
  • nuxt3.15.4
  • node18
    這里主要依賴是tailwindcss 因為當前項目是使用nuxt開發。

2、配置顏色模式

在assets/css下創建main.css

* {padding: 0;margin: 0;box-sizing: border-box;
}[data-theme="light"] {/* 基礎顏色 */--background-color: #FFFFFF;/* 次要背景顏色 */--background-secondary-color: #F5F5F5;--text-color: #333333;          /* 主要文字顏色 */--text-secondary-color: #666666; /* 次要文字顏色 */--primary-color: #1E90FF;       /* 主色調 */--secondary-color: #FF6347;    /* 輔助色調 */--border-color: #E0E0E0;        /* 邊框顏色 *//* 狀態顏色 */--success-color: #4CAF50;       /* 成功 */--error-color: #F44336;         /* 失敗 */--warning-color: #FF9800;       /* 警告 */--info-color: #2196F3;          /* 信息 *//* 其他輔助顏色 */--disabled-color: #CCCCCC;      /* 禁用狀態顏色 */--placeholder-color: #999999;   /* 輸入框占位符顏色 */--icon-color: #666666;          /* 圖標顏色 */
}
[data-theme="dark"] {/* 基礎顏色 */--background-color: #1E1E1E;/* 次要背景顏色 */--background-secondary-color: #282828;--text-color: #E0E0E0;          /* 主要文字顏色 */--text-secondary-color: #A0A0A0; /* 次要文字顏色 */--primary-color: #1E90FF;       /* 主色調 */--secondary-color: #FF6347;    /* 輔助色調 */--border-color: #444444;        /* 邊框顏色 *//* 狀態顏色 */--success-color: #66BB6A;       /* 成功 */--error-color: #EF5350;         /* 失敗 */--warning-color: #FFA726;       /* 警告 */--info-color: #42A5F5;          /* 信息 *//* 其他輔助顏色 */--disabled-color: #666666;      /* 禁用狀態顏色 */--placeholder-color: #888888;   /* 輸入框占位符顏色 */--icon-color: #A0A0A0;          /* 圖標顏色 */
}/* 覆蓋 vant 組件的默認樣式 */
:root:root {--van-cell-background: var(--background-color);
}
.theme-transition {& * {transition:background-color 0.2s ease,color 0.2s ease,border-color 0.2s ease;}/* 禁用偽元素過渡 */& *::before,& *::after {transition: none;}
}/* 全局樣式文件或組件內樣式 */
.markdown-content ul {list-style-type: disc; /* 恢復小圓點 */padding-left: 1.5em; /* 添加合理縮進 */
}.markdown-content li {margin: 4px 0;
}

3、在app.vue引入

<template><NuxtPage />
</template>
<style>
@import url("~/assets/css/main.css");
</style>
<style>
/* 平滑的滾動效果 */
html {scroll-behavior: smooth;
}</style>

4、配置自定義類名

修改配置文件tailwind.config 創建項目安裝Tailwind CSS 自動生成的

module.exports = {// 配置自定義樣式theme: {extend: {colors: {background: "var(--background-color)",text: "var(--text-color)","text-secondary": "var(--text-secondary-color)",primary: "var(--primary-color)","text-primary": "var(--primary-color)",secondary: "var(--secondary-color)",border: "var(--border-color)",success: "var(--success-color)","text-success": "var(--success-color)",error: "var(--error-color)",warning: "var(--warning-color)","text-warning": "var(--warning-color)",info: "var(--info-color)","text-info": "var(--info-color)",disabled: "var(--disabled-color)",placeholder: "var(--placeholder-color)",icon: "var(--icon-color)","background-secondary-color": "var(--background-secondary-color)"},},},
};

5、頁面使用

<header class=" text-text py-20 text-center"><h1 class="text-4xl font-bold">歡迎來到我的博客</h1><p class="mt-4 text-lg">分享技術、生活和思考</p>
</header>

這里主要觀察 text-text 樣式 這里 類名結構為 text表示字體 text-[自定義類名]
因為配置的樣式為text。他的值為css變量
在這里插入圖片描述

6、切換顏色主題

[data-theme=“light”]和 [data-theme=“dark”] 下分別定義了兩套css變量
所以現在如果需要切換顏色主題 只需要修改 根節點data-theme的值。

7、效果圖

深色

在這里插入圖片描述

淺色

在這里插入圖片描述

怎么樣 是不是 很簡單 我相信你也可以的。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/80439.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/80439.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/80439.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PWNOS:2.0(vulnhub靶機)

文章目錄 靶機地址主機發現、端口掃描web滲透目錄探測漏洞利用權限提升 解密工具地址總結 靶機地址 https://download.vulnhub.com/pwnos/pWnOS_v2.0.7z 這里如果是windows系統直接使用vmware或者virtubox打開可以使用,如果是mac系統需再去做一個配置&#xff0c;比較麻煩 這里…

Gartner魔力象限(Gartner Magic Quadrant)

Gartner魔力象限&#xff08;Gartner Magic Quadrant&#xff09;是由全球領先的研究和咨詢公司Gartner發布的市場研究報告&#xff0c;廣泛應用于IT行業&#xff0c;尤其是在技術供應商評估中。它以圖形化的方式展示了不同技術領域中各個供應商的市場表現&#xff0c;幫助企業…

信創時代開發工具選擇指南:國產替代背景下的技術生態與實踐路徑

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家、CSDN平臺優質創作者&#xff0c;高級開發工程師&#xff0c;數學專業&#xff0c;10年以上C/C, C#, Java等多種編程語言開發經驗&#xff0c;擁有高級工程師證書&#xff1b;擅長C/C、C#等開發語言&#xff0c;熟悉Java常用開…

人口老齡化丨AI健康小屋如何實現防病于未然?

隨著全球老齡化加劇&#xff0c;“銀發浪潮” 對醫療資源、養老護理和健康管理提出了嚴峻挑戰。 由此智紳科技應運而生&#xff0c;七彩喜智慧養老系統構筑居家養老安全網。 AI 健康小屋作為銀發科技的創新載體&#xff0c;通過智能化健康監測、精準化風險預警、便捷化醫療銜…

【金倉數據庫征文】金倉數據庫:開啟未來技術腦洞,探索數據庫無限可能

我的個人主頁 我的專欄&#xff1a; 人工智能領域、java-數據結構、Javase、C語言&#xff0c;希望能幫助到大家&#xff01;&#xff01;&#xff01; 點贊&#x1f44d;收藏? 目錄 引言&#xff1a;數據庫進化的下一站 —— 未來科技的無限可能金倉數據庫簡介&#xff1a;國…

#什么是爬蟲?——從技術原理到現實應用的全面解析 VI

什么是爬蟲?——從技術原理到現實應用的全面解析 V 二十六、異構數據采集技術突破 26.1 PDF文本與表格提取 import pdfplumber import pandas as pddef extract_pdf_data(pdf_path):"""從PDF中提取文本和表格數據:param pdf_path: PDF文件路徑:return: 包含…

關于Spring Boot構建項目的相關知識

一 前端框架 1 VUE框架 1.1 簡介 Vue是一款流行的JavaScript框架&#xff0c;用于構建用戶界面和單頁面應用程序。它的設計初衷是為了簡化Web開發過程&#xff0c;使開發者能夠快速構建交互性強、響應速度快的Web應用。 1.2 優點 簡單易用&am…

PPO 強化學習機械臂 IK 訓練過程可視化利器 Tensorboard

視頻講解&#xff1a; PPO 強化學習機械臂 IK 訓練過程可視化利器 Tensorboard PPO 強化學習過程中&#xff0c;設置了verbose會顯示數據&#xff0c;但還是不夠直觀&#xff0c;這里上一個可視化利器&#xff0c;Tensorboard&#xff0c;實際上stable baselines3中已經有了這部…

UE5的 Modify Curve 藍圖節點

In Unreal Engine’s Animation Blueprints, the Modify Curve node lets you drive and alter any named Animation Curve on your character at runtime. The Apply Mode setting on that node controls how the “new” value you feed in (via the added curve‐input pin)…

【Hive入門】Hive分區與分區表完全指南:從原理到企業級實踐

引言 在大數據時代&#xff0c;高效管理海量數據成為企業面臨的核心挑戰。Hive作為Hadoop生態系統中最受歡迎的數據倉庫解決方案&#xff0c;其分區技術是優化數據查詢和管理的關鍵手段。本文將全面解析Hive分區技術的原理、實現方式及企業級最佳實踐&#xff0c;幫助您構建高性…

jdk-8u202-linux-x64.tar.gz官方下載地址

https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html 點擊下載&#xff0c;需要先注冊oracle賬號&#xff0c;很好注冊隨便寫&#xff0c;注冊完登錄就可以下載了。目前就Oracle JDK 8u201/202 是最后兩個可免費用于商業用途的公開版本

OpenCv高階(十)——光流估計

文章目錄 前言一、光流估計二、使用步驟1、導庫讀取視頻、隨機初始化顏色2、初始化光流跟蹤3、視頻幀處理循環4、光流計算與可視化5、循環控制與資源釋放完整代碼 總結 前言 在計算機視覺領域&#xff0c;光流估計是捕捉圖像序列中像素點運動信息的核心技術。它描述了圖像中每…

AIGC實戰之如何構建出更好的大模型RAG系統

一、RAG 系統核心架構解析 1. 檢索模塊深度優化 1.1 混合檢索技術實現 技術原理&#xff1a;結合稀疏檢索&#xff08;BM25&#xff09;與密集檢索&#xff08;DPR&#xff09;&#xff0c;通過動態權重分配提升檢索精度。例如&#xff0c;在醫療領域&#xff0c;BM25 負責精…

Rust 學習筆記:函數和控制流

Rust 學習筆記&#xff1a;函數和控制流 Rust 學習筆記&#xff1a;函數和控制流函數&#xff08;Function&#xff09;語句和表達式帶返回值的函數注釋控制流if 表達式使用 else if 處理多個條件在 let 語句中使用 if循環loop從循環中返回值循環標簽消除多個循環之間的歧義帶 …

c#加密證件號的中間部分,改為*號

前言 使用場景&#xff1a;在我項目中&#xff0c;我需要給前端提供接口&#xff0c;所以我要吧證件號進行加密。例如&#xff1a;411421199510225612&#xff0c;這是一個身份證號&#xff0c;18為的&#xff0c;那么我加密完成之后就會是 411421********5612&#xff0c;類似…

存儲新勢力:助力DeepSeek一體機

寶子們&#xff0c;今天要給大家分享一個超酷的科技話題——各大廠商陸續推出的DeepSeek訓推一體機方案。 【集成人工智能訓推平臺】 它就像是一個超級智能的大腦中樞&#xff0c;為各種復雜的AI任務搭建AI模型流水線。預置算法模版、訓練框架、推理框架、模型任務調度和自動…

同樣機身尺寸下伺服電機比無刷電機扭矩更大的原因

點擊下面圖片帶您領略全新的嵌入式學習路線 &#x1f525;爆款熱榜 88萬閱讀 1.6萬收藏 在電機應用領域&#xff0c;伺服電機和無刷電機&#xff08;BLDC&#xff09;都是常見的動力源&#xff0c;但兩者在性能上存在顯著差異。尤其是在相同機身尺寸下&#xff0c;伺服電機的…

.dat 文件一般可以用什么打開

DAT文件是一種常見的文件格式,通常由多種應用程序生成。打開DAT文件的方法取決于其內容和生成它的軟件。 使用文本編輯器 如果DAT文件是一個簡單的文本文件,可以使用Windows的記事本或macOS的文本編輯器打開它。 右鍵點擊文件 -> 選擇“打開方式” -> 選擇“記事本”…

Java實現加密(七)國密SM2算法的簽名和驗簽(附商用密碼檢測相關國家標準/國密標準下載)

目錄 一、國密標準中&#xff0c;關于SM2簽名驗簽的定義二、SM2簽名和驗簽的實現原理1. 前置知識2. 簽名生成過程3. 驗簽過程4. 數學正確性證明5. 安全性與注意事項 三、帶userId、不帶userId的區別1. 核心區別2.算法區別(1) 哈希計算過程(2) 簽名驗簽流程 四、Java代碼實現1. …