Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.

Commit b6c7f62

Browse files
authored
feat(line-ripple): add active/inactive states to line-ripple
BREAKING CHANGE: `mdc-line-ripple-color()` mixin has been renamed to `mdc-line-ripple-active-color()`
1 parent 3a85313 commit b6c7f62

File tree

4 files changed

+67
-63
lines changed

4 files changed

+67
-63
lines changed

packages/mdc-line-ripple/_mixins.scss

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,39 +34,66 @@
3434
// postcss-bem-linter: define line-ripple
3535
.mdc-line-ripple {
3636
@include feature-targeting-mixins.targets($feat-structure) {
37-
position: absolute;
38-
bottom: 0;
39-
left: 0;
40-
width: 100%;
41-
height: 2px;
42-
transform: scaleX(0);
43-
opacity: 0;
44-
z-index: 2;
37+
&::before,
38+
&::after {
39+
position: absolute;
40+
bottom: 0;
41+
left: 0;
42+
width: 100%;
43+
border-bottom-style: solid;
44+
content: "";
45+
}
46+
47+
&::before {
48+
border-bottom-width: 1px;
49+
z-index: 1;
50+
}
51+
52+
&::after {
53+
transform: scaleX(0);
54+
border-bottom-width: 2px;
55+
opacity: 0;
56+
z-index: 2;
57+
}
4558
}
4659

4760
@include feature-targeting-mixins.targets($feat-animation) {
48-
transition: functions.transition-value(transform), functions.transition-value(opacity);
61+
&::after {
62+
transition: functions.transition-value(transform), functions.transition-value(opacity);
63+
}
4964
}
5065
}
5166

