twigg-app 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (208) hide show
  1. checksums.yaml +4 -4
  2. data/assets/javascripts/_bootstrap.js +7 -0
  3. data/assets/javascripts/_jquery.js +19 -0
  4. data/assets/javascripts/_tables.js +3 -0
  5. data/assets/javascripts/_views.js +10 -0
  6. data/assets/javascripts/application.js +9 -0
  7. data/{public/application.js → assets/javascripts/views/_commit_set_bar_chart.js} +32 -34
  8. data/assets/javascripts/views/_russia.js +61 -0
  9. data/assets/javascripts/views/_tags.js +56 -0
  10. data/assets/javascripts/views/_tags_word_cloud.js +51 -0
  11. data/assets/stylesheets/_bootstrap_overrides.scss +15 -0
  12. data/assets/stylesheets/_footer.scss +28 -0
  13. data/assets/stylesheets/_global.scss +14 -0
  14. data/assets/stylesheets/_tables.scss +20 -0
  15. data/assets/stylesheets/application.scss +10 -0
  16. data/assets/stylesheets/d3/_bar_chart.scss +25 -0
  17. data/assets/stylesheets/d3/_bubble_chart.scss +22 -0
  18. data/lib/twigg-app/app/routes.rb +4 -0
  19. data/lib/twigg-app/app/server.rb +78 -21
  20. data/lib/twigg-app/app/version.rb +1 -1
  21. data/public/vendor/bootstrap/Gruntfile.js +32 -10
  22. data/public/vendor/bootstrap/README.md +2 -0
  23. data/public/vendor/bootstrap/_config.yml +5 -10
  24. data/public/vendor/bootstrap/_includes/footer.html +2 -1
  25. data/public/vendor/bootstrap/_includes/nav-components.html +33 -31
  26. data/public/vendor/bootstrap/_includes/nav-css.html +32 -22
  27. data/public/vendor/bootstrap/_includes/nav-getting-started.html +17 -1
  28. data/public/vendor/bootstrap/_includes/nav-javascript.html +1 -1
  29. data/public/vendor/bootstrap/_includes/nav-main.html +1 -1
  30. data/public/vendor/bootstrap/_includes/social-buttons.html +1 -1
  31. data/public/vendor/bootstrap/_layouts/default.html +18 -14
  32. data/public/vendor/bootstrap/_layouts/home.html +9 -6
  33. data/public/vendor/bootstrap/assets/css/docs.css +584 -396
  34. data/public/vendor/bootstrap/assets/ico/apple-touch-icon-114-precomposed.png +0 -0
  35. data/public/vendor/bootstrap/assets/ico/apple-touch-icon-144-precomposed.png +0 -0
  36. data/public/vendor/bootstrap/assets/ico/apple-touch-icon-57-precomposed.png +0 -0
  37. data/public/vendor/bootstrap/assets/ico/apple-touch-icon-72-precomposed.png +0 -0
  38. data/public/vendor/bootstrap/assets/ico/favicon.png +0 -0
  39. data/public/vendor/bootstrap/assets/js/application.js +2 -1
  40. data/public/vendor/bootstrap/assets/js/customizer.js +160 -45
  41. data/public/vendor/bootstrap/assets/js/filesaver.js +169 -0
  42. data/public/vendor/bootstrap/assets/js/jquery.js +6 -5
  43. data/public/vendor/bootstrap/assets/js/raw-files.js +3 -0
  44. data/public/vendor/bootstrap/bower.json +1 -1
  45. data/public/vendor/bootstrap/components.html +787 -364
  46. data/public/vendor/bootstrap/composer.json +1 -1
  47. data/public/vendor/bootstrap/css.html +413 -248
  48. data/public/vendor/bootstrap/customize.html +413 -447
  49. data/public/vendor/bootstrap/dist/css/bootstrap-theme.css +384 -0
  50. data/public/vendor/bootstrap/dist/css/bootstrap-theme.min.css +1 -0
  51. data/public/vendor/bootstrap/dist/css/bootstrap.css +3033 -1807
  52. data/public/vendor/bootstrap/dist/css/bootstrap.min.css +1 -1
  53. data/public/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  54. data/public/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +228 -0
  55. data/public/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  56. data/public/vendor/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  57. data/public/vendor/bootstrap/dist/js/bootstrap.js +18 -12
  58. data/public/vendor/bootstrap/dist/js/bootstrap.min.js +1 -1
  59. data/public/vendor/bootstrap/examples/carousel/carousel.css +128 -0
  60. data/public/vendor/bootstrap/examples/carousel/index.html +201 -0
  61. data/public/vendor/bootstrap/examples/grid/grid.css +28 -0
  62. data/public/vendor/bootstrap/examples/grid/index.html +119 -0
  63. data/public/vendor/bootstrap/examples/jumbotron/index.html +111 -0
  64. data/public/vendor/bootstrap/examples/jumbotron/jumbotron.css +5 -0
  65. data/public/vendor/bootstrap/examples/jumbotron-narrow/index.html +78 -0
  66. data/public/vendor/bootstrap/examples/jumbotron-narrow/jumbotron-narrow.css +79 -0
  67. data/public/vendor/bootstrap/examples/justified-nav/index.html +79 -0
  68. data/public/vendor/bootstrap/examples/justified-nav/justified-nav.css +88 -0
  69. data/public/vendor/bootstrap/examples/navbar/index.html +83 -0
  70. data/public/vendor/bootstrap/examples/navbar/navbar.css +7 -0
  71. data/public/vendor/bootstrap/examples/navbar-fixed-top/index.html +86 -0
  72. data/public/vendor/bootstrap/examples/navbar-fixed-top/navbar-fixed-top.css +4 -0
  73. data/public/vendor/bootstrap/examples/navbar-static-top/index.html +87 -0
  74. data/public/vendor/bootstrap/examples/navbar-static-top/navbar-static-top.css +7 -0
  75. data/public/vendor/bootstrap/examples/non-responsive/index.html +96 -0
  76. data/public/vendor/bootstrap/examples/non-responsive/non-responsive.css +117 -0
  77. data/public/vendor/bootstrap/examples/offcanvas/index.html +127 -0
  78. data/public/vendor/bootstrap/examples/offcanvas/offcanvas.css +48 -0
  79. data/public/vendor/bootstrap/examples/offcanvas/offcanvas.js +5 -0
  80. data/public/vendor/bootstrap/examples/screenshots/carousel.jpg +0 -0
  81. data/public/vendor/bootstrap/examples/screenshots/grid.jpg +0 -0
  82. data/public/vendor/bootstrap/examples/screenshots/jumbotron-narrow.jpg +0 -0
  83. data/public/vendor/bootstrap/examples/screenshots/jumbotron.jpg +0 -0
  84. data/public/vendor/bootstrap/examples/screenshots/justified-nav.jpg +0 -0
  85. data/public/vendor/bootstrap/examples/screenshots/navbar-fixed.jpg +0 -0
  86. data/public/vendor/bootstrap/examples/screenshots/navbar-static.jpg +0 -0
  87. data/public/vendor/bootstrap/examples/screenshots/navbar.jpg +0 -0
  88. data/public/vendor/bootstrap/examples/screenshots/non-responsive.jpg +0 -0
  89. data/public/vendor/bootstrap/examples/screenshots/offcanvas.jpg +0 -0
  90. data/public/vendor/bootstrap/examples/screenshots/sign-in.jpg +0 -0
  91. data/public/vendor/bootstrap/examples/screenshots/starter-template.jpg +0 -0
  92. data/public/vendor/bootstrap/examples/screenshots/sticky-footer-navbar.jpg +0 -0
  93. data/public/vendor/bootstrap/examples/screenshots/sticky-footer.jpg +0 -0
  94. data/public/vendor/bootstrap/examples/screenshots/theme.jpg +0 -0
  95. data/public/vendor/bootstrap/examples/signin/index.html +46 -0
  96. data/public/vendor/bootstrap/examples/signin/signin.css +40 -0
  97. data/public/vendor/bootstrap/examples/starter-template/index.html +63 -0
  98. data/public/vendor/bootstrap/examples/starter-template/starter-template.css +7 -0
  99. data/public/vendor/bootstrap/examples/sticky-footer/index.html +51 -0
  100. data/public/vendor/bootstrap/examples/sticky-footer/sticky-footer.css +39 -0
  101. data/public/vendor/bootstrap/examples/sticky-footer-navbar/index.html +86 -0
  102. data/public/vendor/bootstrap/examples/sticky-footer-navbar/sticky-footer-navbar.css +46 -0
  103. data/public/vendor/bootstrap/examples/theme/index.html +387 -0
  104. data/public/vendor/bootstrap/examples/theme/theme.css +14 -0
  105. data/public/vendor/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  106. data/public/vendor/bootstrap/fonts/glyphicons-halflings-regular.svg +228 -0
  107. data/public/vendor/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  108. data/public/vendor/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  109. data/public/vendor/bootstrap/getting-started.html +513 -22
  110. data/public/vendor/bootstrap/index.html +3 -4
  111. data/public/vendor/bootstrap/javascript.html +123 -115
  112. data/public/vendor/bootstrap/js/dropdown.js +3 -3
  113. data/public/vendor/bootstrap/js/modal.js +5 -3
  114. data/public/vendor/bootstrap/js/tests/unit/modal.js +19 -0
  115. data/public/vendor/bootstrap/js/tests/vendor/jquery.js +6 -5
  116. data/public/vendor/bootstrap/js/tooltip.js +9 -5
  117. data/public/vendor/bootstrap/js/transition.js +1 -1
  118. data/public/vendor/bootstrap/less/alerts.less +7 -11
  119. data/public/vendor/bootstrap/less/bootstrap.less +17 -21
  120. data/public/vendor/bootstrap/less/button-groups.less +14 -10
  121. data/public/vendor/bootstrap/less/buttons.less +3 -2
  122. data/public/vendor/bootstrap/less/carousel.less +6 -1
  123. data/public/vendor/bootstrap/less/dropdowns.less +22 -5
  124. data/public/vendor/bootstrap/less/forms.less +36 -15
  125. data/public/vendor/bootstrap/less/glyphicons.less +232 -0
  126. data/public/vendor/bootstrap/less/grid.less +9 -3
  127. data/public/vendor/bootstrap/less/input-groups.less +1 -1
  128. data/public/vendor/bootstrap/less/jumbotron.less +16 -5
  129. data/public/vendor/bootstrap/less/labels.less +9 -5
  130. data/public/vendor/bootstrap/less/mixins.less +73 -43
  131. data/public/vendor/bootstrap/less/modals.less +8 -0
  132. data/public/vendor/bootstrap/less/navbar.less +251 -189
  133. data/public/vendor/bootstrap/less/navs.less +13 -12
  134. data/public/vendor/bootstrap/less/pager.less +1 -1
  135. data/public/vendor/bootstrap/less/pagination.less +20 -9
  136. data/public/vendor/bootstrap/less/panels.less +28 -8
  137. data/public/vendor/bootstrap/less/progress-bars.less +6 -10
  138. data/public/vendor/bootstrap/less/responsive-utilities.less +120 -49
  139. data/public/vendor/bootstrap/less/scaffolding.less +37 -18
  140. data/public/vendor/bootstrap/less/tables.less +84 -59
  141. data/public/vendor/bootstrap/less/theme.less +232 -0
  142. data/public/vendor/bootstrap/less/thumbnails.less +8 -19
  143. data/public/vendor/bootstrap/less/type.less +2 -2
  144. data/public/vendor/bootstrap/less/variables.less +63 -50
  145. data/public/vendor/bootstrap/package.json +2 -1
  146. data/public/vendor/components-backbone/LICENSE +22 -0
  147. data/public/vendor/components-backbone/README.md +10 -0
  148. data/public/vendor/components-backbone/backbone-min.js +4 -0
  149. data/public/vendor/components-backbone/backbone.js +1571 -0
  150. data/public/vendor/components-backbone/bower.json +17 -0
  151. data/public/vendor/components-backbone/component.json +21 -0
  152. data/public/vendor/components-backbone/composer.json +37 -0
  153. data/public/vendor/components-backbone/package.json +24 -0
  154. data/public/vendor/d3.layout.cloud.js +401 -0
  155. data/public/vendor/replacejs/CHANGELOG.md +4 -0
  156. data/public/vendor/replacejs/replace.js +21 -2
  157. data/public/vendor/underscore/CNAME +1 -0
  158. data/public/vendor/underscore/CONTRIBUTING.md +9 -0
  159. data/public/vendor/underscore/LICENSE +22 -0
  160. data/public/vendor/underscore/README.md +19 -0
  161. data/public/vendor/underscore/Rakefile +10 -0
  162. data/public/vendor/underscore/docs/docco.css +192 -0
  163. data/public/vendor/underscore/docs/favicon.ico +0 -0
  164. data/public/vendor/underscore/docs/images/background.png +0 -0
  165. data/public/vendor/underscore/docs/images/underscore.png +0 -0
  166. data/public/vendor/underscore/docs/underscore.html +823 -0
  167. data/public/vendor/underscore/favicon.ico +0 -0
  168. data/public/vendor/underscore/index.html +2467 -0
  169. data/public/vendor/underscore/index.js +1 -0
  170. data/public/vendor/underscore/package.json +16 -0
  171. data/public/vendor/underscore/test/arrays.js +200 -0
  172. data/public/vendor/underscore/test/chaining.js +59 -0
  173. data/public/vendor/underscore/test/collections.js +453 -0
  174. data/public/vendor/underscore/test/functions.js +265 -0
  175. data/public/vendor/underscore/test/index.html +44 -0
  176. data/public/vendor/underscore/test/objects.js +570 -0
  177. data/public/vendor/underscore/test/speed.js +75 -0
  178. data/public/vendor/underscore/test/utility.js +266 -0
  179. data/public/vendor/underscore/test/vendor/jquery.js +9404 -0
  180. data/public/vendor/underscore/test/vendor/jslitmus.js +670 -0
  181. data/public/vendor/underscore/test/vendor/qunit.css +235 -0
  182. data/public/vendor/underscore/test/vendor/qunit.js +1977 -0
  183. data/public/vendor/underscore/test/vendor/runner.js +98 -0
  184. data/public/vendor/underscore/underscore-min.js +1 -0
  185. data/public/vendor/underscore/underscore.js +1226 -0
  186. data/views/dashboard.haml +1 -1
  187. data/views/layout.haml +8 -4
  188. metadata +132 -25
  189. data/public/vendor/bootstrap/_layouts/customize.html +0 -52
  190. data/public/vendor/bootstrap/assets/js/jquery.bbq.min.js +0 -1287
  191. data/public/vendor/bootstrap-glyphicons/CHANGELOG.md +0 -3
  192. data/public/vendor/bootstrap-glyphicons/CNAME +0 -1
  193. data/public/vendor/bootstrap-glyphicons/CONTRIBUTING.md +0 -54
  194. data/public/vendor/bootstrap-glyphicons/LICENSE +0 -19
  195. data/public/vendor/bootstrap-glyphicons/README.md +0 -61
  196. data/public/vendor/bootstrap-glyphicons/_config.yml +0 -12
  197. data/public/vendor/bootstrap-glyphicons/composer.json +0 -9
  198. data/public/vendor/bootstrap-glyphicons/css/bootstrap-glyphicons.css +0 -2
  199. data/public/vendor/bootstrap-glyphicons/css/bootstrap.css +0 -9
  200. data/public/vendor/bootstrap-glyphicons/css/docs.css +0 -160
  201. data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.eot +0 -0
  202. data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.otf +0 -0
  203. data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.svg +0 -175
  204. data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.ttf +0 -0
  205. data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.woff +0 -0
  206. data/public/vendor/bootstrap-glyphicons/index.html +0 -255
  207. data/public/vendor/bootstrap-glyphicons/less/bootstrap-glyphicons.less +0 -201
  208. data/public/vendor/bootstrap-glyphicons/package.json +0 -18
