angular / angular/components

bug(Button): Button hover/clickable outside border & missing token

Open
#30,573 5 comments 0 reactions 0 assignees View on GitHub
area: material/button P4
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### Is this a regression?

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

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

_No response_

### Description

When a override is added to a button, the button remains clickable and can be hovered outside the border. I found a token to override this behavior, but I can't get it to work. Additionally, I suggest improving the documentation by specifying the types of values accepted for the token.

```
@include mat.button-overrides((
filled-touch-target-display: none
))
```

https://github.com/user-attachments/assets/11989574-c581-4aff-858b-d77e2368cd3e

Also there is no option to change outline color of outlined button when hovered/focused/pressed, only for disabled state? According to m3 design it should be possible:
https://m3.material.io/components/buttons/specs#4a0c06da-0b2f-47de-a583-97e0ae80b5a5

### Reproduction

StackBlitz link: https://stackblitz.com/edit/q9bg7z8v?file=src%2Fexample%2Fbutton-overview-example-override.scss
Steps to reproduce:
1. Try to move cursor close to the button border

### Expected Behavior

Button should not be clickable or able to hover outside button border

### Actual Behavior

Button is clickable and can be focused outside border

### Environment

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

Contributor guide

Open the contributing guide

Research direction

Start with the StackBlitz reproduction at src/example/button-overview-example-override.scss and inspect how mat.button-overrides handles filled-touch-target-display. Compare the hover, focus, and click area with the visible border, and verify whether outlined-button interaction colors are configurable; done means the hit area matches the border and the accepted token values are documented.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.