flatui3-rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (155) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +102 -0
  5. data/Rakefile +1 -0
  6. data/app/assets/fonts/Flat-UI-Icons.dev.svg +140 -0
  7. data/app/assets/fonts/Flat-UI-Icons.eot +0 -0
  8. data/app/assets/fonts/Flat-UI-Icons.svg +140 -0
  9. data/app/assets/fonts/Flat-UI-Icons.ttf +0 -0
  10. data/app/assets/fonts/Flat-UI-Icons.woff +0 -0
  11. data/app/assets/fonts/icomoon-session.json +1 -0
  12. data/app/assets/fonts/lato/lato-black-webfont.eot +0 -0
  13. data/app/assets/fonts/lato/lato-black-webfont.svg +4691 -0
  14. data/app/assets/fonts/lato/lato-black-webfont.ttf +0 -0
  15. data/app/assets/fonts/lato/lato-black-webfont.woff +0 -0
  16. data/app/assets/fonts/lato/lato-bold-webfont.eot +0 -0
  17. data/app/assets/fonts/lato/lato-bold-webfont.svg +5085 -0
  18. data/app/assets/fonts/lato/lato-bold-webfont.ttf +0 -0
  19. data/app/assets/fonts/lato/lato-bold-webfont.woff +0 -0
  20. data/app/assets/fonts/lato/lato-bolditalic-webfont.eot +0 -0
  21. data/app/assets/fonts/lato/lato-bolditalic-webfont.svg +4514 -0
  22. data/app/assets/fonts/lato/lato-bolditalic-webfont.ttf +0 -0
  23. data/app/assets/fonts/lato/lato-bolditalic-webfont.woff +0 -0
  24. data/app/assets/fonts/lato/lato-italic-webfont.eot +0 -0
  25. data/app/assets/fonts/lato/lato-italic-webfont.svg +4514 -0
  26. data/app/assets/fonts/lato/lato-italic-webfont.ttf +0 -0
  27. data/app/assets/fonts/lato/lato-italic-webfont.woff +0 -0
  28. data/app/assets/fonts/lato/lato-light-webfont.eot +0 -0
  29. data/app/assets/fonts/lato/lato-light-webfont.svg +4691 -0
  30. data/app/assets/fonts/lato/lato-light-webfont.ttf +0 -0
  31. data/app/assets/fonts/lato/lato-light-webfont.woff +0 -0
  32. data/app/assets/fonts/lato/lato-regular-webfont.eot +0 -0
  33. data/app/assets/fonts/lato/lato-regular-webfont.svg +4691 -0
  34. data/app/assets/fonts/lato/lato-regular-webfont.ttf +0 -0
  35. data/app/assets/fonts/lato/lato-regular-webfont.woff +0 -0
  36. data/app/assets/images/demo/browser-2x.png +0 -0
  37. data/app/assets/images/demo/browser-author.jpg +0 -0
  38. data/app/assets/images/demo/browser-pic-1.jpg +0 -0
  39. data/app/assets/images/demo/browser-pic-2.jpg +0 -0
  40. data/app/assets/images/demo/browser-pic-3.jpg +0 -0
  41. data/app/assets/images/demo/browser-pic-4.jpg +0 -0
  42. data/app/assets/images/demo/browser-pic-5.jpg +0 -0
  43. data/app/assets/images/demo/browser-pic-6.jpg +0 -0
  44. data/app/assets/images/demo/browser.png +0 -0
  45. data/app/assets/images/demo/html-icon.png +0 -0
  46. data/app/assets/images/demo/logo-mask-2x.png +0 -0
  47. data/app/assets/images/demo/logo-mask.png +0 -0
  48. data/app/assets/images/demo/video.jpg +0 -0
  49. data/app/assets/images/exaple-image.jpg +0 -0
  50. data/app/assets/images/favicon.ico +0 -0
  51. data/app/assets/images/footer/logo.png +0 -0
  52. data/app/assets/images/icons/png/Book.png +0 -0
  53. data/app/assets/images/icons/png/Calendar.png +0 -0
  54. data/app/assets/images/icons/png/Chat.png +0 -0
  55. data/app/assets/images/icons/png/Clipboard.png +0 -0
  56. data/app/assets/images/icons/png/Compas.png +0 -0
  57. data/app/assets/images/icons/png/Gift-Box.png +0 -0
  58. data/app/assets/images/icons/png/Infinity-Loop.png +0 -0
  59. data/app/assets/images/icons/png/Mail.png +0 -0
  60. data/app/assets/images/icons/png/Map.png +0 -0
  61. data/app/assets/images/icons/png/Pensils.png +0 -0
  62. data/app/assets/images/icons/png/Pocket.png +0 -0
  63. data/app/assets/images/icons/png/Retina-Ready.png +0 -0
  64. data/app/assets/images/icons/png/Toilet-Paper.png +0 -0
  65. data/app/assets/images/icons/png/Watches.png +0 -0
  66. data/app/assets/images/icons/svg/book.svg +1 -0
  67. data/app/assets/images/icons/svg/calendar.svg +1 -0
  68. data/app/assets/images/icons/svg/chat.svg +1 -0
  69. data/app/assets/images/icons/svg/clipboard.svg +1 -0
  70. data/app/assets/images/icons/svg/clocks.svg +9 -0
  71. data/app/assets/images/icons/svg/compas.svg +1 -0
  72. data/app/assets/images/icons/svg/gift-box.svg +1 -0
  73. data/app/assets/images/icons/svg/loop.svg +5 -0
  74. data/app/assets/images/icons/svg/mail.svg +1 -0
  75. data/app/assets/images/icons/svg/map.svg +1 -0
  76. data/app/assets/images/icons/svg/paper-bag.svg +1 -0
  77. data/app/assets/images/icons/svg/pencils.svg +1 -0
  78. data/app/assets/images/icons/svg/retina.svg +1 -0
  79. data/app/assets/images/icons/svg/toilet-paper.svg +1 -0
  80. data/app/assets/images/login/icon.png +0 -0
  81. data/app/assets/images/login/imac-2x.png +0 -0
  82. data/app/assets/images/login/imac.png +0 -0
  83. data/app/assets/images/switch/mask-square.png +0 -0
  84. data/app/assets/images/switch/mask.png +0 -0
  85. data/app/assets/images/tile/ribbon-2x.png +0 -0
  86. data/app/assets/images/tile/ribbon.png +0 -0
  87. data/app/assets/images/todo/done-2x.png +0 -0
  88. data/app/assets/images/todo/done.png +0 -0
  89. data/app/assets/images/todo/search-2x.png +0 -0
  90. data/app/assets/images/todo/search.png +0 -0
  91. data/app/assets/images/todo/todo-2x.png +0 -0
  92. data/app/assets/images/todo/todo.png +0 -0
  93. data/app/assets/images/video/fullscreen-2x.png +0 -0
  94. data/app/assets/images/video/fullscreen.png +0 -0
  95. data/app/assets/images/video/pause-2x.png +0 -0
  96. data/app/assets/images/video/pause.png +0 -0
  97. data/app/assets/images/video/play-2x.png +0 -0
  98. data/app/assets/images/video/play.png +0 -0
  99. data/app/assets/images/video/poster.jpg +0 -0
  100. data/app/assets/images/video/volume-full-2x.png +0 -0
  101. data/app/assets/images/video/volume-full.png +0 -0
  102. data/app/assets/images/video/volume-off-2x.png +0 -0
  103. data/app/assets/images/video/volume-off.png +0 -0
  104. data/app/assets/javascripts/bootstrap-select.js +412 -0
  105. data/app/assets/javascripts/bootstrap-switch.js +251 -0
  106. data/app/assets/javascripts/bootstrap-typeahead.js +335 -0
  107. data/app/assets/javascripts/flatui-checkbox.js +112 -0
  108. data/app/assets/javascripts/flatui-radio.js +141 -0
  109. data/app/assets/javascripts/flatui.js +9 -0
  110. data/app/assets/javascripts/html5shiv.js +8 -0
  111. data/app/assets/javascripts/icon-font-ie7.js +57 -0
  112. data/app/assets/javascripts/jquery-ui-1.10.3.min.js +6 -0
  113. data/app/assets/javascripts/jquery.placeholder.js +157 -0
  114. data/app/assets/javascripts/jquery.stacktable.js +54 -0
  115. data/app/assets/javascripts/jquery.tagsinput.js +355 -0
  116. data/app/assets/javascripts/jquery.ui.touch-punch.min.js +11 -0
  117. data/app/assets/stylesheets/flatui.less +45 -0
  118. data/flatui3-rails.gemspec +25 -0
  119. data/lib/flatui3-rails.rb +1 -0
  120. data/lib/flatui3/rails.rb +7 -0
  121. data/lib/flatui3/rails/engine.rb +13 -0
  122. data/lib/flatui3/rails/version.rb +5 -0
  123. data/lib/generators/flatui3/override/override_generator.rb +15 -0
  124. data/lib/generators/flatui3/override/templates/flatui_and_overrides.less +49 -0
  125. data/vendor/toolkit/flat-ui/flat-ui.less +45 -0
  126. data/vendor/toolkit/flat-ui/fonts.less +65 -0
  127. data/vendor/toolkit/flat-ui/icon-font.less +128 -0
  128. data/vendor/toolkit/flat-ui/mixins.less +365 -0
  129. data/vendor/toolkit/flat-ui/modules/buttons.less +231 -0
  130. data/vendor/toolkit/flat-ui/modules/caret.less +31 -0
  131. data/vendor/toolkit/flat-ui/modules/checkbox-and-radio.less +104 -0
  132. data/vendor/toolkit/flat-ui/modules/dropdown.less +225 -0
  133. data/vendor/toolkit/flat-ui/modules/footer.less +75 -0
  134. data/vendor/toolkit/flat-ui/modules/forms.less +127 -0
  135. data/vendor/toolkit/flat-ui/modules/input-icons.less +71 -0
  136. data/vendor/toolkit/flat-ui/modules/login.less +111 -0
  137. data/vendor/toolkit/flat-ui/modules/navbar.less +487 -0
  138. data/vendor/toolkit/flat-ui/modules/pager.less +49 -0
  139. data/vendor/toolkit/flat-ui/modules/pagination.less +153 -0
  140. data/vendor/toolkit/flat-ui/modules/palette.less +64 -0
  141. data/vendor/toolkit/flat-ui/modules/progress-bars.less +36 -0
  142. data/vendor/toolkit/flat-ui/modules/select.less +143 -0
  143. data/vendor/toolkit/flat-ui/modules/share.less +41 -0
  144. data/vendor/toolkit/flat-ui/modules/switch.less +150 -0
  145. data/vendor/toolkit/flat-ui/modules/tagsinput.less +117 -0
  146. data/vendor/toolkit/flat-ui/modules/tile.less +54 -0
  147. data/vendor/toolkit/flat-ui/modules/todo.less +107 -0
  148. data/vendor/toolkit/flat-ui/modules/tooltip.less +55 -0
  149. data/vendor/toolkit/flat-ui/modules/type.less +126 -0
  150. data/vendor/toolkit/flat-ui/modules/ui-slider.less +62 -0
  151. data/vendor/toolkit/flat-ui/modules/video.less +458 -0
  152. data/vendor/toolkit/flat-ui/scaffolding.less +46 -0
  153. data/vendor/toolkit/flat-ui/spaces.less +172 -0
  154. data/vendor/toolkit/flat-ui/variables.less +167 -0
  155. metadata +248 -0
