Skip to content

Commit a6a201f

Browse files
committed
feat(material-experimental/mdc-slider): implement slider thumb ripples (#21979)
* create MatSliderVisualThumb * create slider-thumb.html & slider-thumb.scss
1 parent 2e30ab0 commit a6a201f

File tree

8 files changed

+251
-47
lines changed

8 files changed

+251
-47
lines changed

src/material-experimental/mdc-slider/BUILD.bazel

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ ng_module(
1717
["**/*.ts"],
1818
exclude = ["**/*.spec.ts"],
1919
),
20-
assets = [":slider_scss"] + glob(["**/*.html"]),
20+
assets = [
21+
":slider_scss",
22+
":slider_thumb_scss",
23+
] + glob(["**/*.html"]),
2124
module_name = "@angular/material-experimental/mdc-slider",
2225
deps = [
2326
"//src/cdk/bidi",
@@ -35,6 +38,7 @@ sass_library(
3538
deps = [
3639
"//src/cdk/a11y:a11y_scss_lib",
3740
"//src/material-experimental/mdc-helpers:mdc_helpers_scss_lib",
41+
"//src/material-experimental/mdc-helpers:mdc_scss_deps_lib",
3842
],
3943
)
4044

@@ -50,6 +54,11 @@ sass_binary(
5054
],
5155
)
5256

57+
sass_binary(
58+
name = "slider_thumb_scss",
59+
src = "slider-thumb.scss",
60+
)
61+
5362
###########
5463
# Testing
5564
###########

src/material-experimental/mdc-slider/_slider-theme.scss

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@use '@material/slider/slider' as mdc-slider;
22
@use '@material/slider/slider-theme';
3+
@use '@material/theme/variables' as theme-variables;
34
@use '../mdc-helpers/mdc-helpers';
45
@use '../../material/core/ripple/ripple';
56
@use '../../material/core/theming/theming';
@@ -106,9 +107,15 @@
106107
),
107108
$query: mdc-helpers.$mat-theme-styles-query
108109
);
109-
@include ripple.color((
110+
@include ripple.theme((
110111
foreground: (
111-
base: mdc-theme-prop-value($color)
112+
base: theme-variables.prop-value($color)
112113
),
113114
));
115+
.mat-mdc-slider-hover-ripple {
116+
background-color: rgba(theme-variables.prop-value($color), 0.05);
117+
}
118+
.mat-mdc-slider-focus-ripple, .mat-mdc-slider-active-ripple {
119+
background-color: rgba(theme-variables.prop-value($color), 0.2);
120+
}
114121
}

src/material-experimental/mdc-slider/module.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@
88

99
import {CommonModule} from '@angular/common';
1010
import {NgModule} from '@angular/core';
11-
import {MatCommonModule} from '@angular/material-experimental/mdc-core';
12-
import {MatSlider, MatSliderThumb} from './slider';
11+
import {MatCommonModule, MatRippleModule} from '@angular/material-experimental/mdc-core';
12+
import {MatSlider, MatSliderThumb, MatSliderVisualThumb} from './slider';
1313

1414
@NgModule({
15-
imports: [MatCommonModule, CommonModule],
15+
imports: [MatCommonModule, CommonModule, MatRippleModule],
1616
exports: [MatSlider, MatSliderThumb],
1717
declarations: [
1818
MatSlider,
1919
MatSliderThumb,
20+
MatSliderVisualThumb,
2021
],
2122
})
2223
export class MatSliderModule {
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<div class="mdc-slider__value-indicator-container" *ngIf="discrete">
2+
<div class="mdc-slider__value-indicator">
3+
<span class="mdc-slider__value-indicator-text">{{valueIndicatorText}}</span>
4+
</div>
5+
</div>
6+
<div class="mdc-slider__thumb-knob" #knob></div>
7+
<div matRipple></div>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.mat-mdc-slider-visual-thumb .mat-ripple {
2+
height: 100%;
3+
width: 100%;
4+
}

src/material-experimental/mdc-slider/slider.html

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@
1313
</div>
1414

1515
<!-- Thumbs -->
16-
<div class="mdc-slider__thumb" *ngFor="let thumb of _getThumbTypes()" #thumb>
17-
<div class="mdc-slider__value-indicator-container" *ngIf="discrete">
18-
<div class="mdc-slider__value-indicator">
19-
<span class="mdc-slider__value-indicator-text">{{_getValueIndicatorText(thumb)}}</span>
20-
</div>
21-
</div>
22-
<div class="mdc-slider__thumb-knob" #knob></div>
23-
</div>
16+
<mat-slider-visual-thumb
17+
*ngFor="let thumb of _inputs"
18+
[discrete]="discrete"
19+
[thumbPosition]="thumb._thumbPosition"
20+
[valueIndicatorText]="_getValueIndicatorText(thumb._thumbPosition)">
21+
</mat-slider-visual-thumb>

src/material-experimental/mdc-slider/slider.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33

44
@include mdc-slider.without-ripple($query: $mat-base-styles-query);
55

6-
.mdc-slider {
6+
.mat-mdc-slider {
77
display: block;
88
}

0 commit comments

Comments
 (0)