From ed540859f6fd43cb4cbb17149d7ca166c27aacb7 Mon Sep 17 00:00:00 2001 From: Miguel Ángel Moreno Date: Mon, 29 Apr 2024 01:41:21 +0200 Subject: feat: improve video player styles --- resources/src/styles/index.scss | 15 +++++ resources/src/styles/tubo.scss | 46 -------------- resources/src/styles/videojs.scss | 130 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 145 insertions(+), 46 deletions(-) create mode 100644 resources/src/styles/index.scss delete mode 100644 resources/src/styles/tubo.scss create mode 100644 resources/src/styles/videojs.scss (limited to 'resources/src/styles') diff --git a/resources/src/styles/index.scss b/resources/src/styles/index.scss new file mode 100644 index 0000000..c2ec5d2 --- /dev/null +++ b/resources/src/styles/index.scss @@ -0,0 +1,15 @@ +@use "./videojs"; +@use "@fontsource/nunito-sans/scss/mixins" as NunitoSans; +$fontsourceDir: "~@fontsource"; +@include NunitoSans.faces($weights: (200, 300, 400, 500, 600, 700, 800, 900)); +$fa-font-path: "~@fortawesome/fontawesome-free/webfonts"; +@import "@fortawesome/fontawesome-free/scss/brands"; +@import "@fortawesome/fontawesome-free/scss/regular"; +@import "@fortawesome/fontawesome-free/scss/solid"; +@import "@fortawesome/fontawesome-free/scss/fontawesome"; +@import "tailwindcss/base"; +@import "tailwindcss/components"; +@import "tailwindcss/utilities"; +@import "video.js/dist/video-js.css"; +@import "videojs-mobile-ui/dist/videojs-mobile-ui.css"; +@import "@silvermine/videojs-quality-selector/dist/css/quality-selector.css"; diff --git a/resources/src/styles/tubo.scss b/resources/src/styles/tubo.scss deleted file mode 100644 index cffc8cd..0000000 --- a/resources/src/styles/tubo.scss +++ /dev/null @@ -1,46 +0,0 @@ -@use "@fontsource/nunito-sans/scss/mixins" as NunitoSans; -$fontsourceDir: "~@fontsource"; -@include NunitoSans.faces($weights: (200, 300, 400, 500, 600, 700, 800, 900)); -$fa-font-path: "~@fortawesome/fontawesome-free/webfonts"; -@import "@fortawesome/fontawesome-free/scss/brands"; -@import "@fortawesome/fontawesome-free/scss/regular"; -@import "@fortawesome/fontawesome-free/scss/solid"; -@import "@fortawesome/fontawesome-free/scss/fontawesome"; -@import "tailwindcss/base"; -@import "tailwindcss/components"; -@import "tailwindcss/utilities"; -@import "video.js/dist/video-js.css"; -@import "videojs-mobile-ui/dist/videojs-mobile-ui.css"; -@import "@silvermine/videojs-quality-selector/dist/css/quality-selector.css"; - -.vjs-tubo .vjs-poster img { - object-fit: cover; -} - -.vjs-tubo .vjs-control-bar { - background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 100%); -} - -.vjs-tubo .vjs-volume-control { - background: radial-gradient(rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0) 45%); - backdrop-filter: blur(1px); -} - -.vjs-tubo .vjs-menu-button-popup .vjs-menu .vjs-menu-content { - background: rgba(0, 0, 0, 0.5); - backdrop-filter: blur(6px); -} - -.vjs-tubo .vjs-current-time, .vjs-tubo .vjs-time-divider, .vjs-tubo .vjs-duration { - display: block; -} - -.vjs-tubo .vjs-big-play-button, .vjs-tubo.vjs-paused .vjs-big-play-button, .vjs-tubo:hover .vjs-big-play-button { - content: ''; - background-size: 60%; - background-position: center center; - background-repeat: no-repeat; - background-image: url('data:image/svg+xml;utf8,'); - background-color: transparent; - border: none; -} diff --git a/resources/src/styles/videojs.scss b/resources/src/styles/videojs.scss new file mode 100644 index 0000000..4c2e52c --- /dev/null +++ b/resources/src/styles/videojs.scss @@ -0,0 +1,130 @@ +.vjs-tubo .vjs-poster img { + object-fit: cover; +} + +.vjs-tubo .vjs-control-bar { + background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 100%); +} + +.vjs-tubo .vjs-menu-button-popup .vjs-menu .vjs-menu-content { + background: rgba(0, 0, 0, 0.5); + backdrop-filter: blur(6px); +} + +.vjs-tubo .vjs-current-time, .vjs-tubo .vjs-time-divider, .vjs-tubo .vjs-duration { + display: block; +} + +.vjs-tubo .vjs-big-play-button, .vjs-tubo.vjs-paused .vjs-big-play-button, .vjs-tubo:hover .vjs-big-play-button { + content: ''; + background-size: 60%; + background-position: center center; + background-repeat: no-repeat; + background-image: url('data:image/svg+xml;utf8,'); + background-color: transparent; + border: none; +} + +.vjs-tubo .vjs-progress-control { + position: absolute; + width: 100%; + top: -.5em; + height: 0.5em; +} + +.vjs-tubo .vjs-progress-control .vjs-progress-holder { + position: relative; + margin: 0px !important; + top: 0; + width: 100%; + font-size: 13px; + padding: 8px 0 15px 0; + background: none; +} + +.vjs-tubo .vjs-progress-control .vjs-progress-holder::before { + content: ''; + display: block; + width: 100%; + height: 5px; + background: rgba(115, 133, 159, 0.3); +} + +.vjs-tubo .vjs-progress-control .vjs-load-progress, +.vjs-tubo .vjs-progress-control .vjs-play-progress { + height: 5px; + top: 8px; +} + +.vjs-tubo .vjs-progress-control .vjs-mouse-display { + background: none; +} + +.vjs-tubo .vjs-spacer { + display: flex; + flex: 1 1 auto; +} + +.vjs-tubo .vjs-volume-bar.vjs-slider-horizontal { + background: none; + padding: 0px 0 15px 0; +} + +.vjs-tubo .vjs-volume-bar.vjs-slider-horizontal::before { + content: ''; + display: block; + width: 100%; + height: 3px; + background: rgba(115, 133, 159, 0.3); +} + +.vjs-tubo .vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level { + height: 3px; + top: 0; +} + +.vjs-tubo .vjs-volume-bar.vjs-slider-horizontal .vjs-mouse-display { + display: none; +} + +.vjs-tubo.vjs-layout-x-small .vjs-progress-control, +.vjs-tubo.vjs-layout-tiny .vjs-progress-control { + display: block; +} + +.vjs-tubo.vjs-layout-x-small .vjs-play-control, +.vjs-tubo.vjs-layout-tiny .vjs-play-control { + display: none; +} + +.vjs-tubo.vjs-layout-small .vjs-current-time, +.vjs-tubo.vjs-layout-small .vjs-time-divider, +.vjs-tubo.vjs-layout-small .vjs-duration, +.vjs-tubo.vjs-layout-x-small .vjs-current-time, +.vjs-tubo.vjs-layout-x-small .vjs-time-divider, +.vjs-tubo.vjs-layout-x-small .vjs-duration, +.vjs-tubo.vjs-layout-tiny .vjs-current-time, +.vjs-tubo.vjs-layout-tiny .vjs-time-divider, +.vjs-tubo.vjs-layout-tiny .vjs-duration { + display: inline-block; +} + +.vjs-tubo.vjs-layout-small .vjs-progress-control .vjs-load-progress, +.vjs-tubo.vjs-layout-small .vjs-progress-control .vjs-play-progress, +.vjs-tubo.vjs-layout-x-small .vjs-progress-control .vjs-load-progress, +.vjs-tubo.vjs-layout-x-small .vjs-progress-control .vjs-play-progress, +.vjs-tubo.vjs-layout-tiny .vjs-progress-control .vjs-load-progress +.vjs-tubo.vjs-layout-tiny .vjs-progress-control .vjs-play-progress { + top: 0; +} + +.vjs-tubo.vjs-layout-small .vjs-progress-control .vjs-progress-holder, +.vjs-tubo.vjs-layout-x-small .vjs-progress-control .vjs-progress-holder, +.vjs-tubo.vjs-layout-tiny-small .vjs-progress-control .vjs-progress-holder { + padding: 0 0 15px 0; +} + +.vjs-tubo.vjs-layout-tiny .vjs-menu-button-popup .vjs-menu .vjs-menu-content, +.vjs-tubo.vjs-layout-x-small .vjs-menu-button-popup .vjs-menu .vjs-menu-content { + max-height: 10em; +} -- cgit v1.2.3