@shortfuse/materialdesignweb 0.7.1-0 → 0.7.1-2

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 (138) hide show
  1. package/bin/generate-css.js +1 -2
  2. package/components/Badge.js +40 -3
  3. package/components/Body.js +16 -2
  4. package/components/BottomAppBar.js +25 -2
  5. package/components/Box.js +33 -3
  6. package/components/Button.js +146 -9
  7. package/components/Card.js +111 -3
  8. package/components/Checkbox.js +91 -3
  9. package/components/CheckboxIcon.js +92 -4
  10. package/components/Chip.js +38 -2
  11. package/components/Dialog.js +237 -3
  12. package/components/DialogActions.js +3 -2
  13. package/components/Divider.js +44 -3
  14. package/components/ExtendedFab.js +27 -2
  15. package/components/Fab.js +26 -2
  16. package/components/FilterChip.js +83 -2
  17. package/components/Headline.js +16 -2
  18. package/components/Icon.js +80 -4
  19. package/components/IconButton.js +153 -2
  20. package/components/Label.js +16 -2
  21. package/components/Layout.js +21 -3
  22. package/components/List.js +15 -2
  23. package/components/ListItem.js +229 -3
  24. package/components/ListOption.js +37 -3
  25. package/components/ListSelect.js +12 -2
  26. package/components/Menu.js +173 -3
  27. package/components/MenuItem.js +55 -2
  28. package/components/Nav.js +19 -2
  29. package/components/NavBar.js +37 -2
  30. package/components/NavBarItem.js +44 -2
  31. package/components/NavDrawer.js +34 -2
  32. package/components/NavDrawerItem.js +44 -2
  33. package/components/NavItem.js +183 -3
  34. package/components/NavRail.js +50 -2
  35. package/components/NavRailItem.js +25 -2
  36. package/components/Pane.js +263 -3
  37. package/components/Progress.js +469 -10
  38. package/components/Radio.js +97 -3
  39. package/components/RadioIcon.js +77 -5
  40. package/components/Ripple.js +76 -3
  41. package/components/SegmentedButton.js +97 -2
  42. package/components/SegmentedButtonGroup.js +15 -2
  43. package/components/Select.js +54 -2
  44. package/components/Shape.js +55 -18
  45. package/components/Slider.js +309 -3
  46. package/components/Snackbar.js +82 -2
  47. package/components/Surface.js +13 -4
  48. package/components/Switch.js +67 -4
  49. package/components/SwitchIcon.js +272 -5
  50. package/components/Tab.js +87 -3
  51. package/components/TabContent.js +21 -21
  52. package/components/TabList.js +131 -2
  53. package/components/TextArea.js +97 -3
  54. package/components/Title.js +16 -2
  55. package/components/Tooltip.js +42 -2
  56. package/components/TopAppBar.js +212 -3
  57. package/core/template.js +36 -9
  58. package/mixins/ControlMixin.js +65 -2
  59. package/mixins/DensityMixin.js +17 -3
  60. package/mixins/FlexableMixin.js +81 -3
  61. package/mixins/RippleMixin.js +15 -4
  62. package/mixins/ShapeMixin.js +279 -8
  63. package/mixins/StateMixin.js +87 -5
  64. package/mixins/SurfaceMixin.js +152 -3
  65. package/mixins/TextFieldMixin.js +661 -3
  66. package/mixins/ThemableMixin.js +206 -3
  67. package/mixins/TooltipTriggerMixin.js +30 -4
  68. package/mixins/TouchTargetMixin.js +29 -4
  69. package/package.json +2 -1
  70. package/theming/loader.js +0 -2
  71. package/components/Badge.css +0 -38
  72. package/components/Body.css +0 -14
  73. package/components/BottomAppBar.css +0 -23
  74. package/components/Box.css +0 -31
  75. package/components/Button.css +0 -147
  76. package/components/Card.css +0 -109
  77. package/components/Checkbox.css +0 -89
  78. package/components/CheckboxIcon.css +0 -90
  79. package/components/Chip.css +0 -35
  80. package/components/Dialog.css +0 -235
  81. package/components/Divider.css +0 -41
  82. package/components/ExtendedFab.css +0 -24
  83. package/components/Fab.css +0 -23
  84. package/components/FilterChip.css +0 -80
  85. package/components/Headline.css +0 -14
  86. package/components/Icon.css +0 -76
  87. package/components/IconButton.css +0 -150
  88. package/components/Label.css +0 -14
  89. package/components/Layout.css +0 -19
  90. package/components/List.css +0 -12
  91. package/components/ListItem.css +0 -224
  92. package/components/ListOption.css +0 -34
  93. package/components/ListSelect.css +0 -9
  94. package/components/Menu.css +0 -171
  95. package/components/MenuItem.css +0 -53
  96. package/components/Nav.css +0 -17
  97. package/components/NavBar.css +0 -34
  98. package/components/NavBarItem.css +0 -41
  99. package/components/NavDrawer.css +0 -31
  100. package/components/NavDrawerItem.css +0 -42
  101. package/components/NavItem.css +0 -181
  102. package/components/NavRail.css +0 -47
  103. package/components/NavRailItem.css +0 -25
  104. package/components/Outline.css +0 -138
  105. package/components/Pane.css +0 -261
  106. package/components/Progress.css +0 -75
  107. package/components/ProgressCircle.css +0 -226
  108. package/components/ProgressLine.css +0 -155
  109. package/components/Radio.css +0 -95
  110. package/components/RadioIcon.css +0 -73
  111. package/components/Ripple.css +0 -74
  112. package/components/SegmentedButton.css +0 -94
  113. package/components/SegmentedButtonGroup.css +0 -12
  114. package/components/Select.css +0 -52
  115. package/components/Shape.css +0 -132
  116. package/components/Slider.css +0 -307
  117. package/components/Snackbar.css +0 -80
  118. package/components/Surface.css +0 -10
  119. package/components/Switch.css +0 -64
  120. package/components/SwitchIcon.css +0 -178
  121. package/components/SwitchIconAnimations.css +0 -89
  122. package/components/Tab.css +0 -85
  123. package/components/TabList.css +0 -129
  124. package/components/TextArea.css +0 -93
  125. package/components/Title.css +0 -14
  126. package/components/Tooltip.css +0 -40
  127. package/components/TopAppBar.css +0 -209
  128. package/mixins/ControlMixin.css +0 -57
  129. package/mixins/DensityMixin.css +0 -40
  130. package/mixins/FlexableMixin.css +0 -79
  131. package/mixins/RippleMixin.css +0 -12
  132. package/mixins/ShapeMixin.css +0 -135
  133. package/mixins/StateMixin.css +0 -82
  134. package/mixins/SurfaceMixin.css +0 -150
  135. package/mixins/TextFieldMixin.css +0 -657
  136. package/mixins/ThemableMixin.css +0 -204
  137. package/mixins/TooltipTriggerMixin.css +0 -27
  138. package/mixins/TouchTargetMixin.css +0 -26
