热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AngularCLI自定义主题

AngularCLI自定义主题(一)1.自定义主题1.创建自定义主题文件theme.scss1.1.1引入自定义主题支持和material公用的主题

AngularCLI自定义主题(一)


1.自定义主题

1.创建自定义主题文件theme.scss
1.1.1 引入自定义主题支持和material公用的主题风格

// 引入material自定义主题支持
@import '~@angular/material/theming';
// 引入material公用的主题风格
@include mat-core();

1…1.2 根据material公用的主题设定自己的主题颜色

// 自定义颜色
$my-app-primary: mat-palette($mat-blue);
$my-app-accent: mat-palette($mat-teal, A200, A100, A400);
$my-app-warn: mat-palette($mat-red);

附加:
1.my-app-primary是一个变量
2.mat-palette充当的是一个调色器的角色,mat-blue表示使用material主题风格中的blue这种颜色
3.material提供的颜色 网址:https://www.materialui.co/colors


1.1.3使用自己定义的主题颜色封装成一个自定义主题

// 利用自定义颜色组装自定义主题
$my-app-theme: mat-light-theme($my-app-primary, $my-app-accent, $my-app-warn);

附加:
1.mat-light-theme和mat-dark-theme是相对的,一个是亮系主题,一个是暗系主题,可以自由选择
2.mat-light-theme和mat-dark-theme的 $ my-app-primary、$ my-app-accent、$my-app-warm三个参数的位置可以随意替换,但是数量不能超过三个,依次对应primary、accent和warm三种状态,不写或在组件参数写错时,则取上一个样式。


1.1.4 设置主题颜色使其生效

// 设置自定义主题,使其生效
@include angular-material-theme($my-app-theme);

2.把style.css文件改为style.scss文件,并且引用其theme.scss文件

@import "./theme.scss";

上述代码,引用的路径为相对路径,需要将默认引入的materi内建主题注释掉


3.修改angular,json文件

"styles": ["src/styles.scss","src/theme.scss"],

应该修改angular-cli.json,但是6.x以后就用angular.json替代了angular-cli.json,所有不用纠结于此



2.自定义主题包含的5色调色板


  1. A primary palette: colors most widely used across all screens and
    components.常规状态下的所有屏幕样式与组件样式
  2. An accent palette: colors used for the floating action button and
    interactive elements.鼠标浮于上方或激活状态
  3. A warn palette: colors used to convey error state.表示错误状态
  4. A foreground palette: colors for text and icons.字体与按钮
  5. A background palette: colors used for element backgrounds.元素背景

3.Input和AutoComplete控件自定义主题

Input组件的主题是根据自定义主题中进行变化的,修改$my-app-theme来修改input主题。

/*引入material自定义主题支持*/
@import '~@angular/material/theming';
/*引入material公用的主题风格*/
@include mat-core();/* 自定义颜色*/
/*主调色板中:在所有屏幕和组件中使用最广泛的颜色*/
$my-app-primary: mat-palette($mat-pink,800);
/*重音调色板:用于浮动按钮和交互式原色的颜色*/
$my-app-accent: mat-palette($mat-teal,600);
/*警告调色板:用于传达错误状态的颜色*/
$my-app-warn: mat-palette($mat-red,700);
$my-app-warn: mat-palette($mat-red,600);
$candy-app-theme: mat-light-theme($candy-app-primary, $candy-app-accent);
@include angular-material-theme($my-app-theme);

在这里插入图片描述


4.Checkbox控件自定义主题

$my-chekbox-primary : mat-palette($mat-yellow,600);
$my-chekbox-accent : mat-palette($mat-blue,600);
$my-chekbox-warm : mat-palette($mat-pink,600);
$my-app-theme: mat-light-theme($my-chekbox-primary, $my-chekbox-accent,$my-chekbox-warm);
@include mat-checkbox-theme($my-app-theme);

