使用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 相关文章推荐
javascript跨域刷新实现代码
Jan 01 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
Sep 30 Javascript
Node.js中对通用模块的封装方法
Jun 06 Javascript
用C/C++来实现 Node.js 的模块(一)
Sep 24 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
Oct 13 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
原生JS实现不断变化的标签
May 22 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
Mar 13 Javascript
jQuery中each遍历的三种方法实例分析
Sep 07 jQuery
基于Vue插入视频的2种方法小结
Apr 02 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
Sep 21 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
Nov 01 Javascript
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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
用PHP和ACCESS写聊天室(五)
2006/10/09 PHP
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
php版微信js-sdk支付接口类用法示例
2016/10/12 PHP
php的常量和变量实例详解
2017/06/27 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
禁止刷新,回退的JS
2006/11/25 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
JS获取月份最后天数、最大天数与某日周数的方法
2015/12/08 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
微信小程序动态显示项目倒计时效果
2017/06/13 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
python版飞机大战代码分享
2018/11/20 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
python的sys.path模块路径添加方式
2020/03/09 Python
Python命令行参数定义及需要注意的地方
2020/11/30 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
护士长竞聘书
2014/03/31 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python
HTML基础详解(上)
2021/10/16 HTML / CSS