Как настроить Mat-Tabs?

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

я нашел ответ с помощью этих правил:

    .mat-mdc-tab-group,
    .mat-mdc-tab-nav-bar {
  --mat-tab-header-active-focus-label-text-color: #151414;
  --mat-tab-header-active-label-text-color: #151414;
  --mat-tab-header-inactive-label-text-color: rgb(0 0 0 / 60%);
  --mat-tab-header-inactive-focus-label-text-color: rgb(236 131 218 / 60%);
  --mat-tab-header-inactive-hover-label-text-color: rgb(236 131 218 / 60%);
  --mdc-tab-indicator-active-indicator-color: #242022;
  --mat-tab-header-active-hover-label-text-color: #5052c3;
  --mat-tab-header-active-ripple-color: #c2185b;
  --mat-tab-header-inactive-ripple-color: #232222;
}

это работает, но я не вижу правила изменения цвета фона неактивных вкладок.

Есть ли способ найти полный список?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
0
76
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если вы проверите CSS вкладок mat, вы увидите эти переменные CSS, которые можно настроить.

.mat-primary.mat-mdc-tab-group,.mat-primary.mat-mdc-tab-nav-bar {
    --mdc-tab-indicator-active-indicator-color: #005cbb;
    --mat-tab-header-divider-color: #e0e2ec;
    --mat-tab-header-pagination-icon-color: #1a1b1f;
    --mat-tab-header-inactive-label-text-color: #1a1b1f;
    --mat-tab-header-active-label-text-color: #1a1b1f;
    --mat-tab-header-active-ripple-color: #1a1b1f;
    --mat-tab-header-inactive-ripple-color: #1a1b1f;
    --mat-tab-header-inactive-focus-label-text-color: #1a1b1f;
    --mat-tab-header-inactive-hover-label-text-color: #1a1b1f;
    --mat-tab-header-active-focus-label-text-color: #1a1b1f;
    --mat-tab-header-active-hover-label-text-color: #1a1b1f;
    --mat-tab-header-active-focus-indicator-color: #005cbb;
    --mat-tab-header-active-hover-indicator-color: #005cbb
}

Цвет фона жестко запрограммирован как none в CSS. Я полагаю, что это просто спецификация материала того, как должно быть с прозрачным фоном.

Поэтому, если вам нужны такие настройки, вам следует просто определить глобальные стили для вашего случая, например:

/* default background for all tab headers */
.mdc-tab { 
    background: red;
}

/* override default background for active tabs */
.mdc-tab.mdc-tab--active {
    background: blue;
}

В результате у вас будут красные неактивные вкладки и синие активные вкладки.


обновление:

Для изменения стиля локального компонента есть два способа сделать это.

  1. более чистый, но создает глобальный стиль, который поместит ваш CSS-код в основной пакет, а не отложенную загрузку вашего компонента: добавить собственное имя класса в html
<mat-tab-group class = "my-custom-tabs">

добавить глобальные стили:

/* default background for all tab headers */
.my-custom-tabs .mdc-tab { 
    background: red;
}

/* override default background for active tabs */
.my-custom-tabs .mdc-tab.mdc-tab--active {
    background: blue;
}
  1. используйте ::ng-deep, это не так чисто, потому что это устаревшая функция. Но, похоже, его никогда не удаляли, потому что многие проекты зависят от этой функции, и иногда ее использование критически важно, чтобы все работало.

В стилях вашего компонента:

:host ::ng-deep {
  .mdc-tab { 
      background: red;
  }
 
  .mdc-tab.mdc-tab--active {
      background: blue;
  }
}

Спасибо за помощь, я попробовал это, но это применимо только к style.css глобально, а не внутри CSS компонента. Мне это нужно только для определенной группы вкладок

Jany 18.04.2024 20:40

сделал раздел обновлений в моем ответе для вашего случая

Danylo Gudz 18.04.2024 20:51

Другие вопросы по теме