flatui-rails-less 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +38 -0
  6. data/Rakefile +1 -0
  7. data/flatui-rails-less.gemspec +26 -0
  8. data/lib/flatui/rails/less.rb +11 -0
  9. data/lib/flatui/rails/less/version.rb +7 -0
  10. data/vendor/assets/fonts/Flat-UI-Icons.dev.svg +140 -0
  11. data/vendor/assets/fonts/Flat-UI-Icons.eot +0 -0
  12. data/vendor/assets/fonts/Flat-UI-Icons.svg +140 -0
  13. data/vendor/assets/fonts/Flat-UI-Icons.ttf +0 -0
  14. data/vendor/assets/fonts/Flat-UI-Icons.woff +0 -0
  15. data/vendor/assets/fonts/icomoon-session.json +1 -0
  16. data/vendor/assets/fonts/lato/lato-black-webfont.eot +0 -0
  17. data/vendor/assets/fonts/lato/lato-black-webfont.svg +4691 -0
  18. data/vendor/assets/fonts/lato/lato-black-webfont.ttf +0 -0
  19. data/vendor/assets/fonts/lato/lato-black-webfont.woff +0 -0
  20. data/vendor/assets/fonts/lato/lato-bold-webfont.eot +0 -0
  21. data/vendor/assets/fonts/lato/lato-bold-webfont.svg +5085 -0
  22. data/vendor/assets/fonts/lato/lato-bold-webfont.ttf +0 -0
  23. data/vendor/assets/fonts/lato/lato-bold-webfont.woff +0 -0
  24. data/vendor/assets/fonts/lato/lato-bolditalic-webfont.eot +0 -0
  25. data/vendor/assets/fonts/lato/lato-bolditalic-webfont.svg +4514 -0
  26. data/vendor/assets/fonts/lato/lato-bolditalic-webfont.ttf +0 -0
  27. data/vendor/assets/fonts/lato/lato-bolditalic-webfont.woff +0 -0
  28. data/vendor/assets/fonts/lato/lato-italic-webfont.eot +0 -0
  29. data/vendor/assets/fonts/lato/lato-italic-webfont.svg +4514 -0
  30. data/vendor/assets/fonts/lato/lato-italic-webfont.ttf +0 -0
  31. data/vendor/assets/fonts/lato/lato-italic-webfont.woff +0 -0
  32. data/vendor/assets/fonts/lato/lato-light-webfont.eot +0 -0
  33. data/vendor/assets/fonts/lato/lato-light-webfont.svg +4691 -0
  34. data/vendor/assets/fonts/lato/lato-light-webfont.ttf +0 -0
  35. data/vendor/assets/fonts/lato/lato-light-webfont.woff +0 -0
  36. data/vendor/assets/fonts/lato/lato-regular-webfont.eot +0 -0
  37. data/vendor/assets/fonts/lato/lato-regular-webfont.svg +4691 -0
  38. data/vendor/assets/fonts/lato/lato-regular-webfont.ttf +0 -0
  39. data/vendor/assets/fonts/lato/lato-regular-webfont.woff +0 -0
  40. data/vendor/assets/images/demo/browser-2x.png +0 -0
  41. data/vendor/assets/images/demo/browser-author.jpg +0 -0
  42. data/vendor/assets/images/demo/browser-pic-1.jpg +0 -0
  43. data/vendor/assets/images/demo/browser-pic-2.jpg +0 -0
  44. data/vendor/assets/images/demo/browser-pic-3.jpg +0 -0
  45. data/vendor/assets/images/demo/browser-pic-4.jpg +0 -0
  46. data/vendor/assets/images/demo/browser-pic-5.jpg +0 -0
  47. data/vendor/assets/images/demo/browser-pic-6.jpg +0 -0
  48. data/vendor/assets/images/demo/browser.png +0 -0
  49. data/vendor/assets/images/demo/html-icon.png +0 -0
  50. data/vendor/assets/images/demo/logo-mask-2x.png +0 -0
  51. data/vendor/assets/images/demo/logo-mask.png +0 -0
  52. data/vendor/assets/images/demo/video.jpg +0 -0
  53. data/vendor/assets/images/exaple-image.jpg +0 -0
  54. data/vendor/assets/images/favicon.ico +0 -0
  55. data/vendor/assets/images/footer/logo.png +0 -0
  56. data/vendor/assets/images/icons/png/Book.png +0 -0
  57. data/vendor/assets/images/icons/png/Calendar.png +0 -0
  58. data/vendor/assets/images/icons/png/Chat.png +0 -0
  59. data/vendor/assets/images/icons/png/Clipboard.png +0 -0
  60. data/vendor/assets/images/icons/png/Compas.png +0 -0
  61. data/vendor/assets/images/icons/png/Gift-Box.png +0 -0
  62. data/vendor/assets/images/icons/png/Infinity-Loop.png +0 -0
  63. data/vendor/assets/images/icons/png/Mail.png +0 -0
  64. data/vendor/assets/images/icons/png/Map.png +0 -0
  65. data/vendor/assets/images/icons/png/Pensils.png +0 -0
  66. data/vendor/assets/images/icons/png/Pocket.png +0 -0
  67. data/vendor/assets/images/icons/png/Retina-Ready.png +0 -0
  68. data/vendor/assets/images/icons/png/Toilet-Paper.png +0 -0
  69. data/vendor/assets/images/icons/png/Watches.png +0 -0
  70. data/vendor/assets/images/icons/svg/book.svg +1 -0
  71. data/vendor/assets/images/icons/svg/calendar.svg +1 -0
  72. data/vendor/assets/images/icons/svg/chat.svg +1 -0
  73. data/vendor/assets/images/icons/svg/clipboard.svg +1 -0
  74. data/vendor/assets/images/icons/svg/clocks.svg +9 -0
  75. data/vendor/assets/images/icons/svg/compas.svg +1 -0
  76. data/vendor/assets/images/icons/svg/gift-box.svg +1 -0
  77. data/vendor/assets/images/icons/svg/loop.svg +5 -0
  78. data/vendor/assets/images/icons/svg/mail.svg +1 -0
  79. data/vendor/assets/images/icons/svg/map.svg +1 -0
  80. data/vendor/assets/images/icons/svg/paper-bag.svg +1 -0
  81. data/vendor/assets/images/icons/svg/pencils.svg +1 -0
  82. data/vendor/assets/images/icons/svg/retina.svg +1 -0
  83. data/vendor/assets/images/icons/svg/toilet-paper.svg +1 -0
  84. data/vendor/assets/images/login/icon.png +0 -0
  85. data/vendor/assets/images/login/imac-2x.png +0 -0
  86. data/vendor/assets/images/login/imac.png +0 -0
  87. data/vendor/assets/images/switch/mask-square.png +0 -0
  88. data/vendor/assets/images/switch/mask.png +0 -0
  89. data/vendor/assets/images/tile/ribbon-2x.png +0 -0
  90. data/vendor/assets/images/tile/ribbon.png +0 -0
  91. data/vendor/assets/images/todo/done-2x.png +0 -0
  92. data/vendor/assets/images/todo/done.png +0 -0
  93. data/vendor/assets/images/todo/search-2x.png +0 -0
  94. data/vendor/assets/images/todo/search.png +0 -0
  95. data/vendor/assets/images/todo/todo-2x.png +0 -0
  96. data/vendor/assets/images/todo/todo.png +0 -0
  97. data/vendor/assets/images/video/fullscreen-2x.png +0 -0
  98. data/vendor/assets/images/video/fullscreen.png +0 -0
  99. data/vendor/assets/images/video/pause-2x.png +0 -0
  100. data/vendor/assets/images/video/pause.png +0 -0
  101. data/vendor/assets/images/video/play-2x.png +0 -0
  102. data/vendor/assets/images/video/play.png +0 -0
  103. data/vendor/assets/images/video/poster.jpg +0 -0
  104. data/vendor/assets/images/video/volume-full-2x.png +0 -0
  105. data/vendor/assets/images/video/volume-full.png +0 -0
  106. data/vendor/assets/images/video/volume-off-2x.png +0 -0
  107. data/vendor/assets/images/video/volume-off.png +0 -0
  108. data/vendor/assets/javascripts/bootstrap-select.js +412 -0
  109. data/vendor/assets/javascripts/bootstrap-switch.js +251 -0
  110. data/vendor/assets/javascripts/bootstrap-typeahead.js +335 -0
  111. data/vendor/assets/javascripts/bootstrap.min.js +8 -0
  112. data/vendor/assets/javascripts/flat-ui.js +13 -0
  113. data/vendor/assets/javascripts/flatui-checkbox.js +112 -0
  114. data/vendor/assets/javascripts/flatui-radio.js +141 -0
  115. data/vendor/assets/javascripts/html5shiv.js +8 -0
  116. data/vendor/assets/javascripts/icon-font-ie7.js +57 -0
  117. data/vendor/assets/javascripts/jquery-ui-1.10.3.custom.min.js +6 -0
  118. data/vendor/assets/javascripts/jquery.placeholder.js +157 -0
  119. data/vendor/assets/javascripts/jquery.stacktable.js +54 -0
  120. data/vendor/assets/javascripts/jquery.tagsinput.js +355 -0
  121. data/vendor/assets/javascripts/jquery.ui.touch-punch.min.js +11 -0
  122. data/vendor/assets/javascripts/run-application.js +70 -0
  123. data/vendor/assets/stylesheets/demo.less +306 -0
  124. data/vendor/assets/stylesheets/docs.less +411 -0
  125. data/vendor/assets/stylesheets/flat-ui.less +47 -0
  126. data/vendor/assets/stylesheets/fonts.less +65 -0
  127. data/vendor/assets/stylesheets/icon-font.less +128 -0
  128. data/vendor/assets/stylesheets/mixins.less +780 -0
  129. data/vendor/assets/stylesheets/modules/button-groups.less +110 -0
  130. data/vendor/assets/stylesheets/modules/buttons.less +145 -0
  131. data/vendor/assets/stylesheets/modules/caret.less +31 -0
  132. data/vendor/assets/stylesheets/modules/checkbox-and-radio.less +143 -0
  133. data/vendor/assets/stylesheets/modules/code.less +38 -0
  134. data/vendor/assets/stylesheets/modules/dropdown.less +249 -0
  135. data/vendor/assets/stylesheets/modules/footer.less +76 -0
  136. data/vendor/assets/stylesheets/modules/forms.less +127 -0
  137. data/vendor/assets/stylesheets/modules/input-icons.less +71 -0
  138. data/vendor/assets/stylesheets/modules/login.less +111 -0
  139. data/vendor/assets/stylesheets/modules/navbar.less +551 -0
  140. data/vendor/assets/stylesheets/modules/pager.less +51 -0
  141. data/vendor/assets/stylesheets/modules/pagination.less +155 -0
  142. data/vendor/assets/stylesheets/modules/palette.less +71 -0
  143. data/vendor/assets/stylesheets/modules/progress-bars.less +36 -0
  144. data/vendor/assets/stylesheets/modules/select.less +143 -0
  145. data/vendor/assets/stylesheets/modules/share.less +44 -0
  146. data/vendor/assets/stylesheets/modules/switch.less +150 -0
  147. data/vendor/assets/stylesheets/modules/tagsinput.less +121 -0
  148. data/vendor/assets/stylesheets/modules/tile.less +54 -0
  149. data/vendor/assets/stylesheets/modules/todo.less +110 -0
  150. data/vendor/assets/stylesheets/modules/tooltip.less +56 -0
  151. data/vendor/assets/stylesheets/modules/type.less +210 -0
  152. data/vendor/assets/stylesheets/modules/ui-slider.less +62 -0
  153. data/vendor/assets/stylesheets/modules/video.less +458 -0
  154. data/vendor/assets/stylesheets/scaffolding.less +46 -0
  155. data/vendor/assets/stylesheets/spaces.less +172 -0
  156. data/vendor/assets/stylesheets/variables.less +294 -0
  157. metadata +256 -0
