|
23 | 23 |
|
24 | 24 | // postcss-bem-linter: define button
|
25 | 25 | .mdc-button {
|
26 |
| - @include mdc-ripple-base; |
27 |
| - @include mdc-ripple-bg((pseudo: "::before")); |
28 |
| - @include mdc-ripple-fg((pseudo: "::after")); |
29 |
| - @include mdc-typography(button); |
30 |
| - @include mdc-theme-prop(color, text-primary-on-light); |
31 |
| - |
32 |
| - display: inline-block; |
33 |
| - position: relative; |
34 |
| - box-sizing: border-box; |
35 |
| - min-width: 88px; |
36 |
| - height: 36px; |
37 |
| - padding: 0 16px; |
38 |
| - border: none; |
39 |
| - border-radius: 4px; |
40 |
| - outline: none; |
41 |
| - background: transparent; |
42 |
| - text-align: center; |
43 |
| - user-select: none; |
44 |
| - -webkit-appearance: none; |
45 |
| - overflow: hidden; |
46 |
| - vertical-align: middle; |
47 |
| - |
48 |
| - // postcss-bem-linter: ignore |
49 |
| - &:active { |
50 |
| - outline: none; |
51 |
| - } |
52 |
| - |
53 |
| - &:hover { |
54 |
| - cursor: pointer; |
55 |
| - } |
56 |
| - |
57 |
| - &::-moz-focus-inner { |
58 |
| - padding: 0; |
59 |
| - border: 0; |
60 |
| - } |
61 |
| - |
62 |
| - &:not(.mdc-ripple-upgraded) { |
63 |
| - -webkit-tap-highlight-color: rgba(black, .3); |
64 |
| - } |
| 26 | + @include mdc-button-base_; |
| 27 | + @include mdc-button-corner-radius(4px); |
| 28 | + @include mdc-button-container-fill-color(transparent); |
| 29 | + @include mdc-button-ink-color(text-primary-on-light); |
| 30 | + @include mdc-button-ripple((base-color: black, opacity: .16)); |
65 | 31 |
|
66 | 32 | @include mdc-theme-dark(".mdc-button") {
|
67 |
| - @include mdc-ripple-base; |
68 |
| - @include mdc-ripple-bg((pseudo: "::before", base-color: white, opacity: .16)); |
69 |
| - @include mdc-ripple-fg((pseudo: "::after", base-color: white, opacity: .16)); |
70 |
| - @include mdc-theme-prop(color, text-primary-on-dark); |
71 |
| - |
72 |
| - &:not(.mdc-ripple-upgraded) { |
73 |
| - -webkit-tap-highlight-color: rgba(white, .18); |
74 |
| - } |
| 33 | + @include mdc-button-ink-color(text-primary-on-dark); |
| 34 | + @include mdc-button-ripple((base-color: white, opacity: .16)); |
75 | 35 | }
|
76 | 36 | }
|
77 | 37 |
|
78 | 38 | .mdc-button--raised,
|
79 | 39 | .mdc-button--unelevated {
|
80 |
| - @include mdc-button-filled_; |
81 |
| -} |
| 40 | + @include mdc-button-container-fill-color(black); |
| 41 | + @include mdc-button-ink-color(text-primary-on-dark); |
| 42 | + @include mdc-button-ripple((base-color: white, opacity: .32)); |
82 | 43 |
|
83 |
| -.mdc-button--raised { |
84 |
| - @include mdc-elevation(2); |
85 |
| - @include mdc-elevation-transition; |
86 |
| - |
87 |
| - &:hover, |
88 |
| - &:focus { |
89 |
| - @include mdc-elevation(4); |
| 44 | + @include mdc-theme-dark(".mdc-button") { |
| 45 | + @include mdc-button-container-fill-color(white); |
| 46 | + @include mdc-button-ink-color(text-primary-on-light); |
| 47 | + @include mdc-button-ripple((base-color: black, opacity: .32)); |
90 | 48 | }
|
| 49 | +} |
91 | 50 |
|
92 |
| - &:active { |
93 |
| - @include mdc-elevation(8); |
94 |
| - } |
| 51 | +.mdc-button--raised { |
| 52 | + @include mdc-button--raised_; |
95 | 53 | }
|
96 | 54 |
|
97 | 55 | .mdc-button--stroked {
|
98 |
| - @include mdc-theme-prop(border-color, text-primary-on-light); |
99 |
| - |
100 |
| - border-width: 2px; |
101 |
| - border-style: solid; |
102 |
| - line-height: 32px; |
| 56 | + @include mdc-button-stroke-width(2px); |
| 57 | + @include mdc-button-stroke-style(solid); |
| 58 | + @include mdc-button-stroke-color(text-primary-on-light); |
103 | 59 |
|
104 | 60 | @include mdc-theme-dark(".mdc-button") {
|
105 |
| - @include mdc-theme-prop(border-color, text-primary-on-dark); |
106 |
| - } |
107 |
| - |
108 |
| - // postcss-bem-linter: ignore |
109 |
| - &.mdc-button--dense { |
110 |
| - line-height: 27px; // To accommodate odd font size of dense button |
| 61 | + @include mdc-button-stroke-color(text-primary-on-dark); |
111 | 62 | }
|
112 | 63 | }
|
113 | 64 |
|
114 | 65 | .mdc-button--compact {
|
115 |
| - padding: 0 8px; |
| 66 | + @include mdc-button--compact_; |
116 | 67 | }
|
117 | 68 |
|
118 | 69 | .mdc-button--dense {
|
119 |
| - height: 32px; |
120 |
| - font-size: .8125rem; // 13sp |
121 |
| - line-height: 32px; |
| 70 | + @include mdc-button--dense_; |
122 | 71 | }
|
123 | 72 |
|
124 | 73 | @each $theme-style in (primary, secondary) {
|
|
129 | 78 | .mdc-button--#{$modifier} {
|
130 | 79 | $theme-value: map-get($mdc-theme-property-values, $theme-style);
|
131 | 80 |
|
132 |
| - @include mdc-ripple-base; |
133 |
| - @include mdc-ripple-bg((pseudo: "::before", base-color: $theme-value, opacity: .16)); |
134 |
| - @include mdc-ripple-fg((pseudo: "::after", base-color: $theme-value, opacity: .16)); |
135 |
| - @include mdc-theme-prop(color, $theme-style); |
136 |
| - |
137 |
| - @include mdc-theme-dark(".mdc-button") { |
| 81 | + &:not(:disabled) { |
138 | 82 | @include mdc-ripple-base;
|
139 | 83 | @include mdc-ripple-bg((pseudo: "::before", base-color: $theme-value, opacity: .16));
|
140 | 84 | @include mdc-ripple-fg((pseudo: "::after", base-color: $theme-value, opacity: .16));
|
141 | 85 | @include mdc-theme-prop(color, $theme-style);
|
| 86 | + |
| 87 | + @include mdc-theme-dark(".mdc-button") { |
| 88 | + @include mdc-ripple-base; |
| 89 | + @include mdc-ripple-bg((pseudo: "::before", base-color: $theme-value, opacity: .16)); |
| 90 | + @include mdc-ripple-fg((pseudo: "::after", base-color: $theme-value, opacity: .16)); |
| 91 | + @include mdc-theme-prop(color, $theme-style); |
| 92 | + } |
142 | 93 | }
|
143 | 94 | // postcss-bem-linter: ignore
|
144 | 95 | &.mdc-button--raised,
|
145 | 96 | &.mdc-button--unelevated {
|
146 | 97 | $theme-value: map-get($mdc-theme-property-values, text-primary-on-#{$theme-style});
|
147 | 98 |
|
148 |
| - @include mdc-ripple-base; |
149 |
| - @include mdc-ripple-bg((pseudo: "::before", base-color: $theme-value, opacity: .32)); |
150 |
| - @include mdc-ripple-fg((pseudo: "::after", base-color: $theme-value, opacity: .32)); |
151 |
| - @include mdc-theme-prop(background-color, $theme-style); |
152 |
| - @include mdc-theme-prop(color, text-primary-on-#{$theme-style}); |
| 99 | + &:not(:disabled) { |
| 100 | + @include mdc-ripple-base; |
| 101 | + @include mdc-ripple-bg((pseudo: "::before", base-color: $theme-value, opacity: .32)); |
| 102 | + @include mdc-ripple-fg((pseudo: "::after", base-color: $theme-value, opacity: .32)); |
| 103 | + @include mdc-theme-prop(background-color, $theme-style); |
| 104 | + @include mdc-theme-prop(color, text-primary-on-#{$theme-style}); |
| 105 | + } |
153 | 106 | }
|
154 | 107 | // postcss-bem-linter: ignore
|
155 | 108 | &.mdc-button--stroked {
|
156 |
| - @include mdc-theme-prop(border-color, $theme-style); |
157 |
| - |
158 |
| - @include mdc-theme-dark(".mdc-button") { |
| 109 | + &:not(:disabled) { |
159 | 110 | @include mdc-theme-prop(border-color, $theme-style);
|
| 111 | + |
| 112 | + @include mdc-theme-dark(".mdc-button") { |
| 113 | + @include mdc-theme-prop(border-color, $theme-style); |
| 114 | + } |
160 | 115 | }
|
161 | 116 | }
|
162 | 117 | }
|
|
165 | 120 | // Disabled button styles need to be last to ensure they override other primary/accent/dark styles
|
166 | 121 |
|
167 | 122 | .mdc-button {
|
168 |
| - fieldset:disabled &, |
169 | 123 | &:disabled {
|
| 124 | + background-color: transparent; |
170 | 125 | color: rgba(black, .38);
|
171 |
| - cursor: default; |
172 |
| - pointer-events: none; |
173 | 126 |
|
174 | 127 | @include mdc-theme-dark(".mdc-button") {
|
175 | 128 | @include mdc-theme-prop(color, text-disabled-on-dark);
|
|
179 | 132 |
|
180 | 133 | .mdc-button--raised,
|
181 | 134 | .mdc-button--unelevated {
|
182 |
| - fieldset:disabled &, |
183 | 135 | &:disabled {
|
184 |
| - @include mdc-elevation(0); |
185 | 136 | @include mdc-theme-prop(color, text-primary-on-dark);
|
186 | 137 |
|
187 | 138 | background-color: rgba(black, .15);
|
|
195 | 146 | }
|
196 | 147 |
|
197 | 148 | .mdc-button--stroked {
|
198 |
| - fieldset:disabled &, |
199 | 149 | &:disabled {
|
200 | 150 | border-color: rgba(black, .38);
|
201 | 151 |
|
|
0 commit comments