@@ -11,18 +11,19 @@
11
11
  display: inline; // Remove list-style and block-level defaults
12
12
  > a,
13
13
  > span {
14
+ position: relative;
14
15
  float: left; // Collapse white-space
15
16
  padding: @padding-base-vertical @padding-base-horizontal;
16
17
  line-height: @line-height-base;
17
18
  text-decoration: none;
18
19
  background-color: @pagination-bg;
19
20
  border: 1px solid @pagination-border;
20
- border-left-width: 0;
21
+ margin-left: -1px;
21
22
  }
22
23
  &:first-child {
23
24
  > a,
24
25
  > span {
25
- border-left-width: 1px;
26
+ margin-left: 0;
26
27
  .border-left-radius(@border-radius-base);
27
28
  }
28
29
  }
@@ -34,16 +35,25 @@
34
35
  }
35
36
  }
36
37
 
37
- > li > a:hover,
38
- > li > a:focus,
39
- > .active > a,
40
- > .active > span {
41
- background-color: @pagination-active-bg;
38
+ > li > a,
39
+ > li > span {
40
+ &:hover,
41
+ &:focus {
42
+ background-color: @pagination-hover-bg;
43
+ }
42
44
  }
45
+
43
46
  > .active > a,
44
47
  > .active > span {
45
- color: @pagination-active-color;
46
- cursor: default;
48
+ &,
49
+ &:hover,
50
+ &:focus {
51
+ z-index: 2;
52
+ color: @pagination-active-color;
53
+ background-color: @pagination-active-bg;
54
+ border-color: @pagination-active-bg;
55
+ cursor: default;
56
+ }
47
57
  }
48
58
 
49
59
  > .disabled {
@@ -53,6 +63,7 @@
53
63
  > a:focus {
54
64
  color: @pagination-disabled-color;
55
65
  background-color: @pagination-bg;
66
+ border-color: @pagination-border;
56
67
  cursor: not-allowed;
57
68
  }
58
69
  }
@@ -7,7 +7,7 @@
7
7
  .panel {
8
8
  margin-bottom: @line-height-computed;
9
9
  background-color: @panel-bg;
10
- border: 1px solid @panel-border;
10
+ border: 1px solid transparent;
11
11
  border-radius: @panel-border-radius;
12
12
  .box-shadow(0 1px 1px rgba(0,0,0,.05));
13
13
  }
@@ -15,15 +15,17 @@
15
15
  // Panel contents
16
16
  .panel-body {
17
17
  padding: 15px;
18
+ .clearfix();
18
19
  }
19
20
 
21
+
20
22
  // List groups in panels
21
23
  //
22
24
  // By default, space out list group content from panel headings to account for
23
25
  // any kind of custom content between the two.
24
26
 
25
27
  .panel {
26
- .list-group {
28
+ > .list-group {
27
29
  margin-bottom: 0;
28
30
 
29
31
  .list-group-item {
@@ -47,11 +49,26 @@
47
49
  }
48
50
  }
49
51
 
52
+
53
+ // Tables in panels
54
+ //
55
+ // Place a non-bordered `.table` within a panel (not within a `.panel-body`) and
56
+ // watch it go full width.
57
+
58
+ .panel {
59
+ > .table {
60
+ margin-bottom: 0;
61
+ }
62
+ > .panel-body + .table {
63
+ border-top: 1px solid @table-border-color;
64
+ }
65
+ }
66
+
67
+
50
68
  // Optional heading
51
69
  .panel-heading {
52
70
  padding: 10px 15px;
53
- background-color: @panel-heading-bg;
54
- border-bottom: 1px solid @panel-border;
71
+ border-bottom: 1px solid transparent;
55
72
  .border-top-radius(@panel-border-radius - 1);
56
73
  }
57
74
 
@@ -59,7 +76,7 @@
59
76
  .panel-title {
60
77
  margin-top: 0;
61
78
  margin-bottom: 0;
62
- font-size: (@font-size-base * 1.25);
79
+ font-size: ceil((@font-size-base * 1.125));
63
80
  > a {
64
81
  color: inherit;
65
82
  }
@@ -69,7 +86,7 @@
69
86
  .panel-footer {
70
87
  padding: 10px 15px;
71
88
  background-color: @panel-footer-bg;
72
- border-top: 1px solid @panel-border;
89
+ border-top: 1px solid @panel-inner-border;
73
90
  .border-bottom-radius(@panel-border-radius - 1);
74
91
  }
75
92
 
@@ -93,13 +110,13 @@
93
110
  .panel-heading {
94
111
  border-bottom: 0;
95
112
  + .panel-collapse .panel-body {
96
- border-top: 1px solid @panel-border;
113
+ border-top: 1px solid @panel-inner-border;
97
114
  }
98
115
  }
99
116
  .panel-footer {
100
117
  border-top: 0;
101
118
  + .panel-collapse .panel-body {
102
- border-bottom: 1px solid @panel-border;
119
+ border-bottom: 1px solid @panel-inner-border;
103
120
  }
104
121
  }
105
122
 
@@ -111,6 +128,9 @@
111
128
 
112
129
 
113
130
  // Contextual variations
131
+ .panel-default {
132
+ .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);
133
+ }
114
134
  .panel-primary {
115
135
  .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);
116
136
  }
@@ -78,22 +78,18 @@
78
78
  // Variations
79
79
  // -------------------------
80
80
 
81
- // Danger (red)
82
- .progress-bar-danger {
83
- .progress-bar-variant(@progress-bar-danger-bg);
84
- }
85
-
86
- // Success (green)
87
81
  .progress-bar-success {
88
82
  .progress-bar-variant(@progress-bar-success-bg);
89
83
  }
90
84
 
91
- // Warning (orange)
85
+ .progress-bar-info {
86
+ .progress-bar-variant(@progress-bar-info-bg);
87
+ }
88
+
92
89
  .progress-bar-warning {
93
90
  .progress-bar-variant(@progress-bar-warning-bg);
94
91
  }
95
92
 
96
- // Info (teal)
97
- .progress-bar-info {
98
- .progress-bar-variant(@progress-bar-info-bg);
93
+ .progress-bar-danger {
94
+ .progress-bar-variant(@progress-bar-danger-bg);
99
95
  }
@@ -36,99 +36,171 @@
36
36
  // Visibility utilities
37
37
 
38
38
  .visible-xs {
39
- .responsive-visibility();
40
- @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
41
- .responsive-invisibility();
39
+ .responsive-invisibility();
40
+ @media (max-width: @screen-xs-max) {
41
+ .responsive-visibility();
42
42
  }
43
- @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) {
44
- .responsive-invisibility();
43
+ &.visible-sm {
44
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
45
+ .responsive-visibility();
46
+ }
45
47
  }
46
- @media (min-width: @screen-large-desktop) {
47
- .responsive-invisibility();
48
+ &.visible-md {
49
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
50
+ .responsive-visibility();
51
+ }
52
+ }
53
+ &.visible-lg {
54
+ @media (min-width: @screen-lg) {
55
+ .responsive-visibility();
56
+ }
48
57
  }
49
58
  }
50
59
  .visible-sm {
51
60
  .responsive-invisibility();
52
- @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
61
+ &.visible-xs {
62
+ @media (max-width: @screen-xs-max) {
63
+ .responsive-visibility();
64
+ }
65
+ }
66
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
53
67
  .responsive-visibility();
54
68
  }
55
- @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) {
56
- .responsive-invisibility();
69
+ &.visible-md {
70
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
71
+ .responsive-visibility();
72
+ }
57
73
  }
58
- @media (min-width: @screen-large-desktop) {
59
- .responsive-invisibility();
74
+ &.visible-lg {
75
+ @media (min-width: @screen-lg) {
76
+ .responsive-visibility();
77
+ }
60
78
  }
61
79
  }
62
80
  .visible-md {
63
81
  .responsive-invisibility();
64
- @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
65
- .responsive-invisibility();
82
+ &.visible-xs {
83
+ @media (max-width: @screen-xs-max) {
84
+ .responsive-visibility();
85
+ }
66
86
  }
67
- @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) {
87
+ &.visible-sm {
88
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
89
+ .responsive-visibility();
90
+ }
91
+ }
92
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
68
93
  .responsive-visibility();
69
94
  }
