material_components_web-sass 0.12.1 → 0.13.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/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
|