UNPKG

@skylineos/clsp-player

Version:

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

222 lines (185 loc) 4.11 kB
/*!************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js!./dist/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/tour-dist/styles.css ***! \******************************************************************************/ * { box-sizing: border-box !important; } html, body, .container-fit { display: flex; flex-direction: column; align-content: center; justify-content: center; width: 100%; height: 100%; padding: 0; margin: 0; overflow: auto; } html { background-color: black; } body { padding: 0.5em; } .header { display: flex; color: white; justify-content: space-around; padding: 0.5em; font-size: 1.5em; flex-grow: 0; flex-shrink: 0; } .header > * { margin: auto; padding: 0 0.5em; text-align: center; } header img { width: 50%; } #page-title { font-size: 1.5em; } .video-container { padding: 0.5em; border: solid 2px white; border-radius: 1em; margin: auto; } #demo-error { display: none; color: white; margin: auto; } .controls { display: flex; width: 50%; margin: 1em auto; justify-content: space-around; } .controls button { padding: 1em 2em; font-size: 1.5em; border-radius: 1em; } h1 { color: white; margin: 0 auto; } h2 { color: white; margin: 0 auto; } h3 { color: white; margin: 0 auto; } #tourSummary { display: flex; justify-content: space-between; padding: 0.5em; color: white; } #tourSummary > * { padding: 0; margin: 0 auto; } #tourSummary { width: 100%; display: grid; grid-template-rows: repeat(2, 1fr); grid-auto-flow: column; } .tour-container { flex-direction: row; } .tour-container > * { width: 50%; } .stream-container { display: flex; flex-direction: column; } .stream-container textarea { flex-grow: 1; flex-shrink: 0; } .stream-container button { padding: 0.5em; } .video-section { display: flex; flex-direction: column; height: 100%; } /*!*****************************************************************************!*\ !*** css ./node_modules/css-loader/dist/cjs.js!./demos/tour-src/styles.css ***! \*****************************************************************************/