使用Angular material主题定义自己的组件库的配色体系


Posted in Javascript onSeptember 04, 2019

本期为Angular系列的第一篇文章,我会从这里搭建Angular sample项目、组件库、主题、然后每个组件等。使之成为一个比较通用的组件库系列文章,目的有二:

1、自己在写系列文章过程中不断夯实基础、不断学习补缺;

2、分享给一些不熟悉angular及自定义组件的同学,使之快速上手并提高。

1. 使用Angular CLI命令行工具生成一个Angular sample的项目:这里添加了一个optional的参数--style=scss,是为了后面使用angular material的themes。待命令完成就生成了一个可npm start运行的标准的angular项目,其中workspace为./quick-pai目录。

ng n quick-pai --style=scss

2. 因为我们是要创建一个组件库,所以我们就依托这个标准的angular sample项目的workspace创建一个angular library项目,利用angular cli命令行:这里使用了--prefix=x可选参数,在后面创建组件的时候统一使用x前缀,如“x-button”等。执行为这个命令后我们的项目结果如下:

ng g library x-controls --prefix=x

使用Angular material主题定义自己的组件库的配色体系

3. 添加主题文件夹theme到组件库项目中(使用了angular material的主题,但是这里并没有安装angular material完整组件库,只是参考使用了他的主题themes的思想,之所以这么做显而易见,一来安装了它的库太大,二来我们是学习如何写angular组件及主题,如果安装了它,我们这个系列就不用写了,大家看angular material的源码好了,它的源码还是有点复杂的,所以angular系列文章只会借鉴它,并不会复杂到它的程度,一来本人水平有限,二来没有精力~-~)。主题文件夹截图如下:包括一些core的非主题相关的东西,这里姑且不管它是干什么用的,大概就是只有组件才会用到,当你用组件的时候引入就好了;另外这里有一个调色板文件_palette.scss,还有一个主题的helper方法的文件_theming.scss,这个文件会定义一些function来拿到调色板里面具体的颜色、定义一些主题等等;还有一个给组件库的组件引入主题的文件_all-theme.scss;还有一个就是一些预置的主题。基本上就这些,截图如下:

使用Angular material主题定义自己的组件库的配色体系使用Angular material主题定义自己的组件库的配色体系

4. 这样一个组件库的主题框架就搭建起来了,我们就可以在我们的angular sample项目中引入并使用我们的组件库了,使用组件库就必须要npm安装,这里先不考虑npm,因为我们的组件库项目是依托这个angular sample项目的,所以我们直接引入就好了,后面会讲如何npm打包发布。

4.1引入组件库:

使用Angular material主题定义自己的组件库的配色体系

4.2 引入主题文件:

使用Angular material主题定义自己的组件库的配色体系

4.3 然后就可以使用组件了,这里先用创建组件库时候的一个自动生成的组件为例子,截图如下:

使用Angular material主题定义自己的组件库的配色体系

使用Angular material主题定义自己的组件库的配色体系

使用Angular material主题定义自己的组件库的配色体系

可以看到我们的组件成功加载了,并且主题也加上去了,light和dark主题都work,剩下的就是如何使用主题,如何编写依托主题的组件了。等等,我们的angular sample项目如果要使用这些主题色配置呢,很简单!在我们的angular sample的app文件夹下面同样新增一个theme的文件夹,下面新建一个_all-theme.scss文件,使用截图如下:我们可以看到app component的主题也应用上去了,通过global定义的$theme传入到_app-theme.scss文件中,然后在style.scss中@include进入,这样我们的angular sample就同样使用了这一套主题了。这里我们使用的是预置的主题定义,可以考虑一下,如果预置的不符合,我们如何自定义一套主题色来符合项目的需求,这里就不说了,自行思考。

使用Angular material主题定义自己的组件库的配色体系使用Angular material主题定义自己的组件库的配色体系使用Angular material主题定义自己的组件库的配色体系使用Angular material主题定义自己的组件库的配色体系

好了,到这里基本上项目框架搭建完整,后面会一步步讲解如何定义组件。

项目github地址: github.com/KevinZhang1…

总结

以上所述是小编给大家介绍的使用Angular material主题定义自己的组件库的配色体系,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
Mar 11 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
Dec 16 Javascript
js读取json的两种常用方法示例介绍
Oct 19 Javascript
jquery隔行换色效果实现方法
Jan 15 Javascript
JS判断图片是否加载完成方法汇总(最新版)
May 13 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
Sep 26 Javascript
webpack项目调试以及独立打包配置文件的方法
Feb 28 Javascript
spirngmvc js传递复杂json参数到controller的实例
Mar 29 Javascript
浅谈Layui的eleTree树式选择器使用方法
Sep 25 Javascript
VuePress 中如何增加用户登录功能
Nov 29 Javascript
Jquery ajax书写方法代码实例解析
Jun 12 jQuery
vue-loader中引入模板预处理器的实现
Sep 04 #Javascript
解决layer图标icon不加载的问题
Sep 04 #Javascript
JSX在render函数中的应用详解
Sep 04 #Javascript
关于layui的动态图标不显示的解决方法
Sep 04 #Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 #Javascript
简单谈谈javascript高级特性
Sep 04 #Javascript
在layui中使用form表单监听ajax异步验证注册的实例
Sep 03 #Javascript
You might like
用PHP读取RSS feed的代码
2008/08/01 PHP
理解php原理的opcodes(操作码)
2010/10/26 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
php实现的zip文件内容比较类
2014/09/24 PHP
php实现数组纵向转横向并过滤重复值的方法分析
2017/05/29 PHP
PHP面向对象之事务脚本模式(详解)
2017/06/07 PHP
Js callBack 返回前一页的js方法
2008/11/30 Javascript
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
python opencv实现切变换 不裁减图片
2018/07/26 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
Python 将json序列化后的字符串转换成字典(推荐)
2020/01/06 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
中专生学习生活的自我评价分享
2013/10/27 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android