[data-component='LocalVideo'] { position: relative; flex: 0 0 auto; TransitionAppear(500ms); +desktop() { height: 220px; width: 220px; border: 2px solid rgba(#fff, 0.5); } +mobile() { height: 180px; width: 180px; border: 2px solid rgba(#fff, 0.5); } &.state-checking { border-color: orange; } &.state-checking { animation: LocalVideo-state-checking .5s infinite linear; } &.state-connected, &.state-completed { border-color: rgba(#49ce3e, 0.9); } &.state-failed, &.state-disconnected, &.state-closed { border-color: rgba(#ff2000, 0.75); } &.active-speaker { border-color: rgba(#fff, 0.9); } > .controls { pointer-events: none; position: absolute; z-index: 10; top: 0; left: 0; right: 0; display: flex; flex-direction: row; justify-content: flex-end; align-items: center; transition-property: opacity; transition-duration: 0.25s; > .control { pointer-events: auto; flex: 0 0 auto; margin: 4px !important; margin-left: 0 !important; height: 32px !important; width: 32px !important; padding: 0 !important; background-color: rgba(#000, 0.25) !important; border-radius: 100%; opacity: 0.8; &:hover { background-color: rgba(#000, 0.85) !important; opacity: 1; } } } > .info { position: absolute; z-index: 10; bottom: 4px; left: 0; right: 0; display: flex; flex-direction: row; justify-content: center; align-items: center; > .peer-id { padding: 4px 14px; font-size: 14px; color: rgba(#fff, 0.75); background: rgba(#000, 0.6); border-radius: 4px; } } } @keyframes LocalVideo-state-checking { 50% { border-color: rgba(orange, 0.9); } }