热门标签 | 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++ ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 本文详细探讨了Java中的ClassLoader类加载器的工作原理,包括其如何将class文件加载至JVM中,以及JVM启动时的动态加载策略。文章还介绍了JVM内置的三种类加载器及其工作方式,并解释了类加载器的继承关系和双亲委托机制。 ... [详细]
  • Python3 中使用 lxml 模块解析 XPath 数据详解
    XPath 是一种用于在 XML 文档中查找信息的路径语言,同样适用于 HTML 文件的搜索。本文将详细介绍如何利用 Python 的 lxml 模块通过 XPath 技术高效地解析和抓取网页数据。 ... [详细]
  • ListView简单使用
    先上效果:主要实现了Listview的绑定和点击事件。项目资源结构如下:先创建一个动物类,用来装载数据:Animal类如下:packagecom.example.simplelis ... [详细]
  • 由中科院自动化所、中科院大学及南昌大学联合研究提出了一种新颖的双路径生成对抗网络(TP-GAN),该技术能通过单一侧面照片生成逼真的正面人脸图像,显著提升了不同姿态下的人脸识别效果。 ... [详细]
  • GoCV入门指南:配置与基础应用
    本文详细介绍了GoCV的安装配置及基本使用方法,包括如何打开摄像头、图片和视频文件。适合Golang开发者快速上手。 ... [详细]
  • 本文详细介绍了Linux系统中的进程管理函数,涵盖了获取进程ID、用户ID、创建子进程、信号处理等关键操作。通过这些函数,开发者可以更好地控制和管理进程行为。 ... [详细]
  • 本文详细介绍了虚拟专用网(Virtual Private Network, VPN)的概念及其通过公共网络(如互联网)构建临时且安全连接的技术特点。文章探讨了不同类型的隧道协议,包括第二层和第三层隧道协议,并提供了针对IPSec、GRE以及MPLS VPN的具体配置指导。 ... [详细]
  • 本文旨在探讨如何利用决策树算法实现对男女性别的分类。通过引入信息熵和信息增益的概念,结合具体的数据集,详细介绍了决策树的构建过程,并展示了其在实际应用中的效果。 ... [详细]
  • 解决Spring Boot项目创建失败的问题
    在尝试创建新的Spring Boot项目时遇到了一些问题,具体表现为在项目创建过程中的两个关键步骤出现错误。本文将详细探讨这些问题及其解决方案。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • springMVC JRS303验证 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
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社区 版权所有