@shortfuse/materialdesignweb 0.3.0 → 0.4.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 (398) hide show
  1. package/.eslintrc.json +136 -30
  2. package/.stylelintrc.json +6 -40
  3. package/.vscode/launch.json +20 -5
  4. package/CHANGELOG.md +24 -0
  5. package/README.md +12 -9
  6. package/adapters/datatable/column.js +82 -74
  7. package/adapters/datatable/index.js +173 -131
  8. package/adapters/dom/index.js +529 -75
  9. package/adapters/list/index.js +25 -12
  10. package/adapters/search/index.js +13 -13
  11. package/components/appbar/_spec.scss +87 -64
  12. package/components/appbar/index.scss +2 -2
  13. package/components/banner/_spec.scss +8 -8
  14. package/components/banner/index.scss +2 -2
  15. package/components/bottomnav/_spec.scss +22 -17
  16. package/components/bottomnav/index.js +61 -52
  17. package/components/bottomnav/index.scss +2 -2
  18. package/components/bottomnav/item.js +44 -25
  19. package/components/button/README.md +14 -14
  20. package/components/button/_spec.scss +23 -22
  21. package/components/button/_theme.scss +37 -21
  22. package/components/button/index.eta +32 -0
  23. package/components/button/index.js +12 -12
  24. package/components/button/index.scss +2 -2
  25. package/components/card/_spec.scss +40 -36
  26. package/components/card/index.scss +2 -2
  27. package/components/chip/_spec.scss +7 -8
  28. package/components/chip/_theme.scss +31 -31
  29. package/components/chip/index.js +3 -2
  30. package/components/chip/index.scss +2 -2
  31. package/components/chip/item.js +1 -16
  32. package/components/datatable/_spec.scss +71 -85
  33. package/components/datatable/_theme.scss +61 -156
  34. package/components/datatable/cell.js +45 -0
  35. package/components/datatable/columnheader.js +47 -0
  36. package/components/datatable/index.js +279 -366
  37. package/components/datatable/index.scss +2 -2
  38. package/components/datatable/row.js +49 -0
  39. package/components/datatable/rowheader.js +18 -0
  40. package/components/dialog/_spec.scss +61 -41
  41. package/components/dialog/index.js +325 -297
  42. package/components/dialog/index.scss +2 -2
  43. package/components/divider/_spec.scss +8 -6
  44. package/components/divider/index.scss +2 -2
  45. package/components/elevation/_spec.scss +2 -2
  46. package/components/elevation/index.scss +2 -2
  47. package/components/fab/_spec.scss +23 -24
  48. package/components/fab/index.js +50 -50
  49. package/components/fab/index.scss +2 -2
  50. package/components/grid/_spec.scss +33 -31
  51. package/components/grid/index.scss +2 -2
  52. package/components/layout/_mixins.scss +5 -5
  53. package/components/layout/_spec.scss +206 -176
  54. package/components/layout/_theme.scss +14 -16
  55. package/components/layout/index.js +181 -153
  56. package/components/layout/index.scss +2 -2
  57. package/components/list/_spec.scss +117 -104
  58. package/components/list/_theme.scss +31 -34
  59. package/components/list/content.js +68 -52
  60. package/components/list/index.js +194 -61
  61. package/components/list/index.scss +2 -2
  62. package/components/list/item.js +136 -12
  63. package/components/list/secondary.js +46 -0
  64. package/components/menu/_spec.scss +32 -19
  65. package/components/menu/index.js +242 -229
  66. package/components/menu/index.scss +2 -2
  67. package/components/menu/item.js +95 -110
  68. package/components/progress/_spec.scss +35 -27
  69. package/components/progress/index.js +21 -0
  70. package/components/progress/index.scss +2 -1
  71. package/components/selection/_spec.scss +242 -224
  72. package/components/selection/_theme.scss +100 -95
  73. package/components/selection/index.eta +60 -0
  74. package/components/selection/index.js +76 -0
  75. package/components/selection/index.pug +15 -8
  76. package/components/selection/index.scss +2 -2
  77. package/components/selection/input.js +56 -0
  78. package/components/selection/radiogroup.js +47 -0
  79. package/components/slider/_spec.scss +10 -8
  80. package/components/slider/index.scss +2 -2
  81. package/components/snackbar/_spec.scss +22 -21
  82. package/components/snackbar/index.js +102 -111
  83. package/components/snackbar/index.scss +2 -2
  84. package/components/tab/_spec.scss +20 -19
  85. package/components/tab/content.js +41 -40
  86. package/components/tab/index.js +192 -99
  87. package/components/tab/index.scss +2 -2
  88. package/components/tab/item.js +38 -55
  89. package/components/tab/list.js +96 -72
  90. package/components/tab/panel.js +12 -13
  91. package/components/template/_theme.scss +11 -11
  92. package/components/textfield/_mixins.scss +52 -0
  93. package/components/textfield/_spec.scss +215 -266
  94. package/components/textfield/_theme.scss +95 -72
  95. package/components/textfield/index.eta +74 -0
  96. package/components/textfield/index.js +63 -57
  97. package/components/textfield/index.scss +2 -2
  98. package/components/tooltip/_spec.scss +27 -25
  99. package/components/tooltip/index.scss +2 -2
  100. package/components/type/_spec.scss +51 -38
  101. package/components/type/index.scss +2 -2
  102. package/core/_breakpoint.scss +75 -91
  103. package/core/_elevation.scss +10 -10
  104. package/core/_length.scss +9 -0
  105. package/core/_motion.scss +14 -14
  106. package/core/_platform.scss +9 -15
  107. package/core/_type.scss +33 -32
  108. package/core/aria/attributes.js +125 -25
  109. package/core/aria/button.js +23 -23
  110. package/core/aria/keyboard.js +93 -0
  111. package/core/aria/rovingtabindex.js +69 -154
  112. package/core/aria/tab.js +31 -28
  113. package/core/color/_theme.scss +240 -280
  114. package/core/color/index.scss +2 -2
  115. package/core/document/index.js +39 -0
  116. package/core/dom.js +12 -12
  117. package/core/overlay/_spec.scss +0 -3
  118. package/core/overlay/_theme.scss +56 -74
  119. package/core/overlay/index.js +49 -18
  120. package/core/overlay/index.scss +2 -2
  121. package/core/ripple/_spec.scss +22 -39
  122. package/core/ripple/_theme.scss +13 -13
  123. package/core/ripple/index.js +137 -134
  124. package/core/ripple/index.scss +2 -2
  125. package/core/theme/_config.scss +2 -0
  126. package/core/theme/_mixins.scss +172 -0
  127. package/core/theme/_palettes.scss +155 -135
  128. package/core/theme/_variables.scss +24 -15
  129. package/core/theme/index.js +50 -0
  130. package/core/throttler.js +1 -1
  131. package/core/transition/index.js +36 -20
  132. package/{docs-src → docs}/_flex.scss +0 -0
  133. package/{docs-src → docs}/_menuoptions.js +21 -34
  134. package/{docs-src → docs}/_mixins.pug +39 -26
  135. package/docs/_partials/_androidnavbar.eta +5 -0
  136. package/docs/_partials/_androidstatusbar.eta +13 -0
  137. package/docs/_partials/_appbar.eta +29 -0
  138. package/docs/_partials/_buttontest.eta +31 -0
  139. package/docs/_partials/_header.eta +149 -0
  140. package/docs/_partials/_navlistitem.eta +16 -0
  141. package/docs/_partials/_target.eta +1 -0
  142. package/{docs-src → docs}/_sample-utils.js +8 -6
  143. package/{docs-src → docs}/_storage.js +0 -0
  144. package/{docs-src → docs}/docs.scss +5 -2
  145. package/docs/index.eta +16 -0
  146. package/{docs-src → docs}/index.js +0 -0
  147. package/docs/pages/appbar.eta +114 -0
  148. package/{docs-src/components → docs/pages}/appbar.js +0 -0
  149. package/{docs-src/components → docs/pages}/appbar.pug +15 -18
  150. package/docs/pages/bottomnav.eta +188 -0
  151. package/{docs-src/components → docs/pages}/bottomnav.js +23 -24
  152. package/{docs-src/components → docs/pages}/bottomnav.pug +4 -4
  153. package/docs/pages/button.eta +124 -0
  154. package/{docs-src/components → docs/pages}/button.js +19 -19
  155. package/{docs-src/components → docs/pages}/button.pug +15 -15
  156. package/docs/pages/card.eta +90 -0
  157. package/{docs-src/components → docs/pages}/card.js +3 -3
  158. package/{docs-src/components → docs/pages}/card.pug +7 -7
  159. package/docs/pages/chip.eta +122 -0
  160. package/{docs-src/components → docs/pages}/chip.js +3 -6
  161. package/{docs-src/components → docs/pages}/chip.pug +2 -2
  162. package/docs/pages/color.eta +143 -0
  163. package/{docs-src/core → docs/pages}/color.js +95 -20
  164. package/docs/pages/color.pug +121 -0
  165. package/docs/pages/datatable.eta +323 -0
  166. package/{docs-src/components → docs/pages}/datatable.js +26 -13
  167. package/docs/pages/datatable.pug +283 -0
  168. package/docs/pages/dialog.eta +186 -0
  169. package/{docs-src/components → docs/pages}/dialog.js +26 -13
  170. package/{docs-src/components → docs/pages}/dialog.pug +46 -28
  171. package/docs/pages/dom.eta +26 -0
  172. package/docs/pages/dom.js +143 -0
  173. package/docs/pages/dom.pug +22 -0
  174. package/docs/pages/elevation.eta +35 -0
  175. package/{docs-src/components → docs/pages}/elevation.js +0 -0
  176. package/{docs-src/components → docs/pages}/elevation.pug +0 -0
  177. package/docs/pages/fab.eta +99 -0
  178. package/{docs-src/components → docs/pages}/fab.js +3 -3
  179. package/{docs-src/components → docs/pages}/fab.pug +2 -2
  180. package/docs/pages/grid.eta +135 -0
  181. package/{docs-src/components → docs/pages}/grid.js +1 -1
  182. package/{docs-src/components → docs/pages}/grid.pug +3 -3
  183. package/docs/pages/layout.eta +8 -0
  184. package/{docs-src/components → docs/pages}/layout.js +0 -0
  185. package/{docs-src/components → docs/pages}/layout.pug +0 -0
  186. package/docs/pages/list.eta +465 -0
  187. package/{docs-src/components → docs/pages}/list.js +2 -2
  188. package/{docs-src/components → docs/pages}/list.pug +7 -14
  189. package/docs/pages/menu.eta +276 -0
  190. package/{docs-src/components → docs/pages}/menu.js +14 -10
  191. package/{docs-src/components → docs/pages}/menu.pug +0 -0
  192. package/docs/pages/overlay.eta +69 -0
  193. package/docs/pages/overlay.js +4 -0
  194. package/{docs-src/core → docs/pages}/overlay.pug +14 -11
  195. package/docs/pages/progress.eta +23 -0
  196. package/{docs-src/components → docs/pages}/progress.js +1 -1
  197. package/{docs-src/components → docs/pages}/progress.pug +1 -1
  198. package/docs/pages/ripple.eta +27 -0
  199. package/docs/pages/ripple.js +4 -0
  200. package/{docs-src/core → docs/pages}/ripple.pug +4 -4
  201. package/docs/pages/search.eta +246 -0
  202. package/{docs-src/components → docs/pages}/search.js +59 -42
  203. package/{docs-src/components → docs/pages}/search.pug +50 -51
  204. package/docs/pages/selection.eta +111 -0
  205. package/docs/pages/selection.js +13 -0
  206. package/docs/pages/selection.pug +74 -0
  207. package/docs/pages/slider.eta +23 -0
  208. package/{docs-src/components → docs/pages}/slider.js +0 -0
  209. package/{docs-src/components → docs/pages}/slider.pug +0 -0
  210. package/docs/pages/snackbar.eta +83 -0
  211. package/{docs-src/components → docs/pages}/snackbar.js +3 -3
  212. package/{docs-src/components → docs/pages}/snackbar.pug +0 -0
  213. package/docs/pages/tab.eta +421 -0
  214. package/{docs-src/components → docs/pages}/tab.js +18 -35
  215. package/{docs-src/components → docs/pages}/tab.pug +4 -4
  216. package/docs/pages/textfield.eta +486 -0
  217. package/{docs-src/components → docs/pages}/textfield.js +3 -4
  218. package/{docs-src/components → docs/pages}/textfield.pug +87 -35
  219. package/docs/pages/tooltip.eta +94 -0
  220. package/{docs-src/components → docs/pages}/tooltip.js +0 -0
  221. package/{docs-src/components → docs/pages}/tooltip.pug +0 -1
  222. package/docs/pages/transition.eta +117 -0
  223. package/{docs-src/core → docs/pages}/transition.js +7 -8
  224. package/{docs-src/core → docs/pages}/transition.pug +0 -0
  225. package/docs/pages/type.eta +31 -0
  226. package/{docs-src/components → docs/pages}/type.js +0 -0
  227. package/{docs-src/components → docs/pages}/type.pug +0 -1
  228. package/docs/postrender.js +39 -0
  229. package/{docs-src → docs}/prerender.js +3 -9
  230. package/docs/pwa/_dialogs.eta +143 -0
  231. package/docs/pwa/_dialogs.pug +96 -0
  232. package/docs/pwa/_menus.eta +16 -0
  233. package/{docs-src → docs}/pwa/_menus.pug +0 -0
  234. package/docs/pwa/pwa-prerender.js +3 -0
  235. package/docs/pwa/pwa.eta +480 -0
  236. package/docs/pwa/pwa.js +306 -0
  237. package/{docs-src → docs}/pwa/pwa.pug +166 -263
  238. package/docs/pwa/pwa.scss +26 -0
  239. package/docs/spec.scss +26 -0
  240. package/docs/themes/_component-themes.scss +26 -0
  241. package/docs/themes/theme-colored-fallbacks.scss +17 -0
  242. package/docs/themes/theme-colored.scss +17 -0
  243. package/docs/themes/theme-default-fallbacks.scss +17 -0
  244. package/docs/themes/theme-default.scss +17 -0
  245. package/jsconfig.json +4 -2
  246. package/package.json +40 -27
  247. package/scripts/deploy-docs.sh +9 -0
  248. package/templates/index.eta +2 -0
  249. package/utils/function.js +3 -0
  250. package/webpack.config.cjs +257 -0
  251. package/_spec.scss +0 -27
  252. package/_theme.scss +0 -27
  253. package/components/list/expander.js +0 -142
  254. package/components/list/itemgroup.js +0 -22
  255. package/core/theme/_builder.scss +0 -116
  256. package/core/theme/index.scss +0 -68
  257. package/docs/appbar.html +0 -1
  258. package/docs/appbar.min.js +0 -2
  259. package/docs/appbar.min.js.map +0 -1
  260. package/docs/bottomnav.html +0 -1
  261. package/docs/bottomnav.min.js +0 -2
  262. package/docs/bottomnav.min.js.map +0 -1
  263. package/docs/button.html +0 -1
  264. package/docs/button.min.js +0 -2
  265. package/docs/button.min.js.map +0 -1
  266. package/docs/card.html +0 -1
  267. package/docs/card.min.js +0 -2
  268. package/docs/card.min.js.map +0 -1
  269. package/docs/chip.html +0 -1
  270. package/docs/chip.min.js +0 -2
  271. package/docs/chip.min.js.map +0 -1
  272. package/docs/color.html +0 -1
  273. package/docs/color.min.js +0 -2
  274. package/docs/color.min.js.map +0 -1
  275. package/docs/datatable.html +0 -1
  276. package/docs/datatable.min.js +0 -2
  277. package/docs/datatable.min.js.map +0 -1
  278. package/docs/default.common.min.js +0 -2
  279. package/docs/default.common.min.js.map +0 -1
  280. package/docs/dialog.html +0 -1
  281. package/docs/dialog.min.js +0 -2
  282. package/docs/dialog.min.js.map +0 -1
  283. package/docs/docs.min.css +0 -1
  284. package/docs/docs.min.js +0 -2
  285. package/docs/docs.min.js.map +0 -1
  286. package/docs/elevation.html +0 -1
  287. package/docs/elevation.min.js +0 -2
  288. package/docs/elevation.min.js.map +0 -1
  289. package/docs/fab.html +0 -1
  290. package/docs/fab.min.js +0 -2
  291. package/docs/fab.min.js.map +0 -1
  292. package/docs/grid.html +0 -1
  293. package/docs/grid.min.js +0 -2
  294. package/docs/grid.min.js.map +0 -1
  295. package/docs/index.html +0 -1
  296. package/docs/index.min.js +0 -2
  297. package/docs/index.min.js.map +0 -1
  298. package/docs/ink.html +0 -1
  299. package/docs/ink.min.js +0 -2
  300. package/docs/ink.min.js.map +0 -1
  301. package/docs/layout.html +0 -1
  302. package/docs/layout.min.js +0 -2
  303. package/docs/layout.min.js.map +0 -1
  304. package/docs/list.html +0 -1
  305. package/docs/list.min.js +0 -2
  306. package/docs/list.min.js.map +0 -1
  307. package/docs/menu.html +0 -1
  308. package/docs/menu.min.js +0 -2
  309. package/docs/menu.min.js.map +0 -1
  310. package/docs/overlay.html +0 -1
  311. package/docs/overlay.min.js +0 -2
  312. package/docs/overlay.min.js.map +0 -1
  313. package/docs/prerender.common.min.js +0 -2
  314. package/docs/prerender.common.min.js.map +0 -1
  315. package/docs/prerender.min.js +0 -2
  316. package/docs/prerender.min.js.map +0 -1
  317. package/docs/progress.html +0 -1
  318. package/docs/progress.min.js +0 -2
  319. package/docs/progress.min.js.map +0 -1
  320. package/docs/pwa-prerender.min.js +0 -2
  321. package/docs/pwa-prerender.min.js.map +0 -1
  322. package/docs/pwa.html +0 -11
  323. package/docs/pwa.min.css +0 -1
  324. package/docs/pwa.min.js +0 -2
  325. package/docs/pwa.min.js.map +0 -1
  326. package/docs/ripple.html +0 -1
  327. package/docs/ripple.min.js +0 -2
  328. package/docs/ripple.min.js.map +0 -1
  329. package/docs/search.html +0 -1
  330. package/docs/search.min.js +0 -2
  331. package/docs/search.min.js.map +0 -1
  332. package/docs/selection.html +0 -1
  333. package/docs/selection.min.js +0 -2
  334. package/docs/selection.min.js.map +0 -1
  335. package/docs/slider.html +0 -1
  336. package/docs/slider.min.js +0 -2
  337. package/docs/slider.min.js.map +0 -1
  338. package/docs/snackbar.html +0 -1
  339. package/docs/snackbar.min.js +0 -2
  340. package/docs/snackbar.min.js.map +0 -1
  341. package/docs/spec.min.css +0 -1
  342. package/docs/spec.min.js +0 -2
  343. package/docs/spec.min.js.map +0 -1
  344. package/docs/surface.html +0 -1
  345. package/docs/surface.min.js +0 -2
  346. package/docs/surface.min.js.map +0 -1
  347. package/docs/tab.html +0 -1
  348. package/docs/tab.min.js +0 -2
  349. package/docs/tab.min.js.map +0 -1
  350. package/docs/textfield.html +0 -2
  351. package/docs/textfield.min.js +0 -2
  352. package/docs/textfield.min.js.map +0 -1
  353. package/docs/theme-colored-fallbacks.min.css +0 -1
  354. package/docs/theme-colored-fallbacks.min.js +0 -2
  355. package/docs/theme-colored-fallbacks.min.js.map +0 -1
  356. package/docs/theme-colored.min.css +0 -1
  357. package/docs/theme-colored.min.js +0 -2
  358. package/docs/theme-colored.min.js.map +0 -1
  359. package/docs/theme-default-fallbacks.min.css +0 -1
  360. package/docs/theme-default-fallbacks.min.js +0 -2
  361. package/docs/theme-default-fallbacks.min.js.map +0 -1
  362. package/docs/theme-default.min.css +0 -1
  363. package/docs/theme-default.min.js +0 -2
  364. package/docs/theme-default.min.js.map +0 -1
  365. package/docs/themes-fallbacks.min.css +0 -1
  366. package/docs/themes-fallbacks.min.js +0 -2
  367. package/docs/themes-fallbacks.min.js.map +0 -1
  368. package/docs/themes.min.css +0 -1
  369. package/docs/themes.min.js +0 -2
  370. package/docs/themes.min.js.map +0 -1
  371. package/docs/tooltip.html +0 -1
  372. package/docs/tooltip.min.js +0 -2
  373. package/docs/tooltip.min.js.map +0 -1
  374. package/docs/transition.html +0 -1
  375. package/docs/transition.min.js +0 -2
  376. package/docs/transition.min.js.map +0 -1
  377. package/docs/type.html +0 -1
  378. package/docs/type.min.js +0 -2
  379. package/docs/type.min.js.map +0 -1
  380. package/docs-src/components/datatable.pug +0 -327
  381. package/docs-src/components/selection.js +0 -9
  382. package/docs-src/components/selection.pug +0 -77
  383. package/docs-src/core/color.pug +0 -201
  384. package/docs-src/core/overlay.js +0 -4
  385. package/docs-src/core/ripple.js +0 -4
  386. package/docs-src/index.pug +0 -9
  387. package/docs-src/pwa/_dialogs.pug +0 -15
  388. package/docs-src/pwa/pwa-prerender.js +0 -3
  389. package/docs-src/pwa/pwa.js +0 -182
  390. package/docs-src/pwa/pwa.scss +0 -25
  391. package/docs-src/spec.scss +0 -1
  392. package/docs-src/themes/theme-colored-fallbacks.scss +0 -14
  393. package/docs-src/themes/theme-colored.scss +0 -14
  394. package/docs-src/themes/theme-default-fallbacks.scss +0 -14
  395. package/docs-src/themes/theme-default.scss +0 -14
  396. package/index.js +0 -51
  397. package/index.scss +0 -2
  398. package/webpack.config.js +0 -187
