首页
学习
活动
专区
工具
TVP
发布

换肤功能(scss、css变量)

博客地址:https://ainyi.com/104 产品 SaaS 化,通常需要有换肤功能 这里简单记录一下主题色及其衍生色(高亮、浅色)的更换功能 scss 全局定义 每个页面都有颜色,那么应该把颜色值定义在.../global.scss'; // 使用例子 .demo { color: $color-primary } 这样,只要更改 scss 中全局变量的颜色值,就可以同步更改项目的颜色值 css 变量定义...这里就用到 css 的变量函数了:==var()== 之前有谈到使用 css 的变量以及赋值方法:Bilibili [冬] banner 早中晚切换效果 var() 函数用于插入自定义的属性值 两个参数...color-1, $color-2, $weight: 50%) must be a color mix 函数无法使用带有 var() 函数变量的参数,HSL 函数也是;但普通变量是可以的 最终只能使用 js...变量上,在 scss 全局变量中用 var() 函数引入 css 变量(各种颜色值) 换肤流程 通过接口获取主题色 --> js 计算衍生色值 --> 赋值到 css 变量 --> scss 全局变量用

4K20
您找到你想要的搜索结果了吗?
是的
没有找到

使用 CSS variables 和Tailwind css实现主题换肤

背景 在2B的项目中,常常有客户(甲方爸爸)需求,定制与他们企业相同的主题的网站;随着苹果暗黑模式的推出,换肤的需求在网站开发中越来越多,也越来越重要,最近在网上看到 Tailwind Labs的实现的换肤视频...根据Tailwind Labs的[换肤视频],手动实践。...是实现换肤最方便的方案,按传统的方案就得加入一些css class 就可以实现,如: :root { --page-bg:#fff; --card-bg:#F9FAFB; /* gray...h1 { color: red; color: var(--color); } 但是这个插件只对第一次编译的时候有用,动态换肤的时候就失效了, 我们可以使用js polyfill 来修复这个问题...Tailwind 配置 tailwind css 可以让用户在tailwind.config.js中配置一些自定义颜色,这样css 中就增加了与之对应颜色的class。

1.3K20

使用 CSS variables 和Tailwind css实现主题换肤

背景 在 2B 的项目中,常常有客户(甲方爸爸)需求,定制与他们企业相同的主题的网站;随着苹果暗黑模式的推出,换肤的需求在网站开发中越来越多,也越来越重要,最近在网上看到 Tailwind Labs 的实现的换肤视频... 根据Tailwind Labs的[换肤视频],手动实践。...是实现换肤最方便的方案,按传统的方案就得加入一些 css class 就可以实现,如: :root { --page-bg: #fff; --card-bg: #f9fafb; /* gray...h1 { color: red; color: var(--color); } 但是这个插件只对第一次编译的时候有用,动态换肤的时候就失效了, 我们可以使用 js polyfill 来修复这个问题...Tailwind 配置 tailwind css 可以让用户在tailwind.config.js中配置一些自定义颜色,这样 css 中就增加了与之对应颜色的 class。

1.5K21

CSS in JS

由于 CSS 的封装非常弱,导致了一系列的第三方库,用来加强 React 的 CSS 操作。它们统称为 CSS in JS,意思就是使用 JS 语言写 CSS。...根据不完全统计,各种 CSS in JS 的库至少有47种。老实说,现在也看不出来,哪一个库会变成主流。 ?...回答是 CSS in JS 使用 JavaScript 的语法,是 JavaScript 脚本的一部分,不用从头学习一套专用的 API,也不会多一道编译步骤。...5、 上周,我看到一个新的 CSS in JS 库,叫做 polished.js。它将一些常用的 CSS 属性封装成函数,用起来非常方便,充分体现使用 JavaScript 语言写 CSS 的优势。...我觉得这个库很值得推荐,这篇文章的主要目的,就是想从这个库来看怎么使用 CSS in JS。 首先,加载 polished.js

6.2K40

小程序换肤

**/ .text { color: blue;} 页面加载后,根据用户需求通过js动态的link对应的皮肤样式。...// js动态处理 var theme = /\bt=(\w+)/.exec(location.search); theme = theme ?...CSS变量换肤 利用CSS变量设置颜色, 用js动态修改CSS变量,进而换色。如果不考虑兼容性,这是最佳换肤方案。...方案以及问题 由于小程序它自身的技术特点,传统方案的 CSS变量以及 Less在线编译 换肤方案无法使用,所以小程序换肤方案主要是: 如果没有线上存在多套皮肤的需求,可以抽取颜色变量通过线下编译修改主题色...如果有线上多套皮肤的需求,则采用传统前端的多套CSS皮肤方案加更改类名的方式。 针对动态换肤,后端接口返回色值字段,前端通过 内联 方式对页面元素进行色值设置。

1.9K20

在线动态换肤思路

很早之前就在想在线换肤的实现思路,主要是之前有个项目有换肤,连布局图片都不一样,无能为力,只好写不同页面,然后通过打包的时候配置删除和替代文件实现,但是在线换肤还是没去做。...最简单的一个方式,通过不同的css实现换肤,前提是确定好几个可供切换的css,效果: 代码很简单主要就是动态切换link引入的地址: let link = document.getElementById...('color'); link.setAttribute('href', type + '.css'); 这种方法其实并不是很建议,一个是你必须提供很多css文件,另外一个就是你很难直接通过设置css的十六进制去换肤...还有一种css自定义变量的方式,这我还真是前几天才知道的,是一个大佬告知的,这个css很早就出现了,只是一直不知道: :root { --bg: #00aaee; --color: #00aaee...还有之前有提到过的css in js在这种换肤场景下好像也非常的合适。

1K20

基于Vue、ElementUI的换肤解决方案

我们单独写一份样式表(css 文件 深空蓝.css),以一个特定的命名开头(比如 .blue-theme),然后在这个 css 文件中,完成我们第二套皮肤的样式代码,然后当我们点击换肤的时候,就将 blue-theme...(你可以将这个css 文件改成你喜欢的名字,比如我改成了叫:theme-summer.css) image.png 然后在我们项目的 main.js 中,注释掉 Element-UI 的原来 css 文件引入...所以,我们还是用上面的方法,给这个生成的css文件里面的每一个 css 样式加上一个独特的命名前缀,然后换肤的时候,就将这个 class 添加到 body 上面,如此一来,也能实现很丰富的换肤功能(因为我们可以自己配很多套好看的配色...首先: npm i gulp gulp-clean-css gulp-css-wrap -D 然后,编写 gulpfile.js // gulpfile.js var path = require('...那么你 js 改 scss 变量的方法在打包后的项目中是不起作用的。

4.9K30

前端换肤的N种方案,请收下

(网友Soledad提供) 使用scss变量换肤相比覆盖样式 拓展性更强 将换肤的逻辑进行了收敛 生成多套皮肤css 使用覆盖样式实现与scss变量实现会把多套皮肤的样式都编译到一个css文件里面,如果有多套皮肤样式...优点:会生成一套与css变量对应的css 缺点:在构建时根据css变量生成对应的css换肤是运行时并不能生成对应的css换肤后样式: ?...CSS变量兼容性实现-2 首先需要建一个存放公共css变量的js文件,将需要定义的css变量存放到该js文件,例如(variable.js) // variable.js // 字体变量 const...(具体用法与概念请查阅官方网站:css-vars-ponyfill) 封装切换主题的js,在main.js做初始化调用 // theme.js import { lightTheme, darkTheme...注:使用less 来实现换肤要注意 less 文件在 html 中编写的位置,不然很可能被其他css 文件所干扰导致换肤失败。如果less文件特别大,会存在编译性能问题。

2.1K20

CSS in JS 简介

由于 CSS 的封装非常弱,导致了一系列的第三方库,用来加强 React 的 CSS 操作。它们统称为 CSS in JS,意思就是使用 JS 语言写 CSS。...根据不完全统计,各种 CSS in JS 的库至少有47种。老实说,现在也看不出来,哪一个库会变成主流。...回答是 CSS in JS 使用 JavaScript 的语法,是 JavaScript 脚本的一部分,不用从头学习一套专用的 API,也不会多一道编译步骤。...5、 上周,我看到一个新的 CSS in JS 库,叫做 polished.js。它将一些常用的 CSS 属性封装成函数,用起来非常方便,充分体现使用 JavaScript 语言写 CSS 的优势。...我觉得这个库很值得推荐,这篇文章的主要目的,就是想从这个库来看怎么使用 CSS in JS。 首先,加载 polished.js

5K70

只听说过CSS in JS,怎么还有JS in CSS

本文由作者 Menndy 授权原创发布 CSS in JS CSS in JS是一种解决css问题想法的集合,而不是一个指定的库。...从CSS in JS的字面意思可以看出,它是将css样式写在JavaScript文件中,而不需要独立出.css、.less之类的文件。...将css放在js中使我们更方便的使用js的变量、模块化、tree-shaking。还解决了css中的一些问题,譬如:更方便解决基于状态的样式,更容易追溯依赖关系,生成唯一的选择器来锁定作用域。...尽管CSS in JS不是一个很新的技术,但国内的普及程度并不高。...JS in CSS又是什么 在上面我们提到CSS in JS就是把CSS写在JavaScript中,那么JS in CSS我们可以推断出就是可以在CSS中使用JavaScript脚本,如下所示。

6.6K40

《前端技巧复盘》使用纯css实现网站换肤和焦点图切换动画

你将收获 •网站换肤设计方案介绍 •:target伪类介绍和用法以及如何使用css实现网站换肤 •transition动画以及如何用纯css实现焦点图动画 效果展示 1.网站换肤 2.焦点图动画 实现思路...1.网站换肤 通常我们实现网站换肤都基于如下方式实现: •方案一: 使用OOCSS模式,通过js动态切换公共类名来达到换肤效果 •方案二: 点击不同的按钮切换不同的样式表,如下: •theme-green.css...•theme-red.css •theme-black.css •方案三: localStorage存储主题,js动态获取本地存储换肤 •方案四: element和antd的动态换肤,需要实时编译style...答案是可以的,接下来我们就来看纯看css如何实现网站换肤. 在实现换肤之前,我们需要了解一个知识点,那就是a标签的:target伪类....实现网站换肤以及焦点图切换动画,是不是对css有更多的新奇的想法了呢?

3.8K30

《前端5分钟》之使用纯css实现网站换肤和焦点图切换动画

你将收获 •网站换肤设计方案介绍•:target伪类介绍和用法以及如何使用css实现网站换肤•transition动画以及如何用纯css实现焦点图动画 效果展示 1.网站换肤 ? 2.焦点图动画 ?...实现思路 1.网站换肤 通常我们实现网站换肤都基于如下方式实现: •方案一: 使用OOCSS模式,通过js动态切换公共类名来达到换肤效果•方案二: 点击不同的按钮切换不同的样式表,如下:•theme-green.css...•theme-red.css•theme-black.css•方案三: localStorage存储主题,js动态获取本地存储换肤•方案四: element和antd的动态换肤,需要实时编译style样式表...以上几个方案都可以实现一定程度上的换肤效果,但是如果是一些基础性的换肤,比如网站的背景样式,某个按钮的样式,某块内容区域的样式等等这种局部的换肤,我们能不能直接用css来实现呢?...答案是可以的,接下来我们就来看纯看css如何实现网站换肤. 在实现换肤之前,我们需要了解一个知识点,那就是a标签的:target伪类.

4.1K20

使用lessu002Fcss 动态的切换主题色实现换肤功能

这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情 >> 前言 说起换肤功能,前端肯定不陌生,其实就是颜色值的更换,实现方式有很多,也各有优缺点 看需求是什么 一般来说换肤的需求分为两种...一个全局class控制样式切换 切换的时候js控制样式的切换 JS改变href属性值切换样式表,例如: <link id="skincolor" href="skin-default.<em>css</em>"...,js点击切换的时候通过改变css样式表链接来实现。...实现 demo 对于制定动态色值换肤的实现# 如果是要实现动态换肤,自定义色值,那上面的几种方式就不适合了。...先看下已有的实现有哪些方法 Element-UI 有换肤功能 示例预览 实现原理: 官方解释 先把默认主题文件中涉及到颜色的 CSS 值替换成关键词:链接 根据用户选择的主题色生成一系列对应的颜色值:链接

1.1K60
领券