当前位置: 首页 > 知识库问答 >
问题:

如何修改棱角材质主题主色

高皓
2023-03-14

我创建了一个新的angular5项目,在该项目上,我将angular material用于前端组件(https://material.angular.io/)。到目前为止一切都很好,但主要的问题是如何添加一个自定义主题。我没有在此项目上使用scss编译器,所以我所做的是将所有css组件导入到style.css中,如

@import "~@angular/material/prebuilt-themes/indigo-pink.css";
@import "~app/components/test/test.component.css";

问题是我不知道如何修改预构建的主题的底色,或者为我的主题生成另一个带有其他底色的css。如果有人能帮我,我会非常感激的!

共有1个答案

侯兴为
2023-03-14

这里有一个关于如何定义你自己的主题的非常描述性的指导(但是你绝对应该查看@br.julien上面发布的链接):

注意:如果您很匆忙,只需向下滚动到这个答案的底部就可以获得整个源代码。

>

  • 如果使用的是CSS文件,请将文件扩展名更改为.scss
  • 如果使用角度CLI,请在styles数组中将styles.css更改为styles.scss:

    "styles": [
        "styles.scss" // <- Change to this
    ]
    

    >

  • 样式的顶部导入~@Angular/Material/Theming.scss:

    @import '~@angular/material/theming';
    

    之后,在styles.scss中添加@include mat-core(),理想情况下是在导入行之后:

    @include mat-core();
    

    然后,为应用程序定义一些变量(primaryaccent以及可选的warn),然后将它们分配给一个名为mat-palette的函数:

    // I suggest that you should use another prefix, but `my-app` is fine as well
    // Primary colour
    $my-app-primary: mat-palette($mat-indigo);
    // Accent colour
    $my-app-accent: mat-palette($mat-pink, A200, A100, A400);
    

    对于所有调色板,请访问源代码(_palette.scss)。

    此外,请参阅Material.io指南中的调色板。

    接下来,为应用程序的主题定义另一个变量,并将主题包含为Angulator-Material-Theme的参数(将其放在上面定义的变量之后):

    (注意:选择以下任一选项:)

    灯光主题:

    $my-app-theme: mat-light-theme($my-app-primary, $my-app-accent);
    @include angular-material-theme($my-app-theme);
    

    黑暗主题:

    $my-app-theme: mat-dark-theme($my-app-primary, $my-app-accent);
    @include angular-material-theme($my-app-theme);
    

    你完蛋了!

    这里有一些完整的源代码供您复制:)

    styles.scss

    @import '~@angular/material/theming';
    @include mat-core();
    
    $my-app-primary: mat-palette($mat-indigo);
    $my-app-accent: mat-palette($mat-pink, A200, A100, A400);
    $my-app-theme: mat-light-theme($my-app-primary, $my-app-accent);
    
    @include angular-material-theme($my-app-theme);
    

    (哇,所有这些只需要8行代码。)

    无论如何,如果你想了解更多关于Sass的知识,请查看官方文档!

  •  类似资料:
    • 我正在使用预构建的紫绿色角材料预构建主题与.css。我想用一个白色的背景,但似乎不能改变从深灰色的背景。我尝试在index.html的body标记中删除class=“mat-app-background”,但没有影响。是否需要移动到.scss才能进行此更改? 谢谢 皮特

    • 我正在将Angular 2与角度材料一起使用,我需要创建自定义主题,以便为组件使用自定义颜色。我遵循了有角度的文档,但我无法让它运行。 到目前为止我所做的: 1.我创建了一个文件my-theme.scss: 2.我将创建的SASS文件导入styles.css 3.我在.angular cli中引用了它。样式部分中的json文件: 我在本地主机下的网站告诉我“编译失败”模块未找到:“../node_

    • 我使用的是:Angular 4.4.5@Angular/Material:2.0.0-beta.12

    • 我已经将我的SDK更新为API 21,现在备份/备份图标是一个指向左侧的黑色箭头。 我想要灰色的。我该怎么做? 例如,在Play Store中,箭头为白色。 我这样做是为了设定一些风格。我使用了作为

    • 我已经尝试了这个解决方案,并且在XML中工作得很好,但是我如何通过代码来做同样的事情呢? 事实上,我想改变编辑文本(主题:标签,文本颜色,行颜色)按一个按钮。

    • info 注:Lavas Basic 模板并不包含此功能 项目使用 vuetify 作为组件库,根据 vuetify 的实现,主题配置分为两个部分: 项目中主要使用的颜色,其中主要颜色,次要颜色的选择和使用场景可参考 material 设计中的颜色系统。 material 设计中使用的常量包含了通用的背景色,前景色,文字颜色。 开发者在配置文件中定义变量,在开发自身控件时使用,使得更换主题变得非常