jiti-meet/css/_filmstrip.scss

209 lines
5.3 KiB
SCSS
Raw Normal View History

2016-11-03 15:07:48 +00:00
%align-right {
@include flex();
flex-direction: row-reverse;
flex-wrap: nowrap;
justify-content: flex-start;
}
2016-11-03 14:18:28 +00:00
.filmstrip {
2016-11-03 15:07:48 +00:00
position: absolute;
bottom: 0;
right: 0;
2016-11-03 15:54:23 +00:00
padding: 10px 5px;
2016-11-03 15:07:48 +00:00
@extend %align-right;
z-index: $filmstripVideosZ;
2016-11-03 15:07:48 +00:00
&__toolbar {
2016-11-03 14:18:28 +00:00
@include flex();
2016-11-03 15:07:48 +00:00
flex-direction: column-reverse;
2016-11-03 14:18:28 +00:00
flex-wrap: nowrap;
2016-11-03 15:07:48 +00:00
position: relative;
2017-04-06 18:09:05 +00:00
width: $filmstripToggleButtonWidth;
2016-11-03 15:07:48 +00:00
button {
font-size: 14px;
line-height: 1.2;
text-align: center;
background: transparent;
opacity: 0.7;
height: auto;
width: 100%;
padding: 0;
2016-11-03 15:54:23 +00:00
margin: 0;
2016-11-03 15:07:48 +00:00
border: none;
outline: none;
-webkit-appearance: none;
&:hover {
opacity: 1;
}
i {
cursor: pointer;
}
}
}
2016-11-03 14:18:28 +00:00
2016-11-03 15:07:48 +00:00
&__videos {
@extend %align-right;
position:relative;
padding: 0;
2017-04-06 18:09:05 +00:00
/* The filmstrip should not be covered by the left toolbar. */
2016-11-03 14:18:28 +00:00
bottom: 0;
width:auto;
overflow: visible !important;
&#remoteVideos {
border: $thumbnailsBorder solid transparent;
padding-left: $defaultToolbarSize + 5;
transition: bottom 2s;
WiP(invite-ui): Initial move of invite UI to invite button (#1950) * WiP(invite-ui): Initial move of invite UI to invite button * Adjusts styling to fit both horizontal and vertical filmstrip * Removes comment and functions not needed * [squash] Addressing various review comments * [squash] Move invite options to a separate config * [squash] Adjust invite button styles until we fix the whole UI theme * [squash] Fix the remote videos scroll * [squash]:Do not show popup menu when 1 option is available * [squash]: Disable the invite button in filmstrip mode * feat(connection-indicator): implement automatic hiding on good connection (#2009) * ref(connection-stats): use PropTypes package * feat(connection-stats): display a summary of the connection quality * feat(connection-indicator): show empty bars for interrupted connection * feat(connection-indicator): change background color based on status * feat(connection-indicator): implement automatic hiding on good connection * fix(connection-indicator): explicitly set font size Currently non-react code will set an icon size on ConnectionIndicator. This doesn't work on initial call join in vertical filmstrip after some changes to support hiding the indicator. The chosen fix is passing in the icon size to mirror what would happe with full filmstrip reactification. * ref(connection-stats): rename statuses * feat(connection-indicator): make hiding behavior configurable The original implementation made the auto hiding of the indicator configured in interfaceConfig. * fix(connection-indicator): readd class expected by torture tests * fix(connection-indicator): change connection quality display styling Bold the connection summary in the stats popover so it stands out. Change the summaries so there are only three--strong, nonoptimal, poor. * fix(connection-indicator): gray background on lost connection * feat(icons): add new gsm bars icon * feat(connection-indicator): use new 3-bar icon * ref(icons): remove icon-connection and icon-connection-lost Both have been replaced by icon-gsm-bars so they are not being referenced anymore. Mobile looks to have connect-lost as a separate icon in font-icons/jitsi.json. * fix(defaultToolbarButtons): Fixes unresolved InfoDialogButton component problem * [squash]: Makes invite button fit the container * [squash]:Addressing invite truncate, remote menu position and comment * [squash]:Fix z-index in horizontal mode, z-index in lonely call * [squash]: Fix filmstripOnly property, remove important from css
2017-10-03 16:30:42 +00:00
}
/**
* The local video identifier.
*/
&#filmstripLocalVideo {
bottom: 32px;
display: block;
WiP(invite-ui): Initial move of invite UI to invite button (#1950) * WiP(invite-ui): Initial move of invite UI to invite button * Adjusts styling to fit both horizontal and vertical filmstrip * Removes comment and functions not needed * [squash] Addressing various review comments * [squash] Move invite options to a separate config * [squash] Adjust invite button styles until we fix the whole UI theme * [squash] Fix the remote videos scroll * [squash]:Do not show popup menu when 1 option is available * [squash]: Disable the invite button in filmstrip mode * feat(connection-indicator): implement automatic hiding on good connection (#2009) * ref(connection-stats): use PropTypes package * feat(connection-stats): display a summary of the connection quality * feat(connection-indicator): show empty bars for interrupted connection * feat(connection-indicator): change background color based on status * feat(connection-indicator): implement automatic hiding on good connection * fix(connection-indicator): explicitly set font size Currently non-react code will set an icon size on ConnectionIndicator. This doesn't work on initial call join in vertical filmstrip after some changes to support hiding the indicator. The chosen fix is passing in the icon size to mirror what would happe with full filmstrip reactification. * ref(connection-stats): rename statuses * feat(connection-indicator): make hiding behavior configurable The original implementation made the auto hiding of the indicator configured in interfaceConfig. * fix(connection-indicator): readd class expected by torture tests * fix(connection-indicator): change connection quality display styling Bold the connection summary in the stats popover so it stands out. Change the summaries so there are only three--strong, nonoptimal, poor. * fix(connection-indicator): gray background on lost connection * feat(icons): add new gsm bars icon * feat(connection-indicator): use new 3-bar icon * ref(icons): remove icon-connection and icon-connection-lost Both have been replaced by icon-gsm-bars so they are not being referenced anymore. Mobile looks to have connect-lost as a separate icon in font-icons/jitsi.json. * fix(defaultToolbarButtons): Fixes unresolved InfoDialogButton component problem * [squash]: Makes invite button fit the container * [squash]:Addressing invite truncate, remote menu position and comment * [squash]:Fix z-index in horizontal mode, z-index in lonely call * [squash]: Fix filmstripOnly property, remove important from css
2017-10-03 16:30:42 +00:00
/**
* The invite button style.
*/
.filmstrip__invite {
padding-bottom: 5px;
margin-left: 2px;
}
/**
* The invite button group style.
* TOFIX: use AtlasKit.ButtonGroup if it starts supporting different
* flex grow options for the buttons.
*/
.invite-button-group {
display: inline-flex;
justify-content: space-between;
width: 100%;
& button {
flex-grow: 1;
flex-shrink: 1;
overflow: hidden;
}
& > * {
flex-grow: 0;
flex-shrink: 0;
margin-left: 2px;
}
}
}
2016-11-03 14:18:28 +00:00
&.hidden {
bottom: -196px;
}
.remote-videos-container {
display: flex;
}
2016-11-03 14:18:28 +00:00
.videocontainer {
display: none;
position: relative;
background-size: contain;
border: $thumbnailVideoBorder solid transparent;
2017-01-09 21:32:25 +00:00
border-radius: $borderRadius;
2016-11-03 14:18:28 +00:00
margin: 0 $thumbnailVideoMargin;
&.videoContainerFocused, &:hover {
cursor: hand;
}
/**
2017-04-06 18:09:05 +00:00
* Focused video thumbnail.
*/
2016-11-03 14:18:28 +00:00
&.videoContainerFocused {
transition-duration: 0.5s;
-webkit-transition-duration: 0.5s;
-webkit-animation-name: greyPulse;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: 1;
2016-11-11 16:52:36 +00:00
border: $thumbnailVideoBorder solid $videoThumbnailSelected !important;
2016-11-03 14:18:28 +00:00
box-shadow: inset 0 0 3px $videoThumbnailSelected,
0 0 3px $videoThumbnailSelected !important;
}
.remotevideomenu > .icon-menu {
2016-11-03 19:42:23 +00:00
display: none;
}
.presence-label {
color: $participantNameColor;
font-size: 12px;
font-weight: 100;
left: 0;
margin: 0 auto;
overflow: hidden;
pointer-events: none;
position: absolute;
right: 0;
text-align: center;
text-overflow: ellipsis;
top: calc(50% + 30px);
white-space: nowrap;
width: 100%;
z-index: $zindex3;
}
2016-11-03 14:18:28 +00:00
/**
2017-04-06 18:09:05 +00:00
* Hovered video thumbnail.
*/
2016-11-03 14:18:28 +00:00
&:hover {
cursor: hand;
2016-11-11 16:52:36 +00:00
border: $thumbnailVideoBorder solid $videoThumbnailHovered;
2016-11-03 14:18:28 +00:00
box-shadow: inset 0 0 3px $videoThumbnailHovered,
0 0 3px $videoThumbnailHovered;
2016-11-03 19:42:23 +00:00
.remotevideomenu > .icon-menu {
2016-11-03 19:42:23 +00:00
display: inline-block;
}
2016-11-03 14:18:28 +00:00
}
2017-04-06 18:09:05 +00:00
/* With the TemasysWebRTC plugin <object/> element is used
2016-11-03 14:18:28 +00:00
instead of <video/> */
& > video,
& > object {
cursor: hand;
2017-01-09 21:32:25 +00:00
border-radius: $borderRadius;
2016-11-03 14:18:28 +00:00
object-fit: cover;
overflow: hidden;
}
}
}
2017-04-06 18:09:05 +00:00
/**
* Style the filmstrip videos in filmstrip-only mode.
*/
&__videos-filmstripOnly {
margin-top: auto;
margin-bottom: auto;
.filmstrip__videos {
&#filmstripLocalVideo {
bottom: 0px;
}
}
2017-04-06 18:09:05 +00:00
}
.remote-videos-container {
transition: opacity 1s;
}
&.hide-videos {
.remote-videos-container {
opacity: 0;
pointer-events: none;
}
}
}