aboutsummaryrefslogtreecommitdiffstats
path: root/assets/less/simple-media.less
diff options
context:
space:
mode:
Diffstat (limited to 'assets/less/simple-media.less')
-rw-r--r--assets/less/simple-media.less619
1 files changed, 619 insertions, 0 deletions
diff --git a/assets/less/simple-media.less b/assets/less/simple-media.less
new file mode 100644
index 00000000..ec83f4e0
--- /dev/null
+++ b/assets/less/simple-media.less
@@ -0,0 +1,619 @@
+// ==========================================================================
+// HTML5 Media Player
+// ==========================================================================
+
+// Variables
+// -------------------------------
+// Colors
+@base-color: #2E3C44;
+@green: #1ABC9C;
+@red: #D44334;
+@blue: #3498DB;
+
+// Grays
+@gray-dark: #343f4a;
+@gray: #565d64;
+@gray-light: #6f7e86;
+@gray-lighter: #859093;
+@gray-lightest: #cbd0d3;
+@gray-light-mega: #dadfe2;
+@off-white: #f9fafb;
+
+// Controls
+@control-color: @gray-lightest;
+@control-color-active: @blue;
+@control-spacing: 10px;
+
+
+// BORDER-BOX ALL THE THINGS! (http://paulirish.com/2012/box-sizing-border-box-ftw/)
+// -------------------------------
+.player,
+.player *,
+.player *::after,
+.player *::before {
+ box-sizing: border-box;
+}
+
+// Utility classes & mixins
+// -------------------------------
+.sr-only {
+ position: absolute !important;
+ clip: rect(1px, 1px, 1px, 1px);
+ padding: 0 !important;
+ border: 0 !important;
+ height: 1px !important;
+ width: 1px !important;
+ overflow: hidden;
+}
+.hide {
+ display: none;
+}
+.show-inline {
+ display: inline-block;
+}
+// Contain floats: nicolasgallagher.com/micro-clearfix-hack/
+.clearfix() {
+ zoom: 1;
+ &:before,
+ &:after { content: ""; display: table; }
+ &:after { clear: both; }
+}
+
+// Base
+.player {
+ position: relative;
+ max-width: 100%;
+ overflow: hidden; // For the controls
+ background: #000;
+
+ // For video
+ &-video {
+ position: relative;
+ }
+
+ &:fullscreen {
+ height: 100%;
+ width: 100%;
+
+ .player-video {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ right: 0;
+ transform: translateY(-50%);
+ }
+ .controls {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+
+ .icon-exit-fullscreen {
+ display: block;
+
+ & + svg {
+ display: none;
+ }
+ }
+ }
+ }
+ video {
+ width: 100%;
+ height: auto;
+ vertical-align: middle;
+ }
+ svg {
+ width: 18px;
+ height: 18px;
+ }
+ .px-video-captions {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ padding: 20px;
+ min-height: 2.5em;
+ //background-color: #000;
+ color: #fff;
+ font-size: 24px;
+ text-shadow: 0 1px 1px rgba(0,0,0, .75);
+ text-align: center;
+ //opacity: 0.75;
+
+ -webkit-font-smoothing: antialiased;
+ font-weight: 500;
+ }
+ .controls {
+ .clearfix();
+ position: relative;
+ //position: absolute;
+ //bottom: 0;
+ //left: 0;
+ //right: 0;
+ padding: (@control-spacing * 2) @control-spacing @control-spacing;
+ //background: rgba(red(@gray-dark), green(@gray-dark), blue(@gray-dark), .9);
+ background: @gray-dark;
+ //transition: transform .3s ease;
+ line-height: 1;
+
+ button {
+ border: 0;
+ background: transparent;
+ overflow: hidden;
+ }
+ label,
+ button {
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 2px;
+ padding: (@control-spacing / 2) @control-spacing;
+ color: @control-color;
+ transition: background .3s ease;
+ border-radius: 3px;
+
+ svg {
+ display: block;
+ fill: currentColor;
+ transition: fill .3s ease;
+ }
+ &:focus {
+ outline: 0;
+ }
+ &:hover {
+ background: @control-color-active;
+ }
+ &:hover svg,
+ &:focus svg {
+ fill: #fff;
+ }
+ }
+ .icon-exit-fullscreen {
+ display: none;
+ }
+ .px-video-time {
+ display: inline-block;
+ vertical-align: middle;
+ margin-left: @control-spacing;
+ color: #fff;
+ font-weight: 600;
+ font-size: 14px;
+ -webkit-font-smoothing: antialiased;
+ }
+ }
+ progress {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ width: 100%;
+ height: @control-spacing;
+ margin: 0;
+ vertical-align: top;
+
+ &[value] {
+ /* Reset the default appearance */
+ -webkit-appearance: none;
+ border: none;
+ background: @gray;
+ cursor: pointer;
+
+ &::-webkit-progress-bar {
+ background: @gray;
+ }
+
+ // The value
+ &::-webkit-progress-value {
+ background: @control-color-active;
+ }
+ &::-moz-progress-bar {
+ background: @control-color-active;
+ }
+ }
+ }
+ .play-controls {
+ float: left;
+ }
+ .sound-controls {
+ float: right;
+ }
+ /*&.playing .controls {
+ transform: translateY(100%);
+ }*/
+
+ .controls .px-video-pause,
+ &.playing .controls .px-video-play {
+ display: none;
+ }
+ &.playing .controls .px-video-pause {
+ display: inline-block;
+ }
+
+ /* volume range input */
+ input[type='range'] {
+ -webkit-appearance: none;
+ height: 6px;
+ width: 100px;
+ margin-right: @control-spacing;
+ background: @gray;
+ outline: 0;
+ border-radius: 10px;
+
+ &:focus::-webkit-slider-thumb {
+ //outline: 1px #999 dotted;
+ background: @control-color-active;
+ }
+ &::-moz-range-track {
+ -moz-appearance: none;
+ height: 6px;
+ background: @gray;
+ border: none;
+ border-radius: 10px;
+ }
+ &::-webkit-slider-thumb {
+ -webkit-appearance: none !important;
+ height: 12px;
+ width: 12px;
+ background: @control-color;
+ border-radius: 100%;
+ transition: background .3s ease;
+ }
+ &::-moz-range-thumb {
+ height: 12px;
+ width: 12px;
+ background: @control-color;
+ border-radius: 100%;
+ }
+ }
+}
+
+
+/* containers */
+
+/* progress indicator */
+.px-video-progress {
+
+
+}
+
+/* time */
+/*.px-video-time {
+ float: right;
+ margin-top: 2px;
+ font-size: 14px;
+}*/
+
+/* caption area */
+
+
+/* buttons */
+.px-video-controls button {
+
+ //background: no-repeat url('../images/px-video-sprite.png');
+}
+.px-video-controls button:focus {
+ //border: 1px #999 dotted;
+ //outline: none;
+}
+.px-video-controls button {
+ //cursor: pointer;
+}
+
+/* captions button */
+.px-video-captions-btn-container label {
+ display: inline-block;
+ width: 25px;
+ height: 20px;
+ margin-left: 25px;
+ background: no-repeat url('../images/px-video-sprite.png');
+ background-position: -6px -835px;
+}
+.px-video-captions-btn-container input[type="checkbox"]:focus+label {
+ outline: 1px #999 dotted;
+ background-position: -6px -799px;
+}
+.px-video-captions-btn-container input[type="checkbox"]:hover+label {
+ background-position: -6px -799px;
+ cursor: pointer;
+}
+.px-video-captions-btn-container input[type="checkbox"]:focus+label {
+ outline: 1px #999 dotted;
+ background-position: -6px -799px;
+}
+.px-video-captions-btn-container input[type="checkbox"]:checked+label {
+ background-position: -6px -871px;
+}
+
+/* mute button */
+.px-video-mute-btn-container label {
+ display: inline-block;
+ width: 25px;
+ height: 20px;
+ margin-left: 240px;
+ margin-top: 2px;
+ background: no-repeat url('../images/px-video-sprite.png');
+ background-position: -6px -476px;
+}
+.px-video-mute-btn-container input[type="checkbox"]:focus+label {
+ outline: 1px #999 dotted;
+ background-position: -6px -440px;
+}
+.px-video-mute-btn-container input[type="checkbox"]:hover+label {
+ background-position: -6px -440px;
+ cursor: pointer;
+}
+.px-video-mute-btn-container input[type="checkbox"]:focus+label {
+ outline: 1px #999 dotted;
+ background-position: -6px -440px;
+}
+/* checked state of mute button */
+.px-video-mute-btn-container input[type="checkbox"]:checked+label {
+ background-position: -6px -692px;
+}
+.px-video-mute-btn-container input[type="checkbox"]:checked:hover+label,
+.px-video-mute-btn-container input[type="checkbox"]:checked:focus+label {
+ background-position: -6px -656px;
+}
+
+/* fixing display for IE10+ */
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ .px-video-controls input[type='range'] {
+ position: relative;
+ padding: 0;
+ height: 8px;
+ top: -3px;
+ }
+ .px-video-time {
+ margin-top: 4px;
+ }
+ .px-video-captions {
+ padding: 8px;
+ min-height: 36px;
+ }
+}
+
+/*.media {
+ position: relative;
+ overflow: hidden;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+
+ video {
+ width: 100%;
+
+ &::-webkit-media-controls {
+ display:none !important;
+ }
+ }
+ &.stopped,
+ &.paused {
+ .overlay-play {
+ display: block;
+ }
+ .media-controls {
+ transform: translate3d(0, 0, 0);
+ }
+ }
+}
+.media-controls {
+ height: 50px;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ z-index: 2;
+
+ .translate3d(0, 100%, 0);
+ .transition-transform(.5s);
+
+ background-color: @base-color;
+ color: #fff;
+ .font-size(15);
+ -webkit-font-smoothing: antialiased;
+ font-weight: 600;
+ .user-select(none);
+
+ button {
+ display: inline-block;
+ padding: 8px 15px;
+ margin: 0;
+
+ -webkit-appearance: none;
+ background: none;
+ border: none;
+ color: #fff;
+ .font-size(24);
+
+ .transition();
+
+ &:focus {
+ outline: none;
+ }
+
+ &:hover,
+ &:focus {
+ text-shadow: 0 0 15px @green;
+ }
+ }
+
+ .progress {
+ position: relative;
+ .border-radius(10px);
+ height: 10px;
+ background: lighten(@base-color, 10%);
+
+ div {
+ position: absolute;
+ z-index: 1;
+ left: 0;
+ .border-radius(10px);
+ height: 10px;
+ min-width: 10px; // So it doesn't look strange at 0%
+
+ &.progress-played,
+ &.progress-volume {
+ background: @green;
+ z-index: 2;
+ }
+ &.progress-buffered {
+ background: lighten(@base-color, 20%);
+ }
+ }
+ &.vertical-progress {
+ margin: 0 auto;
+ width: 10px;
+ height: auto;
+ min-height: 100px;
+
+ div {
+ bottom: 0;
+ width: 10px;
+ height: auto;
+ min-height: 10px;
+ }
+ }
+ }
+
+ .popover {
+ display: none;
+ position: absolute;
+ left: 50%;
+ bottom: 100%;
+ margin-bottom: 10px;
+
+ background: @base-color;
+ .border-radius(4px);
+
+ -webkit-animation: pop-upwards 160ms forwards linear;
+ -moz-animation: pop-upwards 160ms forwards linear;
+ -ms-animation: pop-upwards 160ms forwards linear;
+ -o-animation: pop-upwards 160ms forwards linear;
+ animation: pop-upwards 160ms forwards linear;
+
+ .transition();
+
+ // Psuedo bits
+ &::before {
+ position: absolute;
+ bottom: -7px;
+ left: 50%;
+ margin-left: -7px;
+ width: 0;
+ height: 0;
+ border-right: 7px solid transparent;
+ border-top: 7px solid @base-color;
+ border-left: 7px solid transparent;
+ content: '';
+ z-index: 1;
+ }
+ }
+ .has-popover:focus,
+ .has-popover:hover {
+ .popover {
+ display: block;
+ }
+ }
+
+ .popover-volume {
+ width: 54px;
+ padding: 15px 5px 8px;
+ margin-left: -27px;
+
+ text-align: center;
+
+ .progress {
+ height: 120px;
+ margin-bottom: 5px;
+ }
+ }
+
+ // Layout
+ .play,
+ .progress-play,
+ .volume,
+ .time,
+ .fullscreen {
+ position: absolute;
+ top: 0;
+ }
+ .play {
+ left: 10px;
+ }
+ .progress-play {
+ left: 70px;
+ right: 240px;
+ margin-top: 20px;
+ }
+ .time {
+ right: 120px;
+ width: 100px;
+ text-align: center;
+ line-height: 1;
+ padding-top: 17px;
+ }
+ .volume {
+ right: 60px;
+ }
+ .fullscreen {
+ right: 10px;
+ }
+
+ @media only screen
+ and (max-width: 480px) {
+ .time-seperator,
+ .time-total {
+ display: none;
+ }
+ .time {
+ width: 50px;
+ right: 70px;
+ }
+ .fullscreen {
+ display: none;
+ }
+ .volume {
+ right: 10px;
+ }
+ .progress-play {
+ right: 140px;
+ }
+ }
+ @media only screen
+ and (max-width: 320px) {
+ .time {
+ display: none;
+ }
+ .progress-play {
+ right: 70px;
+ }
+ }
+}
+.media-pause .mejs-overlay-play {
+ background: rgba(0,0,0, .1);
+}
+.overlay {
+ display: none;
+ position: absolute;
+ z-index: 1;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ background: rgba(0,0,0, .1);
+}
+.overlay-play > span {
+ display: block;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ width: 60px;
+ height: 60px;
+ line-height: 1.5;
+ margin: -34px 0 0 -34px !important;
+ text-align: center;
+ background: rgba(red(@base-color), green(@base-color), blue(@base-color), .8);
+ border: 4px solid #fff;
+ color: #fff;
+ .border-radius(50%);
+ @shadow: 0 1px 5px rgba(0,0,0, .25), inset 0 1px 1px rgba(0,0,0,.25);
+ .box-shadow(@shadow);
+ .font-size(34);
+}*/ \ No newline at end of file