/** * CSS styles that are specific to the filmstrip that shows the thumbnail tiles. */ .tile-view { /** * Add a border around the active speaker to make the thumbnail easier to * see. */ .active-speaker { box-shadow: 0 0 5px 3px $videoThumbnailSelected } #filmstripRemoteVideos { align-items: center; box-sizing: border-box; display: flex; flex-direction: column; height: 100%; width: 100vw; } .filmstrip__videos .videocontainer { &:not(.active-speaker), &:hover:not(.active-speaker) { border: none; box-shadow: none; } } #remoteVideos { /** * Height is modified with an inline style in horizontal filmstrip mode * so !important is used to override that. */ height: 100% !important; width: 100%; } .filmstrip { align-items: center; display: flex; height: 100%; justify-content: center; left: 0; position: absolute; top: 0; width: 100%; @media (min-width: 581px) { &.shift-right { margin-left: $sidebarWidth; width: calc(100% - #{$sidebarWidth}); #filmstripRemoteVideos { width: calc(100vw - #{$sidebarWidth}); } } } } /** * Regardless of the user setting, do not let the filmstrip be in a hidden * state. */ .filmstrip__videos.hidden { display: block; } #filmstripRemoteVideos { box-sizing: border-box; /** * Allow vertical scrolling of the thumbnails. */ overflow-x: hidden; overflow-y: auto; } /** * The size of the thumbnails should be set with javascript, based on * desired column count and window width. The rows are created using flex * and allowing the thumbnails to wrap. */ #filmstripRemoteVideosContainer { align-content: center; align-items: center; box-sizing: border-box; display: flex; flex-wrap: wrap; flex-shrink: 0; margin-top: auto; margin-bottom: auto; justify-content: center; .videocontainer { border: 0; box-sizing: border-box; display: block; margin: 2px; } video { object-fit: contain; } /** * Max-width corresponding to the ASPECT_RATIO_BREAKPOINT from features/filmstrip/constants. */ @media only screen and (max-width: 500px) { video { object-fit: cover; } } } .has-overflow#filmstripRemoteVideosContainer { align-content: baseline; } .has-overflow .videocontainer { align-self: baseline; } } .shift-right #filmstripRemoteVideosContainer { /** * Max-width corresponding to the ASPECT_RATIO_BREAKPOINT from features/filmstrip/constants, * from which we subtract the chat size. */ @media only screen and (max-width: calc(500px + #{$sidebarWidth})) { video { object-fit: cover; } } }