components
components copied to clipboard
Button - touch height
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
The height
of the touch-target
for buttons is fixed with 48px
. If the corresponding button has the standard-height of 48px
than this is fine. With reducing e.g. the denisity
the 48px
shrink to e.g. 36px
. Therefore the height
should rather inherit
the height from the button instead of its own fixed height.
The main problem is that the surrounding layout container calculates the height of the button as 36px
. The button don't fit into and an overflow
appears.
Reproduction
The provided sample container could be adjusted with the proper css attributes. Nevertheless the problem persists in some other configurations especially when the minimal height is calculated wrongly.
https://stackblitz.com/edit/nxq1bh?file=src/app/button-overview-example.css
Expected Behavior
.mat-mdc-button .mat-mdc-button-touch-target, .mat-mdc-unelevated-button .mat-mdc-button-touch-target, .mat-mdc-raised-button .mat-mdc-button-touch-target, .mat-mdc-outlined-button .mat-mdc-button-touch-target {
position: absolute;
top: 50%;
height: inherit; /* <=================== */
left: 0;
right: 0;
transform: translateY(-50%);
}
Actual Behavior
.mat-mdc-button .mat-mdc-button-touch-target, .mat-mdc-unelevated-button .mat-mdc-button-touch-target, .mat-mdc-raised-button .mat-mdc-button-touch-target, .mat-mdc-outlined-button .mat-mdc-button-touch-target {
position: absolute;
top: 50%;
height: 48px; /* <=================== */
left: 0;
right: 0;
transform: translateY(-50%);
}
Environment
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 16.0.2
Node: 20.1.0 (Unsupported)
Package Manager: npm 9.6.4
OS: linux x64
Angular: 16.0.2
... animations, cli, common, compiler, compiler-cli, core, forms
... localize, platform-browser, platform-browser-dynamic, router
Package Version
------------------------------------------------------------
@angular-devkit/architect 0.1600.2
@angular-devkit/build-angular 16.0.2
@angular-devkit/core 16.0.2
@angular-devkit/schematics 16.0.2
@angular/cdk 16.0.1
@angular/material 16.0.1
@angular/material-moment-adapter 16.0.1
@schematics/angular 16.0.2
typescript 4.9.5
This happens to me when I put a button as footer inside a dialog, there is always a y-scrollbar
What is the status of this issue? I have the same behavior.
I tried to set --mdc-icon-button-state-layer-size
to the right height but the touch-target
height stays to 48px.
This happens to me when I put a button as footer inside a dialog, there is always a y-scrollbar
Likewise :(
For now I've decided to unset the height using
:host .footer,
mat-dialog-actions {
::ng-deep span.mat-mdc-button-touch-target {
height: unset;
}
}
Pros: No scrollbar
Cons: Uses the hotly debated ng-deep. Slightly less accessible
This is still an issue in version 17.3!
Still an issue as well!
Up :)
Happens when you put a button in a mat-tab as well. Unsetting the height fixes the issue for now...