UNPKG

vidplayer

Version:

A simple to use videoplayer to do the styling and fixes the eventhandlers

556 lines (438 loc) 12.4 kB
.page { display: flex; flex-direction: column; gap: 40px; padding: 20px 30px; } @media (min-width:500px){ .page { padding: 20px 100px; } } /* */ /* DEFAULT STYLING */ /* */ .vidplayer-container * { --font-style: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; box-sizing: border-box; font-family: var(--font-style); margin: 0; padding: 0; transition-duration: 100ms; } .vidplayer-container { --base-color: rgba(11,11,11,0.75); --tile-color: rgba(200, 200, 200, 1); --tile-color: rgba(160, 160, 160, 1); } .vidplayer-container { margin:auto; overflow: hidden; position: relative; width: fit-content; } .vidplayer-controller{ display: flex; background: var(--base-color); position: absolute; bottom:0; width: 100%; padding: .2em; align-items: center; } .vidplayer-control { background-color: transparent; border:none; } .vidplayer-control svg { display: block; fill: var(--tile-color); } .vidplayer-control:hover svg{ fill:var(--hover-color); } /* */ /* DEFAULT HOVER BEHAVIOUR */ /* */ .vidplayer-container[data-state="playing"] .vidplayer-controls, .vidplayer-container[data-state="playing"] .vidplayer-control--fullscreen{ opacity: 0; } .vidplayer-container[data-state="playing"] .vidplayer-controller{ transform: translateY(calc(100% + 10px)); } .vidplayer-container[data-state="playing"]:hover .vidplayer-controller{ transform: translateY(0); } .vidplayer-container[data-state="playing"]:hover .vidplayer-controls, .vidplayer-container[data-state="playing"]:hover .vidplayer-control--fullscreen{ opacity: 1; } /* */ /* MAKE SURE THE BUTTONS WORK */ /* */ /* Play button */ /* DEFAULT */ .vidplayer-container .vidplayer-control__icon--play{ display: block; } .vidplayer-container .vidplayer-control__icon--pause, .vidplayer-container .vidplayer-control__icon--loading{ display: none; } /* PLAYING */ .vidplayer-container[data-state = "playing"] .vidplayer-control__icon--pause{ display: block; } .vidplayer-container[data-state = "playing"] .vidplayer-control__icon--play, .vidplayer-container[data-state = "playing"] .vidplayer-control__icon--loading{ display: none; } /* PAUSED */ .vidplayer-container[data-state = "paused"] .vidplayer-control__icon--play{ display: block; } .vidplayer-container[data-state = "paused"] .vidplayer-control__icon--pause, .vidplayer-container[data-state = "paused"] .vidplayer-control__icon--loading{ display: none; } /* LOADING */ .vidplayer-container[data-state = "loading"] .vidplayer-control__icon--loading{ display: block; } .vidplayer-container[data-state = "loading"] .vidplayer-control__icon--play, .vidplayer-container[data-state = "loading"] .vidplayer-control__icon--pause{ display: none; } /* DEFAULT LOADING STYLING */ .vidplayer-container .vidplayer-control__icon--loading{ fill: none !important; stroke: var(--tile-color); stroke-width:30px; overflow: visible; stroke-dasharray: 471; stroke-dashoffset: 100; transform: rotate(0deg); animation: rotate 1s linear infinite; } @keyframes rotate { 0%{ transform: rotate(0deg); } 100%{ transform: rotate(360deg); } } /* CONTROL */ .vidplayer-control{ transition: 100ms all ease-in-out; display: block; cursor: pointer; } /* VOLUME */ .vidplayer-volume{ display: flex; flex-direction: column; position: relative; } .vidplayer-control--volume::after{ cursor: default; pointer-events: all; content: ''; width: 15px; height: 20px; position: absolute; bottom: 100%; left:0; } .vidplayer-controls .vidplayer-control svg{ height:30px; } .vidplayer-control svg{ height: 15px; } .vidplayer-timer{ cursor: default; font-size: 12px; color: var(--tile-color); } /* */ /* */ /* */ /* CHANGE */ /* */ /* must be a classname containing vidplayer => eg. vidplayer-obect, vidplayer-video, vidplayer */ /* */ .vidplayer { margin: auto; position: relative; overflow: hidden; width: 100%; display: block; } .vidplayer-controls { position: absolute; z-index: 1; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 50%; transition: 250ms all; } /* FULLSCREEN CONTROLS */ .vidplayer-container .vidplayer-control__icon--fs-open{ display: block; } .vidplayer-container .vidplayer-control__icon--fs-close{ display: none; } .vidplayer-container--fullscreen .vidplayer-control__icon--fs-open{ display: none; } .vidplayer-container--fullscreen .vidplayer-control__icon--fs-close{ display: block; } .vidplayer-container--fullscreen .vidplayer{ max-width: 100%; max-height: 100%; height: 100%; width: 100%; } .vidplayer-container:hover .vidplayer-controls { display: block; } .vidplayer-controls .control[data-action="play"] { transform: translate(-40%, -50%); } .vidplayer-control.vidplayer-control--fullscreen{ cursor: pointer; position: absolute; top: 10px; left: 10px; } /* VIDEOVOLUME ICON */ .vidplayer-control--volume[data-volume ~= "0"] .vidplayer-control__icon-path--mute { display: block; } .vidplayer-control--volume[data-volume ~= "1"] .vidplayer-control__icon-path--base { display: block; } .vidplayer-control--volume[data-volume ~= "2"] .vidplayer-control__icon-path--low { display: block; } .vidplayer-control--volume[data-volume ~= "3"] .vidplayer-control__icon-path--low, .vidplayer-control--volume[data-volume ~= "3"] .vidplayer-control__icon-path--high { display: block; } .vidplayer-control__icon-path { display: none; } .vidplayer-control__icon-path--base { display: block; } /* VOLUME AND TIME SLLIDER */ .vidplayer-runnabletrack--volume{ transform-origin: left; transition: 100ms all ease-in-out; transform: rotate(-90deg); } .vidplayer-control--volume:hover + .vidplayer-runnabletrack--volume[type=range]{ max-width: 100px!important; } .vidplayer-control--volume:hover + .vidplayer-runnabletrack--volume[type=range]::before{ max-width: 110px!important; } .vidplayer-runnabletrack--volume[type=range]:hover, .vidplayer-runnabletrack--volume[type=range]:focus { max-width: 100px!important; } .vidplayer-runnabletrack--volume[type=range]:hover::before, .vidplayer-runnabletrack--volume[type=range]:focus::before{ max-width: 110px!important; } .vidplayer-control--volume:hover + .vidplayer-runnabletrack--volume[type=range]::-webkit-slider-thumb{ max-width:10px; max-height:10px; } .vidplayer-control--volume:hover + .vidplayer-runnabletrack--volume[type=range]::-moz-range-thumb{ max-width:10px; max-height:10px; } .vidplayer-runnabletrack--volume[type=range]:hover::-moz-range-thumb, .vidplayer-runnabletrack--volume[type=range]:focus::-moz-range-thumb{ max-width:10px; max-height:10px; } .vidplayer-runnabletrack--volume[type=range]:hover::-webkit-slider-thumb, .vidplayer-runnabletrack--volume[type=range]:focus::-webkit-slider-thumb{ max-width:10px; max-height:10px; } .vidplayer-runnabletrack--volume[type=range]:hover::-moz-range-thumb:hover{ max-width:12px; max-height:12px; } .vidplayer-runnabletrack--volume[type=range]:hover::-webkit-slider-thumb:hover{ max-width:12px; max-height:12px; } /* ________ __ __ ________ __ __ ________ */ /* |__ __| | | | | | _____| | \ / | | _____| */ /* | | | |__| | | |_____ | \/ | | |_____ */ /* | | | __ | | _____| | | | _____| */ /* | | | | | | | |_____ | |\/| | | |_____ */ /* |__| |__| |__| |________| |__| |__| |________| */ /* */ .vidplayer_theme--flashy .vidplayer-controller, .vidplayer_theme--flashy-minimal .vidplayer-controller{ inset:auto 10px 10px 10px; width: unset; padding: 5px 10px; border-radius: 100px; gap: 10px; } .vidplayer_theme--flashy .vidplayer-control.vidplayer-control--fullscreen{ padding:5px 10px; background-color: var(--base-color); border-radius: 30px; } .vidplayer-runnabletrack--time{ appearance:none; background-color: transparent; height:20px; width: 100%; } .vidplayer-runnabletrack::-webkit-slider-runnable-track { cursor: pointer; background-color:#444; /* GRADIENT */ height:8px; } .vidplayer-runnabletrack::-moz-range-track { cursor: pointer; background-color:#444; /* GRADIENT */ height:8px; } .vidplayer_theme--flashy .vidplayer-runnabletrack::-moz-range-track{ border-radius: 20px; } .vidplayer_theme--flashy .vidplayer-runnabletrack::-webkit-slider-runnable-track, .vidplayer_theme--flashy-minimal .vidplayer-runnabletrack::-webkit-slider-runnable-track { border-radius: 20px; } .vidplayer-runnabletrack::-moz-range-thumb{ -webkit-appearance: none; background-color: var(--tile-color); cursor: pointer; height: 10px; /* max-height: 0px; */ /* max-width: 0px; */ position: relative; /* transform:translateY(-10%); */ border-radius: 0; transition:100ms all ease-in-out; width: 10px; appearance: none; } .vidplayer_theme--flashy .vidplayer-runnabletrack::-moz-range-thumb{ border-radius: 20px; } .vidplayer-runnabletrack::-webkit-slider-thumb{ -webkit-appearance: none; background-color: var(--tile-color); cursor: pointer; height: 10px; max-height: 0px; max-width: 0px; position: relative; transform:translateY(-10%); transition:100ms all ease-in-out; width: 10px; } .vidplayer_theme--flashy .vidplayer-runnabletrack::-webkit-slider-thumb, .vidplayer_theme--flashy-minimal .vidplayer-runnabletrack::-webkit-slider-thumb { border-radius:20px; } .vidplayer-runnabletrack--volume::-moz-range-thumb{ max-width: 0px; max-height: 0px; } .vidplayer-runnabletrack--time::-webkit-slider-thumb{ max-height: 10px; max-width: 10px; } .vidplayer-runnabletrack--time::-moz-range-thumb{ max-height: 10px; max-width: 10px; } /* max-height: 10px; max-width: 10px; */ /* } */ .vidplayer-runnabletrack--volume[type=range]{ appearance:none; position:absolute; background-color: transparent; left:50%; bottom:calc(100% + 10px); transform-origin:left; /* transform:rotate(-90deg); */ height:20px; max-width: 0px; } .vidplayer-runnabletrack--volume[type=range]::before{ content: ''; display: block; position: absolute; inset:0 -5px 0 -5px; background-color: rgba(00, 00, 00, 0.5); max-width: 0; z-index: -1; } .vidplayer_theme--flashy .vidplayer-runnabletrack--volume::before{ border-radius: 20px; } .vidplayer-runnabletrack::-webkit-slider-thumb:hover{ height: 12px; width: 12px; max-height: 12px; max-width: 12px; transform:translateY(-20%); } .vidplayer-runnabletrack::-moz-range-thumb:hover{ height: 12px; width: 12px; max-height: 12px; max-width: 12px; } .vidplayer-runnabletrack[type=range]::-moz-range-thumb{ background:var(--tile-color); border:none; } .vidplayer_theme--minimal .vidplayer-volume, .vidplayer_theme--minimal .vidplayer-control--fullscreen, .vidplayer_theme--minimal .vidplayer-controls, .vidplayer_theme--flashy-minimal .vidplayer-volume, .vidplayer_theme--flashy-minimal .vidplayer-control--fullscreen, .vidplayer_theme--flashy-minimal .vidplayer-controls { display: none!important; } .vidplayer_theme--box-minimal .vidplayer-volume, .vidplayer_theme--box-minimal .vidplayer-control--fullscreen, .vidplayer_theme--box-minimal .vidplayer-controls { display: none!important; } .vidplayer_theme--box-minimal .vidplayer-controller{ padding:10px 20px; gap: 15px; } .vidplayer_theme--box .vidplayer-controller{ padding:10px 20px; gap: 15px; } .vidplayer_theme--box .vidplayer-control--fullscreen { padding:10px 10px; background: var(--base-color) ; } .vidplayer-control--fullscreen { padding: 3px; background: var(--base-color); }