mobile.scss 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. /*!
  2. * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
  3. * SPDX-License-Identifier: AGPL-3.0-or-later
  4. */
  5. @use 'variables';
  6. @media only screen and (width < #{variables.$breakpoint-mobile}) {
  7. /* position share dropdown */
  8. #dropdown {
  9. margin-inline-end: 10% !important;
  10. width: 80% !important;
  11. }
  12. /* fix name autocomplete not showing on mobile */
  13. .ui-autocomplete {
  14. z-index: 1000 !important;
  15. }
  16. /* fix error display on smaller screens */
  17. .error-wide {
  18. width: 100%;
  19. margin-inline-start: 0 !important;
  20. box-sizing: border-box;
  21. }
  22. /* APP SIDEBAR TOGGLE and SWIPE ----------------------------------------------*/
  23. #app-navigation:not(.vue) {
  24. transform: translateX(-#{variables.$navigation-width});
  25. position: fixed;
  26. height: var(--body-height);
  27. }
  28. .snapjs-left {
  29. #app-navigation {
  30. transform: translateX(0);
  31. }
  32. }
  33. #app-navigation:not(.hidden) + #app-content {
  34. margin-inline-start: 0;
  35. }
  36. .skip-navigation.skip-content {
  37. inset-inline-start: 3px;
  38. margin-inline-start: 0;
  39. }
  40. /* full width for message list on mobile */
  41. .app-content-list {
  42. background: var(--color-main-background);
  43. flex: 1 1 100%;
  44. // make full height scroll since app-content-details is hidden
  45. max-height: unset;
  46. // ignore 300px default max width
  47. max-width: 100%;
  48. + .app-content-details {
  49. display: none;
  50. }
  51. &.showdetails {
  52. display: none;
  53. + .app-content-details {
  54. display: initial;
  55. }
  56. }
  57. }
  58. /* Show app details page */
  59. #app-content.showdetails {
  60. #app-navigation-toggle {
  61. transform: translateX(-44px);
  62. }
  63. #app-navigation-toggle-back {
  64. position: fixed;
  65. display: inline-block !important;
  66. top: variables.$header-height;
  67. inset-inline-start: 0;
  68. width: 44px;
  69. height: 44px;
  70. z-index: 1050; // above app-content
  71. background-color: rgba(255, 255, 255, .7);
  72. cursor: pointer;
  73. opacity: .6;
  74. transform: rotate(90deg);
  75. }
  76. .app-content-list {
  77. transform: translateX(-100%);
  78. }
  79. }
  80. #app-navigation-toggle {
  81. position: fixed;
  82. display: inline-block !important;
  83. inset-inline-start: 0;
  84. width: 44px;
  85. height: 44px;
  86. z-index: 1050; // above app-content
  87. cursor: pointer;
  88. opacity: 0.6;
  89. }
  90. #app-navigation-toggle:hover,
  91. #app-navigation-toggle:focus {
  92. opacity: 1;
  93. }
  94. /* position controls for apps with app-navigation */
  95. #app-navigation + #app-content .files-controls {
  96. padding-inline-start: 44px;
  97. }
  98. /* .viewer-mode is when text editor, PDF viewer, etc is open */
  99. #body-user .app-files.viewer-mode .files-controls {
  100. padding-inline-start: 0 !important;
  101. }
  102. .app-files.viewer-mode #app-navigation-toggle {
  103. display: none !important;
  104. }
  105. table.multiselect thead {
  106. inset-inline-start: 0 !important;
  107. }
  108. /* prevent overflow in user management controls bar */
  109. #usersearchform {
  110. display: none;
  111. }
  112. #body-settings .files-controls {
  113. min-width: variables.$breakpoint-mobile !important;
  114. }
  115. /* end of media query */
  116. }
  117. @media only screen and (max-width: 480px) {
  118. #header .header-end > div > .menu {
  119. max-width: calc(100vw - 10px);
  120. position: fixed;
  121. &::after {
  122. display: none !important;
  123. }
  124. }
  125. /* Arrow directly child of menutoggle */
  126. #header .header-end > div {
  127. &.openedMenu {
  128. &::after {
  129. display: block;
  130. }
  131. }
  132. &::after {
  133. border: 10px solid transparent;
  134. border-bottom-color: var(--color-main-background);
  135. bottom: 0;
  136. content: ' ';
  137. height: 0;
  138. width: 0;
  139. position: absolute;
  140. pointer-events: none;
  141. inset-inline-end: 15px;
  142. z-index: 2001;
  143. display: none;
  144. }
  145. /* settings need a different offset, since they have a right padding */
  146. &#settings::after {
  147. inset-inline-end: 27px;
  148. }
  149. }
  150. }