@@ -1,7 +1,3 @@
1
- import outlineStyles from '../components/Outline.css' assert { type: 'css' };
2
-
3
- import styles from './ShapeMixin.css' assert { type: 'css' };
4
-
5
1
  /**
6
2
  * @param {ReturnType<import('./StateMixin.js').default> & ReturnType<import('./ThemableMixin.js').default>} Base
7
3
  */
@@ -16,10 +12,6 @@ export default function ShapeMixin(Base) {
16
12
  shapeStyle: 'string',
17
13
  outlined: 'boolean',
18
14
  })
19
- .css(
20
- outlineStyles,
21
- styles,
22
- )
23
15
  .html/* html */`
24
16
  <div id=shape part=shape class=shape elevated={elevated} shape-top={shapeTop} shape-bottom={shapeBottom} shape-start={shapeStart} shape-end={shapeEnd} shape-style={shapeStyle} color={color} outlined={outlined} disabled={disabledState}>
25
17
  <div id=outline _if={outlined} class=outline disabled={disabledState} focused={focusedState} pressed={pressedState} hovered={hoveredState}>
@@ -27,5 +19,284 @@ export default function ShapeMixin(Base) {
27
19
  <div id=outline-right class="outline-section outline-right"></div>
28
20
  </div>
29
21
  </div>
22
+ `
23
+ .css`
24
+ :host {
25
+ --mdw-shape__size: 0px;
26
+ --mdw-shape__bg: transparent;
27
+ --mdw-surface__will-change: none;
28
+ --mdw-shape__size__top-start-size: var(--mdw-shape__size);
29
+ --mdw-shape__size__top-end-size: var(--mdw-shape__size);
30
+ --mdw-shape__size__bottom-start-size: var(--mdw-shape__size);
31
+ --mdw-shape__size__bottom-end-size: var(--mdw-shape__size);
32
+
33
+ /* (1/2n + 1/2)L + (-1/2n + 1/2)R */
34
+ --mdw-shape__ltr: calc(0.5 * var(--mdw-dir, 1) + 0.5); /* 1 if LTR, 0 if RTL */
35
+ --mdw-shape__rtl: calc(-0.5 * var(--mdw-dir, 1) + 0.5); /* 0 if LTR, 1 if RTL */
36
+ --mdw-shape__size__top-left-size: calc((var(--mdw-shape__ltr) * var(--mdw-shape__size__top-start-size)) + (var(--mdw-shape__rtl) * var(--mdw-shape__size__top-end-size)));
37
+ --mdw-shape__size__top-right-size: calc((var(--mdw-shape__rtl) * var(--mdw-shape__size__top-start-size)) + (var(--mdw-shape__ltr) * var(--mdw-shape__size__top-end-size)));
38
+ --mdw-shape__size__bottom-left-size: calc((var(--mdw-shape__ltr) * var(--mdw-shape__size__bottom-start-size)) + (var(--mdw-shape__rtl) * var(--mdw-shape__size__bottom-end-size)));
39
+ --mdw-shape__size__bottom-right-size: calc((var(--mdw-shape__rtl) * var(--mdw-shape__size__bottom-start-size)) + (var(--mdw-shape__ltr) * var(--mdw-shape__size__bottom-end-size)));
40
+
41
+ --mdw-shape__rounded: 1;
42
+ --mdw-shape__mask-border-source: none;
43
+ --mdw-shape__mask: none;
44
+ --mdw-shape__inline-start-deg: calc(var(--mdw-dir, 1) * -90deg);
45
+ z-index: 0;
46
+ }
47
+
48
+ :host([shape-style="none"]) {
49
+ --mdw-shape__size: 0px;
50
+ }
51
+
52
+ :host([shape-style="extra-small"]) {
53
+ --mdw-shape__size: var(--mdw-shape__extra-small);
54
+ }
55
+
56
+ :host([shape-style="small"]) {
57
+ --mdw-shape__size: var(--mdw-shape__small);
58
+ }
59
+
60
+ :host([shape-style="medium"]) {
61
+ --mdw-shape__size: var(--mdw-shape__medium);
62
+ }
63
+
64
+ :host([shape-style="large"]) {
65
+ --mdw-shape__size: var(--mdw-shape__large);
66
+ }
67
+
68
+ :host([shape-style="extra-large"]) {
69
+ --mdw-shape__size: var(--mdw-shape__extra-large);
70
+ }
71
+
72
+ :host([shape-style="full"]) {
73
+ --mdw-shape__size: var(--mdw-shape__full);
74
+ }
75
+
76
+ :host([shape-style="inherit"]) {
77
+ --mdw-shape__size: inherit;
78
+ }
79
+
80
+ :host([shape-top]) {
81
+ --mdw-shape__size__bottom-start-size: 0px;
82
+ --mdw-shape__size__bottom-end-size: 0px;
83
+ --mdw-shape__mask: linear-gradient(transparent 50%, black 50%);
84
+
85
+ }
86
+
87
+ :host([shape-bottom]) {
88
+ --mdw-shape__size__top-start-size: 0px;
89
+ --mdw-shape__size__top-end-size: 0px;
90
+ --mdw-shape__mask: linear-gradient(black 50%, transparent 50%);
91
+ }
92
+
93
+ :host([shape-start]) {
94
+ --mdw-shape__size__top-end-size: 0px;
95
+ --mdw-shape__size__bottom-end-size: 0px;
96
+ --mdw-shape__mask: linear-gradient(var(--mdw-shape__inline-start-deg), black 50%, transparent 50%);
97
+ }
98
+
99
+ :host([shape-end]) {
100
+ --mdw-shape__size__top-start-size: 0px;
101
+ --mdw-shape__size__bottom-start-size: 0px;
102
+ --mdw-shape__mask: linear-gradient(var(--mdw-shape__inline-start-deg), transparent 50%, black 50%);
103
+ }
104
+
105
+ @supports(-webkit-mask-box-image: none) {
106
+ :host {
107
+ --mdw-shape__rounded: inherit;
108
+ --mdw-shape__mask-border-source: inherit;
109
+
110
+ -webkit-mask-box-image: var(--mdw-shape__mask-border-source)
111
+ 8 fill /
112
+ var(--mdw-shape__size)
113
+ stretch;
114
+
115
+ -webkit-mask: var(--mdw-shape__mask);
116
+ }
117
+ }
118
+ `
119
+ .css`
120
+ .shape {
121
+ position: absolute;
122
+ inset: 0;
123
+
124
+ overflow: hidden;
125
+
126
+ z-index: -1;
127
+
128
+ background-color: var(--mdw-shape__bg, transparent);
129
+
130
+ border-start-start-radius: calc(var(--mdw-shape__rounded) * var(--mdw-shape__size__top-start-size));
131
+ border-start-end-radius: calc(var(--mdw-shape__rounded) * var(--mdw-shape__size__top-end-size));
132
+ border-end-start-radius: calc(var(--mdw-shape__rounded) * var(--mdw-shape__size__bottom-start-size));
133
+ border-end-end-radius: calc(var(--mdw-shape__rounded) * var(--mdw-shape__size__bottom-end-size));
134
+
135
+ transition-delay: 1ms;
136
+ transition-duration: 200ms;
137
+ transition-property: background-color, color;
138
+ will-change: background-color, color;
139
+
140
+ }
141
+
142
+ .shape[outlined] {
143
+ background-color: transparent;
144
+ }
145
+
146
+ .shape[color] {
147
+ background-color: rgb(var(--mdw-bg));
148
+ color: rgb(var(--mdw-ink));
149
+ }
150
+
151
+ .shape:is([color="none"], [color="transparent"]) {
152
+ background-color: transparent;
153
+ }
154
+
155
+ @supports(-webkit-mask-box-image: none) {
156
+ .shape {
157
+ transition-duration: 200ms, 200ms, 200ms;
158
+ transition-property: background-color, color, -webkit-mask-box-image-width;
159
+ will-change: background-color, color, -webkit-mask-box-image;
160
+ }
161
+ }
162
+ `
163
+ .css`
164
+ .outline {
165
+ position: absolute;
166
+ inset: 0;
167
+
168
+ pointer-events: none;
169
+
170
+ border-color: currentColor;
171
+ border-radius: inherit;
172
+ color: rgb(var(--mdw-color__outline));
173
+ }
174
+
175
+ .outline:is([pressed],[focused]) {
176
+ color: rgb(var(--mdw-ink));
177
+
178
+ transition-delay: 0;
179
+ transition-duration: 0;
180
+ }
181
+
182
+ .outline[disabled] {
183
+ color: rgba(var(--mdw-color__on-surface), 0.12);
184
+ }
185
+
186
+ .outline::before {
187
+ content: '';
188
+
189
+ position: absolute;
190
+ inset: 0;
191
+
192
+ border-style: solid;
193
+ border-width: 1px;
194
+
195
+ border-radius: inherit;
196
+ }
197
+
198
+ @supports(-webkit-mask-box-image: none) {
199
+ .outline::before {
200
+ content: none;
201
+ }
202
+
203
+ .outline::after {
204
+ content: '';
205
+
206
+ position: absolute;
207
+ inset: 0;
208
+
209
+ -webkit-mask-box-image: var(--mdw-shape__mask-image__edges)
210
+ 8 fill /
211
+ auto
212
+ stretch;
213
+
214
+ background-color: currentColor;
215
+ }
216
+
217
+ .outline-section {
218
+ position: absolute;
219
+ inset: 0;
220
+ }
221
+
222
+ .outline-section::before,
223
+ .outline-section::after {
224
+ content: "";
225
+
226
+ position: absolute;
227
+
228
+ max-block-size: 50%;
229
+ max-inline-size: 50%;
230
+
231
+ -webkit-mask-repeat: no-repeat;
232
+ -webkit-mask-size: contain;
233
+
234
+ background-color: currentColor;
235
+
236
+ transition-duration: 200ms;
237
+ /* stylelint-disable-next-line liberty/use-logical-spec */
238
+ transition-property: width, height;
239
+ }
240
+
241
+ .outline-left::before {
242
+ /* stylelint-disable-next-line liberty/use-logical-spec */
243
+ left: calc(-1px * var(--mdw-shape__convex));
244
+ inset-block-start: calc(-1px * var(--mdw-shape__convex));
245
+
246
+ block-size: calc(var(--mdw-shape__size__top-left-size));
247
+ inline-size: calc(var(--mdw-shape__size__top-left-size));
248
+ /* stylelint-disable-next-line liberty/use-logical-spec */
249
+ padding-right: calc(2px * var(--mdw-shape__convex));
250
+ padding-block-end: calc(2px * var(--mdw-shape__convex));
251
+
252
+ -webkit-mask-image: var(--mdw-shape__mask-image__top-left);
253
+ }
254
+
255
+ .outline-left::after {
256
+ /* stylelint-disable-next-line liberty/use-logical-spec */
257
+ left: calc(-1px * var(--mdw-shape__convex));
258
+ inset-block-end: calc(-1px * var(--mdw-shape__convex));
259
+
260
+ block-size: var(--mdw-shape__size__bottom-left-size);
261
+ inline-size: var(--mdw-shape__size__bottom-left-size);
262
+ /* stylelint-disable-next-line liberty/use-logical-spec */
263
+ padding-right: calc(2px * var(--mdw-shape__convex));
264
+ padding-block-start: calc(2px * var(--mdw-shape__convex));
265
+
266
+ -webkit-mask-image: var(--mdw-shape__mask-image__bottom-left);
267
+ -webkit-mask-position-y: 100%;
268
+ }
269
+
270
+ .outline-right::before {
271
+ /* stylelint-disable-next-line liberty/use-logical-spec */
272
+ right: calc(-1px * var(--mdw-shape__convex));
273
+ inset-block-start: calc(-1px * var(--mdw-shape__convex));
274
+
275
+ block-size: var(--mdw-shape__size__top-right-size);
276
+ inline-size: var(--mdw-shape__size__top-right-size);
277
+ /* stylelint-disable-next-line liberty/use-logical-spec */
278
+ padding-left: calc(2px * var(--mdw-shape__convex));
279
+ padding-block-end: calc(2px * var(--mdw-shape__convex));
280
+
281
+ -webkit-mask-image: var(--mdw-shape__mask-image__top-right);
282
+ -webkit-mask-position-x: 100%;
283
+ }
284
+
285
+ .outline-right::after {
286
+ /* stylelint-disable-next-line liberty/use-logical-spec */
287
+ right: calc(-1px * var(--mdw-shape__convex));
288
+ inset-block-end: calc(-1px * var(--mdw-shape__convex));
289
+
290
+ block-size: var(--mdw-shape__size__bottom-right-size);
291
+ inline-size: var(--mdw-shape__size__bottom-right-size);
292
+ /* stylelint-disable-next-line liberty/use-logical-spec */
293
+ padding-left: calc(2px * var(--mdw-shape__convex));
294
+ padding-block-start: calc(2px * var(--mdw-shape__convex));
295
+
296
+ -webkit-mask-image: var(--mdw-shape__mask-image__bottom-right);
297
+ -webkit-mask-position-x: 100%;
298
+ -webkit-mask-position-y: 100%;
299
+ }
300
+ }
30
301
  `;
