material_components_web-sass 0.23.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/CHANGELOG.md +9 -0
- data/lib/material_components_web/sass/version.rb +1 -1
- data/vendor/assets/javascripts/material-components-web.js +12 -7
- data/vendor/assets/stylesheets/@material/button/_mixins.scss +5 -11
- data/vendor/assets/stylesheets/@material/button/mdc-button.scss +3 -2
- data/vendor/assets/stylesheets/@material/checkbox/_mixins.scss +0 -8
- data/vendor/assets/stylesheets/@material/checkbox/_variables.scss +1 -0
- data/vendor/assets/stylesheets/@material/checkbox/mdc-checkbox.scss +4 -2
- data/vendor/assets/stylesheets/@material/drawer/_mixins.scss +3 -3
- data/vendor/assets/stylesheets/@material/drawer/permanent/mdc-permanent-drawer.scss +9 -9
- data/vendor/assets/stylesheets/@material/drawer/persistent/mdc-persistent-drawer.scss +3 -3
- data/vendor/assets/stylesheets/@material/drawer/temporary/mdc-temporary-drawer.scss +8 -8
- data/vendor/assets/stylesheets/@material/fab/_mixins.scss +6 -9
- data/vendor/assets/stylesheets/@material/fab/mdc-fab.scss +3 -2
- data/vendor/assets/stylesheets/@material/icon-toggle/mdc-icon-toggle.scss +6 -9
- data/vendor/assets/stylesheets/@material/layout-grid/_mixins.scss +2 -0
- data/vendor/assets/stylesheets/@material/list/mdc-list.scss +4 -5
- data/vendor/assets/stylesheets/@material/radio/_functions.scss +26 -0
- data/vendor/assets/stylesheets/@material/radio/_mixins.scss +45 -0
- data/vendor/assets/stylesheets/@material/radio/_variables.scss +23 -0
- data/vendor/assets/stylesheets/@material/radio/mdc-radio.scss +15 -44
- data/vendor/assets/stylesheets/@material/ripple/_keyframes.scss +31 -29
- data/vendor/assets/stylesheets/@material/ripple/_mixins.scss +98 -177
- data/vendor/assets/stylesheets/@material/{fab → ripple}/_variables.scss +5 -2
- data/vendor/assets/stylesheets/@material/ripple/mdc-ripple.scss +6 -17
- data/vendor/assets/stylesheets/@material/snackbar/mdc-snackbar.scss +4 -3
- data/vendor/assets/stylesheets/@material/switch/_functions.scss +21 -0
- data/vendor/assets/stylesheets/@material/switch/_mixins.scss +74 -0
- data/vendor/assets/stylesheets/@material/switch/_variables.scss +9 -5
- data/vendor/assets/stylesheets/@material/switch/mdc-switch.scss +36 -43
- data/vendor/assets/stylesheets/@material/tabs/tab/mdc-tab.scss +5 -7
- data/vendor/assets/stylesheets/@material/textfield/_mixins.scss +23 -0
- data/vendor/assets/stylesheets/@material/textfield/_variables.scss +9 -0
- data/vendor/assets/stylesheets/@material/textfield/mdc-textfield.scss +20 -61
- data/vendor/assets/stylesheets/@material/theme/{_color_palette.scss → _color-palette.scss} +0 -0
- data/vendor/assets/stylesheets/@material/theme/_variables.scss +24 -0
- metadata +9 -4
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
.mdc-icon-toggle {
|
24
24
|
@include mdc-theme-prop(color, text-secondary-on-light);
|
25
|
-
@include mdc-ripple-
|
25
|
+
@include mdc-ripple-surface;
|
26
26
|
// NOTE: The spec denotes specific opacity values to use for different styles of icon buttons,
|
27
27
|
// either "light", "dark", or "color". Because ripples are made up of two distinct elements,
|
28
28
|
// we need to use an opacity value such that when two elements of the same color and opacity are
|
@@ -38,12 +38,11 @@
|
|
38
38
|
// We simply solve this quadratic equation for the nonnegative root between [0, 1].
|
39
39
|
// E.g. for black 12% opacity:
|
40
40
|
// https://www.wolframalpha.com/input/?i=x+%2B+x(1+-+x)+%3D+.12,+x+%3C%3D+1,+x+%3E%3D+0
|
41
|
-
@include mdc-ripple-
|
42
|
-
@include mdc-ripple-
|
41
|
+
@include mdc-ripple-color(black, .062);
|
42
|
+
@include mdc-ripple-radius;
|
43
43
|
|
44
44
|
@include mdc-theme-dark(".mdc-icon-toggle", true) {
|
45
|
-
@include mdc-ripple-
|
46
|
-
@include mdc-ripple-fg((pseudo: "::after", base-color: white, opacity: .16));
|
45
|
+
@include mdc-ripple-color(white, .16);
|
47
46
|
}
|
48
47
|
|
49
48
|
display: flex;
|
@@ -76,14 +75,12 @@
|
|
76
75
|
|
77
76
|
.mdc-icon-toggle--primary {
|
78
77
|
@include mdc-theme-prop(color, primary);
|
79
|
-
@include mdc-ripple-
|
80
|
-
@include mdc-ripple-fg((pseudo: "::after", theme-style: primary, opacity: .14));
|
78
|
+
@include mdc-ripple-color(primary, .14);
|
81
79
|
}
|
82
80
|
|
83
81
|
.mdc-icon-toggle--accent {
|
84
82
|
@include mdc-theme-prop(color, secondary);
|
85
|
-
@include mdc-ripple-
|
86
|
-
@include mdc-ripple-fg((pseudo: "::after", theme-style: secondary, opacity: .14));
|
83
|
+
@include mdc-ripple-color(secondary, .14);
|
87
84
|
}
|
88
85
|
|
89
86
|
.mdc-icon-toggle--disabled {
|
@@ -12,6 +12,8 @@
|
|
12
12
|
// See the License for the specific language governing permissions and
|
13
13
|
// limitations under the License.
|
14
14
|
|
15
|
+
@import "./variables";
|
16
|
+
|
15
17
|
// returns the lower grid boundary or null if the smallest grid is selected
|
16
18
|
@function mdc-layout-grid-breakpoint-min($size) {
|
17
19
|
@if not map-has-key($mdc-layout-grid-columns, $size) {
|
@@ -154,9 +154,9 @@ a.mdc-list-item {
|
|
154
154
|
// stylelint-enable selector-max-type,selector-no-qualifying-type
|
155
155
|
|
156
156
|
.mdc-list-item.mdc-ripple-upgraded {
|
157
|
-
@include mdc-ripple-
|
158
|
-
@include mdc-ripple-
|
159
|
-
@include mdc-ripple-
|
157
|
+
@include mdc-ripple-surface;
|
158
|
+
@include mdc-ripple-color;
|
159
|
+
@include mdc-ripple-radius;
|
160
160
|
@include mdc-rtl-reflexive-position(left, $mdc-list-side-padding * -1);
|
161
161
|
|
162
162
|
position: relative;
|
@@ -171,8 +171,7 @@ a.mdc-list-item {
|
|
171
171
|
}
|
172
172
|
|
173
173
|
@include mdc-theme-dark(".mdc-list") {
|
174
|
-
@include mdc-ripple-
|
175
|
-
@include mdc-ripple-fg((pseudo: "::after", base-color: white, opacity: .12));
|
174
|
+
@include mdc-ripple-color(white, .12);
|
176
175
|
}
|
177
176
|
}
|
178
177
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
//
|
2
|
+
// Copyright 2016 Google Inc. All Rights Reserved.
|
3
|
+
//
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
// you may not use this file except in compliance with the License.
|
6
|
+
// You may obtain a copy of the License at
|
7
|
+
//
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
//
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
// See the License for the specific language governing permissions and
|
14
|
+
// limitations under the License.
|
15
|
+
//
|
16
|
+
|
17
|
+
@import "@material/animation/functions";
|
18
|
+
@import "./variables";
|
19
|
+
|
20
|
+
@function mdc-radio-enter($name) {
|
21
|
+
@return mdc-animation-enter($name, $mdc-radio-transition-duration);
|
22
|
+
}
|
23
|
+
|
24
|
+
@function mdc-radio-exit($name) {
|
25
|
+
@return mdc-animation-exit-temporary($name, $mdc-radio-transition-duration);
|
26
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
//
|
2
|
+
// Copyright 2016 Google Inc. All Rights Reserved.
|
3
|
+
//
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
// you may not use this file except in compliance with the License.
|
6
|
+
// You may obtain a copy of the License at
|
7
|
+
//
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
//
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
// See the License for the specific language governing permissions and
|
14
|
+
// limitations under the License.
|
15
|
+
//
|
16
|
+
|
17
|
+
@import "@material/theme/variables";
|
18
|
+
@import "./variables";
|
19
|
+
|
20
|
+
@mixin mdc-radio-unchecked-stroke-color($color) {
|
21
|
+
// stylelint-disable-next-line selector-max-specificity
|
22
|
+
.mdc-radio__native-control:enabled:not(:checked) + .mdc-radio__background .mdc-radio__outer-circle {
|
23
|
+
@include mdc-theme-prop(border-color, $color);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
@mixin mdc-radio-checked-stroke-color($color) {
|
28
|
+
// stylelint-disable-next-line selector-max-specificity
|
29
|
+
.mdc-radio__native-control:enabled:checked + .mdc-radio__background .mdc-radio__outer-circle {
|
30
|
+
@include mdc-theme-prop(border-color, $color);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
@mixin mdc-radio-ink-color($color) {
|
35
|
+
// stylelint-disable-next-line selector-max-specificity
|
36
|
+
.mdc-radio__native-control:enabled + .mdc-radio__background .mdc-radio__inner-circle {
|
37
|
+
@include mdc-theme-prop(background-color, $color);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
@mixin mdc-radio-focus-indicator-color($color) {
|
42
|
+
.mdc-radio__background::before {
|
43
|
+
@include mdc-theme-prop(background-color, $color, $edgeOptOut: true);
|
44
|
+
}
|
45
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
//
|
2
|
+
// Copyright 2016 Google Inc. All Rights Reserved.
|
3
|
+
//
|
4
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
// you may not use this file except in compliance with the License.
|
6
|
+
// You may obtain a copy of the License at
|
7
|
+
//
|
8
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
//
|
10
|
+
// Unless required by applicable law or agreed to in writing, software
|
11
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
// See the License for the specific language governing permissions and
|
14
|
+
// limitations under the License.
|
15
|
+
//
|
16
|
+
|
17
|
+
$mdc-radio-touch-area: 40px;
|
18
|
+
$mdc-radio-ui-size: 20px;
|
19
|
+
$mdc-radio-ui-pct: percentage($mdc-radio-ui-size / $mdc-radio-touch-area);
|
20
|
+
$mdc-radio-transition-duration: 120ms;
|
21
|
+
$mdc-radio-ripple-opacity: .14;
|
22
|
+
$mdc-radio-ripple-radius: 50%;
|
23
|
+
$mdc-radio-baseline-theme-color: secondary;
|
@@ -17,25 +17,24 @@
|
|
17
17
|
@import "@material/animation/functions";
|
18
18
|
@import "@material/ripple/mixins";
|
19
19
|
@import "@material/theme/mixins";
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
$mdc-radio-ui-pct: percentage($mdc-radio-ui-size / $mdc-radio-touch-area);
|
24
|
-
$mdc-radio-transition-duration: 120ms;
|
25
|
-
|
26
|
-
@function mdc-radio-enter($name) {
|
27
|
-
@return mdc-animation-enter($name, $mdc-radio-transition-duration);
|
28
|
-
}
|
29
|
-
|
30
|
-
@function mdc-radio-exit($name) {
|
31
|
-
@return mdc-animation-exit-temporary($name, $mdc-radio-transition-duration);
|
32
|
-
}
|
20
|
+
@import "./functions";
|
21
|
+
@import "./mixins";
|
22
|
+
@import "./variables";
|
33
23
|
|
34
24
|
// postcss-bem-linter: define radio
|
35
25
|
.mdc-radio {
|
36
|
-
@include mdc-
|
37
|
-
|
38
|
-
@include mdc-
|
26
|
+
@include mdc-radio-unchecked-stroke-color(text-secondary-on-light);
|
27
|
+
|
28
|
+
@include mdc-theme-dark {
|
29
|
+
@include mdc-radio-unchecked-stroke-color(text-secondary-on-dark);
|
30
|
+
}
|
31
|
+
|
32
|
+
@include mdc-radio-checked-stroke-color($mdc-radio-baseline-theme-color);
|
33
|
+
@include mdc-radio-ink-color($mdc-radio-baseline-theme-color);
|
34
|
+
@include mdc-radio-focus-indicator-color($mdc-radio-baseline-theme-color);
|
35
|
+
@include mdc-ripple-surface;
|
36
|
+
@include mdc-ripple-color($mdc-radio-baseline-theme-color, $mdc-radio-ripple-opacity);
|
37
|
+
@include mdc-ripple-radius($mdc-radio-ripple-radius);
|
39
38
|
|
40
39
|
display: inline-block;
|
41
40
|
position: relative;
|
@@ -47,14 +46,6 @@ $mdc-radio-transition-duration: 120ms;
|
|
47
46
|
cursor: pointer;
|
48
47
|
will-change: opacity, transform, border-color, background-color, color;
|
49
48
|
|
50
|
-
&::before,
|
51
|
-
&::after {
|
52
|
-
top: 0;
|
53
|
-
left: 0;
|
54
|
-
width: 100%;
|
55
|
-
height: 100%;
|
56
|
-
}
|
57
|
-
|
58
49
|
// stylelint-disable plugin/selector-bem-pattern
|
59
50
|
&.mdc-ripple-upgraded {
|
60
51
|
.mdc-radio__background::before {
|
@@ -73,8 +64,6 @@ $mdc-radio-transition-duration: 120ms;
|
|
73
64
|
height: $mdc-radio-ui-pct;
|
74
65
|
|
75
66
|
&::before {
|
76
|
-
@include mdc-theme-prop(background-color, primary, $edgeOptOut: true);
|
77
|
-
|
78
67
|
position: absolute;
|
79
68
|
top: 0;
|
80
69
|
left: 0;
|
@@ -90,12 +79,6 @@ $mdc-radio-transition-duration: 120ms;
|
|
90
79
|
}
|
91
80
|
|
92
81
|
&__outer-circle {
|
93
|
-
@include mdc-theme-prop(border-color, text-secondary-on-light);
|
94
|
-
|
95
|
-
@include mdc-theme-dark(".mdc-radio") {
|
96
|
-
@include mdc-theme-prop(border-color, text-secondary-on-dark);
|
97
|
-
}
|
98
|
-
|
99
82
|
position: absolute;
|
100
83
|
top: 0;
|
101
84
|
left: 0;
|
@@ -109,12 +92,6 @@ $mdc-radio-transition-duration: 120ms;
|
|
109
92
|
}
|
110
93
|
|
111
94
|
&__inner-circle {
|
112
|
-
@include mdc-theme-prop(background-color, text-secondary-on-light);
|
113
|
-
|
114
|
-
@include mdc-theme-dark(".mdc-radio") {
|
115
|
-
@include mdc-theme-prop(background-color, text-secondary-on-dark);
|
116
|
-
}
|
117
|
-
|
118
95
|
position: absolute;
|
119
96
|
top: 0;
|
120
97
|
left: 0;
|
@@ -162,13 +139,7 @@ $mdc-radio-transition-duration: 120ms;
|
|
162
139
|
|
163
140
|
.mdc-radio__native-control:checked {
|
164
141
|
+ .mdc-radio__background {
|
165
|
-
.mdc-radio__outer-circle {
|
166
|
-
@include mdc-theme-prop(border-color, primary);
|
167
|
-
}
|
168
|
-
|
169
142
|
.mdc-radio__inner-circle {
|
170
|
-
@include mdc-theme-prop(background-color, primary);
|
171
|
-
|
172
143
|
transform: scale(.5);
|
173
144
|
transition: mdc-radio-enter(transform), mdc-radio-enter(background-color);
|
174
145
|
}
|
@@ -14,43 +14,45 @@
|
|
14
14
|
// limitations under the License.
|
15
15
|
//
|
16
16
|
|
17
|
-
|
17
|
+
// MDC Ripple keyframes are split into their own file so that _mixins.scss can rely on them.
|
18
18
|
|
19
19
|
@import "@material/animation/variables";
|
20
20
|
|
21
|
-
@
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
@mixin mdc-ripple-keyframes_ {
|
22
|
+
@keyframes mdc-ripple-fg-radius-in {
|
23
|
+
from {
|
24
|
+
animation-timing-function: $mdc-animation-standard-curve-timing-function;
|
25
|
+
// NOTE: For these keyframes, we do not need custom property fallbacks because they are only
|
26
|
+
// used in conjunction with `.mdc-ripple-upgraded`. Since MDCRippleFoundation checks to ensure
|
27
|
+
// that custom properties are supported within the browser before adding this class, we can
|
28
|
+
// safely use them without a fallback.
|
29
|
+
transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
|
30
|
+
}
|
31
|
+
|
32
|
+
to {
|
33
|
+
transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
|
34
|
+
}
|
29
35
|
}
|
30
36
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
@keyframes mdc-ripple-fg-opacity-in {
|
37
|
-
from {
|
38
|
-
animation-timing-function: linear;
|
39
|
-
opacity: 0;
|
40
|
-
}
|
37
|
+
@keyframes mdc-ripple-fg-opacity-in {
|
38
|
+
from {
|
39
|
+
animation-timing-function: linear;
|
40
|
+
opacity: 0;
|
41
|
+
}
|
41
42
|
|
42
|
-
|
43
|
-
|
43
|
+
to {
|
44
|
+
opacity: 1;
|
45
|
+
}
|
44
46
|
}
|
45
|
-
}
|
46
47
|
|
47
|
-
@keyframes mdc-ripple-fg-opacity-out {
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
48
|
+
@keyframes mdc-ripple-fg-opacity-out {
|
49
|
+
from {
|
50
|
+
animation-timing-function: linear;
|
51
|
+
opacity: 1;
|
52
|
+
}
|
52
53
|
|
53
|
-
|
54
|
-
|
54
|
+
to {
|
55
|
+
opacity: 0;
|
56
|
+
}
|
55
57
|
}
|
56
58
|
}
|
@@ -18,19 +18,34 @@
|
|
18
18
|
@import "@material/theme/variables";
|
19
19
|
@import "./keyframes";
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
21
|
+
// Ensure that styles needed by any component using MDC Ripple are emitted, but only once.
|
22
|
+
// (Every component using MDC Ripple imports these mixins, but doesn't necessarily import mdc-ripple.scss.)
|
23
|
+
|
24
|
+
// This variable is not intended to be overridden externally; it uses !default to avoid being reset
|
25
|
+
// every time this file is imported.
|
26
|
+
$mdc-ripple-common-styles-emitted_: false !default;
|
27
|
+
|
28
|
+
@if not $mdc-ripple-common-styles-emitted_ {
|
29
|
+
$mdc-ripple-common-styles-emitted_: true;
|
30
|
+
|
31
|
+
@include mdc-ripple-keyframes_;
|
32
|
+
|
33
|
+
// Styles used to detect buggy behavior of CSS custom properties in Edge.
|
34
|
+
// See: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11495448/
|
35
|
+
// This is included in _mixins.scss rather than mdc-ripple.scss so that it will be
|
36
|
+
// present for other components which rely on ripple as well as mdc-ripple itself.
|
37
|
+
.mdc-ripple-surface--test-edge-var-bug {
|
38
|
+
--mdc-ripple-surface-test-edge-var: 1px solid #000;
|
39
|
+
|
40
|
+
visibility: hidden;
|
41
|
+
|
42
|
+
&::before {
|
43
|
+
border: var(--mdc-ripple-surface-test-edge-var);
|
44
|
+
}
|
45
|
+
}
|
29
46
|
}
|
30
47
|
|
31
|
-
@mixin mdc-ripple-
|
32
|
-
--mdc-ripple-surface-width: 0;
|
33
|
-
--mdc-ripple-surface-height: 0;
|
48
|
+
@mixin mdc-ripple-surface() {
|
34
49
|
--mdc-ripple-fg-size: 0;
|
35
50
|
--mdc-ripple-left: 0;
|
36
51
|
--mdc-ripple-top: 0;
|
@@ -41,6 +56,28 @@
|
|
41
56
|
will-change: transform, opacity;
|
42
57
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
43
58
|
|
59
|
+
&::before,
|
60
|
+
&::after {
|
61
|
+
position: absolute;
|
62
|
+
transition: opacity 250ms linear;
|
63
|
+
border-radius: 50%;
|
64
|
+
pointer-events: none;
|
65
|
+
content: "";
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
@mixin mdc-ripple-color($color: black, $opacity: .06) {
|
70
|
+
// Opacity styles are here (rather than in mdc-ripple-surface) to ensure that opacity is re-initialized for
|
71
|
+
// cases where this mixin is used to override another inherited use of itself,
|
72
|
+
// without needing to re-include mdc-ripple-surface.
|
73
|
+
&::before,
|
74
|
+
&::after {
|
75
|
+
@include mdc-ripple-color_($color, $opacity);
|
76
|
+
|
77
|
+
opacity: 0;
|
78
|
+
}
|
79
|
+
|
80
|
+
// Note: when :active is applied, :focus is already applied, which will effectively double the effect.
|
44
81
|
&:not(.mdc-ripple-upgraded) {
|
45
82
|
&:hover::before,
|
46
83
|
&:focus::before,
|
@@ -49,209 +86,93 @@
|
|
49
86
|
opacity: .6;
|
50
87
|
}
|
51
88
|
}
|
52
|
-
}
|
53
|
-
|
54
|
-
@mixin mdc-ripple-color_($config) {
|
55
|
-
$base-color: map-get($config, base-color);
|
56
|
-
$opacity: map-get($config, opacity);
|
57
|
-
$theme-style: map-get($config, theme-style);
|
58
|
-
|
59
|
-
// stylelint-disable at-rule-empty-line-before, block-closing-brace-newline-after
|
60
|
-
@if ($theme-style) {
|
61
|
-
$theme-value: map-get($mdc-theme-property-values, $theme-style);
|
62
|
-
|
63
|
-
/* @alternate */
|
64
|
-
$css-var: $theme-value;
|
65
|
-
$css-var: var(--mdc-theme-#{$theme-style}, $theme-value);
|
66
|
-
|
67
|
-
background-color: rgba($theme-value, $opacity);
|
68
89
|
|
69
|
-
|
70
|
-
|
71
|
-
// begin to implement the CSS 4 color spec.
|
72
|
-
@supports (background-color: color(green a(10%))) {
|
73
|
-
background-color: color(#{$css-var} a(#{percentage($opacity)}));
|
74
|
-
}
|
75
|
-
} @else {
|
76
|
-
background-color: rgba($base-color, $opacity);
|
90
|
+
&.mdc-ripple-upgraded--background-focused::before {
|
91
|
+
opacity: .99999;
|
77
92
|
}
|
78
93
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
$radius: map-get($config, radius);
|
84
|
-
|
85
|
-
@include mdc-ripple-color_($config);
|
94
|
+
&.mdc-ripple-upgraded--background-active-fill::before {
|
95
|
+
transition-duration: 120ms;
|
96
|
+
opacity: 1;
|
97
|
+
}
|
86
98
|
|
87
|
-
|
88
|
-
top: calc(50% - #{$radius});
|
89
|
-
left: calc(50% - #{$radius});
|
90
|
-
width: $radius * 2;
|
91
|
-
height: $radius * 2;
|
92
|
-
transition: opacity 250ms linear;
|
93
|
-
border-radius: 50%;
|
94
|
-
opacity: 0;
|
95
|
-
pointer-events: none;
|
96
|
-
}
|
99
|
+
// Foreground ripple styles
|
97
100
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
$radius: map-get($config, radius);
|
101
|
+
&.mdc-ripple-upgraded::after {
|
102
|
+
opacity: 0;
|
103
|
+
}
|
102
104
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
@include mdc-ripple-bg-base_($config);
|
105
|
+
&.mdc-ripple-upgraded--foreground-activation::after {
|
106
|
+
animation: 300ms mdc-ripple-fg-radius-in forwards, 83ms mdc-ripple-fg-opacity-in forwards;
|
107
|
+
}
|
107
108
|
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
109
|
+
&.mdc-ripple-upgraded--foreground-deactivation::after {
|
110
|
+
animation: 83ms mdc-ripple-fg-opacity-out;
|
111
|
+
// Retain transform from mdc-ripple-fg-radius-in activation
|
112
|
+
transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
|
112
113
|
}
|
113
|
-
|
114
|
+
}
|
114
115
|
|
115
|
-
|
116
|
+
@mixin mdc-ripple-radius($radius: 100%) {
|
117
|
+
&::before,
|
118
|
+
&::after {
|
116
119
|
top: calc(50% - #{$radius});
|
117
120
|
left: calc(50% - #{$radius});
|
118
121
|
width: $radius * 2;
|
119
122
|
height: $radius * 2;
|
120
|
-
|
121
|
-
/* @alternate */
|
122
|
-
transform: scale(0);
|
123
|
-
transform: scale(var(--mdc-ripple-fg-scale, 0));
|
124
123
|
}
|
125
124
|
|
126
|
-
|
127
|
-
opacity: .99999;
|
128
|
-
}
|
125
|
+
// Background ripple styles
|
129
126
|
|
130
|
-
&.mdc-ripple-upgraded
|
131
|
-
|
132
|
-
|
127
|
+
&.mdc-ripple-upgraded::before {
|
128
|
+
top: calc(50% - #{$radius});
|
129
|
+
left: calc(50% - #{$radius});
|
130
|
+
width: $radius * 2;
|
131
|
+
height: $radius * 2;
|
132
|
+
transform: scale(var(--mdc-ripple-fg-scale, 0));
|
133
133
|
}
|
134
134
|
|
135
|
-
&.mdc-ripple-upgraded--unbounded
|
136
|
-
/* @alternate */
|
137
|
-
top: calc(50% - #{$radius / 2});
|
135
|
+
&.mdc-ripple-upgraded--unbounded::before {
|
138
136
|
top: var(--mdc-ripple-top, calc(50% - #{$radius / 2}));
|
139
|
-
|
140
|
-
/* @alternate */
|
141
|
-
left: calc(50% - #{$radius / 2});
|
142
137
|
left: var(--mdc-ripple-left, calc(50% - #{$radius / 2}));
|
143
|
-
|
144
|
-
/* @alternate */
|
145
|
-
width: $radius;
|
146
138
|
width: var(--mdc-ripple-fg-size, $radius);
|
147
|
-
|
148
|
-
/* @alternate */
|
149
|
-
height: $radius;
|
150
139
|
height: var(--mdc-ripple-fg-size, $radius);
|
151
|
-
|
152
|
-
/* @alternate */
|
153
|
-
transform: scale(0);
|
154
140
|
transform: scale(var(--mdc-ripple-fg-scale, 0));
|
155
141
|
}
|
156
|
-
}
|
157
|
-
|
158
|
-
@mixin mdc-ripple-fg-base_($config) {
|
159
|
-
$radius: map-get($config, radius);
|
160
|
-
|
161
|
-
@include mdc-ripple-color_($config);
|
162
|
-
|
163
|
-
position: absolute;
|
164
|
-
top: calc(50% - #{$radius});
|
165
|
-
left: calc(50% - #{$radius});
|
166
|
-
width: $radius * 2;
|
167
|
-
height: $radius * 2;
|
168
|
-
transition: opacity 250ms linear;
|
169
|
-
border-radius: 50%;
|
170
|
-
opacity: 0;
|
171
|
-
pointer-events: none;
|
172
|
-
}
|
173
|
-
|
174
|
-
@mixin mdc-ripple-fg($config: ()) {
|
175
|
-
$config: map-merge(mdc-ripple-default-config_(), $config);
|
176
|
-
$pseudo: map-get($config, pseudo);
|
177
|
-
$radius: map-get($config, radius);
|
178
|
-
|
179
|
-
// stylelint-disable at-rule-empty-line-before, block-closing-brace-newline-after
|
180
|
-
@if ($pseudo) {
|
181
|
-
&#{$pseudo} {
|
182
|
-
@include mdc-ripple-fg-base_($config);
|
183
|
-
|
184
|
-
content: "";
|
185
|
-
}
|
186
|
-
} @else {
|
187
|
-
@include mdc-ripple-fg-base_($config);
|
188
|
-
}
|
189
|
-
// stylelint-enable at-rule-empty-line-before, block-closing-brace-newline-after
|
190
|
-
|
191
|
-
&.mdc-ripple-upgraded {
|
192
|
-
&#{$pseudo} {
|
193
|
-
top: 0;
|
194
|
-
left: 0;
|
195
|
-
|
196
|
-
/* @alternate */
|
197
|
-
width: $radius;
|
198
|
-
width: var(--mdc-ripple-fg-size, $radius);
|
199
|
-
|
200
|
-
/* @alternate */
|
201
|
-
height: $radius;
|
202
|
-
height: var(--mdc-ripple-fg-size, $radius);
|
203
|
-
transform: scale(0);
|
204
|
-
transform-origin: center center;
|
205
|
-
opacity: 0;
|
206
|
-
}
|
207
|
-
}
|
208
142
|
|
209
|
-
|
210
|
-
|
211
|
-
}
|
212
|
-
|
213
|
-
&.mdc-ripple-upgraded--unbounded#{$pseudo} {
|
214
|
-
/* @alternate */
|
143
|
+
// Foreground ripple styles
|
144
|
+
&.mdc-ripple-upgraded::after {
|
215
145
|
top: 0;
|
216
|
-
top: var(--mdc-ripple-top, 0);
|
217
|
-
|
218
|
-
/* @alternate */
|
219
146
|
left: 0;
|
220
|
-
left: var(--mdc-ripple-left, 0);
|
221
|
-
|
222
|
-
/* @alternate */
|
223
|
-
width: $radius;
|
224
147
|
width: var(--mdc-ripple-fg-size, $radius);
|
225
|
-
|
226
|
-
/* @alternate */
|
227
|
-
height: $radius;
|
228
148
|
height: var(--mdc-ripple-fg-size, $radius);
|
229
149
|
transform: scale(0);
|
230
150
|
transform-origin: center center;
|
231
151
|
}
|
232
152
|
|
233
|
-
&.mdc-ripple-upgraded--
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
&.mdc-ripple-upgraded--foreground-deactivation#{$pseudo} {
|
238
|
-
animation: 83ms mdc-ripple-fg-opacity-out;
|
239
|
-
// Retain transform from mdc-ripple-fg-radius-in activation
|
240
|
-
transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
|
153
|
+
&.mdc-ripple-upgraded--unbounded::after {
|
154
|
+
top: var(--mdc-ripple-top, 0);
|
155
|
+
left: var(--mdc-ripple-left, 0);
|
241
156
|
}
|
242
157
|
}
|
243
158
|
|
244
|
-
|
245
|
-
//
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
159
|
+
@mixin mdc-ripple-color_($color, $opacity) {
|
160
|
+
// stylelint-disable at-rule-empty-line-before, block-closing-brace-newline-after
|
161
|
+
@if type-of($color) == "color" {
|
162
|
+
background-color: rgba($color, $opacity);
|
163
|
+
} @else {
|
164
|
+
// Assume $color is a theme property name
|
165
|
+
$theme-value: map-get($mdc-theme-property-values, $color);
|
166
|
+
$css-var: var(--mdc-theme-#{$color}, $theme-value);
|
251
167
|
|
252
|
-
|
168
|
+
background-color: rgba($theme-value, $opacity);
|
253
169
|
|
254
|
-
|
255
|
-
|
170
|
+
// See: https://drafts.csswg.org/css-color/#modifying-colors
|
171
|
+
// While this is currently unsupported as of now, it will begin to work by default as browsers
|
172
|
+
// begin to implement the CSS 4 color spec.
|
173
|
+
@supports (background-color: color(green a(10%))) {
|
174
|
+
background-color: color(#{$css-var} a(#{percentage($opacity)}));
|
175
|
+
}
|
256
176
|
}
|
177
|
+
// stylelint-enable at-rule-empty-line-before, block-closing-brace-newline-after
|
257
178
|
}
|