styles.scss 22 KB

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