Minimalist skin for Video.js. Can be modified to make custom skins.
The great thing about Video.js skins is they work in both HTML5 video AND Flash!
A Pen by Juan D. Jara on CodePen.
<!-- | |
Don't use the "5-unsafe" CDN version in your own code. It will break on you. | |
Instead go to videojs.com and copy the CDN urls for the latest version. | |
--> | |
<div id="instructions"> | |
<video id="my_video_1" class="video-js vjs-default-skin vjs-minimal-skin" width="640px" height="267px" | |
controls preload="none" poster='http://video-js.zencoder.com/oceans-clip.jpg' | |
data-setup='{ "aspectRatio":"640:267", "playbackRates": [1, 1.5, 2] }'> | |
<source src="http://vjs.zencdn.net/v/oceans.mp4" type='video/mp4' /> | |
<source src="http://vjs.zencdn.net/v/oceans.webm" type='video/webm' /> | |
</video> | |
<p>Custom skin for <a href="http://www.videojs.com" target="_blank">video.js</a>. Requires v5.0.0 or higher.</p> | |
<h2>HOW TO CUSTOMIZE:</h2> | |
<ol> | |
<li>Click the CodePen <strong>Fork</strong> link above to create a new copy</li> | |
<li>Change the CSS (SCSS) as desired</li> | |
<li>Click <strong>Save</strong> to save your changes</li> | |
<li>Click <strong>Settings</strong> to name and describe your skin</li> | |
<li>Click the <strong>Share</strong> link to tweet your skin, and include @videojs so we know about it</li> | |
</ol> | |
<h2>HOW TO USE:</h2> | |
<ol> | |
<li>Click "Refresh" if you made any changes</li> | |
<li>Copy the CSS contents of the following box</li> | |
<li>Include it in the page with your player in a <style> tag or with a <a href="http://www.w3schools.com/css/css_howto.asp">stylesheet include</a></li> | |
</ol> | |
<textarea id="css_result"></textarea> | |
<button id="refresh">Refresh</button> | |
</div> | |
<style> | |
#instructions { max-width: 640px; text-align: left; margin: 30px auto; } | |
#instructions textarea { width: 100%; height: 100px; } | |
/* Show the controls (hidden at the start by default) */ | |
.video-js .vjs-control-bar { | |
display: -webkit-box; | |
display: -webkit-flex; | |
display: -ms-flexbox; | |
display: flex; | |
} | |
/* Make the demo a little prettier */ | |
body { | |
margin-top: 20px; | |
background: #222; | |
text-align: center; | |
color: #aaa; | |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |
background: radial-gradient(#333, hsl(200,30%,6%) ); | |
} | |
a, a:hover, a:visited { color: #76DAFF; } | |
</style> |
$(function(){ | |
var $refreshButton = $('#refresh'); | |
var $results = $('#css_result'); | |
function refresh(){ | |
var css = $('style.cp-pen-styles').text(); | |
$results.html(css); | |
} | |
refresh(); | |
$refreshButton.click(refresh); | |
// Select all the contents when clicked | |
$results.click(function(){ | |
$(this).select(); | |
}); | |
}); |
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> | |
<script src="http://vjs.zencdn.net/5-unsafe/video.js"></script> |
/* | |
Minimal VideoJS Skin made by fuken | |
Player Skin Designer for Video.js | |
http://videojs.com | |
To customize the player skin edit | |
the CSS below. Click "details" | |
below to add comments or questions. | |
This file uses some SCSS. Learn more | |
at http://sass-lang.com/guide) | |
This designer can be linked to at: | |
http://codepen.io/heff/pen/EarCt/left/?editors=010 | |
*/ | |
// The following are SCSS variables to automate some of the values. | |
// But don't feel limited by them. Change/replace whatever you want. | |
// The color of icons, text, and the big play button border. | |
// Try changing to #0f0 | |
$primary-foreground-color: #fff; // #fff default | |
// The default color of control backgrounds is mostly black but with a little | |
// bit of blue so it can still be seen on all-black video frames, which are common. | |
// Try changing to #900 | |
$primary-background-color: #2B333F; // #2B333F default | |
// Try changing to true | |
$center-big-play-button: true; // true default | |
.video-js { | |
/* The base font size controls the size of everything, not just text. | |
All dimensions use em-based sizes so that the scale along with the font size. | |
Try increasing it to 15px and see what happens. */ | |
font-size: 10px; | |
/* The main font color changes the ICON COLORS as well as the text */ | |
color: $primary-foreground-color; | |
} | |
/* The "Big Play Button" is the play button that shows before the video plays. | |
To center it set the align values to center and middle. The typical location | |
of the button is the center, but there is trend towards moving it to a corner | |
where it gets out of the way of valuable content in the poster image.*/ | |
.vjs-default-skin .vjs-big-play-button { | |
/* The font size is what makes the big play button...big. | |
All width/height values use ems, which are a multiple of the font size. | |
If the .video-js font-size is 10px, then 3em equals 30px.*/ | |
font-size: 8em; | |
/* We're using SCSS vars here because the values are used in multiple places. | |
Now that font size is set, the following em values will be a multiple of the | |
new font size. If the font-size is 3em (30px), then setting any of | |
the following values to 3em would equal 30px. 3 * font-size. */ | |
$big-play-width: 3em; | |
/* 1.5em = 45px default */ | |
$big-play-height: 1.5em; | |
line-height: $big-play-height; | |
height: $big-play-height; | |
width: $big-play-width; | |
/* 0.06666em = 2px default */ | |
border: 0; | |
/* 0.3em = 9px default */ | |
border-radius: 0.3em; | |
@if $center-big-play-button { | |
/* Align center */ | |
left: 50%; | |
top: 50%; | |
margin-left: -($big-play-width / 2); | |
margin-top: -($big-play-height / 2); | |
} @else { | |
/* Align top left. 0.5em = 15px default */ | |
left: 0.5em; | |
top: 0.5em; | |
} | |
} | |
/* The default color of control backgrounds is mostly black but with a little | |
bit of blue so it can still be seen on all-black video frames, which are common. */ | |
.video-js .vjs-control-bar, | |
.video-js .vjs-big-play-button, | |
.video-js .vjs-menu-button .vjs-menu-content { | |
/* IE8 - has no alpha support */ | |
background-color: $primary-background-color; | |
/* Opacity: 1.0 = 100%, 0.0 = 0% */ | |
background-color: rgba($primary-background-color, 0.6); | |
} | |
// Make a slightly lighter version of the main background | |
// for the slider background. | |
$slider-bg-color: lighten($primary-background-color, 33%); | |
/* Slider - used for Volume bar and Progress bar */ | |
.video-js .vjs-slider { | |
background-color: $slider-bg-color; | |
background-color: rgba($slider-bg-color, 0.5); | |
} | |
/* The slider bar color is used for the progress bar and the volume bar | |
(the first two can be removed after a fix that's coming) */ | |
.video-js .vjs-volume-level, | |
.video-js .vjs-play-progress, | |
.video-js .vjs-slider-bar { | |
background: $primary-foreground-color; | |
} | |
/* The main progress bar also has a bar that shows how much has been loaded. */ | |
.video-js .vjs-load-progress { | |
/* For IE8 we'll lighten the color */ | |
background: ligthen($slider-bg-color, 25%); | |
/* Otherwise we'll rely on stacked opacities */ | |
background: rgba($slider-bg-color, 0.5); | |
} | |
/* The load progress bar also has internal divs that represent | |
smaller disconnected loaded time ranges */ | |
.video-js .vjs-load-progress div { | |
/* For IE8 we'll lighten the color */ | |
background: ligthen($slider-bg-color, 50%); | |
/* Otherwise we'll rely on stacked opacities */ | |
background: rgba($slider-bg-color, 0.75); | |
} | |
// start custom skin | |
.vjs-minimal-skin{ | |
.vjs-big-play-button, &:hover .vjs-big-play-button { | |
background-color: transparent; | |
} | |
.vjs-mouse-display{ | |
z-index: 2 !important; | |
} | |
.vjs-play-progress:before{ | |
content: ''; | |
} | |
.vjs-progress-control:hover .vjs-play-progress:before{ | |
content: '\f111'; | |
} | |
.vjs-volume-bar{ | |
background-color: $slider-bg-color; | |
background-color: rgba($slider-bg-color, 0.5); | |
} | |
} |
<link href="http://vjs.zencdn.net/5-unsafe/video-js.css" rel="stylesheet" /> |
Minimalist skin for Video.js. Can be modified to make custom skins.
The great thing about Video.js skins is they work in both HTML5 video AND Flash!
A Pen by Juan D. Jara on CodePen.