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一些关注和支持。

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

目录
相关文章
|
移动开发 前端开发 小程序
7 款最棒的 React 移动端 UI 组件库 - 特别针对国内使用场景推荐
优秀的 React UI 移动端组件库和模版框架,帮我们节省开发时间,提高开发效率,统一设计语言。更棒的是内置的功能复杂,我们自己很难处理的常用组件,比如表格、表单、富文本编辑器、时间日期选择器、实时拖拽组件等,再进一步,还有帮我们把组件的轮子装好的 React admin 后台管理系统。本文推荐 7 款适用于中文使用者习惯的开源 React 移动端 UI 库,特别针对国内使用场景推荐。
4824 0
|
2月前
|
前端开发 搜索推荐 开发者
【Flutter前端技术开发专栏】Flutter中的自定义主题与暗黑模式
【4月更文挑战第30天】本文介绍了如何在Flutter中自定义主题和实现暗黑模式。通过`ThemeData`类定义应用的外观,包括颜色、字体和样式。示例展示了如何设置主色、强调色及文本、按钮主题。暗黑模式可通过`darkTheme`属性启用,结合`ThemeData.dark()`方法定制。利用`MediaQuery`监听系统亮度变化,动态调整暗黑模式状态。Flutter的这些特性有助于开发者创建独特且用户友好的界面。
【Flutter前端技术开发专栏】Flutter中的自定义主题与暗黑模式
|
11月前
|
前端开发 JavaScript
【React工作记录八十】 一步步教你用taro封装一个公司库的下拉组件
【React工作记录八十】 一步步教你用taro封装一个公司库的下拉组件
81 0
|
2月前
|
存储 设计模式 数据库
C++ Qt开发:StandardItemModel数据模型组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍`StandardItemModel`数据模型组件的常用方法及灵活运用。 `QStandardItemModel` 是 Qt 中用于存储标准项数据的模型类之一,它继承自 `QAbstractItemModel` 类。这个模型提供了一种灵活的方式来组织和管理数据,适用于各种视图类(比如 `QTreeView`、`QListView`、`QTableView` 等)。该组件是标准的以项数据为单位的基于M/V模型的
67 0
C++ Qt开发:StandardItemModel数据模型组件
|
11月前
|
JavaScript 前端开发 C#
如何将现有的Blazor项目的主题切换写的更好看?
如何将现有的Blazor项目的主题切换写的更好看?
80 1
|
设计模式 前端开发 JavaScript
组件库设计 | React组件库Concis开源探索过程中的一些心路历程
本文可能无法从细节层面教会你如何做好一个开源组件库,作者也在不断探索和学习,但是也许会对你有所启发。这篇文章既是分享,也是记录,在写这篇文章的此刻,已经是作者一拍脑袋要做一个开源项目将近半年时间了。半年前作者对于如何开发一个组件库一无所知,对于开源项目也是了解甚少,抱着什么不会学什么的态度,独自一人踏上了开源之旅。
190 2
组件库设计 | React组件库Concis开源探索过程中的一些心路历程
|
前端开发 JavaScript 物联网
React组件库Concis | 组件突破50+,移动端concis起步,新增英语文档,持续更新中...
对于不熟悉这个项目的小伙伴们做个简单的介绍,Concis是一个基于React+TypeScript开发的一款轻量级组件库,全面拥抱React生态,支持React新特性(hooks/redux)追求轻量的组件体积,简单的使用方式,最小的思维负担。
91 1
React组件库Concis | 组件突破50+,移动端concis起步,新增英语文档,持续更新中...
|
前端开发 数据可视化 搜索推荐
都 2021 了,你还在为 React 可视化组件库选型发愁吗?
都 2021 了,你还在为 React 可视化组件库选型发愁吗?
247 0
antd组件库封装43-打造自己的色彩体系
antd组件库封装43-打造自己的色彩体系
58 0
antd组件库封装43-打造自己的色彩体系
|
存储 资源调度 前端开发
搭建Vue3组件库:第十二章 使用 Monorepo 方式管理组件生态
本章介绍采用Monorepo的方式管理组件生态
956 0
搭建Vue3组件库:第十二章 使用 Monorepo 方式管理组件生态