/*! * elFinder-Material-Theme (Gray) v2.1.15 (https://github.com/RobiNN1/elFinder-Material-Theme) * Copyright 2016-2023 Róbert Kelčák * Licensed under MIT (https://github.com/RobiNN1/elFinder-Material-Theme/blob/master/LICENSE) */ .elfinder { color: #546e7a; font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .elfinder.ui-widget.ui-widget-content { font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); border-radius: 0; border: 0; } .elfinder * { outline: 0 !important; } /** * Loading */ .elfinder-info-spinner, .elfinder-navbar-spinner, .elfinder-button-icon-spinner { background: url("../../material/images/loading.svg") center center no-repeat !important; width: 16px; height: 16px; } /** * Progress Bar */ @-webkit-keyframes progress-animation { from { background-position: 1rem 0; } to { background-position: 0 0; } } @keyframes progress-animation { from { background-position: 1rem 0; } to { background-position: 0 0; } } .elfinder-notify-progressbar { border: 0; } .elfinder-notify-progress, .elfinder-notify-progressbar { border-radius: 0; } .elfinder-notify-progress, .elfinder-resize-spinner { background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); background-size: 1rem 1rem; -webkit-animation: progress-animation 1s linear infinite; animation: progress-animation 1s linear infinite; background-color: #0275d8; height: 1rem; } /** * Toast Notification */ .elfinder .elfinder-toast > div { background-color: #323232 !important; color: #d6d6d6; box-shadow: none; opacity: inherit; padding: 10px 60px; } .elfinder .elfinder-toast > div button.ui-button { color: #fff; } .elfinder .elfinder-toast > .toast-info button.ui-button { background-color: #3498db; } .elfinder .elfinder-toast > .toast-error button.ui-button { background-color: #f44336; } .elfinder .elfinder-toast > .toast-success button.ui-button { background-color: #4caf50; } .elfinder .elfinder-toast > .toast-warning button.ui-button { background-color: #ff9800; } .elfinder-toast-msg { font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; font-size: 17px; } /** * For Ace Editor */ #ace_settingsmenu { font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6) !important; background-color: #1d2736 !important; color: #e6e6e6 !important; } #ace_settingsmenu, #kbshortcutmenu { padding: 0; } .ace_optionsMenuEntry { padding: 5px 10px; } .ace_optionsMenuEntry:hover { background-color: #111721; } .ace_optionsMenuEntry label { font-size: 13px; } #ace_settingsmenu input[type="text"], #ace_settingsmenu select { margin: 1px 2px 2px; padding: 2px 5px; border-radius: 3px; border: 0; background: rgba(9, 53, 121, 0.75); color: white !important; } /** * Icons */ @font-face { font-family: material; src: url("../../material/icons/material.eot?91804974"); src: url("../../material/icons/material.eot?91804974#iefix") format("embedded-opentype"), url("../../material/icons/material.woff2?91804974") format("woff2"), url("../../material/icons/material.woff?91804974") format("woff"), url("../../material/icons/material.ttf?91804974") format("truetype"), url("../../material/icons/material.svg?91804974#material") format("svg"); font-weight: normal; font-style: normal; } @media screen and (-webkit-min-device-pixel-ratio: 0) { @font-face { font-family: material; src: url("../../material/icons/material.svg?91804974#material") format("svg"); } } .elfinder .ui-icon, .elfinder-button-icon, .ui-widget-header .ui-icon, .ui-widget-content .ui-icon { font: normal normal normal 14px/1 material; background-image: inherit; text-indent: inherit; } .elfinder .ui-button-icon-only .ui-icon { font: normal normal normal 14px/1 material; background-image: inherit !important; text-indent: 0; font-size: 16px; } .elfinder-button-icon { background: inherit; } .elfinder-button-icon-home:before { content: '\e800'; } .elfinder-button-icon-back:before { content: '\e801'; } .elfinder-button-icon-forward:before { content: '\e802'; } .elfinder-button-icon-up:before { content: '\e803'; } .elfinder-button-icon-dir:before { content: '\e804'; } .elfinder-button-icon-opendir:before { content: '\e805'; } .elfinder-button-icon-reload:before { content: '\e806'; } .elfinder-button-icon-open:before { content: '\e807'; } .elfinder-button-icon-mkdir:before { content: '\e808'; } .elfinder-button-icon-mkfile:before { content: '\e809'; } .elfinder-button-icon-rm:before { content: '\e80a'; } .elfinder-button-icon-trash:before { content: '\e80b'; } .elfinder-button-icon-restore:before { content: '\e80c'; } .elfinder-button-icon-copy:before { content: '\e80d'; } .elfinder-button-icon-cut:before { content: '\e80e'; } .elfinder-button-icon-paste:before { content: '\e80f'; } .elfinder-button-icon-getfile:before { content: '\e810'; } .elfinder-button-icon-duplicate:before { content: '\e811'; } .elfinder-button-icon-rename:before { content: '\e812'; } .elfinder-button-icon-edit:before { content: '\e813'; } .elfinder-button-icon-quicklook:before { content: '\e814'; } .elfinder-button-icon-upload:before { content: '\e815'; } .elfinder-button-icon-download:before { content: '\e816'; } .elfinder-button-icon-info:before { content: '\e817'; } .elfinder-button-icon-extract:before { content: '\e818'; } .elfinder-button-icon-archive:before { content: '\e819'; } .elfinder-button-icon-view:before { content: '\e81a'; } .elfinder-button-icon-view-list:before { content: '\e81b'; } .elfinder-button-icon-help:before { content: '\e81c'; } .elfinder-button-icon-resize:before { content: '\e81d'; } .elfinder-button-icon-link:before { content: '\e81e'; } .elfinder-button-icon-search:before { content: '\e81f'; } .elfinder-button-icon-sort:before { content: '\e820'; } .elfinder-button-icon-rotate-r:before { content: '\e821'; } .elfinder-button-icon-rotate-l:before { content: '\e822'; } .elfinder-button-icon-netmount:before { content: '\e823'; } .elfinder-button-icon-netunmount:before { content: '\e824'; } .elfinder-button-icon-places:before { content: '\e825'; } .elfinder-button-icon-chmod:before { content: '\e826'; } .elfinder-button-icon-accept:before { content: '\e827'; } .elfinder-button-icon-menu:before { content: '\e828'; } .elfinder-button-icon-colwidth:before { content: '\e829'; } .elfinder-button-icon-fullscreen:before { content: '\e82a'; } .elfinder-button-icon-unfullscreen:before { content: '\e82b'; } .elfinder-button-icon-empty:before { content: '\e82c'; } .elfinder-button-icon-undo:before { content: '\e82d'; } .elfinder-button-icon-redo:before { content: '\e82e'; } .elfinder-button-icon-preference:before { content: '\e82f'; } .elfinder-button-icon-mkdirin:before { content: '\e830'; } .elfinder-button-icon-selectall:before { content: '\e831'; } .elfinder-button-icon-selectnone:before { content: '\e832'; } .elfinder-button-icon-selectinvert:before { content: '\e833'; } .elfinder-button-icon-logout:before { content: '\e85a'; } .elfinder-button-icon-opennew:before { content: '\e85b'; } .elfinder-button-icon-hide:before { content: '\e85d'; } .elfinder-button-search .ui-icon.ui-icon-search { font-size: 17px; } .elfinder-button-search .ui-icon:hover { opacity: 1; } .elfinder-navbar-icon { font: normal normal normal 16px/1 material; background-image: inherit !important; } .elfinder-navbar-icon:before { content: '\e804'; } .elfinder-droppable-active .elfinder-navbar-icon:before, .elfinder .ui-state-active .elfinder-navbar-icon:before, .elfinder .ui-state-hover .elfinder-navbar-icon:before { content: '\e805'; } .elfinder-navbar-root-local .elfinder-navbar-icon:before { content: '\e83d' !important; } .elfinder-navbar-root-ftp .elfinder-navbar-icon:before { content: '\e823' !important; } .elfinder-navbar-root-sql .elfinder-navbar-icon:before { content: '\e83e' !important; } .elfinder-navbar-root-dropbox .elfinder-navbar-icon:before { content: '\e83f' !important; } .elfinder-navbar-root-googledrive .elfinder-navbar-icon:before { content: '\e840' !important; } .elfinder-navbar-root-onedrive .elfinder-navbar-icon:before { content: '\e841' !important; } .elfinder-navbar-root-box .elfinder-navbar-icon:before { content: '\e842' !important; } .elfinder-navbar-root-trash .elfinder-navbar-icon:before { content: '\e80b' !important; } .elfinder-navbar-root-zip .elfinder-navbar-icon:before { content: '\e85c' !important; } .elfinder-navbar-root-network .elfinder-navbar-icon:before { content: '\e823' !important; } .elfinder-places .elfinder-navbar-root .elfinder-navbar-icon:before { content: '\e825' !important; } .elfinder-navbar-arrow { background-image: inherit !important; font: normal normal normal 14px/1 material; font-size: 10px; padding-top: 3px; padding-left: 2px; color: #a9a9a9; } .elfinder .ui-state-active .elfinder-navbar-arrow { color: #fff; } .elfinder-ltr .elfinder-navbar-collapsed .elfinder-navbar-arrow:before { content: '\e857'; } .elfinder-rtl .elfinder-navbar-collapsed .elfinder-navbar-arrow:before { content: '\e858'; } .elfinder-ltr .elfinder-navbar-expanded .elfinder-navbar-arrow:before, .elfinder-rtl .elfinder-navbar-expanded .elfinder-navbar-arrow:before { content: '\e851'; } .elfinder .elfinder-cwd table thead td.ui-state-hover{ color: #000 !important; } .elfinder .elfinder-cwd table thead td.ui-state-active { background: #737f86 !important; color: #fff !important; } .elfinder .elfinder-cwd table thead td { padding: 6px 12px !important; background: #d7d7d7 !important; } .elfinder-ltr .elfinder-cwd table td { text-align: left; } .elfinder .elfinder-cwd table td { padding: 4px 12px !important; } .elfinder-ltr .elfinder-cwd-view-list .elfinder-cwd-filename { padding-left: 23px; } div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon { font-size: 8px; margin-top: 5px; margin-right: 5px; } div.elfinder-cwd-wrapper-list .ui-icon-grip-dotted-vertical { margin: 2px; } .elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon, .elfinder-navbar-root-local .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon, .elfinder-navbar-root-ftp .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon, .elfinder-navbar-root-sql .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon, .elfinder-navbar-root-dropbox .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon, .elfinder-navbar-root-googledrive .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon, .elfinder-navbar-root-onedrive .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon, .elfinder-navbar-root-box .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon, .elfinder-navbar-root-trash .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon, .elfinder-navbar-root-zip .elfinder-cwd-icon, .elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon, .elfinder-navbar-root-network .elfinder-cwd-icon { background-image: inherit; } .elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before, .elfinder-navbar-root-local .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before, .elfinder-navbar-root-ftp .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before, .elfinder-navbar-root-sql .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-dropbox td .elfinder-cwd-icon:before, .elfinder-navbar-root-dropbox .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-googledrive td .elfinder-cwd-icon:before, .elfinder-navbar-root-googledrive .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-onedrive td .elfinder-cwd-icon:before, .elfinder-navbar-root-onedrive .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-box td .elfinder-cwd-icon:before, .elfinder-navbar-root-box .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before, .elfinder-navbar-root-trash .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before, .elfinder-navbar-root-zip .elfinder-cwd-icon:before, .elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before, .elfinder-navbar-root-network .elfinder-cwd-icon:before { font-family: material; background-color: transparent; color: #525252; font-size: 55px; position: relative; top: -10px !important; padding: 0; display: contents !important; } .elfinder-cwd-view-list .elfinder-navbar-root-local td .elfinder-cwd-icon:before, .elfinder-navbar-root-local .elfinder-cwd-icon:before { content: '\e83d'; } .elfinder-cwd-view-list .elfinder-navbar-root-ftp td .elfinder-cwd-icon:before, .elfinder-navbar-root-ftp .elfinder-cwd-icon:before { content: '\e823'; } .elfinder-cwd-view-list .elfinder-navbar-root-sql td .elfinder-cwd-icon:before, .elfinder-navbar-root-sql .elfinder-cwd-icon:before { content: '\e83e'; } .elfinder-cwd-view-list .elfinder-navbar-roor-dropbox td .elfinder-cwd-icon:before, .elfinder-navbar-roor-dropbox .elfinder-cwd-icon:before { content: '\e83f'; } .elfinder-cwd-view-list .elfinder-navbar-roor-googledrive td .elfinder-cwd-icon:before, .elfinder-navbar-roor-googledrive .elfinder-cwd-icon:before { content: '\e840'; } .elfinder-cwd-view-list .elfinder-navbar-roor-onedrive td .elfinder-cwd-icon:before, .elfinder-navbar-roor-onedrive .elfinder-cwd-icon:before { content: '\e841'; } .elfinder-cwd-view-list .elfinder-navbar-roor-box td .elfinder-cwd-icon:before, .elfinder-navbar-roor-box .elfinder-cwd-icon:before { content: '\e842'; } .elfinder-cwd-view-list .elfinder-navbar-root-trash td .elfinder-cwd-icon:before, .elfinder-navbar-root-trash .elfinder-cwd-icon:before { content: '\e80b'; } .elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon:before, .elfinder-navbar-root-zip .elfinder-cwd-icon:before { content: '\e85c'; } .elfinder-cwd-view-list .elfinder-navbar-root-network td .elfinder-cwd-icon:before, .elfinder-navbar-root-network .elfinder-cwd-icon:before { content: '\e823'; } .elfinder-dialog-icon { font: normal normal normal 14px/1 material; background: inherit; color: #524949; font-size: 37px; } .elfinder-dialog-icon:before { content: '\e843'; } .elfinder-dialog-icon-mkdir:before { content: '\e808'; } .elfinder-dialog-icon-mkfile:before { content: '\e809'; } .elfinder-dialog-icon-copy:before { content: '\e80d'; } .elfinder-dialog-icon-prepare:before, .elfinder-dialog-icon-move:before { content: '\e844'; } .elfinder-dialog-icon-upload:before, .elfinder-dialog-icon-chunkmerge:before { content: '\e815'; } .elfinder-dialog-icon-rm:before { content: '\e80a'; } .elfinder-dialog-icon-open:before, .elfinder-dialog-icon-readdir:before, .elfinder-dialog-icon-file:before { content: '\e807'; } .elfinder-dialog-icon-reload:before { content: '\e806'; } .elfinder-dialog-icon-download:before { content: '\e816'; } .elfinder-dialog-icon-save:before { content: '\e845'; } .elfinder-dialog-icon-rename:before { content: '\e812'; } .elfinder-dialog-icon-zipdl:before, .elfinder-dialog-icon-archive:before { content: '\e819'; } .elfinder-dialog-icon-extract:before { content: '\e818'; } .elfinder-dialog-icon-search:before { content: '\e81f'; } .elfinder-dialog-icon-loadimg:before { content: '\e846'; } .elfinder-dialog-icon-url:before { content: '\e81e'; } .elfinder-dialog-icon-resize:before { content: '\e81d'; } .elfinder-dialog-icon-netmount:before { content: '\e823'; } .elfinder-dialog-icon-netunmount:before { content: '\e824'; } .elfinder-dialog-icon-chmod:before { content: '\e826'; } .elfinder-dialog-icon-preupload:before, .elfinder-dialog-icon-dim:before { content: '\e847'; } .elfinder-contextmenu .elfinder-contextmenu-item span.elfinder-contextmenu-icon { font-size: 16px; } .elfinder-contextmenu .elfinder-contextmenu-item .elfinder-contextsubmenu-item .ui-icon { font-size: 15px; } .elfinder-contextmenu .elfinder-contextmenu-item .elfinder-button-icon-link:before { content: '\e837'; } .elfinder .elfinder-contextmenu-extra-icon { margin-top: -6px; } .elfinder .elfinder-contextmenu-extra-icon a { padding: 5px; margin: -16px; } .elfinder-button-icon-link:before { content: '\e81e' !important; } .elfinder .elfinder-contextmenu-arrow { font: normal normal normal 14px/1 material; background-image: inherit; font-size: 10px !important; padding-top: 3px; } .elfinder .elfinder-contextmenu-arrow:before { content: '\e857'; } .elfinder-contextmenu .ui-state-hover .elfinder-contextmenu-arrow { background-image: inherit; } .elfinder-quicklook .ui-resizable-se { background: inherit; } .elfinder-quicklook-navbar-icon { background: transparent; font: normal normal normal 14px/1 material; font-size: 24px; width: 24px; height: 24px; color: #fff; } .elfinder-quicklook-titlebar-icon { margin-top: -8px; } .elfinder-quicklook-titlebar-icon .ui-icon { border: 0; opacity: 0.8; font-size: 15px; padding: 1px; } .elfinder-quicklook-titlebar .ui-icon-circle-close, .elfinder-quicklook .ui-icon-gripsmall-diagonal-se { color: #f1f1f1; } .elfinder-quicklook-navbar-icon-prev:before { content: '\e848'; } .elfinder-quicklook-navbar-icon-next:before { content: '\e849'; } .elfinder-quicklook-navbar-icon-fullscreen:before { content: '\e84a'; } .elfinder-quicklook-navbar-icon-fullscreen-off:before { content: '\e84b'; } .elfinder-quicklook-navbar-icon-close:before { content: '\e84c'; } .elfinder .ui-button-icon { background-image: inherit; } .elfinder .ui-icon-search:before { content: '\e81f'; } .elfinder .ui-icon-closethick:before, .elfinder .ui-icon-close:before { content: '\e839'; } .elfinder .ui-icon-circle-close:before { content: '\e84c'; } .elfinder .ui-icon-gear:before { content: '\e82f'; } .elfinder .ui-icon-gripsmall-diagonal-se:before { content: '\e838'; } .elfinder .ui-icon-locked:before { content: '\e834'; } .elfinder .ui-icon-unlocked:before { content: '\e836'; } .elfinder .ui-icon-arrowrefresh-1-n:before { content: '\e821'; } .elfinder .ui-icon-plusthick:before { content: '\e83a'; } .elfinder .ui-icon-arrowreturnthick-1-s:before { content: '\e83b'; } .elfinder .ui-icon-minusthick:before { content: '\e83c'; } .elfinder .ui-icon-pin-s:before { content: '\e84d'; } .elfinder .ui-icon-check:before { content: '\e84e'; } .elfinder .ui-icon-arrowthick-1-s:before { content: '\e84f'; } .elfinder .ui-icon-arrowthick-1-n:before { content: '\e850'; } .elfinder .ui-icon-triangle-1-s:before { content: '\e851'; } .elfinder .ui-icon-triangle-1-n:before { content: '\e852'; } .elfinder .ui-icon-grip-dotted-vertical:before { content: '\e853'; } .elfinder-lock, .elfinder-perms, .elfinder-symlink { background-image: inherit; font: normal normal normal 18px/1 material; color: #4d4d4d; } .elfinder-na .elfinder-perms:before { content: '\e824'; } .elfinder-ro .elfinder-perms:before { content: '\e835'; } .elfinder-wo .elfinder-perms:before { content: '\e854'; } .elfinder-group .elfinder-perms:before { content: '\e800'; } .elfinder-lock:before { content: '\e84d'; } .elfinder-symlink:before { content: '\e837'; } .elfinder .elfinder-toast > div { font: normal normal normal 14px/1 material; } .elfinder .elfinder-toast > div:before { font-size: 45px; position: absolute; left: 5px; top: 15px; } .elfinder .elfinder-toast > .toast-info, .elfinder .elfinder-toast > .toast-error, .elfinder .elfinder-toast > .toast-success, .elfinder .elfinder-toast > .toast-warning { background-image: inherit !important; } .elfinder .elfinder-toast > .toast-info:before { content: '\e817'; color: #3498db; } .elfinder .elfinder-toast > .toast-error:before { content: '\e855'; color: #f44336; } .elfinder .elfinder-toast > .toast-success:before { content: '\e84e'; color: #4caf50; } .elfinder .elfinder-toast > .toast-warning:before { content: '\e856'; color: #ff9800; } .elfinder-drag-helper-icon-status { font: normal normal normal 14px/1 material; background: inherit; } .elfinder-drag-helper-icon-status:before { content: '\e824'; } .elfinder-drag-helper-move .elfinder-drag-helper-icon-status { -webkit-transform: rotate(180deg); transform: rotate(180deg); } .elfinder-drag-helper-move .elfinder-drag-helper-icon-status:before { content: '\e854'; } .elfinder-drag-helper-plus .elfinder-drag-helper-icon-status { -webkit-transform: rotate(90deg); transform: rotate(90deg); } .elfinder-drag-helper-plus .elfinder-drag-helper-icon-status:before { content: '\e84c'; } /** * MIME Types */ .elfinder-cwd-view-list td .elfinder-cwd-icon { background-image: url("../../material/images/icons-small.svg"); } .elfinder-cwd-icon { background: url("../../material/images/icons-big.svg") 0 0 no-repeat; border-radius: 0; } .elfinder-cwd-icon:before { font-size: 10px; position: relative; top: 27px; left: inherit; padding: 1px; background-color: transparent; } .elfinder-cwd-icon-directory { background-position: 0 -50px; } .elfinder-cwd .elfinder-droppable-active .elfinder-cwd-icon { background-position: 0 -100px; } .elfinder-cwd-icon-group { background-position: 0 -150px; } .elfinder-cwd-icon-application { background-position: 0 -200px; } .elfinder-cwd-icon-rtf, .elfinder-cwd-icon-rtfd, .elfinder-cwd-icon-text { background-position: 0 -250px; } .elfinder-cwd-icon-image { background-position: 0 -300px; } .elfinder-cwd-icon-audio { background-position: 0 -350px; } .elfinder-cwd-icon-video, .elfinder-cwd-icon-flash-video, .elfinder-cwd-icon-dash-xml, .elfinder-cwd-icon-vnd-apple-mpegurl, .elfinder-cwd-icon-x-mpegurl { background-position: 0 -400px; } .elfinder-cwd-icon-plain, .elfinder-cwd-icon-x-empty { background-position: 0 -450px; } .elfinder-cwd-icon-pdf { background-position: 0 -500px; } .elfinder-cwd-icon-vnd-ms-office { background-position: 0 -550px; } .elfinder-cwd-icon-x-msaccess { background-position: 0 -600px; } .elfinder-cwd-icon-x-msaccess:before { content: none !important; } .elfinder-cwd-icon-ms-excel, .elfinder-cwd-icon-vnd-ms-excel, .elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12 { background-position: 0 -650px; } .elfinder-cwd-icon-ms-excel:before, .elfinder-cwd-icon-vnd-ms-excel:before, .elfinder-cwd-icon-vnd-ms-excel-addin-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-excel-sheet-binary-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-excel-sheet-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:before { content: none !important; } .elfinder-cwd-icon-vnd-ms-powerpoint, .elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12 { background-position: 0 -700px; } .elfinder-cwd-icon-vnd-ms-powerpoint:before, .elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-powerpoint-presentation-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-powerpoint-slide-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-powerpoint-slideshow-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:before { content: none !important; } .elfinder-cwd-icon-msword, .elfinder-cwd-icon-vnd-ms-word, .elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12, .elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12 { background-position: 0 -750px; } .elfinder-cwd-icon-msword:before, .elfinder-cwd-icon-vnd-ms-word:before, .elfinder-cwd-icon-vnd-ms-word-document-macroEnabled-12:before, .elfinder-cwd-icon-vnd-ms-word-template-macroEnabled-12:before { content: none !important; } .elfinder-cwd-icon-vnd-oasis-opendocument-base, .elfinder-cwd-icon-vnd-oasis-opendocument-chart, .elfinder-cwd-icon-vnd-oasis-opendocument-database, .elfinder-cwd-icon-vnd-oasis-opendocument-formula, .elfinder-cwd-icon-vnd-oasis-opendocument-graphics, .elfinder-cwd-icon-vnd-oasis-opendocument-graphics-template, .elfinder-cwd-icon-vnd-oasis-opendocument-image, .elfinder-cwd-icon-vnd-openofficeorg-extension { background-position: 0 -800px; } .elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet, .elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template { background-position: 0 -850px; } .elfinder-cwd-icon-vnd-oasis-opendocument-presentation, .elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slideshow, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-template { background-position: 0 -900px; } .elfinder-cwd-icon-vnd-oasis-opendocument-text, .elfinder-cwd-icon-vnd-oasis-opendocument-text-master, .elfinder-cwd-icon-vnd-oasis-opendocument-text-template, .elfinder-cwd-icon-vnd-oasis-opendocument-text-web, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-document, .elfinder-cwd-icon-vnd-openxmlformats-officedocument-wordprocessingml-template { background-position: 0 -950px; } .elfinder-cwd-icon-zip, .elfinder-cwd-icon-x-zip, .elfinder-cwd-icon-x-xz, .elfinder-cwd-icon-x-7z-compressed, .elfinder-cwd-icon-x-gzip, .elfinder-cwd-icon-x-tar, .elfinder-cwd-icon-x-bzip, .elfinder-cwd-icon-x-bzip2, .elfinder-cwd-icon-x-rar, .elfinder-cwd-icon-x-rar-compressed { background-position: 0 -1000px; } .elfinder-cwd-icon-postscript { background-position: 0 -1050px; } .elfinder-cwd-icon-vnd-adobe-photoshop { background-position: 0 -1100px; } .elfinder-cwd-icon-vnd-adobe-photoshop:before { content: none !important; } .elfinder-cwd-icon-x-shockwave-flash { background-position: 0 -1150px; } .elfinder-cwd-icon-vnd-android-package-archive { background-position: 0 -1200px; } .elfinder-cwd-icon-vnd-android-package-archive:before { content: none !important; } .elfinder-cwd-icon-x-c, .elfinder-cwd-icon-x-csrc, .elfinder-cwd-icon-x-chdr, .elfinder-cwd-icon-x-c--, .elfinder-cwd-icon-x-c--src, .elfinder-cwd-icon-x-c--hdr { background-position: 0 -1250px; } .elfinder-cwd-icon-css { background-position: 0 -1300px; } .elfinder-cwd-icon-html { background-position: 0 -1350px; } .elfinder-cwd-icon-x-jar, .elfinder-cwd-icon-x-java, .elfinder-cwd-icon-x-java-source { background-position: 0 -1400px; } .elfinder-cwd-icon-x-jar:before, .elfinder-cwd-icon-x-java:before, .elfinder-cwd-icon-x-java-source:before { content: none !important; } .elfinder-cwd-icon-javascript, .elfinder-cwd-icon-x-javascript { background-position: 0 -1450px; } .elfinder-cwd-icon-json { background-position: 0 -1500px; } .elfinder-cwd-icon-json:before { content: none !important; } .elfinder-cwd-icon-markdown, .elfinder-cwd-icon-x-markdown { background-position: 0 -1550px; } .elfinder-cwd-icon-markdown:before, .elfinder-cwd-icon-x-markdown:before { content: none !important; } .elfinder-cwd-icon-x-perl { background-position: 0 -1600px; } .elfinder-cwd-icon-x-php { background-position: 0 -1650px; } .elfinder-cwd-icon-x-python:after, .elfinder-cwd-icon-x-python { background-position: 0 -1700px; } .elfinder-cwd-icon-x-ruby { background-position: 0 -1750px; } .elfinder-cwd-icon-x-sh, .elfinder-cwd-icon-x-shellscript { background-position: 0 -1800px; } .elfinder-cwd-icon-sql, .elfinder-cwd-icon-x-sql, .elfinder-cwd-icon-x-sqlite3 { background-position: 0 -1850px; } .elfinder-cwd-icon-x-eps, .elfinder-cwd-icon-svg, .elfinder-cwd-icon-svg-xml { background-position: 0 -1900px; } .elfinder-cwd-icon-xml:after, .elfinder-cwd-icon-xml { background-position: 0 -1950px; } .elfinder-cwd-icon-zip:before, .elfinder-cwd-icon-x-zip:before { content: 'zip' !important; } .elfinder-cwd-icon-x-xz:before { content: 'xz' !important; } .elfinder-cwd-icon-x-7z-compressed:before { content: '7z' !important; } .elfinder-cwd-icon-x-gzip:before { content: 'gzip' !important; } .elfinder-cwd-icon-x-tar:before { content: 'tar' !important; } .elfinder-cwd-icon-x-bzip:before, .elfinder-cwd-icon-x-bzip2:before { content: 'bzip' !important; } .elfinder-cwd-icon-x-rar:before, .elfinder-cwd-icon-x-rar-compressed:before { content: 'rar' !important; } /** * Toolbar */ .elfinder-toolbar { background: #3b4047; border-radius: 0; border: 0; padding: 5px 0; } .elfinder-toolbar .elfinder-button-icon { font-size: 20px; color: #ddd; margin-top: -2px; } .elfinder-buttonset { border-radius: 0; border: 0; margin: 0 5px; height: 24px; } .elfinder .elfinder-button { background: transparent; border-radius: 0; cursor: pointer; color: #efefef; } .elfinder .elfinder-button-text { top: -3px; margin-left: 6px; } .elfinder-toolbar-button-separator { border: 0; } .elfinder-button-menu { border-radius: 2px; box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); border: none; margin-top: 5px; } .elfinder-button-menu-item { color: #666; padding: 6px 19px; } .elfinder-button-menu-item.ui-state-hover { color: #141414; background-color: #f5f4f4; } .elfinder-button-menu-item-separated { border-top: 1px solid #e5e5e5; } .elfinder-button-menu-item-separated.ui-state-hover { border-top: 1px solid #e5e5e5; } .elfinder .elfinder-button-search { margin: 0 10px; min-height: inherit; overflow: hidden; } .elfinder .elfinder-button-search .ui-icon { color: #fff !important; } .elfinder .elfinder-button-search input { background: rgba(40, 42, 45, 0.79); border-radius: 2px; box-sizing: content-box; border: 0; margin: 0; padding: 0 23px; height: 24px !important; color: #fff; } .elfinder .elfinder-button-search .elfinder-button-menu { margin-top: 4px; border: none; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.5); } .elfinder .elfinder-button-search-menu { border-radius: 0; top: 30px !important; } .elfinder .elfinder-button-search-menu .ui-button { padding: 0.4em 1em !important; } /** * Navbar */ .elfinder .elfinder-navbar { background: #535e64; box-shadow: 0 1px 8px rgba(0, 0, 0, 0.6); border: none; } .elfinder .elfinder-navbar .elfinder-lock, .elfinder .elfinder-navbar .elfinder-perms, .elfinder .elfinder-navbar .elfinder-symlink { color: #1d1d1d; opacity: 0.8; } .elfinder-navbar-dir { color: #e6e6e6; cursor: pointer; border-radius: 2px; padding: 5px; border: none; } .elfinder-navbar-dir .elfinder-navbar-icon { color: #fff; } .elfinder-navbar-dir.ui-state-hover, .elfinder-navbar-dir.ui-state-active.ui-state-hover { background: #3c4448; color: #e6e6e6; border: none; } .elfinder-navbar-dir.ui-state-hover .elfinder-navbar-icon, .elfinder-navbar-dir.ui-state-active.ui-state-hover .elfinder-navbar-icon { color: #fff; } .elfinder-navbar .ui-state-active, .elfinder-disabled .elfinder-navbar .ui-state-active { background: #41494e; color: #e8e8e8 !important; border: none; } .elfinder-navbar .ui-state-active.elfinder-navbar-dir .elfinder-navbar-icon, .elfinder-disabled .elfinder-navbar .ui-state-active.elfinder-navbar-dir .elfinder-navbar-icon { color: #e8e8e8 !important; } /** * Workzone */ .elfinder-workzone { background: #cdcfd4; } .elfinder-cwd-file { color: #555; } .elfinder-cwd-file.ui-state-hover, .elfinder-cwd-file.ui-selected.ui-state-hover { background: #4c5961; color: #ddd; } .elfinder-cwd-file.ui-selected { background: #455158; color: #555; } .elfinder-cwd-filename input, .elfinder-cwd-filename textarea { padding: 2px; border-radius: 2px !important; background: #fff; color: #222; } .elfinder-cwd-filename input:focus, .elfinder-cwd-filename textarea:focus { outline: none; border: 1px solid #555; } .elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-hover, .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, .elfinder-disabled .elfinder-cwd-view-icons .elfinder-cwd-file .elfinder-cwd-filename.ui-state-hover, .elfinder-disabled .elfinder-cwd table td.ui-state-hover, .elfinder-cwd-view-icons .elfinder-cwd-file .ui-state-active { background: transparent; color: #ddd; } .elfinder-cwd table { padding: 0; } .elfinder-cwd table thead td { padding: 5px 14px !important; } .elfinder-cwd table tr { border: 0 !important; } .elfinder-cwd table tr.ui-state-default, .elfinder-cwd table tr.ui-widget-content .ui-state-default { background: none; } .elfinder-cwd table tr .ui-state-hover { background: #4c5961; color: #ddd; } .elfinder-cwd.elfinder-table-header-sticky table { border: 0; } .elfinder-cwd .elfinder-lock, .elfinder-cwd .elfinder-perms, .elfinder-cwd .elfinder-symlink { color: #4d4d4d; } .elfinder-cwd-view-icons .elfinder-lock { top: 0; } .elfinder-cwd-view-list thead td .ui-resizable-handle { top: 3px; } .elfinder-cwd-view-list .elfinder-lock, .elfinder-cwd-view-list .elfinder-perms, .elfinder-cwd-view-list .elfinder-symlink { font-size: 14px; opacity: 0.7; } .elfinder-cwd-view-list .elfinder-perms { left: inherit; } #elfinder-elfinder-cwd-thead td, .elfinder-cwd-wrapper-empty .elfinder-cwd-view-list td { background: #353b42; color: #ddd !important; height: 18px; } #elfinder-elfinder-cwd-thead td.ui-state-hover, .elfinder-cwd-wrapper-empty .elfinder-cwd-view-list td.ui-state-hover, #elfinder-elfinder-cwd-thead td.ui-state-active, .elfinder-cwd-wrapper-empty .elfinder-cwd-view-list td.ui-state-active { background: #2a2e34 !important; } #elfinder-elfinder-cwd-thead td.ui-state-active.ui-state-hover, .elfinder-cwd-wrapper-empty .elfinder-cwd-view-list td.ui-state-active.ui-state-hover { background: #2e333a !important; } .elfinder .ui-selectable-helper { border: 1px solid #3b4047; background-color: rgba(104, 111, 121, 0.5); } .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash { background-color: #e4e4e4; } .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file { color: #333; } .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-state-hover, .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected.ui-state-hover { background: #4c5961; color: #ddd; } .elfinder-cwd-wrapper.elfinder-cwd-wrapper-trash .elfinder-cwd-file.ui-selected { background: #455158; color: #555; } .elfinder-info-title .elfinder-cwd-icon:before { top: 32px; display: block; margin: 0 auto; } .elfinder-info-title .elfinder-cwd-icon.elfinder-cwd-bgurl:before { background-color: #313131 !important; } .elfinder-cwd-view-icons .elfinder-cwd-icon.elfinder-cwd-bgurl:before { left: inherit; background-color: #313131; } .elfinder-cwd-icon:before, .elfinder-quicklook .elfinder-cwd-icon:before, .elfinder-cwd-size1 .elfinder-cwd-icon:before, .elfinder-cwd-size2 .elfinder-cwd-icon:before, .elfinder-cwd-size3 .elfinder-cwd-icon:before, .elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:before, .elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:before, .elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { top: 35px; left: 50% !important; position: relative !important; display: block !important; -webkit-transform: translateX(-50%); transform: translateX(-50%); max-width: 52px; color: #fff; } .elfinder .elfinder-cwd-view-icons .elfinder-cwd-bgurl:after, .elfinder .elfinder-quicklook-info-wrapper .elfinder-cwd-bgurl:after { display: none; } .elfinder-cwd-size1 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { top: 53px; -webkit-transform: scale(1.32) translateX(-50%); transform: scale(1.32) translateX(-50%); } .elfinder-cwd-size2 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { top: 74px; -webkit-transform: scale(1.53) translateX(-50%); transform: scale(1.53) translateX(-50%); } .elfinder-cwd-size3 .elfinder-cwd-icon.elfinder-cwd-bgurl:before { top: 87px; -webkit-transform: scale(2.22) translateX(-50%); transform: scale(2.22) translateX(-50%); } /** * Status Bar */ .elfinder .elfinder-statusbar { background: #3b4047; border-radius: 0; border: 0; color: #cfd2d4; padding-top: 5px; } .elfinder-path, .elfinder-stat-size { margin: 0 15px; } /** * Input & Select */ .elfinder input, .elfinder select { padding: 4px; color: #666; background: #fff; border-radius: 3px; font-weight: normal; border-color: #888; box-shadow: none !important; } .elfinder input.ui-state-hover, .elfinder select.ui-state-hover { background: #fff !important; color: #666 !important; } .elfinder input[type="checkbox"] { position: relative; height: initial; } .elfinder input[type="checkbox"]:after, .elfinder input[type="checkbox"]:focus:after { content: ""; display: block; width: 12px; height: 12px; border: 1px solid #707070; background-color: #fff; border-radius: 2px; } .elfinder input[type="checkbox"]:checked:before { content: ""; position: absolute; top: -3px; left: 6px; display: table; width: 4px; height: 12px; border: 2px solid #707070; border-top-width: 0; border-left-width: 0; -webkit-transform: rotate(45deg); transform: rotate(45deg); } /** * Buttons */ .elfinder .ui-button, .elfinder .ui-button:active, .elfinder .ui-button.ui-state-default { display: inline-block; font-weight: normal; text-align: center; vertical-align: middle; cursor: pointer; white-space: nowrap; border-radius: 3px; text-transform: uppercase; box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4) !important; transition: all 0.4s; background: #fff; color: #222; border: none; padding: 7px 6px; } .elfinder .ui-button .ui-icon, .elfinder .ui-button:active .ui-icon, .elfinder .ui-button.ui-state-default .ui-icon { color: #222; } .elfinder .ui-button:hover, .elfinder a.ui-button:active, .elfinder .ui-button:active, .elfinder .ui-button:focus, .elfinder .ui-button.ui-state-hover, .elfinder .ui-button.ui-state-active { background: #3498db !important; color: #fff !important; border: none; } .elfinder .ui-button:hover .ui-icon, .elfinder a.ui-button:active .ui-icon, .elfinder .ui-button:active .ui-icon, .elfinder .ui-button:focus .ui-icon, .elfinder .ui-button.ui-state-hover .ui-icon, .elfinder .ui-button.ui-state-active .ui-icon { color: #fff; } .elfinder .ui-button.ui-state-active:hover { background: #217dbb; color: #fff; border: none; } .elfinder .ui-button:focus { outline: none !important; } .elfinder .ui-controlgroup-horizontal .ui-button { border-radius: 0; border: 0; } .elfinder input:not([type="checkbox"]), .elfinder .elfinder-resize-preset-container .ui-button { height: 21px; } /** * Context Menu */ .elfinder .elfinder-contextmenu, .elfinder .elfinder-contextmenu-sub { border-radius: 2px; box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); border: none; } .elfinder .elfinder-contextmenu-separator, .elfinder .elfinder-contextmenu-sub-separator { border-top: 1px solid #e5e5e5; } .elfinder .elfinder-contextmenu-item { color: #666; padding: 5px 30px; } .elfinder .elfinder-contextmenu-item.ui-state-hover { background-color: #f5f4f4; color: #141414; } .elfinder .elfinder-contextmenu-item.ui-state-active { background-color: #2196f3; color: #fff; } /** * Dialogs */ .elfinder .elfinder-dialog { border-radius: 0; border: 0; box-shadow: 0 1px 30px rgba(0, 0, 0, 0.6); } .elfinder .elfinder-dialog .ui-dialog-content[id*="edit-elfinder-elfinder-"] { padding: 0; } .elfinder .elfinder-dialog .ui-tabs { border-radius: 0; border: 0; padding: 0; } .elfinder .elfinder-dialog .ui-tabs-nav { border-radius: 0; border: 0; background: transparent; border-bottom: 1px solid #ddd; } .elfinder .elfinder-dialog .ui-tabs-nav li { border: 0; font-weight: normal; background: transparent; margin: 0; padding: 0; } .elfinder .elfinder-dialog .ui-tabs-nav li a { padding: 7px 9px; } .elfinder .elfinder-dialog .ui-tabs-nav .ui-tabs-selected a, .elfinder .elfinder-dialog .ui-tabs-nav .ui-state-active a, .elfinder .elfinder-dialog .ui-tabs-nav li:hover a { box-shadow: inset 0 -2px 0 #3498db; color: #3498db; } .elfinder .elfinder-dialog .ui-tabs .elfinder-tabstop.ui-state-hover { background: transparent; box-shadow: inset 0 -2px 0 #3498db; color: #3498db; } .elfinder .elfinder-dialog label.ui-state-hover { background: transparent; } .elfinder .elfinder-dialog .ui-resizable-se { display: none; } .std42-dialog .ui-dialog-titlebar { background: #353b44; border-radius: 0; border: 0; } .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-button .ui-icon { border-color: inherit; transition: 0.2s ease-out; opacity: 0.8; color: #fff; width: auto; height: auto; font-size: 12px; padding: 3px; } .std42-dialog, .std42-dialog .ui-dialog-content, .std42-dialog.elfinder-bg-translucent, .std42-dialog.elfinder-bg-translucent .ui-widget-content { background-color: #fff; } .std42-dialog .ui-dialog-buttonpane button { margin: -1px 2px 2px; padding: 7px 6px; } .std42-dialog .ui-dialog-buttonpane button span.ui-icon { padding: 0; } .std42-dialog .ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras select { margin-top: 0; } .std42-dialog, .std42-dialog .ui-widget-content { background-color: #fff; } .elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon, .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon { background-color: #f44336; } .elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon, .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon { background-color: #4caf50; } .elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon, .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon { background-color: #ff9800; } .elfinder-dialog-title { color: #f1f1f1; } .elfinder .ui-widget-content { font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif; color: #546e7a; } .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect { width: inherit; height: inherit; padding: 7px; margin-left: 5px; color: #222; box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.4); background: #fff; bottom: 4px; border-radius: 2px; } .elfinder-upload-dialog-wrapper .elfinder-upload-dirselect.ui-state-hover { background: #3498db !important; color: #fff !important; outline: none; } .elfinder-upload-dialog-wrapper .ui-button { padding: 0.4em 3px; margin: 0 -15px 0 19px; } .elfinder-upload-dropbox { border: 2px dashed #bbb; } .elfinder-upload-dropbox:focus { outline: none; } .elfinder-upload-dropbox.ui-state-hover { background: #f1f1f1; border: 2px dashed #bbb; } .elfinder-dialog-resize .elfinder-resize-control-panel { margin-left: -5px; } .elfinder-dialog-resize .elfinder-resize-control-panel .ui-button { height: inherit; margin-bottom: 5px; } .elfinder-help * { color: #546e7a; } .elfinder-help a { color: #3498db; } .elfinder-help a:hover { color: #217dbb; } .elfinder .ui-slider.ui-slider-horizontal { height: 2px; border: 0; background-color: #bababa !important; } .elfinder .ui-slider .ui-slider-handle { background-image: none; background-color: #5d5858; border-radius: 50%; border: 0; margin-top: -3px; } .elfinder .ui-slider .ui-slider-handle.ui-state-hover { background: #5d5858 !important; box-shadow: none !important; border-radius: 50%; cursor: pointer; } /** * Quick Look */ .elfinder-quicklook { background: #232323; border-radius: 2px; } .elfinder-quicklook-navbar { height: 27px; } .elfinder-quicklook-titlebar { background: inherit; } .elfinder-quicklook-titlebar-icon, .elfinder-quicklook-titlebar-icon .ui-icon { background: transparent; color: #fff; } .elfinder-quicklook-fullscreen .elfinder-quicklook-navbar { border: inherit; opacity: inherit; border-radius: 4px; background: rgba(66, 66, 66, 0.73); } .elfinder .elfinder-navdock { border: 0; } .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close:hover .ui-icon, .elfinder-mobile .std42-dialog .ui-dialog-titlebar .ui-dialog-titlebar-close .ui-icon, .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close:hover, .elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-close, .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize:hover .ui-icon, .elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-minimize .ui-icon, .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize:hover, .elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-minimize, .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full:hover .ui-icon, .elfinder-mobile .std42-dialog .ui-dialog-titlebar .elfinder-titlebar-full .ui-icon, .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full:hover, .elfinder-mobile .elfinder-quicklook-titlebar-icon .ui-icon.elfinder-icon-full { background-image: none; } Bridging Crypto with Ledger Wallet: Cross-Chain Transfers, Slippage, and Why Bridge Failures Leave Assets Stuck – Crafted Web Campus

A user holds Ethereum on the Ethereum mainnet but needs liquidity on Arbitrum. Moving assets between blockchains has become routine, yet the mechanics of bridging remain opaque to most users. Ledger Wallet, the companion application for Ledger hardware devices, offers an integrated bridge service that simplifies the process on the surface. However, the bridge operates across multiple independent systems—liquidity pools, relay networks, validator sets, and blockchain consensus layers—each with its own failure modes. When a bridge transaction stalls or fails partway through, assets can become trapped in intermediate contracts, requiring manual intervention or acceptance of permanent loss.

The core tension is between convenience and control. Ledger Wallet handles the user interface, account discovery, transaction signing, and portfolio management, but it cannot guarantee that the underlying bridge protocol will execute as expected. Understanding how bridges work, what can go wrong, and how to recover from failure is essential before moving significant value. A user who understands only the “send” button may discover too late that funds have been locked in a bridge contract with no automatic refund mechanism.

Ledger Wallet interface showing bridge options, asset selection, and destination chain confirmation for cross-chain token transfers

How bridging works within Ledger Wallet’s architecture

Ledger Wallet is a desktop and mobile application that manages cryptocurrency accounts and transactions in connection with Ledger hardware devices. The application itself never holds private keys; all transaction signing occurs on the hardware device, which provides a cryptographic signature that Ledger Wallet then broadcasts. This separation is a security feature, but it also means the application is only an intermediary. When a user initiates a bridge transfer, Ledger Wallet constructs the transaction, displays it for review on the hardware device, and sends the signed instruction to the bridge service.

The bridge feature integrates third-party liquidity and relay protocols. These are not controlled by Ledger; they are separate systems operated by bridge providers such as Stargate, Across, Connext, or similar platforms. Ledger Wallet provides the interface and routing logic, but execution depends on the bridge’s smart contracts, validator consensus, or liquidity pools. The process typically involves three stages: the user approves the source chain transaction, the bridge protocol locks or burns tokens on the source chain, and then mints or releases equivalent tokens on the destination chain. If any stage fails or stalls, the user may be left holding a transaction receipt on one chain without receiving funds on the other.

Portfolio management within Ledger Wallet displays balances across multiple chains because the application can query multiple blockchains and aggregate the user’s holdings. This creates the useful illusion that bridging is a single operation, when in reality it is a sequence of independent events across different networks. Network congestion, validator disagreement, liquidity depletion, or smart contract bugs can interrupt the sequence at any point. The transaction signing via the hardware device ensures that the user approved the source-chain withdrawal, but it does not guarantee that the destination-chain deposit will arrive.

To get started with bridging in Ledger Wallet, a user connects a compatible hardware device, selects an asset, chooses source and destination chains, and reviews the transaction on the device screen before confirming. The interface hides complexity, but each step relies on external systems. The displayed gas estimate, exchange rate, and time estimate are predictions, not guarantees. When conditions change between quote and execution, slippage or failed execution becomes possible.

Liquidity constraints and slippage in cross-chain transfers

Slippage is the difference between the expected and actual execution price. In a bridge context, slippage arises from multiple sources. First, the pool or market maker providing liquidity on the destination chain may have limited capacity. Large transfers deplete liquidity, moving the effective exchange rate unfavorably. Second, network conditions change between quote and settlement. The Ethereum mainnet may experience a fee spike, Arbitrum may congestion, or validator latency may extend the settlement window. Third, the bridge provider may collect a margin, and competitive pressure between bridge providers can affect which route Ledger Wallet selects.

Ledger Wallet typically displays an estimated output amount and an estimated slippage percentage. The user should treat these as ranges, not fixed values. A quote stating 10 ETH will yield 9.95 ETH on Arbitrum (0.5% slippage) may actually produce 9.88 ETH if market conditions shift. For small amounts, this difference may be negligible. For transfers of hundreds of thousands of dollars, it can be material. The application cannot predict market behavior seconds into the future, so users should establish their own tolerance threshold before initiating the transfer and be prepared to absorb slippage as a cost of using a bridge.

Liquidity constraints become critical during market volatility or when bridges are new. A new bridge with limited liquidity providers may offer poor rates or refuse large transfers entirely. Ledger Wallet’s interface may display a warning, but the warning depends on the bridge service providing accurate liquidity data. If the displayed warning is inaccurate or the liquidity disappears between quote and execution, the user may attempt a transfer that cannot be completed. Some bridges will refund the source-chain tokens automatically; others may not.

Bridge providers often implement transaction signing and settlement windows to manage risk. A transaction approved and signed through Ledger Wallet’s hardware device may expire if not submitted within a time window, or it may sit pending if the destination chain has stalled. Users should monitor the transaction status on both source and destination chains, using blockchain explorers to confirm whether the tokens have been locked, burned, or released. Passive waiting without verification is a common error; the bridge may have failed silently, leaving the user unclear about whether to retry or whether the transaction already completed partially.

Why bridges fail and how assets become stuck

Bridge failures fall into several categories. The most common is liquidity exhaustion: the destination chain’s liquidity pool runs dry before the full transfer can settle. The user’s source-chain tokens are locked, but the destination-chain minting never occurs because there is nothing to mint. Some bridges handle this by refunding the source-chain withdrawal automatically after a timeout. Others require the user to manually trigger a refund by submitting a claim transaction on the source chain. A few bridges have no refund mechanism at all.

A second category is validator consensus failure. Many bridges use a set of validators or signers to attest that the source-chain event occurred. If a majority of validators agree, the destination-chain contract mints the corresponding tokens. If validators disagree (because they have different views of the source chain due to a fork, a stalled node, or deliberate disagreement), consensus fails. The destination-chain minting never happens, and the source-chain tokens are locked indefinitely. These failures are rare but not theoretical; they have occurred in real bridges, sometimes requiring manual intervention from the bridge operator.

A third category is smart contract bugs or exploits. If a bridge contract contains a vulnerability, it may accept a user’s withdrawal transaction but fail when attempting to mint on the destination chain due to an integer overflow, reentrancy vulnerability, or unexpected token behavior. The source-chain tokens are consumed, but the destination-chain tokens are never issued. The user’s only recourse is to wait for the bridge operator to notice the bug, deploy a fix, and execute a recovery procedure—a process that can take days or months.

A fourth category is blockchain reorganization. If the source blockchain experiences a deep reorg (a rare but real event), a transaction that appeared confirmed may be rolled back. The bridge may have already minted tokens on the destination chain based on the original transaction, but the source-chain withdrawal no longer occurred. Some users may end up holding tokens on both chains; others may trigger automatic refunds on the source chain and then face conflicting claims on the destination chain.

Users encountering stuck assets should first verify the transaction status across both chains using blockchain explorers. On Ethereum, Etherscan; on Arbitrum, Arbiscan. If the source-chain transaction shows as confirmed but the destination-chain minting never occurred, the tokens are likely stuck in the bridge contract. The next step is to check the bridge provider’s documentation for a recovery procedure. Some bridges provide a user interface to request a refund; others require submitting a support ticket with transaction details. Ledger Wallet’s customer support can sometimes help, but the bridge provider is ultimately responsible for resolving the issue.

Clear signing, transaction verification, and what the user should check before confirming

When Ledger Wallet constructs a bridge transaction, it sends the unsigned transaction to the hardware device for review. The device displays the transaction details on its screen, and the user reviews them before physically confirming with a button press or PIN. This clear signing process is designed to prevent a compromised computer from tricking the user into approving a malicious transaction. The user sees the actual contract address, destination chain, token amount, and recipient address on the hardware device’s screen, independent of what Ledger Wallet displays on the computer.

Users should verify several specific details before confirming. First, the source asset should match the token they intend to send. Tokens with similar names (wrapped Ethereum, stETH, cbETH) can be confused. Second, the source chain should be correct. Approving a withdrawal from Polygon when the user intended Ethereum mainnet is a permanent error. Third, the destination chain should be confirmed. Fourth, the recipient address should be verified. If the recipient address is incorrect, tokens will be sent to the wrong account, and recovery may not be possible. Fifth, the amount should be reviewed. A trailing zero or decimal place error can change the transaction by orders of magnitude.

The hardware device screen is small, and some details may be abbreviated or hard to read. Users should not rush the verification process. If any detail appears unclear, the user should cancel the transaction on the device, disconnect the hardware device from the computer, and reconnect to Ledger Wallet to review the transaction details again. A few seconds of caution can prevent permanent loss.

One subtle risk is transaction replacement. If the user signs a bridge transaction but network conditions change and fees spike before the transaction is broadcast, the transaction may sit in the mempool for hours. Some users mistakenly increase the gas fee or sign a replacement transaction, not realizing that the original transaction might still execute later. Double-spending or conflicting transactions can lock tokens in the bridge contract. Users should allow sufficient time for confirmation and avoid signing replacement transactions unless they are certain the original transaction will not execute.

Monitoring and recovery: What to do when a bridge transfer stalls

After initiating a bridge transfer, the user should monitor the transaction on both chains. Ledger Wallet’s portfolio management interface may show the updated balance after a short delay, but this depends on the application’s synchronization with the blockchain. Using an independent blockchain explorer provides a more reliable view. A user should record the transaction hash from the source chain immediately after broadcasting and periodically check its status using the destination chain’s explorer.

If a transaction does not settle within the expected timeframe, the next step is to determine where the failure occurred. Using the source-chain transaction hash, locate the transaction on the source-chain explorer (Etherscan for Ethereum, Arbiscan for Arbitrum). Confirm that the transaction shows as successful and the tokens have been locked or burned. Then check the destination chain explorer for the corresponding minting event. If the source chain shows success but the destination chain shows no corresponding transaction, the bridge protocol failed to mint.

At this point, most bridge providers offer a recovery interface or a support process. Stargate, Across, Connext, and other major bridges have documentation explaining how to claim a failed transaction. Some require submitting the transaction hash through the bridge’s website. Others require signing a claim transaction with the same private key (or, in Ledger’s case, confirming on the hardware device). The recovery process usually refunds the source-chain tokens after a timeout period, typically 24 to 72 hours.

If the bridge does not offer an automatic refund and the tokens remain locked, the user may need to contact the bridge provider’s support team. Ledger Wallet can also assist by helping the user verify the transaction details and documenting the issue, but ultimately the bridge provider controls the recovery procedure. Users should maintain clear records of all transaction information: the transaction hash, the amount, the source and destination chains, the timestamp, and the bridge provider used. This information is essential for troubleshooting and for any eventual compensation claim if the bridge provider acknowledges a bug or failure on their side.

Reducing bridge risk through planning and best practices

The safest bridge strategy is to start small. Before moving a large amount across a new bridge, send a test transaction with a small amount—perhaps 0.1 ETH or 100 USDC. Verify that the tokens arrive on the destination chain within the expected time, that the amount is correct (accounting for slippage), and that there are no unexpected complications. Only after the test transaction succeeds should the user move larger amounts. This approach adds a small cost in gas fees but prevents catastrophic loss if the bridge has an undiscovered bug or if slippage is worse than expected.

Users should also diversify bridge usage. No bridge is perfectly reliable. Using Stargate for one transfer and Across for another reduces the risk that a single bridge failure will affect the user’s entire cross-chain workflow. Different bridges have different validator sets, liquidity sources, and risk profiles. This diversification cannot eliminate bridge risk, but it reduces single-point-of-failure exposure.

Gas fees and timing matter more than many users realize. Initiating a bridge transfer during high network congestion on the source chain may result in high gas fees and slow confirmation. Completing the transfer during congestion on the destination chain may delay the minting and increase the window in which validator disagreement could occur. Users should attempt to bridge during periods of lower network activity when possible. Ledger Wallet can display gas price estimates, but the actual gas price will depend on network conditions at execution time. Building a buffer into gas estimates reduces the risk of transactions becoming stuck due to insufficient gas.

Recovery phrases and device backups are critical for bridge recovery in edge cases. If a bridge requires the user to sign a claim transaction using the same private key, the user must be able to access the account on the destination chain even if the original transaction failed. This requires a properly backed-up Ledger device or a recovery phrase stored securely offline. Users should never enter their recovery phrase into Ledger Wallet or any other online service; the phrase should remain offline and accessible only through the hardware device. Ledger Wallet’s design never requests a recovery phrase, which is a security feature. However, users should still create a physical backup of their 24-word Secret Recovery Phrase and store it in a secure location separate from the hardware device.

The bridge provider’s role and where responsibility lies

Ledger Wallet is a user interface and account manager. It is not the bridge provider. When a user initiates a bridge transfer through Ledger Wallet, the actual transfer is executed by a third-party bridge protocol operated by a separate company. Ledger Wallet may have partnerships or integrations with certain bridges, but Ledger is not responsible for the bridge’s operation, security, or recovery procedures. This is a critical distinction that many users miss.

If a bridge transaction fails, Ledger Wallet can help troubleshoot by providing transaction details and guidance on how to verify the status. Ledger can also escalate issues to the bridge provider. However, Ledger cannot force the bridge to refund stuck tokens or fix smart contract bugs. That responsibility lies with the bridge provider. Users should review the bridge provider’s terms of service and support process before moving significant value. If a bridge has no public support channel or documentation, that is a red flag indicating elevated risk.

Ledger’s portfolio management interface displays balances across multiple chains, and Ledger’s integrated services (swapping, staking, buying) provide convenience. However, each service is operated independently. If a swap fails, the swap provider is responsible. If staking yields fall short of expectations, the staking service provider is responsible. Ledger Wallet is the aggregator, but not the operator. Users should understand which entity to contact for support based on which service failed.

This division of responsibility also affects what Ledger can guarantee. Ledger can guarantee that private keys never leave the hardware device and that clear signing prevents unauthorized transaction content. Ledger cannot guarantee that the bridge will execute flawlessly, that slippage will be within tolerance, or that liquidity will always be available. Users must accept some risk when using bridges, and they should choose bridges and amounts based on their personal risk tolerance.

Looking forward: Bridge standardization and improved recovery

The cross-chain bridge ecosystem is still immature. Different bridges use different designs, validator sets, liquidity mechanisms, and recovery procedures. This fragmentation means users must learn each bridge’s unique behavior. Improvements in progress include standardized bridge recovery interfaces, better liquidity aggregation, and consensus on security standards. Some projects are working toward a blockchain app architecture where bridges are interchangeable modules with consistent interfaces, though this goal remains distant.

Ledger Wallet’s role will likely evolve to include better bridge monitoring, more comprehensive transaction status indicators, and clearer warnings about liquidity constraints and risk. The application could also improve by providing more granular control—allowing users to specify slippage tolerance, choose bridge providers explicitly, and set expiration times for transactions. These features would add complexity to the interface but would give experienced users more control over bridge parameters.

For now, users should treat bridging through Ledger Wallet as a powerful but risky capability. The hardware device ensures that transaction signing is secure and that the user has reviewed the transaction details. The bridge interface simplifies the mechanics of moving assets across chains. However, the underlying bridge protocols still have failure modes, liquidity constraints, and slippage risks that users must understand and plan for. Starting with small test transfers, monitoring transactions on both chains, understanding the specific bridge provider’s recovery procedure, and maintaining secure backups are the practical steps that convert a risky operation into a manageable one.

Frequently asked questions

What happens if my bridge transaction gets stuck halfway between chains?

If tokens are locked on the source chain but never minted on the destination chain, check the bridge provider’s documentation for a recovery procedure. Most major bridges offer an automatic or manual refund after a timeout period (typically 24–72 hours). Use a blockchain explorer to verify the transaction status on both chains, then follow the bridge provider’s support process. Ledger Wallet can assist with troubleshooting, but the bridge provider is ultimately responsible for recovery.

How much slippage should I expect when bridging crypto?

Slippage depends on the bridge’s liquidity, the transfer size, network congestion, and current market volatility. Typical slippage ranges from 0.1% to 1% for medium-sized transfers on established bridges. Ledger Wallet displays an estimated slippage percentage, but treat this as an estimate, not a guarantee. Larger transfers experience higher slippage. To reduce slippage, bridge during periods of lower network activity and start with smaller test transfers to verify actual slippage before moving large amounts.

Can I cancel a bridge transaction after confirming it on my Ledger device?

Once signed on the Ledger device and broadcast to the network, a transaction cannot be cancelled. If you discover an error after signing, you can only wait for the transaction to fail or complete. This is why verifying the destination chain, recipient address, and amount on the hardware device screen before confirming is critical. If you suspect an error before broadcasting, disconnect the device and do not allow Ledger Wallet to submit the transaction.

Post a Comment

Your email address will not be published. Required fields are marked *