@@ -1,19 +1,22 @@
1
1
  // https://material.io/design/components/text-fields.html
2
2
  // https://material.io/archive/guidelines/components/text-fields.html
3
3
 
4
+ @use '../../core/_elevation.scss' as elevation;
5
+ @use '../../core/_length.scss' as *;
6
+ @use '../../core/_motion.scss' as motion;
7
+ @use '../../core/_platform.scss' as platform;
8
+ @use '../../core/_type.scss' as type;
9
+ @use './_mixins.scss' as *;
4
10
 
5
- @import '../../core/_breakpoint.scss';
6
- @import '../../core/_elevation.scss';
7
- @import '../../core/_motion.scss';
8
- @import '../../core/_platform.scss';
9
- @import '../../core/_type.scss';
11
+ $border-line-height: dp(1) !default;
12
+ $border-line-height__focused: dp(2) !default;
10
13
 
11
- $mdw-textfield__border-line-height: dp(1) !default;
12
- $mdw-textfield__border-line-height__focused: dp(2) !default;
14
+ $textarea-padding-horizontal: dp(16) !default;
15
+ $outline-start-width: dp(10) !default;
16
+ $outline-end-width: dp(8) !default;
13
17
 
14
- $mdw-textfield__textarea-padding-horizontal: dp(16) !default;
15
- $mdw-textfield__outline-start-width: dp(10) !default;
16
- $mdw-textfield__outline-end-width: dp(8) !default;
18
+ $input-top-alignment: calc(#{dp(8 + 4)} + #{sp(12)} + 0.125em) !default; // Extra 1/8em for font alignment
19
+ $input-bottom-alignment: dp(8) !default;
17
20
 
18
21
  // CSS Grid Layout
19
22
  // 1 | 2 | 3 | 4 | 5 | 6 | 7
@@ -36,8 +39,8 @@ $mdw-textfield__outline-end-width: dp(8) !default;
36
39
 
37
40
  padding: dp(8) 0;
38
41
 
39
- transition-duration: $mdw-motion__simple-duration;
40
- transition-timing-function: $mdw-motion__standard-easing;
42
+ transition-duration: motion.$simpleDuration;
43
+ transition-timing-function: motion.$standardEasing;
41
44
 
42
45
 
43
46
  &[mdw-solo] {
@@ -59,7 +62,7 @@ $mdw-textfield__outline-end-width: dp(8) !default;
59
62
  }
60
63
 
61
64
  &:not([mdw-solo]) {
62
- @include type-rules('subtitle');
65
+ @include type.addRules('subtitle');
63
66
  }
64
67
  }