CheckBox控件默认用color属性来更改主题颜色,默认情况下,CheckBox使用主题的accent颜色,可以将其更改为primary和warm
默认使用accent,可以通过color进行更改


5.Datepicker控件自定义主题

与Input控件相同,
@include angular-material-theme($my-app-theme);
来控制主题颜色


6.Radio控件自定义主题

$my-radio-primary : mat-palette($mat-yellow,600);
$my-radio-accent : mat-palette($mat-blue,600);
$my-radio-warm : mat-palette($mat-pink,600);
$my-radio-theme: mat-light-theme($my-radio-primary, $my-radio-accent,$my-radio-warm);
@include mat-radio-theme($my-radio-theme);

Radio控件默认用color属性来更改主题颜色,默认情况下,Radio使用主题的accent颜色,可以将其更改为primary和warm


7.Select控件自定义主题

与Input控件相同,
@include angular-material-theme($my-app-theme);
来控制主题颜色


8.Slider控件自定义主题

$my-slider-primary : mat-palette($mat-yellow,600);
$my-slider-accent : mat-palette($mat-blue,600);
$my-slider-warm : mat-palette($mat-pink,600);
$my-slider-theme: mat-light-theme($my-slider-primary, $my-slider-accent,$my-slider-warm);
@include mat-slider-theme($my-slider-theme);

Slider控件默认用color属性来更改主题颜色,默认情况下,Slider使用主题的accent颜色,可以将其更改为primary和warm


9.SliderToggle控件自定义主题

Slider Toggle控件默认用color属性来更改主题颜色,默认情况下,Slider Toggle使用主题的accent颜色,可以将其更改为primary和warm。


10. ToolBar控件自定义主题

$my-toolbar-primary: mat-palette($mat-yellow,800);
$my-toolbar-accent: mat-palette($mat-yellow,600);
$my-toolbar-warm: mat-palette($mat-blue,600);
$my-toolbar-theme: mat-light-theme($my-toolbar-primary,$my-toolbar-accent,$my-toolbar-warm);
@include mat-toolbar-theme($my-toolbar-theme);

mat-toolbar可以使用color属性更改颜色。默认情况下,工具栏使用基于当前主题(浅色或深色)的中性背景色。这可以改变
‘primary’,‘accent’或’warn’。


在ToolBar中如果想要把两边的元素放在两侧,可以使用flex

Custom ToolbarSecond Lineverified_userThird Linefavoritedelete

.example-icon {padding: 0 14px;
}.example-spacer {flex: 1 1 auto;
}

在这里插入图片描述


11.为组件定制自定义主题

@include mat-button-theme($my-app-theme);

@include mat-checkbox-theme($my-app-theme);

@include mat-radio-theme($my-app-theme);

@include mat-slider-theme($my-app-theme);

@include mat-slide-toggle-theme($my-app-theme);

@include mat-toolbar-theme($my-app-theme);

@include mat-stepper-theme($my-app-theme);

@include mat-tabs-theme($my-app-theme);

@include mat-button-toggle-theme($my-app-theme);

@include mat-menu-theme($my-app-theme);

等等…


新手小白一枚,如有错误请多多指教



推荐阅读
  • C# WPF 打字射击游戏开发
    介绍了一个基于C#和WPF技术的简单打字射击游戏的实现方法,包括字母的生成、移动、消除以及基本的游戏界面设计。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 本文介绍 Java 中如何使用 Year 类的 atMonth 方法将年份和月份组合成 YearMonth 对象,并提供代码示例。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • Logback使用小结
    1一定要使用slf4j的jar包,不要使用apachecommons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~importorg.slf ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • QNX 微内核(procnto-instr)的监测版本内置了高级跟踪与分析工具,能够实现实时系统监控。该模块适用于单处理器及多处理器系统。 ... [详细]
  • 使用DetailsView控件实现数据分页显示
    本文介绍了如何利用DetailsView控件结合数据源,在ASP.NET页面中实现数据的分页显示功能。 ... [详细]
author-avatar
总会有办法的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有