UNPKG

@skylineos/clsp-player

Version:

Skyline Technology Solutions' CLSP Video Player. Stream video in near-real-time in modern browsers.

278 lines (237 loc) 5.86 kB
/*!******************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js!./src/styles/clsp-player.css ***! \******************************************************************************/ /* A utility class for filling the parent element. */ .clsp-container-fit { display: flex; flex-direction: column; align-content: center; justify-content: center; width: 100%; height: 100%; padding: 0; margin: 0; /* if you see scroll bars, you probably styled something incorrectly */ overflow: auto; } /* This class is automatically added to the element that contains the clsp video element. It is meant to take up the entirety of its parent. */ .clsp-player-container { display: flex; flex-direction: column; align-content: center; justify-content: center; width: 100%; height: 100%; padding: 0; margin: 0; position: relative; background-color: black; overflow: hidden; /* All other video elements are beneath the first, in arbitrary order. NOTE - DO NOT add any styles to the actual video element - additional styles applied to the video tag have the potential to cause significant performance issues */ .clsp-player { z-index: 1; position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: fill; } /* When dealing with tours, we must ensure that the first video element is on top. */ video:first-of-type { z-index: 2 !important; } .clsp-player-loading-animation { border: 6px solid #f3f3f3; /* Light grey */ border-top: 6px solid #3498db; /* Blue */ border-radius: 50%; width: 30px; height: 30px; animation: spin 2s linear infinite; margin: auto; } .clsp-player-error-msg { color: white; margin: auto; } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /*!*********************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js!./demos/advanced-src/shared.css ***! \*********************************************************************************/ * { box-sizing: border-box !important; } html, body { width: 100%; height: 100%; padding: 0; margin: 0; display: flex; flex-direction: column; overflow: auto; border: 1px solid black; background-color: black; } .tour, .headless { display: none !important; } .vjs-poster { background-origin: content-box; padding: 2em; } .header { display: flex; flex-shrink: 0; flex-grow: 0; color: white; align-items: center; justify-content: space-around; padding: 0.5em; & > * { margin: auto; padding: 0 0.5em; text-align: center; } h1 { text-align: center; font-size: 1.5em; } img { width: 50%; } } .page-body { display: flex; flex-direction: column; flex-grow: 1; flex-shrink: 0; section { border: solid 3px black; padding: 5px; padding: 0; display: flex; flex-direction: column; overflow: auto; flex-grow: 1; flex-shrink: 0; & > * { flex-shrink: 0; width: 100%; } .monitor { color: white; display: flex; .summary { width: 100%; display: grid; grid-template-columns: 1fr 2fr 1fr; grid-template-rows: repeat(2, 1fr); grid-auto-flow: column; & > * { padding: 0.5em; margin: auto; } } } .controls { display: flex; flex-direction: column; flex-grow: 1; flex-shrink: 0; padding: 1em; background-color: lightgray; .stream-configs { display: flex; flex-grow: 1; flex-shrink: 0; justify-content: space-between; .stream-config { display: flex; flex-direction: column; flex-grow: 1; flex-shrink: 0; width: 50%; .title { display: flex; justify-content: space-between; input { width: 25%; } } .stream-options { justify-content: start; display: flex; flex-direction: column; align-items: flex-end; } } } .options-actions-container { display: flex; align-items: center; justify-content: flex-end; & > * { margin: 1em; } button { padding: 1em; } } } #videowall, #tourwall { display: grid; grid-template-columns: repeat(4, 1fr); flex-grow: 1; flex-shrink: 0; } .player-container { display: flex; flex-direction: column; justify-content: space-between; padding: 0.25em; border: 2px solid grey; overflow: hidden; .video-stream { display: flex; width: 100%; align-items: center; justify-content: space-between; text-align: center; background-color: black; color: white; .url { padding: 0 0.5em; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; } .close { background-color: red; border-color: red; font-size: 1em; font-weight: bold; color: white; border-radius: 50%; } } .video-container { display: flex; flex-grow: 1; flex-shrink: 0; } } } } /*!*********************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js!./demos/advanced-src/styles.css ***! \*********************************************************************************/