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.

_filmstrip.scss 5.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. %align-right {
  2. @include flex();
  3. flex-direction: row-reverse;
  4. flex-wrap: nowrap;
  5. justify-content: flex-start;
  6. }
  7. .use-new-toolbox {
  8. .filmstrip.reduce-height {
  9. bottom: $newToolbarSize;
  10. }
  11. .filmstrip {
  12. transition: bottom .3s;
  13. }
  14. .filmstrip__videos.hidden {
  15. bottom: calc(-196px - #{$newToolbarSize});
  16. }
  17. }
  18. .filmstrip {
  19. position: absolute;
  20. bottom: 0;
  21. right: 0;
  22. padding: 10px 5px;
  23. @extend %align-right;
  24. z-index: $filmstripVideosZ;
  25. &__toolbar {
  26. @include flex();
  27. flex-direction: column-reverse;
  28. flex-wrap: nowrap;
  29. position: relative;
  30. width: $filmstripToggleButtonWidth;
  31. button {
  32. font-size: 14px;
  33. line-height: 1.2;
  34. text-align: center;
  35. background: transparent;
  36. opacity: 0.7;
  37. height: auto;
  38. width: 100%;
  39. padding: 0;
  40. margin: 0;
  41. border: none;
  42. outline: none;
  43. -webkit-appearance: none;
  44. &:hover {
  45. opacity: 1;
  46. }
  47. i {
  48. cursor: pointer;
  49. }
  50. }
  51. }
  52. &__videos {
  53. @extend %align-right;
  54. position:relative;
  55. padding: 0;
  56. /* The filmstrip should not be covered by the left toolbar. */
  57. bottom: 0;
  58. width:auto;
  59. overflow: visible !important;
  60. &#remoteVideos {
  61. border: $thumbnailsBorder solid transparent;
  62. padding-left: $defaultToolbarSize + 5;
  63. transition: bottom 2s;
  64. }
  65. /**
  66. * The local video identifier.
  67. */
  68. &#filmstripLocalVideo {
  69. align-self: flex-end;
  70. display: block;
  71. /**
  72. * The invite button style.
  73. */
  74. .filmstrip__invite {
  75. padding-bottom: 5px;
  76. margin-left: 2px;
  77. }
  78. /**
  79. * The invite button group style.
  80. * TOFIX: use AtlasKit.ButtonGroup if it starts supporting different
  81. * flex grow options for the buttons.
  82. */
  83. .invite-button-group {
  84. display: inline-flex;
  85. justify-content: space-between;
  86. width: 100%;
  87. & button {
  88. flex-grow: 1;
  89. flex-shrink: 1;
  90. overflow: hidden;
  91. }
  92. & > * {
  93. flex-grow: 0;
  94. flex-shrink: 0;
  95. margin-left: 2px;
  96. }
  97. }
  98. }
  99. &.hidden {
  100. bottom: -196px;
  101. }
  102. .remote-videos-container {
  103. display: flex;
  104. }
  105. .videocontainer {
  106. display: none;
  107. position: relative;
  108. background-size: contain;
  109. border: $thumbnailVideoBorder solid transparent;
  110. border-radius: $borderRadius;
  111. margin: 0 $thumbnailVideoMargin;
  112. &.videoContainerFocused, &:hover {
  113. cursor: hand;
  114. }
  115. /**
  116. * Focused video thumbnail.
  117. */
  118. &.videoContainerFocused {
  119. transition-duration: 0.5s;
  120. -webkit-transition-duration: 0.5s;
  121. -webkit-animation-name: greyPulse;
  122. -webkit-animation-duration: 2s;
  123. -webkit-animation-iteration-count: 1;
  124. border: $thumbnailVideoBorder solid $videoThumbnailSelected !important;
  125. box-shadow: inset 0 0 3px $videoThumbnailSelected,
  126. 0 0 3px $videoThumbnailSelected !important;
  127. }
  128. .remotevideomenu > .icon-menu {
  129. display: none;
  130. }
  131. .presence-label {
  132. color: $participantNameColor;
  133. font-size: 12px;
  134. font-weight: 100;
  135. left: 0;
  136. margin: 0 auto;
  137. overflow: hidden;
  138. pointer-events: none;
  139. position: absolute;
  140. right: 0;
  141. text-align: center;
  142. text-overflow: ellipsis;
  143. top: calc(50% + 30px);
  144. white-space: nowrap;
  145. width: 100%;
  146. z-index: $zindex3;
  147. }
  148. /**
  149. * Hovered video thumbnail.
  150. */
  151. &:hover {
  152. cursor: hand;
  153. border: $thumbnailVideoBorder solid $videoThumbnailHovered;
  154. box-shadow: inset 0 0 3px $videoThumbnailHovered,
  155. 0 0 3px $videoThumbnailHovered;
  156. .remotevideomenu > .icon-menu {
  157. display: inline-block;
  158. }
  159. }
  160. /* With the TemasysWebRTC plugin <object/> element is used
  161. instead of <video/> */
  162. & > video,
  163. & > object {
  164. cursor: hand;
  165. border-radius: $borderRadius;
  166. object-fit: cover;
  167. overflow: hidden;
  168. }
  169. }
  170. }
  171. /**
  172. * Style the filmstrip videos in filmstrip-only mode.
  173. */
  174. &__videos-filmstripOnly {
  175. margin-top: auto;
  176. margin-bottom: auto;
  177. .filmstrip__videos {
  178. &#filmstripLocalVideo {
  179. bottom: 0px;
  180. }
  181. }
  182. }
  183. .remote-videos-container {
  184. transition: opacity 1s;
  185. }
  186. &.hide-videos {
  187. .remote-videos-container {
  188. opacity: 0;
  189. pointer-events: none;
  190. }
  191. }
  192. }