styles.scss 23 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276
  1. /**
  2. * @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>
  3. * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch>
  4. * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>
  5. * @copyright Copyright (c) 2016, Julius Haertl <jus@bitgrid.net>
  6. * @copyright Copyright (c) 2016, Joas Schilling <coding@schilljs.com>
  7. * @copyright Copyright (c) 2016, Morris Jobke <hey@morrisjobke.de>
  8. * @copyright Copyright (c) 2016, Christoph Wurst <christoph@winzerhof-wurst.at>
  9. * @copyright Copyright (c) 2016, Raghu Nayyar <hey@raghunayyar.com>
  10. * @copyright Copyright (c) 2011-2017, Jan-Christoph Borchardt <hey@jancborchardt.net>
  11. * @copyright Copyright (c) 2019-2020, Gary Kim <gary@garykim.dev>
  12. *
  13. * @license GNU AGPL version 3 or any later version
  14. *
  15. */
  16. html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section {
  17. margin: 0;
  18. padding: 0;
  19. border: 0;
  20. outline: 0;
  21. font-weight: inherit;
  22. font-size: 100%;
  23. font-family: inherit;
  24. vertical-align: baseline;
  25. cursor: default;
  26. scrollbar-color: var(--color-border-dark) transparent;
  27. scrollbar-width: thin;
  28. }
  29. html, body {
  30. height: 100%;
  31. }
  32. article, aside, dialog, figure, footer, header, hgroup, nav, section {
  33. display: block;
  34. }
  35. body {
  36. line-height: 1.5;
  37. }
  38. table {
  39. border-collapse: separate;
  40. border-spacing: 0;
  41. white-space: nowrap;
  42. }
  43. caption, th, td {
  44. text-align: left;
  45. font-weight: normal;
  46. }
  47. table, td, th {
  48. vertical-align: middle;
  49. }
  50. a {
  51. border: 0;
  52. color: var(--color-main-text);
  53. text-decoration: none;
  54. cursor: pointer;
  55. * {
  56. cursor: pointer;
  57. }
  58. }
  59. a.external {
  60. margin: 0 3px;
  61. text-decoration: underline;
  62. }
  63. input {
  64. cursor: pointer;
  65. * {
  66. cursor: pointer;
  67. }
  68. }
  69. select, .button span, label {
  70. cursor: pointer;
  71. }
  72. ul {
  73. list-style: none;
  74. }
  75. body {
  76. background-color: var(--color-main-background);
  77. font-weight: normal;
  78. /* bring the default font size up to 14px */
  79. font-size: .875em;
  80. line-height: 1.6em;
  81. font-family: var(--font-face);
  82. color: var(--color-main-text);
  83. }
  84. .two-factor-header {
  85. text-align: center;
  86. }
  87. .two-factor-provider {
  88. text-align: center;
  89. width: 258px !important;
  90. display: inline-block;
  91. margin-bottom: 0 !important;
  92. background-color: var(--color-background-darker) !important;
  93. border: none !important;
  94. }
  95. .two-factor-link {
  96. display: inline-block;
  97. padding: 12px;
  98. color: var(--color-text-lighter);
  99. }
  100. .float-spinner {
  101. height: 32px;
  102. display: none;
  103. }
  104. #nojavascript {
  105. position: fixed;
  106. top: 0;
  107. bottom: 0;
  108. left: 0;
  109. height: 100%;
  110. width: 100%;
  111. z-index: 9000;
  112. text-align: center;
  113. background-color: var(--color-background-darker);
  114. color: var(--color-primary-text);
  115. line-height: 125%;
  116. font-size: 24px;
  117. div {
  118. display: block;
  119. position: relative;
  120. width: 50%;
  121. top: 35%;
  122. margin: 0px auto;
  123. }
  124. a {
  125. color: var(--color-primary-text);
  126. border-bottom: 2px dotted var(--color-main-background);
  127. &:hover, &:focus {
  128. color: var(--color-primary-text-dark);
  129. }
  130. }
  131. }
  132. /* SCROLLING */
  133. ::-webkit-scrollbar {
  134. width: 6px;
  135. height: 5px;
  136. }
  137. ::-webkit-scrollbar-track-piece {
  138. background-color: transparent;
  139. }
  140. ::-webkit-scrollbar-thumb {
  141. background: var(--color-border-dark);
  142. border-radius: var(--border-radius);
  143. }
  144. /* SELECTION */
  145. ::selection {
  146. background-color: var(--color-primary-element);
  147. color: var(--color-primary-text);
  148. }
  149. /* CONTENT ------------------------------------------------------------------ */
  150. #controls {
  151. box-sizing: border-box;
  152. @include position('sticky');
  153. height: 44px;
  154. padding: 0;
  155. margin: 0;
  156. background-color: var(--color-main-background-translucent);
  157. z-index: 61; /* must be above the filelist sticky header */
  158. -webkit-user-select: none;
  159. -moz-user-select: none;
  160. -ms-user-select: none;
  161. user-select: none;
  162. display: flex;
  163. top: $header-height;
  164. }
  165. /* position controls for apps with app-navigation */
  166. .viewer-mode #app-navigation + #app-content #controls {
  167. left: 0;
  168. }
  169. #app-navigation * {
  170. box-sizing: border-box;
  171. }
  172. #controls .actions {
  173. > div,
  174. & {
  175. > .button, button {
  176. box-sizing: border-box;
  177. display: inline-block;
  178. display: flex;
  179. height: 36px;
  180. width: 36px;
  181. padding: 9px; // width - border - icon width = 18px
  182. align-items: center;
  183. justify-content: center;
  184. }
  185. .button.hidden {
  186. display: none;
  187. }
  188. }
  189. }
  190. /* EMPTY CONTENT DISPLAY ------------------------------------------------------------ */
  191. #emptycontent,
  192. .emptycontent {
  193. color: var(--color-text-maxcontrast);
  194. text-align: center;
  195. margin-top: 30vh;
  196. width: 100%;
  197. #app-sidebar & {
  198. margin-top: 10vh;
  199. }
  200. .emptycontent-search {
  201. position: static;
  202. }
  203. h2 {
  204. margin-bottom: 10px;
  205. }
  206. [class^='icon-'],
  207. [class*='icon-'] {
  208. background-size: 64px;
  209. height: 64px;
  210. width: 64px;
  211. margin: 0 auto 15px;
  212. &:not([class^='icon-loading']),
  213. &:not([class*='icon-loading']) {
  214. opacity: .4;
  215. }
  216. }
  217. }
  218. /* LOG IN & INSTALLATION ------------------------------------------------------------ */
  219. #datadirContent label {
  220. width: 100%;
  221. }
  222. /* strengthify wrapper */
  223. /* General new input field look */
  224. /* Nicely grouping input field sets */
  225. .grouptop, .groupmiddle, .groupbottom {
  226. position: relative;
  227. -webkit-user-select: none;
  228. -moz-user-select: none;
  229. -ms-user-select: none;
  230. user-select: none;
  231. }
  232. /* Show password toggle */
  233. #show, #dbpassword {
  234. position: absolute;
  235. right: 1em;
  236. top: .8em;
  237. float: right;
  238. }
  239. #show + label, #dbpassword + label {
  240. right: 21px;
  241. top: 15px !important;
  242. margin: -14px !important;
  243. padding: 14px !important;
  244. }
  245. #show:checked + label, #dbpassword:checked + label, #personal-show:checked + label {
  246. opacity: .8;
  247. }
  248. #show + label, #dbpassword + label, #personal-show + label {
  249. position: absolute !important;
  250. height: 20px;
  251. width: 24px;
  252. background-image: var(--icon-toggle-000);
  253. background-repeat: no-repeat;
  254. background-position: center;
  255. opacity: .3;
  256. }
  257. /* Feedback for keyboard focus and mouse hover */
  258. #show,
  259. #dbpassword,
  260. #personal-show {
  261. &:focus + label {
  262. opacity: 1;
  263. }
  264. + label:hover {
  265. opacity: 1;
  266. }
  267. }
  268. #show + label:before, #dbpassword + label:before, #personal-show + label:before {
  269. display: none;
  270. }
  271. #pass2, input[name='personal-password-clone'] {
  272. padding-right: 30px;
  273. }
  274. .personal-show-container {
  275. position: relative;
  276. display: inline-block;
  277. margin-right: 6px;
  278. }
  279. #personal-show + label {
  280. display: block;
  281. right: 0;
  282. margin-top: -43px;
  283. margin-right: -4px;
  284. padding: 22px;
  285. }
  286. /* Warnings and errors are the same */
  287. #body-user .warning, #body-settings .warning {
  288. margin-top: 8px;
  289. padding: 5px;
  290. border-radius: var(--border-radius);
  291. color: var(--color-primary-text);
  292. background-color: var(--color-warning);
  293. }
  294. .warning {
  295. legend, a {
  296. color: var(--color-primary-text) !important;
  297. font-weight: bold !important;
  298. }
  299. }
  300. .error {
  301. a {
  302. color: var(--color-primary-text) !important;
  303. font-weight: bold !important;
  304. &.button {
  305. color: var(--color-text-lighter) !important;
  306. display: inline-block;
  307. text-align: center;
  308. }
  309. }
  310. pre {
  311. white-space: pre-wrap;
  312. text-align: left;
  313. }
  314. }
  315. .error-wide {
  316. width: 700px;
  317. margin-left: -200px !important;
  318. .button {
  319. color: black !important;
  320. }
  321. }
  322. .warning-input {
  323. border-color: var(--color-error) !important;
  324. }
  325. /* fixes for update page TODO should be fixed some time in a proper way */
  326. /* this is just for an error while updating the ownCloud instance */
  327. /* Alternative Logins */
  328. #alternative-logins {
  329. legend {
  330. margin-bottom: 10px;
  331. }
  332. li {
  333. height: 40px;
  334. display: inline-block;
  335. white-space: nowrap;
  336. }
  337. }
  338. /* Log in and install button */
  339. #remember_login {
  340. margin: 18px 5px 0 16px !important;
  341. }
  342. /* Sticky footer */
  343. /* round profile photos */
  344. .avatar, .avatardiv {
  345. border-radius: 50%;
  346. flex-shrink: 0;
  347. &> img {
  348. border-radius: 50%;
  349. flex-shrink: 0;
  350. }
  351. }
  352. td.avatar {
  353. border-radius: 0;
  354. }
  355. #notification-container {
  356. left: 50%;
  357. max-width: 60%;
  358. position: fixed;
  359. top: 0;
  360. text-align: center;
  361. transform: translateX(-50%);
  362. z-index: 8000;
  363. }
  364. #notification {
  365. margin: 0 auto;
  366. z-index: 8000;
  367. background-color: var(--color-main-background);
  368. border: 0;
  369. padding: 1px 8px;
  370. display: none;
  371. position: relative;
  372. top: 0;
  373. border-bottom-left-radius: 3px;
  374. border-bottom-right-radius: 3px;
  375. opacity: .9;
  376. span {
  377. cursor: pointer;
  378. margin-left: 1em;
  379. }
  380. overflow-x: hidden;
  381. overflow-y: auto;
  382. max-height: 100px;
  383. .row {
  384. position: relative;
  385. .close {
  386. display: inline-block;
  387. vertical-align: middle;
  388. position: absolute;
  389. right: 0;
  390. top: 0;
  391. margin-top: 2px;
  392. }
  393. &.closeable {
  394. padding-right: 20px;
  395. }
  396. }
  397. }
  398. tr .action:not(.permanent), .selectedActions a {
  399. opacity: 0;
  400. }
  401. tr {
  402. &:hover .action, &:focus .action, .action.permanent {
  403. opacity: .5;
  404. }
  405. }
  406. .selectedActions a {
  407. opacity: .5;
  408. }
  409. tr .action {
  410. width: 16px;
  411. height: 16px;
  412. }
  413. .header-action {
  414. opacity: .8;
  415. }
  416. tr {
  417. &:hover .action:hover, &:focus .action:focus {
  418. opacity: 1;
  419. }
  420. }
  421. .selectedActions a {
  422. &:hover, &:focus {
  423. opacity: 1;
  424. }
  425. }
  426. .header-action {
  427. &:hover, &:focus {
  428. opacity: 1;
  429. }
  430. }
  431. tbody tr {
  432. &:hover, &:focus, &:active {
  433. background-color: var(--color-background-dark);
  434. }
  435. }
  436. code {
  437. font-family: 'Lucida Console', 'Lucida Sans Typewriter', 'DejaVu Sans Mono', monospace;
  438. }
  439. .pager {
  440. list-style: none;
  441. float: right;
  442. display: inline;
  443. margin: .7em 13em 0 0;
  444. li {
  445. display: inline-block;
  446. }
  447. }
  448. .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
  449. overflow: hidden;
  450. text-overflow: ellipsis;
  451. }
  452. .ui-icon-circle-triangle-e {
  453. background-image: url('../img/actions/play-next.svg?v=1');
  454. }
  455. .ui-icon-circle-triangle-w {
  456. background-image: url('../img/actions/play-previous.svg?v=1');
  457. }
  458. /* ---- jQuery UI datepicker ---- */
  459. .ui-widget.ui-datepicker {
  460. margin-top: 10px;
  461. padding: 4px 8px;
  462. width: auto;
  463. border-radius: var(--border-radius);
  464. border: none;
  465. z-index: 1600 !important; // above sidebar
  466. .ui-state-default,
  467. .ui-widget-content .ui-state-default,
  468. .ui-widget-header .ui-state-default {
  469. border: 1px solid transparent;
  470. background: inherit;
  471. }
  472. .ui-widget-header {
  473. padding: 7px;
  474. font-size: 13px;
  475. border: none;
  476. background-color: var(--color-main-background);
  477. color: var(--color-main-text);
  478. .ui-datepicker-title {
  479. line-height: 1;
  480. font-weight: normal;
  481. }
  482. .ui-icon {
  483. opacity: .5;
  484. &.ui-icon-circle-triangle-e {
  485. background: url("../img/actions/arrow-right.svg") center center no-repeat;
  486. }
  487. &.ui-icon-circle-triangle-w {
  488. background: url("../img/actions/arrow-left.svg") center center no-repeat;
  489. }
  490. }
  491. .ui-state-hover .ui-icon {
  492. opacity: 1;
  493. }
  494. }
  495. .ui-datepicker-calendar {
  496. th {
  497. font-weight: normal;
  498. color: var(--color-text-lighter);
  499. opacity: .8;
  500. width: 26px;
  501. padding: 2px;
  502. }
  503. tr:hover {
  504. background-color: inherit;
  505. }
  506. td {
  507. &.ui-datepicker-today a:not(.ui-state-hover) {
  508. background-color: var(--color-background-darker);
  509. }
  510. &.ui-datepicker-current-day a.ui-state-active,
  511. .ui-state-hover,
  512. .ui-state-focus {
  513. background-color: var(--color-primary);
  514. color: var(--color-primary-text);
  515. font-weight: bold;
  516. }
  517. &.ui-datepicker-week-end:not(.ui-state-disabled) :not(.ui-state-hover),
  518. .ui-priority-secondary:not(.ui-state-hover) {
  519. color: var(--color-text-lighter);
  520. opacity: .8;
  521. }
  522. }
  523. }
  524. }
  525. .ui-datepicker-prev, .ui-datepicker-next {
  526. border: var(--color-border-dark);
  527. background: var(--color-main-background);
  528. }
  529. /* ---- jQuery UI timepicker ---- */
  530. .ui-widget.ui-timepicker {
  531. margin-top: 10px !important;
  532. width: auto !important;
  533. border-radius: var(--border-radius);
  534. z-index: 1600 !important;
  535. .ui-widget-content {
  536. border: none !important;
  537. }
  538. .ui-state-default,
  539. .ui-widget-content .ui-state-default,
  540. .ui-widget-header .ui-state-default {
  541. border: 1px solid transparent;
  542. background: inherit;
  543. }
  544. .ui-widget-header {
  545. padding: 7px;
  546. font-size: 13px;
  547. border: none;
  548. background-color: var(--color-main-background);
  549. color: var(--color-main-text);
  550. .ui-timepicker-title {
  551. line-height: 1;
  552. font-weight: normal;
  553. }
  554. }
  555. /* AM/PM fix */
  556. table.ui-timepicker tr .ui-timepicker-hour-cell:first-child {
  557. margin-left: 30px;
  558. }
  559. .ui-timepicker-table {
  560. th {
  561. font-weight: normal;
  562. color: var(--color-text-lighter);
  563. opacity: .8;
  564. &.periods {
  565. padding: 0;
  566. width: 30px;
  567. line-height: 30px;
  568. }
  569. }
  570. tr:hover {
  571. background-color: inherit;
  572. }
  573. td {
  574. &.ui-timepicker-hour-cell a.ui-state-active,
  575. &.ui-timepicker-minute-cell a.ui-state-active,
  576. .ui-state-hover,
  577. .ui-state-focus {
  578. background-color: var(--color-primary);
  579. color: var(--color-primary-text);
  580. font-weight: bold;
  581. }
  582. &.ui-timepicker-minutes:not(.ui-state-hover) {
  583. color: var(--color-text-lighter);
  584. }
  585. &.ui-timepicker-hours {
  586. border-right: 1px solid var(--color-border);
  587. }
  588. }
  589. }
  590. }
  591. /* ---- jQuery UI datepicker & timepicker global rules ---- */
  592. .ui-widget.ui-datepicker .ui-datepicker-calendar,
  593. .ui-widget.ui-timepicker table.ui-timepicker {
  594. tr {
  595. display: flex;
  596. flex-wrap: nowrap;
  597. justify-content: space-between;
  598. td {
  599. flex: 1 1 auto;
  600. margin: 0;
  601. padding: 2px;
  602. height: 26px;
  603. width: 26px;
  604. display: flex;
  605. align-items: center;
  606. justify-content: center;
  607. > * {
  608. border-radius: 50%;
  609. text-align: center;
  610. font-weight: normal;
  611. color: var(--color-main-text);
  612. display: block;
  613. line-height: 18px;
  614. width: 18px;
  615. height: 18px;
  616. padding: 3px;
  617. font-size: .9em;
  618. }
  619. }
  620. }
  621. }
  622. /* ---- DIALOGS ---- */
  623. #oc-dialog-filepicker-content {
  624. position: relative;
  625. display: flex;
  626. flex-direction:column;
  627. .dirtree {
  628. flex-wrap: wrap;
  629. padding-left: 12px;
  630. padding-right: 0px;
  631. box-sizing: border-box;
  632. div:first-child a {
  633. background-image: var(--icon-home-000);
  634. background-repeat: no-repeat;
  635. background-position: left center;
  636. }
  637. span {
  638. &:not(:last-child) {
  639. cursor: pointer;
  640. }
  641. &:last-child {
  642. font-weight: bold;
  643. }
  644. &:not(:last-child)::after {
  645. content: '>';
  646. padding: 3px;
  647. }
  648. }
  649. }
  650. /* Grid view toggle */
  651. #picker-view-toggle {
  652. position: absolute;
  653. background-color: transparent;
  654. border: none;
  655. margin: 0;
  656. padding: 22px;
  657. opacity: .5;
  658. right: 0;
  659. top: 0;
  660. &:hover,
  661. &:focus {
  662. opacity: 1;
  663. }
  664. }
  665. // keyboard focus
  666. #picker-showgridview:focus + #picker-view-toggle {
  667. opacity: 1;
  668. }
  669. .actions.creatable {
  670. flex-wrap: wrap;
  671. padding: 0px;
  672. box-sizing: border-box;
  673. display: inline-flex;
  674. float: none;
  675. max-height: 36px;
  676. max-width: 36px;
  677. background-color: var(--color-background-dark);
  678. border: 1px solid var(--color-border-dark);
  679. border-radius: var(--border-radius-pill);
  680. position: relative;
  681. left: 15px;
  682. top:3px;
  683. order:1;
  684. .icon.icon-add{
  685. background-image: var(--icon-add-000);
  686. background-size: 16px 16px;
  687. width: 34px;
  688. height: 34px;
  689. margin: 0px;
  690. opacity: 0.5;
  691. }
  692. a {
  693. width: 36px;
  694. padding: 0px;
  695. position: static;
  696. }
  697. .menu {
  698. top:100%;
  699. margin:10px;
  700. margin-left: 1px;
  701. form {
  702. display:flex;
  703. margin:10px;
  704. }
  705. }
  706. }
  707. .filelist-container {
  708. box-sizing: border-box;
  709. display: inline-block;
  710. overflow-y: auto;
  711. flex: 1;
  712. /*height: 100%;*/
  713. /* overflow under the button row */
  714. width: 100%;
  715. overflow-x: hidden;
  716. }
  717. .emptycontent {
  718. color: var(--color-text-maxcontrast);
  719. text-align: center;
  720. margin-top: 80px;
  721. width: 100%;
  722. display: none;
  723. }
  724. .filelist {
  725. background-color: var(--color-main-background);
  726. width: 100%;
  727. }
  728. #picker-filestable.filelist {
  729. /* prevent the filepicker to overflow */
  730. min-width: initial;
  731. margin-bottom: 50px;
  732. thead {
  733. tr {
  734. border-bottom: 1px solid var(--color-border);
  735. background-color: var(--color-main-background);
  736. th {
  737. width: 80%;
  738. border: none;
  739. }
  740. }
  741. }
  742. th .columntitle {
  743. display: block;
  744. padding: 15px;
  745. height: 50px;
  746. box-sizing: border-box;
  747. -moz-box-sizing: border-box;
  748. vertical-align: middle;
  749. }
  750. th .columntitle.name {
  751. padding-left: 5px;
  752. margin-left: 50px;
  753. }
  754. th .sort-indicator {
  755. width: 10px;
  756. height: 8px;
  757. margin-left: 5px;
  758. display: inline-block;
  759. vertical-align: text-bottom;
  760. opacity: .3;
  761. }
  762. .sort-indicator.hidden,
  763. th:hover .sort-indicator.hidden,
  764. th:focus .sort-indicator.hidden {
  765. visibility: hidden;
  766. }
  767. th:hover .sort-indicator.hidden,
  768. th:focus .sort-indicator.hidden {
  769. visibility: visible;
  770. }
  771. td {
  772. padding: 14px;
  773. border-bottom: 1px solid var(--color-border);
  774. }
  775. tr:last-child td {
  776. border-bottom: none;
  777. }
  778. .filename {
  779. overflow: hidden;
  780. white-space: nowrap;
  781. text-overflow: ellipsis;
  782. background-size: 32px;
  783. background-repeat: no-repeat;
  784. padding-left: 51px;
  785. background-position: 7px 7px;
  786. cursor: pointer;
  787. // avoid taking full width
  788. max-width: 0;
  789. .filename-parts {
  790. display: flex;
  791. &__first {
  792. overflow: hidden;
  793. white-space: pre;
  794. text-overflow: ellipsis;
  795. }
  796. &__last {
  797. white-space: pre;
  798. }
  799. }
  800. }
  801. .filesize, .date {
  802. width: 80px;
  803. }
  804. .filesize {
  805. text-align: right;
  806. }
  807. &.view-grid {
  808. $grid-size: 120px;
  809. $grid-pad: 10px;
  810. $name-height: 30px;
  811. display: flex;
  812. flex-direction: column;
  813. tbody {
  814. display: grid;
  815. grid-template-columns: repeat(auto-fill, $grid-size);
  816. justify-content: space-around;
  817. row-gap: 15px;
  818. margin: 15px 0;
  819. tr {
  820. display: block;
  821. position: relative;
  822. border-radius: var(--border-radius);
  823. padding: $grid-pad;
  824. display: flex;
  825. flex-direction: column;
  826. width: $grid-size - 2 * $grid-pad;
  827. td {
  828. border: none;
  829. padding: 0;
  830. text-align: center;
  831. border-radius: var(--border-radius);
  832. &.filename {
  833. padding: #{$grid-size - 2 * $grid-pad} 0 0 0;
  834. background-position: center top;
  835. background-size: contain;
  836. line-height: $name-height;
  837. max-width: none;
  838. .filename-parts {
  839. justify-content: center;
  840. }
  841. }
  842. &.filesize {
  843. line-height: $name-height / 3;
  844. width: 100%;
  845. }
  846. &.date {
  847. display: none;
  848. }
  849. }
  850. }
  851. }
  852. }
  853. }
  854. .filepicker_element_selected {
  855. background-color: var(--color-background-darker);
  856. }
  857. }
  858. .ui-dialog {
  859. position: fixed !important;
  860. }
  861. span.ui-icon {
  862. float: left;
  863. margin: 3px 7px 30px 0;
  864. }
  865. /* ---- CONTACTS MENU ---- */
  866. #contactsmenu {
  867. .menutoggle {
  868. background-size: 16px 16px;
  869. padding: 14px;
  870. cursor: pointer;
  871. &:hover,
  872. &:focus,
  873. &:active {
  874. opacity: 1 !important;
  875. }
  876. }
  877. }
  878. #header .header-right > div#contactsmenu > .menu {
  879. /* show 2.5 to 4.5 entries depending on the screen height */
  880. height: calc(100vh - 50px * 3);
  881. max-height: calc(50px * 4.5 + 50px);
  882. min-height: calc(50px * 3.5);
  883. width: 350px;
  884. .emptycontent {
  885. margin-top: 5vh !important;
  886. margin-bottom: 2vh;
  887. .icon-loading,
  888. .icon-search {
  889. display: inline-block;
  890. }
  891. }
  892. .content {
  893. /* fixed max height of the parent container without the search input */
  894. height: calc(100vh - 50px * 3 - 50px);
  895. max-height: calc(50px * 4.5);
  896. min-height: calc(50px * 3.5 - 50px);
  897. overflow-y: auto;
  898. .footer {
  899. text-align: center;
  900. a {
  901. display: block;
  902. width: 100%;
  903. padding: 12px 0;
  904. opacity: .5;
  905. }
  906. }
  907. }
  908. .contact {
  909. display: flex;
  910. position: relative;
  911. align-items: center;
  912. padding: 3px 3px 3px 10px;
  913. border-bottom: 1px solid var(--color-border);
  914. :last-of-type {
  915. border-bottom: none;
  916. }
  917. .avatar {
  918. height: 32px;
  919. width: 32px;
  920. display: inline-block;
  921. }
  922. .body {
  923. flex-grow: 1;
  924. padding-left: 8px;
  925. div {
  926. position: relative;
  927. width: 100%;
  928. }
  929. .full-name, .last-message {
  930. /* TODO: don't use fixed width */
  931. max-width: 204px;
  932. overflow: hidden;
  933. white-space: nowrap;
  934. text-overflow: ellipsis;
  935. }
  936. .last-message {
  937. opacity: .5;
  938. }
  939. }
  940. .top-action, .second-action, .other-actions {
  941. width: 16px;
  942. height: 16px;
  943. padding: 14px;
  944. opacity: .5;
  945. cursor: pointer;
  946. :hover {
  947. opacity: 1;
  948. }
  949. }
  950. /* actions menu */
  951. .menu {
  952. top: 47px;
  953. margin-right: 13px;
  954. }
  955. .popovermenu::after {
  956. right: 2px;
  957. }
  958. }
  959. }
  960. #contactsmenu-search {
  961. width: calc(100% - 16px);
  962. margin: 8px;
  963. height: 34px;
  964. }
  965. /* ---- TOOLTIPS ---- */
  966. .extra-data {
  967. padding-right: 5px !important;
  968. }
  969. /* ---- TAGS ---- */
  970. #tagsdialog {
  971. .content {
  972. width: 100%;
  973. height: 280px;
  974. }
  975. .scrollarea {
  976. overflow: auto;
  977. border: 1px solid var(--color-background-darker);
  978. width: 100%;
  979. height: 240px;
  980. }
  981. .bottombuttons {
  982. width: 100%;
  983. height: 30px;
  984. * {
  985. float: left;
  986. }
  987. }
  988. .taglist li {
  989. background: var(--color-background-dark);
  990. padding: .3em .8em;
  991. white-space: nowrap;
  992. overflow: hidden;
  993. text-overflow: ellipsis;
  994. -webkit-transition: background-color 500ms;
  995. transition: background-color 500ms;
  996. &:hover, &:active {
  997. background: var(--color-background-darker);
  998. }
  999. }
  1000. .addinput {
  1001. width: 90%;
  1002. clear: both;
  1003. }
  1004. }
  1005. /* ---- BREADCRUMB ---- */
  1006. .breadcrumb {
  1007. display: inline-flex;
  1008. }
  1009. div.crumb {
  1010. display: inline-flex;
  1011. background-image: url('../img/breadcrumb.svg?v=1');
  1012. background-repeat: no-repeat;
  1013. background-position: right center;
  1014. height: 44px;
  1015. background-size: auto 24px;
  1016. flex: 0 0 auto;
  1017. order: 1;
  1018. padding-right: 7px;
  1019. &.crumbmenu {
  1020. order: 2;
  1021. position: relative;
  1022. a {
  1023. opacity: 0.5
  1024. }
  1025. &.canDropChildren,
  1026. &.canDrop {
  1027. .popovermenu {
  1028. display: block;
  1029. }
  1030. }
  1031. // Fix because of the display flex
  1032. .popovermenu {
  1033. top: 100%;
  1034. margin-right: 3px;
  1035. ul {
  1036. max-height: 345px;
  1037. overflow-y: auto;
  1038. overflow-x: hidden;
  1039. padding-right: 5px;
  1040. li.canDrop span:first-child {
  1041. background-image: url('../img/filetypes/folder-drag-accept.svg?v=1') !important;
  1042. }
  1043. }
  1044. .in-breadcrumb {
  1045. display: none;
  1046. }
  1047. }
  1048. }
  1049. &.hidden {
  1050. display: none;
  1051. ~ .crumb {
  1052. order: 3;
  1053. }
  1054. }
  1055. > a,
  1056. > span {
  1057. position: relative;
  1058. padding: 12px;
  1059. opacity: 0.5;
  1060. text-overflow: ellipsis;
  1061. white-space: nowrap;
  1062. overflow: hidden;
  1063. flex: 0 0 auto;
  1064. // Some sane max-width for each folder name
  1065. max-width: 200px;
  1066. &.icon-home,
  1067. &.icon-delete {
  1068. // Hide home text
  1069. text-indent: -9999px;
  1070. }
  1071. }
  1072. > a[class^='icon-'] {
  1073. padding: 0;
  1074. width: 44px;
  1075. }
  1076. &:not(:first-child) a {
  1077. }
  1078. &:last-child {
  1079. font-weight: bold;
  1080. margin-right: 10px;
  1081. // Allow multiple span next to the main 'a'
  1082. a ~ span {
  1083. padding-left: 0;
  1084. }
  1085. }
  1086. &:hover, &:focus, a:focus, &:active {
  1087. opacity: 1;
  1088. > a,
  1089. > span {
  1090. opacity: .7;
  1091. }
  1092. }
  1093. }
  1094. /* some feedback for hover/tap on breadcrumbs */
  1095. .appear {
  1096. opacity: 1;
  1097. -webkit-transition: opacity 500ms ease 0s;
  1098. -moz-transition: opacity 500ms ease 0s;
  1099. -ms-transition: opacity 500ms ease 0s;
  1100. -o-transition: opacity 500ms ease 0s;
  1101. transition: opacity 500ms ease 0s;
  1102. &.transparent {
  1103. opacity: 0;
  1104. }
  1105. }
  1106. /* LEGACY FIX only - do not use fieldsets for settings */
  1107. fieldset {
  1108. &.warning legend, &.update legend {
  1109. top: 18px;
  1110. position: relative;
  1111. }
  1112. &.warning legend + p, &.update legend + p {
  1113. margin-top: 12px;
  1114. }
  1115. }
  1116. /* for IE10 */
  1117. @-ms-viewport {
  1118. width: device-width;
  1119. }
  1120. /* hidden input type=file field */
  1121. .hiddenuploadfield {
  1122. display: none;
  1123. width: 0;
  1124. height: 0;
  1125. opacity: 0;
  1126. }