material_components_web-sass 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.rspec +2 -0
- data/.travis.yml +7 -0
- data/CHANGELOG.md +8 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +97 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/material_components_web-sass.rb +52 -0
- data/lib/material_components_web/sass/engine.rb +18 -0
- data/lib/material_components_web/sass/version.rb +5 -0
- data/material_components_web-sass.gemspec +32 -0
- data/vendor/assets/fonts/material-icons/LICENSE +202 -0
- data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.eot +0 -0
- data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.ttf +0 -0
- data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.woff +0 -0
- data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.woff2 +0 -0
- data/vendor/assets/fonts/roboto/LICENSE.txt +202 -0
- data/vendor/assets/fonts/roboto/Roboto-Bold.ttf +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Bold.woff +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Bold.woff2 +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Light.ttf +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Light.woff +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Light.woff2 +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Medium.ttf +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Medium.woff +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Medium.woff2 +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Regular.ttf +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Regular.woff +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Regular.woff2 +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Thin.ttf +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Thin.woff +0 -0
- data/vendor/assets/fonts/roboto/Roboto-Thin.woff2 +0 -0
- data/vendor/assets/javascripts/material-components-web.js +5492 -0
- data/vendor/assets/stylesheets/@material/animation/_functions.scss +25 -0
- data/vendor/assets/stylesheets/@material/animation/_mixins.scss +29 -0
- data/vendor/assets/stylesheets/@material/animation/_variables.scss +19 -0
- data/vendor/assets/stylesheets/@material/animation/mdc-animation.scss +31 -0
- data/vendor/assets/stylesheets/@material/button/mdc-button.scss +199 -0
- data/vendor/assets/stylesheets/@material/card/mdc-card.scss +179 -0
- data/vendor/assets/stylesheets/@material/checkbox/_keyframes.scss +180 -0
- data/vendor/assets/stylesheets/@material/checkbox/_variables.scss +31 -0
- data/vendor/assets/stylesheets/@material/checkbox/mdc-checkbox.scss +310 -0
- data/vendor/assets/stylesheets/@material/drawer/_mixins.scss +145 -0
- data/vendor/assets/stylesheets/@material/drawer/mdc-drawer.scss +18 -0
- data/vendor/assets/stylesheets/@material/drawer/permanent/mdc-permanent-drawer.scss +54 -0
- data/vendor/assets/stylesheets/@material/drawer/temporary/mdc-temporary-drawer.scss +134 -0
- data/vendor/assets/stylesheets/@material/elevation/_mixins.scss +68 -0
- data/vendor/assets/stylesheets/@material/elevation/_variables.scss +122 -0
- data/vendor/assets/stylesheets/@material/elevation/mdc-elevation.scss +27 -0
- data/vendor/assets/stylesheets/@material/fab/mdc-fab.scss +122 -0
- data/vendor/assets/stylesheets/@material/fonts/material-icons.scss +36 -0
- data/vendor/assets/stylesheets/@material/fonts/roboto.scss +45 -0
- data/vendor/assets/stylesheets/@material/form-field/mdc-form-field.scss +64 -0
- data/vendor/assets/stylesheets/@material/icon-toggle/mdc-icon-toggle.scss +133 -0
- data/vendor/assets/stylesheets/@material/list/mdc-list.scss +207 -0
- data/vendor/assets/stylesheets/@material/menu/mdc-menu.scss +22 -0
- data/vendor/assets/stylesheets/@material/menu/simple/mdc-simple-menu.scss +194 -0
- data/vendor/assets/stylesheets/@material/radio/mdc-radio.scss +198 -0
- data/vendor/assets/stylesheets/@material/ripple/_keyframes.scss +61 -0
- data/vendor/assets/stylesheets/@material/ripple/_mixins.scss +196 -0
- data/vendor/assets/stylesheets/@material/ripple/_variables.scss +17 -0
- data/vendor/assets/stylesheets/@material/ripple/mdc-ripple.scss +80 -0
- data/vendor/assets/stylesheets/@material/rtl/_mixins.scss +251 -0
- data/vendor/assets/stylesheets/@material/select/mdc-select.scss +174 -0
- data/vendor/assets/stylesheets/@material/snackbar/_variables.scss +22 -0
- data/vendor/assets/stylesheets/@material/snackbar/mdc-snackbar.scss +126 -0
- data/vendor/assets/stylesheets/@material/textfield/mdc-textfield.scss +512 -0
- data/vendor/assets/stylesheets/@material/theme/_constants.scss +285 -0
- data/vendor/assets/stylesheets/@material/theme/_functions.scss +64 -0
- data/vendor/assets/stylesheets/@material/theme/_mixins.scss +104 -0
- data/vendor/assets/stylesheets/@material/theme/_variables.scss +80 -0
- data/vendor/assets/stylesheets/@material/theme/mdc-theme.scss +43 -0
- data/vendor/assets/stylesheets/@material/typography/_mixins.scss +45 -0
- data/vendor/assets/stylesheets/@material/typography/_variables.scss +109 -0
- data/vendor/assets/stylesheets/@material/typography/mdc-typography.scss +32 -0
- data/vendor/assets/stylesheets/_material-components-web.scss +36 -0
- metadata +195 -0
@@ -0,0 +1,27 @@
|
|
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 "./mixins";
|
18
|
+
|
19
|
+
@for $z-value from 0 through 24 {
|
20
|
+
.mdc-elevation--z#{$z-value} {
|
21
|
+
@include mdc-elevation($z-value);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
.mdc-elevation-transition {
|
26
|
+
@include mdc-elevation-transition;
|
27
|
+
}
|
@@ -0,0 +1,122 @@
|
|
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 "@material/animation/variables";
|
19
|
+
@import "@material/elevation/mixins";
|
20
|
+
@import "@material/theme/mixins";
|
21
|
+
|
22
|
+
/* postcss-bem-linter: define fab */
|
23
|
+
.mdc-fab {
|
24
|
+
display: inline-flex;
|
25
|
+
position: relative;
|
26
|
+
justify-content: center;
|
27
|
+
width: 56px;
|
28
|
+
height: 56px;
|
29
|
+
padding: 0;
|
30
|
+
transition: box-shadow 280ms $mdc-animation-fast-out-slow-in-timing-function;
|
31
|
+
border: none;
|
32
|
+
border-radius: 50%;
|
33
|
+
cursor: pointer;
|
34
|
+
user-select: none;
|
35
|
+
box-sizing: border-box;
|
36
|
+
fill: currentColor;
|
37
|
+
-moz-appearance: none;
|
38
|
+
-webkit-appearance: none;
|
39
|
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
40
|
+
|
41
|
+
@include mdc-theme-prop(background-color, accent);
|
42
|
+
@include mdc-theme-prop(color, text-primary-on-accent);
|
43
|
+
@include mdc-elevation(6);
|
44
|
+
|
45
|
+
&--mini {
|
46
|
+
width: 40px;
|
47
|
+
height: 40px;
|
48
|
+
}
|
49
|
+
|
50
|
+
&--plain {
|
51
|
+
background-color: white;
|
52
|
+
|
53
|
+
@include mdc-theme-prop(color, text-primary-on-light);
|
54
|
+
}
|
55
|
+
|
56
|
+
&::before {
|
57
|
+
position: absolute;
|
58
|
+
top: 0;
|
59
|
+
left: 0;
|
60
|
+
width: 100%;
|
61
|
+
height: 100%;
|
62
|
+
transition: mdc-animation-exit(opacity, 120ms);
|
63
|
+
border-radius: inherit;
|
64
|
+
background: black;
|
65
|
+
content: "";
|
66
|
+
opacity: 0;
|
67
|
+
}
|
68
|
+
|
69
|
+
&:focus::before {
|
70
|
+
transition: mdc-animation-enter(opacity, 120ms);
|
71
|
+
opacity: .12;
|
72
|
+
}
|
73
|
+
|
74
|
+
&:active::before {
|
75
|
+
transition: mdc-animation-enter(opacity, 120ms);
|
76
|
+
opacity: .18;
|
77
|
+
}
|
78
|
+
|
79
|
+
&:active:focus::before {
|
80
|
+
transition-timing-function: $mdc-animation-fast-out-slow-in-timing-function;
|
81
|
+
}
|
82
|
+
|
83
|
+
&:active,
|
84
|
+
&:focus {
|
85
|
+
outline: none;
|
86
|
+
}
|
87
|
+
|
88
|
+
&:active {
|
89
|
+
@include mdc-elevation(12);
|
90
|
+
}
|
91
|
+
|
92
|
+
&:hover {
|
93
|
+
cursor: pointer;
|
94
|
+
}
|
95
|
+
|
96
|
+
&::-moz-focus-inner {
|
97
|
+
padding: 0;
|
98
|
+
border: 0;
|
99
|
+
}
|
100
|
+
|
101
|
+
/*
|
102
|
+
This allows for using SVGs within them to align properly in all browsers.
|
103
|
+
Can remove once: https://bugzilla.mozilla.org/show_bug.cgi?id=1294515 is resolved.
|
104
|
+
*/
|
105
|
+
|
106
|
+
/* stylelint-disable selector-no-type */
|
107
|
+
|
108
|
+
/* postcss-bem-linter: ignore */
|
109
|
+
> svg {
|
110
|
+
width: 100%;
|
111
|
+
}
|
112
|
+
|
113
|
+
fieldset:disabled &,
|
114
|
+
&:disabled {
|
115
|
+
background-color: rgba(0, 0, 0, .12);
|
116
|
+
color: rgba(0, 0, 0, .26);
|
117
|
+
cursor: default;
|
118
|
+
pointer-events: none;
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
122
|
+
/* postcss-bem-linter: end */
|
@@ -0,0 +1,36 @@
|
|
1
|
+
@font-face {
|
2
|
+
font-family: 'Material Icons';
|
3
|
+
font-style: normal;
|
4
|
+
font-weight: 400;
|
5
|
+
src: url(font-path('material-icons/MaterialIcons-Regular.eot')); /* For IE6-8 */
|
6
|
+
src: local('Material Icons'),
|
7
|
+
local('MaterialIcons-Regular'),
|
8
|
+
url(font-path('material-icons/MaterialIcons-Regular.woff2')) format('woff2'),
|
9
|
+
url(font-path('material-icons/MaterialIcons-Regular.woff')) format('woff'),
|
10
|
+
url(font-path('material-icons/MaterialIcons-Regular.ttf')) format('truetype');
|
11
|
+
}
|
12
|
+
|
13
|
+
.material-icons {
|
14
|
+
font-family: 'Material Icons';
|
15
|
+
font-weight: normal;
|
16
|
+
font-style: normal;
|
17
|
+
font-size: 24px; /* Preferred icon size */
|
18
|
+
display: inline-block;
|
19
|
+
line-height: 1;
|
20
|
+
text-transform: none;
|
21
|
+
letter-spacing: normal;
|
22
|
+
word-wrap: normal;
|
23
|
+
white-space: nowrap;
|
24
|
+
direction: ltr;
|
25
|
+
|
26
|
+
/* Support for all WebKit browsers. */
|
27
|
+
-webkit-font-smoothing: antialiased;
|
28
|
+
/* Support for Safari and Chrome. */
|
29
|
+
text-rendering: optimizeLegibility;
|
30
|
+
|
31
|
+
/* Support for Firefox. */
|
32
|
+
-moz-osx-font-smoothing: grayscale;
|
33
|
+
|
34
|
+
/* Support for IE. */
|
35
|
+
font-feature-settings: 'liga';
|
36
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
@font-face {
|
2
|
+
font-family: "Roboto";
|
3
|
+
src: local(Roboto Thin),
|
4
|
+
url(font-path('roboto/Roboto-Thin.woff2')) format("woff2"),
|
5
|
+
url(font-path('roboto/Roboto-Thin.woff')) format("woff"),
|
6
|
+
url(font-path('roboto/Roboto-Thin.ttf')) format("truetype");
|
7
|
+
|
8
|
+
font-weight: 100;
|
9
|
+
}
|
10
|
+
@font-face {
|
11
|
+
font-family: "Roboto";
|
12
|
+
src: local(Roboto Light),
|
13
|
+
url(font-path('roboto/Roboto-Light.woff2')) format("woff2"),
|
14
|
+
url(font-path('roboto/Roboto-Light.woff')) format("woff"),
|
15
|
+
url(font-path('roboto/Roboto-Light.ttf')) format("truetype");
|
16
|
+
font-weight: 300;
|
17
|
+
}
|
18
|
+
|
19
|
+
@font-face {
|
20
|
+
font-family: "Roboto";
|
21
|
+
src: local(Roboto),
|
22
|
+
local(Roboto Regular),
|
23
|
+
url(font-path('roboto/Roboto-Regular.woff2')) format("woff2"),
|
24
|
+
url(font-path('roboto/Roboto-Regular.woff')) format("woff"),
|
25
|
+
url(font-path('roboto/Roboto-Regular.ttf')) format("truetype");
|
26
|
+
font-weight: 400;
|
27
|
+
}
|
28
|
+
|
29
|
+
@font-face {
|
30
|
+
font-family: "Roboto";
|
31
|
+
src: local(Roboto Medium),
|
32
|
+
url(font-path('roboto/Roboto-Medium.woff2')) format("woff2"),
|
33
|
+
url(font-path('roboto/Roboto-Medium.woff')) format("woff"),
|
34
|
+
url(font-path('roboto/Roboto-Medium.ttf')) format("truetype");
|
35
|
+
font-weight: 500;
|
36
|
+
}
|
37
|
+
|
38
|
+
@font-face {
|
39
|
+
font-family: "Roboto";
|
40
|
+
src: local(Roboto Bold),
|
41
|
+
url(font-path('roboto/Roboto-Bold.woff2')) format("woff2"),
|
42
|
+
url(font-path('roboto/Roboto-Bold.woff')) format("woff"),
|
43
|
+
url(font-path('roboto/Roboto-Bold.ttf')) format("truetype");
|
44
|
+
font-weight: 700;
|
45
|
+
}
|
@@ -0,0 +1,64 @@
|
|
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/rtl/mixins";
|
18
|
+
@import "@material/theme/mixins";
|
19
|
+
@import "@material/typography/mixins";
|
20
|
+
|
21
|
+
$mdc-form-field-item-spacing: 4px;
|
22
|
+
|
23
|
+
/* stylelint-disable selector-no-type */
|
24
|
+
.mdc-form-field {
|
25
|
+
@include mdc-typography(body1);
|
26
|
+
@include mdc-theme-prop(color, text-primary-on-light);
|
27
|
+
|
28
|
+
display: inline-flex;
|
29
|
+
align-items: center;
|
30
|
+
vertical-align: middle;
|
31
|
+
|
32
|
+
@include mdc-theme-dark {
|
33
|
+
@include mdc-theme-prop(color, text-primary-on-dark);
|
34
|
+
}
|
35
|
+
|
36
|
+
> label {
|
37
|
+
order: 0;
|
38
|
+
margin-right: auto;
|
39
|
+
margin-left: $mdc-form-field-item-spacing;
|
40
|
+
}
|
41
|
+
|
42
|
+
@include mdc-rtl {
|
43
|
+
> label {
|
44
|
+
margin-right: $mdc-form-field-item-spacing;
|
45
|
+
margin-left: auto;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
.mdc-form-field--align-end {
|
51
|
+
> label {
|
52
|
+
order: -1;
|
53
|
+
margin-right: $mdc-form-field-item-spacing;
|
54
|
+
margin-left: auto;
|
55
|
+
}
|
56
|
+
|
57
|
+
@include mdc-rtl {
|
58
|
+
> label {
|
59
|
+
margin-right: auto;
|
60
|
+
margin-left: $mdc-form-field-item-spacing;
|
61
|
+
}
|
62
|
+
}
|
63
|
+
}
|
64
|
+
/* stylelint-enable selector-no-type */
|
@@ -0,0 +1,133 @@
|
|
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
|
+
/** postcss-bem-linter: define icon-toggle */
|
18
|
+
|
19
|
+
@import "@material/animation/functions";
|
20
|
+
@import "@material/ripple/mixins";
|
21
|
+
@import "@material/theme/mixins";
|
22
|
+
|
23
|
+
.mdc-icon-toggle {
|
24
|
+
@include mdc-theme-prop(color, text-secondary-on-light);
|
25
|
+
|
26
|
+
display: flex;
|
27
|
+
position: relative;
|
28
|
+
box-sizing: border-box;
|
29
|
+
align-items: center;
|
30
|
+
justify-content: center;
|
31
|
+
width: 48px;
|
32
|
+
height: 48px;
|
33
|
+
padding: 12px;
|
34
|
+
outline: none;
|
35
|
+
font-size: 1.5rem;
|
36
|
+
cursor: pointer;
|
37
|
+
user-select: none;
|
38
|
+
|
39
|
+
&::after {
|
40
|
+
position: absolute;
|
41
|
+
top: 0;
|
42
|
+
right: 0;
|
43
|
+
bottom: 0;
|
44
|
+
left: 0;
|
45
|
+
transform: scale(0, 0);
|
46
|
+
transition: mdc-animation-exit(opacity, 80ms), mdc-animation-exit(transform, 80ms);
|
47
|
+
border-radius: 50%;
|
48
|
+
background-color: currentColor;
|
49
|
+
content: "";
|
50
|
+
opacity: 0;
|
51
|
+
pointer-events: none;
|
52
|
+
}
|
53
|
+
|
54
|
+
&:focus::after {
|
55
|
+
transform: scale(1.3, 1.3);
|
56
|
+
transition: mdc-animation-enter(opacity, 80ms), mdc-animation-enter(transform, 80ms);
|
57
|
+
opacity: .12;
|
58
|
+
}
|
59
|
+
|
60
|
+
@include mdc-theme-dark {
|
61
|
+
@include mdc-theme-prop(color, text-primary-on-dark);
|
62
|
+
|
63
|
+
&:focus::after {
|
64
|
+
opacity: .3;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
.mdc-icon-toggle--primary {
|
70
|
+
@include mdc-theme-prop(color, primary);
|
71
|
+
}
|
72
|
+
|
73
|
+
.mdc-icon-toggle--accent {
|
74
|
+
@include mdc-theme-prop(color, accent);
|
75
|
+
}
|
76
|
+
|
77
|
+
.mdc-icon-toggle--primary,
|
78
|
+
.mdc-icon-toggle--accent {
|
79
|
+
&:focus::after {
|
80
|
+
opacity: .26;
|
81
|
+
}
|
82
|
+
}
|
83
|
+
|
84
|
+
.mdc-icon-toggle--disabled {
|
85
|
+
@include mdc-theme-prop(color, text-disabled-on-light);
|
86
|
+
|
87
|
+
pointer-events: none;
|
88
|
+
|
89
|
+
@include mdc-theme-dark(".mdc-icon-toggle", true) {
|
90
|
+
@include mdc-theme-prop(color, text-disabled-on-dark);
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
/** postcss-bem-linter: end */
|
95
|
+
|
96
|
+
.mdc-icon-toggle.mdc-ripple-upgraded {
|
97
|
+
@include mdc-ripple-base;
|
98
|
+
// NOTE: The spec denotes specific opacity values to use for different styles of icon buttons,
|
99
|
+
// either "light", "dark", or "color". Because ripples are made up of two distinct elements,
|
100
|
+
// we need to use an opacity value such that when two elements of the same color and opacity are
|
101
|
+
// layered on top of one another, they create the opacity specified in the spec.
|
102
|
+
// This is done by using the painter's compositing algorithm:
|
103
|
+
//
|
104
|
+
// alpha[desired] = alpha[a] + alpha[b](1 - alpha[a]).
|
105
|
+
//
|
106
|
+
// Because both alpha values are the same this reduces to:
|
107
|
+
//
|
108
|
+
// alpha[desired] = alpha[a] + alpha[a](1 - alpha[a]).
|
109
|
+
//
|
110
|
+
// We simply solve this quadratic equation for the nonnegative root between [0, 1].
|
111
|
+
// E.g. for black 12% opacity:
|
112
|
+
// https://www.wolframalpha.com/input/?i=x+%2B+x(1+-+x)+%3D+.12,+x+%3C%3D+1,+x+%3E%3D+0
|
113
|
+
@include mdc-ripple-bg((pseudo: "::before", opacity: .062));
|
114
|
+
@include mdc-ripple-fg((pseudo: "::after", opacity: .062));
|
115
|
+
|
116
|
+
@include mdc-theme-dark(".mdc-icon-toggle", true) {
|
117
|
+
@include mdc-ripple-bg((pseudo: "::before", base-color: white, opacity: .16));
|
118
|
+
@include mdc-ripple-fg((pseudo: "::after", base-color: white, opacity: .16));
|
119
|
+
}
|
120
|
+
|
121
|
+
// For some reason, GPU layer promotion makes ripples look terrible on Chrome
|
122
|
+
will-change: initial;
|
123
|
+
}
|
124
|
+
|
125
|
+
.mdc-icon-toggle--primary.mdc-ripple-upgraded {
|
126
|
+
@include mdc-ripple-bg((pseudo: "::before", theme-style: primary, opacity: .14));
|
127
|
+
@include mdc-ripple-fg((pseudo: "::after", theme-style: primary, opacity: .14));
|
128
|
+
}
|
129
|
+
|
130
|
+
.mdc-icon-toggle--accent.mdc-ripple-upgraded {
|
131
|
+
@include mdc-ripple-bg((pseudo: "::before", theme-style: accent, opacity: .14));
|
132
|
+
@include mdc-ripple-fg((pseudo: "::after", theme-style: accent, opacity: .14));
|
133
|
+
}
|
@@ -0,0 +1,207 @@
|
|
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/rtl/mixins";
|
18
|
+
@import "@material/theme/mixins";
|
19
|
+
@import "@material/typography/mixins";
|
20
|
+
@import "@material/typography/variables";
|
21
|
+
|
22
|
+
/**
|
23
|
+
* Sets the width and height of a detail element to the specified dimension.
|
24
|
+
*/
|
25
|
+
@mixin mdc-list-detail-size_($size) {
|
26
|
+
width: $size;
|
27
|
+
height: $size;
|
28
|
+
}
|
29
|
+
|
30
|
+
/**
|
31
|
+
* Sets the width and height of the start detail element, as well as calculates the margins for
|
32
|
+
* the start detail element such that the text is always offset by 72px, which is defined within
|
33
|
+
* the spec.
|
34
|
+
*/
|
35
|
+
@mixin mdc-list-start-detail-size_($size) {
|
36
|
+
/* stylelint-disable scss/dollar-variable-pattern */
|
37
|
+
|
38
|
+
$text-offset: 72px;
|
39
|
+
$side-padding: 16px;
|
40
|
+
$margin-value: $text-offset - $side-padding - $size;
|
41
|
+
|
42
|
+
@include mdc-list-detail-size_($size);
|
43
|
+
@include mdc-rtl-reflexive-box(margin, right, $margin-value, ".mdc-list-item");
|
44
|
+
|
45
|
+
/* stylelint-enable scss/dollar-variable-pattern */
|
46
|
+
}
|
47
|
+
|
48
|
+
/* postcss-bem-linter: define list */
|
49
|
+
|
50
|
+
.mdc-list {
|
51
|
+
@include mdc-typography(subheading2);
|
52
|
+
@include mdc-theme-prop(color, text-primary-on-background);
|
53
|
+
|
54
|
+
@include mdc-theme-dark {
|
55
|
+
@include mdc-theme-prop(color, text-primary-on-dark);
|
56
|
+
}
|
57
|
+
|
58
|
+
margin: 0;
|
59
|
+
padding: 8px 16px 0;
|
60
|
+
|
61
|
+
/* According to the mocks and stickersheet, the line-height is adjusted to 24px for text content,
|
62
|
+
* same as for subheading1. */
|
63
|
+
line-height: map-get(map-get($mdc-typography-styles, subheading1), line-height);
|
64
|
+
list-style-type: none;
|
65
|
+
}
|
66
|
+
|
67
|
+
.mdc-list--dense {
|
68
|
+
padding-top: 4px;
|
69
|
+
font-size: .812rem;
|
70
|
+
}
|
71
|
+
|
72
|
+
/* postcss-bem-linter: end */
|
73
|
+
|
74
|
+
/* postcss-bem-linter: define list-item */
|
75
|
+
|
76
|
+
.mdc-list-item {
|
77
|
+
display: flex;
|
78
|
+
align-items: center;
|
79
|
+
justify-content: flex-start;
|
80
|
+
height: 48px;
|
81
|
+
|
82
|
+
&__start-detail {
|
83
|
+
@include mdc-list-start-detail-size_(24px);
|
84
|
+
}
|
85
|
+
|
86
|
+
&__end-detail {
|
87
|
+
@include mdc-list-detail-size_(24px);
|
88
|
+
@include mdc-rtl-reflexive-property(margin, auto, 16px, ".mdc-list-item");
|
89
|
+
}
|
90
|
+
|
91
|
+
&__text {
|
92
|
+
display: inline-flex;
|
93
|
+
flex-direction: column;
|
94
|
+
|
95
|
+
&__secondary {
|
96
|
+
@include mdc-typography(body1);
|
97
|
+
@include mdc-theme-prop(color, text-secondary-on-background);
|
98
|
+
|
99
|
+
@include mdc-theme-dark {
|
100
|
+
@include mdc-theme-prop(color, text-secondary-on-dark);
|
101
|
+
}
|
102
|
+
|
103
|
+
/* Match the font size to the primary text when dense */
|
104
|
+
/* stylelint-disable plugin/selector-bem-pattern */
|
105
|
+
.mdc-list--dense & {
|
106
|
+
font-size: inherit;
|
107
|
+
}
|
108
|
+
/* stylelint-enable plugin/selector-bem-pattern */
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
/* stylelint-disable plugin/selector-bem-pattern */
|
113
|
+
.mdc-list--dense & {
|
114
|
+
height: 40px;
|
115
|
+
|
116
|
+
&__start-detail {
|
117
|
+
@include mdc-list-start-detail-size_(20px);
|
118
|
+
}
|
119
|
+
|
120
|
+
&__end-detail {
|
121
|
+
@include mdc-list-detail-size_(20px);
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
.mdc-list--avatar-list & {
|
126
|
+
height: 56px;
|
127
|
+
|
128
|
+
&__start-detail {
|
129
|
+
@include mdc-list-start-detail-size_(40px);
|
130
|
+
|
131
|
+
border-radius: 50%;
|
132
|
+
}
|
133
|
+
}
|
134
|
+
|
135
|
+
.mdc-list--avatar-list.mdc-list--dense .mdc-list__item {
|
136
|
+
height: 48px;
|
137
|
+
|
138
|
+
&__start-detail {
|
139
|
+
@include mdc-list-start-detail-size_(36px);
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
.mdc-list--two-line & {
|
144
|
+
height: 72px;
|
145
|
+
}
|
146
|
+
|
147
|
+
.mdc-list--two-line.mdc-list--dense & {
|
148
|
+
height: 60px;
|
149
|
+
}
|
150
|
+
/* stylelint-enable plugin/selector-bem-pattern */
|
151
|
+
}
|
152
|
+
|
153
|
+
/* postcss-bem-linter: end */
|
154
|
+
|
155
|
+
/* postcss-bem-linter: define list-divider */
|
156
|
+
|
157
|
+
.mdc-list-divider {
|
158
|
+
height: 0;
|
159
|
+
margin: 0;
|
160
|
+
border: none;
|
161
|
+
border-bottom: 1px solid rgba(0, 0, 0, .12);
|
162
|
+
|
163
|
+
@include mdc-theme-dark(".mdc-list") {
|
164
|
+
border-bottom-color: rgba(255, 255, 255, .2);
|
165
|
+
}
|
166
|
+
}
|
167
|
+
|
168
|
+
.mdc-list-divider--inset {
|
169
|
+
$mdc-list-divider-inset-amt: /* text offset */ 72px - /* padding offset */ 16px;
|
170
|
+
|
171
|
+
@include mdc-rtl-reflexive-box(margin, left, $mdc-list-divider-inset-amt, ".mdc-list-group");
|
172
|
+
|
173
|
+
width: calc(100% - #{$mdc-list-divider-inset-amt});
|
174
|
+
}
|
175
|
+
|
176
|
+
/* postcss-bem-linter: end */
|
177
|
+
|
178
|
+
/* postcss-bem-linter: define list-group */
|
179
|
+
|
180
|
+
.mdc-list-group {
|
181
|
+
padding: 0 16px;
|
182
|
+
|
183
|
+
&__subheader {
|
184
|
+
$mdc-list-subheader-virtual-height: 3rem;
|
185
|
+
$mdc-list-subheader-leading: map-get(map-get($mdc-typography-styles, body2), line-height);
|
186
|
+
$mdc-list-subheader-margin:
|
187
|
+
($mdc-list-subheader-virtual-height - $mdc-list-subheader-leading) / 2;
|
188
|
+
|
189
|
+
@include mdc-typography(body2);
|
190
|
+
@include mdc-theme-prop(color, text-primary-on-background);
|
191
|
+
|
192
|
+
@include mdc-theme-dark {
|
193
|
+
@include mdc-theme-prop(color, text-primary-on-dark);
|
194
|
+
}
|
195
|
+
|
196
|
+
margin: $mdc-list-subheader-margin 0;
|
197
|
+
}
|
198
|
+
|
199
|
+
/* Reset padding on mdc-list since it's already accounted for by the list group. */
|
200
|
+
/* stylelint-disable plugin/selector-bem-pattern */
|
201
|
+
.mdc-list {
|
202
|
+
padding: 0;
|
203
|
+
}
|
204
|
+
/* stylelint-enable plugin/selector-bem-pattern */
|
205
|
+
}
|
206
|
+
|
207
|
+
/* postcss-bem-linter: end */
|