更改聚合物纸张元素默认字体

mar*_*wie 14 polymer

将Polymer Paper Elements默认字体从Roboto更改为自定义字体的最佳方法是什么?

我使用--paper-font-common-base: {}mixin来定义我的字体,这适用于大多数地方......但不是全部.在像这样的地方,paper-toolbar仍然有Roboto应用.

还有另一种方法吗?

编辑

我现在看到了罪犯.里面paper-styles/typography.html有大量的mixin专门定义字体...例如

--paper-font-title: {
   /* @apply(--paper-font-common-base) */
  font-family: 'Roboto', 'Noto', sans-serif;
  -webkit-font-smoothing: antialiased;
  /* @apply(--paper-font-common-expensive-kerning); */
  text-rendering: optimizeLegibility;
  /* @apply(--paper-font-common-nowrap); */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;

  font-size: 20px;
  font-weight: 500;
  line-height: 28px;
};
Run Code Online (Sandbox Code Playgroud)

为什么@apply这里的块被注释掉了?如果默认情况下没有评论这些,看起来这不会是一个问题.但现在我必须去覆盖每一个混合!

编辑2

我看到typography.html文件顶部有一个注释

/*
Unfortunately, we can't use nested rules
See https://github.com/Polymer/polymer/issues/1399
*/
Run Code Online (Sandbox Code Playgroud)

但无论如何,这在Chrome中似乎并非如此.如果我取消注释@apply(--paper-font-common-base)所有mixin中的行,它似乎工作.这是一个浏览器问题吗?

Sco*_*ing 3

覆盖--paper-font-common-basemixin 是正确的方法。

以下 CSS 代码应该可以工作。

:root {
    --paper-font-common-base: {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    };
}
Run Code Online (Sandbox Code Playgroud)

我找不到你指出的问题,它可能已经解决了。检查以下文件时,--paper-font-common-base正在按预期应用。

https://github.com/PolymerElements/paper-styles/blob/master/typography.html https://github.com/PolymerElements/paper-toolbar/blob/master/paper-toolbar.html