65
68
 
@@ -116,9 +119,9 @@ $mdw-textfield__outline-end-width: dp(8) !default;
116
119
  -ms-grid-row: 1;
117
120
  grid-row: 1;
118
121
 
119
- transition-duration: $mdw-motion__simple-duration;
122
+ transition-duration: motion.$simpleDuration;
120
123
  transition-property: color;
121
- transition-timing-function: $mdw-motion__standard-easing;
124
+ transition-timing-function: motion.$standardEasing;
122
125
  will-change: color;
123
126
 
124
127
  pointer-events: none;
@@ -146,7 +149,7 @@ $mdw-textfield__outline-end-width: dp(8) !default;
146
149
  .mdw-textfield__outline-gap {
147
150
  // Using transform would create a new composition layer and cause subpixel rendering issues
148
151
  position: absolute;
149
- top: $mdw-textfield__border-line-height__focused;
152
+ top: $border-line-height__focused;
150
153
  right: dp(12);
151
154
  bottom: 0;
152
155
  left: dp(12);
@@ -155,8 +158,22 @@ $mdw-textfield__outline-end-width: dp(8) !default;
155
158
  -ms-grid-row: 1;
156
159
  grid-row: 1;
157
160
 
158
- margin-top: -$mdw-textfield__border-line-height__focused;
159
- margin-bottom: -$mdw-textfield__border-line-height;
161
+ margin-top: -$border-line-height__focused;
162
+ margin-bottom: -$border-line-height;
163
+
164
+ .mdw-textfield[mdw-outlined] & {
165
+ position: relative;
166
+ top: auto;
167
+ right: auto;
168
+ bottom: auto;
169
+ left: auto;
170
+
171
+ max-width: calc(100% - #{dp(24)});
172
+ margin-top: -$border-line-height;
173
+ margin-bottom: -$border-line-height;
174
+
175
+ color: inherit;
176
+ }
160
177
 
161
178
  &::before,
162
179
  &::after {
@@ -166,26 +183,30 @@ $mdw-textfield__outline-end-width: dp(8) !default;
166
183
  top: 0;
167
184
 
168
185
  border-top-style: solid;
169
- border-top-width: $mdw-textfield__border-line-height;
186
+ border-top-width: $border-line-height;
170
187
 
171
188
  transition-delay: 1ms;
172
- transition-duration: $mdw-motion__simple-duration / 2;
189
+ transition-duration: motion.$simpleDuration * 0.5;
173
190
  transition-property: left, right;
174
- transition-timing-function: $mdw-motion__standard-easing;
191
+ transition-timing-function: motion.$standardEasing;
175
192
 
176
193
  border-color: inherit;
177
- }
178
194
 
179
- &::before,
180
- :root[dir="rtl"] &::after {
181
- right: 100%;
182
- left: 0;
183
- }
195
+ .mdw-textfield[mdw-outlined] & {
196
+ content: "";
184
197
 
185
- &::after,
186
- :root[dir="rtl"] &::before {
187
- right: 0;
188
- left: 100%;
198
+ // Height must exactly match parent to avoid subpixel rendering issues
199
+ bottom: 0;
200
+
201
+ border-style: none;
202
+ border-top-style: solid;
203
+ border-bottom-style: solid;
204
+
205
+ border-top-color: currentColor;
206
+ border-bottom-color: transparent;
207
+ border-radius: 0;
208
+ color: inherit;
209
+ }
189
210
  }
190
211
  }
191
212
 
@@ -207,15 +228,15 @@ $mdw-textfield__outline-end-width: dp(8) !default;
207
228
  border-right-style: none;
208
229
  border-bottom-style: solid;
209
230
  border-left-style: none;
210
- border-width: $mdw-textfield__border-line-height;
231
+ border-width: $border-line-height;
211
232
 
212
233
  cursor: pointer;
213
234
  -webkit-tap-highlight-color: transparent;
214
235
 
215
236
  transition-delay: 1ms;
216
- transition-duration: $mdw-motion__simple-duration;
237
+ transition-duration: motion.$simpleDuration;
217
238
  transition-property: color, border-color;
218
- transition-timing-function: $mdw-motion__standard-easing;
239
+ transition-timing-function: motion.$standardEasing;
219
240
 
220
241
  border-top-color: transparent;
221
242
  border-right-color: transparent;
@@ -226,6 +247,18 @@ $mdw-textfield__outline-end-width: dp(8) !default;
226
247
  border-bottom-right-radius: 0;
227
248
  border-bottom-left-radius: 0;
228
249
 
250
+ .mdw-textfield[mdw-outlined] & {
251
+ border-top-style: solid;
252
+ border-right-style: solid;
253
+ border-bottom-style: solid;
254
+ border-left-style: solid;
255
+
256
+ transition: none;
257
+
258
+ border-bottom-right-radius: dp(4);
259
+ border-bottom-left-radius: dp(4);
260
+ }
261
+
229
262
  .mdw-textfield__input:focus ~ & {
230
263
  pointer-events: none;
231
264
  }
@@ -240,40 +273,25 @@ $mdw-textfield__outline-end-width: dp(8) !default;
240
273
 
241
274
  position: absolute;
242
275
  right: 0;
243
- bottom: -$mdw-textfield__border-line-height__focused;
276
+ bottom: -$border-line-height__focused;
244
277
  left: 0;
245
278
 
246
279
  height: 100%;
247
280
  border-bottom-style: solid;
248
- border-width: $mdw-textfield__border-line-height__focused;
281
+ border-width: $border-line-height__focused;
249
282
 
250
283
  transition-delay: 1ms;
251
- transition-duration: $mdw-motion__collapse-duration;
284
+ transition-duration: motion.$collapseDuration;
252
285
  transition-property: transform;
253
- transition-timing-function: $mdw-motion__accelerate-easing;
286
+ transition-timing-function: motion.$accelerateEasing;
254
287
  will-change: transform;
255
288
 
256
- transform: scaleX(0) translateY(-$mdw-textfield__border-line-height/2);
289
+ transform: scaleX(0) translateY(-$border-line-height*0.5);
257
290
 
258
291
  border-radius: inherit;
259
292
  color: transparent;
260
- }
261
- }
262
-
263
- .mdw-textfield[mdw-outlined] {
264
- .mdw-textfield__border {
265
- border-top-style: solid;
266
- border-right-style: solid;
267
- border-bottom-style: solid;
268
- border-left-style: solid;
269
-
270
- transition: none;
271
-
272
- border-bottom-right-radius: dp(4);
273
- border-bottom-left-radius: dp(4);
274
-
275
- &::before,
276
- &::after {
293
+
294
+ .mdw-textfield[mdw-outlined] & {
277
295
  content: "";
278
296
 
279
297
  position: relative;
@@ -289,210 +307,103 @@ $mdw-textfield__outline-end-width: dp(8) !default;
289
307
 
290
308
  color: inherit;
291
309
  }
292
-
293
- &::after {
294
- flex-grow: 1;
295
- }
296
-
297
- &::before,
298
- :root[dir="rtl"] &::after {
299
- min-width: $mdw-textfield__outline-start-width - $mdw-textfield__border-line-height;
300
- margin-top: -$mdw-textfield__border-line-height;
301
- margin-right: 0;
302
- margin-left: -$mdw-textfield__border-line-height;
303
- border-top-style: solid;
304
- border-right-style: none;
305
- border-bottom-style: solid;
306
- border-left-style: solid;
307
- border-width: inherit;
308
-
309
- border-top-color: currentColor;
310
- border-right-color: transparent;
311
- border-bottom-color: transparent;
312
- border-left-color: currentColor;
313
- border-top-left-radius: inherit;
314
- border-top-right-radius: 0;
315
- border-bottom-right-radius: 0;
316
- border-bottom-left-radius: inherit;
317
- }
318
-
319
- &::after,
320
- :root[dir="rtl"] &::before {
321
- min-width: $mdw-textfield__outline-end-width - $mdw-textfield__border-line-height;
322
- margin-top: -$mdw-textfield__border-line-height;
323
- margin-right: -$mdw-textfield__border-line-height;
324
- margin-left: 0;
325
- border-top-style: solid;
326
- border-right-style: solid;
327
- border-bottom-style: solid;
328
- border-left-style: none;
329
- border-width: inherit;
330
-
331
- border-top-color: currentColor;
332
- border-right-color: currentColor;
333
- border-bottom-color: transparent;
334
- border-left-color: transparent;
335
- border-top-left-radius: 0;
336
- border-top-right-radius: inherit;
337
- border-bottom-right-radius: inherit;
338
- border-bottom-left-radius: 0;
339
- }
340
-
341
- .mdw-textfield__outline-gap {
342
- position: relative;
343
- top: auto;
344
- right: auto;
345
- bottom: auto;
346
- left: auto;
347
-
348
- max-width: calc(100% - #{dp(24)});
349
- margin-top: -$mdw-textfield__border-line-height;
350
- margin-bottom: -$mdw-textfield__border-line-height;
351
-
352
- color: inherit;
353
-
354
- &::before,
355
- &::after {
356
- content: "";
357
-
358
- // Height must exactly match parent to avoid subpixel rendering issues
359
- bottom: 0;
360
-
361
- border-style: none;
362
- border-top-style: solid;
363
- border-bottom-style: solid;
364
-
365
- border-top-color: currentColor;
366
- border-bottom-color: transparent;
367
- border-radius: 0;
368
- color: inherit;
369
- }
370
- }
371
310
  }
372
311
 
373
- .mdw-textfield__input {
374
- -ms-grid-row-align: center;
375
- align-self: center;
376
-
377
- margin: dp(8) 0;
378
- border-right: none;
379
- border-left: dp(2) solid transparent;
380
-
381
- :root[dir="rtl"] & {
382
- border-right: dp(2) solid transparent;
383
- border-left: none;
384
- }
312
+ .mdw-textfield[mdw-outlined] &::after {
313
+ flex-grow: 1;
385
314
  }
386
315
 
387
- .mdw-textfield__label {
388
- position: relative; // reflow DOM
389
- top: 0;
390
-
391
- padding: 0 dp(4);
392
-
393
- transform: translateY(-50%);
394
-
395
- &::before {
396
- content: none;
397
- }
398
- }
399
- }
400
-
401
- // IE11 will ignore entire ruleset if ':placeholder-shown' psuedo is used, requiring duplication.
402
- .mdw-textfield[mdw-value-empty] > input.mdw-textfield__input,
403
- .mdw-textfield[mdw-value-empty] > textarea.mdw-textfield__input {
404
- &:not(:focus) ~ .mdw-textfield__border {
405
- .mdw-textfield__label {
406
- @include type-rules('subtitle');
407
-
408
- top: 50%;
409
-
410
- transform: translateY(-50%);
411
- }
412
-
413
- .mdw-textfield__outline-gap {
414
- &::before,
415
- :root[dir="rtl"] &::after {
416
- right: 50%;
417
- left: 0;
418
- }
419
-
420
- &::after,
421
- :root[dir="rtl"] &::before {
422
- right: 0;
423
- left: 50%;
424
- }
425
- }
426
- }
427
- }
428
-
429
- .mdw-textfield > input.mdw-textfield__input,
430
- .mdw-textfield > textarea.mdw-textfield__input {
431
- &:not(:focus):placeholder-shown ~ .mdw-textfield__border {
432
- .mdw-textfield__label {
433
- @include type-rules('subtitle');
434
-
435
- top: 50%;
436
-
437
- transform: translateY(-50%);
438
- }
439
-
440
- .mdw-textfield__outline-gap {
441
- &::before,
442
- :root[dir="rtl"] &::after {
443
- right: 50%;
444
- left: 0;
445
- }
446
-
447
- &::after,
448
- :root[dir="rtl"] &::before {
449
- right: 0;
450
- left: 50%;
451
- }
452
- }
316
+ .mdw-textfield[mdw-outlined] &::before,
317
+ :root[dir="rtl"] .mdw-textfield[mdw-outlined] &::after {
318
+ min-width: $outline-start-width - $border-line-height;
319
+ margin-top: -$border-line-height;
320
+ margin-right: 0;
321
+ margin-left: -$border-line-height;
322
+ border-top-style: solid;
323
+ border-right-style: none;
324
+ border-bottom-style: solid;
325
+ border-left-style: solid;
326
+ border-width: inherit;
327
+
328
+ border-top-color: currentColor;
329
+ border-right-color: transparent;
330
+ border-bottom-color: transparent;
331
+ border-left-color: currentColor;
332
+ border-top-left-radius: inherit;
333
+ border-top-right-radius: 0;
334
+ border-bottom-right-radius: 0;
335
+ border-bottom-left-radius: inherit;
336
+ }
337
+
338
+ .mdw-textfield[mdw-outlined] &::after,
339
+ :root[dir="rtl"] .mdw-textfield[mdw-outlined] &::before {
340
+ min-width: $outline-end-width - $border-line-height;
341
+ margin-top: -$border-line-height;
342
+ margin-right: -$border-line-height;
343
+ margin-left: 0;
344
+ border-top-style: solid;
345
+ border-right-style: solid;
346
+ border-bottom-style: solid;
347
+ border-left-style: none;
348
+ border-width: inherit;
349
+
350
+ border-top-color: currentColor;
351
+ border-right-color: currentColor;
352
+ border-bottom-color: transparent;
353
+ border-left-color: transparent;
354
+ border-top-left-radius: 0;
355
+ border-top-right-radius: inherit;
356
+ border-bottom-right-radius: inherit;
357
+ border-bottom-left-radius: 0;
453
358
  }
454
359
  }
455
360
 
456
361
  .mdw-textfield__label {
457
- // Default state is floating
458
- @include type-rules('caption');
459
-
460
362
  position: absolute;
461
- top: 0;
462
363
  right: 0;
463
364
  left: 0;
464
365
  -ms-grid-row-align: start;
465
366
  align-self: flex-start;
466
367
  overflow-x: hidden;
368
+ overflow-y: hidden;
467
369
 
468
370
  margin: 0;
469
371
  padding: 0;
470
372
 
471
- transition-duration: $mdw-motion__shape-change-duration;
373
+ transition-duration: motion.$shapeChangeDuration;
472
374
  transition-property: top, transform, font-size;
473
- transition-timing-function: $mdw-motion__standard-easing;
375
+ transition-timing-function: motion.$standardEasing;
474
376
  will-change: top, transform, font-size;
475
377
 
476
378
  pointer-events: none; // allow clickthrough
477
- transform: translateY(0);
478
379
 
479
380
  text-overflow: ellipsis;
480
381
  white-space: nowrap;
481
382
 
383
+ .mdw-textfield[mdw-outlined] & {
384
+ position: relative; // reflow DOM
385
+
386
+ padding: 0 dp(4);
387
+ }
388
+
482
389
 
483
390
  &::before {
484
- // Add 8dp from text-top to top for positioning
485
- // Add 8dp from baseline to keep centering
486
- @include type-rules('caption');
391
+ // Add upper 8dp from text-top to top for positioning
392
+ // Add lower 8dp from baseline to keep vertically centered
393
+ @include type.addRules('caption');
487
394
  content: "";
488
395
 
489
396
  display: inline-block;
490
397
  vertical-align: dp(-8);
491
-
398
+
492
399
  box-sizing: content-box; // Don't allow global override
493
400
  height: 1em;
494
401
  margin-top: dp(8);
495
402
  padding-top: dp(8);
403
+
404
+ .mdw-textfield[mdw-outlined] & {
405
+ content: none;
406
+ }
496
407
  }
497
408
  }
498
409
 
@@ -559,19 +470,17 @@ $mdw-textfield__outline-end-width: dp(8) !default;
559
470
  box-sizing: border-box;
560
471
  min-width: 0; // Firefox CSS Grid fix
561
472
  width: 100%;
562
- margin: 0;
563
473
  border: none;
564
474
  padding: 0;
565
- //padding-bottom: dp(8);
566
-
475
+
567
476
  -moz-appearance: none;
568
477
  -webkit-appearance: none;
569
478
  appearance: none;
570
479
  outline: none;
571
480
  -webkit-tap-highlight-color: transparent;
572
-
481
+
573
482
  z-index: 1;
574
-
483
+
575
484
  background: none;
576
485
  box-shadow: none; // Firefox :invalid styling
577
486
 
@@ -581,11 +490,26 @@ $mdw-textfield__outline-end-width: dp(8) !default;
581
490
  font-family: inherit;
582
491
  letter-spacing: inherit;
583
492
 
493
+ .mdw-textfield[mdw-outlined] & {
494
+ -ms-grid-row-align: center;
495
+ align-self: center;
496
+
497
+ margin-top: calc(#{sp(6)} + #{dp(2)}); // Half of label + 2px
498
+ margin-bottom: calc(#{sp(6)} + #{dp(2)}); // Equidistant from border
499
+ border-right: none;
500
+ border-left: dp(2) solid transparent;
501
+
502
+ :root[dir="rtl"] & {
503
+ border-right: dp(2) solid transparent;
504
+ border-left: none;
505
+ }
506
+ }
507
+
584
508
  &::placeholder {
585
509
  transition-delay: 1ms;
586
- transition-duration: $mdw-motion__simple-duration;
510
+ transition-duration: motion.$simpleDuration;
587
511
  transition-property: color;
588
- transition-timing-function: $mdw-motion__standard-easing;
512
+ transition-timing-function: motion.$standardEasing;
589
513
  will-change: color;
590
514
  }
591
515
 
@@ -596,8 +520,6 @@ $mdw-textfield__outline-end-width: dp(8) !default;
596
520
  &:disabled {
597
521
  cursor: not-allowed;
598
522
  }
599
-
600
-
601
523
  }
602
524
 
603
525
  .mdw-textfield__input,
@@ -606,24 +528,26 @@ $mdw-textfield__outline-end-width: dp(8) !default;
606
528
  -ms-grid-row-align: flex-start;
607
529
  align-self: flex-start;
608
530
 
609
- margin-top: calc(#{dp(8 + 4)} + #{sp(12)});
610
- margin-bottom: dp(8);
531
+ margin-top: $input-top-alignment;
532
+ margin-bottom: $input-bottom-alignment;
611
533
  }
612
534
 
613
535
  textarea.mdw-textfield__input {
614
536
  -ms-overflow-style: -ms-autohiding-scrollbar;
615
537
  overflow-y: auto;
538
+ -webkit-overflow-scrolling: touch;
616
539
 
617
540
  min-height: 1em; // Avoid clipping on resize
618
541
  min-width: 100%; // Always fill container horizontally
619
542
  max-width: 100%; // Don't allow resize beyond bounds
620
- padding-right: $mdw-textfield__textarea-padding-horizontal;
621
- padding-bottom: 0;
543
+ margin-top: $input-top-alignment;
544
+ margin-bottom: $input-bottom-alignment;
545
+ padding-right: $textarea-padding-horizontal;
622
546
  padding-left: 0;
623
547
 
624
548
  :root[dir="rtl"] & {
625
549
  padding-right: 0;
626
- padding-left: $mdw-textfield__textarea-padding-horizontal;
550
+ padding-left: $textarea-padding-horizontal;
627
551
  }
628
552
 
629
553
  .mdw-textfield[mdw-autosize] > & {
@@ -658,10 +582,8 @@ select.mdw-textfield__input {
658
582
  font-size: inherit;
659
583
  font-family: inherit;
660
584
  }
661
-
662
585
  }
663
586
 
664
-
665
587
  .mdw-textfield__error-text {
666
588
  opacity: 0;
667
589
  transform: translateY(-25%);
@@ -669,8 +591,8 @@ select.mdw-textfield__input {
669
591
 
670
592
  .mdw-textfield__helper-text,
671
593
  .mdw-textfield__error-text {
672
- @include texttop-to-top(4);
673
- @include type-rules('caption');
594
+ @include type.textTopToTop(4);
595
+ @include type.addRules('caption');
674
596
  -ms-grid-column: 3;
675
597
  grid-column: 3;
676
598
  -ms-grid-column-span: 4;
@@ -729,12 +651,14 @@ select.mdw-textfield__input {
729
651
  margin-top: 0;
730
652
  margin-bottom: dp(8);
731
653
 
732
- transition-duration: $mdw-motion__collapse-duration;
654
+ transition-duration: motion.$collapseDuration;
733
655
  transition-property: box-shadow, max-height;
734
- transition-timing-function: $mdw-motion__accelerate-easing;
656
+ transition-timing-function: motion.$accelerateEasing;
735
657
 
736
658
  z-index: 2;
737
659
 
660
+ border-top-left-radius: dp(0);
661
+ border-top-right-radius: dp(0);
738
662
  border-bottom-right-radius: dp(4);
739
663
  border-bottom-left-radius: dp(4);
740
664
 
@@ -751,10 +675,10 @@ select.mdw-textfield__input {
751
675
  &[mdw-show],
752
676
  input:focus ~ & {
753
677
  &:not([mdw-hide]) {
754
- transition-duration: $mdw-motion__expand-duration;
755
- transition-timing-function: $mdw-motion__decelerate-easing;
678
+ transition-duration: motion.$expandDuration;
679
+ transition-timing-function: motion.$decelerateEasing;
756
680
 
757
- box-shadow: mdwElevation(24);
681
+ box-shadow: elevation.boxShadow(24);
758
682
 
759
683
  &[mdw-type="list"] {
760
684
  max-height: dp(300);
@@ -769,16 +693,40 @@ select.mdw-textfield__input {
769
693
 
770
694
  }
771
695
 
696
+ // Default state of centered or when [mdw-value-empty] is present (IE)
697
+ @include centerLabel();
698
+
699
+ .mdw-textfield[mdw-value-empty] {
700
+ @include centerLabel();
701
+ }
702
+
703
+ // Floating states:
704
+ // IE/Edge, HTMLSelectElement, :focus, :autofill, or has texted (unfocused with placeholder)
705
+
706
+ @include platform.ifMS() {
707
+ @include floatLabel();
708
+ }
709
+
710
+ select.mdw-textfield__input ~ .mdw-textfield__border,
711
+ .mdw-textfield__input:focus ~ .mdw-textfield__border {
712
+ @include floatLabel();
713
+ }
714
+
715
+ // Rules are intentionally separated because IE won't parse rules with unknown psuedos
716
+ .mdw-textfield__input:-webkit-autofill ~ .mdw-textfield__border,
717
+ .mdw-textfield__input:not(:placeholder-shown):not(:focus) ~ .mdw-textfield__border {
718
+ @include floatLabel();
719
+ }
720
+
721
+ // Invalid state
772
722
  .mdw-textfield:active > .mdw-textfield__input:not(:disabled),
773
723
  .mdw-textfield > .mdw-textfield__input:not(:disabled):focus {
774
-
775
- // Invalid
776
724
  &:invalid {
777
725
  & ~ .mdw-textfield__border .mdw-textfield__outline-gap {
778
726
  animation-name: labelShake;
779
- animation-duration: $mdw-motion__shape-change-duration;
727
+ animation-duration: motion.$shapeChangeDuration;
780
728
  animation-timing-function: linear;
781
- animation-delay: $mdw-motion__simple-duration;
729
+ animation-delay: motion.$simpleDuration;
782
730
  }
783
731
  }
784
732
  }
@@ -789,9 +737,10 @@ select.mdw-textfield__input {
789
737
  & > .mdw-textfield__input:not(:disabled):focus {
790
738
  & ~ .mdw-textfield__border::before,
791
739
  &:invalid ~ .mdw-textfield__border::after {
792
- transition-duration: $mdw-motion__expand-duration;
793
- transition-timing-function: $mdw-motion__decelerate-easing;
794
- transform: scaleX(1) translateY(-$mdw-textfield__border-line-height/2);
740
+ transition-duration: motion.$expandDuration;
741
+ transition-timing-function: motion.$decelerateEasing;
742
+
743
+ transform: scaleX(1) translateY(-$border-line-height*0.5);
795
744
  }
796
745
  }
797
746
  }
@@ -799,31 +748,31 @@ select.mdw-textfield__input {
799
748
  // Border change on outlined active or focus
800
749
  .mdw-textfield[mdw-outlined]:active > .mdw-textfield__input:not(:disabled) ~ .mdw-textfield__border,
801
750
  .mdw-textfield[mdw-outlined] > .mdw-textfield__input:not(:disabled):focus ~ .mdw-textfield__border {
802
- border-width: $mdw-textfield__border-line-height__focused;
751
+ border-width: $border-line-height__focused;
803
752
 
804
753
  &::before,
805
754
  html[dir="rtl"] &::after {
806
- min-width: $mdw-textfield__outline-start-width - $mdw-textfield__border-line-height__focused;
807
- margin-top: -$mdw-textfield__border-line-height__focused;
755
+ min-width: $outline-start-width - $border-line-height__focused;
756
+ margin-top: -$border-line-height__focused;
808
757
  margin-right: 0;
809
- margin-left: -$mdw-textfield__border-line-height__focused;
758
+ margin-left: -$border-line-height__focused;
810
759
  }
811
760
 
812
761
  &::after,
813
762
  html[dir="rtl"] &::before {
814
- min-width: $mdw-textfield__outline-end-width - $mdw-textfield__border-line-height__focused;
815
- margin-top: -$mdw-textfield__border-line-height__focused;
816
- margin-right: -$mdw-textfield__border-line-height__focused;
763
+ min-width: $outline-end-width - $border-line-height__focused;
764
+ margin-top: -$border-line-height__focused;
765
+ margin-right: -$border-line-height__focused;
817
766
  margin-left: 0;
818
767
  }
819
768
 
820
769
  .mdw-textfield__outline-gap {
821
- margin-top: -$mdw-textfield__border-line-height__focused;
822
- margin-bottom: -$mdw-textfield__border-line-height__focused;
770
+ margin-top: -$border-line-height__focused;
771
+ margin-bottom: -$border-line-height__focused;
823
772
 
824
773
  &::before,
825
774
  &::after {
826
- border-top-width: $mdw-textfield__border-line-height__focused;
775
+ border-top-width: $border-line-height__focused;
827
776
  }
828
777
  }
829
778
  }
@@ -831,9 +780,9 @@ select.mdw-textfield__input {
831
780
 
832
781
  // Invalid
833
782
  .mdw-textfield__input:focus:invalid ~ .mdw-textfield__error-text {
834
- transition-duration: $mdw-motion__fade-in-duration;
783
+ transition-duration: motion.$fadeInDuration;
835
784
  transition-property: transform, opacity;
836
- transition-timing-function: $mdw-motion__decelerate-easing;
785
+ transition-timing-function: motion.$decelerateEasing;
837
786
  will-change: transform, opacity;
838
787
 
839
788
  opacity: 1;