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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -3
  3. data/CHANGELOG.md +9 -0
  4. data/lib/material_components_web/sass/version.rb +1 -1
  5. data/vendor/assets/javascripts/material-components-web.js +12 -7
  6. data/vendor/assets/stylesheets/@material/button/_mixins.scss +5 -11
  7. data/vendor/assets/stylesheets/@material/button/mdc-button.scss +3 -2
  8. data/vendor/assets/stylesheets/@material/checkbox/_mixins.scss +0 -8
  9. data/vendor/assets/stylesheets/@material/checkbox/_variables.scss +1 -0
  10. data/vendor/assets/stylesheets/@material/checkbox/mdc-checkbox.scss +4 -2
  11. data/vendor/assets/stylesheets/@material/drawer/_mixins.scss +3 -3
  12. data/vendor/assets/stylesheets/@material/drawer/permanent/mdc-permanent-drawer.scss +9 -9
  13. data/vendor/assets/stylesheets/@material/drawer/persistent/mdc-persistent-drawer.scss +3 -3
  14. data/vendor/assets/stylesheets/@material/drawer/temporary/mdc-temporary-drawer.scss +8 -8
  15. data/vendor/assets/stylesheets/@material/fab/_mixins.scss +6 -9
  16. data/vendor/assets/stylesheets/@material/fab/mdc-fab.scss +3 -2
  17. data/vendor/assets/stylesheets/@material/icon-toggle/mdc-icon-toggle.scss +6 -9
  18. data/vendor/assets/stylesheets/@material/layout-grid/_mixins.scss +2 -0
  19. data/vendor/assets/stylesheets/@material/list/mdc-list.scss +4 -5
  20. data/vendor/assets/stylesheets/@material/radio/_functions.scss +26 -0
  21. data/vendor/assets/stylesheets/@material/radio/_mixins.scss +45 -0
  22. data/vendor/assets/stylesheets/@material/radio/_variables.scss +23 -0
  23. data/vendor/assets/stylesheets/@material/radio/mdc-radio.scss +15 -44
  24. data/vendor/assets/stylesheets/@material/ripple/_keyframes.scss +31 -29
  25. data/vendor/assets/stylesheets/@material/ripple/_mixins.scss +98 -177
  26. data/vendor/assets/stylesheets/@material/{fab → ripple}/_variables.scss +5 -2
  27. data/vendor/assets/stylesheets/@material/ripple/mdc-ripple.scss +6 -17
  28. data/vendor/assets/stylesheets/@material/snackbar/mdc-snackbar.scss +4 -3
  29. data/vendor/assets/stylesheets/@material/switch/_functions.scss +21 -0
  30. data/vendor/assets/stylesheets/@material/switch/_mixins.scss +74 -0
  31. data/vendor/assets/stylesheets/@material/switch/_variables.scss +9 -5
  32. data/vendor/assets/stylesheets/@material/switch/mdc-switch.scss +36 -43
  33. data/vendor/assets/stylesheets/@material/tabs/tab/mdc-tab.scss +5 -7
  34. data/vendor/assets/stylesheets/@material/textfield/_mixins.scss +23 -0
  35. data/vendor/assets/stylesheets/@material/textfield/_variables.scss +9 -0
  36. data/vendor/assets/stylesheets/@material/textfield/mdc-textfield.scss +20 -61
  37. data/vendor/assets/stylesheets/@material/theme/{_color_palette.scss → _color-palette.scss} +0 -0
  38. data/vendor/assets/stylesheets/@material/theme/_variables.scss +24 -0
  39. metadata +9 -4
@@ -36,9 +36,18 @@ $mdc-textfield-dark-placeholder: rgba(black, .38);
36
36
  $mdc-textfield-light-background: rgba(white, 1);
37
37
  $mdc-textfield-light-label: rgba(white, .7);
38
38
  $mdc-textfield-light-placeholder: rgba(white, .3);
