filepond.css 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048
  1. /*!
  2. * FilePond 4.30.4
  3. * Licensed under MIT, https://opensource.org/licenses/MIT/
  4. * Please visit https://pqina.nl/filepond/ for details.
  5. */
  6. /* eslint-disable */
  7. .filepond--assistant {
  8. position: absolute;
  9. overflow: hidden;
  10. height: 1px;
  11. width: 1px;
  12. padding: 0;
  13. border: 0;
  14. clip: rect(1px, 1px, 1px, 1px);
  15. -webkit-clip-path: inset(50%);
  16. clip-path: inset(50%);
  17. white-space: nowrap;
  18. }
  19. /* Hard to override styles */
  20. .filepond--browser.filepond--browser {
  21. /* is positioned absolute so it is focusable for form validation errors */
  22. position: absolute;
  23. margin: 0;
  24. padding: 0;
  25. /* is positioned ~behind drop label */
  26. left: 1em;
  27. top: 1.75em;
  28. width: calc(100% - 2em);
  29. /* hide visually */
  30. opacity: 0;
  31. font-size: 0; /* removes text cursor in Internet Explorer 11 */
  32. }
  33. .filepond--data {
  34. position: absolute;
  35. width: 0;
  36. height: 0;
  37. padding: 0;
  38. margin: 0;
  39. border: none;
  40. visibility: hidden;
  41. pointer-events: none;
  42. contain: strict;
  43. }
  44. .filepond--drip {
  45. position: absolute;
  46. top: 0;
  47. left: 0;
  48. right: 0;
  49. bottom: 0;
  50. overflow: hidden;
  51. opacity: 0.1;
  52. /* can't interact with this element */
  53. pointer-events: none;
  54. /* inherit border radius from parent (needed for drip-blob cut of) */
  55. border-radius: 0.5em;
  56. /* this seems to prevent Chrome from redrawing this layer constantly */
  57. background: rgba(0, 0, 0, 0.01);
  58. }
  59. .filepond--drip-blob {
  60. position: absolute;
  61. -webkit-transform-origin: center center;
  62. transform-origin: center center;
  63. top: 0;
  64. left: 0;
  65. width: 8em;
  66. height: 8em;
  67. margin-left: -4em;
  68. margin-top: -4em;
  69. background: #292625;
  70. border-radius: 50%;
  71. /* will be animated */
  72. will-change: transform, opacity;
  73. }
  74. .filepond--drop-label {
  75. position: absolute;
  76. left: 0;
  77. right: 0;
  78. top: 0;
  79. margin: 0;
  80. color: #4f4f4f;
  81. /* center contents */
  82. display: flex;
  83. justify-content: center;
  84. align-items: center;
  85. /* fixes IE11 centering problems (is overruled by label min-height) */
  86. height: 0px;
  87. /* dont allow selection */
  88. -webkit-user-select: none;
  89. -moz-user-select: none;
  90. -ms-user-select: none;
  91. user-select: none;
  92. /* will be animated */
  93. will-change: transform, opacity;
  94. }
  95. /* Hard to override styles on purpose */
  96. .filepond--drop-label.filepond--drop-label label {
  97. display: block;
  98. margin: 0;
  99. padding: 0.5em; /* use padding instead of margin so click area is not impacted */
  100. }
  101. .filepond--drop-label label {
  102. cursor: default;
  103. font-size: 0.875em;
  104. font-weight: normal;
  105. text-align: center;
  106. line-height: 1.5;
  107. }
  108. .filepond--label-action {
  109. text-decoration: underline;
  110. -webkit-text-decoration-skip: ink;
  111. text-decoration-skip-ink: auto;
  112. -webkit-text-decoration-color: #a7a4a4;
  113. text-decoration-color: #a7a4a4;
  114. cursor: pointer;
  115. }
  116. .filepond--root[data-disabled] .filepond--drop-label label {
  117. opacity: 0.5;
  118. }
  119. /* Hard to override styles */
  120. .filepond--file-action-button.filepond--file-action-button {
  121. font-size: 1em;
  122. width: 1.625em;
  123. height: 1.625em;
  124. font-family: inherit;
  125. line-height: inherit;
  126. margin: 0;
  127. padding: 0;
  128. border: none;
  129. outline: none;
  130. will-change: transform, opacity;
  131. /* hidden label */
  132. }
  133. .filepond--file-action-button.filepond--file-action-button span {
  134. position: absolute;
  135. overflow: hidden;
  136. height: 1px;
  137. width: 1px;
  138. padding: 0;
  139. border: 0;
  140. clip: rect(1px, 1px, 1px, 1px);
  141. -webkit-clip-path: inset(50%);
  142. clip-path: inset(50%);
  143. white-space: nowrap;
  144. }
  145. .filepond--file-action-button.filepond--file-action-button {
  146. /* scale SVG to fill button */
  147. }
  148. .filepond--file-action-button.filepond--file-action-button svg {
  149. width: 100%;
  150. height: 100%;
  151. }
  152. .filepond--file-action-button.filepond--file-action-button {
  153. /* bigger touch area */
  154. }
  155. .filepond--file-action-button.filepond--file-action-button::after {
  156. position: absolute;
  157. left: -0.75em;
  158. right: -0.75em;
  159. top: -0.75em;
  160. bottom: -0.75em;
  161. content: '';
  162. }
  163. /* Soft styles */
  164. .filepond--file-action-button {
  165. /* use default arrow cursor */
  166. cursor: auto;
  167. /* reset default button styles */
  168. color: #fff;
  169. /* set default look n feel */
  170. border-radius: 50%;
  171. background-color: rgba(0, 0, 0, 0.5);
  172. background-image: none;
  173. /* we animate box shadow on focus */
  174. /* it's only slightly slower than animating */
  175. /* a pseudo-element with transforms and renders */
  176. /* a lot better on chrome */
  177. box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
  178. transition: box-shadow 0.25s ease-in;
  179. }
  180. .filepond--file-action-button:hover,
  181. .filepond--file-action-button:focus {
  182. box-shadow: 0 0 0 0.125em rgba(255, 255, 255, 0.9);
  183. }
  184. .filepond--file-action-button[disabled] {
  185. color: rgba(255, 255, 255, 0.5);
  186. background-color: rgba(0, 0, 0, 0.25);
  187. }
  188. .filepond--file-action-button[hidden] {
  189. display: none;
  190. }
  191. /* edit button */
  192. .filepond--action-edit-item.filepond--action-edit-item {
  193. width: 2em;
  194. height: 2em;
  195. padding: 0.1875em;
  196. }
  197. .filepond--action-edit-item.filepond--action-edit-item[data-align*='center'] {
  198. margin-left: -0.1875em;
  199. }
  200. .filepond--action-edit-item.filepond--action-edit-item[data-align*='bottom'] {
  201. margin-bottom: -0.1875em;
  202. }
  203. .filepond--action-edit-item-alt {
  204. border: none;
  205. line-height: inherit;
  206. background: transparent;
  207. font-family: inherit;
  208. color: inherit;
  209. outline: none;
  210. padding: 0;
  211. margin: 0 0 0 0.25em;
  212. pointer-events: all;
  213. position: absolute;
  214. }
  215. .filepond--action-edit-item-alt svg {
  216. width: 1.3125em;
  217. height: 1.3125em;
  218. }
  219. .filepond--action-edit-item-alt span {
  220. font-size: 0;
  221. opacity: 0;
  222. }
  223. .filepond--file-info {
  224. position: static;
  225. display: flex;
  226. flex-direction: column;
  227. align-items: flex-start;
  228. flex: 1;
  229. margin: 0 0.5em 0 0;
  230. min-width: 0;
  231. /* will be animated */
  232. will-change: transform, opacity;
  233. /* can't do anything with this info */
  234. pointer-events: none;
  235. -webkit-user-select: none;
  236. -moz-user-select: none;
  237. -ms-user-select: none;
  238. user-select: none;
  239. /* no margins on children */
  240. }
  241. .filepond--file-info * {
  242. margin: 0;
  243. }
  244. .filepond--file-info {
  245. /* we don't want to have these overrules so these selectors are a bit more specific */
  246. }
  247. .filepond--file-info .filepond--file-info-main {
  248. font-size: 0.75em;
  249. line-height: 1.2;
  250. /* we want ellipsis if this bar gets too wide */
  251. text-overflow: ellipsis;
  252. overflow: hidden;
  253. white-space: nowrap;
  254. width: 100%;
  255. }
  256. .filepond--file-info .filepond--file-info-sub {
  257. font-size: 0.625em;
  258. opacity: 0.5;
  259. transition: opacity 0.25s ease-in-out;
  260. white-space: nowrap;
  261. }
  262. .filepond--file-info .filepond--file-info-sub:empty {
  263. display: none;
  264. }
  265. .filepond--file-status {
  266. position: static;
  267. display: flex;
  268. flex-direction: column;
  269. align-items: flex-end;
  270. flex-grow: 0;
  271. flex-shrink: 0;
  272. margin: 0;
  273. min-width: 2.25em;
  274. text-align: right;
  275. /* will be animated */
  276. will-change: transform, opacity;
  277. /* can't do anything with this info */
  278. pointer-events: none;
  279. -webkit-user-select: none;
  280. -moz-user-select: none;
  281. -ms-user-select: none;
  282. user-select: none;
  283. /* no margins on children */
  284. }
  285. .filepond--file-status * {
  286. margin: 0;
  287. white-space: nowrap;
  288. }
  289. .filepond--file-status {
  290. /* font sizes */
  291. }
  292. .filepond--file-status .filepond--file-status-main {
  293. font-size: 0.75em;
  294. line-height: 1.2;
  295. }
  296. .filepond--file-status .filepond--file-status-sub {
  297. font-size: 0.625em;
  298. opacity: 0.5;
  299. transition: opacity 0.25s ease-in-out;
  300. }
  301. /* Hard to override styles */
  302. .filepond--file-wrapper.filepond--file-wrapper {
  303. border: none;
  304. margin: 0;
  305. padding: 0;
  306. min-width: 0;
  307. height: 100%;
  308. /* hide legend for visual users */
  309. }
  310. .filepond--file-wrapper.filepond--file-wrapper > legend {
  311. position: absolute;
  312. overflow: hidden;
  313. height: 1px;
  314. width: 1px;
  315. padding: 0;
  316. border: 0;
  317. clip: rect(1px, 1px, 1px, 1px);
  318. -webkit-clip-path: inset(50%);
  319. clip-path: inset(50%);
  320. white-space: nowrap;
  321. }
  322. .filepond--file {
  323. position: static;
  324. display: flex;
  325. height: 100%;
  326. align-items: flex-start;
  327. padding: 0.5625em 0.5625em;
  328. color: #fff;
  329. border-radius: 0.5em;
  330. /* control positions */
  331. }
  332. .filepond--file .filepond--file-status {
  333. margin-left: auto;
  334. margin-right: 2.25em;
  335. }
  336. .filepond--file .filepond--processing-complete-indicator {
  337. pointer-events: none;
  338. -webkit-user-select: none;
  339. -moz-user-select: none;
  340. -ms-user-select: none;
  341. user-select: none;
  342. z-index: 3;
  343. }
  344. .filepond--file .filepond--processing-complete-indicator,
  345. .filepond--file .filepond--progress-indicator,
  346. .filepond--file .filepond--file-action-button {
  347. position: absolute;
  348. }
  349. .filepond--file {
  350. /* .filepond--file-action-button */
  351. }
  352. .filepond--file [data-align*='left'] {
  353. left: 0.5625em;
  354. }
  355. .filepond--file [data-align*='right'] {
  356. right: 0.5625em;
  357. }
  358. .filepond--file [data-align*='center'] {
  359. left: calc(50% - 0.8125em); /* .8125 is half of button width */
  360. }
  361. .filepond--file [data-align*='bottom'] {
  362. bottom: 1.125em;
  363. }
  364. .filepond--file [data-align='center'] {
  365. top: calc(50% - 0.8125em);
  366. }
  367. .filepond--file .filepond--progress-indicator {
  368. margin-top: 0.1875em;
  369. }
  370. .filepond--file .filepond--progress-indicator[data-align*='right'] {
  371. margin-right: 0.1875em;
  372. }
  373. .filepond--file .filepond--progress-indicator[data-align*='left'] {
  374. margin-left: 0.1875em;
  375. }
  376. /* make sure text does not overlap */
  377. [data-filepond-item-state='cancelled'] .filepond--file-info,
  378. [data-filepond-item-state*='invalid'] .filepond--file-info,
  379. [data-filepond-item-state*='error'] .filepond--file-info {
  380. margin-right: 2.25em;
  381. }
  382. [data-filepond-item-state~='processing'] .filepond--file-status-sub {
  383. opacity: 0;
  384. }
  385. [data-filepond-item-state~='processing']
  386. .filepond--action-abort-item-processing
  387. ~ .filepond--file-status
  388. .filepond--file-status-sub {
  389. opacity: 0.5;
  390. }
  391. [data-filepond-item-state='processing-error'] .filepond--file-status-sub {
  392. opacity: 0;
  393. }
  394. [data-filepond-item-state='processing-error']
  395. .filepond--action-retry-item-processing
  396. ~ .filepond--file-status
  397. .filepond--file-status-sub {
  398. opacity: 0.5;
  399. }
  400. [data-filepond-item-state='processing-complete'] {
  401. /* busy state */
  402. }
  403. [data-filepond-item-state='processing-complete'] .filepond--action-revert-item-processing svg {
  404. -webkit-animation: fall 0.5s 0.125s linear both;
  405. animation: fall 0.5s 0.125s linear both;
  406. }
  407. [data-filepond-item-state='processing-complete'] {
  408. /* hide details by default, only show when can revert */
  409. }
  410. [data-filepond-item-state='processing-complete'] .filepond--file-status-sub {
  411. opacity: 0.5;
  412. }
  413. [data-filepond-item-state='processing-complete']
  414. .filepond--processing-complete-indicator:not([style*='hidden'])
  415. ~ .filepond--file-status
  416. .filepond--file-status-sub {
  417. opacity: 0;
  418. }
  419. [data-filepond-item-state='processing-complete'] .filepond--file-info-sub {
  420. opacity: 0;
  421. }
  422. [data-filepond-item-state='processing-complete']
  423. .filepond--action-revert-item-processing
  424. ~ .filepond--file-info
  425. .filepond--file-info-sub {
  426. opacity: 0.5;
  427. }
  428. /* file state can be invalid or error, both are visually similar but */
  429. /* having them as separate states might be useful */
  430. [data-filepond-item-state*='invalid'] .filepond--panel,
  431. [data-filepond-item-state*='invalid'] .filepond--file-wrapper,
  432. [data-filepond-item-state*='error'] .filepond--panel,
  433. [data-filepond-item-state*='error'] .filepond--file-wrapper {
  434. -webkit-animation: shake 0.65s linear both;
  435. animation: shake 0.65s linear both;
  436. }
  437. /* spins progress indicator when file is marked as busy */
  438. [data-filepond-item-state*='busy'] .filepond--progress-indicator svg {
  439. -webkit-animation: spin 1s linear infinite;
  440. animation: spin 1s linear infinite;
  441. }
  442. /**
  443. * States
  444. */
  445. @-webkit-keyframes spin {
  446. 0% {
  447. -webkit-transform: rotateZ(0deg);
  448. transform: rotateZ(0deg);
  449. }
  450. 100% {
  451. -webkit-transform: rotateZ(360deg);
  452. transform: rotateZ(360deg);
  453. }
  454. }
  455. @keyframes spin {
  456. 0% {
  457. -webkit-transform: rotateZ(0deg);
  458. transform: rotateZ(0deg);
  459. }
  460. 100% {
  461. -webkit-transform: rotateZ(360deg);
  462. transform: rotateZ(360deg);
  463. }
  464. }
  465. @-webkit-keyframes shake {
  466. 10%,
  467. 90% {
  468. -webkit-transform: translateX(-0.0625em);
  469. transform: translateX(-0.0625em);
  470. }
  471. 20%,
  472. 80% {
  473. -webkit-transform: translateX(0.125em);
  474. transform: translateX(0.125em);
  475. }
  476. 30%,
  477. 50%,
  478. 70% {
  479. -webkit-transform: translateX(-0.25em);
  480. transform: translateX(-0.25em);
  481. }
  482. 40%,
  483. 60% {
  484. -webkit-transform: translateX(0.25em);
  485. transform: translateX(0.25em);
  486. }
  487. }
  488. @keyframes shake {
  489. 10%,
  490. 90% {
  491. -webkit-transform: translateX(-0.0625em);
  492. transform: translateX(-0.0625em);
  493. }
  494. 20%,
  495. 80% {
  496. -webkit-transform: translateX(0.125em);
  497. transform: translateX(0.125em);
  498. }
  499. 30%,
  500. 50%,
  501. 70% {
  502. -webkit-transform: translateX(-0.25em);
  503. transform: translateX(-0.25em);
  504. }
  505. 40%,
  506. 60% {
  507. -webkit-transform: translateX(0.25em);
  508. transform: translateX(0.25em);
  509. }
  510. }
  511. @-webkit-keyframes fall {
  512. 0% {
  513. opacity: 0;
  514. -webkit-transform: scale(0.5);
  515. transform: scale(0.5);
  516. -webkit-animation-timing-function: ease-out;
  517. animation-timing-function: ease-out;
  518. }
  519. 70% {
  520. opacity: 1;
  521. -webkit-transform: scale(1.1);
  522. transform: scale(1.1);
  523. -webkit-animation-timing-function: ease-in-out;
  524. animation-timing-function: ease-in-out;
  525. }
  526. 100% {
  527. -webkit-transform: scale(1);
  528. transform: scale(1);
  529. -webkit-animation-timing-function: ease-out;
  530. animation-timing-function: ease-out;
  531. }
  532. }
  533. @keyframes fall {
  534. 0% {
  535. opacity: 0;
  536. -webkit-transform: scale(0.5);
  537. transform: scale(0.5);
  538. -webkit-animation-timing-function: ease-out;
  539. animation-timing-function: ease-out;
  540. }
  541. 70% {
  542. opacity: 1;
  543. -webkit-transform: scale(1.1);
  544. transform: scale(1.1);
  545. -webkit-animation-timing-function: ease-in-out;
  546. animation-timing-function: ease-in-out;
  547. }
  548. 100% {
  549. -webkit-transform: scale(1);
  550. transform: scale(1);
  551. -webkit-animation-timing-function: ease-out;
  552. animation-timing-function: ease-out;
  553. }
  554. }
  555. /* ignore all other interaction elements while dragging a file */
  556. .filepond--hopper[data-hopper-state='drag-over'] > * {
  557. pointer-events: none;
  558. }
  559. /* capture all hit tests using a hidden layer, this speeds up the event flow */
  560. .filepond--hopper[data-hopper-state='drag-over']::after {
  561. content: '';
  562. position: absolute;
  563. left: 0;
  564. top: 0;
  565. right: 0;
  566. bottom: 0;
  567. z-index: 100;
  568. }
  569. .filepond--progress-indicator {
  570. z-index: 103;
  571. }
  572. .filepond--file-action-button {
  573. z-index: 102;
  574. }
  575. .filepond--file-status {
  576. z-index: 101;
  577. }
  578. .filepond--file-info {
  579. z-index: 100;
  580. }
  581. .filepond--item {
  582. position: absolute;
  583. top: 0;
  584. left: 0;
  585. right: 0;
  586. z-index: 1;
  587. padding: 0;
  588. margin: 0.25em;
  589. will-change: transform, opacity;
  590. /* item children order */
  591. }
  592. .filepond--item > .filepond--panel {
  593. z-index: -1;
  594. }
  595. /* has a slight shadow */
  596. .filepond--item > .filepond--panel .filepond--panel-bottom {
  597. box-shadow: 0 0.0625em 0.125em -0.0625em rgba(0, 0, 0, 0.25);
  598. }
  599. .filepond--item {
  600. /* drag related */
  601. }
  602. .filepond--item > .filepond--file-wrapper,
  603. .filepond--item > .filepond--panel {
  604. transition: opacity 0.15s ease-out;
  605. }
  606. .filepond--item[data-drag-state] {
  607. cursor: -webkit-grab;
  608. cursor: grab;
  609. }
  610. .filepond--item[data-drag-state] > .filepond--panel {
  611. transition: box-shadow 0.125s ease-in-out;
  612. box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  613. }
  614. .filepond--item[data-drag-state='drag'] {
  615. cursor: -webkit-grabbing;
  616. cursor: grabbing;
  617. }
  618. .filepond--item[data-drag-state='drag'] > .filepond--panel {
  619. box-shadow: 0 0.125em 0.3125em rgba(0, 0, 0, 0.325);
  620. }
  621. .filepond--item[data-drag-state]:not([data-drag-state='idle']) {
  622. z-index: 2;
  623. }
  624. /* states */
  625. .filepond--item-panel {
  626. background-color: #64605e;
  627. }
  628. [data-filepond-item-state='processing-complete'] .filepond--item-panel {
  629. background-color: #369763;
  630. }
  631. [data-filepond-item-state*='invalid'] .filepond--item-panel,
  632. [data-filepond-item-state*='error'] .filepond--item-panel {
  633. background-color: #c44e47;
  634. }
  635. /* style of item panel */
  636. .filepond--item-panel {
  637. border-radius: 0.5em;
  638. transition: background-color 0.25s;
  639. }
  640. /* normal mode */
  641. .filepond--list-scroller {
  642. position: absolute;
  643. top: 0;
  644. left: 0;
  645. right: 0;
  646. margin: 0;
  647. will-change: transform;
  648. }
  649. /* scroll mode */
  650. .filepond--list-scroller[data-state='overflow'] .filepond--list {
  651. bottom: 0;
  652. right: 0;
  653. }
  654. .filepond--list-scroller[data-state='overflow'] {
  655. overflow-y: scroll;
  656. overflow-x: hidden;
  657. -webkit-overflow-scrolling: touch;
  658. -webkit-mask: linear-gradient(to bottom, #000 calc(100% - 0.5em), transparent 100%);
  659. mask: linear-gradient(to bottom, #000 calc(100% - 0.5em), transparent 100%);
  660. }
  661. /* style scrollbar */
  662. .filepond--list-scroller::-webkit-scrollbar {
  663. background: transparent;
  664. }
  665. .filepond--list-scroller::-webkit-scrollbar:vertical {
  666. width: 1em;
  667. }
  668. .filepond--list-scroller::-webkit-scrollbar:horizontal {
  669. height: 0;
  670. }
  671. .filepond--list-scroller::-webkit-scrollbar-thumb {
  672. background-color: rgba(0, 0, 0, 0.3);
  673. border-radius: 99999px;
  674. border: 0.3125em solid transparent;
  675. background-clip: content-box;
  676. }
  677. /* hard to overide styles on purpose */
  678. .filepond--list.filepond--list {
  679. position: absolute;
  680. top: 0;
  681. margin: 0;
  682. padding: 0;
  683. list-style-type: none;
  684. /* prevents endless paint calls on filepond--list-scroller */
  685. will-change: transform;
  686. }
  687. /* used for padding so allowed to be restyled */
  688. .filepond--list {
  689. left: 0.75em;
  690. right: 0.75em;
  691. }
  692. .filepond--root[data-style-panel-layout~='integrated'] {
  693. width: 100%;
  694. height: 100%;
  695. max-width: none;
  696. margin: 0;
  697. }
  698. .filepond--root[data-style-panel-layout~='circle'] .filepond--panel-root,
  699. .filepond--root[data-style-panel-layout~='integrated'] .filepond--panel-root {
  700. border-radius: 0;
  701. }
  702. .filepond--root[data-style-panel-layout~='circle'] .filepond--panel-root > *,
  703. .filepond--root[data-style-panel-layout~='integrated'] .filepond--panel-root > * {
  704. display: none;
  705. }
  706. .filepond--root[data-style-panel-layout~='circle'] .filepond--drop-label,
  707. .filepond--root[data-style-panel-layout~='integrated'] .filepond--drop-label {
  708. bottom: 0;
  709. height: auto;
  710. display: flex;
  711. justify-content: center;
  712. align-items: center;
  713. z-index: 7;
  714. }
  715. .filepond--root[data-style-panel-layout~='circle'],
  716. .filepond--root[data-style-panel-layout~='integrated'] {
  717. /* we're only loading one item, this makes the intro animation a bit nicer */
  718. }
  719. .filepond--root[data-style-panel-layout~='circle'] .filepond--item-panel,
  720. .filepond--root[data-style-panel-layout~='integrated'] .filepond--item-panel {
  721. display: none;
  722. }
  723. .filepond--root[data-style-panel-layout~='compact'] .filepond--list-scroller,
  724. .filepond--root[data-style-panel-layout~='integrated'] .filepond--list-scroller {
  725. overflow: hidden;
  726. height: 100%;
  727. margin-top: 0;
  728. margin-bottom: 0;
  729. }
  730. .filepond--root[data-style-panel-layout~='compact'] .filepond--list,
  731. .filepond--root[data-style-panel-layout~='integrated'] .filepond--list {
  732. left: 0;
  733. right: 0;
  734. height: 100%;
  735. }
  736. .filepond--root[data-style-panel-layout~='compact'] .filepond--item,
  737. .filepond--root[data-style-panel-layout~='integrated'] .filepond--item {
  738. margin: 0;
  739. }
  740. .filepond--root[data-style-panel-layout~='compact'] .filepond--file-wrapper,
  741. .filepond--root[data-style-panel-layout~='integrated'] .filepond--file-wrapper {
  742. height: 100%;
  743. }
  744. .filepond--root[data-style-panel-layout~='compact'] .filepond--drop-label,
  745. .filepond--root[data-style-panel-layout~='integrated'] .filepond--drop-label {
  746. z-index: 7;
  747. }
  748. .filepond--root[data-style-panel-layout~='circle'] {
  749. border-radius: 99999rem;
  750. overflow: hidden;
  751. }
  752. .filepond--root[data-style-panel-layout~='circle'] > .filepond--panel {
  753. border-radius: inherit;
  754. }
  755. .filepond--root[data-style-panel-layout~='circle'] > .filepond--panel > * {
  756. display: none;
  757. }
  758. .filepond--root[data-style-panel-layout~='circle'] {
  759. /* circle cuts of this info, so best to hide it */
  760. }
  761. .filepond--root[data-style-panel-layout~='circle'] .filepond--file-info {
  762. display: none;
  763. }
  764. .filepond--root[data-style-panel-layout~='circle'] .filepond--file-status {
  765. display: none;
  766. }
  767. .filepond--root[data-style-panel-layout~='circle'] .filepond--action-edit-item {
  768. opacity: 1 !important;
  769. visibility: visible !important;
  770. }
  771. /* dirfty way to fix circular overflow issue on safari 11+ */
  772. @media not all and (min-resolution: 0.001dpcm) {
  773. @supports (-webkit-appearance: none) and (stroke-color: transparent) {
  774. .filepond--root[data-style-panel-layout~='circle'] {
  775. will-change: transform;
  776. }
  777. }
  778. }
  779. .filepond--panel-root {
  780. border-radius: 0.5em;
  781. background-color: #f1f0ef;
  782. }
  783. .filepond--panel {
  784. position: absolute;
  785. left: 0;
  786. top: 0;
  787. right: 0;
  788. margin: 0;
  789. /* defaults to 100% height (fixed height mode) this fixes problem with panel height in IE11 */
  790. height: 100% !important;
  791. /* no interaction possible with panel */
  792. pointer-events: none;
  793. }
  794. .filepond-panel:not([data-scalable='false']) {
  795. height: auto !important;
  796. }
  797. .filepond--panel[data-scalable='false'] > div {
  798. display: none;
  799. }
  800. .filepond--panel[data-scalable='true'] {
  801. /* this seems to fix Chrome performance issues */
  802. /* - when box-shadow is enabled */
  803. /* - when multiple ponds are active on the same page */
  804. -webkit-transform-style: preserve-3d;
  805. transform-style: preserve-3d;
  806. /* prevent borders and backgrounds */
  807. background-color: transparent !important;
  808. border: none !important;
  809. }
  810. .filepond--panel-top,
  811. .filepond--panel-bottom,
  812. .filepond--panel-center {
  813. position: absolute;
  814. left: 0;
  815. top: 0;
  816. right: 0;
  817. margin: 0;
  818. padding: 0;
  819. }
  820. .filepond--panel-top,
  821. .filepond--panel-bottom {
  822. height: 0.5em;
  823. }
  824. .filepond--panel-top {
  825. border-bottom-left-radius: 0 !important;
  826. border-bottom-right-radius: 0 !important;
  827. border-bottom: none !important;
  828. /* fixes tiny transparant line between top and center panel */
  829. }
  830. .filepond--panel-top::after {
  831. content: '';
  832. position: absolute;
  833. height: 2px;
  834. left: 0;
  835. right: 0;
  836. bottom: -1px;
  837. background-color: inherit;
  838. }
  839. .filepond--panel-center,
  840. .filepond--panel-bottom {
  841. will-change: transform;
  842. -webkit-backface-visibility: hidden;
  843. backface-visibility: hidden;
  844. -webkit-transform-origin: left top;
  845. transform-origin: left top;
  846. -webkit-transform: translate3d(0, 0.5em, 0);
  847. transform: translate3d(0, 0.5em, 0);
  848. }
  849. .filepond--panel-bottom {
  850. border-top-left-radius: 0 !important;
  851. border-top-right-radius: 0 !important;
  852. border-top: none !important;
  853. /* fixes tiny transparant line between bottom and center of panel */
  854. }
  855. .filepond--panel-bottom::before {
  856. content: '';
  857. position: absolute;
  858. height: 2px;
  859. left: 0;
  860. right: 0;
  861. top: -1px;
  862. background-color: inherit;
  863. }
  864. .filepond--panel-center {
  865. /* the center panel is scaled using scale3d to fit the correct height */
  866. /* we use 100px instead of 1px as scaling 1px to a huge height is really laggy on chrome */
  867. height: 100px !important;
  868. border-top: none !important;
  869. border-bottom: none !important;
  870. border-radius: 0 !important;
  871. /* hide if not transformed, prevents a little flash when the panel is at 100px height while attached for first time */
  872. }
  873. .filepond--panel-center:not([style]) {
  874. visibility: hidden;
  875. }
  876. .filepond--progress-indicator {
  877. position: static;
  878. width: 1.25em;
  879. height: 1.25em;
  880. color: #fff;
  881. /* can't have margins */
  882. margin: 0;
  883. /* no interaction possible with progress indicator */
  884. pointer-events: none;
  885. /* will be animated */
  886. will-change: transform, opacity;
  887. }
  888. .filepond--progress-indicator svg {
  889. width: 100%;
  890. height: 100%;
  891. vertical-align: top;
  892. transform-box: fill-box; /* should center the animation correctly when zoomed in */
  893. }
  894. .filepond--progress-indicator path {
  895. fill: none;
  896. stroke: currentColor;
  897. }
  898. .filepond--list-scroller {
  899. z-index: 6;
  900. }
  901. .filepond--drop-label {
  902. z-index: 5;
  903. }
  904. .filepond--drip {
  905. z-index: 3;
  906. }
  907. .filepond--root > .filepond--panel {
  908. z-index: 2;
  909. }
  910. .filepond--browser {
  911. z-index: 1;
  912. }
  913. .filepond--root {
  914. /* layout*/
  915. box-sizing: border-box;
  916. position: relative;
  917. margin-bottom: 1em;
  918. /* base font size for whole component */
  919. font-size: 1rem;
  920. /* base line height */
  921. line-height: normal;
  922. /* up uses default system font family */
  923. font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif,
  924. 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
  925. /* will increase font weight a bit on Safari */
  926. font-weight: 450;
  927. /* default text alignment */
  928. text-align: left;
  929. /* better text rendering on Safari */
  930. text-rendering: optimizeLegibility;
  931. /* text direction is ltr for now */
  932. direction: ltr;
  933. /* optimize rendering */
  934. /* https://developer.mozilla.org/en-US/docs/Web/CSS/contain */
  935. contain: layout style size;
  936. /* correct box sizing, line-height and positioning on child elements */
  937. }
  938. .filepond--root * {
  939. box-sizing: inherit;
  940. line-height: inherit;
  941. }
  942. .filepond--root *:not(text) {
  943. font-size: inherit;
  944. }
  945. .filepond--root {
  946. /* block everything */
  947. }
  948. .filepond--root[data-disabled] {
  949. pointer-events: none;
  950. }
  951. .filepond--root[data-disabled] .filepond--list-scroller {
  952. pointer-events: all;
  953. }
  954. .filepond--root[data-disabled] .filepond--list {
  955. pointer-events: none;
  956. }
  957. /**
  958. * Root element children layout
  959. */
  960. .filepond--root .filepond--drop-label {
  961. min-height: 4.75em;
  962. }
  963. .filepond--root .filepond--list-scroller {
  964. margin-top: 1em;
  965. margin-bottom: 1em;
  966. }
  967. .filepond--root .filepond--credits {
  968. position: absolute;
  969. right: 0;
  970. opacity: 0.175;
  971. line-height: 0.85;
  972. font-size: 11px;
  973. color: inherit;
  974. text-decoration: none;
  975. z-index: 3;
  976. bottom: -14px;
  977. }
  978. .filepond--root .filepond--credits[style] {
  979. top: 0;
  980. bottom: auto;
  981. margin-top: 14px;
  982. }