fix(slider-field): use fixed column widths so rows align
Label, slider and number field now have fixed widths, so stacked rows line up. Below 640 px the label sits above the slider and field.
This commit is contained in:
1 parent
3018c3f1b5
commit
2df5ef2089
2 files changed
+41
-4
No files matched your search
@@ -1,13 +1,13 @@
|
|||||||
<div class="flex items-center gap-2.5 flex-wrap">
|
<div class="slider-row">
|
||||||
<span>{{ label() | translate }}</span>
|
<span class="slider-label">{{ label() | translate }}</span>
|
||||||
<mat-slider [min]="min()" [max]="max()" [step]="step()" [discrete]="discrete()">
|
<mat-slider class="slider-track" [min]="min()" [max]="max()" [step]="step()" [discrete]="discrete()">
|
||||||
<input matSliderThumb
|
<input matSliderThumb
|
||||||
[attr.aria-label]="label() | translate"
|
[attr.aria-label]="label() | translate"
|
||||||
[ngModel]="value()"
|
[ngModel]="value()"
|
||||||
(ngModelChange)="value.set($event)"
|
(ngModelChange)="value.set($event)"
|
||||||
(valueChange)="onSliderRelease($event)">
|
(valueChange)="onSliderRelease($event)">
|
||||||
</mat-slider>
|
</mat-slider>
|
||||||
<mat-form-field appearance="outline" subscriptSizing="dynamic" class="w-[110px]">
|
<mat-form-field appearance="outline" subscriptSizing="dynamic" class="slider-field">
|
||||||
<input #field matInput type="number"
|
<input #field matInput type="number"
|
||||||
[attr.aria-label]="label() | translate"
|
[attr.aria-label]="label() | translate"
|
||||||
[min]="min()" [max]="max()" [step]="step()"
|
[min]="min()" [max]="max()" [step]="step()"
|
||||||
|
|||||||
@@ -3,3 +3,40 @@
|
|||||||
:host {
|
:host {
|
||||||
@include mat.form-field-density(-4);
|
@include mat.form-field-density(-4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.slider-row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 0.625rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider-label {
|
||||||
|
flex: 0 0 15rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider-track {
|
||||||
|
flex: 0 0 12rem;
|
||||||
|
width: 12rem;
|
||||||
|
min-width: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider-field {
|
||||||
|
flex: 0 0 5.5rem;
|
||||||
|
width: 5.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 639px) {
|
||||||
|
.slider-row {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider-label {
|
||||||
|
flex-basis: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.slider-track {
|
||||||
|
flex: 1 1 0;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in new issue
Block a user