angular / angular/components

bug(mat-form-field): suffix element style should reflect input disabled state

Open
#22,692 4 comments 5 reactions 0 assignees View on GitHub
area: material/form-field material spec P3
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### Reproduction

[Open this StackBlitz](https://stackblitz.com/edit/components-issue-8gvvrn?file=src/app/example-component.html) and toggle the Disabled state with the checkbox.

### Expected Behavior

Per [the Text Field spec](https://material.io/components/text-fields#outlined-text-field), under "Outlined text field with suffix text", a suffix in a disabled text field should use the same font (weight / color / opacity) as the wrapped input element.

![image](https://user-images.githubusercontent.com/943160/118151415-e2f4bb80-b413-11eb-9538-445775e22e6c.png)

(In the image from the spec, "55" is the input text and "/100" is the suffix.)

### Actual Behavior

The input text is light gray, to indicate that the input is disabled, but the suffix styling does not change, so it doesn't match the input text.

### Environment

- Angular: 11.1
- CDK/Material: 11.1
- Browser(s): Chrome
- Operating System (e.g. Windows, macOS, Ubuntu): Windows

### Note

I also see that in all the suffix examples where the input is *not* disabled, the suffix is styled slightly lighter than the input text. As you can see in the StackBlitz, the default suffix is exactly the same as the input text. The spec doesn't explicitly require this, as far as I can see, so maybe it's just a suggestion?

Contributor guide

Open the contributing guide

Research direction

Use the linked StackBlitz reproduction, starting with src/app/example-component.html, and toggle the checkbox to compare the disabled input and suffix. Trace the mat-form-field suffix styling and verify that the suffix matches the disabled input’s font weight, color, and opacity while preserving the non-disabled behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.