You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

312 lines
8.3 KiB

  1. #talkChatTabView .call-button {
  2. text-align: center;
  3. margin-bottom: 10px;
  4. button {
  5. padding-left: 26px;
  6. padding-right: 26px;
  7. }
  8. .icon-loading-small {
  9. /* Prevent the text from being moved when the icon is shown. */
  10. position: absolute;
  11. margin-left: 5px;
  12. margin-top: 1px;
  13. /* Unset the background image set by the server for loading icons inside
  14. * buttons, as in this case the pure CSS icon can be used instead of the
  15. * image. */
  16. background-image: unset;
  17. &.hidden {
  18. display: none;
  19. }
  20. }
  21. }
  22. #talkChatTabView .file-not-shared button {
  23. margin-top: 15px;
  24. }
  25. .talkCallInfoView #call-container-wrapper {
  26. /* Overlap the padding from the sidebar itself to maximize the area of the
  27. * video as much as possible */
  28. margin-left: -15px;
  29. margin-right: -15px;
  30. margin-top: -15px;
  31. }
  32. .talkCallInfoView #call-container-wrapper #emptycontent-icon {
  33. width: 128px;
  34. margin: 0 auto;
  35. padding-bottom: 20px;
  36. }
  37. .talkCallInfoView #call-container-wrapper #call-container.incall ~ #emptycontent {
  38. display: none;
  39. }
  40. .talkCallInfoView #call-container-wrapper #call-container:not(.incall) {
  41. display: none;
  42. }
  43. .talkCallInfoView #call-container-wrapper #call-container {
  44. position: relative;
  45. /* Show the call container in a 16/9 proportion based on the sidebar
  46. * width. This is the same proportion used for previews of images by the
  47. * SidebarPreviewManager. */
  48. padding-bottom: 56.25%;
  49. max-height: 56.25%;
  50. /* Ensure that the background will be black also in voice only calls. */
  51. background-color: #000;
  52. }
  53. /* Video in Talk sidebar */
  54. .talkCallInfoView #call-container-wrapper #videos {
  55. position: absolute;
  56. flex-grow: 1;
  57. }
  58. .talkCallInfoView #call-container-wrapper .videoContainer {
  59. /* The video container has some small padding to prevent the video from
  60. * reaching the edges, but it also uses "width: 100%", so the padding should
  61. * be included in the full width of the element. */
  62. box-sizing: border-box;
  63. }
  64. .talkCallInfoView #call-container-wrapper .videoContainer.promoted video {
  65. /* Base the size of the video on its width instead of on its height;
  66. * otherwise the video could appear in full height but cropped on the sides
  67. * due to the space available in the sidebar being typically larger in
  68. * vertical than in horizontal. */
  69. width: 100%;
  70. height: auto;
  71. }
  72. .talkCallInfoView #call-container-wrapper .nameIndicator {
  73. /* The name indicator has some small padding to prevent the name from
  74. * reaching the edges, but it also uses "width: 100%", so the padding should
  75. * be included in the full width of the element. */
  76. box-sizing: border-box;
  77. }
  78. /* Screensharing in Talk sidebar */
  79. .talkCallInfoView #call-container-wrapper #screens {
  80. display: none;
  81. }
  82. .talkCallInfoView #videos .videoContainer:not(.promoted) video {
  83. /* Make the unpromoted videos smaller to not overlap too much the promoted
  84. * video */
  85. max-height: 100px;
  86. }
  87. /* The avatars are requested with a size of 128px, so reduce it to not overlap
  88. * too much the promoted video */
  89. .talkCallInfoView #videos .videoContainer:not(.promoted) .avatar,
  90. .talkCallInfoView #videos .videoContainer:not(.promoted) .avatar img {
  91. width: 64px !important;
  92. height: 64px !important;
  93. }
  94. .talkCallInfoView .participants-1 .videoView,
  95. .talkCallInfoView .participants-2 .videoView {
  96. /* Do not force the width to 200px, as otherwise the video is too tall and
  97. * overlaps too much with the promoted video. */
  98. min-width: initial;
  99. /* z-index of 10 would put the video on top of the close button. */
  100. z-index: 1;
  101. }
  102. .talkCallInfoView .nameIndicator {
  103. /* Reduce padding to bring the name closer to the bottom */
  104. padding: 3px;
  105. /* Use default font size, as it takes too much space otherwise */
  106. font-size: initial;
  107. }
  108. .talkCallInfoView .participants-2 .videoContainer.promoted + .videoContainer-dummy .nameIndicator {
  109. /* Reduce padding to bring the name closer to the bottom */
  110. padding: 3px 35%;
  111. }
  112. .talkCallInfoView .mediaIndicator {
  113. /* Move the media indicator closer to the bottom */
  114. bottom: 16px;
  115. }
  116. /* Helper class to hide other info views during a call; this makes possible to
  117. * restore their previous visibility once the call stops without having to keep
  118. * track of their previous visibility. */
  119. #app-sidebar .hidden-by-call {
  120. display: none;
  121. }
  122. /* Force the white icon during calls, independent from white/dark mode
  123. * selection, because it is shown on the black calling screen. */
  124. #app-sidebar .icon-close.force-icon-white-in-call.icon-shadow {
  125. background-image: url(icon-color-path('close', 'actions', 'fff', 1, true));
  126. filter: drop-shadow(1px 1px 4px var(--color-box-shadow));
  127. }
  128. /**
  129. * Cascade parent element height to the chat view in the sidebar to limit the
  130. * vertical scroll bar only to the list of messages. Otherwise, the vertical
  131. * scroll bar would be shown for the whole sidebar and everything would be
  132. * moved when scrolling to see overflown messages.
  133. *
  134. * The list of messages should stretch to fill the available space at the bottom
  135. * of the right sidebar, so the height is cascaded using flex boxes.
  136. *
  137. * It is horrible, I know (but better than using JavaScript ;-) ). Please
  138. * improve it if you know how :-)
  139. */
  140. #app-sidebar {
  141. /* Override "display: block" set inline by jQuery. */
  142. display: flex !important;
  143. flex-direction: column;
  144. }
  145. #app-sidebar.disappear {
  146. /* Override "display: flex !important" when the sidebar has to be hidden. */
  147. display: none !important;
  148. }
  149. #app-sidebar .detailFileInfoContainer {
  150. display: flex;
  151. flex-direction: column;
  152. flex-shrink: 0;
  153. }
  154. #app-sidebar .tabsContainer {
  155. display: flex;
  156. flex-direction: column;
  157. flex-grow: 1;
  158. }
  159. #app-sidebar .tab {
  160. display: flex;
  161. flex-direction: column;
  162. flex-grow: 1;
  163. }
  164. #app-sidebar .tabsContainer.with-inner-scroll-bars,
  165. #app-sidebar .tabsContainer.with-inner-scroll-bars .tab {
  166. overflow: hidden;
  167. }
  168. /* Force a minimum height to ensure that the chat view will be at least 300px
  169. * height, even if the info view is large and the screen short; in that case a
  170. * scroll bar will be shown for the sidebar, but even if that looks really bad
  171. * it is better than an unusable chat view. */
  172. #app-sidebar .tabsContainer.force-minimum-height {
  173. min-height: 300px;
  174. }
  175. #app-sidebar .tab.hidden {
  176. display: none;
  177. }
  178. #app-sidebar #chatView {
  179. display: flex;
  180. flex-direction: column;
  181. overflow: hidden;
  182. flex-grow: 1;
  183. }
  184. #app-sidebar #chatView .comments {
  185. overflow-y: auto;
  186. /* Needed for proper calculation of comment positions in the scrolling
  187. container (as otherwise the comment position is calculated with respect
  188. to the closest ancestor with a relative position) */
  189. position: relative;
  190. }
  191. /**
  192. * Place the scroll bar of the message list on the right edge of the sidebar,
  193. * but keeping the padding of the tab view.
  194. *
  195. * The padding must be set on the left too to ensure that the contacts menu
  196. * shown when clicking on an author name does not overflow the tab (as it would
  197. * be hidden).
  198. *
  199. * The bottom padding is removed to extend the chat view to the bottom edge of
  200. * the sidebar.
  201. */
  202. #app-sidebar .tab-chat {
  203. padding-left: 0;
  204. padding-right: 0;
  205. padding-bottom: 0;
  206. }
  207. /* Hack needed to overcome the padding of the tab container and move the scroll
  208. * bar of the messages list to the right border of the sidebar. */
  209. #app-sidebar .tabsContainer.with-inner-scroll-bars .tab {
  210. padding-right: 0px;
  211. }
  212. #app-sidebar .tabsContainer .tab .ui-not-ready-placeholder {
  213. /* Make the placeholder take the full tab height until the UI is ready. */
  214. flex-grow: 1;
  215. }
  216. /* Hide other UI elements when there is a "UI not ready" placeholder. */
  217. #app-sidebar .tabsContainer .tab .ui-not-ready-placeholder ~ div,
  218. /* #chatView needs to be set explicitly to override the display property of
  219. * "#app-sidebar #chatView". */
  220. #app-sidebar .tabsContainer .tab .ui-not-ready-placeholder ~ #chatView {
  221. display: none;
  222. }
  223. #app-sidebar #chatView .comments {
  224. padding-right: 15px;
  225. }
  226. #app-sidebar #chatView .comments .wrapper-background,
  227. #app-sidebar #chatView .comments .wrapper {
  228. /* Padding is not respected in the comment wrapper due to its absolute
  229. * positioning, so it must be set through its position. */
  230. right: 15px;
  231. }
  232. #app-sidebar #chatView .newCommentRow {
  233. /* The details view in the Files app has a bottom padding of 15px, so the
  234. * general bottom margin used for comments should be reduced for the new
  235. * comment form. */
  236. margin-bottom: 5px;
  237. }
  238. #app-sidebar #chatView .newCommentForm {
  239. /* Make room to show the "Add" button when chat is shown in the sidebar. */
  240. margin-right: 44px;
  241. }