我创建了一个新的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。如果有人能帮我,我会非常感激的!
这里有一个关于如何定义你自己的主题的非常描述性的指导(但是你绝对应该查看@br.julien上面发布的链接):
注意:如果您很匆忙,只需向下滚动到这个答案的底部就可以获得整个源代码。
>
.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();
然后,为应用程序定义一些变量(primary
、accent
以及可选的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 设计中使用的常量包含了通用的背景色,前景色,文字颜色。 开发者在配置文件中定义变量,在开发自身控件时使用,使得更换主题变得非常