Concis组件库 | 暗黑模式设计

简介: Concis已开工半年时间,开源免费,欢迎大家体验、一起折腾。你可以通过以下方式来支持作者。

您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~

写在前面

自上文发布以来,作者收到了很多的私信,也很高兴。

组件库设计 | React组件库Concis开源探索过程中的一些心路历程

大致内容有都是对作者的鼓励,心中十分感激,同时Concis收到了很多的pr,贡献者也突破了5个...至少作者不会写着写着突然有一种迷迷糊糊很迷茫的感觉了,这点非常开心。

作者不断的在思考下一步Concis该做些什么,简单参考了一些成功的项目,最终花了三天时间做了暗黑模式。

组件库相关

Concis已开工半年时间,开源免费,欢迎大家体验、一起折腾。你可以通过以下方式来支持作者。

  1. 给Concis点star,证明作者花的时间和汗水的值得的。
  2. 给Concis发pr提issue,修改或提出你认为不足不好的地方,帮助Concis成长。

其实作者刚开始一段时间是比较累的,因为并没有什么关注,同时是一个人,最近一段时间其实好很多了,因为社区的力量以及Concis不断完善,受到了一些支持,也给作者加了一把油。

Github

线上文档

暗黑模式

什么是暗黑模式?在我们翻阅一些网页的时候,白色的主色调会让人觉得刺眼,尤其是在夜晚的时候,这时候暗黑模式就有作用了。它可以大大的增加可读性,减轻眼睛的疲劳感。并且暗色的主题总感觉会有一种很高端的感觉,如果你经常喜欢逛github,那当暗黑模式肯定是再熟悉不过了...

先看一下Concis暗黑模式的效果吧。

天黑,请闭眼。

image.png

天亮,请打工。

image.png

如果你不喜欢Concis内置的主题色,你可以将暗黑模式和自定义主题结合,就像这样:

image.png

对于优先级,自定义主题色的优先级会高于暗黑主题的颜色,当然你可以通过全局className,组件局部className,来深度自定化一些自己所需要的业务样式。

自定义主题实现文章可参考:

五分钟时间告诉你React配置全局主题色是怎么实现的

配置方法

在下载配置完成Concis的情况下:

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import {
   
    GlobalConfig } from 'concis/web-react';


const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <GlobalConfig darkTheme globalColor="orange">
      <App />
    </GlobalConfig>
  </React.StrictMode>,
);

其中darkTheme代表开启暗黑模式,globalColor代表自定义主题色。

推荐样式注入

Concis内置了贴合暗黑模式的项目背景色和文本色:

@import 'concis/web-react/style/compiled-colors.less';
@import 'concis/web-react/style/index.css';


.App {
   
   
  color: @dark-theme-text-color;
  background: @dark-theme-background;
}

实现思路

Concis依靠主题前缀类名控制组件的模式,如concis-dark-button代表暗黑模式按钮,concis-button代表普通模式按钮,给每一款组件提供两份主题样式即可,主要的工程还是在自定义主题色那里去完成的,因为子组件需要借助GlobalConfig的传参,才可以去判断主题。

结束语

希望这次暗黑模式的特性可以让大家眼前一亮,最近作者也是一个人在开发暗黑模式同时去review多个小伙伴的pr,顺便改一下小伙伴代码中不足的地方,后期考虑继续完善组件库,因为目前组件数量还不是很多(40+),也希望大家可以给Concis一些关注和支持。

开源不易,如果文章内容对你有帮助,请支持一下,非常感谢。

目录
相关文章
|
Kubernetes 监控 Docker
Docker 容器生命周期:创建、启动、暂停与停止
Docker 容器生命周期:创建、启动、暂停与停止
1721 0
|
机器学习/深度学习 人工智能
一键生成PPT的AI工具介绍
一键生成PPT的AI工具介绍
2429 0
|
10月前
|
负载均衡 Java 应用服务中间件
Gateway服务网关
Gateway服务网关是微服务架构的统一入口,具备路由转发、权限控制、限流及负载均衡等核心功能。基于SpringCloud Gateway可实现高性能响应式编程,支持丰富的断言与过滤器工厂,并可通过全局过滤器扩展自定义逻辑,有效解决跨域等问题,是微服务治理的关键组件。
564 0
|
10月前
|
分布式计算 算法 安全
【多微电网】计及碳排放的基于交替方向乘子法(ADMM)的多微网电能交互分布式运行策略研究(Matlab代码实现)
【多微电网】计及碳排放的基于交替方向乘子法(ADMM)的多微网电能交互分布式运行策略研究(Matlab代码实现)
391 2
|
Java
【Java异常】Error:(30, 62) java: 程序包com.sun.org.apache.xerces.internal.impl.dv.util不存在
【Java异常】Error:(30, 62) java: 程序包com.sun.org.apache.xerces.internal.impl.dv.util不存在
2150 0
|
存储 固态存储 NoSQL
数据存储策略——lsm-tree
数据存储策略——lsm-tree
数据存储策略——lsm-tree
|
人工智能 运维 NoSQL
云栖大会|多模+一体化,构建更高效的AI应用
在2024年云栖大会「NoSQL数据库」专场,多位知名企业和阿里云瑶池数据库团队的技术专家,共同分享了阿里云Lindorm、Tair、MongoDB和MyBase的最新进展与实践。Tair推出Serverless KV服务,解决性能瓶颈和运维难题;Lindorm助力AI和具身智能时代的多模数据处理;MongoDB云原生化提升开发效率;MyBase One打破云边界,提供云边端一体化服务。这些技术进展和最佳实践,展示了阿里云在NoSQL数据库领域的创新能力和广泛应用前景。
|
网络协议 网络架构
OSPF中的Not-So-Stubby Area (NSSA):概念、配置与应用
OSPF中的Not-So-Stubby Area (NSSA):概念、配置与应用
795 3
|
5G UED
5G NR中的寻呼过程是如何工作的?
【8月更文挑战第31天】
922 0
|
编解码
西门子S7-200 SMART中断及中断指令概述
上篇文章我们学习了西门子S7-200 SMART如何使用存储卡复位CPU到出厂设置、固件升级和程序传输,本篇我们来介绍西门子S7-200 SMART的中断及中断指令。中断就是中止当前正在运行的程序,去执行为立刻响应的信号而编写的中断服务程序,执行完毕后再返回原来中止的程序并继续执行。西门子S7-200 SMART CPU最多支持38个中断事件,其中8个为预留。为了便于识别,系统给每一个中断事件都分配了一个编号,又称中断事件号。
西门子S7-200 SMART中断及中断指令概述