39
+
40
+ $mdc-textfield-box-background: rgba(black, .04);
41
+ $mdc-textfield-box-background-dark: rgba(white, .1);
42
+ $mdc-textfield-box-disabled-background: rgba(black, .02);
43
+ $mdc-textfield-box-disabled-background-dark: rgba(white, .05);
44
+ $mdc-textfield-box-secondary-text: rgba(black, .6);
45
+
39
46
  $mdc-textarea-border-on-light: rgba(black, .73);
40
47
  $mdc-textarea-border-on-dark: rgba(white, 1);
41
48
  $mdc-textarea-light-background: rgba(white, 1);
42
49
  $mdc-textarea-dark-background: rgba(48, 48, 48, 1);
43
50
  $mdc-textarea-disabled-background-on-light: rgba(249, 249, 249, 1);
44
51
  $mdc-textarea-disabled-background-on-dark: rgba(47, 47, 47, 1);
52
+
53
+ $mdc-text-field-border-radius: 4px !default;
@@ -43,7 +43,10 @@
43
43
  @include mdc-typography-base;
44
44
  // We use only a subset of the MDC typography values here as changing things such as line-height
45
45
  // affects how the labels are transformed.
46
- @each $prop in (font-size, letter-spacing) {
46
+ // TODO: Re-add setting the font-size from mdc-typography-styles (currently
47
+ // setting it here has no effect because it is overriden by the font-size
48
+ // given below).
49
+ @each $prop in (letter-spacing) {
47
50
  #{$prop}: map-get(map-get($mdc-typography-styles, subheading2), $prop);
48
51
  }
49
52
 
@@ -160,52 +163,30 @@
160
163
  }
161
164
 
