twitter-bootstrap-rails 2.2.8 → 3.2.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of twitter-bootstrap-rails might be problematic. Click here for more details.

Files changed (189) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +160 -228
  3. data/Rakefile +4 -6
  4. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  5. data/app/assets/fonts/fontawesome-webfont.svg +279 -38
  6. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  7. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  8. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  9. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  10. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  11. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  12. data/app/assets/javascripts/twitter/bootstrap/affix.js +142 -0
  13. data/app/assets/javascripts/twitter/bootstrap/alert.js +92 -0
  14. data/app/assets/javascripts/twitter/bootstrap/button.js +110 -0
  15. data/app/assets/javascripts/twitter/bootstrap/carousel.js +223 -0
  16. data/app/assets/javascripts/twitter/bootstrap/collapse.js +170 -0
  17. data/app/assets/javascripts/twitter/bootstrap/dropdown.js +151 -0
  18. data/app/assets/javascripts/twitter/bootstrap/modal.js +280 -0
  19. data/app/assets/javascripts/twitter/bootstrap/popover.js +113 -0
  20. data/app/assets/javascripts/twitter/bootstrap/scrollspy.js +170 -0
  21. data/app/assets/javascripts/twitter/bootstrap/tab.js +128 -0
  22. data/app/assets/javascripts/twitter/bootstrap/tooltip.js +457 -0
  23. data/app/assets/javascripts/twitter/bootstrap/transition.js +59 -0
  24. data/app/assets/javascripts/twitter/bootstrap.js +12 -13
  25. data/app/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +1 -890
  26. data/app/assets/stylesheets/twitter-bootstrap-static/fontawesome.css.erb +2026 -787
  27. data/app/assets/stylesheets/twitter-bootstrap-static/sprites.css.erb +1 -146
  28. data/app/helpers/bootstrap_flash_helper.rb +14 -7
  29. data/app/helpers/form_errors_helper.rb +22 -0
  30. data/app/helpers/glyph_helper.rb +8 -5
  31. data/app/helpers/modal_helper.rb +26 -22
  32. data/app/helpers/navbar_helper.rb +47 -32
  33. data/app/helpers/twitter_breadcrumbs_helper.rb +6 -2
  34. data/app/views/twitter-bootstrap/_breadcrumbs.html.erb +8 -8
  35. data/lib/generators/bootstrap/install/install_generator.rb +3 -2
  36. data/lib/generators/bootstrap/install/templates/bootstrap_and_overrides.less +13 -11
  37. data/lib/generators/bootstrap/install/templates/en.bootstrap.yml +5 -0
  38. data/lib/generators/bootstrap/layout/layout_generator.rb +1 -4
  39. data/lib/generators/bootstrap/layout/templates/layout.html.erb +27 -48
  40. data/lib/generators/bootstrap/layout/templates/layout.html.haml +19 -34
  41. data/lib/generators/bootstrap/layout/templates/layout.html.slim +13 -30
  42. data/lib/generators/bootstrap/partial/templates/_login.html.erb +2 -3
  43. data/lib/generators/bootstrap/themed/templates/_form.html.erb +30 -10
  44. data/lib/generators/bootstrap/themed/templates/_form.html.haml +10 -8
  45. data/lib/generators/bootstrap/themed/templates/_form.html.slim +11 -9
  46. data/lib/generators/bootstrap/themed/templates/edit.html.slim +1 -1
  47. data/lib/generators/bootstrap/themed/templates/index.html.erb +2 -2
  48. data/lib/generators/bootstrap/themed/templates/index.html.haml +2 -2
  49. data/lib/generators/bootstrap/themed/templates/index.html.slim +4 -5
  50. data/lib/generators/bootstrap/themed/templates/new.html.slim +1 -1
  51. data/lib/generators/bootstrap/themed/templates/show.html.erb +5 -7
  52. data/lib/generators/bootstrap/themed/templates/show.html.haml +4 -4
  53. data/lib/generators/bootstrap/themed/templates/show.html.slim +6 -7
  54. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.erb +5 -5
  55. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.haml +3 -3
  56. data/lib/generators/bootstrap/themed/templates/simple_form/_form.html.slim +4 -4
  57. data/lib/generators/bootstrap/themed/themed_generator.rb +2 -2
  58. data/lib/twitter/bootstrap/rails/breadcrumbs.rb +69 -0
  59. data/lib/twitter/bootstrap/rails/engine.rb +17 -10
  60. data/lib/twitter/bootstrap/rails/version.rb +2 -2
  61. data/spec/lib/breadcrumbs_spec.rb +99 -0
  62. data/spec/lib/twitter_bootstrap_rails/badge_label_helper_spec.rb +12 -4
  63. data/spec/lib/twitter_bootstrap_rails/bootstrap_flash_helper_spec.rb +128 -0
  64. data/spec/lib/twitter_bootstrap_rails/form_errors_helper_spec.rb +148 -0
  65. data/spec/lib/twitter_bootstrap_rails/glyph_helper_spec.rb +24 -0
  66. data/spec/lib/twitter_bootstrap_rails/modal_helper_spec.rb +15 -15
  67. data/spec/lib/twitter_bootstrap_rails/navbar_helper_spec.rb +207 -173
  68. data/spec/lib/twitter_bootstrap_rails/uri_state_spec.rb +18 -16
  69. data/spec/spec_helper.rb +11 -1
  70. data/vendor/assets/stylesheets/twitter-bootstrap-static/bootstrap.css.erb +5796 -1
  71. data/vendor/static-source/bootstrap.less +0 -1
  72. data/vendor/static-source/fontawesome.less +0 -1
  73. data/vendor/static-source/sprites.less +1 -1
  74. data/vendor/toolkit/fontawesome/bordered-pulled.less +16 -0
  75. data/vendor/toolkit/fontawesome/core.less +8 -126
  76. data/vendor/toolkit/fontawesome/fixed-width.less +6 -0
  77. data/vendor/toolkit/fontawesome/font-awesome.less +9 -25
  78. data/vendor/toolkit/fontawesome/icons.less +549 -378
  79. data/vendor/toolkit/fontawesome/larger.less +13 -0
  80. data/vendor/toolkit/fontawesome/list.less +19 -0
  81. data/vendor/toolkit/fontawesome/mixins.less +16 -39
  82. data/vendor/toolkit/fontawesome/path.less +5 -5
  83. data/vendor/toolkit/fontawesome/rotated-flipped.less +20 -0
  84. data/vendor/toolkit/fontawesome/spinning.less +29 -0
  85. data/vendor/toolkit/fontawesome/stacked.less +20 -0
  86. data/vendor/toolkit/fontawesome/variables.less +557 -731
  87. data/vendor/toolkit/twitter/bootstrap/alerts.less +47 -58
  88. data/vendor/toolkit/twitter/bootstrap/badges.less +55 -0
  89. data/vendor/toolkit/twitter/bootstrap/bootstrap.less +26 -39
  90. data/vendor/toolkit/twitter/bootstrap/breadcrumbs.less +11 -9
  91. data/vendor/toolkit/twitter/bootstrap/button-groups.less +168 -152
  92. data/vendor/toolkit/twitter/bootstrap/buttons.less +101 -170
  93. data/vendor/toolkit/twitter/bootstrap/carousel.less +150 -65
  94. data/vendor/toolkit/twitter/bootstrap/close.less +20 -19
  95. data/vendor/toolkit/twitter/bootstrap/code.less +38 -30
  96. data/vendor/toolkit/twitter/bootstrap/component-animations.less +12 -3
  97. data/vendor/toolkit/twitter/bootstrap/dropdowns.less +115 -148
  98. data/vendor/toolkit/twitter/bootstrap/forms.less +401 -547
  99. data/vendor/toolkit/twitter/bootstrap/glyphicons.less +234 -0
  100. data/vendor/toolkit/twitter/bootstrap/grid.less +74 -11
  101. data/vendor/toolkit/twitter/bootstrap/input-groups.less +166 -0
  102. data/vendor/toolkit/twitter/bootstrap/jumbotron.less +48 -0
  103. data/vendor/toolkit/twitter/bootstrap/labels.less +64 -0
  104. data/vendor/toolkit/twitter/bootstrap/list-group.less +132 -0
  105. data/vendor/toolkit/twitter/bootstrap/media.less +8 -7
  106. data/vendor/toolkit/twitter/bootstrap/mixins/alerts.less +14 -0
  107. data/vendor/toolkit/twitter/bootstrap/mixins/background-variant.less +8 -0
  108. data/vendor/toolkit/twitter/bootstrap/mixins/border-radius.less +18 -0
  109. data/vendor/toolkit/twitter/bootstrap/mixins/buttons.less +52 -0
  110. data/vendor/toolkit/twitter/bootstrap/mixins/center-block.less +7 -0
  111. data/vendor/toolkit/twitter/bootstrap/mixins/clearfix.less +22 -0
  112. data/vendor/toolkit/twitter/bootstrap/mixins/forms.less +85 -0
  113. data/vendor/toolkit/twitter/bootstrap/mixins/gradients.less +59 -0
  114. data/vendor/toolkit/twitter/bootstrap/mixins/grid-framework.less +91 -0
  115. data/vendor/toolkit/twitter/bootstrap/mixins/grid.less +122 -0
  116. data/vendor/toolkit/twitter/bootstrap/mixins/hide-text.less +21 -0
  117. data/vendor/toolkit/twitter/bootstrap/mixins/image.less +33 -0
  118. data/vendor/toolkit/twitter/bootstrap/mixins/labels.less +12 -0
  119. data/vendor/toolkit/twitter/bootstrap/mixins/list-group.less +29 -0
  120. data/vendor/toolkit/twitter/bootstrap/mixins/nav-divider.less +10 -0
  121. data/vendor/toolkit/twitter/bootstrap/mixins/nav-vertical-align.less +9 -0
  122. data/vendor/toolkit/twitter/bootstrap/mixins/opacity.less +8 -0
  123. data/vendor/toolkit/twitter/bootstrap/mixins/pagination.less +23 -0
  124. data/vendor/toolkit/twitter/bootstrap/mixins/panels.less +24 -0
  125. data/vendor/toolkit/twitter/bootstrap/mixins/progress-bar.less +10 -0
  126. data/vendor/toolkit/twitter/bootstrap/mixins/reset-filter.less +8 -0
  127. data/vendor/toolkit/twitter/bootstrap/mixins/resize.less +6 -0
  128. data/vendor/toolkit/twitter/bootstrap/mixins/responsive-visibility.less +15 -0
  129. data/vendor/toolkit/twitter/bootstrap/mixins/size.less +10 -0
  130. data/vendor/toolkit/twitter/bootstrap/mixins/tab-focus.less +9 -0
  131. data/vendor/toolkit/twitter/bootstrap/mixins/table-row.less +28 -0
  132. data/vendor/toolkit/twitter/bootstrap/mixins/text-emphasis.less +8 -0
  133. data/vendor/toolkit/twitter/bootstrap/mixins/text-overflow.less +8 -0
  134. data/vendor/toolkit/twitter/bootstrap/mixins/vendor-prefixes.less +224 -0
  135. data/vendor/toolkit/twitter/bootstrap/mixins.less +36 -699
  136. data/vendor/toolkit/twitter/bootstrap/modals.less +109 -54
  137. data/vendor/toolkit/twitter/bootstrap/navbar.less +542 -384
  138. data/vendor/toolkit/twitter/bootstrap/navs.less +192 -359
  139. data/vendor/toolkit/twitter/bootstrap/normalize.less +425 -0
  140. data/vendor/toolkit/twitter/bootstrap/pager.less +46 -34
  141. data/vendor/toolkit/twitter/bootstrap/pagination.less +70 -105
  142. data/vendor/toolkit/twitter/bootstrap/panels.less +248 -0
  143. data/vendor/toolkit/twitter/bootstrap/popovers.less +61 -61
  144. data/vendor/toolkit/twitter/bootstrap/print.less +101 -0
  145. data/vendor/toolkit/twitter/bootstrap/progress-bars.less +51 -73
  146. data/vendor/toolkit/twitter/bootstrap/responsive-embed.less +34 -0
  147. data/vendor/toolkit/twitter/bootstrap/responsive-utilities.less +177 -42
  148. data/vendor/toolkit/twitter/bootstrap/scaffolding.less +120 -23
  149. data/vendor/toolkit/twitter/bootstrap/tables.less +171 -182
  150. data/vendor/toolkit/twitter/bootstrap/theme.less +260 -0
  151. data/vendor/toolkit/twitter/bootstrap/thumbnails.less +26 -43
  152. data/vendor/toolkit/twitter/bootstrap/tooltip.less +49 -24
  153. data/vendor/toolkit/twitter/bootstrap/type.less +208 -147
  154. data/vendor/toolkit/twitter/bootstrap/utilities.less +33 -7
  155. data/vendor/toolkit/twitter/bootstrap/variables.less +761 -215
  156. data/vendor/toolkit/twitter/bootstrap/wells.less +7 -7
  157. metadata +156 -130
  158. data/app/assets/images/twitter/bootstrap/glyphicons-halflings-white.png +0 -0
  159. data/app/assets/images/twitter/bootstrap/glyphicons-halflings.png +0 -0
  160. data/app/assets/javascripts/twitter/bootstrap/bootstrap-affix.js +0 -117
  161. data/app/assets/javascripts/twitter/bootstrap/bootstrap-alert.js +0 -99
  162. data/app/assets/javascripts/twitter/bootstrap/bootstrap-button.js +0 -105
  163. data/app/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js +0 -207
  164. data/app/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js +0 -167
  165. data/app/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js +0 -169
  166. data/app/assets/javascripts/twitter/bootstrap/bootstrap-modal.js +0 -247
  167. data/app/assets/javascripts/twitter/bootstrap/bootstrap-popover.js +0 -114
  168. data/app/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js +0 -162
  169. data/app/assets/javascripts/twitter/bootstrap/bootstrap-tab.js +0 -144
  170. data/app/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js +0 -361
  171. data/app/assets/javascripts/twitter/bootstrap/bootstrap-transition.js +0 -60
  172. data/app/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js +0 -335
  173. data/lib/twitter/bootstrap/rails/twitter-bootstrap-breadcrumbs.rb +0 -42
  174. data/test/lib/breadcrumbs_test.rb +0 -75
  175. data/test/test_helper.rb +0 -11
  176. data/vendor/toolkit/fontawesome/bootstrap.less +0 -84
  177. data/vendor/toolkit/fontawesome/extras.less +0 -93
  178. data/vendor/toolkit/fontawesome/font-awesome-ie7.less +0 -1953
  179. data/vendor/toolkit/twitter/bootstrap/accordion.less +0 -34
  180. data/vendor/toolkit/twitter/bootstrap/hero-unit.less +0 -25
  181. data/vendor/toolkit/twitter/bootstrap/labels-badges.less +0 -84
  182. data/vendor/toolkit/twitter/bootstrap/layouts.less +0 -16
  183. data/vendor/toolkit/twitter/bootstrap/reset.less +0 -216
  184. data/vendor/toolkit/twitter/bootstrap/responsive-1200px-min.less +0 -28
  185. data/vendor/toolkit/twitter/bootstrap/responsive-767px-max.less +0 -193
  186. data/vendor/toolkit/twitter/bootstrap/responsive-768px-979px.less +0 -19
  187. data/vendor/toolkit/twitter/bootstrap/responsive-navbar.less +0 -189
  188. data/vendor/toolkit/twitter/bootstrap/responsive.less +0 -48
  189. data/vendor/toolkit/twitter/bootstrap/sprites.less +0 -197
