flat-ui-sass 2.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.gitmodules +3 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +256 -0
  7. data/Rakefile +14 -0
  8. data/app/helpers/flat_ui/rails/icon_helper.rb +60 -0
  9. data/bin/fui_convert +9 -0
  10. data/flat-ui-sass.gemspec +28 -0
  11. data/lib/flat-ui-sass.rb +98 -0
  12. data/lib/flat-ui-sass/cli.rb +56 -0
  13. data/lib/flat-ui-sass/engine.rb +13 -0
  14. data/lib/flat-ui-sass/sass_functions.rb +56 -0
  15. data/lib/flat-ui-sass/version.rb +4 -0
  16. data/lib/tasks/converter.rb +99 -0
  17. data/lib/tasks/converter/filesystem.rb +16 -0
  18. data/lib/tasks/converter/flat_ui_fonts_conversion.rb +19 -0
  19. data/lib/tasks/converter/flat_ui_images_conversion.rb +19 -0
  20. data/lib/tasks/converter/flat_ui_js_conversion.rb +28 -0
  21. data/lib/tasks/converter/flat_ui_less_conversion.rb +328 -0
  22. data/lib/tasks/converter/logger.rb +61 -0
  23. data/lib/tasks/flat-ui-sass.rake +8 -0
  24. data/templates/project/_variables.scss.erb +5 -0
  25. data/templates/project/manifest.rb +57 -0
  26. data/templates/project/styles.scss +4 -0
  27. data/vendor/assets/fonts/flat-ui/flat-ui-icons-regular.eot +0 -0
  28. data/vendor/assets/fonts/flat-ui/flat-ui-icons-regular.svg +140 -0
  29. data/vendor/assets/fonts/flat-ui/flat-ui-icons-regular.ttf +0 -0
  30. data/vendor/assets/fonts/flat-ui/flat-ui-icons-regular.woff +0 -0
  31. data/vendor/assets/images/flat-ui/icons/png/Book.png +0 -0
  32. data/vendor/assets/images/flat-ui/icons/png/Calendar.png +0 -0
  33. data/vendor/assets/images/flat-ui/icons/png/Chat.png +0 -0
  34. data/vendor/assets/images/flat-ui/icons/png/Clipboard.png +0 -0
  35. data/vendor/assets/images/flat-ui/icons/png/Compas.png +0 -0
  36. data/vendor/assets/images/flat-ui/icons/png/Gift-Box.png +0 -0
  37. data/vendor/assets/images/flat-ui/icons/png/Infinity-Loop.png +0 -0
  38. data/vendor/assets/images/flat-ui/icons/png/Mail.png +0 -0
  39. data/vendor/assets/images/flat-ui/icons/png/Map.png +0 -0
  40. data/vendor/assets/images/flat-ui/icons/png/Pensils.png +0 -0
  41. data/vendor/assets/images/flat-ui/icons/png/Pocket.png +0 -0
  42. data/vendor/assets/images/flat-ui/icons/png/Retina-Ready.png +0 -0
  43. data/vendor/assets/images/flat-ui/icons/png/Toilet-Paper.png +0 -0
  44. data/vendor/assets/images/flat-ui/icons/png/Watches.png +0 -0
  45. data/vendor/assets/images/flat-ui/icons/svg/book.svg +1 -0
  46. data/vendor/assets/images/flat-ui/icons/svg/calendar.svg +1 -0
  47. data/vendor/assets/images/flat-ui/icons/svg/chat.svg +1 -0
  48. data/vendor/assets/images/flat-ui/icons/svg/clipboard.svg +1 -0
  49. data/vendor/assets/images/flat-ui/icons/svg/clocks.svg +9 -0
  50. data/vendor/assets/images/flat-ui/icons/svg/compas.svg +1 -0
  51. data/vendor/assets/images/flat-ui/icons/svg/gift-box.svg +1 -0
  52. data/vendor/assets/images/flat-ui/icons/svg/loop.svg +5 -0
  53. data/vendor/assets/images/flat-ui/icons/svg/mail.svg +1 -0
  54. data/vendor/assets/images/flat-ui/icons/svg/map.svg +1 -0
  55. data/vendor/assets/images/flat-ui/icons/svg/paper-bag.svg +1 -0
  56. data/vendor/assets/images/flat-ui/icons/svg/pencils.svg +1 -0
  57. data/vendor/assets/images/flat-ui/icons/svg/retina.svg +1 -0
  58. data/vendor/assets/images/flat-ui/icons/svg/toilet-paper.svg +1 -0
  59. data/vendor/assets/images/flat-ui/login/icon.png +0 -0
  60. data/vendor/assets/images/flat-ui/login/imac-2x.png +0 -0
  61. data/vendor/assets/images/flat-ui/login/imac.png +0 -0
  62. data/vendor/assets/images/flat-ui/switch/mask-square.png +0 -0
  63. data/vendor/assets/images/flat-ui/switch/mask.png +0 -0
  64. data/vendor/assets/images/flat-ui/tile/ribbon-2x.png +0 -0
  65. data/vendor/assets/images/flat-ui/tile/ribbon.png +0 -0
  66. data/vendor/assets/images/flat-ui/todo/done-2x.png +0 -0
  67. data/vendor/assets/images/flat-ui/todo/done.png +0 -0
  68. data/vendor/assets/images/flat-ui/todo/search-2x.png +0 -0
  69. data/vendor/assets/images/flat-ui/todo/search.png +0 -0
  70. data/vendor/assets/images/flat-ui/todo/todo-2x.png +0 -0
  71. data/vendor/assets/images/flat-ui/todo/todo.png +0 -0
  72. data/vendor/assets/images/flat-ui/video/fullscreen-2x.png +0 -0
  73. data/vendor/assets/images/flat-ui/video/fullscreen.png +0 -0
  74. data/vendor/assets/images/flat-ui/video/pause-2x.png +0 -0
  75. data/vendor/assets/images/flat-ui/video/pause.png +0 -0
  76. data/vendor/assets/images/flat-ui/video/play-2x.png +0 -0
  77. data/vendor/assets/images/flat-ui/video/play.png +0 -0
  78. data/vendor/assets/images/flat-ui/video/poster.jpg +0 -0
  79. data/vendor/assets/images/flat-ui/video/volume-full-2x.png +0 -0
  80. data/vendor/assets/images/flat-ui/video/volume-full.png +0 -0
  81. data/vendor/assets/images/flat-ui/video/volume-off-2x.png +0 -0
  82. data/vendor/assets/images/flat-ui/video/volume-off.png +0 -0
  83. data/vendor/assets/javascripts/flat-ui.js +2 -0
  84. data/vendor/assets/javascripts/flat-ui/flatui-checkbox.js +112 -0
  85. data/vendor/assets/javascripts/flat-ui/flatui-radio.js +139 -0
  86. data/vendor/assets/stylesheets/flat-ui.scss +1 -0
  87. data/vendor/assets/stylesheets/flat-ui/_mixins.scss +878 -0
  88. data/vendor/assets/stylesheets/flat-ui/_spaces.scss +172 -0
  89. data/vendor/assets/stylesheets/flat-ui/_variables.scss +509 -0
  90. data/vendor/assets/stylesheets/flat-ui/flat-ui.scss +45 -0
  91. data/vendor/assets/stylesheets/flat-ui/modules/_button-groups.scss +110 -0
  92. data/vendor/assets/stylesheets/flat-ui/modules/_buttons.scss +151 -0
  93. data/vendor/assets/stylesheets/flat-ui/modules/_caret.scss +30 -0
  94. data/vendor/assets/stylesheets/flat-ui/modules/_checkbox-and-radio.scss +143 -0
  95. data/vendor/assets/stylesheets/flat-ui/modules/_code.scss +49 -0
  96. data/vendor/assets/stylesheets/flat-ui/modules/_dropdown.scss +223 -0
  97. data/vendor/assets/stylesheets/flat-ui/modules/_footer.scss +76 -0
  98. data/vendor/assets/stylesheets/flat-ui/modules/_forms.scss +188 -0
  99. data/vendor/assets/stylesheets/flat-ui/modules/_glyphicons.scss +135 -0
  100. data/vendor/assets/stylesheets/flat-ui/modules/_input-groups.scss +153 -0
  101. data/vendor/assets/stylesheets/flat-ui/modules/_input-icons.scss +72 -0
  102. data/vendor/assets/stylesheets/flat-ui/modules/_local-fonts.scss +69 -0
  103. data/vendor/assets/stylesheets/flat-ui/modules/_login.scss +111 -0
  104. data/vendor/assets/stylesheets/flat-ui/modules/_navbar.scss +876 -0
  105. data/vendor/assets/stylesheets/flat-ui/modules/_pager.scss +51 -0
  106. data/vendor/assets/stylesheets/flat-ui/modules/_pagination.scss +166 -0
  107. data/vendor/assets/stylesheets/flat-ui/modules/_palette.scss +71 -0
  108. data/vendor/assets/stylesheets/flat-ui/modules/_progress-bars.scss +34 -0
  109. data/vendor/assets/stylesheets/flat-ui/modules/_scaffolding.scss +64 -0
  110. data/vendor/assets/stylesheets/flat-ui/modules/_select.scss +145 -0
  111. data/vendor/assets/stylesheets/flat-ui/modules/_share.scss +44 -0
  112. data/vendor/assets/stylesheets/flat-ui/modules/_slider.scss +105 -0
  113. data/vendor/assets/stylesheets/flat-ui/modules/_switch.scss +150 -0
  114. data/vendor/assets/stylesheets/flat-ui/modules/_tagsinput.scss +121 -0
  115. data/vendor/assets/stylesheets/flat-ui/modules/_thumbnails.scss +38 -0
  116. data/vendor/assets/stylesheets/flat-ui/modules/_tile.scss +54 -0
  117. data/vendor/assets/stylesheets/flat-ui/modules/_todo.scss +110 -0
  118. data/vendor/assets/stylesheets/flat-ui/modules/_tooltip.scss +56 -0
  119. data/vendor/assets/stylesheets/flat-ui/modules/_type.scss +208 -0
  120. data/vendor/assets/stylesheets/flat-ui/modules/_typeahead.scss +41 -0
  121. data/vendor/assets/stylesheets/flat-ui/modules/_video.scss +458 -0
  122. metadata +251 -0
