mdc.card.css 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. /**
  2. * @license
  3. * Copyright Google LLC All Rights Reserved.
  4. *
  5. * Use of this source code is governed by an MIT-style license that can be
  6. * found in the LICENSE file at https://github.com/material-components/material-components-web/blob/master/LICENSE
  7. */
  8. .mdc-elevation-overlay {
  9. position: absolute;
  10. border-radius: inherit;
  11. pointer-events: none;
  12. opacity: 0;
  13. /* @alternate */
  14. opacity: var(--mdc-elevation-overlay-opacity, 0);
  15. transition: opacity 280ms cubic-bezier(0.4, 0, 0.2, 1);
  16. background-color: #fff;
  17. /* @alternate */
  18. background-color: var(--mdc-elevation-overlay-color, #fff);
  19. }
  20. .mdc-card {
  21. border-radius: 4px;
  22. /* @alternate */
  23. border-radius: var(--mdc-shape-medium, 4px);
  24. background-color: #fff;
  25. /* @alternate */
  26. background-color: var(--mdc-theme-surface, #fff);
  27. /* @alternate */
  28. position: relative;
  29. box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
  30. }
  31. .mdc-card .mdc-elevation-overlay {
  32. width: 100%;
  33. height: 100%;
  34. top: 0;
  35. /* @noflip */
  36. /*rtl:ignore*/
  37. left: 0;
  38. }
  39. .mdc-card::after {
  40. border-radius: 4px;
  41. /* @alternate */
  42. border-radius: var(--mdc-shape-medium, 4px);
  43. }
  44. .mdc-card--outlined {
  45. box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12);
  46. border-width: 1px;
  47. border-style: solid;
  48. border-color: #e0e0e0;
  49. }
  50. .mdc-card {
  51. display: flex;
  52. flex-direction: column;
  53. box-sizing: border-box;
  54. }
  55. .mdc-card::after {
  56. position: absolute;
  57. box-sizing: border-box;
  58. width: 100%;
  59. height: 100%;
  60. top: 0;
  61. /* @noflip */
  62. /*rtl:ignore*/
  63. left: 0;
  64. border: 1px solid transparent;
  65. border-radius: inherit;
  66. content: "";
  67. pointer-events: none;
  68. pointer-events: none;
  69. }
  70. @media screen and (forced-colors: active) {
  71. .mdc-card::after {
  72. border-color: CanvasText;
  73. }
  74. }
  75. .mdc-card--outlined::after {
  76. border: none;
  77. }
  78. .mdc-card__content {
  79. border-radius: inherit;
  80. height: 100%;
  81. }
  82. .mdc-card__media {
  83. position: relative;
  84. box-sizing: border-box;
  85. background-repeat: no-repeat;
  86. background-position: center;
  87. background-size: cover;
  88. }
  89. .mdc-card__media::before {
  90. display: block;
  91. content: "";
  92. }
  93. .mdc-card__media:first-child {
  94. border-top-left-radius: inherit;
  95. border-top-right-radius: inherit;
  96. }
  97. .mdc-card__media:last-child {
  98. border-bottom-left-radius: inherit;
  99. border-bottom-right-radius: inherit;
  100. }
  101. .mdc-card__media--square::before {
  102. margin-top: 100%;
  103. }
  104. .mdc-card__media--16-9::before {
  105. margin-top: 56.25%;
  106. }
  107. .mdc-card__media-content {
  108. position: absolute;
  109. top: 0;
  110. right: 0;
  111. bottom: 0;
  112. left: 0;
  113. box-sizing: border-box;
  114. }
  115. .mdc-card__primary-action {
  116. display: flex;
  117. flex-direction: column;
  118. box-sizing: border-box;
  119. position: relative;
  120. outline: none;
  121. color: inherit;
  122. text-decoration: none;
  123. cursor: pointer;
  124. overflow: hidden;
  125. }
  126. .mdc-card__primary-action:first-child {
  127. border-top-left-radius: inherit;
  128. border-top-right-radius: inherit;
  129. }
  130. .mdc-card__primary-action:last-child {
  131. border-bottom-left-radius: inherit;
  132. border-bottom-right-radius: inherit;
  133. }
  134. .mdc-card__actions {
  135. display: flex;
  136. flex-direction: row;
  137. align-items: center;
  138. box-sizing: border-box;
  139. min-height: 52px;
  140. padding: 8px;
  141. }
  142. .mdc-card__actions--full-bleed {
  143. padding: 0;
  144. }
  145. .mdc-card__action-buttons,
  146. .mdc-card__action-icons {
  147. display: flex;
  148. flex-direction: row;
  149. align-items: center;
  150. box-sizing: border-box;
  151. }
  152. .mdc-card__action-icons {
  153. color: rgba(0, 0, 0, 0.6);
  154. flex-grow: 1;
  155. justify-content: flex-end;
  156. }
  157. .mdc-card__action-buttons + .mdc-card__action-icons {
  158. /* @noflip */
  159. /*rtl:ignore*/
  160. margin-left: 16px;
  161. /* @noflip */
  162. /*rtl:ignore*/
  163. margin-right: 0;
  164. }
  165. [dir=rtl] .mdc-card__action-buttons + .mdc-card__action-icons, .mdc-card__action-buttons + .mdc-card__action-icons[dir=rtl] {
  166. /*rtl:begin:ignore*/
  167. /* @noflip */
  168. /*rtl:ignore*/
  169. margin-left: 0;
  170. /* @noflip */
  171. /*rtl:ignore*/
  172. margin-right: 16px;
  173. /*rtl:end:ignore*/
  174. }
  175. .mdc-card__action {
  176. display: inline-flex;
  177. flex-direction: row;
  178. align-items: center;
  179. box-sizing: border-box;
  180. justify-content: center;
  181. cursor: pointer;
  182. -webkit-user-select: none;
  183. -moz-user-select: none;
  184. -ms-user-select: none;
  185. user-select: none;
  186. }
  187. .mdc-card__action:focus {
  188. outline: none;
  189. }
  190. .mdc-card__action--button {
  191. /* @noflip */
  192. /*rtl:ignore*/
  193. margin-left: 0;
  194. /* @noflip */
  195. /*rtl:ignore*/
  196. margin-right: 8px;
  197. padding: 0 8px;
  198. }
  199. [dir=rtl] .mdc-card__action--button, .mdc-card__action--button[dir=rtl] {
  200. /*rtl:begin:ignore*/
  201. /* @noflip */
  202. /*rtl:ignore*/
  203. margin-left: 8px;
  204. /* @noflip */
  205. /*rtl:ignore*/
  206. margin-right: 0;
  207. /*rtl:end:ignore*/
  208. }
  209. .mdc-card__action--button:last-child {
  210. /* @noflip */
  211. /*rtl:ignore*/
  212. margin-left: 0;
  213. /* @noflip */
  214. /*rtl:ignore*/
  215. margin-right: 0;
  216. }
  217. [dir=rtl] .mdc-card__action--button:last-child, .mdc-card__action--button:last-child[dir=rtl] {
  218. /*rtl:begin:ignore*/
  219. /* @noflip */
  220. /*rtl:ignore*/
  221. margin-left: 0;
  222. /* @noflip */
  223. /*rtl:ignore*/
  224. margin-right: 0;
  225. /*rtl:end:ignore*/
  226. }
  227. .mdc-card__actions--full-bleed .mdc-card__action--button {
  228. justify-content: space-between;
  229. width: 100%;
  230. height: auto;
  231. max-height: none;
  232. margin: 0;
  233. padding: 8px 16px;
  234. /* @noflip */
  235. /*rtl:ignore*/
  236. text-align: left;
  237. }
  238. [dir=rtl] .mdc-card__actions--full-bleed .mdc-card__action--button, .mdc-card__actions--full-bleed .mdc-card__action--button[dir=rtl] {
  239. /*rtl:begin:ignore*/
  240. /* @noflip */
  241. /*rtl:ignore*/
  242. text-align: right;
  243. /*rtl:end:ignore*/
  244. }
  245. .mdc-card__action--icon {
  246. margin: -6px 0;
  247. padding: 12px;
  248. }
  249. .mdc-card__action--icon:not(:disabled) {
  250. color: rgba(0, 0, 0, 0.6);
  251. }
  252. @-webkit-keyframes mdc-ripple-fg-radius-in {
  253. from {
  254. -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  255. animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  256. /* @noflip */
  257. /*rtl:ignore*/
  258. -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  259. transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  260. }
  261. to {
  262. /* @noflip */
  263. /*rtl:ignore*/
  264. -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  265. transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  266. }
  267. }
  268. @keyframes mdc-ripple-fg-radius-in {
  269. from {
  270. -webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  271. animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  272. /* @noflip */
  273. /*rtl:ignore*/
  274. -webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  275. transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
  276. }
  277. to {
  278. /* @noflip */
  279. /*rtl:ignore*/
  280. -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  281. transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  282. }
  283. }
  284. @-webkit-keyframes mdc-ripple-fg-opacity-in {
  285. from {
  286. -webkit-animation-timing-function: linear;
  287. animation-timing-function: linear;
  288. opacity: 0;
  289. }
  290. to {
  291. opacity: var(--mdc-ripple-fg-opacity, 0);
  292. }
  293. }
  294. @keyframes mdc-ripple-fg-opacity-in {
  295. from {
  296. -webkit-animation-timing-function: linear;
  297. animation-timing-function: linear;
  298. opacity: 0;
  299. }
  300. to {
  301. opacity: var(--mdc-ripple-fg-opacity, 0);
  302. }
  303. }
  304. @-webkit-keyframes mdc-ripple-fg-opacity-out {
  305. from {
  306. -webkit-animation-timing-function: linear;
  307. animation-timing-function: linear;
  308. opacity: var(--mdc-ripple-fg-opacity, 0);
  309. }
  310. to {
  311. opacity: 0;
  312. }
  313. }
  314. @keyframes mdc-ripple-fg-opacity-out {
  315. from {
  316. -webkit-animation-timing-function: linear;
  317. animation-timing-function: linear;
  318. opacity: var(--mdc-ripple-fg-opacity, 0);
  319. }
  320. to {
  321. opacity: 0;
  322. }
  323. }
  324. .mdc-card__primary-action {
  325. --mdc-ripple-fg-size: 0;
  326. --mdc-ripple-left: 0;
  327. --mdc-ripple-top: 0;
  328. --mdc-ripple-fg-scale: 1;
  329. --mdc-ripple-fg-translate-end: 0;
  330. --mdc-ripple-fg-translate-start: 0;
  331. -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  332. will-change: transform, opacity;
  333. }
  334. .mdc-card__primary-action .mdc-card__ripple::before,
  335. .mdc-card__primary-action .mdc-card__ripple::after {
  336. position: absolute;
  337. border-radius: 50%;
  338. opacity: 0;
  339. pointer-events: none;
  340. content: "";
  341. }
  342. .mdc-card__primary-action .mdc-card__ripple::before {
  343. transition: opacity 15ms linear, background-color 15ms linear;
  344. z-index: 1;
  345. /* @alternate */
  346. z-index: var(--mdc-ripple-z-index, 1);
  347. }
  348. .mdc-card__primary-action .mdc-card__ripple::after {
  349. z-index: 0;
  350. /* @alternate */
  351. z-index: var(--mdc-ripple-z-index, 0);
  352. }
  353. .mdc-card__primary-action.mdc-ripple-upgraded .mdc-card__ripple::before {
  354. -webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
  355. transform: scale(var(--mdc-ripple-fg-scale, 1));
  356. }
  357. .mdc-card__primary-action.mdc-ripple-upgraded .mdc-card__ripple::after {
  358. top: 0;
  359. /* @noflip */
  360. /*rtl:ignore*/
  361. left: 0;
  362. -webkit-transform: scale(0);
  363. transform: scale(0);
  364. -webkit-transform-origin: center center;
  365. transform-origin: center center;
  366. }
  367. .mdc-card__primary-action.mdc-ripple-upgraded--unbounded .mdc-card__ripple::after {
  368. top: var(--mdc-ripple-top, 0);
  369. /* @noflip */
  370. /*rtl:ignore*/
  371. left: var(--mdc-ripple-left, 0);
  372. }
  373. .mdc-card__primary-action.mdc-ripple-upgraded--foreground-activation .mdc-card__ripple::after {
  374. -webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
  375. animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
  376. }
  377. .mdc-card__primary-action.mdc-ripple-upgraded--foreground-deactivation .mdc-card__ripple::after {
  378. -webkit-animation: mdc-ripple-fg-opacity-out 150ms;
  379. animation: mdc-ripple-fg-opacity-out 150ms;
  380. /* @noflip */
  381. /*rtl:ignore*/
  382. -webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  383. transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
  384. }
  385. .mdc-card__primary-action .mdc-card__ripple::before,
  386. .mdc-card__primary-action .mdc-card__ripple::after {
  387. top: calc(50% - 100%);
  388. /* @noflip */
  389. /*rtl:ignore*/
  390. left: calc(50% - 100%);
  391. width: 200%;
  392. height: 200%;
  393. }
  394. .mdc-card__primary-action.mdc-ripple-upgraded .mdc-card__ripple::after {
  395. width: var(--mdc-ripple-fg-size, 100%);
  396. height: var(--mdc-ripple-fg-size, 100%);
  397. }
  398. .mdc-card__primary-action .mdc-card__ripple::before, .mdc-card__primary-action .mdc-card__ripple::after {
  399. background-color: #000;
  400. /* @alternate */
  401. background-color: var(--mdc-ripple-color, #000);
  402. }
  403. .mdc-card__primary-action:hover .mdc-card__ripple::before, .mdc-card__primary-action.mdc-ripple-surface--hover .mdc-card__ripple::before {
  404. opacity: 0.04;
  405. /* @alternate */
  406. opacity: var(--mdc-ripple-hover-opacity, 0.04);
  407. }
  408. .mdc-card__primary-action.mdc-ripple-upgraded--background-focused .mdc-card__ripple::before, .mdc-card__primary-action:not(.mdc-ripple-upgraded):focus .mdc-card__ripple::before {
  409. transition-duration: 75ms;
  410. opacity: 0.12;
  411. /* @alternate */
  412. opacity: var(--mdc-ripple-focus-opacity, 0.12);
  413. }
  414. .mdc-card__primary-action:not(.mdc-ripple-upgraded) .mdc-card__ripple::after {
  415. transition: opacity 150ms linear;
  416. }
  417. .mdc-card__primary-action:not(.mdc-ripple-upgraded):active .mdc-card__ripple::after {
  418. transition-duration: 75ms;
  419. opacity: 0.12;
  420. /* @alternate */
  421. opacity: var(--mdc-ripple-press-opacity, 0.12);
  422. }
  423. .mdc-card__primary-action.mdc-ripple-upgraded {
  424. --mdc-ripple-fg-opacity: var(--mdc-ripple-press-opacity, 0.12);
  425. }
  426. .mdc-card__primary-action .mdc-card__ripple {
  427. box-sizing: content-box;
  428. height: 100%;
  429. overflow: hidden;
  430. left: 0;
  431. pointer-events: none;
  432. position: absolute;
  433. top: 0;
  434. width: 100%;
  435. }
  436. .mdc-card__primary-action.mdc-ripple-upgraded--background-focused::after, .mdc-card__primary-action:not(.mdc-ripple-upgraded):focus::after {
  437. position: absolute;
  438. box-sizing: border-box;
  439. width: 100%;
  440. height: 100%;
  441. top: 0;
  442. /* @noflip */
  443. /*rtl:ignore*/
  444. left: 0;
  445. border: 5px double transparent;
  446. border-radius: inherit;
  447. content: "";
  448. pointer-events: none;
  449. }
  450. @media screen and (forced-colors: active) {
  451. .mdc-card__primary-action.mdc-ripple-upgraded--background-focused::after, .mdc-card__primary-action:not(.mdc-ripple-upgraded):focus::after {
  452. border-color: CanvasText;
  453. }
  454. }
  455. /*# sourceMappingURL=mdc.card.css.map*/