YaliEditor的主题风格的制作流程

文章目录

  • YaliEditor的主题风格的制作流程
    • YaliEditor介绍
    • 夜间模式
    • 日间模式
    • 主题切换的方法
    • YaliEditor的主题风格实现

YaliEditor介绍

YaliEditor支持两种主题风格,一常规的light模式,一种是夜间模式。

YaliEditor是一款轻量级的实时渲染markdown编辑器,支持markdown纯代码模式,SV分屏模式,和IR实时渲染模式。支持图片导出和pdf和html导出的轻量级markdown编辑器。

项目地址WenyaoL/YaliEditor: 一个简易的实时渲染markdown编辑器 (github.com)

夜间模式

日间模式

主题切换的方法

在element-ui中就有主题功能了,让我们来分析一下,element-plus的主题功能是如何制作的。

暗黑模式 | Element Plus (element-plus.org)通过element-plus的方法,可以知道element-plus是通过在html上添加一个class进行主题切换的,其目的是为了引入一个夜间模式的变量表。

<html class="dark"><head></head><body></body>
</html>// main.ts
// 如果只想导入css变量
import 'element-plus/theme-chalk/dark/css-vars.css'

查看一下element-plus/theme-chalk/dark/css-vars.css到底是什么内容,没错他就是一张变量表,定义了各种css变量,通过改变变量是值,从而改变组件的主题颜色

html.dark{color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222c;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2b1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2b1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, 0.36),0px 8px 20px rgba(0, 0, 0, 0.72);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, 0.72);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, 0.72);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, 0.72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;--el-mask-color:rgba(0, 0, 0, 0.8);--el-mask-color-extra-light:rgba(0, 0, 0, 0.3)
}
html.dark .el-button{--el-button-disabled-text-color:rgba(255, 255, 255, 0.5)
}
html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay)
}
html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a
}

可以通过浏览器的开发者工具查看到组件引用的变量,从而通过达到通过添加样式从而切换主题的功能,只需要定义不同的变量表即可,然后再html标签上更改其class属性,就可以做到主题的切换功能。

YaliEditor的主题风格实现

现在我们只需要实现定义一种变量表,然后在YaliEditor的个个主键中引用该变量表的变量,当我们需要切换主题的时候,只需要更改HTML标签的class即可。

下面的为夜间模式下定义的CSS变量,通过CSS的var()方法即可使用上下文中的变量,十分方便管理和做主题切换。

html.dark{--yali-background-color:#333333;--yali-text-color:#CFD3DC;--yali-md-focus-before-color:#C8C8C8;--yali-selection-color:#CFD3DC;--yali-selection-background-color:#4183C4;--yali-pre-background-color:#282C34;--yali-blockquote-color:#777777;--yali-blockquote-border-color:#409EFF;--yali-font-before-color:#C7C5C5;--yali-code-font-color:#e83e8c;--yali-code-font-background-color:#424243;--yali-code-font-border-color:#636466;--yali-bold-font-color:#e83e8c;--yali-underline-font-color:#e83e8c;--yali-italic-font-color:#e83e8c;--yali-deleteline-font-color:#e83e8c;--yali-outline-item-hover-background-color:#262727;--yali-scrollbar-thumb-background-color:#282C34;--yali-scrollbar-track-background-color:#333333;
}