@@ -0,0 +1,132 @@
1
+ //
2
+ // List groups
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Base class
7
+ //
8
+ // Easily usable on <ul>, <ol>, or <div>.
9
+
10
+ .list-group {
11
+ // No need to set list-style: none; since .list-group-item is block level
12
+ margin-bottom: 20px;
13
+ padding-left: 0; // reset padding because ul and ol
14
+ }
15
+
16
+
17
+ // Individual list items
18
+ //
19
+ // Use on `li`s or `div`s within the `.list-group` parent.
20
+
21
+ .list-group-item {
22
+ position: relative;
23
+ display: block;
24
+ padding: 10px 15px;
25
+ // Place the border on the list items and negative margin up for better styling
26
+ margin-bottom: -1px;
27
+ background-color: @list-group-bg;
28
+ border: 1px solid @list-group-border;
29
+
30
+ // Round the first and last items
31
+ &:first-child {
32
+ .border-top-radius(@list-group-border-radius);
33
+ }
34
+ &:last-child {
35
+ margin-bottom: 0;
36
+ .border-bottom-radius(@list-group-border-radius);
37
+ }
38
+
39
+ // Align badges within list items
40
+ > .badge {
41
+ float: right;
42
+ }
43
+ > .badge + .badge {
44
+ margin-right: 5px;
45
+ }
46
+ }
47
+
48
+
49
+ // Linked list items
50
+ //
51
+ // Use anchor elements instead of `li`s or `div`s to create linked list items.
52
+ // Includes an extra `.active` modifier class for showing selected items.
53
+
54
+ a.list-group-item {
55
+ color: @list-group-link-color;
56
+
57
+ .list-group-item-heading {
58
+ color: @list-group-link-heading-color;
59
+ }
60
+
61
+ // Hover state
62
+ &:hover,
63
+ &:focus {
64
+ text-decoration: none;
65
+ color: @list-group-link-hover-color;
66
+ background-color: @list-group-hover-bg;
67
+ }
68
+ }
69
+
70
+ .list-group-item {
71
+ // Disabled state
72
+ &.disabled,
73
+ &.disabled:hover,
74
+ &.disabled:focus {
75
+ background-color: @list-group-disabled-bg;
76
+ color: @list-group-disabled-color;
77
+ cursor: not-allowed;
78
+
79
+ // Force color to inherit for custom content
80
+ .list-group-item-heading {
81
+ color: inherit;
82
+ }
83
+ .list-group-item-text {
84
+ color: @list-group-disabled-text-color;
85
+ }
86
+ }
87
+
88
+ // Active class on item itself, not parent
89
+ &.active,
90
+ &.active:hover,
91
+ &.active:focus {
92
+ z-index: 2; // Place active items above their siblings for proper border styling
93
+ color: @list-group-active-color;
94
+ background-color: @list-group-active-bg;
95
+ border-color: @list-group-active-border;
96
+
97
+ // Force color to inherit for custom content
98
+ .list-group-item-heading,
99
+ .list-group-item-heading > small,
100
+ .list-group-item-heading > .small {
101
+ color: inherit;
102
+ }
103
+ .list-group-item-text {
104
+ color: @list-group-active-text-color;
105
+ }
106
+ }
107
+ }
108
+
109
+
110
+ // Contextual variants
111
+ //
112
+ // Add modifier classes to change text and background color on individual items.
113
+ // Organizationally, this must come after the `:hover` states.
114
+
115
+ .list-group-item-variant(success; @state-success-bg; @state-success-text);
116
+ .list-group-item-variant(info; @state-info-bg; @state-info-text);
117
+ .list-group-item-variant(warning; @state-warning-bg; @state-warning-text);
118
+ .list-group-item-variant(danger; @state-danger-bg; @state-danger-text);
119
+
120
+
121
+ // Custom content options
122
+ //
123
+ // Extra classes for creating well-formatted content within `.list-group-item`s.
124
+
125
+ .list-group-item-heading {
126
+ margin-top: 0;
127
+ margin-bottom: 5px;
128
+ }
129
+ .list-group-item-text {
130
+ margin-bottom: 0;
131
+ line-height: 1.3;
132
+ }
@@ -10,7 +10,6 @@
10
10
  .media,
