Skip to content

Commit 283f110

Browse files
andrewseguinAndrew Seguin
and
Andrew Seguin
authored
Revert "perf(material/slide-toggle): Optimize :state descendant selectors" (#30530)
This reverts commit d946055. Co-authored-by: Andrew Seguin <andrewseguin@google.com>
1 parent 9494ff2 commit 283f110

File tree

1 file changed

+48
-59
lines changed

1 file changed

+48
-59
lines changed

src/material/slide-toggle/slide-toggle.scss

Lines changed: 48 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -113,22 +113,22 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc
113113
}
114114

115115
@include token-utils.use-tokens($_mdc-slots...) {
116-
.mdc-switch:enabled:hover:not(:focus):not(:active) > & {
116+
.mdc-switch:enabled:hover:not(:focus):not(:active) & {
117117
@include token-utils.create-token-slot(background, unselected-hover-track-color);
118118
}
119119

120-
.mdc-switch:enabled:focus:not(:active) > & {
120+
.mdc-switch:enabled:focus:not(:active) & {
121121
@include token-utils.create-token-slot(background, unselected-focus-track-color);
122122
}
123123

124-
.mdc-switch:enabled:active > & {
124+
.mdc-switch:enabled:active & {
125125
@include token-utils.create-token-slot(background, unselected-pressed-track-color);
126126
}
127127

128-
#{$_interactive-disabled-selector}:hover:not(:focus):not(:active) > &,
129-
#{$_interactive-disabled-selector}:focus:not(:active) > &,
130-
#{$_interactive-disabled-selector}:active > &,
131-
.mdc-switch.mdc-switch--disabled > & {
128+
#{$_interactive-disabled-selector}:hover:not(:focus):not(:active) &,
129+
#{$_interactive-disabled-selector}:focus:not(:active) &,
130+
#{$_interactive-disabled-selector}:active &,
131+
.mdc-switch.mdc-switch--disabled & {
132132
@include token-utils.create-token-slot(background, disabled-unselected-track-color);
133133
}
134134
}
@@ -162,22 +162,22 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc
162162
}
163163

164164
@include token-utils.use-tokens($_mdc-slots...) {
165-
.mdc-switch:enabled:hover:not(:focus):not(:active) > & {
165+
.mdc-switch:enabled:hover:not(:focus):not(:active) & {
166166
@include token-utils.create-token-slot(background, selected-hover-track-color);
167167
}
168168

169-
.mdc-switch:enabled:focus:not(:active) > & {
169+
.mdc-switch:enabled:focus:not(:active) & {
170170
@include token-utils.create-token-slot(background, selected-focus-track-color);
171171
}
172172

173-
.mdc-switch:enabled:active > & {
173+
.mdc-switch:enabled:active & {
174174
@include token-utils.create-token-slot(background, selected-pressed-track-color);
175175
}
176176

177-
#{$_interactive-disabled-selector}:hover:not(:focus):not(:active) > &,
178-
#{$_interactive-disabled-selector}:focus:not(:active) > &,
179-
#{$_interactive-disabled-selector}:active > &,
180-
.mdc-switch.mdc-switch--disabled > & {
177+
#{$_interactive-disabled-selector}:hover:not(:focus):not(:active) &,
178+
#{$_interactive-disabled-selector}:focus:not(:active) &,
179+
#{$_interactive-disabled-selector}:active &,
180+
.mdc-switch.mdc-switch--disabled & {
181181
@include token-utils.create-token-slot(background, disabled-selected-track-color);
182182
}
183183
}
@@ -266,19 +266,16 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc
266266
@include token-utils.create-token-slot(height, with-icon-handle-size);
267267
}
268268

269-
// stylelint-disable-next-line max-line-length
270-
.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) > .mdc-switch__handle-track > & {
269+
.mat-mdc-slide-toggle .mdc-switch:active:not(.mdc-switch--disabled) & {
271270
@include token-utils.create-token-slot(width, pressed-handle-size);
272271
@include token-utils.create-token-slot(height, pressed-handle-size);
273272
}
274273

275-
// stylelint-disable-next-line max-line-length
276-
.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) > .mdc-switch__handle-track > & {
274+
.mat-mdc-slide-toggle .mdc-switch--selected:active:not(.mdc-switch--disabled) & {
277275
@include token-utils.create-token-slot(margin, selected-pressed-handle-horizontal-margin);
278276
}
279277

280-
// stylelint-disable-next-line max-line-length
281-
.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) > .mdc-switch__handle-track > & {
278+
.mat-mdc-slide-toggle .mdc-switch--unselected:active:not(.mdc-switch--disabled) & {
282279
@include token-utils.create-token-slot(margin, unselected-pressed-handle-horizontal-margin);
283280
}
284281

@@ -313,49 +310,46 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc
313310

314311
@include token-utils.use-tokens($_mdc-slots...) {
315312
&::after {
316-
.mdc-switch--selected:enabled > .mdc-switch__handle-track > & {
313+
.mdc-switch--selected:enabled & {
317314
@include token-utils.create-token-slot(background, selected-handle-color);
318315
}
319316

320-
.mdc-switch--selected:enabled:hover:not(:focus):not(:active) > .mdc-switch__handle-track > & {
317+
.mdc-switch--selected:enabled:hover:not(:focus):not(:active) & {
321318
@include token-utils.create-token-slot(background, selected-hover-handle-color);
322319
}
323320

324-
.mdc-switch--selected:enabled:focus:not(:active) > .mdc-switch__handle-track > & {
321+
.mdc-switch--selected:enabled:focus:not(:active) & {
325322
@include token-utils.create-token-slot(background, selected-focus-handle-color);
326323
}
327324

328-
.mdc-switch--selected:enabled:active > .mdc-switch__handle-track > & {
325+
.mdc-switch--selected:enabled:active & {
329326
@include token-utils.create-token-slot(background, selected-pressed-handle-color);
330327
}
331328

332-
#{$_interactive-disabled-selector}.mdc-switch--selected:hover:not(:focus):not(:active),
333-
#{$_interactive-disabled-selector}.mdc-switch--selected:focus:not(:active),
334-
#{$_interactive-disabled-selector}.mdc-switch--selected:active,
335-
.mdc-switch--selected.mdc-switch--disabled {
336-
> .mdc-switch__handle-track > & {
337-
@include token-utils.create-token-slot(background, disabled-selected-handle-color);
338-
}
329+
#{$_interactive-disabled-selector}.mdc-switch--selected:hover:not(:focus):not(:active) &,
330+
#{$_interactive-disabled-selector}.mdc-switch--selected:focus:not(:active) &,
331+
#{$_interactive-disabled-selector}.mdc-switch--selected:active &,
332+
.mdc-switch--selected.mdc-switch--disabled & {
333+
@include token-utils.create-token-slot(background, disabled-selected-handle-color);
339334
}
340335

341-
.mdc-switch--unselected:enabled > .mdc-switch__handle-track > & {
336+
.mdc-switch--unselected:enabled & {
342337
@include token-utils.create-token-slot(background, unselected-handle-color);
343338
}
344339

345-
// stylelint-disable-next-line max-line-length
346-
.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) > .mdc-switch__handle-track > & {
340+
.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) & {
347341
@include token-utils.create-token-slot(background, unselected-hover-handle-color);
348342
}
349343

350-
.mdc-switch--unselected:enabled:focus:not(:active) > .mdc-switch__handle-track > & {
344+
.mdc-switch--unselected:enabled:focus:not(:active) & {
351345
@include token-utils.create-token-slot(background, unselected-focus-handle-color);
352346
}
353347

354-
.mdc-switch--unselected:enabled:active > .mdc-switch__handle-track > & {
348+
.mdc-switch--unselected:enabled:active & {
355349
@include token-utils.create-token-slot(background, unselected-pressed-handle-color);
356350
}
357351

358-
.mdc-switch--unselected.mdc-switch--disabled > .mdc-switch__handle-track > & {
352+
.mdc-switch--unselected.mdc-switch--disabled & {
359353
@include token-utils.create-token-slot(background, disabled-unselected-handle-color);
360354
}
361355
}
@@ -375,17 +369,15 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc
375369
top: 0;
376370

377371
@include token-utils.use-tokens($_mdc-slots...) {
378-
.mdc-switch:enabled > .mdc-switch__handle-track > .mdc-switch__handle > & {
372+
.mdc-switch:enabled & {
379373
@include token-utils.create-token-slot(box-shadow, handle-elevation-shadow);
380374
}
381375

382-
#{$_interactive-disabled-selector}:hover:not(:focus):not(:active),
383-
#{$_interactive-disabled-selector}:focus:not(:active),
384-
#{$_interactive-disabled-selector}:active,
385-
.mdc-switch.mdc-switch--disabled {
386-
> .mdc-switch__handle-track > .mdc-switch__handle > & {
387-
@include token-utils.create-token-slot(box-shadow, disabled-handle-elevation-shadow);
388-
}
376+
#{$_interactive-disabled-selector}:hover:not(:focus):not(:active) &,
377+
#{$_interactive-disabled-selector}:focus:not(:active) &,
378+
#{$_interactive-disabled-selector}:active &,
379+
.mdc-switch.mdc-switch--disabled & {
380+
@include token-utils.create-token-slot(box-shadow, disabled-handle-elevation-shadow);
389381
}
390382
}
391383
}
@@ -414,7 +406,7 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc
414406
display: block;
415407
}
416408

417-
.mdc-switch:hover > .mdc-switch__handle-track > .mdc-switch__handle > & {
409+
.mdc-switch:hover & {
418410
opacity: 0.04;
419411
transition: 75ms opacity cubic-bezier(0, 0, 0.2, 1);
420412
}
@@ -425,35 +417,32 @@ $_interactive-disabled-selector: '.mat-mdc-slide-toggle-disabled-interactive.mdc
425417
}
426418

427419
@include token-utils.use-tokens($_mdc-slots...) {
428-
#{$_interactive-disabled-selector}:enabled:focus,
429-
#{$_interactive-disabled-selector}:enabled:active,
430-
#{$_interactive-disabled-selector}:enabled:hover:not(:focus),
431-
.mdc-switch--unselected:enabled:hover:not(:focus) {
432-
> .mdc-switch__handle-track > .mdc-switch__handle > & {
433-
@include token-utils.create-token-slot(background, unselected-hover-state-layer-color);
434-
}
420+
#{$_interactive-disabled-selector}:enabled:focus &,
421+
#{$_interactive-disabled-selector}:enabled:active &,
422+
#{$_interactive-disabled-selector}:enabled:hover:not(:focus) &,
423+
.mdc-switch--unselected:enabled:hover:not(:focus) & {
424+
@include token-utils.create-token-slot(background, unselected-hover-state-layer-color);
435425
}
436426

437-
.mdc-switch--unselected:enabled:focus > .mdc-switch__handle-track > .mdc-switch__handle > & {
427+
.mdc-switch--unselected:enabled:focus & {
438428
@include token-utils.create-token-slot(background, unselected-focus-state-layer-color);
439429
}
440430

441-
.mdc-switch--unselected:enabled:active > .mdc-switch__handle-track > .mdc-switch__handle > & {
431+
.mdc-switch--unselected:enabled:active & {
442432
@include token-utils.create-token-slot(background, unselected-pressed-state-layer-color);
443433
@include token-utils.create-token-slot(opacity, unselected-pressed-state-layer-opacity);
444434
transition: opacity 75ms linear;
445435
}
446436

447-
// stylelint-disable-next-line max-line-length
448-
.mdc-switch--selected:enabled:hover:not(:focus) > .mdc-switch__handle-track > .mdc-switch__handle > & {
437+
.mdc-switch--selected:enabled:hover:not(:focus) & {
449438
@include token-utils.create-token-slot(background, selected-hover-state-layer-color);
450439
}
451440

452-
.mdc-switch--selected:enabled:focus > .mdc-switch__handle-track > .mdc-switch__handle > & {
441+
.mdc-switch--selected:enabled:focus & {
453442
@include token-utils.create-token-slot(background, selected-focus-state-layer-color);
454443
}
455444

456-
.mdc-switch--selected:enabled:active > .mdc-switch__handle-track > .mdc-switch__handle > & {
445+
.mdc-switch--selected:enabled:active & {
457446
@include token-utils.create-token-slot(background, selected-pressed-state-layer-color);
458447
@include token-utils.create-token-slot(opacity, selected-pressed-state-layer-opacity);
459448
transition: opacity 75ms linear;

0 commit comments

Comments
 (0)