Angular Material主题配置

前言

Angular Material是基于metarial design 的angular UI.当我们使用Material的时候,自然而然的就需要去使用它的主题颜色。这个时候我们就得选择自己配置还是使用它的默认主题。注意:在使用Angular Material的时候请先引入(angular-material.css)、(angular.min.js、angular-animate.js、angular-aria.js、angular-material.js)。

默认调色板

在介绍Material的默认主题是先介绍一下它的默认调色板:

red, pink, purple, deep-purple,indigo, blue, light-blue, cyan, teal,green, light-green, lime, yellow, amber,orange, deep-orange, brown, grey, blue-grey

直接贴代码:

js:

var app = angular.module(‘myApp‘,[‘ngMaterial‘]);
app.config(function($mdThemingProvider,$mdIconProvider){
    $mdThemingProvider.theme(‘default‘)
        /*括号内使我们定义的颜色,这些颜色必须是调色板中有的才可以*/
        .primaryPalette(‘pink‘)
        .accentPalette(‘orange‘)
        .warnPalette(‘red‘);
});

  

 html:

<div layout="row" flex>
    <md-button class="md-raised md-primary">Click</md-button>
    <md-button class="md-raised md-accent">Click</md-button>
    <md-button class="md-raised md-warn">Click</md-button>
</div>

 效果:

默认主题是特别简单的,就简单介绍这些了。

扩展现有调色板

扩展现有调色板,顾名思义就是在Angular Material默认的调色板上去扩展,我们可以使用$mdThemingProvider.extendPalette去扩展现有的调色板,这里以红色为例:

js:

var app = angular.module(‘myApp‘,[‘ngMaterial‘]);
    app.config(function($mdThemingProvider,$mdIconProvider){
        /*对red默认调色板进行扩展*/
        var ysRed = $mdThemingProvider.extendPalette(‘red‘,{
            ‘100‘:‘#fda8a8‘,
            ‘300‘:‘#fc8080‘,
            ‘500‘:‘#e84141‘,
            ‘A100‘:‘#f52f2f‘
        });
        $mdThemingProvider.definePalette(‘ysRed‘, ysRed);       /*将扩展的调色板引入*/

        $mdThemingProvider.theme(‘default‘)
                .primaryPalette(‘ysRed‘,{
                    ‘default‘:‘500‘,/*默认颜色*/
                    ‘hue-1‘:‘100‘,
                    ‘hue-2‘:‘300‘,
                    ‘hue-3‘:‘A100‘,
                    /*ysRed的子颜色*/
                });
    });

 html:

<div layout="row" flex layout-align="center center">
    <md-button class="md-raised md-primary">Click</md-button>
    <md-button class="md-raised md-primary md-hue-2">Click</md-button>
    <md-button class="md-raised md-primary md-hue-2">Click</md-button>
    <md-button class="md-raised md-primary md-hue-3">Click</md-button>
</div>

 显示效果:

细心的同学已经发现了,为什么按钮中的字颜色不一样,而我们并没有引入新的css样式,这是因为在Material中默认的颜色调色板对于[50,100,200,300,400,A100]是采用暗色显示,其他这是采用亮色显示,当然我们也可以去重新定义它。

自定义调色板

当然某些时候可能扩展现有的调色板并不能满足我们的某些项目,这个时候我们就需要自定义一个或者多个调色板。

js:

var app = angular.module(‘myApp‘,[‘ngMaterial‘]);
    app.config(function($mdThemingProvider,$mdIconProvider){

        /*引入自定义调色板*/
        $mdThemingProvider.definePalette(‘ysRed‘,{
            ‘50‘: ‘fee8eb‘,
            ‘100‘: ‘fedae0‘,
            ‘200‘: ‘fdced5‘,
            ‘300‘: ‘fcc2ca‘,
            ‘400‘: ‘fcb4bf‘,
            ‘500‘: ‘faa6b2‘,
            ‘600‘: ‘fd91a1‘,
            ‘700‘: ‘fd8294‘,
            ‘800‘: ‘fe7589‘,
            ‘900‘: ‘fc637a‘,
            ‘A100‘: ‘fc4b66‘,
            ‘A200‘: ‘f93e5a‘,
            ‘A400‘: ‘fa2c4b‘,
            ‘A700‘: ‘fa1839‘,
            /*注意:此处必须设定全->14种颜色*/

            /*设置默认显示为亮色显示*/
            ‘contrastDefaultColor‘: ‘light‘,
            /*设置暗色显示的颜色,可以为undefined*/
            ‘contrastDarkColors‘: [‘50‘, ‘100‘, ‘200‘, ‘300‘, ‘400‘, ‘500‘],
            /*当上面默认设定为亮色显示,此处就为undefined*/
            /*反之则可以类似上面暗色显示设定去设定*/
            ‘contrastLightColors‘: undefined
        });
        $mdThemingProvider.theme(‘default‘)
                .primaryPalette(‘ysRed‘,{
                    ‘default‘:‘600‘,
                    ‘hue-1‘:‘50‘,
                    ‘hue-2‘:‘500‘,
                    ‘hue-3‘:‘A700‘
                })
    })

html:

