搜尋
首頁web前端css教學css-theme如何透過原始碼產生一份包含多套皮膚配置的樣式文件

這篇文章帶給大家的內容是關於css-theme如何透過原始碼產生一份包含多套皮膚配置的樣式文件,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

css-theme

#透過單一css檔案產生多套主題,並合併入一個css檔案

特性

只載入一個css,透過切換rootClass瞬間切換主題

體積壓縮,將多套css合併,去除冗餘程式碼,避免檔案體積膨脹

低侵入性,不改變現有開發模式,一個修改,全域生效

#安裝

$ npm i css-theme --save-dev

使用

css編寫

在css中需要根據主題變化的地方使用佔位符,佔位符可以是任何字串。
你也可以透過預處理器變數的方式向css檔案注入這些佔位符。

@dark: #theme1;
@light: #theme2;

.container {
  .text1 {
    font-size: 16px;
    color: #theme1;
    line-height: normal;
  }
  .text2 {
    font-size: 14px;
    color:  @dark;
    line-height: normal;
  }
  .text2 {
    font-size: 14px;
    color: @light;
    line-height: normal;
  }
}

gulp外掛模式

在gulp任務中呼叫theme外掛程式。詳見 demo/gulp

var cssTheme = require('css-theme').gulp; // gulp-plugin
var themeConfig = require('./theme.config'); // configs

less({
  plugins:[new LessPluginTheme(themeConfig)]
})

less外掛模式

透過gulp/webpack等工具呼叫less時,插入theme中介軟體。詳見demo/less

var LessPluginTheme = require('css-theme').less; // less-plugin
var themeConfig = require('./theme.config'); // configs

gulp.task('default', function() {
  return gulp.src('./index.less')
    .pipe(less())
    .pipe(cssTheme(themeConfig))
    .pipe(gulp.dest('./dist'));
});

配置

placeholder: 佔位符,描述每個變數在css檔案中對應的佔位符

list: 主題清單

list.targetMap: 主題中每個變數對應的值

list.rootClass: 使用該主題時頂層新增的class

list.default: 是否將該主題作為預設主題,在未指定class時預設展示該主題

module.exports = {
  'placeholder': {
    'dark': '#theme1',
    'light': '#theme2'
  },
  'list': [
    {
      'default': false,
      'targetMap': {
        'dark': '#ff6a3a',
        'light': '#ffa284',
      },
      'rootClass': 'skin_orange'
    },
    {
      'default': false,
      'targetMap': {
        'dark': '#fdd000',
        'light': '#ffd71c',
      },
      'rootClass': 'skin_yellow'
    }
  ]
};

#

以上是css-theme如何透過原始碼產生一份包含多套皮膚配置的樣式文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:segmentfault思否。如有侵權,請聯絡admin@php.cn刪除
控制台命令指南控制台命令指南Apr 11, 2025 am 10:14 AM

多年來,開發人員的調試控制台已在Web瀏覽器中以一種或另一種形式提供。最初是作為錯誤報告的手段

被盜域名的情況被盜域名的情況Apr 11, 2025 am 10:12 AM

早在2011年,該網站的域名CSS-Tricks.com就被盜了。 “劫持域,”他們稱之為。它不僅是這個網站,但大約有12個網站

使用邊緣到邊緣網格的全寬元素使用邊緣到邊緣網格的全寬元素Apr 11, 2025 am 10:09 AM

如果您有一個有限的寬度容器,則說一個集中的文本列,“打破”以使全寬元素涉及欺騙。也許是最好的

創建一個詳細信息,但從未關閉創建一個詳細信息,但從未關閉Apr 11, 2025 am 10:02 AM

HTML中的元素和元素可用於使內容切換到文本部分。默認情況下,您會看到

使用Google電子表格和tabletop.js創建一個可編輯的網頁使用Google電子表格和tabletop.js創建一個可編輯的網頁Apr 11, 2025 am 10:01 AM

如果您曾經面臨過客戶的永無止境的內容修訂請求,請舉手。並不是說變化本身很困難,而是

創新無法保持網絡快速創新無法保持網絡快速Apr 11, 2025 am 09:59 AM

創新的果實每隔一段時間都以改進網絡的基礎層的形式產生果實。 2015年,HTTP/2成為已出版的

Guillermo' 2019年審查Guillermo' 2019年審查Apr 11, 2025 am 09:52 AM

在我讀過的所有以技術為重點的評論帖子中,Guillermo Rauch是我的最愛。那裡有很多

React路由器的鉤子React路由器的鉤子Apr 11, 2025 am 09:49 AM

React路由器5包含鉤子的力量,並引入了四個不同的鉤子來幫助路由。如果您正在尋找,您會發現這篇文章有用

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),