70
- @media (min-width: @screen-large-desktop) {
71
- .responsive-invisibility();
95
+ &.visible-lg {
96
+ @media (min-width: @screen-lg) {
97
+ .responsive-visibility();
98
+ }
72
99
  }
73
100
  }
74
101
  .visible-lg {
75
102
  .responsive-invisibility();
76
- @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
77
- .responsive-invisibility();
78
- }
79
- @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) {
80
- .responsive-invisibility();
81
- }
82
- @media (min-width: @screen-large-desktop) {
103
+ &.visible-xs {
104
+ @media (max-width: @screen-xs-max) {
105
+ .responsive-visibility();
106
+ }
107
+ }
108
+ &.visible-sm {
109
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
110
+ .responsive-visibility();
111
+ }
112
+ }
113
+ &.visible-md {
114
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
115
+ .responsive-visibility();
116
+ }
117
+ }
118
+ @media (min-width: @screen-lg) {
83
119
  .responsive-visibility();
84
120
  }
85
121
  }
86
122
 
87
123
  .hidden-xs {
88
- .responsive-invisibility();
89
- @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
90
- .responsive-visibility();
124
+ .responsive-visibility();
125
+ @media (max-width: @screen-xs-max) {
126
+ .responsive-invisibility();
91
127
  }
92
- @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) {
93
- .responsive-visibility();
128
+ &.hidden-sm {
129
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
130
+ .responsive-invisibility();
131
+ }
94
132
  }
