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.
@@ -135,10 +135,10 @@ $mdc-dialog-dark-theme-bg-color: #303030 !default;
135
135
  padding: 8px;
136
136
 
137
137
  &__button {
138
- margin-right: 8px;
138
+ @include mdc-rtl-reflexive-box(margin, right, 8px);
139
139
 
140
140
  &:last-child {
141
- margin-right: 0;
141
+ @include mdc-rtl-reflexive-box(margin, right, 0);
142
142
  }
143
143
  }
144
144
  }
@@ -135,3 +135,8 @@
135
135
  }
136
136
  }
137
137
  }
138
+
139
+ .mdc-drawer-scroll-lock {
140
+ height: 100vh;
141
+ overflow: hidden;
142
+ }
@@ -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($margin, $gutter, $max-width: null) {
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
- padding: $margin - $gutter / 2;
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
- padding: $margin;
82
- padding: var(--mdc-layout-grid-margin, #{$margin});
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($gutter, $span: 4) {
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-spans_($span, $gutter);
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
- $mdc-layout-grid-default-margin: 16px !default;
29
- $mdc-layout-grid-default-gutter: 16px !default;
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
- @include mdc-layout-grid($mdc-layout-grid-default-margin, $mdc-layout-grid-default-gutter);
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-grid__cell {
24
- @include mdc-layout-grid-cell($mdc-layout-grid-default-gutter);
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, $mdc-layout-grid-default-gutter);
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(body2);
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