YaliEditor的主题风格的制作流程相关推荐

  1. 制作数据可视化大屏时,可以不再使用千遍一律的主题风格

    "马上年底了,项目快验收了是吧"同事小陈说道. 我激动的说:"是啊,这次验收了,能为公司带来很大的现金流,项目团队也能得到很大一笔分成!就是不知道能不能顺利完成.&quo ...

  2. 小程序发布上线流程_家居小程序傻瓜式制作流程

    近几年"小程序+"成为很多服务和零售商家的选择,比如点餐小程序.电商购物小程序.家政预约小程序--借助于小程序的便捷性,很多传统行业商家获得了新的商机,家居行业也是如此. 传统家居 ...

  3. h5 登录页面_一份写给新手的微信H5页面制作流程介绍

    作为一种非常受欢迎的营销推广方式,H5页面具有交互性好.易于传播.感官体验丰富.利于效果追踪等优势.由于H5页面的传播主阵地是微信,所以很多刚接触H5页面的新手经常误以为H5页面只能在微信中传播,也就 ...

  4. 网站制作流程及界面交互设计研究探讨

    很多朋友希望,我能把我做网站的一些流程及经验跟大家分享一下,最近刚好做一次内部培训,所以稍微整理了一下,这些只是针对网页初学者,具有一定平面设计水平的人,对HTML不是很了解,这里有很多都是一些我个人 ...

  5. 网吧xp母盘制作流程+QQDLL+系统文件DLL修改

    xp母盘制作流程+QQDLL+系统文件DLL修改 天下网盟论坛收集 1 分区: 40G ( C:4G D:3G E:3G F:30G) 80G (c:4 D:3 e:3 f:70) 2 安装操作系统: ...

  6. Android系统开发 默认壁纸的定制 主题风格的开发及定制 DDMS 常用adb 命令 抓取Log

    Android系统开发             Android系统本身的功能在增加和完善过程中.在系统开发中如果涉及系统API的改动,则一定要慎重,系统的API的改动可能涉及Android应用程序的不 ...

  7. WEB的周期制作流程

    目录: WEB的周期制作流程 UML辅助网站规划和设计指南 专业信息网站制作规范 网页制作规范及流程 网站技术规范 技术概念详解 网页设计的八种陋习 如何为网上广告做标题 网站规划书浅析 网站策划书参 ...

  8. 网站制作流程及界面交互设计

    网站制作流程及界面交互设计研究探讨 作者的blog: http://www.onling.net/blog/ 很多朋友希望,我能把我做网站的一些流程及经验跟大家分享一下,最近刚好做一次内部培训,所以稍 ...

  9. 新媒体管理师:短视频制作流程

    现在短视频市场非常火爆,一个短视频制作流程大致分为以下几个步骤: 步骤一:内容选择 自短视频发展至今,已经开始朝着垂直化.专业化的方向发展了.所以,当我们切入短视频的时候你第一个需要思考的是你要选择什 ...

最新文章

  1. padding和卷积的区别_池化、池化与卷积异同、zero-padding
  2. python正则表达式使用实例_正则表达式的基础知识,以及Python爬虫中的使用方法...
  3. linux基本项目环境搭建
  4. SQL Server表结构和数据导入到MySQL
  5. GridView 中设置某列,截取字符串加... 和 鼠标放上去字符全部显示
  6. 在安全模式下激活xp
  7. 3 django系列之Form表单在前端web界面渲染与入库保存
  8. 无偏移谷歌瓦片地址_[转]OpenStreetMap/Google/百度/Bing瓦片地图服务(TMS)
  9. Ubuntu中打开.ipynb文件
  10. npm install cracoc 老版本_npmamp;nvmamp;nrmamp;yarn常用的命令和常见的手法
  11. Android——音乐播放器完善——进度条显示当前播放进度,加可拖动进度条(未待解决完问题)...
  12. Python统计磁盘代码文件行数
  13. python opencv 找到圆点标定板所有点后通过距离找四个角点
  14. PUN☀️一、基础配置、搭建大厅程序
  15. 如何将qrc文件添加至VS
  16. 基于深度学习的以图搜图
  17. 第三篇 ME909s-821设备描述符分析
  18. [网络] 数字签名和数字证书的原理机制
  19. 青岛理工大学计算机学院王德兴,现任领导
  20. CVX使用CVXQUAD替换CVX中的log、exp等函数

热门文章

  1. java获取ftp服务器文件,java获取ftp服务器文件
  2. 使用netty创建https服务器
  3. 微信记录删除后怎么不被恢复呢?掌握这几个彻底删除的技巧!
  4. 为我的女儿小雪写的小学一年级数学练习程序
  5. 分享商品详情图片预览组件
  6. 新手用H5实现基础的echarts表格
  7. 文心一言,站在奥林匹亚
  8. 撕裂者3990x参数 撕裂者3990x配什么主板
  9. 区块链将成为电力交易价值转移的增效器!
  10. 私彩视频开奖动画直播源码内部核心技术解析及修改可增加后台操控-持续更新文章!