angular / angular/components

troubleshooting(dialog): Dialog title :before psuedo element

Open
#28,129 3 comments 3 reactions 0 assignees View on GitHub
area: material/dialog P3
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### Is this a regression?

- [ ] Yes, this behavior used to work in the previous version

### The previous version in which this bug was not present was

_No response_

### Description

We are doing a migration to Material Angular 16 and when attempting to style the `mat-dialog-title` of a dialog. There is a `:before` pseudo element which has an empty string as content, and I believe the purpose of this element is to set the height of the title element with the `mat-dialog-title` directive. Is this correct? This implementation seems very hacky to me and flexbox `justify-content` does not work property because this pseudo element is considered an element within a flex container, and therefore the developer either needs to create a new flex container within the `mat-dialog-title` or remove the content from the `:before` psuedo element. Am I not not thinking of this correctly and is there another way to use `justify-content` which works with this psuedo element?

### Reproduction

StackBlitz link:
Steps to reproduce:
1.
2.

### Expected Behavior

If the `mat-dialog-title` container is a flex container, `justify-content: space-between` works correctly.

### Actual Behavior

`justify-content: space-between` adds space between the psuedo element which has an empty string as content and the next element within the `mat-dialog-title`

### Environment

- Angular: 16.2.10
- CDK/Material: 16.2.9
- Browser(s): Firefox
- Operating System (e.g. Windows, macOS, Ubuntu): macOS

Contributor guide

Open the contributing guide

Research direction

Start with the Angular Material dialog title styles associated with the mat-dialog-title directive and reproduce the layout in Firefox using the issue's flexbox example. Check how the :before pseudo-element affects justify-content: space-between. Done means the dialog title's flex layout behaves as expected without requiring an extra container or manual removal of the pseudo-element.

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
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.