31
302
  }
@@ -1,5 +1,3 @@
1
- import styles from './StateMixin.css' assert { type: 'css' };
2
-
3
1
  // Globals
4
2
 
5
3
  let lastInteractionWasTouch = window?.matchMedia?.('(any-pointer: coarse)').matches;
@@ -33,7 +31,6 @@ export default function StateMixin(Base) {
33
31
  .define({
34
32
  stateTargetElement() { return this; },
35
33
  })
36
- .css(styles)
37
34
  .html/* html */`
38
35
  <div id=state _if={stateLayer}
39
36
  disabled={disabledState}
@@ -41,7 +38,7 @@ export default function StateMixin(Base) {
41
38
  hovered={hoveredState}
42
39
  pressed={pressedState}
43
40
  interaction={_lastInteraction}
44
- touched=${({ _lastInteraction }) => _lastInteraction === 'touch'}
41
+ touched={touchedState}
45
42
  aria-hidden=true></div>
46
43
  `
47
44
  .events({
@@ -110,5 +107,90 @@ export default function StateMixin(Base) {
110
107
  disconnected() {
111
108
  this._lastInteraction = null;
112
109
  },
113
- });
110
+ })
111
+ .css`
112
+ /* https://m3.material.io/foundations/interaction-states */
113
+
114
+ :host {
115
+ --mdw-state__hovered-opacity: 0.08;
116
+ --mdw-state__focused-opacity: 0.12;
117
+ --mdw-state__pressed-opacity: 0.12;
118
+ --mdw-state__dragged-opacity: 0.12;
119
+ position: relative;
120
+
121
+ outline: none;
122
+ -webkit-tap-highlight-color: transparent;
123
+ }
124
+
125
+ /* Remove Firefox inner */
126
+ :host(::-moz-focus-inner) {
127
+ border: 0;
128
+ }
129
+
130
+ #state {
131
+ position: absolute;
132
+ inset: 0;
133
+
134
+ pointer-events: none;
135
+
136
+ opacity: calc(
137
+ var(--mdw-state__hovered-opacity) +
138
+ var(--mdw-state__focused-opacity) +
139
+ var(--mdw-state__pressed-opacity) +
140
+ var(--mdw-state__dragged-opacity)
141
+ );
142
+ /* opacity handled by theme engine */
143
+ background-color: currentColor;
144
+ border-radius: inherit;
145
+
146
+ transition-delay: 0ms;
147
+ transition-duration: 000ms;
148
+ transition-property: opacity, color, background-color;
149
+ will-change: opacity;
150
+ }
151
+
152
+ #state[touched] {
153
+ --mdw-state__hovered-opacity: 0;
154
+ --mdw-state__focused-opacity: 0;
155
+ }
156
+
157
+ /* Remove Hover State */
158
+ #state:is(
159
+ :not([hovered]),
160
+ [disabled]:not([state-disabled~="hover"]),
161
+ [state-off~="hover"]) {
162
+ --mdw-state__hovered-opacity: 0;
163
+ }
164
+
165
+ /* Remove Focus State */
166
+ #state:is(
167
+ :not([focused]),
168
+ [disabled]:not([state-disabled~="focus"]),
169
+ [state-off~="focus"]) {
170
+ --mdw-state__focused-opacity: 0;
171
+ }
172
+
173
+ /* Remove Pressed State */
174
+
175
+ #state:is(
176
+ :not([pressed]),
177
+ [disabled]:not([state-disabled~="pressed"]),
178
+ [state-off~="pressed"]) {
179
+ --mdw-state__pressed-opacity: 0;
180
+ }
181
+
182
+ /* Remove Dragged State */
183
+ :host(:not([aria-dragged="true"])) #state,
184
+ #state:is(
185
+ [disabled]:not([state-disabled~="dragged"]),
186
+ [state-off~="dragged"]) {
187
+ --mdw-state__dragged-opacity: 0;
188
+ }
189
+
190
+ /* Disabled */
191
+ #state[disabled]:not([state-disabled]) {
192
+ display: none;
193
+ }
194
+
195
+ `;
114
196
  }
