sass自定义函数转 sass预处理

在《DarkMode(2):深色模式解决方案——css颜色变量实现Dark Mode》与《DarkMode(3):深色模式解决方案——颜色反转与函数 》,如果使用

@mixin themeify {
  @each $theme-name, $theme-map in $themes {
    $theme-map: $theme-map !global;
    body[data-theme=#{$theme-name}] & {
      @content;
    }
  }
} @function themed($key) {
  @return map-get($theme-map, $key);
}

这种方案写出来的样式代码,在改为普通模式,非常难搞。

不过推荐使用正则表达式的方式,去替换

正对第一个函数,替换的正则表达式如下:\@include themeify \{\n([\s\w\:\-\"\(\)\;\$\!]*)\}

const reg =/\@include themeify \{\n([\s\w\:\-\"\(\)\;\$\!]*)\}/
const reg = /@include themeify {\n([\s\w:\-"();$!]*)}/;

替换为$1即可

第二个函数正则表达:themed\(\"([\w\-]*)\"\)\;

const reg = /themed\(\"([\w\-]*)\"\)\;/

替换为\$$1

sass变量主题输出切换为css变量主题输出

如果单纯sass变量输出两套主题,切换主题样式,需要刷新页面。如果是css变量,就无需刷新变量

目的无非就是想要输出:

:root {
  --primary-color: #{$primary-color};
}

如果之前直接是声明的,也没有啥好说的

$accent-color: #fbbc04;
:root {
  --accent-color-wrong: $accent-color;
  --accent-color-right: #{$accent-color};
}

其实还是声明一个函数,即可:

$var-element:'--';
$colors: ( 
    -black: #000,
    -blue: #088DC6
);
:root {
    @each $color in $color-variables {
     #{$var-element}#{nth($color, 1)}: #{nth($color, 2)};   
    }
}

如何在把读取 variable.scss 变量,并自动处理成css 变量文件,这个正在研究,等时间空点,再续

这个用sass或者less函数可以直接处理

如果是map 形势的赋值,直接操作

转载本站文章《DarkMode(5):深色模式不同实现方案切换》,
请注明出处:https://www.zhoulujun.cn/html/webfront/style/darkMode/8586.html

DarkMode(5):深色模式不同实现方案切换的更多相关文章

  1. windows自动切换深色模式(夜晚模式)

    img { width: 30vw } windows系统上怎么根据日出日落时间判断切换为深色模式或浅色模式呢? windows系统自带了一个叫做"任务计划程序"的软件.可以通过& ...

  2. Android QMUI实战:实现APP换肤功能,并自动适配手机深色模式

    Android换肤功能已不是什么新鲜事了,市面上有很多第三方的换肤库和实现方案. 之所以选择腾讯的QMUI库来演示APP的换肤功能,主要原因: 1.换肤功能的实现过程较简单.容易理解: 2.能轻松适配 ...

  3. iOS 深色模式适配

    要求:iOS13.0以上 重点:需要所有界面进行适配,工作量巨大,需要从项目开始就进行适配:H5界面无法进行适配 实现方式:System Colors(常用).Semantic Colors(常用). ...

  4. 「技巧」如何将Sketch改为深色模式

    之前Sketch只能根据mac系统的外观设置变更皮肤.在更新了版本54之后,可以脱离操作系统,在自己的偏好设置中更改外观了. 准备 Sketch 54 更多工具:whose.design 第一步:打开 ...

  5. Mac上深色模式下的精美炫酷软件

    针对发布的 macOS Mojave 10.14 系统中,最大的改变就是引入了深色模式,尤其对技术开发人员来说非常实用,非常的酷! 深色模式使用一种较深的配色方案,这种配色作用于整个系统,包括 Mac ...

  6. 【深色模式】macOS Mojave+Visual Studio for Mac+FineUICore多图赏析!

    全面开启深色模式,今早成功升级到 macOS Mojave,下面就来欣赏一下吧. 点击图片,查看大图 1. 下载 macOS Mojave 2. 安装成功,开启深色模式 3. 来一张桌面截图 4. 开 ...

  7. ARMv7处理器各个模式之间是怎样切换的?模式切换时上下文的保存哪些是硬件在做?哪些是操作系统在做?

    1.ARM处理器各个模式之间是怎样切换的? 答:除用户模式外的其它6种模式称为特权模式,这些模式中,程序能够訪问全部系统资源,也能够随意进行处理器模式的切换.处理器模式能够通过软件控制进行切换(直接设 ...

  8. macOS Mojave 深色模式

    macOS Mojave 深色模式 mac 关闭 深色模式 https://support.apple.com/zh-cn/HT208976 https://www.apple.com/cn/maco ...

  9. iOS13禁用深色模式

    全局禁用深色模式(暗黑模式)在Info.plist中增加UIUserInterfaceStyle,值为Light,如下 <key>UIUserInterfaceStyle</key& ...

  10. 一行代码,让 VS Code 内置 PDF 阅读器变成深色模式

    使用 CSS/JS 简单实现 PDF 深色模式.

随机推荐

  1. 动态规划的状态设计 | bot 讲课の补题

    sto james1badcreeper orz. 好厉害的题,但是怎么有人补了三天才补完呢? CF1810G The Maximum Prefix 线性 dp,怎么有 bot 说题目难度在 *240 ...

  2. 使用Kali Linux进行主机发现实验

    主机发现 [实训目的] 掌握主机扫描的工作原理,学会使用ping等扫描工具,发现网络当中活跃的主机. [场景描述] 在虚拟机环境下配置4个虚拟系统"Win XP1" "W ...

  3. PoW、PoS、DPoS和PBFT简介

    1. 概览 PoW(工作量证明).PoS(权益证明).DPoS(委托权益证明)和PBFT(拜占庭容错)是区块链和分布式系统领域中常见的共识算法.下面将详细介绍这些共识算法的原理和特点: PoW(工作量 ...

  4. QT(8)-QSpinBox

    QSpinBox 1 介绍 QSpinBox 是 Qt 中的一种数字输入控件,支持整数和浮点数输入.它允许用户通过上下箭头或键盘输入来选择数字.您可以设置最小值.最大值和步长,以限制用户输入的范围.Q ...

  5. JUC并发编程学习笔记(十)线程池(重点)

    线程池(重点) 线程池:三大方法.七大参数.四种拒绝策略 池化技术 程序的运行,本质:占用系统的资源!优化资源的使用!-> 池化技术(线程池.连接池.对象池......):创建和销毁十分消耗资源 ...

  6. 如何使用Python将PDF转为Excel

    PDF文件是一种静态文档格式,通常难以编辑,而Excel则是一个灵活的表格工具.如果你需要处理PDF表格中的数据,那么将其导出为Excel文件可以大大节省工作时间和精力.Excel提供的强大数据编辑和 ...

  7. python 执行脚本,并将输出打印到文件

    转载请注明出处: 在使用 python 直接执行脚本时,执行的相关输出会打印到当前的控制台,如果想输出到指定的文件,可以采用以下几种方式: 1.在启动时,使用 > 操作符,该操作符会将输出写入到 ...

  8. uni-app框架开发app发布流程

    uni-app框架开发app发布流程 1.首先公司申请软著 步骤:申请软著详细流程 - 阿长*长 - 博客园 (cnblogs.com) 一.安卓端 1,点击发行>原生-app云打包 正式包和自 ...

  9. 报错:bs4.FeatureNotFound: Couldn't find a tree builder with the features you requ

    安装 pip3 install lxml 即可

  10. 谷歌浏览器和火狐浏览器如何查看HTTP协议?

    按F12