95
- @media (min-width: @screen-large-desktop) {
96
- .responsive-visibility();
133
+ &.hidden-md {
134
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
135
+ .responsive-invisibility();
136
+ }
137
+ }
138
+ &.hidden-lg {
139
+ @media (min-width: @screen-lg) {
140
+ .responsive-invisibility();
141
+ }
97
142
  }
98
143
  }
99
144
  .hidden-sm {
100
145
  .responsive-visibility();
101
- @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
146
+ &.hidden-xs {
147
+ @media (max-width: @screen-xs-max) {
148
+ .responsive-invisibility();
149
+ }
150
+ }
151
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
102
152
  .responsive-invisibility();
103
153
  }
104
- @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) {
105
- .responsive-visibility();
154
+ &.hidden-md {
155
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
156
+ .responsive-invisibility();
157
+ }
106
158
  }
107
- @media (min-width: @screen-large-desktop) {
108
- .responsive-visibility();
159
+ &.hidden-lg {
160
+ @media (min-width: @screen-lg) {
161
+ .responsive-invisibility();
162
+ }
109
163
  }
110
164
  }
111
165
  .hidden-md {
112
166
  .responsive-visibility();
113
- @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
114
- .responsive-visibility();
167
+ &.hidden-xs {
168
+ @media (max-width: @screen-xs-max) {
169
+ .responsive-invisibility();
170
+ }
115
171
  }
116
- @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) {
172
+ &.hidden-sm {
173
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
174
+ .responsive-invisibility();
175
+ }
176
+ }
177
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
117
178
  .responsive-invisibility();
