2020-04-01 20:43:50 +02:00
|
|
|
.file-page {
|
2020-04-14 01:48:11 +02:00
|
|
|
.file-page__video-container + .card,
|
2020-04-01 20:43:50 +02:00
|
|
|
.file-render + .card,
|
|
|
|
.content__cover + .card,
|
|
|
|
.card + .file-render,
|
2020-04-14 01:48:11 +02:00
|
|
|
.card + .file-page__video-container,
|
2020-04-01 20:43:50 +02:00
|
|
|
.card + .content__cover {
|
2021-04-23 21:59:48 +02:00
|
|
|
margin-top: var(--spacing-m);
|
2020-04-01 20:43:50 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
.card + .file-render {
|
2021-04-23 21:59:48 +02:00
|
|
|
margin-top: var(--spacing-m);
|
2020-04-01 20:43:50 +02:00
|
|
|
}
|
|
|
|
|
2021-03-12 17:18:09 +01:00
|
|
|
.file-page__md {
|
|
|
|
.file-viewer--document {
|
|
|
|
margin-top: var(--spacing-l);
|
2020-10-05 20:54:51 +02:00
|
|
|
|
2021-03-12 17:18:09 +01:00
|
|
|
@media (min-width: $breakpoint-small) {
|
|
|
|
margin-top: var(--spacing-xl);
|
2020-10-05 20:54:51 +02:00
|
|
|
}
|
2021-06-03 12:14:41 +02:00
|
|
|
|
|
|
|
.button {
|
|
|
|
display: inline;
|
|
|
|
|
|
|
|
.button__content {
|
|
|
|
display: inline;
|
|
|
|
}
|
|
|
|
}
|
2021-06-21 20:22:54 +02:00
|
|
|
|
|
|
|
.claim-link {
|
|
|
|
.button {
|
|
|
|
display: block;
|
2021-06-11 08:06:29 +02:00
|
|
|
|
2021-06-21 20:22:54 +02:00
|
|
|
.button__content {
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-04-01 20:43:50 +02:00
|
|
|
}
|
|
|
|
|
2021-03-11 18:08:11 +01:00
|
|
|
.media__actions {
|
|
|
|
justify-content: center;
|
|
|
|
}
|
2020-04-01 20:43:50 +02:00
|
|
|
|
2021-03-11 18:08:11 +01:00
|
|
|
.file-page__secondary-content {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
padding: 0 var(--spacing-m);
|
2020-04-01 20:43:50 +02:00
|
|
|
}
|
|
|
|
}
|
2020-08-10 22:47:39 +02:00
|
|
|
|
2020-09-02 22:08:37 +02:00
|
|
|
> * {
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
2020-08-10 22:47:39 +02:00
|
|
|
@media (max-width: $breakpoint-medium) {
|
|
|
|
flex-direction: column;
|
|
|
|
}
|
2020-04-01 20:43:50 +02:00
|
|
|
}
|
|
|
|
|
2018-06-15 02:19:21 +02:00
|
|
|
.file-render {
|
2019-08-13 07:35:13 +02:00
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
2019-04-27 23:32:47 +02:00
|
|
|
z-index: 1;
|
2018-06-15 02:19:21 +02:00
|
|
|
overflow: hidden;
|
2019-11-14 18:23:42 +01:00
|
|
|
max-height: var(--inline-player-max-height);
|
2020-10-20 19:10:02 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
.file-render--video {
|
2021-01-04 16:12:46 +01:00
|
|
|
background-color: black;
|
|
|
|
|
2020-10-20 19:10:02 +02:00
|
|
|
&:after {
|
|
|
|
content: '';
|
|
|
|
position: absolute;
|
|
|
|
background-color: black;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
bottom: 0;
|
|
|
|
z-index: 2;
|
|
|
|
animation: fadeInFromBlack 2s ease;
|
|
|
|
opacity: 0;
|
|
|
|
pointer-events: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes fadeInFromBlack {
|
|
|
|
0% {
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
opacity: 0;
|
|
|
|
}
|
2020-04-14 01:48:11 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
.file-render--embed {
|
|
|
|
border-radius: 0;
|
|
|
|
position: fixed;
|
|
|
|
max-height: none;
|
2018-07-27 02:24:00 +02:00
|
|
|
}
|
|
|
|
|
2021-07-19 08:26:00 +02:00
|
|
|
.file-render--img-container {
|
|
|
|
width: 100%;
|
|
|
|
aspect-ratio: 16 / 9;
|
|
|
|
}
|
|
|
|
|
2021-07-21 15:34:46 +02:00
|
|
|
.file-render--post-container {
|
|
|
|
min-height: 30vh;
|
|
|
|
}
|
|
|
|
|
2020-04-01 21:36:59 +02:00
|
|
|
.file-render__header {
|
|
|
|
display: flex;
|
|
|
|
justify-content: space-between;
|
|
|
|
flex-wrap: wrap;
|
|
|
|
}
|
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.file-viewer {
|
2018-07-27 02:24:00 +02:00
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
2018-10-17 19:14:24 +02:00
|
|
|
|
2018-07-27 02:24:00 +02:00
|
|
|
iframe,
|
2019-02-22 06:01:59 +01:00
|
|
|
webview,
|
2019-08-06 05:25:33 +02:00
|
|
|
img {
|
2018-06-15 02:19:21 +02:00
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
2019-08-06 05:25:33 +02:00
|
|
|
object-fit: contain;
|
2020-04-14 11:46:55 +02:00
|
|
|
max-height: var(--inline-player-max-height);
|
2019-02-28 23:51:33 +01:00
|
|
|
}
|
2019-11-22 22:13:00 +01:00
|
|
|
video {
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
2020-11-16 18:19:52 +01:00
|
|
|
.video-js.vjs-user-inactive.vjs-playing {
|
2020-01-09 05:19:04 +01:00
|
|
|
video {
|
|
|
|
cursor: none;
|
|
|
|
}
|
|
|
|
}
|
2018-07-27 02:24:00 +02:00
|
|
|
}
|
|
|
|
|
2020-04-26 03:55:23 +02:00
|
|
|
.file-render__viewer--comic {
|
|
|
|
position: relative;
|
|
|
|
overflow: hidden;
|
|
|
|
.comic-viewer {
|
|
|
|
width: 100%;
|
2020-06-01 19:03:19 +02:00
|
|
|
height: calc(100vh - var(--header-height) - var(--spacing-m) * 2);
|
2020-04-26 03:55:23 +02:00
|
|
|
max-height: var(--inline-player-max-height);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.file-viewer--iframe {
|
2020-04-01 20:43:50 +02:00
|
|
|
display: flex; /*this eliminates extra height from whitespace, if someone edits this with a better technique, tell Jeremy*/
|
|
|
|
/*
|
|
|
|
ideally iframes would dynamiclly grow, see <IframeReact> for a start at this
|
|
|
|
for now, since we don't know size, let's make as large as we can without being larger than available area
|
|
|
|
*/
|
|
|
|
iframe {
|
2020-06-01 19:03:19 +02:00
|
|
|
height: calc(100vh - var(--header-height) - var(--spacing-m) * 2);
|
2018-10-17 19:14:24 +02:00
|
|
|
}
|
2018-07-27 02:24:00 +02:00
|
|
|
}
|
|
|
|
|
2020-04-25 10:24:42 +02:00
|
|
|
.file-render__viewer--three {
|
|
|
|
position: relative;
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
|
|
.three-viewer {
|
2020-06-01 19:03:19 +02:00
|
|
|
height: calc(100vh - var(--header-height) - var(--spacing-m) * 2);
|
2020-04-26 07:17:13 +02:00
|
|
|
max-height: var(--inline-player-max-height);
|
2020-04-25 10:24:42 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.file-viewer__overlay {
|
|
|
|
position: absolute;
|
|
|
|
left: auto;
|
|
|
|
right: auto;
|
|
|
|
height: 100%;
|
|
|
|
width: 100%;
|
|
|
|
z-index: 2;
|
|
|
|
color: var(--color-white);
|
|
|
|
font-size: var(--font-body); /* put back font size from videojs change*/
|
|
|
|
|
|
|
|
background-color: rgba(0, 0, 0, 0.9);
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
2020-06-01 19:03:19 +02:00
|
|
|
padding: var(--spacing-l);
|
2020-04-14 01:48:11 +02:00
|
|
|
|
|
|
|
@media (max-width: $breakpoint-small) {
|
|
|
|
font-size: var(--font-small);
|
|
|
|
}
|
|
|
|
|
|
|
|
.button--uri-indicator,
|
|
|
|
.button--link {
|
|
|
|
color: var(--color-white);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-09-15 17:28:45 +02:00
|
|
|
.file-viewer_embed-ended-title {
|
2021-09-21 17:48:05 +02:00
|
|
|
max-width: 100%;
|
|
|
|
p {
|
|
|
|
font-size: 6vh;
|
|
|
|
white-space: pre-wrap;
|
|
|
|
}
|
2021-09-15 17:28:45 +02:00
|
|
|
}
|
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.content__viewer--floating {
|
|
|
|
.file-viewer__overlay-title,
|
|
|
|
.file-viewer__overlay-secondary {
|
|
|
|
overflow: hidden;
|
|
|
|
white-space: nowrap;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
max-width: 100%;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@media (max-width: $breakpoint-small) {
|
|
|
|
.file-viewer__overlay-title,
|
|
|
|
.file-viewer__overlay-secondary {
|
|
|
|
overflow: hidden;
|
|
|
|
white-space: nowrap;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
max-width: 100%;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.file-viewer__overlay-title {
|
|
|
|
text-align: center;
|
|
|
|
font-size: var(--font-large);
|
2020-06-01 19:03:19 +02:00
|
|
|
margin-bottom: var(--spacing-m);
|
2020-04-14 01:48:11 +02:00
|
|
|
}
|
|
|
|
.file-viewer__overlay-secondary {
|
|
|
|
color: var(--color-text-subtitle);
|
2020-06-01 19:03:19 +02:00
|
|
|
margin-bottom: var(--spacing-m);
|
2020-04-14 01:48:11 +02:00
|
|
|
}
|
|
|
|
.file-viewer__overlay-actions {
|
|
|
|
.button + .button {
|
2020-06-01 19:03:19 +02:00
|
|
|
margin-left: var(--spacing-m);
|
2020-04-14 01:48:11 +02:00
|
|
|
}
|
2021-09-21 17:48:05 +02:00
|
|
|
|
|
|
|
.button--link {
|
|
|
|
vertical-align: middle;
|
|
|
|
}
|
2020-04-14 01:48:11 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
.file-viewer__overlay-logo {
|
|
|
|
color: var(--color-white);
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
|
|
.icon {
|
|
|
|
height: 30px;
|
|
|
|
stroke-width: 5px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-22 22:47:10 +02:00
|
|
|
.file-viewer--is-playing:not(:hover) .file-viewer__embedded-header {
|
2020-04-14 01:48:11 +02:00
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
2020-05-22 22:47:10 +02:00
|
|
|
.file-viewer__embedded-header {
|
2020-04-14 01:48:11 +02:00
|
|
|
position: absolute;
|
2020-04-29 20:35:55 +02:00
|
|
|
display: flex;
|
|
|
|
justify-content: space-between;
|
2020-04-14 01:48:11 +02:00
|
|
|
width: 100%;
|
|
|
|
top: 0;
|
2020-10-20 19:10:02 +02:00
|
|
|
opacity: 1;
|
2020-04-14 01:48:11 +02:00
|
|
|
z-index: 2;
|
|
|
|
font-size: var(--font-large);
|
|
|
|
overflow-x: hidden;
|
2020-10-20 19:10:02 +02:00
|
|
|
overflow-y: hidden;
|
2020-04-14 01:48:11 +02:00
|
|
|
text-overflow: ellipsis;
|
|
|
|
white-space: nowrap;
|
2020-10-20 19:10:02 +02:00
|
|
|
border-top-left-radius: var(--border-radius);
|
|
|
|
border-top-right-radius: var(--border-radius);
|
2020-04-29 20:35:55 +02:00
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.button {
|
2020-06-01 19:03:19 +02:00
|
|
|
padding: var(--spacing-s);
|
2020-04-14 01:48:11 +02:00
|
|
|
color: var(--color-white);
|
2020-10-20 19:10:02 +02:00
|
|
|
z-index: 2;
|
2020-04-29 20:35:55 +02:00
|
|
|
|
2020-04-30 17:01:11 +02:00
|
|
|
.button__label {
|
|
|
|
white-space: nowrap;
|
|
|
|
}
|
|
|
|
|
2020-04-29 22:50:06 +02:00
|
|
|
&:hover {
|
|
|
|
color: var(--color-white);
|
|
|
|
}
|
2020-05-22 22:47:10 +02:00
|
|
|
}
|
2020-04-29 22:50:06 +02:00
|
|
|
|
2020-05-22 22:47:10 +02:00
|
|
|
.credit-amount,
|
|
|
|
.icon--Key {
|
2020-06-01 19:03:19 +02:00
|
|
|
margin-right: var(--spacing-m);
|
2020-05-22 22:47:10 +02:00
|
|
|
}
|
2020-10-05 20:54:51 +02:00
|
|
|
|
|
|
|
@media (min-width: $breakpoint-small) {
|
|
|
|
padding: 0 var(--spacing-l);
|
|
|
|
}
|
2020-05-22 22:47:10 +02:00
|
|
|
}
|
2020-04-30 17:01:11 +02:00
|
|
|
|
2020-10-20 19:10:02 +02:00
|
|
|
.file-viewer__embedded-gradient {
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
z-index: 2;
|
|
|
|
background: linear-gradient(#000000, #00000000 70%);
|
|
|
|
height: 75px;
|
|
|
|
z-index: 1;
|
|
|
|
}
|
|
|
|
|
2020-05-22 22:47:10 +02:00
|
|
|
.file-viewer__embedded-title {
|
|
|
|
max-width: 75%;
|
2020-10-20 19:10:02 +02:00
|
|
|
z-index: 2;
|
2021-09-18 16:23:30 +02:00
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
padding-left: var(--spacing-s);
|
|
|
|
color: white;
|
2020-05-22 22:47:10 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
.file-viewer__embedded-info {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
font-size: var(--font-small);
|
2020-06-01 19:03:19 +02:00
|
|
|
margin-left: var(--spacing-m);
|
2020-05-22 22:47:10 +02:00
|
|
|
white-space: nowrap;
|
2020-10-05 20:54:51 +02:00
|
|
|
position: relative;
|
|
|
|
overflow: hidden;
|
2020-05-22 22:47:10 +02:00
|
|
|
|
|
|
|
& > *:not(:last-child) {
|
2020-06-01 19:03:19 +02:00
|
|
|
margin-right: var(--spacing-s);
|
2020-04-14 01:48:11 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-08-13 07:35:13 +02:00
|
|
|
.file-render__content {
|
2018-07-28 03:42:35 +02:00
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
2018-10-17 19:14:24 +02:00
|
|
|
overflow: auto;
|
2020-02-28 04:44:24 +01:00
|
|
|
max-width: 100vw;
|
2018-07-28 03:42:35 +02:00
|
|
|
}
|
|
|
|
|
2019-08-13 07:35:13 +02:00
|
|
|
//
|
|
|
|
// Custom viewers live below here
|
2019-10-13 19:41:51 +02:00
|
|
|
// These either have custom class names that can't be changed or have styles that need to be overridden
|
2019-08-13 07:35:13 +02:00
|
|
|
//
|
|
|
|
|
2018-10-17 19:14:24 +02:00
|
|
|
// Code-viewer
|
2019-08-13 07:35:13 +02:00
|
|
|
.CodeMirror {
|
|
|
|
@extend .file-render__content;
|
2018-07-27 02:24:00 +02:00
|
|
|
|
2018-10-17 19:14:24 +02:00
|
|
|
.cm-invalidchar {
|
|
|
|
display: none;
|
2018-07-27 02:24:00 +02:00
|
|
|
}
|
|
|
|
|
2018-07-28 03:42:35 +02:00
|
|
|
.CodeMirror .CodeMirror-lines {
|
2018-10-17 19:14:24 +02:00
|
|
|
// is there really a .CodeMirror inside a .CodeMirror?
|
2020-06-01 19:03:19 +02:00
|
|
|
padding: var(--spacing-s) 0;
|
2018-07-28 03:42:35 +02:00
|
|
|
}
|
|
|
|
|
2018-10-17 19:14:24 +02:00
|
|
|
.CodeMirror-code {
|
2021-05-20 21:31:14 +02:00
|
|
|
@include font-sans;
|
2018-12-19 06:44:53 +01:00
|
|
|
letter-spacing: 0.1rem;
|
2018-07-27 02:24:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
.CodeMirror-gutters {
|
2019-12-09 18:25:13 +01:00
|
|
|
background-color: var(--color-gray-1);
|
|
|
|
border-right: 1px solid var(--color-gray-4);
|
2020-06-01 19:03:19 +02:00
|
|
|
padding-right: var(--spacing-m);
|
2018-07-27 02:24:00 +02:00
|
|
|
}
|
|
|
|
|
2018-10-17 19:14:24 +02:00
|
|
|
.CodeMirror-line {
|
2020-06-01 19:03:19 +02:00
|
|
|
padding-left: var(--spacing-m);
|
2018-10-17 19:14:24 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
.CodeMirror-linenumber {
|
2019-12-09 18:25:13 +01:00
|
|
|
color: var(--color-gray-5);
|
2018-07-27 02:24:00 +02:00
|
|
|
}
|
|
|
|
}
|
2019-08-06 05:25:33 +02:00
|
|
|
|
2020-12-14 17:40:59 +01:00
|
|
|
// ****************************************************************************
|
|
|
|
// Video
|
|
|
|
// ****************************************************************************
|
|
|
|
|
2021-12-08 05:09:54 +01:00
|
|
|
// DRY: we'll soon move vjs items to videojs.scss, so just duplicate these for now.
|
2021-12-09 09:12:33 +01:00
|
|
|
$control-bar-height: 2.5rem;
|
2021-12-08 05:09:54 +01:00
|
|
|
$control-bar-font-size: 0.8rem;
|
|
|
|
$control-bar-popup-font-size: 0.8rem;
|
2021-12-09 09:12:33 +01:00
|
|
|
$control-bar-icon-size: 0.8rem;
|
2021-12-08 05:09:54 +01:00
|
|
|
|
2020-04-16 23:43:09 +02:00
|
|
|
.video-js-parent {
|
2019-08-06 05:25:33 +02:00
|
|
|
height: 100%;
|
|
|
|
width: 100%;
|
2020-04-16 23:43:09 +02:00
|
|
|
}
|
2019-08-06 05:25:33 +02:00
|
|
|
|
2020-04-16 23:43:09 +02:00
|
|
|
// By default no video js play button
|
|
|
|
.vjs-big-play-button {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.video-js {
|
|
|
|
height: 100%;
|
|
|
|
width: 100%;
|
2019-08-14 20:09:45 +02:00
|
|
|
|
|
|
|
.vjs-modal-dialog .vjs-modal-dialog-content {
|
|
|
|
position: relative;
|
|
|
|
padding-top: 5rem;
|
|
|
|
// Make sure no videojs message interferes with overlaying buttons
|
|
|
|
pointer-events: none;
|
|
|
|
}
|
2020-04-23 06:21:07 +02:00
|
|
|
|
2021-12-09 09:12:33 +01:00
|
|
|
// control-bar: time
|
2020-04-23 06:21:07 +02:00
|
|
|
.vjs-control-bar {
|
2021-12-08 04:32:13 +01:00
|
|
|
.vjs-time-control {
|
|
|
|
line-height: $control-bar-height;
|
|
|
|
font-size: $control-bar-font-size;
|
2021-12-09 09:12:33 +01:00
|
|
|
display: flex;
|
2021-12-08 04:32:13 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
.vjs-current-time {
|
2021-12-09 09:12:33 +01:00
|
|
|
padding-right: 0;
|
2021-12-08 04:32:13 +01:00
|
|
|
margin-right: 0.4rem;
|
2021-12-09 09:12:33 +01:00
|
|
|
@media (max-width: $breakpoint-small) {
|
|
|
|
margin-right: 0.2rem;
|
|
|
|
}
|
2021-12-08 04:32:13 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
.vjs-time-divider {
|
|
|
|
min-width: unset;
|
|
|
|
padding: 0;
|
|
|
|
z-index: 0; // solves the grayed-out divider
|
|
|
|
}
|
|
|
|
|
2020-04-23 06:21:07 +02:00
|
|
|
.vjs-duration {
|
2021-12-09 09:12:33 +01:00
|
|
|
padding-left: 0;
|
2021-12-08 04:32:13 +01:00
|
|
|
margin-left: 0.4rem;
|
2021-12-09 09:12:33 +01:00
|
|
|
@media (max-width: $breakpoint-small) {
|
|
|
|
margin-left: 0.2rem;
|
|
|
|
}
|
2020-04-23 06:21:07 +02:00
|
|
|
}
|
2021-12-09 09:12:33 +01:00
|
|
|
}
|
2021-12-08 05:09:54 +01:00
|
|
|
|
2021-12-09 09:12:33 +01:00
|
|
|
// control-bar: menu, button and icon
|
|
|
|
.vjs-control-bar {
|
2021-12-08 05:09:54 +01:00
|
|
|
.vjs-menu-button {
|
|
|
|
font-size: $control-bar-font-size;
|
|
|
|
line-height: $control-bar-height;
|
|
|
|
}
|
|
|
|
|
|
|
|
.vjs-icon-placeholder {
|
|
|
|
font-size: $control-bar-icon-size; // videojs icon font
|
|
|
|
line-height: $control-bar-height;
|
|
|
|
}
|
|
|
|
|
2021-12-08 17:25:27 +01:00
|
|
|
.vjs-icon-placeholder::before {
|
|
|
|
line-height: $control-bar-height;
|
|
|
|
}
|
|
|
|
|
2021-12-08 05:09:54 +01:00
|
|
|
.vjs-quality-selector {
|
|
|
|
.vjs-icon-placeholder {
|
2021-12-09 09:12:33 +01:00
|
|
|
font-size: $control-bar-font-size;
|
2021-12-08 05:09:54 +01:00
|
|
|
}
|
|
|
|
}
|
2021-12-08 17:25:27 +01:00
|
|
|
|
2021-12-09 09:12:33 +01:00
|
|
|
.vjs-play-control,
|
|
|
|
.vjs-fullscreen-control {
|
2021-12-08 17:25:27 +01:00
|
|
|
.vjs-icon-placeholder {
|
2021-12-09 09:12:33 +01:00
|
|
|
// Compensate: these icons in Font VideoJs are smaller than their peers.
|
2021-12-08 17:25:27 +01:00
|
|
|
font-size: calc(#{$control-bar-icon-size} * 1.2);
|
|
|
|
}
|
|
|
|
}
|
2021-12-09 09:12:33 +01:00
|
|
|
|
|
|
|
.vjs-playback-rate {
|
|
|
|
.vjs-playback-rate-value {
|
|
|
|
font-size: $control-bar-font-size;
|
|
|
|
line-height: $control-bar-height;
|
|
|
|
}
|
|
|
|
|
|
|
|
.vjs-menu {
|
|
|
|
width: 10em; // Extend the width to prevent a potential scrollbar from blocking the text.
|
|
|
|
left: -3em; // Center the popup on top of the button that invoked it.
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// control-bar: general padding
|
|
|
|
.vjs-control-bar {
|
|
|
|
.vjs-button--play-previous:first-child,
|
|
|
|
.vjs-play-control:first-child {
|
|
|
|
margin-left: var(--spacing-xs);
|
|
|
|
@media (max-width: $breakpoint-small) {
|
|
|
|
margin-left: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.vjs-fullscreen-control {
|
|
|
|
margin-right: var(--spacing-xs);
|
|
|
|
@media (max-width: $breakpoint-small) {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.vjs-button--play-previous,
|
|
|
|
.vjs-button--play-next,
|
|
|
|
.vjs-mute-control {
|
|
|
|
@media (max-width: $breakpoint-small) {
|
|
|
|
width: 2.25rem;
|
|
|
|
}
|
|
|
|
}
|
2020-04-23 06:21:07 +02:00
|
|
|
}
|
2020-10-20 19:10:02 +02:00
|
|
|
|
|
|
|
.vjs-picture-in-picture-control {
|
|
|
|
display: none;
|
|
|
|
}
|
2019-08-06 05:25:33 +02:00
|
|
|
}
|
2019-12-12 22:25:31 +01:00
|
|
|
|
2020-12-14 17:40:59 +01:00
|
|
|
// ****************************************************************************
|
|
|
|
// Video::Overlays
|
|
|
|
// ****************************************************************************
|
|
|
|
|
|
|
|
.video-js {
|
|
|
|
.vjs-overlay-playrate,
|
|
|
|
.vjs-overlay-seeked {
|
|
|
|
background-color: rgba(0, 0, 0, 0.5);
|
|
|
|
font-size: var(--font-large);
|
|
|
|
width: auto;
|
|
|
|
padding: 10px 30px;
|
|
|
|
margin: 0;
|
|
|
|
position: absolute;
|
|
|
|
top: 50%;
|
|
|
|
left: 50%;
|
|
|
|
-ms-transform: translate(-50%, -50%);
|
|
|
|
transform: translate(-50%, -50%);
|
|
|
|
|
|
|
|
animation: fadeOutAnimation ease-in 0.6s;
|
|
|
|
animation-iteration-count: 1;
|
|
|
|
animation-fill-mode: forwards;
|
|
|
|
}
|
|
|
|
|
|
|
|
@keyframes fadeOutAnimation {
|
|
|
|
0% {
|
|
|
|
opacity: 1;
|
|
|
|
visibility: visible;
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
opacity: 0;
|
|
|
|
visibility: hidden;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// ****************************************************************************
|
|
|
|
// Video - Mobile UI
|
|
|
|
// ****************************************************************************
|
|
|
|
|
|
|
|
.video-js.vjs-mobile-ui {
|
|
|
|
.vjs-control-bar {
|
|
|
|
background-color: transparent;
|
|
|
|
}
|
|
|
|
|
|
|
|
.vjs-touch-overlay:not(.show-play-toggle) {
|
|
|
|
.vjs-control-bar {
|
|
|
|
// Sync the controlBar's visibility with the overlay's
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.vjs-touch-overlay {
|
|
|
|
&.show-play-toggle,
|
|
|
|
&.skip {
|
|
|
|
background-color: rgba(0, 0, 0, 0.5);
|
|
|
|
}
|
2020-12-21 13:13:53 +01:00
|
|
|
|
|
|
|
// Override the original's 'display: block' to avoid the big play button
|
|
|
|
// from being squished to the side:
|
|
|
|
position: absolute;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
video::-internal-media-controls-overlay-cast-button {
|
|
|
|
// Push the cast button above vjs-touch-overlay:
|
|
|
|
z-index: 3;
|
|
|
|
|
|
|
|
// Move it to the upper-right since it will clash with "tap to unmute":
|
|
|
|
left: unset;
|
|
|
|
right: 8px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.video-js.video-js.vjs-user-inactive {
|
|
|
|
video::-internal-media-controls-overlay-cast-button {
|
|
|
|
// (1) Android-Chrome's original Cast button behavior:
|
|
|
|
// - If video is playing, fade out the button.
|
|
|
|
// - If video is paused and video is tapped, display the button and stay on.
|
|
|
|
// (2) We then injected another behavior:
|
|
|
|
// - Display the button when '.vjs-touch-overlay' is displayed. However,
|
|
|
|
// the 'controlslist' attribute hack that was used to do this results in the
|
|
|
|
// button staying displayed without a fade-out timer.
|
|
|
|
// (3) Ideally, we should sync the '.vjs-touch-overlay' visibility with the
|
|
|
|
// cast button, similar to how to controlBar's visibility is synced above.
|
|
|
|
// But I have no idea how to grab the sibling '.show-play-toggle' into the
|
|
|
|
// css logic.
|
|
|
|
// (4) So, this is the best that I can come up with: Whenever user is idle,
|
|
|
|
// the button goes away. The only downside I know is the scenario of
|
|
|
|
// "overlay is up and video is paused, but button goes away due to idle".
|
|
|
|
// The user just needs to re-tap any empty space on the overlay to get the
|
|
|
|
// Cast button again.
|
|
|
|
opacity: 0;
|
|
|
|
transition: opacity 1s ease;
|
2020-12-14 17:40:59 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// ****************************************************************************
|
|
|
|
// Layout and control visibility
|
|
|
|
// ****************************************************************************
|
|
|
|
|
2020-11-20 08:53:22 +01:00
|
|
|
.video-js.vjs-fullscreen,
|
|
|
|
.video-js:not(.vjs-fullscreen) {
|
|
|
|
// --- Unhide desired components per layout ---
|
|
|
|
&.vjs-layout-x-small {
|
|
|
|
.vjs-playback-rate {
|
2021-07-12 16:45:21 +02:00
|
|
|
display: flex !important;
|
2020-11-20 08:53:22 +01:00
|
|
|
}
|
2020-06-30 20:14:12 +02:00
|
|
|
}
|
|
|
|
|
2021-12-08 05:08:46 +01:00
|
|
|
// Note: the '!important' above and below this line was added a quick hack
|
|
|
|
// to negate a change in vjs without having to increase specificity here.
|
|
|
|
// It won't be needed in an upcoming version of vjs, as they have updated
|
|
|
|
// their side https://github.com/videojs/video.js/pull/7098#issuecomment-908438543
|
|
|
|
|
2020-11-20 08:53:22 +01:00
|
|
|
&.vjs-layout-small {
|
|
|
|
.vjs-current-time,
|
|
|
|
.vjs-time-divider,
|
|
|
|
.vjs-duration,
|
|
|
|
.vjs-playback-rate {
|
2021-07-12 16:45:21 +02:00
|
|
|
display: flex !important;
|
2020-11-20 08:53:22 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-12-09 09:12:33 +01:00
|
|
|
// --- Hide unwanted ---
|
|
|
|
.vjs-remaining-time {
|
|
|
|
display: none;
|
2020-11-20 08:53:22 +01:00
|
|
|
}
|
2020-06-30 20:14:12 +02:00
|
|
|
}
|
|
|
|
|
2021-02-17 03:05:23 +01:00
|
|
|
.video-js.vjs-fullscreen {
|
|
|
|
.vjs-button--theater-mode {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-12-14 17:40:59 +01:00
|
|
|
// ****************************************************************************
|
|
|
|
// Tap-to-unmute
|
|
|
|
// ****************************************************************************
|
2020-04-28 00:44:19 +02:00
|
|
|
|
2020-06-10 15:01:54 +02:00
|
|
|
.video-js--tap-to-unmute {
|
|
|
|
visibility: hidden; // Start off as hidden.
|
|
|
|
z-index: 2;
|
|
|
|
position: absolute;
|
2020-06-16 23:09:32 +02:00
|
|
|
top: var(--spacing-xs);
|
|
|
|
left: var(--spacing-xs);
|
2020-06-10 15:01:54 +02:00
|
|
|
padding: var(--spacing-xs) var(--spacing-m); // Make it comfy for touch.
|
|
|
|
color: var(--color-gray-1);
|
|
|
|
background: black;
|
|
|
|
border: 1px solid var(--color-gray-4);
|
2020-07-09 20:18:56 +02:00
|
|
|
opacity: 0.9;
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
opacity: 1;
|
|
|
|
color: var(--color-white);
|
|
|
|
}
|
2020-06-10 15:01:54 +02:00
|
|
|
}
|
|
|
|
|
2020-12-14 17:40:59 +01:00
|
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
|
|
|
|
|
|
.video-js:hover {
|
|
|
|
.vjs-big-play-button {
|
|
|
|
background-color: var(--color-primary);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-12-12 22:25:31 +01:00
|
|
|
.file-render {
|
|
|
|
.video-js {
|
2021-06-30 18:29:00 +02:00
|
|
|
/*display: flex;*/
|
|
|
|
/*align-items: center;*/
|
|
|
|
/*justify-content: center;*/
|
2020-04-14 01:48:11 +02:00
|
|
|
}
|
2019-12-12 22:25:31 +01:00
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.vjs-big-play-button {
|
|
|
|
@extend .button--icon;
|
|
|
|
@extend .button--play;
|
|
|
|
border: none;
|
2021-07-09 05:05:58 +02:00
|
|
|
/*position: static;*/
|
2020-04-14 01:48:11 +02:00
|
|
|
z-index: 2;
|
|
|
|
|
|
|
|
.vjs-icon-placeholder {
|
|
|
|
display: none;
|
2019-12-12 22:25:31 +01:00
|
|
|
}
|
|
|
|
}
|
2021-01-14 20:43:16 +01:00
|
|
|
|
|
|
|
.vjs-menu-item-text,
|
|
|
|
.vjs-icon-placeholder {
|
|
|
|
text-transform: capitalize;
|
|
|
|
}
|
2019-12-12 22:25:31 +01:00
|
|
|
}
|
2020-01-27 19:52:25 +01:00
|
|
|
|
2020-12-14 17:40:59 +01:00
|
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.file-render--embed {
|
2020-04-30 17:01:11 +02:00
|
|
|
// on embeds, do not inject our colors until interaction
|
|
|
|
.video-js:hover {
|
|
|
|
.vjs-big-play-button {
|
|
|
|
background-color: var(--color-primary);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.vjs-paused {
|
2020-02-20 05:20:14 +01:00
|
|
|
.vjs-big-play-button {
|
2020-04-28 00:44:19 +02:00
|
|
|
display: block;
|
2020-04-29 16:00:48 +02:00
|
|
|
background-color: rgba(0, 0, 0, 0.6);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-04-30 17:01:11 +02:00
|
|
|
.vjs-ended {
|
2020-04-29 16:00:48 +02:00
|
|
|
.vjs-big-play-button {
|
2020-04-30 17:01:11 +02:00
|
|
|
display: none;
|
2020-02-20 05:20:14 +01:00
|
|
|
}
|
|
|
|
}
|
2020-06-12 23:41:26 +02:00
|
|
|
|
2020-10-05 20:54:51 +02:00
|
|
|
.video-js--tap-to-unmute {
|
|
|
|
margin-top: var(--spacing-xl);
|
|
|
|
margin-left: var(--spacing-s);
|
|
|
|
|
|
|
|
@media (min-width: $breakpoint-small) {
|
|
|
|
margin-left: calc(var(--spacing-m) + var(--spacing-s));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-06-12 23:41:26 +02:00
|
|
|
.file-viewer {
|
|
|
|
iframe,
|
|
|
|
webview,
|
|
|
|
img {
|
|
|
|
max-height: none;
|
|
|
|
}
|
|
|
|
}
|
2020-01-28 16:18:33 +01:00
|
|
|
}
|
|
|
|
|
2020-04-30 16:37:39 +02:00
|
|
|
.file-viewer--ended-embed .vjs-big-play-button {
|
|
|
|
display: none !important; // yes this is dumb, but this was broken and the above CSS was overriding
|
|
|
|
}
|
|
|
|
|
2020-12-14 17:40:59 +01:00
|
|
|
// ****************************************************************************
|
|
|
|
// Autoplay Countdown
|
|
|
|
// ****************************************************************************
|
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.autoplay-countdown {
|
2020-01-27 19:52:25 +01:00
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
2020-04-14 01:48:11 +02:00
|
|
|
width: 100%;
|
2020-01-27 19:52:25 +01:00
|
|
|
}
|
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.autoplay-countdown__timer {
|
|
|
|
width: 100%;
|
|
|
|
text-align: center;
|
|
|
|
font-size: var(--font-small);
|
|
|
|
}
|
|
|
|
.autoplay-countdown__counter {
|
2020-06-01 19:03:19 +02:00
|
|
|
margin-top: var(--spacing-m);
|
2020-01-27 19:52:25 +01:00
|
|
|
}
|
|
|
|
|
2020-04-14 01:48:11 +02:00
|
|
|
.autoplay-countdown__button {
|
|
|
|
/* Border size and color */
|
|
|
|
border: 3px solid transparent;
|
|
|
|
/* Creates a circle */
|
|
|
|
border-radius: 50%;
|
|
|
|
/* Circle size */
|
|
|
|
display: inline-block;
|
|
|
|
height: 86px;
|
|
|
|
width: 86px;
|
|
|
|
/* Use transform to rotate to adjust where opening appears */
|
|
|
|
transition: border 1s;
|
|
|
|
transform: rotate(45deg);
|
|
|
|
.button {
|
|
|
|
background-color: transparent;
|
|
|
|
transform: rotate(-45deg);
|
|
|
|
&:hover {
|
|
|
|
background-color: var(--color-primary);
|
|
|
|
}
|
2020-01-27 21:02:58 +01:00
|
|
|
}
|
2020-01-27 19:52:25 +01:00
|
|
|
}
|
2020-04-14 01:48:11 +02:00
|
|
|
.autoplay-countdown__button--4 {
|
|
|
|
border-top-color: #fff;
|
|
|
|
}
|
|
|
|
.autoplay-countdown__button--3 {
|
|
|
|
border-top-color: #fff;
|
|
|
|
border-right-color: #fff;
|
|
|
|
}
|
|
|
|
.autoplay-countdown__button--2 {
|
|
|
|
border-top-color: #fff;
|
|
|
|
border-right-color: #fff;
|
|
|
|
border-bottom-color: #fff;
|
|
|
|
}
|
|
|
|
.autoplay-countdown__button--1 {
|
|
|
|
border-color: #fff;
|
2020-01-27 19:52:25 +01:00
|
|
|
}
|
2020-09-30 22:46:20 +02:00
|
|
|
|
2020-12-14 17:40:59 +01:00
|
|
|
// ****************************************************************************
|
|
|
|
// ****************************************************************************
|
|
|
|
|
2020-09-30 22:46:20 +02:00
|
|
|
.file__viewdate {
|
|
|
|
display: flex;
|
|
|
|
justify-content: space-between;
|
2021-04-04 04:44:51 +02:00
|
|
|
flex-direction: column;
|
2020-09-30 22:46:20 +02:00
|
|
|
margin-bottom: var(--spacing-s);
|
|
|
|
|
2021-04-04 04:44:51 +02:00
|
|
|
> :first-child {
|
|
|
|
margin-bottom: var(--spacing-s);
|
|
|
|
}
|
|
|
|
|
|
|
|
@media (max-width: $breakpoint-medium) {
|
|
|
|
flex-direction: row;
|
|
|
|
justify-content: start;
|
2020-09-30 22:46:20 +02:00
|
|
|
|
|
|
|
> :first-child {
|
2021-04-04 04:44:51 +02:00
|
|
|
margin-bottom: 0;
|
|
|
|
margin-right: 1rem;
|
2020-09-30 22:46:20 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-02-17 16:02:57 +01:00
|
|
|
|
|
|
|
.file-page__image {
|
|
|
|
img {
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
|
|
|
}
|