52-
.mdc-line-ripple--active {
67+
.mdc-line-ripple--active::after {
5368
@include feature-targeting-mixins.targets($feat-structure) {
5469
transform: scaleX(1);
5570
opacity: 1;
5671
}
5772
}
5873

59-
.mdc-line-ripple--deactivating {
74+
.mdc-line-ripple--deactivating::after {
6075
@include feature-targeting-mixins.targets($feat-structure) {
6176
opacity: 0;
6277
}
6378
}
6479
}
6580

66-
@mixin color($color, $query: feature-targeting-functions.all()) {
81+
@mixin active-color($color, $query: feature-targeting-functions.all()) {
6782
$feat-color: feature-targeting-functions.create-target($query, color);
6883

6984
@include feature-targeting-mixins.targets($feat-color) {
70-
@include theme-mixins.prop(background-color, $color);
85+
&::after {
86+
@include theme-mixins.prop(border-bottom-color, $color);
87+
}
88+
}
89+
}
90+
91+
@mixin inactive-color($color, $query: feature-targeting-functions.all()) {
92+
$feat-color: feature-targeting-functions.create-target($query, color);
93+
94+
@include feature-targeting-mixins.targets($feat-color) {
95+
&::before {
96+
@include theme-mixins.prop(border-bottom-color, $color);
97+
}
7198
}
7299
}

packages/mdc-line-ripple/test/feature-targeting-any.test.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
@mixin test($query) {
55
.test {
66
@include line-ripple.core-styles($query: $query);
7-
@include line-ripple.color(red, $query: $query);
7+
@include line-ripple.active-color(red, $query: $query);
88
}
99
}
1010

packages/mdc-select/_mixins.scss

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
}
6060

6161
@mixin hover-bottom-line-color($color) {
62-
&:not(.mdc-select--disabled) .mdc-select__selected-text:hover {
63-
@include native-control-bottom-line-color_($color);
62+
&:not(.mdc-select--disabled):hover {
63+
@include bottom-line-color_($color);
6464
}
6565
}
6666

@@ -180,18 +180,14 @@
180180
}
181181

182182
@mixin bottom-line-color_($color) {
183-
.mdc-select__selected-text {
184-
@include native-control-bottom-line-color_($color);
183+
.mdc-line-ripple {
184+
@include line-ripple-mixins.inactive-color($color);
185185
}
186186
}
187187

188-
@mixin native-control-bottom-line-color_($color) {
189-
@include theme-mixins.prop(border-bottom-color, $color);
190-
}
191-
192188
@mixin focused-line-ripple-color_($color) {
193189
@include focused-line-ripple_ {
194-
@include line-ripple-mixins.color($color);
190+
@include line-ripple-mixins.active-color($color);
195191
}
196192
}
197193

@@ -305,7 +301,6 @@
305301
padding-top: 20px;
306302
padding-bottom: 4px;
307303
border: none;
308-
border-bottom: 1px solid;
309304
outline: none;
310305
background-color: transparent;
311306
color: inherit; // Override default user agent stylesheet
@@ -327,7 +322,12 @@
327322
}
328323

329324
.mdc-line-ripple {
330-
display: none;
325+
@include line-ripple-mixins.inactive-color(variables.$disabled-ink-color);
326+
327+
&::before {
328+
// TODO(b/146080006)
329+
border-bottom-style: dotted;
330+
}
331331
}
332332

333333
.mdc-select__icon {
@@ -337,17 +337,12 @@
337337
.mdc-select__selected-text {
338338
@include theme-mixins.prop(color, variables.$disabled-ink-color);
339339

340-
border-bottom-style: dotted;
341340
pointer-events: none;
342341
}
343342

344343
&.mdc-select--outlined {
345344
@include container-fill-color_(transparent);
346345
@include outline-color_(variables.$outlined-disabled-border);
347-
348-
.mdc-select__selected-text {
349-
border-bottom-style: none;
350-
}
351346
}
352347

353348
cursor: default;

packages/mdc-textfield/_mixins.scss

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,8 @@
104104
padding:
105105
variables.$input-padding-top
106106
variables.$input-padding
107-
variables.$input-padding-bottom;
107+
variables.$input-padding-bottom + variables.$input-border-bottom;
108108
border: none;
109-
border-bottom: 1px solid;
110109
border-radius: 0;
111110
background: none;
112111
appearance: none;
@@ -165,7 +164,7 @@
165164
.mdc-text-field--no-label:not(.mdc-text-field--outlined):not(.mdc-text-field--textarea) & {
166165
@include feature-targeting-mixins.targets($feat-structure) {
167166
padding-top: 16px;
168-
padding-bottom: 16px;
167+
padding-bottom: 16px + variables.$input-border-bottom;
169168
}
170169
}
171170
}
@@ -755,8 +754,11 @@
755754
@include icon-mixins.trailing-icon-color_(variables.$disabled-icon, $query: $query);
756755
@include fill-color_(variables.$disabled-background, $query: $query);
757756

757+
@media screen and (-ms-high-contrast: active) {
758+
@include bottom-line-color_(GrayText, $query: $query);
759+
}
760+
758761
@include feature-targeting-mixins.targets($feat-structure) {
759-
border-bottom: none;
760762
pointer-events: none;
761763
}
762764

@@ -938,16 +940,8 @@
938940
// Outlined
939941

940942
@mixin outlined-disabled_($query: feature-targeting-functions.all()) {
941-
$feat-structure: feature-targeting-functions.create-target($query, structure);
942-
943943
@include notched-outline-mixins.color(variables.$outlined-disabled-border, $query: $query);
944944
@include fill-color_(transparent, $query);
945-
946-
.mdc-text-field__input {
947-
@include feature-targeting-mixins.targets($feat-structure) {
948-
border-bottom: none;
949-
}
950-
}
951945
}
952946

953947
@mixin outlined-invalid_($query: feature-targeting-functions.all()) {
@@ -1008,7 +1002,6 @@
10081002
@include fill-color(transparent, $query: $query);
10091003

10101004
@include feature-targeting-mixins.targets($feat-structure) {
1011-
border: none;
10121005
overflow: visible;
10131006
}
10141007

@@ -1034,13 +1027,9 @@
10341027
}
10351028

10361029
@mixin hover-outline-color_($color, $query: feature-targeting-functions.all()) {
1037-
&:not(.mdc-text-field--focused) {
1038-
// stylelint-disable-next-line selector-combinator-space-after
1039-
.mdc-text-field__input:hover ~,
1040-
.mdc-text-field__icon:hover ~ {
1041-
.mdc-notched-outline {
1042-
@include notched-outline-mixins.color($color, $query: $query);
1043-
}
1030+
&:not(.mdc-text-field--focused):hover {
1031+
.mdc-notched-outline {
1032+
@include notched-outline-mixins.color($color, $query: $query);
10441033
}
10451034
}
10461035
}
@@ -1212,7 +1201,7 @@
12121201

12131202
.mdc-text-field__input {
12141203
@include feature-targeting-mixins.targets($feat-structure) {
1215-
padding: 0;
1204+
padding: 0 0 variables.$input-border-bottom;
12161205
}
12171206
}
12181207
}
@@ -1276,7 +1265,6 @@
12761265
height: auto;
12771266
margin: $padding-inset / 2 1px 1px 0;
12781267
padding: 0 $padding-inset $padding-inset;
1279-
border: none;
12801268
}
12811269

12821270
@include feature-targeting-mixins.targets($feat-typography) {
@@ -1385,28 +1373,22 @@
13851373
}
13861374

13871375
@mixin bottom-line-color_($color, $query: feature-targeting-functions.all()) {
1388-
$feat-color: feature-targeting-functions.create-target($query, color);
1389-
1390-
.mdc-text-field__input {
1391-
@include feature-targeting-mixins.targets($feat-color) {
1392-
@include theme-mixins.prop(border-bottom-color, $color);
1393-
}
1376+
.mdc-line-ripple {
1377+
@include line-ripple-mixins.inactive-color($color, $query: $query);
13941378
}
13951379
}
13961380

13971381
@mixin hover-bottom-line-color_($color, $query: feature-targeting-functions.all()) {
13981382
$feat-color: feature-targeting-functions.create-target($query, color);
13991383

1400-
.mdc-text-field__input:hover {
1401-
@include feature-targeting-mixins.targets($feat-color) {
1402-
@include theme-mixins.prop(border-bottom-color, $color);
1403-
}
1384+
&:hover .mdc-line-ripple {
1385+
@include line-ripple-mixins.inactive-color($color, $query: $query);
14041386
}
14051387
}
14061388

14071389
@mixin line-ripple-color_($color, $query: feature-targeting-functions.all()) {
14081390
.mdc-line-ripple {
1409-
@include line-ripple-mixins.color($color, $query: $query);
1391+
@include line-ripple-mixins.active-color($color, $query: $query);
14101392
}
14111393
}
14121394

0 commit comments

Comments
 (0)