material_components_web-sass 0.12.1 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +1 -0
- data/lib/material_components_web/sass/version.rb +1 -1
- data/vendor/assets/javascripts/material-components-web.js +1289 -445
- data/vendor/assets/stylesheets/@material/dialog/mdc-dialog.scss +2 -2
- data/vendor/assets/stylesheets/@material/drawer/temporary/mdc-temporary-drawer.scss +5 -0
- data/vendor/assets/stylesheets/@material/layout-grid/_mixins.scss +21 -29
- data/vendor/assets/stylesheets/@material/layout-grid/_variables.scss +14 -2
- data/vendor/assets/stylesheets/@material/layout-grid/mdc-layout-grid.scss +30 -4
- data/vendor/assets/stylesheets/@material/list/mdc-list.scss +0 -4
- data/vendor/assets/stylesheets/@material/menu/simple/mdc-simple-menu.scss +19 -1
- data/vendor/assets/stylesheets/@material/slider/_variables.scss +18 -0
- data/vendor/assets/stylesheets/@material/slider/mdc-slider.scss +226 -0
- data/vendor/assets/stylesheets/@material/toolbar/_mixins.scss +41 -0
- data/vendor/assets/stylesheets/@material/toolbar/_variables.scss +26 -0
- data/vendor/assets/stylesheets/@material/toolbar/mdc-toolbar.scss +25 -19
- data/vendor/assets/stylesheets/_material-components-web.scss +1 -0
- metadata +6 -2
@@ -135,10 +135,10 @@ $mdc-dialog-dark-theme-bg-color: #303030 !default;
|
|
135
135
|
padding: 8px;
|
136
136
|
|
137
137
|
&__button {
|
138
|
-
margin
|
138
|
+
@include mdc-rtl-reflexive-box(margin, right, 8px);
|
139
139
|
|
140
140
|
&:last-child {
|
141
|
-
margin
|
141
|
+
@include mdc-rtl-reflexive-box(margin, right, 0);
|
142
142
|
}
|
143
143
|
}
|
144
144
|
}
|
@@ -44,7 +44,7 @@
|
|
44
44
|
}
|
45
45
|
|
46
46
|
width: calc(#{$percent} - #{$gutter});
|
47
|
-
width: calc(#{$percent} - var(--mdc-layout-grid-gutter, #{$gutter}));
|
47
|
+
width: calc(#{$percent} - var(--mdc-layout-grid-gutter-#{$size}, #{$gutter}));
|
48
48
|
|
49
49
|
@supports (display: grid) {
|
50
50
|
width: auto;
|
@@ -52,53 +52,45 @@
|
|
52
52
|
}
|
53
53
|
}
|
54
54
|
|
55
|
-
@mixin mdc-layout-grid-cell-spans_($span, $gutter) {
|
56
|
-
@each $size in map-keys($mdc-layout-grid-columns) {
|
57
|
-
@include mdc-layout-grid-media-query_($size) {
|
58
|
-
@include mdc-layout-grid-cell-span_($size, $span, $gutter);
|
59
|
-
}
|
60
|
-
}
|
61
|
-
}
|
62
|
-
|
63
55
|
// Public mixins, meant for developer usage.
|
64
|
-
@mixin mdc-layout-grid($
|
65
|
-
display: flex;
|
66
|
-
flex-flow: row wrap;
|
67
|
-
align-items: stretch;
|
68
|
-
margin: 0 auto;
|
56
|
+
@mixin mdc-layout-grid($size, $margin, $max-width: null) {
|
69
57
|
box-sizing: border-box;
|
70
|
-
|
71
|
-
padding: calc(var(--mdc-layout-grid-margin, #{$margin}) - var(--mdc-layout-grid-gutter, #{$gutter}) / 2);
|
58
|
+
margin: 0 auto;
|
72
59
|
|
73
60
|
@if $max-width {
|
74
61
|
max-width: $max-width;
|
75
62
|
}
|
76
63
|
|
64
|
+
padding: $margin;
|
65
|
+
padding: var(--mdc-layout-grid-margin-#{$size}, #{$margin});
|
66
|
+
}
|
67
|
+
|
68
|
+
@mixin mdc-layout-grid-inner($size, $margin, $gutter) {
|
69
|
+
display: flex;
|
70
|
+
flex-flow: row wrap;
|
71
|
+
align-items: stretch;
|
72
|
+
margin: -$gutter / 2;
|
73
|
+
margin: calc(var(--mdc-layout-grid-gutter-#{$size}, #{$gutter}) / 2 * -1);
|
74
|
+
|
77
75
|
@supports (display: grid) {
|
78
76
|
display: grid;
|
79
77
|
grid-gap: $gutter;
|
80
|
-
grid-gap: var(--mdc-layout-grid-gutter, $gutter);
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
@each $size in map-keys($mdc-layout-grid-columns) {
|
85
|
-
@include mdc-layout-grid-media-query_($size) {
|
86
|
-
grid-template-columns: repeat(map-get($mdc-layout-grid-columns, $size), minmax(0, 1fr));
|
87
|
-
}
|
88
|
-
}
|
78
|
+
grid-gap: var(--mdc-layout-grid-gutter-#{$size}, $gutter);
|
79
|
+
margin: 0;
|
80
|
+
grid-template-columns: repeat(map-get($mdc-layout-grid-columns, $size), minmax(0, 1fr));
|
89
81
|
}
|
90
82
|
}
|
91
83
|
|
92
|
-
@mixin mdc-layout-grid-cell($
|
93
|
-
margin: $gutter / 2;
|
94
|
-
margin: calc(var(--mdc-layout-grid-gutter, #{$gutter}) / 2);
|
84
|
+
@mixin mdc-layout-grid-cell($size, $default-span, $gutter) {
|
95
85
|
box-sizing: border-box;
|
86
|
+
margin: $gutter / 2;
|
87
|
+
margin: calc(var(--mdc-layout-grid-gutter-#{$size}, #{$gutter}) / 2);
|
96
88
|
|
97
89
|
@supports (display: grid) {
|
98
90
|
margin: 0;
|
99
91
|
}
|
100
92
|
|
101
|
-
@include mdc-layout-grid-cell-
|
93
|
+
@include mdc-layout-grid-cell-span_($size, $default-span, $gutter);
|
102
94
|
}
|
103
95
|
|
104
96
|
@mixin mdc-layout-grid-cell-order($order) {
|
@@ -24,6 +24,18 @@ $mdc-layout-grid-columns: (
|
|
24
24
|
phone: 4
|
25
25
|
) !default;
|
26
26
|
|
27
|
+
$mdc-layout-grid-default-margin: (
|
28
|
+
desktop: 24px,
|
29
|
+
tablet: 16px,
|
30
|
+
phone: 16px
|
31
|
+
) !default;
|
32
|
+
|
33
|
+
$mdc-layout-grid-default-gutter: (
|
34
|
+
desktop: 24px,
|
35
|
+
tablet: 16px,
|
36
|
+
phone: 16px
|
37
|
+
) !default;
|
38
|
+
|
27
39
|
$mdc-layout-grid-default-column-span: 4 !default;
|
28
|
-
|
29
|
-
$mdc-layout-grid-
|
40
|
+
|
41
|
+
$mdc-layout-grid-max-width: null;
|
@@ -15,22 +15,48 @@
|
|
15
15
|
@import "./variables";
|
16
16
|
@import "./mixins";
|
17
17
|
|
18
|
+
:root {
|
19
|
+
@each $size in map-keys($mdc-layout-grid-columns) {
|
20
|
+
--mdc-layout-grid-margin-#{$size}: map-get($mdc-layout-grid-default-margin, $size);
|
21
|
+
--mdc-layout-grid-gutter-#{$size}: map-get($mdc-layout-grid-default-gutter, $size);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
18
25
|
// postcss-bem-linter: define layout-grid
|
19
26
|
.mdc-layout-grid {
|
20
|
-
@
|
27
|
+
@each $size in map-keys($mdc-layout-grid-columns) {
|
28
|
+
@include mdc-layout-grid-media-query_($size) {
|
29
|
+
$margin: map-get($mdc-layout-grid-default-margin, $size);
|
30
|
+
|
31
|
+
@include mdc-layout-grid($size, $margin, $mdc-layout-grid-max-width);
|
32
|
+
}
|
33
|
+
}
|
21
34
|
}
|
22
35
|
|
23
|
-
.mdc-layout-
|
24
|
-
@
|
36
|
+
.mdc-layout-grid__inner {
|
37
|
+
@each $size in map-keys($mdc-layout-grid-columns) {
|
38
|
+
@include mdc-layout-grid-media-query_($size) {
|
39
|
+
$margin: map-get($mdc-layout-grid-default-margin, $size);
|
40
|
+
$gutter: map-get($mdc-layout-grid-default-gutter, $size);
|
25
41
|
|
42
|
+
@include mdc-layout-grid-inner($size, $margin, $gutter);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
.mdc-layout-grid__cell {
|
26
48
|
@each $size in map-keys($mdc-layout-grid-columns) {
|
27
49
|
@include mdc-layout-grid-media-query_($size) {
|
50
|
+
$gutter: map-get($mdc-layout-grid-default-gutter, $size);
|
51
|
+
|
52
|
+
@include mdc-layout-grid-cell($size, $mdc-layout-grid-default-column-span, $gutter);
|
53
|
+
|
28
54
|
@for $span from 1 through map-get($mdc-layout-grid-columns, desktop) {
|
29
55
|
// Span classes.
|
30
56
|
// stylelint-disable max-nesting-depth
|
31
57
|
@at-root .mdc-layout-grid__cell--span-#{$span},
|
32
58
|
.mdc-layout-grid__cell--span-#{$span}-#{$size}.mdc-layout-grid__cell--span-#{$span}-#{$size} {
|
33
|
-
@include mdc-layout-grid-cell-span_($size, $span, $
|
59
|
+
@include mdc-layout-grid-cell-span_($size, $span, $gutter);
|
34
60
|
}
|
35
61
|
// stylelint-enable max-nesting-depth
|
36
62
|
}
|
@@ -140,9 +140,7 @@ $mdc-list-side-padding: 16px;
|
|
140
140
|
.mdc-list--two-line.mdc-list--dense & {
|
141
141
|
height: 60px;
|
142
142
|
}
|
143
|
-
// stylelint-enable plugin/selector-bem-pattern
|
144
143
|
}
|
145
|
-
|
146
144
|
// postcss-bem-linter: end //
|
147
145
|
|
148
146
|
// Override anchor tag styles for the use-case of a list being used for navigation
|
@@ -221,11 +219,9 @@ a.mdc-list-item {
|
|
221
219
|
}
|
222
220
|
|
223
221
|
// Reset padding on mdc-list since it's already accounted for by the list group.
|
224
|
-
// stylelint-disable plugin/selector-bem-pattern
|
225
222
|
.mdc-list {
|
226
223
|
padding: 0;
|
227
224
|
}
|
228
|
-
// stylelint-enable plugin/selector-bem-pattern
|
229
225
|
}
|
230
226
|
|
231
227
|
// postcss-bem-linter: end
|
@@ -26,6 +26,7 @@ $mdc-simple-menu-item-fade-duration: .3s;
|
|
26
26
|
.mdc-simple-menu {
|
27
27
|
display: none;
|
28
28
|
position: absolute;
|
29
|
+
min-width: 170px;
|
29
30
|
max-width: calc(100vw - 32px);
|
30
31
|
max-height: calc(100vh - 32px);
|
31
32
|
margin: 0;
|
@@ -133,8 +134,9 @@ $mdc-simple-menu-item-fade-duration: .3s;
|
|
133
134
|
outline: none;
|
134
135
|
color: inherit;
|
135
136
|
text-decoration: none;
|
137
|
+
user-select: none;
|
136
138
|
|
137
|
-
@include mdc-typography(
|
139
|
+
@include mdc-typography(subheading2);
|
138
140
|
|
139
141
|
@include mdc-theme-dark(".mdc-simple-menu", true) {
|
140
142
|
color: white;
|
@@ -189,6 +191,22 @@ $mdc-simple-menu-item-fade-duration: .3s;
|
|
189
191
|
opacity: .18;
|
190
192
|
}
|
191
193
|
|
194
|
+
.mdc-list-item[aria-disabled="true"] {
|
195
|
+
cursor: default;
|
196
|
+
|
197
|
+
@include mdc-theme-prop(color, text-disabled-on-light);
|
198
|
+
|
199
|
+
@include mdc-theme-dark(".mdc-select") {
|
200
|
+
@include mdc-theme-prop(color, text-disabled-on-dark);
|
201
|
+
}
|
202
|
+
}
|
203
|
+
|
204
|
+
.mdc-list-item[aria-disabled="true"] {
|
205
|
+
&:focus::before,
|
206
|
+
&:active::before {
|
207
|
+
opacity: 0;
|
208
|
+
}
|
209
|
+
}
|
192
210
|
/* stylelint-enable plugin/selector-bem-pattern */
|
193
211
|
}
|
194
212
|
|
@@ -0,0 +1,18 @@
|
|
1
|
+
//
|
2
|
+
// Copyright 2017 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-slider-default-assumed-bg-color: white !default;
|
18
|
+
$mdc-slider-dark-theme-assumed-bg-color: #333 !default;
|
@@ -0,0 +1,226 @@
|
|
1
|
+
//
|
2
|
+
// Copyright 2017 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/mixins";
|
18
|
+
@import "@material/rtl/mixins";
|
19
|
+
@import "./variables";
|
20
|
+
|
21
|
+
$mdc-slider-main-grey: #bdbdbd;
|
22
|
+
$mdc-slider-dark-theme-grey: #5c5c5c;
|
23
|
+
|
24
|
+
// postcss-bem-linter: define slider
|
25
|
+
|
26
|
+
@keyframes mdc-slider-emphasize {
|
27
|
+
0% {
|
28
|
+
animation-timing-function: ease-out;
|
29
|
+
}
|
30
|
+
|
31
|
+
50% {
|
32
|
+
animation-timing-function: ease-in;
|
33
|
+
transform: scale(.85);
|
34
|
+
}
|
35
|
+
|
36
|
+
100% {
|
37
|
+
transform: scale(.571);
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
.mdc-slider {
|
42
|
+
position: relative;
|
43
|
+
width: 100%;
|
44
|
+
height: 48px;
|
45
|
+
cursor: pointer;
|
46
|
+
touch-action: pan-x;
|
47
|
+
-webkit-tap-highlight-color: rgba(black, 0);
|
48
|
+
|
49
|
+
&:focus {
|
50
|
+
outline: none;
|
51
|
+
}
|
52
|
+
|
53
|
+
&__track-container {
|
54
|
+
position: absolute;
|
55
|
+
top: 50%;
|
56
|
+
width: 100%;
|
57
|
+
height: 2px;
|
58
|
+
background-color: $mdc-slider-main-grey;
|
59
|
+
overflow: hidden;
|
60
|
+
|
61
|
+
@include mdc-theme-dark(".mdc-slider") {
|
62
|
+
background-color: $mdc-slider-dark-theme-grey;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
&__track {
|
67
|
+
@include mdc-theme-prop(background-color, primary);
|
68
|
+
|
69
|
+
position: absolute;
|
70
|
+
width: 100%;
|
71
|
+
height: 100%;
|
72
|
+
transform-origin: left top;
|
73
|
+
will-change: transform;
|
74
|
+
|
75
|
+
@include mdc-rtl(".mdc-slider") {
|
76
|
+
transform-origin: right top;
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
&__thumb-container {
|
81
|
+
position: absolute;
|
82
|
+
top: 15px;
|
83
|
+
left: 0;
|
84
|
+
width: 21px;
|
85
|
+
// Ensure that touching anywhere within the Y-coordinate space of thumb
|
86
|
+
// is considered "clicking on the thumb".
|
87
|
+
height: 100%;
|
88
|
+
will-change: transform;
|
89
|
+
}
|
90
|
+
|
91
|
+
&__thumb {
|
92
|
+
@include mdc-theme-prop(fill, primary);
|
93
|
+
@include mdc-theme-prop(stroke, primary);
|
94
|
+
|
95
|
+
position: absolute;
|
96
|
+
top: 0;
|
97
|
+
left: 0;
|
98
|
+
transform: scale(.571);
|
99
|
+
transition: transform 100ms ease-out, fill 100ms ease-out, stroke 100ms ease-out;
|
100
|
+
stroke-width: 3.5;
|
101
|
+
}
|
102
|
+
|
103
|
+
&__focus-ring {
|
104
|
+
@include mdc-theme-prop(background-color, primary);
|
105
|
+
|
106
|
+
width: 21px;
|
107
|
+
height: 21px;
|
108
|
+
transition: transform 266.67ms ease-out, opacity 266.67ms ease-out, background-color 266.67ms ease-out;
|
109
|
+
border-radius: 50%;
|
110
|
+
opacity: 0;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
.mdc-slider--active {
|
115
|
+
.mdc-slider__thumb {
|
116
|
+
transform: scale3d(1, 1, 1);
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
.mdc-slider--focus {
|
121
|
+
.mdc-slider__thumb {
|
122
|
+
animation: mdc-slider-emphasize 266.67ms linear;
|
123
|
+
}
|
124
|
+
|
125
|
+
.mdc-slider__focus-ring {
|
126
|
+
transform: scale3d(1.55, 1.55, 1.55);
|
127
|
+
opacity: .25;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
|
131
|
+
.mdc-slider--disabled {
|
132
|
+
cursor: auto;
|
133
|
+
|
134
|
+
.mdc-slider__track {
|
135
|
+
background-color: $mdc-slider-main-grey;
|
136
|
+
|
137
|
+
@include mdc-theme-dark(".mdc-slider", true) {
|
138
|
+
background-color: $mdc-slider-dark-theme-grey;
|
139
|
+
}
|
140
|
+
}
|
141
|
+
|
142
|
+
// We use !important here to override all styles without having to use excessive
|
143
|
+
// :not() selectors or intricate compound selectors.
|
144
|
+
.mdc-slider__thumb {
|
145
|
+
fill: $mdc-slider-main-grey !important;
|
146
|
+
stroke: $mdc-slider-default-assumed-bg-color !important;
|
147
|
+
stroke: var(--mdc-slider-bg-color-behind-component, $mdc-slider-default-assumed-bg-color) !important;
|
148
|
+
|
149
|
+
@include mdc-theme-dark(".mdc-slider", true) {
|
150
|
+
fill: $mdc-slider-dark-theme-grey !important;
|
151
|
+
stroke: $mdc-slider-dark-theme-assumed-bg-color !important;
|
152
|
+
stroke: var(--mdc-slider-bg-color-behind-component, $mdc-slider-dark-theme-assumed-bg-color) !important;
|
153
|
+
}
|
154
|
+
}
|
155
|
+
}
|
156
|
+
|
157
|
+
.mdc-slider--off {
|
158
|
+
.mdc-slider__track {
|
159
|
+
opacity: 0;
|
160
|
+
}
|
161
|
+
|
162
|
+
// stylelint-disable-next-line plugin/selector-bem-pattern
|
163
|
+
.mdc-slider__thumb {
|
164
|
+
fill: $mdc-slider-default-assumed-bg-color;
|
165
|
+
fill: var(--mdc-slider-bg-color-behind-component, $mdc-slider-default-assumed-bg-color);
|
166
|
+
stroke: $mdc-slider-main-grey;
|
167
|
+
|
168
|
+
@include mdc-theme-dark(".mdc-slider", true) {
|
169
|
+
fill: $mdc-slider-dark-theme-assumed-bg-color;
|
170
|
+
fill: var(--mdc-slider-bg-color-behind-component, $mdc-slider-dark-theme-assumed-bg-color);
|
171
|
+
stroke: $mdc-slider-dark-theme-grey;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
// stylelint-disable plugin/selector-bem-pattern
|
176
|
+
&.mdc-slider--focus {
|
177
|
+
.mdc-slider__thumb {
|
178
|
+
fill: #dedede;
|
179
|
+
|
180
|
+
@include mdc-theme-dark(".mdc-slider", true) {
|
181
|
+
fill: #82848c;
|
182
|
+
stroke: #82848c;
|
183
|
+
}
|
184
|
+
}
|
185
|
+
}
|
186
|
+
|
187
|
+
&.mdc-slider--active.mdc-slider--focus {
|
188
|
+
.mdc-slider__thumb {
|
189
|
+
stroke: #8c8c8c;
|
190
|
+
|
191
|
+
@include mdc-theme-dark(".mdc-slider", true) {
|
192
|
+
stroke: $mdc-slider-dark-theme-grey;
|
193
|
+
}
|
194
|
+
}
|
195
|
+
}
|
196
|
+
|
197
|
+
.mdc-slider__focus-ring {
|
198
|
+
background-color: $mdc-slider-main-grey;
|
199
|
+
}
|
200
|
+
// stylelint-enable plugin/selector-bem-pattern
|
201
|
+
}
|
202
|
+
|
203
|
+
.mdc-slider--in-transit {
|
204
|
+
.mdc-slider__thumb {
|
205
|
+
transition-delay: 140ms;
|
206
|
+
}
|
207
|
+
}
|
208
|
+
|
209
|
+
// NOTE(traviskaufman): There are multiple cases where we want the slider to
|
210
|
+
// transition seamlessly even though we're jumping to a spot. The selectors
|
211
|
+
// below highlight these cases. The selectors are supplemented by a comment
|
212
|
+
// denoting their semantic meaning within the slider.
|
213
|
+
|
214
|
+
// When a user clicks somewhere on the track that is not directly the slider
|
215
|
+
// thumb container, we transition to the place where the user clicked.
|
216
|
+
.mdc-slider--in-transit,
|
217
|
+
// When a user is using the arrow keys to modify the value of the slider rather
|
218
|
+
// than dragging with a pointer, we transition from one value to another.
|
219
|
+
.mdc-slider:focus:not(.mdc-slider--active) {
|
220
|
+
.mdc-slider__thumb-container,
|
221
|
+
.mdc-slider__track {
|
222
|
+
transition: transform 80ms ease;
|
223
|
+
}
|
224
|
+
}
|
225
|
+
|
226
|
+
// postcss-bem-linter: end
|