您好,登錄后才能下訂單哦!
小編給大家分享一下css-theme通過源碼生成一份包含多套皮膚配置樣式文件的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
本篇文章給大家帶來的內容是關于css-theme如何通過源碼生成一份包含多套皮膚配置的樣式文件,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
css-theme
通過單一css文件生成多套主題,并合并入一個css文件中
特性
只加載一個css,通過切換rootClass瞬間切換主題
體積壓縮,將多套css合并,去除冗余代碼,避免文件體積膨脹
低侵入性,不改變現有開發模式,一處修改,全局生效
安裝
$ npm i css-theme --save-dev
在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任務中調用theme插件。詳見 demo/gulp
var cssTheme = require('css-theme').gulp; // gulp-plugin var themeConfig = require('./theme.config'); // configs less({ plugins:[new LessPluginTheme(themeConfig)] })
在通過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通過源碼生成一份包含多套皮膚配置樣式文件的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。