Пользовательская тема Angular Material в диалоге, снэк-баре, ... entryComponents - PullRequest
0 голосов
/ 08 июня 2018

Я использую Angular & Material v6, и у меня есть вопрос о применении пользовательской темы к элементам entry, таким как диалоговое окно или закусочная.

На самом деле, я добавляю шрифт Roboto ко всем компонентам, используя собственную темуматериала, но он не применяется к моему диалогу или снэк-бар.

Вы можете найти пример стекаблица здесь

Как видите, шрифт Roboto корректноприменяется на моей странице, но если вы откроете диалоговое окно, вместо этого будет использоваться Time New Roman ...

Я просто:

  • раскладываю пример диалога с веб-сайта угловых материалов.
  • добавить пользовательский theme.scss (используя Roboto) и включить его в angular-cli.json
  • удалить глобальное семейство шрифтов в style.css

Любые советы, объяснения?

1 Ответ

0 голосов
/ 08 июня 2018

Где-то в вашем приложении вам нужно применить типографику к телу страницы приложения, чтобы все компоненты автоматически наследовали его, включая оверлейный компонент, содержащий диалог.В демонстрации stackblitz вы прокомментировали это, чтобы проверить типографику:

body { 
    /* font-family: Roboto, Arial, sans-serif; */
    margin: 0;
}

Так что вам нужно либо заменить это в файле темы на что-то вроде:

body {
    font-family: mat-font-family($custom-typography);
    margin: 0;
}

Или (выне можете сделать это при использовании stackblitz) используйте класс типографики Angular Material на своей главной странице index.html:

<body class="mat-typography">
    ...
</body>

Кроме того, вашей конфигурации типографии необходимо определить размеры и вес для всех используемых уровней типографикиугловой материал.Простой способ просто изменить конфигурацию по умолчанию - использовать слияние SASS.Например:

$custom-typography: map-merge(
    mat-typography-config(), 
    mat-typography-config(
        $font-family: 'Roboto, sans-serif'
    )
);

Это берет ваши определения и записывает их поверх конфигурации по умолчанию, оставляя все, что вы не изменили заново, без изменений.

И вам нужно только позвонить mat-core()один, как он будет называть angular-material-typography(), что в свою очередь вызывает mat-base-typography().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...