118
179
  }
119
- @media (min-width: @screen-large-desktop) {
120
- .responsive-visibility();
180
+ &.hidden-lg {
181
+ @media (min-width: @screen-lg) {
182
+ .responsive-invisibility();
183
+ }
121
184
  }
122
185
  }
123
186
  .hidden-lg {
124
187
  .responsive-visibility();
125
- @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) {
126
- .responsive-visibility();
127
- }
128
- @media (min-width: @screen-desktop) and (max-width: @screen-desktop-max) {
129
- .responsive-visibility();
130
- }
131
- @media (min-width: @screen-large-desktop) {
188
+ &.hidden-xs {
189
+ @media (max-width: @screen-xs-max) {
190
+ .responsive-invisibility();
191
+ }
192
+ }
193
+ &.hidden-sm {
194
+ @media (min-width: @screen-sm) and (max-width: @screen-sm-max) {
195
+ .responsive-invisibility();
196
+ }
197
+ }
198
+ &.hidden-md {
199
+ @media (min-width: @screen-md) and (max-width: @screen-md-max) {
200
+ .responsive-invisibility();
201
+ }
202
+ }
203
+ @media (min-width: @screen-lg) {
132
204
  .responsive-invisibility();
133
205
  }
134
206
  }
@@ -137,7 +209,6 @@
137
209
  .visible-print {
138
210
  .responsive-invisibility();
139
211
  }
