/*! * 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; } Phantom Wallet y tokenomics: Cómo leer whitepapers de tokens SPL antes de invertir desde tu billetera – Crafted Web Campus

Un inversor reciente en Solana abre Phantom en su navegador y ve decenas de tokens SPL listados en su cartera: algunos con logos profesionales, otros con nombres que suenan prometedores. Uno de ellos ofrece rendimientos de tres dígitos en un protocolo DeFi que no reconoce. Otro promete ser el “siguiente Solana”. Sin más contexto, la decisión de invertir, mantener o vender depende de información que no aparece en la interfaz de la billetera. El whitepaper del proyecto, si existe y es legítimo, contiene los datos técnicos y económicos necesarios para evaluar el riesgo real.

El problema es que la mayoría de inversores no sabe cómo leer esos documentos ni qué indicadores importan. Phantom Wallet, como herramienta de gestión de tokens SPL, hace visible lo que posee una persona. Lo que no hace es garantizar que la inversión subyacente tenga fundamentos sólidos. Entre la interfaz accesible de la billetera criptográfica y la decisión de invertir existe un trabajo de investigación que requiere disciplina, escepticismo y comprensión de conceptos económicos básicos que los whitepapers asumen demasiado a menudo.

Interfaz de Phantom Wallet mostrando la gestión de múltiples tokens SPL y su visualización de saldos en la cartera

Por qué la interfaz de Phantom es insuficiente para evaluar fundamentos

Phantom muestra saldo, cambio de precio en 24 horas, y en algunos casos un historial de transacciones. Eso es transparencia en lo que posee; no es investigación de inversión. Un token SPL puede tener un volumen de trading alto en una plataforma descentralizada porque hay especulación, no porque el proyecto sea sostenible. El precio puede subir porque entran compradores nuevos, lo cual puede revertirse en minutos si los primeros inversores deciden salir. La interfaz de la billetera criptográfica registra movimientos; no explica las razones económicas detrás de esos movimientos.

La gestión de tokens SPL en Phantom incluye ocultamiento automático de spam, lo que filtra proyectos claramente fraudulentos. Pero esa función protege contra ruido obvio, no contra esquemas sofisticados o decisiones de inversión pobres. Un token puede ser técnicamente legítimo en la blockchain de Solana mientras su modelo económico carece de sostenibilidad. La distinción es crítica: la presencia del token en tu cartera significa que la transacción se completó; no significa que valga la pena mantenerlo.

Cuando Phantom muestra un precio en tiempo real junto a tu cantidad de tokens, genera una ilusión de certeza. Ves un número multiplicado por otro número, obtienes un valor neto. Pero ese cálculo depende de que el último precio de intercambio reflejara un comprador y un vendedor dispuestos. En mercados con baja liquidez, esa suposición colapsa. El precio que muestra la billetera puede no ser el precio al que podrías vender, especialmente en cantidad. Un proyecto con 50 mil dólares de volumen diario puede tener spreads bid-ask tan amplios que vender una posición significativa causaría un desplome del precio.

Por eso el primer paso antes de invertir es separar la información visible en la interfaz de la información que debe investigarse fuera de ella. El whitepaper existe para llenar esa brecha. Si no existe, o es un párrafo vago, eso es una bandera roja importante.

Estructura básica de un whitepaper legítimo y qué buscar

Un whitepaper serio de un proyecto en Solana contiene típicamente: una declaración clara del problema que el proyecto intenta resolver, la propuesta técnica específica como solución, un análisis de tokenomics que explique la emisión y distribución, el equipo detrás del proyecto, la hoja de ruta con hitos, y un análisis de riesgos. Cada sección responde preguntas concretas. Si el documento salta secciones o usa lenguaje vago donde debería haber números, ese es un patrón de falta de transparencia.

El problema descrito debe ser real y cuantificable. Si el whitepaper dice que “los usuarios pierden dinero en DeFi”, eso es demasiado amplio. Si dice “los usuarios pagan un promedio de 0.5% en comisiones de liquidación en plataformas de préstamo porque los oráculos de precios se actualizan cada bloque en lugar de cada segundo”, eso es específico y verificable. Un problema vago generalmente indica que los autores no comprenden completamente su propio producto, o que están ocultando algo deliberadamente.

La solución técnica debe ser arquitectónicamente diferente de lo que existe. Si el proyecto es “otro exchange descentralizado en Solana”, ese no es un diferenciador; es una descripción. Si es un exchange que utiliza una nueva forma de calcular el deslizamiento o ejecutar órdenes de manera más rápida que la competencia, eso merece análisis. Pero el análisis debe ser profundo: ¿cómo alcanza exactamente esa velocidad? ¿Qué compromisos en seguridad o descentralización acepta para lograrlo? Un whitepaper que afirma innovación sin explicar el mecanismo está incompleto.

El equipo es tan importante como la tecnología. Los nombres reales, antecedentes verificables, roles específicos, y presencia en redes profesionales como LinkedIn o repositorios GitHub importan. Si el equipo es anónimo o los nombres son pseudónimos sin antecedentes públicos, el riesgo es muy alto. No es imposible que equipos anónimos construyan buenos proyectos; es simplemente que no hay forma de mantenerlos responsables si desaparecen o si cometen errores graves. Esa falta de responsabilidad es un costo económico que debe reflejarse en cómo valúas el proyecto.

Tokenomics: Donde están los números reales sobre el dinero

La sección de tokenomics es donde los whitepapers revelan o ocultan la verdad económica. Debe contener: cantidad total de tokens, cantidad circulante actualmente, cómo se distribuyen entre fundadores, inversionistas, comunidad y desarrollo, la tasa de emisión futura, y qué mecanismos hay para reducir esa emisión. Estos números no son decorativos; determinan si el proyecto puede sostenerse económicamente.

Gestión de tokens SPL en Phantom te permite ver lo que posees, pero no quién más posee qué. Por eso necesitas el whitepaper: para entender si los fundadores mantienen el 80% del suministro y planean venderlo gradualmente, o si la distribución es más equitativa. Un proyecto donde los creadores tienen una cantidad enorme de tokens sin lockups (bloqueos temporales) tiene un incentivo de corto plazo a vender en cualquier subida de precio. Eso crea presión de venta permanente que puede deprimr el valor durante años.

La inflación anual es otro número crítico. Si el proyecto emite el 50% más de tokens cada año, el precio debe crecer al menos ese 50% solo para mantener el valor por token constante. Si no tiene un modelo de ingresos lo suficientemente fuerte para justificar esa emisión, entonces eventualmente el suministro abrumará la demanda. Este es un cálculo matemático simple que muchos inversores ignoran porque requiere aritmética desagradable.

Los whitepapers legítimos deben explicar cómo se quema dinero del proyecto o cómo se extrae dinero de la circulación. Si el protocolo cobra comisiones, ¿qué sucede con ellas? ¿Se queman, se envían al tesoro, se redistribuyen a holders? Si la respuesta es “no hemos decidido aún”, eso significa que el modelo económico está incompleto. El proyecto está pidiendo dinero de inversionistas sin saber cómo funcionará la economía a largo plazo.

Cómo verificar afirmaciones del whitepaper usando herramientas públicas

Un whitepaper puede afirmar que “5 millones de tokens han sido quemados” o “el 40% de la emisión está bajo lockup hasta Q3 2025”. Esas declaraciones son verificables en la blockchain. Solana es transparente; toda la historia de transacciones del contrato de tokens es visible. Herramientas como Solscan permiten buscar el contrato del token SPL e inspeccionar la distribución actual, los holders principales, el historial de emisión, y cualquier función de quema.

El proceso es directo. Tomas la dirección del contrato del token (puedes encontrarla buscando el nombre del token en Solscan), la ingresas, y ves quién controla qué cantidad. Si el whitepaper dice que los fundadores tienen el 10% y Solscan muestra que el 60% está en una cartera controlada por los mismos desarrolladores, tienes una discrepancia que requiere explicación. Ese discrepancia frecuentemente indica deshonestidad o una definición diferente de lo que cuenta como “circulante”.

Los lockups pueden verificarse con mayor dificultad, pero existen formatos estándar. Algunos proyectos usan contratos inteligentes que literalmente no permiten transferencias hasta una fecha específica. Otros simplemente publican compromisos que no están forzados en código, lo que es una promesa más débil. Un whitepaper debe explicar cuál es el caso. Si un token está “bajo lockup” pero la función de bloqueo no existe en el contrato inteligente, entonces el lockup es solo una promesa de buena fe que puede violarse en cualquier momento.

La actividad del contrato también cuenta una historia. Un proyecto que afirma estar en desarrollo activo debe mostrar un historial regular de cambios. Si el contrato no ha sido modificado en 18 meses, o si todos los cambios ocurrieron hace dos años y luego se detuvo, eso sugiere abandono o falta de desarrollo. Tampoco verifica la calidad del código, pero sí verifica si el equipo está realmente trabajando.

Riesgos específicos de tokens SPL en Solana que el whitepaper puede ocultar

Un proyecto puede ser técnicamente legítimo en Solana pero estar vulnerable a riesgos específicos de la cadena. Solana ha experimentado paradas de red, donde la red se detiene durante horas sin procesar transacciones. Un protocolo DeFi que no ha anticipado esto puede fallar de manera catastrófica si los liquidadores no pueden ejecutar transacciones durante una parada. Un whitepaper que no menciona la “seguridad de la red” o la “disponibilidad” como consideraciones está siendo ingenuo o deshonesto.

El riesgo de concentración es otro problema. Si el proyecto depende de un oráculo de precios centralizado o de un grupo pequeño de nodos validadores, entonces no es realmente descentralizado a pesar de lo que afirme. Algunos whitepapers usan lenguaje que suena descentralizado mientras que la arquitectura real se apoya en servicios centralizados. Debes leer la sección técnica con suspicacia: ¿dónde vienen exactamente los precios? ¿Quién ejecuta los servidores? ¿Qué pasa si un servicio clave se desconecta?

El riesgo de contrato inteligente es probablemente el más importante. Un token SPL es solo código. Ese código puede tener vulnerabilidades. Un whitepaper serio menciona auditorías de seguridad por firmas terceras conocidas, explica qué vulnerabilidades se encontraron y cómo se corrigieron, y proporciona enlaces a los reportes públicos. Si el whitepaper dice “fue auditado” sin más detalles, o si cita un auditor que no existe, eso es una bandera roja. Puedes verificar auditorías consultando los registros públicos de firmas como Least Authority o Kudelski Security, las mismas que han auditado productos como Phantom Wallet.

Finalmente, existe el riesgo regulatorio que muchos whitepapers minimizan o ignoran. Un token que funciona como un valor de seguridad pero se distribuye sin registro puede enfrentar acciones regulatorias. Un whitepaper honesto debería discutir la postura legal en al menos las jurisdicciones principales. Si no hay sección de cumplimiento legal, o si es demasiado corta, el equipo probablemente no ha pensado profundamente sobre este riesgo.

Cómo integrar la investigación del whitepaper en tu flujo de decisión con Phantom

Cuando ves un nuevo token SPL en Phantom, el flujo debería ser sistemático. Primero, busca el whitepaper oficial en el sitio web del proyecto. Si no existe o es extremadamente corto (menos de 5 páginas), detente ahí. Los proyectos serios escriben documentos serios. Segundo, lee la sección de problem y la sección de solución. Si no puedes resumir en una frase lo que intenta hacer el proyecto, no lo entiendes lo suficientemente bien para invertir.

Tercero, lee tokenomics completamente. Haz una hoja de cálculo si es necesario: ¿cuántos tokens se crearán cada año durante los próximos cinco años? ¿Cuál es la inflación anual como porcentaje? ¿Puede justificarse con los ingresos proyectados del protocolo? Si no, entonces el precio del token casi seguramente caerá a medida que más tokens diluyan a los holders existentes. Cuarto, verifica las afirmaciones de distribución usando Solscan. Si hay discrepancias, investiga por qué. Quinto, busca auditorías de seguridad reales con reportes públicos. Si no existen, evalúa el riesgo de contrato inteligente como muy alto.

Sexto, revisa el equipo. Si es anónimo, ese es un riesgo adicional. Si tienen antecedentes verificables en criptografía y desarrollo, eso es positivo. Séptimo, lee la hoja de ruta. ¿Son los hitos específicos y realistas, o son vagos? “Lanzar característica X en Q3” es vago. “Implementar especificación de precios de oráculo Y, auditarlo por firma Z, y desplegarlo para que maneje Z% del volumen de la plataforma antes de Q3” es específico. Finalmente, hazte una pregunta personal: ¿si el precio de este token cayera a cero, perdería dinero que no pueda permitirme perder? Si la respuesta es sí, la inversión es demasiado grande para tu tolerancia al riesgo independientemente de cuán bueno sea el whitepaper.

El Phantom Wallet extension proporciona una interfaz limpia para gestionar lo que inviertes, pero la decisión de invertir debe tomarse antes de que el token entre en tu cartera. Una vez que lo posees, Phantom te permite ver el precio en tiempo real, pero ese número es menos importante que la pregunta de si el proyecto subyacente merece existir.

Casos de estudio: Lo que hubiera revelado un análisis de whitepaper

Examinemos un patrón común en proyectos fallidos. Un protocolo lanza un token con promesas de rendimientos extraordinarios en un programa de lending. El whitepaper afirma que puede ser sostenible porque cobra comisiones del 10% en préstamos. Un cálculo rápido: si la plataforma tiene 100 millones de dólares en volumen total prestado y la tasa de rotación es una vez cada 30 días (una suposición generosa), entonces genera 10 millones de dólares en comisiones al año. Si el protocolo, fundadores e inversionistas tempranos capturan la mitad, son 5 millones de dólares en ingresos anuales. Si el token fue valuado en 1000 millones de dólares al lanzamiento, eso es un flujo de caja del 0.5% anual. Los rendimientos prometidos son tipicamente 100% anual o más. La matemática no cierra. El proyecto debe estar canibalizando el capital de inversionistas nuevos para pagar a los antiguos.

Un análisis de tokenomics habría revelado esto. Si la emisión anual es lo suficientemente alta para “financiar” los rendimientos prometidos, entonces los holders existentes se diluyen permanentemente. Eventualmente, el precio colapsa porque la promesa era estructuralmente insostenible. Los whitepaper que prometen rendimientos debe explicar exactamente de dónde viene el dinero. Si viene de más dinero ingresando (esquema Ponzi), el whitepaper debe ser lo suficientemente honesto para mencionarlo. Si no es honesto, asume que es un esquema Ponzi.

Otro caso de estudio común es un proyecto que afirma ser “completamente descentralizado” pero todas las decisiones son tomadas por los fundadores a través de un multisig que controlan. Técnicamente el multisig es “descentralizado” en que requiere múltiples firmas; prácticamente es centralizado en que los fundadores pueden cambiar los parámetros del protocolo sin consentimiento de holders. Un whitepaper claro debería describir el proceso real de gobernanza. Si es vago, o si los fundadores mantienen una “llave de admin” sin descripción clara de cómo se usa, existe concentración de poder que puede ser abusada.

Lo que Phantom hace bien y lo que tú debes hacer como inversor

Phantom, como herramienta, hace su trabajo de manera excelente: mantiene seguras tus claves privadas, detecta intentos de estafa usando Blowfish, muestra tu saldo, y facilita transacciones. Es decir, Phantom es un administrador de carteras, no un asesor de inversiones. La responsabilidad de investigación cae completamente en el inversor. Eso es como debe ser. No quieres que tu billetera criptográfica haga juicios sobre qué tokens son inversiones “buenas”; querías que te dé control total.

Lo que tú como inversor debes hacer es aceptar la responsabilidad que Phantom no toma. Cada token que ingresas en tu cartera debe haber pasado por análisis de whitepaper. Los whitepapers deben ser leídos completamente, no solo hojeados. Los números deben verificarse contra la blockchain. Los riesgos deben ser entendidos antes de invertir dinero que no puedes perder. Los whitepapers no son perfectos; algunos están escritos por equipos incompetentes que genuinamente no entienden sus propios proyectos. Otros son escritos por equipos sofisticados que ocultan deliberadamente peligros. Tu trabajo es distinguir entre ambos.

La billetera criptográfica es una herramienta. El whitepaper es un documento. Juntos, proporcionan contexto suficiente para una decisión informada. Pero ese contexto requiere que hagas el trabajo. No es posible invertir de forma segura en el ecosistema Solana solo mirando precios en Phantom. El esfuerzo de investigación es exactamente el costo que te protege de perder dinero en esquemas defectuosos o fraudes.

Preguntas frecuentes

¿Cuál es la diferencia entre un whitepaper legítimo y uno falso?

Un whitepaper legítimo contiene números específicos, identifica problemas concretos, proporciona soluciones técnicamente detalladas, explica tokenomics con transparencia, y menciona riesgos e incertidumbres. Un whitepaper falso o deficiente usa lenguaje vago, evita números específicos, promete rendimientos sin explicar su origen, omite detalles técnicos, y no menciona limitaciones. Si no puedes extraer datos verificables del documento, es probable que el proyecto no sea sólido.

¿Cómo verifico si un token SPL ha sido realmente auditado?

Busca el nombre del proyecto en los sitios web de firmas de auditoría conocidas como Least Authority, Kudelski Security o Trail of Bits. Un reporte de auditoría legítimo debe incluir detalles de vulnerabilidades encontradas y cómo fueron corregidas. Si el whitepaper cita un auditor pero no proporciona un enlace al reporte, o si el auditor no existe, eso es una bandera roja. También puedes contactar directamente a la firma de auditoría para verificar.

¿Puedo confiar solo en el precio que muestra Phantom para decidir si un token está subvaluado?

No. El precio que muestra Phantom es correcto para transacciones pequeñas en mercados con buena liquidez, pero no refleja el valor fundamental ni la capacidad de vender tu posición completa a ese precio. Un token puede mostrar un precio de $1 en Phantom pero tener un volumen de trading tan bajo que vender una cantidad significativa causaría un colapso del precio. Debes investigar liquidez, fundamentos, tokenomics y riesgos antes de deducir si un precio es atractivo.

Post a Comment

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