11
11
  .media-body {
12
12
  overflow: hidden;
13
- *overflow: visible;
14
13
  zoom: 1;
15
14
  }
16
15
 
@@ -37,11 +36,13 @@
37
36
  // Media image alignment
38
37
  // -------------------------
39
38
 
40
- .media > .pull-left {
41
- margin-right: 10px;
42
- }
43
- .media > .pull-right {
44
- margin-left: 10px;
39
+ .media {
40
+ > .pull-left {
41
+ margin-right: 10px;
42
+ }
43
+ > .pull-right {
44
+ margin-left: 10px;
45
+ }
45
46
  }
46
47
 
47
48
 
@@ -50,6 +51,6 @@
50
51
 
51
52
  // Undo default ul/ol styles
52
53
  .media-list {
53
- margin-left: 0;
54
+ padding-left: 0;
54
55
  list-style: none;
55
56
  }
@@ -0,0 +1,14 @@
1
+ // Alerts
2
+
3
+ .alert-variant(@background; @border; @text-color) {
4
+ background-color: @background;
5
+ border-color: @border;
6
+ color: @text-color;
7
+
8
+ hr {
9
+ border-top-color: darken(@border, 5%);
10
+ }
11
+ .alert-link {
12
+ color: darken(@text-color, 10%);
13
+ }
14
+ }
@@ -0,0 +1,8 @@
1
+ // Contextual backgrounds
2
+
3
+ .bg-variant(@color) {
4
+ background-color: @color;
5
+ a&:hover {
6
+ background-color: darken(@color, 10%);
7
+ }
8
+ }
@@ -0,0 +1,18 @@
1
+ // Single side border-radius
2
+
3
+ .border-top-radius(@radius) {
4
+ border-top-right-radius: @radius;
5
+ border-top-left-radius: @radius;
6
+ }
7
+ .border-right-radius(@radius) {
8
+ border-bottom-right-radius: @radius;
9
+ border-top-right-radius: @radius;
10
+ }
11
+ .border-bottom-radius(@radius) {
12
+ border-bottom-right-radius: @radius;
13
+ border-bottom-left-radius: @radius;
14
+ }
15
+ .border-left-radius(@radius) {
16
+ border-bottom-left-radius: @radius;
17
+ border-top-left-radius: @radius;
18
+ }
@@ -0,0 +1,52 @@
1
+ // Button variants
2
+ //
3
+ // Easily pump out default styles, as well as :hover, :focus, :active,
4
+ // and disabled options for all buttons
5
+
6
+ .button-variant(@color; @background; @border) {
7
+ color: @color;
8
+ background-color: @background;
9
+ border-color: @border;
10
+
11
+ &:hover,
12
+ &:focus,
13
+ &.focus,
14
+ &:active,
15
+ &.active,
16
+ .open > .dropdown-toggle& {
17
+ color: @color;
18
+ background-color: darken(@background, 10%);
19
+ border-color: darken(@border, 12%);
20
+ }
21
+ &:active,
22
+ &.active,
23
+ .open > .dropdown-toggle& {
24
+ background-image: none;
25
+ }
26
+ &.disabled,
27
+ &[disabled],
28
+ fieldset[disabled] & {
29
+ &,
30
+ &:hover,
31
+ &:focus,
32
+ &.focus,
33
+ &:active,
34
+ &.active {
35
+ background-color: @background;
36
+ border-color: @border;
37
+ }
38
+ }
39
+
40
+ .badge {
41
+ color: @background;
42
+ background-color: @color;
43
+ }
44
+ }
45
+
46
+ // Button sizes
47
+ .button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
48
+ padding: @padding-vertical @padding-horizontal;
49
+ font-size: @font-size;
50
+ line-height: @line-height;
51
+ border-radius: @border-radius;
52
+ }
@@ -0,0 +1,7 @@
1
+ // Center-align a block level element
2
+
3
+ .center-block() {
4
+ display: block;
5
+ margin-left: auto;
6
+ margin-right: auto;
7
+ }
@@ -0,0 +1,22 @@
1
+ // Clearfix
2
+ //
3
+ // For modern browsers
4
+ // 1. The space content is one way to avoid an Opera bug when the
5
+ // contenteditable attribute is included anywhere else in the document.
6
+ // Otherwise it causes space to appear at the top and bottom of elements
7
+ // that are clearfixed.
8
+ // 2. The use of `table` rather than `block` is only necessary if using
9
+ // `:before` to contain the top-margins of child elements.
10
+ //
11
+ // Source: http://nicolasgallagher.com/micro-clearfix-hack/
12
+
13
+ .clearfix() {
14
+ &:before,
15
+ &:after {
16
+ content: " "; // 1
17
+ display: table; // 2
18
+ }
19
+ &:after {
20
+ clear: both;
21
+ }
22
+ }
@@ -0,0 +1,85 @@
1
+ // Form validation states
2
+ //
3
+ // Used in forms.less to generate the form validation CSS for warnings, errors,
4
+ // and successes.
5
+
6
+ .form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
7
+ // Color the label and help text
8
+ .help-block,
9
+ .control-label,
10
+ .radio,
11
+ .checkbox,
12
+ .radio-inline,
13
+ .checkbox-inline,
14
+ &.radio label,
15
+ &.checkbox label,
16
+ &.radio-inline label,
17
+ &.checkbox-inline label {
18
+ color: @text-color;
19
+ }
20
+ // Set the border and box shadow on specific inputs to match
21
+ .form-control {
22
+ border-color: @border-color;
23
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
24
+ &:focus {
25
+ border-color: darken(@border-color, 10%);
26
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
27
+ .box-shadow(@shadow);
28
+ }
29
+ }
30
+ // Set validation states also for addons
31
+ .input-group-addon {
32
+ color: @text-color;
33
+ border-color: @border-color;
34
+ background-color: @background-color;
35
+ }
36
+ // Optional feedback icon
37
+ .form-control-feedback {
38
+ color: @text-color;
39
+ }
40
+ }
41
+
42
+
43
+ // Form control focus state
44
+ //
45
+ // Generate a customized focus state and for any input with the specified color,
46
+ // which defaults to the `@input-border-focus` variable.
47
+ //
48
+ // We highly encourage you to not customize the default value, but instead use
49
+ // this to tweak colors on an as-needed basis. This aesthetic change is based on
50
+ // WebKit's default styles, but applicable to a wider range of browsers. Its
51
+ // usability and accessibility should be taken into account with any change.
52
+ //
53
+ // Example usage: change the default blue border and shadow to white for better
54
+ // contrast against a dark gray background.
55
+ .form-control-focus(@color: @input-border-focus) {
56
+ @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
57
+ &:focus {
58
+ border-color: @color;
59
+ outline: 0;
60
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
61
+ }
62
+ }
63
+
64
+ // Form control sizing
65
+ //
66
+ // Relative text size, padding, and border-radii changes for form controls. For
67
+ // horizontal sizing, wrap controls in the predefined grid classes. `<select>`
68
+ // element gets special love because it's special, and that's a fact!
69
+ .input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {
70
+ height: @input-height;
71
+ padding: @padding-vertical @padding-horizontal;
72
+ font-size: @font-size;
73
+ line-height: @line-height;
74
+ border-radius: @border-radius;
75
+
76
+ select& {
77
+ height: @input-height;
78
+ line-height: @input-height;
79
+ }
80
+
81
+ textarea&,
82
+ select[multiple]& {
83
+ height: auto;
84
+ }
85
+ }
@@ -0,0 +1,59 @@
1
+ // Gradients
2
+
3
+ #gradient {
4
+
5
+ // Horizontal gradient, from left to right
6
+ //
7
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
8
+ // Color stops are not available in IE9 and below.
9
+ .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
10
+ background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
11
+ background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
12
+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
13
+ background-repeat: repeat-x;
14
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
15
+ }
16
+
17
+ // Vertical gradient, from top to bottom
18
+ //
19
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
20
+ // Color stops are not available in IE9 and below.
21
+ .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
22
+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
23
+ background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
24
+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
25
+ background-repeat: repeat-x;
26
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
27
+ }
28
+
29
+ .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
30
+ background-repeat: repeat-x;
31
+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
32
+ background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
33
+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
34
+ }
35
+ .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
36
+ background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
37
+ background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
38
+ background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
39
+ background-repeat: no-repeat;
40
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
41
+ }
42
+ .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
43
+ background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
44
+ background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
45
+ background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
46
+ background-repeat: no-repeat;
47
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
48
+ }
49
+ .radial(@inner-color: #555; @outer-color: #333) {
50
+ background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
51
+ background-image: radial-gradient(circle, @inner-color, @outer-color);
52
+ background-repeat: no-repeat;
53
+ }
54
+ .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
55
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
56
+ background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
57
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
58
+ }
59
+ }
@@ -0,0 +1,91 @@
1
+ // Framework grid generation
2
+ //
3
+ // Used only by Bootstrap to generate the correct number of grid classes given
4
+ // any value of `@grid-columns`.
5
+
6
+ .make-grid-columns() {
7
+ // Common styles for all sizes of grid columns, widths 1-12
8
+ .col(@index) when (@index = 1) { // initial
9
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
10
+ .col((@index + 1), @item);
11
+ }
12
+ .col(@index, @list) when (@index =< @grid-columns) { // general; "=<" isn't a typo
13
+ @item: ~".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}";
14
+ .col((@index + 1), ~"@{list}, @{item}");
15
+ }
16
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
17
+ @{list} {
18
+ position: relative;
19
+ // Prevent columns from collapsing when empty
20
+ min-height: 1px;
21
+ // Inner gutter via padding
22
+ padding-left: (@grid-gutter-width / 2);
23
+ padding-right: (@grid-gutter-width / 2);
24
+ }
25
+ }
26
+ .col(1); // kickstart it
27
+ }
28
+
29
+ .float-grid-columns(@class) {
30
+ .col(@index) when (@index = 1) { // initial
31
+ @item: ~".col-@{class}-@{index}";
32
+ .col((@index + 1), @item);
33
+ }
34
+ .col(@index, @list) when (@index =< @grid-columns) { // general
35
+ @item: ~".col-@{class}-@{index}";
36
+ .col((@index + 1), ~"@{list}, @{item}");
37
+ }
38
+ .col(@index, @list) when (@index > @grid-columns) { // terminal
39
+ @{list} {
40
+ float: left;
41
+ }
42
+ }
43
+ .col(1); // kickstart it
44
+ }
45
+
46
+ .calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {
47
+ .col-@{class}-@{index} {
48
+ width: percentage((@index / @grid-columns));
49
+ }
50
+ }
51
+ .calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {
52
+ .col-@{class}-push-@{index} {
53
+ left: percentage((@index / @grid-columns));
54
+ }
55
+ }
56
+ .calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {
57
+ .col-@{class}-push-0 {
58
+ left: auto;
59
+ }
60
+ }
61
+ .calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {
62
+ .col-@{class}-pull-@{index} {
63
+ right: percentage((@index / @grid-columns));
64
+ }
65
+ }
66
+ .calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {
67
+ .col-@{class}-pull-0 {
68
+ right: auto;
69
+ }
70
+ }
71
+ .calc-grid-column(@index, @class, @type) when (@type = offset) {
72
+ .col-@{class}-offset-@{index} {
73
+ margin-left: percentage((@index / @grid-columns));
74
+ }
75
+ }
76
+
77
+ // Basic looping in LESS
78
+ .loop-grid-columns(@index, @class, @type) when (@index >= 0) {
79
+ .calc-grid-column(@index, @class, @type);
80
+ // next iteration
81
+ .loop-grid-columns((@index - 1), @class, @type);
82
+ }
83
+
84
+ // Create grid for specific class
85
+ .make-grid(@class) {
86
+ .float-grid-columns(@class);
87
+ .loop-grid-columns(@grid-columns, @class, width);
88
+ .loop-grid-columns(@grid-columns, @class, pull);
89
+ .loop-grid-columns(@grid-columns, @class, push);
90
+ .loop-grid-columns(@grid-columns, @class, offset);
91
+ }
@@ -0,0 +1,122 @@
1
+ // Grid system
2
+ //
3
+ // Generate semantic grid columns with these mixins.
4
+
5
+ // Centered container element
6
+ .container-fixed(@gutter: @grid-gutter-width) {
7
+ margin-right: auto;
8
+ margin-left: auto;
9
+ padding-left: (@gutter / 2);
10
+ padding-right: (@gutter / 2);
11
+ &:extend(.clearfix all);
12
+ }
13
+
14
+ // Creates a wrapper for a series of columns
15
+ .make-row(@gutter: @grid-gutter-width) {
16
+ margin-left: (@gutter / -2);
17
+ margin-right: (@gutter / -2);
18
+ &:extend(.clearfix all);
19
+ }
20
+
21
+ // Generate the extra small columns
22
+ .make-xs-column(@columns; @gutter: @grid-gutter-width) {
23
+ position: relative;
24
+ float: left;
25
+ width: percentage((@columns / @grid-columns));
26
+ min-height: 1px;
27
+ padding-left: (@gutter / 2);
28
+ padding-right: (@gutter / 2);
29
+ }
30
+ .make-xs-column-offset(@columns) {
31
+ margin-left: percentage((@columns / @grid-columns));
32
+ }
33
+ .make-xs-column-push(@columns) {
34
+ left: percentage((@columns / @grid-columns));
35
+ }
36
+ .make-xs-column-pull(@columns) {
37
+ right: percentage((@columns / @grid-columns));
38
+ }
39
+
40
+ // Generate the small columns
41
+ .make-sm-column(@columns; @gutter: @grid-gutter-width) {
42
+ position: relative;
43
+ min-height: 1px;
44
+ padding-left: (@gutter / 2);
45
+ padding-right: (@gutter / 2);
46
+
47
+ @media (min-width: @screen-sm-min) {
48
+ float: left;
49
+ width: percentage((@columns / @grid-columns));
50
+ }
51
+ }
52
+ .make-sm-column-offset(@columns) {
53
+ @media (min-width: @screen-sm-min) {
54
+ margin-left: percentage((@columns / @grid-columns));
55
+ }
56
+ }
57
+ .make-sm-column-push(@columns) {
58
+ @media (min-width: @screen-sm-min) {
59
+ left: percentage((@columns / @grid-columns));
60
+ }
61
+ }
62
+ .make-sm-column-pull(@columns) {
63
+ @media (min-width: @screen-sm-min) {
64
+ right: percentage((@columns / @grid-columns));
65
+ }
66
+ }
67
+
68
+ // Generate the medium columns
69
+ .make-md-column(@columns; @gutter: @grid-gutter-width) {
70
+ position: relative;
71
+ min-height: 1px;
72
+ padding-left: (@gutter / 2);
73
+ padding-right: (@gutter / 2);
74
+
75
+ @media (min-width: @screen-md-min) {
76
+ float: left;
77
+ width: percentage((@columns / @grid-columns));
78
+ }
79
+ }
80
+ .make-md-column-offset(@columns) {
81
+ @media (min-width: @screen-md-min) {
82
+ margin-left: percentage((@columns / @grid-columns));
83
+ }
84
+ }
85
+ .make-md-column-push(@columns) {
86
+ @media (min-width: @screen-md-min) {
87
+ left: percentage((@columns / @grid-columns));
88
+ }
89
+ }
90
+ .make-md-column-pull(@columns) {
91
+ @media (min-width: @screen-md-min) {
92
+ right: percentage((@columns / @grid-columns));
93
+ }
94
+ }
95
+
96
+ // Generate the large columns
97
+ .make-lg-column(@columns; @gutter: @grid-gutter-width) {
98
+ position: relative;
99
+ min-height: 1px;
100
+ padding-left: (@gutter / 2);
101
+ padding-right: (@gutter / 2);
102
+
103
+ @media (min-width: @screen-lg-min) {
104
+ float: left;
105
+ width: percentage((@columns / @grid-columns));
106
+ }
107
+ }
108
+ .make-lg-column-offset(@columns) {
109
+ @media (min-width: @screen-lg-min) {
110
+ margin-left: percentage((@columns / @grid-columns));
111
+ }
112
+ }
113
+ .make-lg-column-push(@columns) {
114
+ @media (min-width: @screen-lg-min) {
115
+ left: percentage((@columns / @grid-columns));
116
+ }
117
+ }
118
+ .make-lg-column-pull(@columns) {
119
+ @media (min-width: @screen-lg-min) {
120
+ right: percentage((@columns / @grid-columns));
121
+ }
122
+ }
@@ -0,0 +1,21 @@
1
+ // CSS image replacement
2
+ //
3
+ // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
4
+ // mixins being reused as classes with the same name, this doesn't hold up. As
5
+ // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6
+ //
7
+ // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8
+
9
+ // Deprecated as of v3.0.1 (will be removed in v4)
10
+ .hide-text() {
11
+ font: ~"0/0" a;
12
+ color: transparent;
13
+ text-shadow: none;
14
+ background-color: transparent;
15
+ border: 0;
16
+ }
17
+
18
+ // New mixin to use as of v3.0.1
19
+ .text-hide() {
20
+ .hide-text();
21
+ }