140
- .hidden-print { }
141
212
 
142
213
  @media print {
143
214
  .visible-print {
@@ -4,7 +4,6 @@
4
4
 
5
5
 
6
6
  // Reset the box-sizing
7
- // -------------------------
8
7
 
9
8
  *,
10
9
  *:before,
@@ -14,7 +13,6 @@
14
13
 
15
14
 
16
15
  // Body reset
17
- // -------------------------
18
16
 
19
17
  html {
20
18
  font-size: 62.5%;
@@ -39,26 +37,37 @@ textarea {
39
37
  line-height: inherit;
40
38
  }
41
39
 
40
+ // Reset unusual Firefox-on-Android default style.
41
+ //
42
+ // See https://github.com/necolas/normalize.css/issues/214
43
+
44
+ button,
45
+ input,
46
+ select[multiple],
47
+ textarea {
48
+ background-image: none;
49
+ }
50
+
42
51
 
43
52
  // Links
44
- // -------------------------
45
53
 
46
54
  a {
47
55
  color: @link-color;
48
56
  text-decoration: none;
49
- }
50
- a:hover,
51
- a:focus {
52
- color: @link-hover-color;
53
- text-decoration: underline;
54
- }
55
- a:focus {
56
- .tab-focus();
57
+
58
+ &:hover,
59
+ &:focus {
60
+ color: @link-hover-color;
61
+ text-decoration: underline;
62
+ }
63
+
64
+ &:focus {
65
+ .tab-focus();
66
+ }
57
67
  }
58
68
 
59
69
 
60
70
  // Images
61
- // -------------------------
62
71
 
63
72
  img {
64
73
  vertical-align: middle;
@@ -66,9 +75,7 @@ img {
66
75
 
67
76
  // Responsive images (ensure images don't scale beyond their parents)
68
77
  .img-responsive {
69
- display: inline-block;
70
- max-width: 100%; // Part 1: Set a maximum relative to the parent
71
- height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching
78
+ .img-responsive();
72
79
  }
73
80
 
74
81
  // Rounded corners
@@ -77,7 +84,19 @@ img {
77
84
  }
78
85
 
79
86
  // Image thumbnails
80
- // See thumbnails.less for `.img-thumbnail`
87
+ //
88
+ // Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
89
+ .img-thumbnail {
90
+ padding: @thumbnail-padding;
91
+ line-height: @line-height-base;
92
+ background-color: @thumbnail-bg;
93
+ border: 1px solid @thumbnail-border;
94
+ border-radius: @thumbnail-border-radius;
95
+ .transition(all .2s ease-in-out);
96
+
97
+ // Keep them at most 100% wide
98
+ .img-responsive(inline-block);
99
+ }
81
100
 
82
101
  // Perfect circle
83
102
  .img-circle {
@@ -86,7 +105,6 @@ img {
86
105
 
87
106
 
88
107
  // Horizontal rules
89
- // -------------------------
90
108
 
91
109
  hr {
92
110
  margin-top: @line-height-computed;
@@ -95,9 +113,10 @@ hr {
95
113
  border-top: 1px solid @hr-border;
96
114
  }
97
115
 
116
+
98
117
  // Only display content to screen readers
118
+ //
99
119
  // See: http://a11yproject.com/posts/how-to-hide-content/
100
- // -------------------------
101
120
 
102
121
  .sr-only {
103
122
  position: absolute;