files.css 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528
  1. /* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
  2. This file is licensed under the Affero General Public License version 3 or later.
  3. See the COPYING-README file. */
  4. /* FILE MENU */
  5. .actions { padding:5px; height:32px; display: inline-block; float: left; }
  6. .actions input, .actions button, .actions .button { margin:0; float:left; }
  7. .actions .button a { color: #555; }
  8. .actions .button a:hover, .actions .button a:active { color: #333; }
  9. .actions.hidden { display: none; }
  10. #new {
  11. z-index: 1010;
  12. float: left;
  13. padding: 0 !important; /* override default control bar button padding */
  14. }
  15. #trash {
  16. margin-right: 8px;
  17. float: right;
  18. z-index: 1010;
  19. padding: 10px;
  20. font-weight: normal;
  21. }
  22. #new > a {
  23. padding: 14px 10px;
  24. position: relative;
  25. top: 7px;
  26. }
  27. #new.active {
  28. border-bottom-left-radius: 0;
  29. border-bottom-right-radius: 0;
  30. border-bottom: none;
  31. }
  32. #new > ul {
  33. display: none;
  34. position: fixed;
  35. min-width: 112px;
  36. z-index: 10;
  37. padding: 8px;
  38. padding-bottom: 0;
  39. margin-top: 14px;
  40. margin-left: -1px;
  41. text-align: left;
  42. background: #f8f8f8;
  43. border: 1px solid #ddd;
  44. border-radius: 5px;
  45. border-top-left-radius: 0;
  46. box-shadow: 0 2px 7px rgba(170,170,170,.4);
  47. }
  48. #new > ul > li {
  49. height: 36px;
  50. margin: 5px;
  51. padding-left: 42px;
  52. padding-bottom: 2px;
  53. background-position: left center;
  54. cursor: pointer;
  55. }
  56. #new > ul > li > p {
  57. cursor: pointer;
  58. padding-top: 7px;
  59. padding-bottom: 7px;
  60. }
  61. #new .error, #fileList .error {
  62. color: #e9322d;
  63. border-color: #e9322d;
  64. -webkit-box-shadow: 0 0 6px #f8b9b7;
  65. -moz-box-shadow: 0 0 6px #f8b9b7;
  66. box-shadow: 0 0 6px #f8b9b7;
  67. }
  68. /* FILE TABLE */
  69. #filestable {
  70. position: relative;
  71. top: 44px;
  72. width: 100%;
  73. }
  74. /* make sure there's enough room for the file actions */
  75. #body-user #filestable {
  76. min-width: 688px; /* 768 (mobile break) - 80 (nav width) */
  77. }
  78. #body-user #controls {
  79. min-width: 688px; /* 768 (mobile break) - 80 (nav width) */
  80. }
  81. #filestable tbody tr { background-color:#fff; height:51px; }
  82. /* fit app list view heights */
  83. .app-files #app-content>.viewcontainer {
  84. min-height: 100%;
  85. }
  86. /* move Deleted Files to bottom of sidebar */
  87. .nav-trashbin {
  88. position: absolute !important;
  89. bottom: 0;
  90. }
  91. #filestable tbody tr { background-color:#fff; height:40px; }
  92. #filestable tbody tr:hover, tbody tr:active {
  93. background-color: rgb(240,240,240);
  94. }
  95. #filestable tbody tr.selected {
  96. background-color: rgb(230,230,230);
  97. }
  98. #filestable tbody tr.searchresult {
  99. background-color: rgb(240,240,240);
  100. }
  101. tbody a { color:#000; }
  102. span.extension, span.uploading, td.date {
  103. color: #999;
  104. }
  105. span.extension {
  106. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
  107. filter: alpha(opacity=70);
  108. opacity: .7;
  109. -webkit-transition: opacity 300ms;
  110. -moz-transition: opacity 300ms;
  111. -o-transition: opacity 300ms;
  112. transition: opacity 300ms;
  113. vertical-align: top;
  114. }
  115. tr:hover span.extension {
  116. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  117. filter: alpha(opacity=100);
  118. opacity: 1;
  119. color: #777;
  120. }
  121. table tr.mouseOver td {
  122. background-color: #eee;
  123. }
  124. table th, table th a {
  125. color: #999;
  126. }
  127. table.multiselect th a {
  128. color: #000;
  129. }
  130. table th .columntitle {
  131. display: block;
  132. padding: 15px;
  133. height: 50px;
  134. box-sizing: border-box;
  135. -moz-box-sizing: border-box;
  136. vertical-align: middle;
  137. }
  138. table th .columntitle.name {
  139. padding-left: 5px;
  140. padding-right: 80px;
  141. margin-left: 50px;
  142. }
  143. .sort-indicator.hidden { visibility: hidden; }
  144. table th .sort-indicator {
  145. width: 10px;
  146. height: 8px;
  147. margin-left: 10px;
  148. display: inline-block;
  149. }
  150. table th:hover .sort-indicator.hidden {
  151. width: 10px;
  152. height: 8px;
  153. margin-left: 10px;
  154. visibility: visible;
  155. }
  156. table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; }
  157. table td {
  158. padding: 0 15px;
  159. border-bottom: 1px solid #eee;
  160. font-style: normal;
  161. background-position: 8px center;
  162. background-repeat: no-repeat;
  163. }
  164. table th#headerName {
  165. position: relative;
  166. width: 9999px; /* not really sure why this works better than 100% … table styling */
  167. padding: 0;
  168. }
  169. #headerName-container {
  170. position: relative;
  171. height: 50px;
  172. }
  173. table th#headerSize, table td.filesize {
  174. text-align: right;
  175. }
  176. table th#headerDate, table td.date,
  177. table th.column-last, table td.column-last {
  178. -moz-box-sizing: border-box;
  179. box-sizing: border-box;
  180. position: relative;
  181. /* this can not be just width, both need to be set … table styling */
  182. min-width: 176px;
  183. max-width: 176px;
  184. }
  185. /* Multiselect bar */
  186. #filestable.multiselect {
  187. top: 95px;
  188. }
  189. table.multiselect thead {
  190. position: fixed;
  191. top: 89px;
  192. z-index: 10;
  193. -moz-box-sizing: border-box;
  194. box-sizing: border-box;
  195. left: 250px; /* sidebar */
  196. }
  197. table thead th {
  198. background-color: #fff;
  199. }
  200. table.multiselect thead th {
  201. background-color: rgba(220,220,220,.8);
  202. color: #000;
  203. font-weight: bold;
  204. border-bottom: 0;
  205. }
  206. table.multiselect #headerName {
  207. position: relative;
  208. width: 9999px; /* when we use 100%, the styling breaks on mobile … table styling */
  209. }
  210. table td.selection, table th.selection, table td.fileaction { width:32px; text-align:center; }
  211. table td.filename a.name {
  212. position:relative; /* Firefox needs to explicitly have this default set … */
  213. -moz-box-sizing: border-box;
  214. box-sizing: border-box;
  215. display: block;
  216. height: 50px;
  217. line-height: 50px;
  218. padding: 0;
  219. }
  220. table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; }
  221. table td.filename input.filename {
  222. width: 70%;
  223. margin-top: 1px;
  224. margin-left: 48px;
  225. cursor: text;
  226. }
  227. table td.filename a, table td.login, table td.logout, table td.download, table td.upload, table td.create, table td.delete { padding:3px 8px 8px 3px; }
  228. table td.filename .nametext, .uploadtext, .modified, .column-last>span:first-child { float:left; padding:15px 0; }
  229. .modified, .column-last>span:first-child {
  230. position: relative;
  231. overflow: hidden;
  232. text-overflow: ellipsis;
  233. width: 90%;
  234. }
  235. /* ellipsize long modified dates to make room for showing delete button */
  236. #fileList tr:hover .modified, #fileList tr:hover .column-last>span:first-child,
  237. #fileList tr:focus .modified, #fileList tr:focus .column-last>span:first-child {
  238. width: 75%;
  239. }
  240. /* TODO fix usability bug (accidental file/folder selection) */
  241. table td.filename .nametext {
  242. position: absolute;
  243. left: 55px;
  244. padding: 0;
  245. overflow: hidden;
  246. text-overflow: ellipsis;
  247. max-width: 800px;
  248. height: 100%;
  249. }
  250. table td.filename .nametext .innernametext {
  251. text-overflow: ellipsis;
  252. overflow: hidden;
  253. position: relative;
  254. display: inline-block;
  255. }
  256. @media only screen and (min-width: 1366px) {
  257. table td.filename .nametext .innernametext {
  258. max-width: 760px;
  259. }
  260. table tr:hover td.filename .nametext .innernametext {
  261. max-width: 480px;
  262. }
  263. }
  264. @media only screen and (min-width: 1200px) and (max-width: 1366px) {
  265. table td.filename .nametext .innernametext {
  266. max-width: 600px;
  267. }
  268. table tr:hover td.filename .nametext .innernametext {
  269. max-width: 320px;
  270. }
  271. }
  272. @media only screen and (min-width: 1000px) and (max-width: 1200px) {
  273. table td.filename .nametext .innernametext {
  274. max-width: 400px;
  275. }
  276. table tr:hover td.filename .nametext .innernametext {
  277. max-width: 120px;
  278. }
  279. }
  280. @media only screen and (min-width: 768px) and (max-width: 1000px) {
  281. table td.filename .nametext .innernametext {
  282. max-width: 320px;
  283. }
  284. table tr:hover td.filename .nametext .innernametext {
  285. max-width: 40px;
  286. }
  287. }
  288. /* for smaller resolutions - see mobile.css */
  289. table td.filename .uploadtext {
  290. font-weight: normal;
  291. margin-left: 8px;
  292. }
  293. .ie8 input[type="checkbox"]{
  294. padding: 0;
  295. }
  296. /* File checkboxes */
  297. #fileList tr td.filename>input[type="checkbox"]:first-child {
  298. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  299. filter: alpha(opacity=0);
  300. opacity: 0;
  301. float: left;
  302. top: 0;
  303. margin: 32px 0 4px 32px; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/
  304. }
  305. /* Show checkbox when hovering, checked, or selected */
  306. #fileList tr:hover td.filename>input[type="checkbox"]:first-child,
  307. #fileList tr td.filename>input[type="checkbox"]:checked:first-child,
  308. #fileList tr.selected td.filename>input[type="checkbox"]:first-child {
  309. opacity: 1;
  310. }
  311. .lte9 #fileList tr:hover td.filename>input[type="checkbox"]:first-child,
  312. .lte9 #fileList tr td.filename>input[type="checkbox"][checked=checked]:first-child,
  313. .lte9 #fileList tr.selected td.filename>input[type="checkbox"]:first-child {
  314. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  315. filter: alpha(opacity=100);
  316. }
  317. /* Use label to have bigger clickable size for checkbox */
  318. #fileList tr td.filename>input[type="checkbox"] + label,
  319. .select-all + label {
  320. height: 50px;
  321. position: absolute;
  322. width: 50px;
  323. z-index: 5;
  324. }
  325. #fileList tr td.filename>input[type="checkbox"]{
  326. /* sometimes checkbox height is bigger (KDE/Qt), so setting to absolute
  327. * to prevent it to increase the height */
  328. position: absolute;
  329. }
  330. #fileList tr td.filename>input[type="checkbox"] + label {
  331. left: 0;
  332. top: 0;
  333. }
  334. .select-all + label {
  335. top: 0;
  336. }
  337. .select-all {
  338. position: absolute;
  339. top: 18px;
  340. left: 18px;
  341. }
  342. #fileList tr td.filename {
  343. position: relative;
  344. width: 100%;
  345. padding-left: 0;
  346. -webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms;
  347. }
  348. #fileList tr td.filename a.name label {
  349. position: absolute;
  350. width: 80%;
  351. height: 50px;
  352. }
  353. #uploadsize-message,#delete-confirm { display:none; }
  354. /* File actions */
  355. .fileactions {
  356. position: absolute;
  357. right: 0;
  358. font-size: 11px;
  359. }
  360. #fileList img.move2trash { display:inline; margin:-8px 0; padding:16px 8px 16px 8px !important; float:right; }
  361. #fileList a.action.delete {
  362. position: absolute;
  363. right: 0;
  364. padding: 17px 14px;
  365. }
  366. #fileList .action.action-share-notification span, #fileList a {
  367. cursor: default !important;
  368. }
  369. a.action>img {
  370. max-height:16px;
  371. max-width:16px;
  372. vertical-align:text-bottom;
  373. margin-bottom: -1px;
  374. }
  375. /* Actions for selected files */
  376. .selectedActions {
  377. position: absolute;
  378. top: 0;
  379. right: 0;
  380. }
  381. .selectedActions a {
  382. display: inline;
  383. font-size: 11px;
  384. line-height: 50px;
  385. padding: 18px 5px;
  386. }
  387. .selectedActions a.delete-selected {
  388. padding-right: 15px;
  389. }
  390. .selectedActions a.hidden {
  391. display: none;
  392. }
  393. .selectedActions a img {
  394. position:relative;
  395. vertical-align: text-bottom;
  396. margin-bottom: -1px;
  397. }
  398. #fileList a.action {
  399. display: inline;
  400. padding: 18px 8px;
  401. line-height: 50px;
  402. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  403. filter: alpha(opacity=0);
  404. opacity: 0;
  405. display:none;
  406. }
  407. #fileList a.action[data-action="Rename"] {
  408. padding: 16px 14px 17px !important;
  409. position: relative;
  410. top: -21px;
  411. }
  412. #fileList tr:hover a.action, #fileList a.action.permanent {
  413. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
  414. filter: alpha(opacity=50);
  415. opacity: .5;
  416. display:inline;
  417. }
  418. #fileList tr:hover a.action:hover {
  419. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
  420. filter: alpha(opacity=100);
  421. opacity: 1;
  422. display:inline;
  423. }
  424. .summary {
  425. -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
  426. filter: alpha(opacity=30);
  427. opacity: .3;
  428. height: 70px;
  429. }
  430. .summary:hover, .summary, table tr.summary td {
  431. background-color: transparent;
  432. }
  433. .summary td {
  434. padding-top: 20px;
  435. padding-bottom: 250px;
  436. border-bottom: none;
  437. }
  438. .summary .info {
  439. margin-left: 40px;
  440. }
  441. #scanning-message{ top:40%; left:40%; position:absolute; display:none; }
  442. table.dragshadow {
  443. width:auto;
  444. }
  445. table.dragshadow td.filename {
  446. padding-left:60px;
  447. padding-right:16px;
  448. height: 36px;
  449. }
  450. table.dragshadow td.size {
  451. padding-right:8px;
  452. }
  453. #upgrade {
  454. width: 400px;
  455. position: absolute;
  456. top: 200px;
  457. left: 50%;
  458. text-align: center;
  459. margin-left: -200px;
  460. }
  461. .mask {
  462. z-index: 50;
  463. position: absolute;
  464. top: 0;
  465. left: 0;
  466. right: 0;
  467. bottom: 0;
  468. background-color: white;
  469. background-repeat: no-repeat no-repeat;
  470. background-position: 50%;
  471. opacity: 0.7;
  472. filter: alpha(opacity=70);
  473. transition: opacity 100ms;
  474. -moz-transition: opacity 100ms;
  475. -o-transition: opacity 100ms;
  476. -ms-transition: opacity 100ms;
  477. -webkit-transition: opacity 100ms;
  478. }
  479. .mask.transparent{
  480. opacity: 0;
  481. }