162
165
  .mdc-textfield--box {
166
+ @include mdc-ripple-surface;
167
+ @include mdc-ripple-color(black, .04);
168
+ @include mdc-ripple-radius;
169
+ @include mdc-text-field-box-corner-radius($mdc-text-field-border-radius);
170
+
163
171
  display: inline-flex;
164
172
  position: relative;
165
173
  height: 56px;
166
- border-radius: 4px 4px 0 0;
167
- background-color: rgba(black, .04);
174
+ background-color: $mdc-textfield-box-background;
168
175
  overflow: hidden;
169
176
 
170
177
  @include mdc-theme-dark(".mdc-textfield", true) {
171
- background-color: rgba(white, .1);
178
+ background-color: $mdc-textfield-box-background-dark;
172
179
  }
173
180
 
174
- &::before,
175
- &::after {
176
- position: absolute;
177
- top: 0;
178
- left: 0;
179
- width: 100%;
180
- height: 100%;
181
- border-radius: 50%;
182
- background-color: inherit;
183
- opacity: 0;
184
- pointer-events: none;
185
- content: "";
181
+ @include mdc-theme-dark(".mdc-textfield", true) {
182
+ @include mdc-ripple-color(white, .05);
186
183
  }
187
184
 
188
- // NOTE: For some reasons, stylelint complains that the two patterns below don't follow BEM.
185
+ // NOTE: For some reason, stylelint complains that the patterns below don't follow BEM.
189
186
  // However, it seems to emit the wrong selector for that pattern. Thus, we disable it above where
190
- // we would normally disable it (&.mdc-textfield--disabled) as a workaround.
187
+ // we would normally disable it (on combined selectors) as a workaround.
191
188
 
192
189
  // stylelint-disable plugin/selector-bem-pattern
193
- // TODO: Refactor this out once #194 lands
194
- $opacity-duration: 83ms;
195
-
196
- &::before {
197
- transition: opacity 17ms linear, transform 0ms $opacity-duration+2 linear;
198
- }
199
-
200
- &:hover {
201
- &::before {
202
- transition:
203
- opacity $opacity-duration linear 17ms,
204
- transform 250ms $mdc-animation-deceleration-curve-timing-function 17ms;
205
- opacity: 1;
206
- }
207
- }
208
-
209
190
  .mdc-textfield__input {
210
191
  align-self: flex-end;
211
192
  box-sizing: border-box;
@@ -219,7 +200,7 @@
219
200
  position: absolute;
220
201
  bottom: 20px;
221
202
  width: calc(100% - #{$mdc-textfield-icon-padding});
222
- color: rgba(black, .6);
203
+ color: $mdc-textfield-box-secondary-text;
223
204
  text-overflow: ellipsis;
224
205
  white-space: nowrap;
225
206
  pointer-events: none;
@@ -243,34 +224,11 @@
243
224
  }
244
225
  }
245
226
 
246
- &.mdc-ripple-upgraded {
247
- @include mdc-ripple-base;
248
- // TODO: Add ::before as ripple bg once #194 lands
249
- @include mdc-ripple-fg((pseudo: "::after", opacity: .04));
250
-
251
- &::before {
252
- top: calc(50% - var(--mdc-ripple-fg-size, 100%) / 2);
253
- left: calc(50% - var(--mdc-ripple-fg-size, 100%) / 2);
254
- width: var(--mdc-ripple-fg-size, 100%);
255
- height: var(--mdc-ripple-fg-size, 100%);
256
- transform: scale(.8);
257
- }
258
-
259
- &:hover::before {
260
- transform: scale(calc(var(--mdc-ripple-fg-scale, 1) + .1));
261
- }
262
-
263
- @include mdc-theme-dark(".mdc-textfield", true) {
264
- @include mdc-ripple-fg((pseudo: "::after", base-color: white, opacity: .05));
265
- }
266
- }
267
-
268
227
  &.mdc-textfield--disabled {
269
- @include mdc-theme-prop(background-color, $mdc-textfield-light-background);
270
228
  @include mdc-theme-prop(color, $mdc-textfield-light-placeholder);
271
229
 
272
230
  border-bottom: none;
273
- background-color: rgba(black, .02);
231
+ background-color: $mdc-textfield-box-disabled-background;
274
232
 
275
233
  @include mdc-theme-dark(".mdc-textfield", true) {
276
234
  @include mdc-theme-prop(background-color, $mdc-textfield-dark-background);
@@ -500,6 +458,8 @@
500
458
  }
501
459
 
502
460
  .mdc-textfield--textarea {
461
+ @include mdc-text-field-textarea-corner-radius($mdc-text-field-border-radius);
462
+
503
463
  $padding-inset: 16px;
504
464
  $label-offset-y: $padding-inset + 2;
505
465
  $label-offset-x: $padding-inset;
@@ -508,7 +468,7 @@
508
468
  height: initial;
509
469
  transition: none;
510
470
  border: 1px solid $mdc-textarea-border-on-light;
511
- border-radius: 4px;
471
+ overflow: hidden;
512
472
 
513
473
  @include mdc-theme-dark(".mdc-textfield") {
514
474
  border-color: $mdc-textarea-border-on-dark;
@@ -519,7 +479,6 @@
519
479
  padding: $padding-inset;
520
480
  padding-top: $padding-inset * 2;
521
481
  border: 1px solid transparent;
522
- border-radius: 2px;
523
482
 
524
483
  &:focus {
525
484
  @include mdc-theme-prop(border-color, primary);
@@ -140,3 +140,27 @@ $mdc-theme-property-values: (
140
140
  text-disabled-on-dark: map-get(map-get($mdc-theme-text-colors, light), disabled),
141
141
  text-icon-on-dark: map-get(map-get($mdc-theme-text-colors, light), icon)
142
142
  );
143
+
144
+ // If `$property` is a literal color value (e.g., `blue`, `#fff`), it is returned verbatim. Otherwise, the value of the
145
+ // corresponding theme property (from `$mdc-theme-property-values`) is returned. If `$property` is not a color and no
146
+ // such theme property exists, an error is thrown.
147
+ //
148
+ // This is mainly useful in situations where `mdc-theme-prop` cannot be used directly (e.g., `box-shadow`).
149
+ //
150
+ // Examples:
151
+ //
152
+ // 1. mdc-theme-prop-value(primary) => "#3f51b5"
153
+ // 2. mdc-theme-prop-value(blue) => "blue"
154
+ //
155
+ // NOTE: This function must be defined in _variables.scss instead of _functions.scss to avoid circular imports.
156
+ @function mdc-theme-prop-value($property) {
157
+ @if type-of($property) == color {
158
+ @return $property;
159
+ }
160
+
161
+ @if not map-has-key($mdc-theme-property-values, $property) {
162
+ @error "Invalid theme property: '#{$property}'. Choose one of: #{map-keys($mdc-theme-property-values)}";
163
+ }
164
+
165
+ @return map-get($mdc-theme-property-values, $property);
166
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: material_components_web-sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitriy Tarasov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-19 00:00:00.000000000 Z
11
+ date: 2017-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: autoprefixer-rails
@@ -147,7 +147,6 @@ files:
147
147
  - vendor/assets/stylesheets/@material/elevation/_variables.scss
148
148
  - vendor/assets/stylesheets/@material/elevation/mdc-elevation.scss
149
149
  - vendor/assets/stylesheets/@material/fab/_mixins.scss
150
- - vendor/assets/stylesheets/@material/fab/_variables.scss
151
150
  - vendor/assets/stylesheets/@material/fab/mdc-fab.scss
152
151
  - vendor/assets/stylesheets/@material/fonts/material-icons.scss
153
152
  - vendor/assets/stylesheets/@material/fonts/roboto.scss
@@ -162,9 +161,13 @@ files:
162
161
  - vendor/assets/stylesheets/@material/list/mdc-list.scss
163
162
  - vendor/assets/stylesheets/@material/menu/mdc-menu.scss
164
163
  - vendor/assets/stylesheets/@material/menu/simple/mdc-simple-menu.scss
164
+ - vendor/assets/stylesheets/@material/radio/_functions.scss
165
+ - vendor/assets/stylesheets/@material/radio/_mixins.scss
166
+ - vendor/assets/stylesheets/@material/radio/_variables.scss
165
167
  - vendor/assets/stylesheets/@material/radio/mdc-radio.scss
166
168
  - vendor/assets/stylesheets/@material/ripple/_keyframes.scss
167
169
  - vendor/assets/stylesheets/@material/ripple/_mixins.scss
170
+ - vendor/assets/stylesheets/@material/ripple/_variables.scss
168
171
  - vendor/assets/stylesheets/@material/ripple/mdc-ripple.scss
169
172
  - vendor/assets/stylesheets/@material/rtl/_mixins.scss
170
173
  - vendor/assets/stylesheets/@material/select/mdc-select.scss
@@ -172,6 +175,8 @@ files:
172
175
  - vendor/assets/stylesheets/@material/slider/mdc-slider.scss
173
176
  - vendor/assets/stylesheets/@material/snackbar/_variables.scss
174
177
  - vendor/assets/stylesheets/@material/snackbar/mdc-snackbar.scss
178
+ - vendor/assets/stylesheets/@material/switch/_functions.scss
179
+ - vendor/assets/stylesheets/@material/switch/_mixins.scss
175
180
  - vendor/assets/stylesheets/@material/switch/_variables.scss
176
181
  - vendor/assets/stylesheets/@material/switch/mdc-switch.scss
177
182
  - vendor/assets/stylesheets/@material/tabs/mdc-tabs.scss
@@ -181,7 +186,7 @@ files:
181
186
  - vendor/assets/stylesheets/@material/textfield/_mixins.scss
182
187
  - vendor/assets/stylesheets/@material/textfield/_variables.scss
183
188
  - vendor/assets/stylesheets/@material/textfield/mdc-textfield.scss
184
- - vendor/assets/stylesheets/@material/theme/_color_palette.scss
189
+ - vendor/assets/stylesheets/@material/theme/_color-palette.scss
185
190
  - vendor/assets/stylesheets/@material/theme/_constants.scss
186
191
  - vendor/assets/stylesheets/@material/theme/_functions.scss
187
192
  - vendor/assets/stylesheets/@material/theme/_mixins.scss