@@ -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
+ @include transition(visibility 0s linear 0s, opacity .3s linear);
105
+ }
106
+ .vjs-fade-out {
107
+ visibility: hidden !important;
108
+ opacity: 0 !important;
109
+ @include 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
+ @include 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
+ @include opacity(0);
204
+ }
205
+ &:before {
206
+ @include 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
+ @include opacity(1);
220
+ }
221
+ &:before {
222
+ @include 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(if($flat-ui-sass-asset-helper, flat-ui-image-path("flat-ui/video/volume-full.png"), "flat-ui/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(if($flat-ui-sass-asset-helper, flat-ui-image-path("flat-ui/video/volume-off.png"), "flat-ui/video/volume-off.png"));
259
+ }
260
+ }
261
+ div {
262
+ background: $controls-color url(if($flat-ui-sass-asset-helper, flat-ui-image-path("flat-ui/video/volume-full.png"), "flat-ui/video/volume-full.png")) no-repeat center 2px;
263
+ background-size: 16px 64px;
264
+ height: 18px;
265
+ @include 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
+ @include 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(if($flat-ui-sass-asset-helper, flat-ui-image-path("flat-ui/video/fullscreen.png"), "flat-ui/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(if($flat-ui-sass-asset-helper, flat-ui-image-path("flat-ui/video/fullscreen.png"), "flat-ui/video/fullscreen.png")) no-repeat center 2px;
402
+ background-size: 15px 64px;
403
+ @include 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
+ @mixin sharp-keyframes() {
414
+ 0% {
415
+ background: #e74c3c;
416
+ border-radius: 10px;
417
+ @include rotate(0deg);
418
+ }
419
+ 50% {
420
+ background: #ebedee;
421
+ border-radius: 0;
422
+ @include rotate(180deg);
423
+ }
424
+ 100% {
425
+ background: #e74c3c;
426
+ border-radius: 10px;
427
+ @include rotate(360deg);
428
+ }
429
+ }
430
+
431
+ @-webkit-keyframes sharp {
432
+ @include sharp-keyframes();
433
+ }
434
+
435
+ @-moz-keyframes sharp {
436
+ @include sharp-keyframes();
437
+ }
438
+
439
+ @-o-keyframes sharp {
440
+ @include sharp-keyframes();
441
+ }
442
+
443
+ @keyframes sharp {
444
+ @include 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
+ @include animation(sharp 2s ease infinite);
458
+ }