@import '../core/theming/palette'; @import '../core/theming/theming'; @import '../core/typography/typography-utils'; @mixin mat-tabs-theme($theme) { $primary: map-get($theme, primary); $accent: map-get($theme, accent); $warn: map-get($theme, warn); $background: map-get($theme, background); $foreground: map-get($theme, foreground); $header-border: 1px solid mat-color($foreground, divider); .mat-tab-nav-bar, .mat-tab-header { border-bottom: $header-border; } .mat-tab-group-inverted-header { .mat-tab-nav-bar, .mat-tab-header { border-top: $header-border; border-bottom: none; } } .mat-tab-label, .mat-tab-link { color: mat-color($foreground, text); &.mat-tab-disabled { color: mat-color($foreground, disabled-text); } } .mat-tab-header-pagination-chevron { border-color: mat-color($foreground, text); } .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron { border-color: mat-color($foreground, disabled-text); } // Remove header border when there is a background color .mat-tab-group[class*='mat-background-'] .mat-tab-header, .mat-tab-nav-bar[class*='mat-background-'] { border-bottom: none; border-top: none; } .mat-tab-group, .mat-tab-nav-bar { $theme-colors: ( primary: $primary, accent: $accent, warn: $warn ); @each $name, $color in $theme-colors { // Set the foreground color of the tabs &.mat-#{$name} { @include _mat-tab-label-focus($color); @include _mat-ink-bar($color); // Override ink bar when background color is the same &.mat-background-#{$name} { @include _mat-ink-bar($color, default-contrast); } } } @each $name, $color in $theme-colors { // Set background color of the tabs and override focus color &.mat-background-#{$name} { @include _mat-tab-label-focus($color); @include _mat-tabs-background($color); } } } } @mixin _mat-ink-bar($color, $hue: default) { .mat-ink-bar { background-color: mat-color($color, $hue); } } @mixin _mat-tab-label-focus($tab-focus-color) { .mat-tab-label, .mat-tab-link { &.cdk-keyboard-focused, &.cdk-program-focused { &:not(.mat-tab-disabled) { background-color: mat-color($tab-focus-color, lighter, 0.3); } } } } @mixin _mat-tabs-background($background-color) { // Set background color for the tab group .mat-tab-header, .mat-tab-links, .mat-tab-header-pagination { background-color: mat-color($background-color); } // Set labels to contrast against background .mat-tab-label, .mat-tab-link { color: mat-color($background-color, default-contrast); &.mat-tab-disabled { color: mat-color($background-color, default-contrast, 0.4); } } // Set pagination chevrons to contrast background .mat-tab-header-pagination-chevron { border-color: mat-color($background-color, default-contrast); } .mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron { border-color: mat-color($background-color, default-contrast, 0.4); } // Set ripples color to be the contrast color of the new background. Otherwise the ripple // color will be based on the app background color. .mat-ripple-element { background-color: mat-color($background-color, default-contrast, 0.12); } } @mixin mat-tabs-typography($config) { .mat-tab-group { font-family: mat-font-family($config); } .mat-tab-label, .mat-tab-link { font: { family: mat-font-family($config, button); size: mat-font-size($config, button); weight: mat-font-weight($config, button); } } }