<div layout="row" flex layout-align="center center">
    <md-button class="md-raised md-primary">Click</md-button>
    <md-button class="md-raised md-primary md-hue-1">Click</md-button>
    <md-button class="md-raised md-primary md-hue-2">Click</md-button>
    <md-button class="md-raised md-primary md-hue-3">Click</md-button>
</div>

 效果显示:

Angular Material的主题配置介绍就到这里,如果可以的话可以到它的官网上去学习它的使用,很好的哦!

时间: 2024-10-12 16:21:50

Angular Material主题配置的相关文章

Angular Material 的设计之美

前言 Angular Material 作为 Angular 的官方组件库,无论是设计交互还是易用性都有着极高的质量.正如官方所说其目的就是构建基于 Angular 和 TypeScript 的高质量组件库. 官方列举了如下几点来解释"高质量"的含义. 国际化和可访问性,以便所有用户都可以使用. 不会让开发人员感到困惑的简单 API. 在各种各样没有 bug 的用例中按预期行事. 通过单元测试和集成测试更好地测试行为. 可在 Material Design 规范的范围内进行定制. 将性

ym—— Android 5.0学习之使用Material主题

前言 创建完模拟器了,我想大家已经迫不及待的想开发Android 5.0的项目了, 看完这篇后我们将可以自定义Material主题了~! 新的material主题提供了什么? 可以让你设置调色板的系统控件. 为控件(设计的)触摸反馈动画. Activity过渡动画 我们来看一下Android给我提供了多少Material的主题吧~! 看来给我不少常用的主题,但是这些主题远远满足不了我大佬们的需求~!至于为什么,我想大家都懂得. 让我们来自定义Material主题吧 根据官方提供图片提示的来自定义

Qt Creator 黑色主题配置

可能是一个习惯了吧,我个人比较喜欢在黑色主题的环境下进行编程.黑色主题对眼睛稍微友好一点,看起来也不是那么low.这里给出QtCreator的黑色主题配置方案. 如果是最新的Creator3.3+的版本,本身就自己带一个黑色的主题方案:工具==>选项==>环境 配置完了大概是这个样子,但是文字没有改变,下面配置文字的颜色: 还是在选项里面==>文本编辑器==>配色方案,在这里选择一个自己喜欢的就行了.另外我这里有一个VS2013的配色方案的插件.喜欢的可以下载.下载后将放到vs20

Angular Material串串学客户端开发 2 - Node.js模块加载机制Require()

题外话解一下博客标题,因为第一篇文章评论中,有人质疑离题很远,说了半天和Angular Material没有半毛关系.其实我的的中心在后半句<串串学客户端开发>. require() 不要把这里的Require()和RequireJS混为一谈.不过有意思的是,Typescript的模块定义,甚至同时支持这两种模块机制. 导入和使用外部模块,只是简单的一句require(),看看angular/material/docs下的编译文件gulpfile.js的代码片段.对模块导入和使用有个直观的感觉

Python背景色与语法高亮主题配置

使用python idle的人恐怕都无法忍受默认的白色背景,及其语法高亮主题. 大家更倾向于使用黑色背景. 用户目录 的.idlerc 目录: 下面的各个系统下对应的该文件的位置: 在Linux系列系统下路径为(~表示用户目录): ~/.idlerc/ 在Windows XP下路径为: C:/Documents and Settings/<用户名>/.idlerc/ 在Windows 7下路径为: C:/Users/<用户名>/.idlerc/ 在window下,可以直接在运行框中

Python 背景色与语法高亮主题配置

使用python idle的人恐怕都无法忍受默认的白色背景,及其语法高亮主题. 大家更倾向于使用黑色背景. 下面介绍Obsidian, Desert, 和Tango三种主题配置 在 用户目录 的.idlerc 目录下新建名为 config-highlight.cfg 文件,并加入如下内容 [tango] definition-foreground = #fce94f error-foreground = #fa8072 string-background = #2e3436 keyword-fo

Android(Lollipop/5.0) Material Design(三) 使用Material主题

官网地址:https://developer.android.com/intl/zh-tw/training/material/theme.html 新的Material主题提供了: 系统Widgets可设置它们的调色板 系统Widgets的触摸反馈动画 Activity的过渡动画 您可以自定义Material主题,根据你的品牌标识,用一个调色板来控制. 可以使用主题属性来为操作栏和状态栏着色,如图所示: Material主题的定义: @android:style/Theme.Material

Angular问题03 @angular/material版本问题

1 问题描述 应用使用 angular4在使用@angular/material时,若果在导入模块时使用mat开头,就会报错. 2 问题原因 @angular/material版本出现问题,@angular/material 从版本5开始就必须要angular5的核心依赖:想要在angular5之前版本中的应用中使用@angular/material,要么更改@angular/material的版本(降低版本),例如:cnpm i --save @angular/[email protected

(Angular Material)用Autocomplete打造带层级分类的DropDown

效果如下图 代码实现 1.导入模块 import {MatAutocompleteModule} from '@angular/material/autocomplete'; @NgModule({   imports:[       MatAutocompleteModule    ] }) 2.编写List内容 this.memberNameList = [ { onOffDist: 'オン', items: ['丁1', '徐2', '僑3'] }, { onOffDist: 'オフ',