- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在其他一些组件的自定义 Angular Material 主题中使用自定义调色板中的颜色。
例如,带有垫子工具栏的 div 和带边距的图标,应使用主要背景颜色进行填充。
有关主题的 Angular Material 指南说道:
The theme file should not be imported into other SCSS files. This will cause duplicate styles to be written into your CSS output.
但是在组件主题指南中,它说了以下内容:
You can consume the theming functions and Material palette variables from @angular/material/theming. You can use the mat-color function to extract a specific color from a palette. For example:
// Import theming functions
@import '~@angular/material/theming';
// Import your custom theme
@import 'src/unicorn-app-theme.scss';
// Use mat-color to extract individual colors from a palette as necessary.
// The hue can be one of the standard values (500, A400, etc.), one of the three preconfigured
// hues (default, lighter, darker), or any of the aforementioned prefixed with "-contrast".
// For example a hue of "darker-contrast" gives a light color to contrast with a "darker" hue.
// Note that quotes are needed when using a numeric hue with the "-contrast" modifier.
// Available color palettes: https://www.google.com/design/spec/style/color.html
.candy-carousel {
background-color: mat-color($candy-app-primary);
border-color: mat-color($candy-app-accent, A400);
color: mat-color($candy-app-primary, '100-contrast');
}
主题再次导入到组件中,他们从 Material 主题中提取带有函数的颜色。
我很困惑,在没有颜色输入的非 Angular Material 组件或事件 Material 组件上使用颜色的正确方法是什么?
最佳答案
现在回答这个问题已经晚了,但我也遇到了同样的问题,并花了很多时间试图弄清楚它是如何工作的。主要问题是:
我在 Stackblitz 上发现了两个有用的示例:
但是,我需要一些不同的东西:
This post on GitHub对我帮助最大。 This discussion对于从 CSS 切换到 SCSS 也很有帮助。
对于遇到同样问题的任何人,我想分享我的解决方案,以便您可以在一个地方获得所有内容:
<强>1。获取您的颜色定义
假设您想使用 #3F51B5 作为主要颜色,并使用另一种作为强调色。前往this site ,输入每种颜色并下载定义(选择“Angular JS 2 (Material 2)”并复制 $md-mcgpalette0: (___)
的内容。
<强>2。创建theme_variables.scss
并将其放入您的 src 目录中。
插入您刚刚下载的颜色定义。
@import "~@angular/material/theming";
$app-blue: (
50 : #e8eaf6,
100 : #c5cbe9,
200 : #9fa8da,
300 : #7985cb,
400 : #5c6bc0,
500 : #3f51b5,
600 : #394aae,
700 : #3140a5,
800 : #29379d,
900 : #1b278d,
A100 : #c6cbff,
A200 : #939dff,
A400 : #606eff,
A700 : #4757ff,
contrast: (
50 : #000000,
100 : #000000,
200 : #000000,
300 : #000000,
400 : #ffffff,
500 : #ffffff,
600 : #ffffff,
700 : #ffffff,
800 : #ffffff,
900 : #ffffff,
A100 : #000000,
A200 : #000000,
A400 : #ffffff,
A700 : #ffffff,
)
);
$app-yellow: (
// repeat for your second color
);
$app-primary: mat-palette($app-blue, 500);
$app-accent: mat-palette($app-yellow, 500);
// warn palette is optional (defaults to red).
$app-warn: mat-palette($mat-red);
// Custom Sass colors vars (will be available in all the project)
$primary: mat-color($app-primary);
$accent: mat-color($app-accent);
$warn: mat-color($app-warn);
您还可以将调色板与变量定义分离到两个不同的文件中,但我就这样保留了。
<强>3。创建theme.scss
并将其放入您的 src 目录中:
@import "~@angular/material/theming";
@import "./theme_variables.scss";
@import "./fonts/fonts.css"; // in case you have this file for your fonts
@include mat-core();
$app-theme: mat-light-theme($app-primary, $app-accent, $app-warn);
@include angular-material-theme($app-theme);
<强>4。创建styles.scss
并将其放入您的 src 目录中:
@import "./theme.scss";
// add the rest of your global styles
<强>5。更新angular.json
:
... "styles": [
"src/styles.scss",
"src/theme.scss"
] ...
<强>6。在您想要使用主题颜色的组件中,将 example.component.css 文件重命名为 .scss 并进行编辑:
@import "../../theme_variables.scss";
h1 {
color: $primary;
}
h2 {
color: $accent;
}
// put the rest of your styling
7.更新 example.component.ts
中的样式 url文件:
@Component({
selector: "example",
templateUrl: "./example.component.html",
styleUrls: ["./example.component.scss"] // <-- update the file type
})
<强>8。默认切换到scss
运行ng config schematics.@schematics/angular:component.styleext scss
为将来的新组件创建 scss 文件。
更新:如果在创建组件时仍然没有创建 scss 文件,原因可能是您必须为所有项目配置 scss 扩展。请参阅this discussion了解更多信息。对我有什么帮助:ng config projects.<projectname>.schematics.@schematics/angular:component.style scss
如果您不需要所有组件中的变量,您可以保留它们的 css 文件。每当您想在组件中使用主题颜色时,请将 css 文件更改为 scss,导入主题变量并更新组件中的 styleUrl(步骤 6 + 7)。
我对 Angular 还很陌生,也许有些事情你可以做得更好。因此,如果有人有进一步的建议,请告诉我。
关于Angular Material 自定义组件主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50070995/
我是 angular 的新手,想动态地更改 angular Material 主题,我知道如何通过制作 scss 文件来制作不同的主题,定义 3 种颜色,包括 mat 属性和功能,但后来我在 angu
我猜,是不允许在 Material 网格(嵌套网格)中放置 Material 网格吗? 有人可以确认我的假设吗? (我正在使用 Angular Material 6。) l
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我一直在 material-ui react 库中看到对名为“LeftNav ”的组件的引用(例如: Material UI - Open LeftNav / Drawer on AppBar cli
我正在使用 mat-list而且我无法在移动设备上滚动它。 它是一个 mat-nav-list,里面有一些 mat-list-item,我的列表结构类似于: dashboard
我是网络开发的新手,正在尝试使用 material-ui。我看到一些演示代码使用 withStyle,还有一些使用 withTheme。它们之间有什么区别吗?非常感谢! 最佳答案 我认为接受的答案没有
我正在研究 Material 设计和 Material 设计中描述的一些指南。 我似乎遗漏了一个部分(不确定是否应该涵盖),即 Google 如何处理 Fieldsets。该文档确实涵盖了各个输入,但
我正在根据到目前为止所学的知识使用 Material 设计创建一个示例应用程序,但我注意到 Material 设计的开箱即用字体对于不同的组件是不同的。对于 Material 对话框中的 Materi
我确实有角度 6,尽管 ng generate @angular/material:material-nav --name home不工作 得到类似的错误 Collection "@angular/m
我正在使用图书馆 material-table对于我的应用程序中的数据表。我将数据 Prop 设置为使用来自 this.state.data 的数据,并且添加行将通过使用 setState 在我的表上
如何在 Angular Material Design 中设置工具栏下方的侧导航?这样 sidenav 就不会越过工具栏.. 最佳答案 这是一个布局问题。只需使用此页面结构:
我使用的是角 Material 2,但我认为这也适用于角 Material 1。 假设我想使用角度 Material 选项卡,但我想隐藏选项卡或向其添加一些特定样式。 所以我有以下 html/angu
我安装了 material-ui“^1.0.0-beta.36”。文档说有日期选择器。 但我在 node_modules\material-ui 和任何子文件夹中都找不到它。 更改日志表明计划在未来版
从一小时前开始,我在 Material 设计图标 cdn 上不断收到网络错误,因为错误名称未解析。 http://cdn.materialdesignicons.com/5.4.55/css/mate
如何在不失去波纹效果的情况下更改角 Material 开关按钮的颜色? 请在此处查看代码笔:http://codepen.io/shyambhiogade/pen/LpNGBP 我已将颜色更改为 #0
对于textfield并选择,我看到我们具有以下选项来添加variant =“ outlined”。 但是,我看不到material-ui / DatePicker。有人可以建议如何使用实质性UI将v
在 3.1.0 版本中使用“@material-ui/core” 全局覆盖步进器图标的颜色非常容易全局 createMuiTheme({ overrides: { MuiStepIco
我在我的应用程序脚本插件中使用 materializecss,当我尝试动态添加工具提示时,提示不会使用新标签更新。我尝试了几种变体,甚至仔细检查了小费是否正在改变,确实如此。问题是它似乎没有用更新的文
有谁知道当模式确定时如何在 Material 进度微调器中显示不完整的部分。现在我是这样的 . 但我想要这样 最佳答案 这可以做到,但它主要是一个黑客。这个想法是使用一个带有与微调器匹配的边框的 di
我今天发现了这个很棒的 UI 框架,并花了很多时间浏览文档,我必须说,我已经爱上了它。现在我想将它用于一个中等规模的项目,但我有两个顾虑: 我找不到任何网格系统,我该如何进行布局? 如何让它响应? 我
我是一名优秀的程序员,十分优秀!