@use '@angular/cdk'; @mixin private-form-field-high-contrast() { $focus-indicator-width: 3px; $focus-indicator-style: dashed; .mat-form-field-appearance-fill { // The outline of the `fill` appearance is achieved through a background color // which won't be visible in high contrast mode. Add an outline to replace it. .mat-mdc-text-field-wrapper { @include cdk.high-contrast(active, off) { outline: solid 1px; } } // Use GreyText for the disabled outline color which will account for the user's configuration. &.mat-form-field-disabled .mat-mdc-text-field-wrapper { @include cdk.high-contrast(active, off) { outline-color: GrayText; } } } // If a form field with fill appearance is focused, update the outline to be // dashed and thicker to indicate focus. .mat-form-field-appearance-fill.mat-focused .mat-mdc-text-field-wrapper { @include cdk.high-contrast(active, off) { outline: $focus-indicator-style $focus-indicator-width; } } // For form fields with outline appearance, we show a dashed thick border on top // of the solid notched-outline border to indicate focus. .mat-mdc-form-field.mat-focused .mdc-notched-outline { @include cdk.high-contrast(active, off) { border: $focus-indicator-style $focus-indicator-width; } } }