Skip to content

Commit a6c988b

Browse files
asynclizcopybara-github
authored andcommitted
fix(ripple)!: remove shape token and will-change
BREAKING CHANGE: Use `border-radius` instead of `--md-ripple-shape` PiperOrigin-RevId: 535034875
1 parent ead86ae commit a6c988b

File tree

8 files changed

+45
-39
lines changed

8 files changed

+45
-39
lines changed

checkbox/lib/_checkbox.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@ $_checkmark-bottom-left: 7px, -14px;
169169
// Ripple
170170

171171
md-ripple {
172+
border-radius: var(--_state-layer-shape);
172173
height: var(--_state-layer-size);
173174
width: var(--_state-layer-size);
174175

@@ -180,7 +181,6 @@ $_checkmark-bottom-left: 7px, -14px;
180181
hover-opacity: var(--_unselected-hover-state-layer-opacity),
181182
pressed-color: var(--_unselected-pressed-state-layer-color),
182183
pressed-opacity: var(--_unselected-pressed-state-layer-opacity),
183-
shape: var(--_state-layer-shape),
184184
)
185185
);
186186
}

iconbutton/lib/_shared.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@
7272

7373
md-ripple {
7474
z-index: -1; // Place behind content
75-
// TODO(b/263517885): replace with ripple.theme(container-shape)
7675
border-start-start-radius: var(--_container-shape-start-start);
7776
border-start-end-radius: var(--_container-shape-start-end);
7877
border-end-start-radius: var(--_container-shape-end-start);

iconbutton/lib/_standard-icon-button.scss

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
hover-opacity: var(--_unselected-hover-state-layer-opacity),
5858
pressed-color: var(--_unselected-pressed-state-layer-color),
5959
pressed-opacity: var(--_unselected-pressed-state-layer-opacity),
60-
shape: var(--_state-layer-shape),
6160
)
6261
);
6362

@@ -78,6 +77,10 @@
7877
}
7978
}
8079

80+
md-ripple {
81+
border-radius: var(--_state-layer-shape);
82+
}
83+
8184
.standard:disabled .icon {
8285
opacity: var(--_disabled-icon-opacity);
8386
}

radio/lib/_radio.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ $_md-sys-motion: tokens.md-sys-motion-values();
8585
}
8686

8787
md-ripple {
88+
border-radius: 50%;
8889
height: var(--_state-layer-size);
8990
width: var(--_state-layer-size);
9091
}

ripple/lib/_ripple.scss

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,35 @@
44
//
55

66
// go/keep-sorted start
7+
@use 'sass:list';
78
@use 'sass:map';
89
// go/keep-sorted end
910
// go/keep-sorted start
1011
@use '../../sass/theme';
1112
@use '../../tokens';
12-
@use './md-comp-ripple';
1313
// go/keep-sorted end
1414

1515
@mixin theme($tokens) {
16-
$tokens: theme.validate-theme(md-comp-ripple.values(), $tokens);
17-
$tokens: theme.create-theme-vars($tokens, ripple);
16+
$supported-tokens: tokens.$md-comp-ripple-supported-tokens;
17+
@each $token, $value in $tokens {
18+
@if list.index($supported-tokens, $token) == null {
19+
@error 'Token `#{$token}` is not a supported token.';
20+
}
1821

19-
@include theme.emit-theme-vars($tokens);
22+
@if $value {
23+
--md-ripple-#{$token}: #{$value};
24+
}
25+
}
2026
}
2127

