627b01c664
## Issues - So many `!important` overrides that makes it hard to customize. - Weird "813px max-width" check -- it feels random, plus does not adjust accordingly to zoom-levels. - The button text is not always vertically centered for all layout and zoom-levels because it is being centered using hardcoded margins. - The 2 popups don't have consistent fonts and styling, plus their customizations are all over the place. ## Changes - Try to remove as many unnecessary "!important" as possible. Adding specificity is sufficiently, and won't block other customizations. - Try using `rem` instead of hardcoded margins. The icons/text/margin should resize accordingly per zoom-levels. - I didn't replicate the "813px max-width" media check. If it is really necessary, please use `vjs-layout-*` to customize them instead. - Consolidate the 2 popup menu customizations.
200 lines
3.6 KiB
SCSS
200 lines
3.6 KiB
SCSS
$control-bar-height: 2.1rem;
|
|
$control-bar-font-size: 0.8rem;
|
|
$control-bar-popup-font-size: 0.8rem;
|
|
$control-bar-icon-size: 0.7rem;
|
|
|
|
.video-js {
|
|
font-size: 12px;
|
|
overflow: hidden;
|
|
|
|
// Control Bar (container)
|
|
.vjs-control-bar {
|
|
background: none;
|
|
color: #dbd8d8;
|
|
height: $control-bar-height;
|
|
|
|
&::before {
|
|
position: absolute;
|
|
bottom: 0;
|
|
content: '';
|
|
height: 5rem;
|
|
width: 100%;
|
|
background: rgba(20, 20, 20, 0.45);
|
|
background: linear-gradient(0deg, rgba(0, 0, 0, 0.85) 10%, rgba(0, 0, 0, 0) 100%);
|
|
}
|
|
}
|
|
|
|
// Progress Bar
|
|
.vjs-progress-control.vjs-control {
|
|
position: absolute;
|
|
display: flex;
|
|
align-items: center;
|
|
width: 100%;
|
|
height: 1rem;
|
|
bottom: 90%;
|
|
|
|
// Circle play head
|
|
.vjs-play-progress::before {
|
|
transform: scale(0);
|
|
transition: transform 0.3s;
|
|
}
|
|
|
|
&:hover {
|
|
.vjs-play-progress::before {
|
|
transform: scale(1);
|
|
}
|
|
}
|
|
|
|
// Progress Slider
|
|
.vjs-slider {
|
|
margin: 0 1rem;
|
|
}
|
|
}
|
|
|
|
// Load progress color
|
|
.vjs-load-progress,
|
|
.vjs-load-progress div {
|
|
background-color: rgba(160, 160, 160, 0.5);
|
|
}
|
|
|
|
// Progress Bar Background
|
|
.vjs-slider {
|
|
background-color: rgba(60, 60, 60, 0.5);
|
|
}
|
|
|
|
// Primary Color Progress
|
|
.vjs-slider-bar {
|
|
background-color: var(--color-gray-5);
|
|
}
|
|
|
|
// Inner Progress Bar
|
|
.vjs-play-progress {
|
|
background-color: var(--color-primary);
|
|
color: var(--color-primary);
|
|
}
|
|
|
|
// Spacer
|
|
.vjs-custom-control-spacer {
|
|
display: flex;
|
|
flex: auto;
|
|
}
|
|
|
|
// Transcoding menu
|
|
/*.vjs-tech {
|
|
height: auto !important;
|
|
position: absolute !important;
|
|
}*/
|
|
|
|
// Playback Rate
|
|
.vjs-playback-rate {
|
|
.vjs-playback-rate-value {
|
|
font-size: $control-bar-font-size; // Reduce the gigantic font a bit. Default was 1.5em.
|
|
line-height: $control-bar-height; // Vertically center the text.
|
|
}
|
|
|
|
.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.
|
|
}
|
|
}
|
|
|
|
// Volume slider
|
|
.vjs-volume-panel {
|
|
margin-right: -8px;
|
|
|
|
&.vjs-control {
|
|
transition: 0.2s;
|
|
}
|
|
|
|
.vjs-volume-control.vjs-volume-horizontal {
|
|
transition: 0.2s;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Tooltip
|
|
.vjs-mouse-display .vjs-time-tooltip {
|
|
color: white;
|
|
}
|
|
|
|
// Tooltip
|
|
.video-js {
|
|
.vjs-progress-control {
|
|
.vjs-play-progress {
|
|
.vjs-time-tooltip {
|
|
display: none;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Transitions control bar between active / inactive
|
|
.vjs-has-started {
|
|
.vjs-control-bar {
|
|
opacity: 1;
|
|
transition: 0.1s;
|
|
}
|
|
|
|
&.vjs-user-inactive.vjs-playing {
|
|
.vjs-control-bar {
|
|
opacity: 0;
|
|
transition: 0.3s;
|
|
}
|
|
}
|
|
|
|
&.vjs-user-active.vjs-playing {
|
|
.vjs-control-bar {
|
|
}
|
|
}
|
|
}
|
|
|
|
// Button glow
|
|
.video-js {
|
|
.vjs-control,
|
|
.vjs-time-divider {
|
|
user-select: none;
|
|
|
|
&:focus:before,
|
|
&:hover:before,
|
|
&:focus {
|
|
// Disable builtin button glow
|
|
text-shadow: none;
|
|
}
|
|
}
|
|
}
|
|
|
|
.bottom-gradient {
|
|
background-image: linear-gradient(to top, rgba(0, 0, 0, 0.4) 0%, transparent 72px);
|
|
}
|
|
|
|
.vjs-hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
[dir] .vjs-menu-button-popup .vjs-menu .vjs-menu-content {
|
|
background-color: rgba(43, 51, 63);
|
|
max-height: 20em;
|
|
|
|
li {
|
|
font-size: $control-bar-popup-font-size;
|
|
}
|
|
}
|
|
|
|
.vjs-slider-horizontal {
|
|
background-color: #474747 !important;
|
|
}
|
|
|
|
.vjs-mouse-display {
|
|
color: white !important;
|
|
background-color: lightgrey !important;
|
|
width: 8px !important;
|
|
margin-left: -5px !important;
|
|
}
|
|
|
|
.vjs_video_3_ima-ad-container {
|
|
display: none;
|
|
}
|
|
|
|
.ima-ad-container {
|
|
display: none;
|
|
}
|