@@ -1,5 +1,3 @@
1
- import styles from './SurfaceMixin.css' assert { type: 'css' };
2
-
3
1
  /**
4
2
  * @param {ReturnType<import('./StateMixin.js').default> & ReturnType<import('./ThemableMixin.js').default>} Base
5
3
  */
@@ -23,10 +21,161 @@ export default function SurfaceMixin(Base) {
23
21
  && (!color || color.includes('surface'));
24
22
  },
25
23
  })
26
- .css(styles)
27
24
  .html/* html */`
28
25
  <div id=surface class=surface raised={_raised} disabled={disabledState} color={color}>
29
26
  <div _if={showSurfaceTint} id=surface-tint class=surface-tint raised={_raised} color={color} aria-hidden=true></div>
30
27
  </div>
28
+ `
29
+ .css`
30
+ :host {
31
+
32
+ /** Filter blur is 1/2 CSS blur */
33
+
34
+ /** Reference Properties */
35
+ /*
36
+ --mdw-surface__box-shadow__1__umbra: 0px 1px 2px 0px rgba(var(--mdw-color__shadow), 0.30);
37
+ --mdw-surface__box-shadow__2__umbra: 0px 1px 2px 0px rgba(var(--mdw-color__shadow), 0.30);
38
+ --mdw-surface__box-shadow__3__umbra: 0px 1px 3px 0px rgba(var(--mdw-color__shadow), 0.30);
39
+ --mdw-surface__box-shadow__4__umbra: 0px 2px 3px 0px rgba(var(--mdw-color__shadow), 0.30);
40
+ --mdw-surface__box-shadow__5__umbra: 0px 4px 4px 0px rgba(var(--mdw-color__shadow), 0.30);
41
+
42
+ --mdw-surface__filter__0__umbra: drop-shadow(0px 1px 1px rgba(var(--mdw-color__shadow), 0));
43
+ --mdw-surface__filter__1__umbra: drop-shadow(0px 1px 1px rgba(var(--mdw-color__shadow), 0.30));
44
+ --mdw-surface__filter__2__umbra: drop-shadow(0px 1px 1px rgba(var(--mdw-color__shadow), 0.30));
45
+ --mdw-surface__filter__3__umbra: drop-shadow(0px 1px 1.5px rgba(var(--mdw-color__shadow), 0.30));
46
+ --mdw-surface__filter__4__umbra: drop-shadow(0px 2px 1.5px rgba(var(--mdw-color__shadow), 0.30));
47
+ --mdw-surface__filter__5__umbra: drop-shadow(0px 4px 2px rgba(var(--mdw-color__shadow), 0.30));
48
+
49
+ --mdw-surface__box-shadow__1__penumbra: 0px 1px 3px 1px rgba(var(--mdw-color__shadow), 0.15);
50
+ --mdw-surface__box-shadow__2__penumbra: 0px 2px 6px 2px rgba(var(--mdw-color__shadow), 0.15);
51
+ --mdw-surface__box-shadow__3__penumbra: 0px 4px 8px 3px rgba(var(--mdw-color__shadow), 0.15);
52
+ --mdw-surface__box-shadow__4__penumbra: 0px 6px 10px 4px rgba(var(--mdw-color__shadow), 0.15);
53
+ --mdw-surface__box-shadow__5__penumbra: 0px 8px 12px 6px rgba(var(--mdw-color__shadow), 0.15);
54
+
55
+ --mdw-surface__filter__0__penumbra: drop-shadow(0px 1px 2.5px rgba(var(--mdw-color__shadow), 0));
56
+ --mdw-surface__filter__1__penumbra: drop-shadow(0px 1px 2.5px rgba(var(--mdw-color__shadow), 0.25));
57
+ --mdw-surface__filter__2__penumbra: drop-shadow(0px 2px 5px rgba(var(--mdw-color__shadow), 0.25));
58
+ --mdw-surface__filter__3__penumbra: drop-shadow(0px 4px 7px rgba(var(--mdw-color__shadow), 0.263));
59
+ --mdw-surface__filter__4__penumbra: drop-shadow(0px 6px 9px rgba(var(--mdw-color__shadow), 0.27));
60
+ --mdw-surface__filter__5__penumbra: drop-shadow(0px 8px 12px rgba(var(--mdw-color__shadow), 0.30));
61
+
62
+ --mdw-surface__filter__0: var(--mdw-surface__shadow__0__umbra) var(--mdw-surface__shadow__0__penumbra);
63
+ --mdw-surface__filter__1: var(--mdw-surface__shadow__1__umbra) var(--mdw-surface__shadow__1__penumbra);
64
+ --mdw-surface__filter__2: var(--mdw-surface__shadow__2__umbra) var(--mdw-surface__shadow__2__penumbra);
65
+ --mdw-surface__filter__3: var(--mdw-surface__shadow__3__umbra) var(--mdw-surface__shadow__3__penumbra);
66
+ --mdw-surface__filter__4: var(--mdw-surface__shadow__4__umbra) var(--mdw-surface__shadow__4__penumbra);
67
+ --mdw-surface__filter__5: var(--mdw-surface__shadow__5__umbra) var(--mdw-surface__shadow__5__penumbra);
68
+ */
69
+
70
+ /** Flatten for performance */
71
+ --mdw-surface__shadow__0: drop-shadow(0px 1px 001px rgba(0,0,0,000)) drop-shadow(0px 1px 2.5px rgba(0,0,0,00000));
72
+ --mdw-surface__shadow__1: drop-shadow(0px 1px 001px rgba(0,0,0,0.3)) drop-shadow(0px 1px 2.5px rgba(0,0,0,0.250));
73
+ --mdw-surface__shadow__2: drop-shadow(0px 1px 001px rgba(0,0,0,0.3)) drop-shadow(0px 2px 005px rgba(0,0,0,0.250));
74
+ --mdw-surface__shadow__3: drop-shadow(0px 1px 1.5px rgba(0,0,0,0.3)) drop-shadow(0px 4px 007px rgba(0,0,0,0.263));
75
+ --mdw-surface__shadow__4: drop-shadow(0px 2px 1.5px rgba(0,0,0,0.3)) drop-shadow(0px 6px 009px rgba(0,0,0,0.270));
76
+ --mdw-surface__shadow__5: drop-shadow(0px 4px 2.0px rgba(0,0,0,0.3)) drop-shadow(0px 8px 012px rgba(0,0,0,0.300));
77
+
78
+ --mdw-surface__tint__1: 0.05;
79
+ --mdw-surface__tint__2: 0.08;
80
+ --mdw-surface__tint__3: 0.11;
81
+ --mdw-surface__tint__4: 0.12;
82
+ --mdw-surface__tint__5: 0.14;
83
+
84
+ /** Configurables */
85
+
86
+ --mdw-surface__shadow__resting: none;
87
+ --mdw-surface__shadow: var(--mdw-surface__shadow__resting);
88
+ --mdw-surface__tint: 0;
89
+ --mdw-surface__tint__raised: 0;
90
+ z-index: 0;
91
+ }
92
+
93
+ :host([elevation="0"]) {
94
+ --mdw-surface__tint: 0;
95
+ --mdw-surface__shadow__resting: none;
96
+ }
97
+
98
+ :host([elevation="1"]) {
99
+ --mdw-surface__tint: var(--mdw-surface__tint__1);
100
+ --mdw-surface__shadow__resting: var(--mdw-surface__shadow__1);
101
+ }
102
+
103
+ :host([elevation="2"]) {
104
+ --mdw-surface__tint: var(--mdw-surface__tint__2);
105
+ --mdw-surface__shadow__resting: var(--mdw-surface__shadow__2);
106
+ }
107
+
108
+ :host([elevation="3"]) {
109
+ --mdw-surface__tint: var(--mdw-surface__tint__3);
110
+ --mdw-surface__shadow__resting: var(--mdw-surface__shadow__3);
111
+ }
112
+
113
+ :host([elevation="4"]) {
114
+ --mdw-surface__tint: var(--mdw-surface__tint__4);
115
+ --mdw-surface__shadow__resting: var(--mdw-surface__shadow__4);
116
+ }
117
+
118
+ :host([elevation="5"]) {
119
+ --mdw-surface__tint: var(--mdw-surface__tint__5);
120
+ --mdw-surface__shadow__resting: var(--mdw-surface__shadow__5);
121
+ }
122
+
123
+ :host([elevation]) {
124
+ --mdw-surface__tint__raised: var(--mdw-surface__tint);
125
+ --mdw-surface__shadow__raised: var(--mdw-surface__shadow__resting);
126
+ }
127
+
128
+ .surface {
129
+ position: absolute;
130
+ inset: 0;
131
+
132
+ pointer-events: none;
133
+
134
+ filter: var(--mdw-surface__shadow);
135
+ z-index: -1;
136
+
137
+ transition-delay: 1ms;
138
+ transition-duration: 200ms;
139
+ transition-property: filter;
140
+ transition-timing-function: linear;
141
+ will-change: filter;
142
+ }
143
+
144
+ .surface[raised] {
145
+ filter: var(--mdw-surface__shadow__raised, var(--mdw-surface__shadow__resting));
146
+ }
147
+
148
+ .surface[disabled] {
149
+ filter:none;
150
+ }
151
+
152
+ .surface-tint {
153
+ position: absolute;
154
+ inset: 0;
155
+
156
+ pointer-events: none;
157
+
158
+ opacity: var(--mdw-surface__tint, 0);
159
+
160
+ background-color: rgb(var(--mdw-color__primary));
161
+ border-radius: inherit;
162
+
163
+ transition-delay: 1ms;
164
+ transition-duration: 200ms;
165
+ transition-property: opacity;
166
+ will-change: opacity;
167
+ }
168
+
169
+ .surface-tint[raised] {
170
+ opacity: var(--mdw-surface__tint__raised, 0);
171
+ }
172
+
173
+ .surface-tint[pressed] {
174
+ opacity: var(--mdw-surface__tint, 0);
175
+ }
176
+
177
+ .surface-tint[color]:not([color|="surface"]) {
178
+ display: none;
179
+ }
31
180
  `;
32
181
  }