2228
@mixin styles() {
23-
$tokens: md-comp-ripple.values();
24-
$tokens: theme.create-theme-vars($tokens, ripple);
29+
$tokens: tokens.md-comp-ripple-values();
2530

2631
:host {
2732
@each $token, $value in $tokens {
28-
--_#{$token}: #{$value};
33+
--_#{$token}: var(--md-ripple-#{$token}, #{$value});
2934
}
30-
}
3135

32-
:host {
3336
display: flex;
3437
}
3538

@@ -39,18 +42,14 @@
3942

4043
:host,
4144
.surface {
45+
border-radius: inherit;
4246
position: absolute;
4347
inset: 0;
4448
pointer-events: none;
4549
overflow: hidden;
4650
}
4751

4852
.surface {
49-
// TODO(https://bugs.webkit.org/show_bug.cgi?id=247546)
50-
// Remove Safari workaround for incorrect ripple overflow when addressed.
51-
// This addresses `hover` and `pressed` state oveflow.
52-
will-change: transform;
53-
border-radius: var(--_shape);
5453
outline: none;
5554
-webkit-tap-highlight-color: transparent;
5655

@@ -97,15 +96,6 @@
9796
transition-duration: 105ms;
9897
}
9998

100-
.unbounded {
101-
$unbounded: (
102-
shape: map.get(tokens.md-sys-shape-values(), 'corner-full'),
103-
);
104-
$unbounded: theme.create-theme-vars($unbounded, ripple);
105-
106-
--_shape: #{map.get($unbounded, 'shape')};
107-
}
108-
10999
@media screen and (forced-colors: active) {
110100
:host {
111101
display: none;

switch/lib/_handle.scss

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,12 +135,10 @@ $_easing-standard: map.get($_md-sys-motion, 'easing-standard');
135135
transform: translate(-50%, -50%);
136136
height: var(--_state-layer-size);
137137
width: var(--_state-layer-size);
138+
}
138139

139-
@include ripple.theme(
140-
(
141-
'shape': var(--_state-layer-shape),
142-
)
143-
);
140+
md-ripple {
141+
border-radius: var(--_state-layer-shape);
144142
}
145143

146144
.switch--selected .ripple {

tokens/_index.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
@forward './md-comp-plain-tooltip' as md-comp-plain-tooltip-*;
6262
@forward './md-comp-radio-button' as md-comp-radio-button-*;
6363
@forward './md-comp-rich-tooltip' as md-comp-rich-tooltip-*;
64+
@forward './md-comp-ripple' as md-comp-ripple-*;
6465
@forward './md-comp-scrim' as md-comp-scrim-*;
6566
@forward './md-comp-search-bar' as md-comp-search-bar-*;
6667
@forward './md-comp-search-view' as md-comp-search-view-*;
Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,38 @@
77
@use 'sass:map';
88
// go/keep-sorted end
99
// go/keep-sorted start
10-
@use '../../tokens';
10+
@use './md-sys-color';
11+
@use './md-sys-shape';
12+
@use './md-sys-state';
13+
@use './values';
1114
// go/keep-sorted end
1215

13-
$_default-deps: (
14-
'md-sys-color': tokens.md-sys-color-values-light(),
15-
'md-sys-shape': tokens.md-sys-shape-values(),
16-
'md-sys-state': tokens.md-sys-state-values(),
16+
$supported-tokens: (
17+
// go/keep-sorted start
18+
'focus-color',
19+
'focus-opacity',
20+
'hover-color',
21+
'hover-opacity',
22+
'pressed-color',
23+
'pressed-opacity',
24+
// go/keep-sorted end
1725
);
1826

19-
@function values($deps: $_default-deps) {
20-
@return (
27+
$_default: (
28+
'md-sys-color': md-sys-color.values-light(),
29+
'md-sys-state': md-sys-state.values(),
30+
);
31+
32+
@function values($deps: $_default) {
33+
$tokens: (
2134
'focus-color': map.get($deps, 'md-sys-color', 'on-surface'),
2235
'focus-opacity': map.get($deps, 'md-sys-state', 'focus-state-layer-opacity'),
2336
'hover-color': map.get($deps, 'md-sys-color', 'on-surface'),
2437
'hover-opacity': map.get($deps, 'md-sys-state', 'hover-state-layer-opacity'),
2538
'pressed-color': map.get($deps, 'md-sys-color', 'on-surface'),
2639
'pressed-opacity':
2740
map.get($deps, 'md-sys-state', 'pressed-state-layer-opacity'),
28-
'shape': map.get($deps, 'md-sys-shape', 'corner-none')
2941
);
42+
43+
@return values.validate($tokens, $supported-tokens: $supported-tokens);
3044
}

0 commit comments

Comments
 (0)