@@ -0,0 +1,55 @@
1
+ // Tooltip
2
+ // --------------------------------------------------
3
+
4
+ .tooltip {
5
+ font-size: @font-size-base;
6
+
7
+ &.in {
8
+ opacity: 1;
9
+ }
10
+ &.top {
11
+ padding-bottom: 9px;
12
+
13
+ .tooltip-arrow {
14
+ border-top-color: @base;
15
+ border-width: 9px 9px 0;
16
+ bottom: 0;
17
+ margin-left: -9px;
18
+ }
19
+ }
20
+ &.right {
21
+ .tooltip-arrow {
22
+ border-right-color: @base;
23
+ border-width: 9px 9px 9px 0;
24
+ margin-top: -9px;
25
+ left: -3px;
26
+ }
27
+ }
28
+ &.bottom {
29
+ padding-top: 8px;
30
+
31
+ .tooltip-arrow {
32
+ border-bottom-color: @base;
33
+ border-width: 0 9px 9px;
34
+ margin-left: -9px;
35
+ top: -1px;
36
+ }
37
+ }
38
+ &.left {
39
+ .tooltip-arrow {
40
+ border-left-color: @base;
41
+ border-width: 9px 0 9px 9px;
42
+ margin-top: -9px;
43
+ right: -3px;
44
+ }
45
+ }
46
+ }
47
+
48
+ .tooltip-inner {
49
+ background-color: @base;
50
+ line-height: ceil(@font-size-base * 1.285);
51
+ padding: 12px 12px;
52
+ text-align: center;
53
+ width: 183px;
54
+ border-radius: @border-radius-large;
55
+ }
@@ -0,0 +1,126 @@
1
+ //
2
+ // Typography
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Body text
7
+ // -------------------------
8
+
9
+ p {
10
+ font-size: ceil(@font-size-base * 1.28); // ~18px
11
+ line-height: @line-height-base * 1.39; // ~31px
12
+ }
13
+
14
+ .lead {
15
+ font-size: @font-size-base * 2; // ~28px
16
+ line-height: @line-height-base * 1.1895; // ~41px
17
+ font-weight: 300;
18
+
19
+ @media (min-width: 768px) {
20
+ font-size: (@font-size-base * 1.5);
21
+ }
22
+ }
23
+
24
+ // Emphasis & misc
25
+ // -------------------------
26
+
27
+ small {
28
+ font-size: 83%; // ~15px
29
+ line-height: @line-height-base * 1.666; // ~31px
30
+ }
31
+
32
+ // Contextual emphasis
33
+ .text-primary { .swap-text-color(@firm); }
34
+ .text-success { .swap-text-color(@success); }
35
+ .text-danger { .swap-text-color(@danger); }
36
+ .text-warning { .swap-text-color(@warning); }
37
+ .text-info { .swap-text-color(@info); }
38
+ .text-inverse { .swap-text-color(@inverse); }
39
+ .text-muted { .swap-text-color(@lightgray); }
40
+
41
+
42
+ // Headings
43
+ // -------------------------
44
+
45
+ h1, h2, h3, h4, h5, h6,
46
+ .h1, .h2, .h3, .h4, .h5, .h6 {
47
+ font-family: @headings-font-family;
48
+ font-weight: @headings-font-weight;
49
+ line-height: @headings-line-height;
50
+
51
+ small {
52
+ color: mix(@base, white, 63%);
53
+ }
54
+ }
55
+
56
+ h1,
57
+ h2,
58
+ h3 {
59
+ margin-top: 2px;
60
+ margin-bottom: 4px;
61
+ }
62
+ h4,
63
+ h5,
64
+ h6 {
65
+ margin-top: 4px;
66
+ margin-bottom: 6px;
67
+ }
68
+
69
+ h6 {
70
+ font-weight: normal;
71
+ }
72
+
73
+ h1, .h1 { font-size: floor(@font-size-base * 4.42); } // ~62px
74
+ h2, .h2 { font-size: ceil(@font-size-base * 3.71); } // ~52px
75
+ h3, .h3 { font-size: ceil(@font-size-base * 2.85); } // ~40px
76
+ h4, .h4 { font-size: ceil(@font-size-base * 2.07); } // ~29px
77
+ h5, .h5 { font-size: @font-size-base * 2 } // ~28px
78
+ h6, .h6 { font-size: ceil(@font-size-base * 1.71); } // ~24px
79
+
80
+ h1 small, .h1 small { font-size: ceil(@font-size-base * 1.71); } // ~24px
81
+ h2 small, .h2 small { font-size: ceil(@font-size-base * 1.28); } // ~18px
82
+ h3 small, .h3 small,
83
+ h4 small, .h4 small { font-size: @font-size-base; }
84
+
85
+ // Blockquote
86
+ blockquote {
87
+ position: relative;
88
+ border-left: none;
89
+ padding: 0 0 0 19px;
90
+
91
+ &:before {
92
+ position: absolute;
93
+ left: 0;
94
+ width: 3px;
95
+ height: 100%;
96
+ top: 0;
97
+ bottom: 0;
98
+ background-color: #ebedee;
99
+ content: "";
100
+ border-radius: 2px;
101
+ }
102
+
103
+ p {
104
+ font-size: ceil(@font-size-base * 1.429);
105
+ line-height: ceil(@line-height-base * 1.259);
106
+ font-weight: normal;
107
+ margin-bottom: .4em;
108
+ }
109
+
110
+ small {
111
+ font-size: ceil(@font-size-base * 1.286);
112
+ line-height: ceil(@line-height-base * 1.399);
113
+ font-style: italic;
114
+ color: @base;
115
+
116
+ &:before {
117
+ content: "";
118
+ }
119
+ }
120
+ }
121
+
122
+ // Addresses
123
+ address {
124
+ margin-bottom: @line-height-base;
125
+ line-height: @line-height-base;
126
+ }
@@ -0,0 +1,62 @@
1
+ // Slider
2
+ // --------------------------------------------------
3
+
4
+ .ui-slider {
5
+ .progress();
6
+ margin-bottom: 20px;
7
+ position: relative;
8
+ }
9
+
10
+ .ui-slider-handle {
11
+ background-color: mix(@firm, black, 85%);
12
+ border-radius: 50%;
13
+ cursor: pointer;
14
+ height: 18px;
15
+ margin-left: -9px;
16
+ position: absolute;
17
+ top: -3px;
18
+ width: 18px;
19
+ z-index: 2;
20
+ .transition(background 0.25s);
21
+
22
+ &[style*='100'] {
23
+ margin-left: -15px;
24
+ }
25
+ &:hover,
26
+ &:focus {
27
+ background-color: mix(@firm, white, 80%);
28
+ outline: none;
29
+ }
30
+ &:active {
31
+ background-color: mix(@firm, black, 85%);
32
+ }
33
+ }
34
+
35
+ .ui-slider-range {
36
+ background-color: @firm;
37
+ border-radius: 30px 0 0 30px;
38
+ display: block;
39
+ height: 100%;
40
+ position: absolute;
41
+ z-index: 1;
42
+ }
43
+
44
+ .ui-slider-segment {
45
+ background-color: mix(desaturate(@base, 15%), white, 20%);
46
+ border-radius: 50%;
47
+ float: left;
48
+ height: 6px;
49
+ margin: 3px -6px 0 0;
50
+ width: 6px;
51
+ }
52
+
53
+ .ui-slider-value {
54
+ float: right;
55
+ font-weight: 500;
56
+ margin-top: @progress-height;
57
+
58
+ &.first {
59
+ clear: left;
60
+ float: left;
61
+ }
62
+ }
@@ -0,0 +1,458 @@
1
+ //
2
+ // Video Player
3
+ // --------------------------------------------------
4
+
5
+ // Module color variable
6
+ @controls-color: mix(@base, black, 75%);
7
+
8
+ .video-js {
9
+ background-color: transparent;
10
+ // Otherwise you won't see controls in Fullscreen mode
11
+ margin-top: -95px;
12
+ position: relative;
13
+ padding: 0;
14
+ font-size: 10px;
15
+ vertical-align: middle;
16
+ border-radius: @border-radius-large @border-radius-large 0 0;
17
+ -webkit-backface-visibility: hidden;
18
+ -moz-backface-visibility:hidden;
19
+ -ms-backface-visibility:hidden;
20
+ backface-visibility:hidden;
21
+
22
+ .vjs-tech {
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ width: 100%;
27
+ height: 100%;
28
+ border-radius: @border-radius-large @border-radius-large 0 0;
29
+ }
30
+ &:-moz-full-screen {
31
+ position: absolute;
32
+ }
33
+ }
34
+
35
+ body.vjs-full-window {
36
+ padding: 0;
37
+ margin: 0;
38
+ height: 100%;
39
+ overflow-y: auto;
40
+ }
41
+
42
+ .video-js {
43
+ &.vjs-fullscreen {
44
+ position: fixed;
45
+ overflow: hidden;
46
+ z-index: 1000;
47
+ left: 0;
48
+ top: 0;
49
+ bottom: 0;
50
+ right: 0;
51
+ width: 100% !important;
52
+ height: 100% !important;
53
+ _position: absolute;
54
+ }
55
+ &:-webkit-full-screen {
56
+ width: 100% !important;
57
+ height: 100% !important;
58
+ }
59
+ }
60
+
61
+ .vjs-poster {
62
+ margin: 0 auto;
63
+ padding: 0;
64
+ cursor: pointer;
65
+ position: relative;
66
+ width: 100%;
67
+ max-height: 100%;
68
+ border-radius: @border-radius-large @border-radius-large 0 0;
69
+ }
70
+
71
+ .video-js {
72
+ .vjs-text-track-display {
73
+ text-align: center;
74
+ position: absolute;
75
+ bottom: 4em;
76
+ left: 1em;
77
+ right: 1em;
78
+ font-family: @font-family-base;
79
+ }
80
+ .vjs-text-track {
81
+ display: none;
82
+ color: @inverse;
83
+ font-size: 1.4em;
84
+ text-align: center;
85
+ margin-bottom: .1em;
86
+ background: #000;
87
+ background: rgba(0,0,0,.5);
88
+ }
89
+ .vjs-subtitles {
90
+ color: #fff;
91
+ }
92
+ .vjs-captions {
93
+ color: #fc6;
94
+ }
95
+ }
96
+
97
+ .vjs-tt-cue {
98
+ display: block;
99
+ }
100
+
101
+ .vjs-fade-in {
102
+ visibility: visible !important;
103
+ opacity: 1 !important;
104
+ .transition(~"visibility 0s linear 0s, opacity .3s linear");
105
+ }
106
+ .vjs-fade-out {
107
+ visibility: hidden !important;
108
+ opacity: 0 !important;
109
+ .transition(~"visibility 0s linear 1.5s, opacity 1.5s linear");
110
+ }
111
+
112
+ .vjs-control-bar {
113
+ position: absolute;
114
+ bottom: -47px;
115
+ left: 0;
116
+ right: 0;
117
+ margin: 0;
118
+ padding: 0;
119
+ height: 47px;
120
+ color: @inverse;
121
+ background: @controls-color;
122
+ border-radius: 0 0 @border-radius-large @border-radius-large;
123
+
124
+ &.vjs-fade-out {
125
+ visibility: visible !important;
126
+ opacity: 1 !important;
127
+ }
128
+ }
129
+
130
+ // Video player control general style
131
+ .vjs-control {
132
+ background-position: center center;
133
+ background-repeat: no-repeat;
134
+ position: relative;
135
+ float: left;
136
+ text-align: center;
137
+ margin: 0;
138
+ padding: 0;
139
+ height: 18px;
140
+ width: 18px;
141
+
142
+ &:focus {
143
+ outline: 0
144
+ }
145
+ div {
146
+ background-position: center center;
147
+ background-repeat: no-repeat;
148
+ }
149
+ }
150
+
151
+ // Control tooltip
152
+ .vjs-control-text {
153
+ border: 0;
154
+ clip: rect(0 0 0 0);
155
+ height: 1px;
156
+ margin: -1px;
157
+ overflow: hidden;
158
+ padding: 0;
159
+ position: absolute;
160
+ width: 1px;
161
+ }
162
+
163
+ .vjs-play-control {
164
+ cursor: pointer !important;
165
+ height: 47px;
166
+ left: 0;
167
+ position: absolute;
168
+ top: 0;
169
+ width: 58px;
170
+
171
+ div {
172
+ position: relative;
173
+ height: 47px;
174
+
175
+ &:before,
176
+ &:after {
177
+ position: absolute;
178
+ font-family: "Flat-UI-Icons";
179
+ color: @firm;
180
+ font-size: 16px;
181
+ top: 50%;
182
+ left: 50%;
183
+ margin: -0.55em 0 0 -0.5em;
184
+ .transition(~"color .25s, opacity .25s");
185
+ }
186
+ &:after {
187
+ content: "\e03b";
188
+ }
189
+ &:before {
190
+ content: "\e03c";
191
+ }
192
+ }
193
+ }
194
+
195
+ .vjs-paused .vjs-play-control {
196
+ &:hover {
197
+ div:before {
198
+ color: mix(@firm, black, 85%);
199
+ }
200
+ }
201
+ div {
202
+ &:after {
203
+ .opacity(0);
204
+ }
205
+ &:before {
206
+ .opacity(1);
207
+ }
208
+ }
209
+ }
210
+
211
+ .vjs-playing .vjs-play-control {
212
+ &:hover {
213
+ div:after {
214
+ color: mix(@firm, black, 85%);
215
+ }
216
+ }
217
+ div {
218
+ &:after {
219
+ .opacity(1);
220
+ }
221
+ &:before {
222
+ .opacity(0);
223
+ }
224
+ }
225
+ }
226
+
227
+ .vjs-rewind-control {
228
+ width: 5em;
229
+ cursor: pointer !important;
230
+
231
+ div {
232
+ width: 19px;
233
+ height: 16px;
234
+ background: none transparent;
235
+ margin: .5em auto 0;
236
+ }
237
+ }
238
+
239
+ .vjs-mute-control {
240
+ background: asset-url("video/volume-full.png") center -48px no-repeat;
241
+ background-size: 16px 64px;
242
+ cursor: pointer !important;
243
+ position: absolute;
244
+ right: 51px;
245
+ top: 14px;
246
+
247
+ &:hover,
248
+ &:focus {
249
+ div {
250
+ opacity: 0;
251
+ }
252
+ }
253
+
254
+ // Muted state
255
+ &.vjs-vol-0 {
256
+ &,
257
+ div {
258
+ background-image: asset-url("video/volume-off.png");
259
+ }
260
+ }
261
+ div {
262
+ background: @controls-color asset-url("video/volume-full.png") no-repeat center 2px;
263
+ background-size: 16px 64px;
264
+ height: 18px;
265
+ .transition(opacity .25s);
266
+ }
267
+ }
268
+
269
+ .vjs-volume-control,
270
+ .vjs-volume-level,
271
+ .vjs-volume-handle,
272
+ .vjs-volume-bar {
273
+ display: none;
274
+ }
275
+
276
+ .vjs-progress-control {
277
+ position: absolute;
278
+ left: 60px;
279
+ right: 180px;
280
+ height: 12px;
281
+ width: auto;
282
+ top: 18px;
283
+ background: mix(@base, @inverse, 93%);
284
+ .border-radius(32px);
285
+ }
286
+
287
+ .vjs-progress-holder {
288
+ position: relative;
289
+ cursor: pointer !important;
290
+ padding: 0;
291
+ margin: 0;
292
+ height: 12px;
293
+ }
294
+
295
+ .vjs-play-progress,
296
+ .vjs-load-progress {
297
+ position: absolute;
298
+ display: block;
299
+ height: 12px;
300
+ margin: 0;
301
+ padding: 0;
302
+ left: 0;
303
+ top: 0;
304
+ .border-radius(32px);
305
+ }
306
+
307
+ .vjs-play-progress {
308
+ background: @firm;
309
+ left: -1px;
310
+ }
311
+
312
+ .vjs-load-progress {
313
+ background: mix(@base, @inverse, 20%);
314
+ border-radius: 32px 0 0 32px;
315
+
316
+ &[style*='100%'],
317
+ &[style*='99%'] {
318
+ .border-radius(32px);
319
+ }
320
+ }
321
+
322
+ .vjs-seek-handle {
323
+ background-color: mix(@firm, black, 85%);
324
+ position: absolute;
325
+ width: 18px;
326
+ height: 18px;
327
+ margin: -3px 0 0 1px;
328
+ left: 0;
329
+ top: 0;
330
+ border-radius: 50%;
331
+ .transition(background-color .25s);
332
+
333
+ &[style*='95.'] {
334
+ margin-left: 3px;
335
+ }
336
+ &[style='left: 0%;'] {
337
+ margin-left: -2px;
338
+ }
339
+ &:hover,
340
+ &:focus {
341
+ background-color: mix(@firm, black, 75%);
342
+ }
343
+ &:active {
344
+ background-color: mix(@firm, black, 65%)
345
+ }
346
+ }
347
+
348
+ // Player time controls
349
+ .vjs-time-controls {
350
+ position: absolute;
351
+ height: 20px;
352
+ width: 50px;
353
+ top: 16px;
354
+ font: 300 13px @font-family-base;
355
+ }
356
+
357
+ .vjs-current-time {
358
+ right: 128px;
359
+ text-align: right;
360
+ }
361
+
362
+ .vjs-duration {
363
+ color: mix(@base, @inverse, 80%);
364
+ right: 69px;
365
+ text-align: left;
366
+ }
367
+
368
+ .vjs-remaining-time {
369
+ display: none;
370
+ }
371
+
372
+ .vjs-time-divider {
373
+ color: mix(@base, @inverse, 80%);
374
+ font-size: 14px;
375
+ position: absolute;
376
+ right: 121px;
377
+ top: 15px;
378
+ }
379
+
380
+ .vjs-secondary-controls {
381
+ float: right;
382
+ }
383
+
384
+ .vjs-fullscreen-control {
385
+ background-image: asset-url("video/fullscreen.png");
386
+ background-position: center -47px;
387
+ background-size: 15px 64px;
388
+ cursor: pointer !important;
389
+ position: absolute;
390
+ right: 17px;
391
+ top: 13px;
392
+
393
+ &:hover,
394
+ &:focus {
395
+ div {
396
+ opacity: 0;
397
+ }
398
+ }
399
+ div {
400
+ height: 18px;
401
+ background: asset-url("video/fullscreen.png") no-repeat center 2px;
402
+ background-size: 15px 64px;
403
+ .transition(opacity .25s);
404
+ }
405
+ }
406
+
407
+ // Subtitles menu. Hide for no need by design.
408
+ .vjs-menu-button {
409
+ display: none !important;
410
+ }
411
+
412
+ // Video preloader
413
+ .sharp-keyframes() {
414
+ 0% {
415
+ background: #e74c3c;
416
+ border-radius: 10px;
417
+ .transform(rotate(0deg));
418
+ }
419
+ 50% {
420
+ background: #ebedee;
421
+ border-radius: 0;
422
+ .transform(rotate(180deg));
423
+ }
424
+ 100% {
425
+ background: #e74c3c;
426
+ border-radius: 10px;
427
+ .transform(rotate(360deg));
428
+ }
429
+ }
430
+
431
+ @-webkit-keyframes sharp {
432
+ .sharp-keyframes();
433
+ }
434
+
435
+ @-moz-keyframes sharp {
436
+ .sharp-keyframes();
437
+ }
438
+
439
+ @-o-keyframes sharp {
440
+ .sharp-keyframes();
441
+ }
442
+
443
+ @keyframes sharp {
444
+ .sharp-keyframes();
445
+ }
446
+
447
+ .vjs-loading-spinner {
448
+ background: #ebedee;
449
+ display: none;
450
+ height: 16px;
451
+ left: 50%;
452
+ margin: -8px 0 0 -8px;
453
+ position: absolute;
454
+ top: 50%;
455
+ width: 16px;
456
+ border-radius: 10px;
457
+ .animation(sharp 2s ease infinite);
458
+ }