@@ -0,0 +1,56 @@
1
+ // Tooltip
2
+ // --------------------------------------------------
3
+
4
+ .tooltip {
5
+ font-size: ceil(@component-font-size-base * 0.933); // ~14px
6
+ line-height: 1.286; // 18px
7
+
8
+ &.in {
9
+ opacity: 1;
10
+ }
11
+ &.top {
12
+ padding-bottom: 9px;
13
+
14
+ .tooltip-arrow {
15
+ border-top-color: @brand-primary;
16
+ border-width: 9px 9px 0;
17
+ bottom: 0;
18
+ margin-left: -9px;
19
+ }
20
+ }
21
+ &.right {
22
+ .tooltip-arrow {
23
+ border-right-color: @brand-primary;
24
+ border-width: 9px 9px 9px 0;
25
+ margin-top: -9px;
26
+ left: -3px;
27
+ }
28
+ }
29
+ &.bottom {
30
+ padding-top: 8px;
31
+
32
+ .tooltip-arrow {
33
+ border-bottom-color: @brand-primary;
34
+ border-width: 0 9px 9px;
35
+ margin-left: -9px;
36
+ top: -1px;
37
+ }
38
+ }
39
+ &.left {
40
+ .tooltip-arrow {
41
+ border-left-color: @brand-primary;
42
+ border-width: 9px 0 9px 9px;
43
+ margin-top: -9px;
44
+ right: -3px;
45
+ }
46
+ }
47
+ }
48
+
49
+ .tooltip-inner {
50
+ background-color: @brand-primary;
51
+ line-height: 1.286; // 18px
52
+ padding: 12px 12px;
53
+ text-align: center;
54
+ width: 183px;
55
+ border-radius: @border-radius-large;
56
+ }
@@ -0,0 +1,210 @@
1
+ //
2
+ // Typography
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Body text
7
+ // -------------------------
8
+
9
+ p {
10
+ font-size: @font-size-base;
11
+ line-height: @line-height-base;
12
+ margin: 0 0 (@line-height-computed / 2);
13
+ }
14
+
15
+ .lead {
16
+ margin-bottom: @line-height-computed;
17
+ font-size: floor(@font-size-base * 1.556); // ~28px
18
+ line-height: 1.46428571; // ~41px
19
+ font-weight: 300;
20
+
21
+ @media (min-width: @screen-sm-min) {
22
+ font-size: (@font-size-base * 1.667); // ~30px
23
+ }
24
+ }
25
+
26
+ // Emphasis & misc
27
+ // -------------------------
28
+
29
+ // Ex: 18px base font * 83% = about 15px
30
+ small,
31
+ .small {
32
+ font-size: 83%; // ~15px
33
+ line-height: 2.067; // ~31px
34
+ }
35
+
36
+ // Contextual emphasis
37
+ .text-muted {
38
+ color: @text-muted;
39
+ }
40
+ .text-inverse {
41
+ color: @inverse;
42
+ }
43
+ .text-primary {
44
+ color: @brand-secondary;
45
+ &:hover {
46
+ color: mix(@brand-secondary, black, 80%);
47
+ }
48
+ }
49
+ .text-warning {
50
+ color: @state-warning-text;
51
+ &:hover {
52
+ color: mix(@state-warning-text, black, 80%);
53
+ }
54
+ }
55
+ .text-danger {
56
+ color: @state-danger-text;
57
+ &:hover {
58
+ color: mix(@state-danger-text, black, 80%);
59
+ }
60
+ }
61
+ .text-success {
62
+ color: @state-success-text;
63
+ &:hover {
64
+ color: mix(@state-success-text, black, 80%);
65
+ }
66
+ }
67
+ .text-info {
68
+ color: @state-info-text;
69
+ &:hover {
70
+ color: mix(@state-info-text, black, 80%);
71
+ }
72
+ }
73
+
74
+
75
+ // Headings
76
+ // -------------------------
77
+
78
+ h1, h2, h3, h4, h5, h6,
79
+ .h1, .h2, .h3, .h4, .h5, .h6 {
80
+ font-family: @headings-font-family;
81
+ font-weight: @headings-font-weight;
82
+ line-height: @headings-line-height;
83
+ color: @headings-color;
84
+
85
+ small {
86
+ color: @headings-small-color;
87
+ }
88
+ }
89
+
90
+ h1,
91
+ h2,
92
+ h3 {
93
+ margin-top: @line-height-computed;
94
+ margin-bottom: (@line-height-computed / 2);
95
+ }
96
+ h4,
97
+ h5,
98
+ h6 {
99
+ margin-top: (@line-height-computed / 2);
100
+ margin-bottom: (@line-height-computed / 2);
101
+ }
102
+
103
+ h6 {
104
+ font-weight: normal;
105
+ }
106
+
107
+ h1, .h1 { font-size: @font-size-h1; } // ~62px
108
+ h2, .h2 { font-size: @font-size-h2; } // ~52px
109
+ h3, .h3 { font-size: @font-size-h3; } // ~40px
110
+ h4, .h4 { font-size: @font-size-h4; } // ~29px
111
+ h5, .h5 { font-size: @font-size-h5; } // ~28px
112
+ h6, .h6 { font-size: @font-size-h6; } // ~24px
113
+
114
+
115
+ // Page header
116
+ // -------------------------
117
+
118
+ .page-header {
119
+ padding-bottom: ((@line-height-computed / 2) - 1);
120
+ margin: (@line-height-computed * 2) 0 @line-height-computed;
121
+ border-bottom: 1px solid @page-header-border-color;
122
+ }
123
+
124
+
125
+ // Lists
126
+ // --------------------------------------------------
127
+
128
+ // Unordered and Ordered lists
129
+ ul,
130
+ ol {
131
+ margin-bottom: (@line-height-computed / 2);
132
+ }
133
+
134
+ // Description Lists
135
+ dl {
136
+ margin-bottom: @line-height-computed;
137
+ }
138
+ dt,
139
+ dd {
140
+ line-height: @line-height-base;
141
+ }
142
+
143
+ // Horizontal description lists
144
+ //
145
+ // Defaults to being stacked without any of the below styles applied, until the
146
+ // grid breakpoint is reached (default of ~768px).
147
+
148
+ @media (min-width: @grid-float-breakpoint) {
149
+ .dl-horizontal {
150
+ dt {
151
+ width: (@component-offset-horizontal - 20);
152
+ }
153
+ dd {
154
+ margin-left: @component-offset-horizontal;
155
+ }
156
+ }
157
+ }
158
+
159
+ // MISC
160
+ // ----
161
+
162
+ // Abbreviations and acronyms
163
+ abbr[title],
164
+ abbr[data-original-title] {
165
+ border-bottom: 1px dotted @abbr-border-color;
166
+ }
167
+
168
+ // Blockquotes
169
+ blockquote {
170
+ border-left: 3px solid @blockquote-border-color;
171
+ padding: 0 0 0 16px;
172
+ margin: 0 0 @line-height-computed;
173
+
174
+ p {
175
+ font-size: ceil(@font-size-base * 1.111); // ~20px
176
+ line-height: 1.55; // ~31px
177
+ font-weight: normal;
178
+ margin-bottom: .4em;
179
+ }
180
+ small {
181
+ font-size: @font-size-base;
182
+ line-height: @line-height-base;
183
+ font-style: italic;
184
+ color: @blockquote-small-color;
185
+
186
+ &:before {
187
+ content: "";
188
+ }
189
+ }
190
+
191
+ // Float right with text-align: right
192
+ &.pull-right {
193
+ padding-right: 16px;
194
+ padding-left: 0;
195
+ border-right: 3px solid @blockquote-border-color;
196
+ border-left: 0;
197
+
198
+ small {
199
+ &:after {
200
+ content: "";
201
+ }
202
+ }
203
+ }
204
+ }
205
+
206
+ // Addresses
207
+ address {
208
+ margin-bottom: @line-height-computed;
209
+ line-height: @line-height-base;
210
+ }
@@ -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(@brand-secondary, 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 .25s);
21
+
22
+ &[style*='100'] {
23
+ margin-left: -15px;
24
+ }
25
+ &:hover,
26
+ &:focus {
27
+ background-color: mix(@brand-secondary, white, 80%);
28
+ outline: none;
29
+ }
30
+ &:active {
31
+ background-color: mix(@brand-secondary, black, 85%);
32
+ }
33
+ }
34
+
35
+ .ui-slider-range {
36
+ background-color: @brand-secondary;
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(@brand-primary, 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-size: floor(@component-font-size-base * 0.867); // ~13px
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(@brand-primary, 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: @brand-secondary;
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(@brand-secondary, 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(@brand-secondary, 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: ~"url(../images/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: ~"url(../images/video/volume-off.png)";
259
+ }
260
+ }
261
+ div {
262
+ background: @controls-color ~"url(../images/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(@brand-primary, @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: @brand-secondary;
309
+ left: -1px;
310
+ }
311
+
312
+ .vjs-load-progress {
313
+ background: mix(@brand-primary, @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(@brand-secondary, 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(@brand-secondary, black, 75%);
342
+ }
343
+ &:active {
344
+ background-color: mix(@brand-secondary, 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(@brand-primary, @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(@brand-primary, @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: ~"url(../images/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: ~"url(../images/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
+ .rotate(0deg);
418
+ }
419
+ 50% {
420
+ background: #ebedee;
421
+ border-radius: 0;
422
+ .rotate(180deg);
423
+ }
424
+ 100% {
425
+ background: #e74c3c;
426
+ border-radius: 10px;
427
+ .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
+ }