twbs_less_rails 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +12 -0
  3. data/CONTRIBUTING.md +45 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +144 -0
  6. data/LICENSE +30 -0
  7. data/README.md +147 -0
  8. data/Rakefile +113 -0
  9. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  10. data/app/assets/fonts/fontawesome-webfont.svg +399 -0
  11. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  12. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  13. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  14. data/app/assets/fonts/glyphicons-halflings-regular.svg +229 -0
  15. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  16. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  17. data/gemfiles/Gemfile.rails-3.2.x +9 -0
  18. data/gemfiles/Gemfile.rails-4.0.x +9 -0
  19. data/lib/generators/twbs_less_rails/install/install_generator.rb +31 -0
  20. data/lib/generators/twbs_less_rails/install/templates/application.css +15 -0
  21. data/lib/generators/twbs_less_rails/install/templates/application.js +17 -0
  22. data/lib/generators/twbs_less_rails/install/templates/twbs-variables.css.less +5 -0
  23. data/lib/generators/twbs_less_rails/install/templates/twbs.css.less +14 -0
  24. data/lib/generators/twbs_less_rails/install/templates/twbs.js.coffee +7 -0
  25. data/lib/tasks/twbs_less_rails_tasks.rake +4 -0
  26. data/lib/twbs_less_rails/engine.rb +7 -0
  27. data/lib/twbs_less_rails/version.rb +3 -0
  28. data/lib/twbs_less_rails.rb +4 -0
  29. data/test/dummy/README.rdoc +28 -0
  30. data/test/dummy/Rakefile +6 -0
  31. data/test/dummy/app/assets/images/.keep +0 -0
  32. data/test/dummy/app/assets/javascripts/application.js +14 -0
  33. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  34. data/test/dummy/app/assets/stylesheets/default-twbs.css.less +1 -0
  35. data/test/dummy/app/assets/stylesheets/test.css.less +5 -0
  36. data/test/dummy/app/assets/stylesheets/twbs-variables.css.less +6 -0
  37. data/test/dummy/app/assets/stylesheets/twbs.css.less +14 -0
  38. data/test/dummy/app/controllers/application_controller.rb +5 -0
  39. data/test/dummy/app/controllers/concerns/.keep +0 -0
  40. data/test/dummy/app/helpers/application_helper.rb +2 -0
  41. data/test/dummy/app/mailers/.keep +0 -0
  42. data/test/dummy/app/models/.keep +0 -0
  43. data/test/dummy/app/models/concerns/.keep +0 -0
  44. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  45. data/test/dummy/bin/bundle +3 -0
  46. data/test/dummy/bin/rails +4 -0
  47. data/test/dummy/bin/rake +4 -0
  48. data/test/dummy/config/application.rb +27 -0
  49. data/test/dummy/config/boot.rb +5 -0
  50. data/test/dummy/config/database.yml +25 -0
  51. data/test/dummy/config/environment.rb +5 -0
  52. data/test/dummy/config/environments/development.rb +29 -0
  53. data/test/dummy/config/environments/production.rb +80 -0
  54. data/test/dummy/config/environments/test.rb +36 -0
  55. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  56. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  57. data/test/dummy/config/initializers/inflections.rb +16 -0
  58. data/test/dummy/config/initializers/mime_types.rb +5 -0
  59. data/test/dummy/config/initializers/secret_token.rb +18 -0
  60. data/test/dummy/config/initializers/session_store.rb +3 -0
  61. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  62. data/test/dummy/config/locales/en.yml +23 -0
  63. data/test/dummy/config/routes.rb +56 -0
  64. data/test/dummy/config.ru +4 -0
  65. data/test/dummy/db/.keep +0 -0
  66. data/test/dummy/lib/assets/.keep +0 -0
  67. data/test/dummy/log/.keep +0 -0
  68. data/test/dummy/public/404.html +58 -0
  69. data/test/dummy/public/422.html +58 -0
  70. data/test/dummy/public/500.html +57 -0
  71. data/test/dummy/public/favicon.ico +0 -0
  72. data/test/generators/default_rails_assets/application.css +13 -0
  73. data/test/generators/default_rails_assets/application.js +16 -0
  74. data/test/generators/install_generator_test.rb +47 -0
  75. data/test/integration/assets_precompile_integration_test.rb +49 -0
  76. data/test/integration/twbs_less_rails_integration_test.rb +38 -0
  77. data/test/test_helper.rb +38 -0
  78. data/twbs_less_rails.gemspec +34 -0
  79. data/vendor/assets/javascripts/respond.js +342 -0
  80. data/vendor/assets/javascripts/twbs/bootstrap/affix.js +126 -0
  81. data/vendor/assets/javascripts/twbs/bootstrap/alert.js +98 -0
  82. data/vendor/assets/javascripts/twbs/bootstrap/button.js +109 -0
  83. data/vendor/assets/javascripts/twbs/bootstrap/carousel.js +217 -0
  84. data/vendor/assets/javascripts/twbs/bootstrap/collapse.js +179 -0
  85. data/vendor/assets/javascripts/twbs/bootstrap/dropdown.js +154 -0
  86. data/vendor/assets/javascripts/twbs/bootstrap/modal.js +246 -0
  87. data/vendor/assets/javascripts/twbs/bootstrap/popover.js +117 -0
  88. data/vendor/assets/javascripts/twbs/bootstrap/scrollspy.js +158 -0
  89. data/vendor/assets/javascripts/twbs/bootstrap/tab.js +135 -0
  90. data/vendor/assets/javascripts/twbs/bootstrap/tooltip.js +386 -0
  91. data/vendor/assets/javascripts/twbs/bootstrap/transition.js +56 -0
  92. data/vendor/assets/javascripts/twbs/bootstrap.js +12 -0
  93. data/vendor/assets/stylesheets/fontawesome/bootstrap.less +84 -0
  94. data/vendor/assets/stylesheets/fontawesome/core.less +129 -0
  95. data/vendor/assets/stylesheets/fontawesome/extras.less +93 -0
  96. data/vendor/assets/stylesheets/fontawesome/font-awesome.less +33 -0
  97. data/vendor/assets/stylesheets/fontawesome/icons.less +381 -0
  98. data/vendor/assets/stylesheets/fontawesome/mixins.less +48 -0
  99. data/vendor/assets/stylesheets/fontawesome/path.less +14 -0
  100. data/vendor/assets/stylesheets/fontawesome/variables.less +735 -0
  101. data/vendor/assets/stylesheets/twbs/bootstrap/alerts.less +67 -0
  102. data/vendor/assets/stylesheets/twbs/bootstrap/badges.less +51 -0
  103. data/vendor/assets/stylesheets/twbs/bootstrap/bootstrap.less +48 -0
  104. data/vendor/assets/stylesheets/twbs/bootstrap/breadcrumbs.less +23 -0
  105. data/vendor/assets/stylesheets/twbs/bootstrap/button-groups.less +248 -0
  106. data/vendor/assets/stylesheets/twbs/bootstrap/buttons.less +158 -0
  107. data/vendor/assets/stylesheets/twbs/bootstrap/carousel.less +220 -0
  108. data/vendor/assets/stylesheets/twbs/bootstrap/close.less +33 -0
  109. data/vendor/assets/stylesheets/twbs/bootstrap/code.less +53 -0
  110. data/vendor/assets/stylesheets/twbs/bootstrap/component-animations.less +29 -0
  111. data/vendor/assets/stylesheets/twbs/bootstrap/dropdowns.less +192 -0
  112. data/vendor/assets/stylesheets/twbs/bootstrap/forms.less +366 -0
  113. data/vendor/assets/stylesheets/twbs/bootstrap/glyphicons.less +236 -0
  114. data/vendor/assets/stylesheets/twbs/bootstrap/grid.less +93 -0
  115. data/vendor/assets/stylesheets/twbs/bootstrap/input-groups.less +136 -0
  116. data/vendor/assets/stylesheets/twbs/bootstrap/jumbotron.less +40 -0
  117. data/vendor/assets/stylesheets/twbs/bootstrap/labels.less +58 -0
  118. data/vendor/assets/stylesheets/twbs/bootstrap/list-group.less +88 -0
  119. data/vendor/assets/stylesheets/twbs/bootstrap/media.less +56 -0
  120. data/vendor/assets/stylesheets/twbs/bootstrap/mixins.less +846 -0
  121. data/vendor/assets/stylesheets/twbs/bootstrap/modals.less +131 -0
  122. data/vendor/assets/stylesheets/twbs/bootstrap/navbar.less +621 -0
  123. data/vendor/assets/stylesheets/twbs/bootstrap/navs.less +257 -0
  124. data/vendor/assets/stylesheets/twbs/bootstrap/normalize.less +406 -0
  125. data/vendor/assets/stylesheets/twbs/bootstrap/pager.less +55 -0
  126. data/vendor/assets/stylesheets/twbs/bootstrap/pagination.less +85 -0
  127. data/vendor/assets/stylesheets/twbs/bootstrap/panels.less +168 -0
  128. data/vendor/assets/stylesheets/twbs/bootstrap/popovers.less +133 -0
  129. data/vendor/assets/stylesheets/twbs/bootstrap/print.less +100 -0
  130. data/vendor/assets/stylesheets/twbs/bootstrap/progress-bars.less +96 -0
  131. data/vendor/assets/stylesheets/twbs/bootstrap/responsive-utilities.less +209 -0
  132. data/vendor/assets/stylesheets/twbs/bootstrap/scaffolding.less +119 -0
  133. data/vendor/assets/stylesheets/twbs/bootstrap/tables.less +236 -0
  134. data/vendor/assets/stylesheets/twbs/bootstrap/theme.less +246 -0
  135. data/vendor/assets/stylesheets/twbs/bootstrap/thumbnails.less +33 -0
  136. data/vendor/assets/stylesheets/twbs/bootstrap/tooltip.less +95 -0
  137. data/vendor/assets/stylesheets/twbs/bootstrap/type.less +273 -0
  138. data/vendor/assets/stylesheets/twbs/bootstrap/utilities.less +56 -0
  139. data/vendor/assets/stylesheets/twbs/bootstrap/variables.less +637 -0
  140. data/vendor/assets/stylesheets/twbs/bootstrap/wells.less +29 -0
  141. data/vendor/assets/stylesheets/twbs/bootstrap.less +1 -0
  142. metadata +387 -0
@@ -0,0 +1,220 @@
1
+ //
2
+ // Carousel
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Wrapper for the slide container and indicators
7
+ .carousel {
8
+ position: relative;
9
+ }
10
+
11
+ .carousel-inner {
12
+ position: relative;
13
+ overflow: hidden;
14
+ width: 100%;
15
+
16
+ > .item {
17
+ display: none;
18
+ position: relative;
19
+ .transition(.6s ease-in-out left);
20
+
21
+ // Account for jankitude on images
22
+ > img,
23
+ > a > img {
24
+ .img-responsive();
25
+ line-height: 1;
26
+ }
27
+ }
28
+
29
+ > .active,
30
+ > .next,
31
+ > .prev { display: block; }
32
+
33
+ > .active {
34
+ left: 0;
35
+ }
36
+
37
+ > .next,
38
+ > .prev {
39
+ position: absolute;
40
+ top: 0;
41
+ width: 100%;
42
+ }
43
+
44
+ > .next {
45
+ left: 100%;
46
+ }
47
+ > .prev {
48
+ left: -100%;
49
+ }
50
+ > .next.left,
51
+ > .prev.right {
52
+ left: 0;
53
+ }
54
+
55
+ > .active.left {
56
+ left: -100%;
57
+ }
58
+ > .active.right {
59
+ left: 100%;
60
+ }
61
+
62
+ }
63
+
64
+ // Left/right controls for nav
65
+ // ---------------------------
66
+
67
+ .carousel-control {
68
+ position: absolute;
69
+ top: 0;
70
+ left: 0;
71
+ bottom: 0;
72
+ width: @carousel-control-width;
73
+ .opacity(@carousel-control-opacity);
74
+ font-size: @carousel-control-font-size;
75
+ color: @carousel-control-color;
76
+ text-align: center;
77
+ text-shadow: @carousel-text-shadow;
78
+ // We can't have this transition here because webkit cancels the carousel
79
+ // animation if you trip this while in the middle of another animation.
80
+
81
+ // Set gradients for backgrounds
82
+ &.left {
83
+ #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));
84
+ }
85
+ &.right {
86
+ left: auto;
87
+ right: 0;
88
+ #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));
89
+ }
90
+
91
+ // Hover/focus state
92
+ &:hover,
93
+ &:focus {
94
+ color: @carousel-control-color;
95
+ text-decoration: none;
96
+ .opacity(.9);
97
+ }
98
+
99
+ // Toggles
100
+ .icon-prev,
101
+ .icon-next,
102
+ .glyphicon-chevron-left,
103
+ .glyphicon-chevron-right {
104
+ position: absolute;
105
+ top: 50%;
106
+ z-index: 5;
107
+ display: inline-block;
108
+ }
109
+ .icon-prev,
110
+ .glyphicon-chevron-left {
111
+ left: 50%;
112
+ }
113
+ .icon-next,
114
+ .glyphicon-chevron-right {
115
+ right: 50%;
116
+ }
117
+ .icon-prev,
118
+ .icon-next {
119
+ width: 20px;
120
+ height: 20px;
121
+ margin-top: -10px;
122
+ margin-left: -10px;
123
+ font-family: serif;
124
+ }
125
+
126
+ .icon-prev {
127
+ &:before {
128
+ content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
129
+ }
130
+ }
131
+ .icon-next {
132
+ &:before {
133
+ content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
134
+ }
135
+ }
136
+ }
137
+
138
+ // Optional indicator pips
139
+ //
140
+ // Add an unordered list with the following class and add a list item for each
141
+ // slide your carousel holds.
142
+
143
+ .carousel-indicators {
144
+ position: absolute;
145
+ bottom: 10px;
146
+ left: 50%;
147
+ z-index: 15;
148
+ width: 60%;
149
+ margin-left: -30%;
150
+ padding-left: 0;
151
+ list-style: none;
152
+ text-align: center;
153
+
154
+ li {
155
+ display: inline-block;
156
+ width: 10px;
157
+ height: 10px;
158
+ margin: 1px;
159
+ text-indent: -999px;
160
+ border: 1px solid @carousel-indicator-border-color;
161
+ border-radius: 10px;
162
+ cursor: pointer;
163
+ }
164
+ .active {
165
+ margin: 0;
166
+ width: 12px;
167
+ height: 12px;
168
+ background-color: @carousel-indicator-active-bg;
169
+ }
170
+ }
171
+
172
+ // Optional captions
173
+ // -----------------------------
174
+ // Hidden by default for smaller viewports
175
+ .carousel-caption {
176
+ position: absolute;
177
+ left: 15%;
178
+ right: 15%;
179
+ bottom: 20px;
180
+ z-index: 10;
181
+ padding-top: 20px;
182
+ padding-bottom: 20px;
183
+ color: @carousel-caption-color;
184
+ text-align: center;
185
+ text-shadow: @carousel-text-shadow;
186
+ & .btn {
187
+ text-shadow: none; // No shadow for button elements in carousel-caption
188
+ }
189
+ }
190
+
191
+
192
+ // Scale up controls for tablets and up
193
+ @media screen and (min-width: @screen-sm-min) {
194
+
195
+ // Scale up the controls a smidge
196
+ .carousel-control {
197
+ .glyphicons-chevron-left,
198
+ .glyphicons-chevron-right,
199
+ .icon-prev,
200
+ .icon-next {
201
+ width: 30px;
202
+ height: 30px;
203
+ margin-top: -15px;
204
+ margin-left: -15px;
205
+ font-size: 30px;
206
+ }
207
+ }
208
+
209
+ // Show and left align the captions
210
+ .carousel-caption {
211
+ left: 20%;
212
+ right: 20%;
213
+ padding-bottom: 30px;
214
+ }
215
+
216
+ // Move up the indicators
217
+ .carousel-indicators {
218
+ bottom: 20px;
219
+ }
220
+ }
@@ -0,0 +1,33 @@
1
+ //
2
+ // Close icons
3
+ // --------------------------------------------------
4
+
5
+
6
+ .close {
7
+ float: right;
8
+ font-size: (@font-size-base * 1.5);
9
+ font-weight: @close-font-weight;
10
+ line-height: 1;
11
+ color: @close-color;
12
+ text-shadow: @close-text-shadow;
13
+ .opacity(.2);
14
+
15
+ &:hover,
16
+ &:focus {
17
+ color: @close-color;
18
+ text-decoration: none;
19
+ cursor: pointer;
20
+ .opacity(.5);
21
+ }
22
+
23
+ // Additional properties for button version
24
+ // iOS requires the button element instead of an anchor tag.
25
+ // If you want the anchor version, it requires `href="#"`.
26
+ button& {
27
+ padding: 0;
28
+ cursor: pointer;
29
+ background: transparent;
30
+ border: 0;
31
+ -webkit-appearance: none;
32
+ }
33
+ }
@@ -0,0 +1,53 @@
1
+ //
2
+ // Code (inline and blocK)
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Inline and block code styles
7
+ code,
8
+ kbd,
9
+ pre,
10
+ samp {
11
+ font-family: @font-family-monospace;
12
+ }
13
+
14
+ // Inline code
15
+ code {
16
+ padding: 2px 4px;
17
+ font-size: 90%;
18
+ color: @code-color;
19
+ background-color: @code-bg;
20
+ white-space: nowrap;
21
+ border-radius: @border-radius-base;
22
+ }
23
+
24
+ // Blocks of code
25
+ pre {
26
+ display: block;
27
+ padding: ((@line-height-computed - 1) / 2);
28
+ margin: 0 0 (@line-height-computed / 2);
29
+ font-size: (@font-size-base - 1); // 14px to 13px
30
+ line-height: @line-height-base;
31
+ word-break: break-all;
32
+ word-wrap: break-word;
33
+ color: @pre-color;
34
+ background-color: @pre-bg;
35
+ border: 1px solid @pre-border-color;
36
+ border-radius: @border-radius-base;
37
+
38
+ // Account for some code outputs that place code tags in pre tags
39
+ code {
40
+ padding: 0;
41
+ font-size: inherit;
42
+ color: inherit;
43
+ white-space: pre-wrap;
44
+ background-color: transparent;
45
+ border-radius: 0;
46
+ }
47
+ }
48
+
49
+ // Enable scrollable blocks of code
50
+ .pre-scrollable {
51
+ max-height: @pre-scrollable-max-height;
52
+ overflow-y: scroll;
53
+ }
@@ -0,0 +1,29 @@
1
+ //
2
+ // Component animations
3
+ // --------------------------------------------------
4
+
5
+ // Heads up!
6
+ //
7
+ // We don't use the `.opacity()` mixin here since it causes a bug with text
8
+ // fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552.
9
+
10
+ .fade {
11
+ opacity: 0;
12
+ .transition(opacity .15s linear);
13
+ &.in {
14
+ opacity: 1;
15
+ }
16
+ }
17
+
18
+ .collapse {
19
+ display: none;
20
+ &.in {
21
+ display: block;
22
+ }
23
+ }
24
+ .collapsing {
25
+ position: relative;
26
+ height: 0;
27
+ overflow: hidden;
28
+ .transition(height .35s ease);
29
+ }
@@ -0,0 +1,192 @@
1
+ //
2
+ // Dropdown menus
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Dropdown arrow/caret
7
+ .caret {
8
+ display: inline-block;
9
+ width: 0;
10
+ height: 0;
11
+ margin-left: 2px;
12
+ vertical-align: middle;
13
+ border-top: @caret-width-base solid @dropdown-caret-color;
14
+ border-right: @caret-width-base solid transparent;
15
+ border-left: @caret-width-base solid transparent;
16
+ // Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once fixed,
17
+ // we can just straight up remove this.
18
+ border-bottom: 0 dotted;
19
+ }
20
+
21
+ // The dropdown wrapper (div)
22
+ .dropdown {
23
+ position: relative;
24
+ }
25
+
26
+ // Prevent the focus on the dropdown toggle when closing dropdowns
27
+ .dropdown-toggle:focus {
28
+ outline: 0;
29
+ }
30
+
31
+ // The dropdown menu (ul)
32
+ .dropdown-menu {
33
+ position: absolute;
34
+ top: 100%;
35
+ left: 0;
36
+ z-index: @zindex-dropdown;
37
+ display: none; // none by default, but block on "open" of the menu
38
+ float: left;
39
+ min-width: 160px;
40
+ padding: 5px 0;
41
+ margin: 2px 0 0; // override default ul
42
+ list-style: none;
43
+ font-size: @font-size-base;
44
+ background-color: @dropdown-bg;
45
+ border: 1px solid @dropdown-fallback-border; // IE8 fallback
46
+ border: 1px solid @dropdown-border;
47
+ border-radius: @border-radius-base;
48
+ .box-shadow(0 6px 12px rgba(0,0,0,.175));
49
+ background-clip: padding-box;
50
+
51
+ // Aligns the dropdown menu to right
52
+ &.pull-right {
53
+ right: 0;
54
+ left: auto;
55
+ }
56
+
57
+ // Dividers (basically an hr) within the dropdown
58
+ .divider {
59
+ .nav-divider(@dropdown-divider-bg);
60
+ }
61
+
62
+ // Links within the dropdown menu
63
+ > li > a {
64
+ display: block;
65
+ padding: 3px 20px;
66
+ clear: both;
67
+ font-weight: normal;
68
+ line-height: @line-height-base;
69
+ color: @dropdown-link-color;
70
+ white-space: nowrap; // prevent links from randomly breaking onto new lines
71
+ }
72
+ }
73
+
74
+ // Hover/Focus state
75
+ .dropdown-menu > li > a {
76
+ &:hover,
77
+ &:focus {
78
+ text-decoration: none;
79
+ color: @dropdown-link-hover-color;
80
+ background-color: @dropdown-link-hover-bg;
81
+ }
82
+ }
83
+
84
+ // Active state
85
+ .dropdown-menu > .active > a {
86
+ &,
87
+ &:hover,
88
+ &:focus {
89
+ color: @dropdown-link-active-color;
90
+ text-decoration: none;
91
+ outline: 0;
92
+ background-color: @dropdown-link-active-bg;
93
+ }
94
+ }
95
+
96
+ // Disabled state
97
+ //
98
+ // Gray out text and ensure the hover/focus state remains gray
99
+
100
+ .dropdown-menu > .disabled > a {
101
+ &,
102
+ &:hover,
103
+ &:focus {
104
+ color: @dropdown-link-disabled-color;
105
+ }
106
+ }
107
+ // Nuke hover/focus effects
108
+ .dropdown-menu > .disabled > a {
109
+ &:hover,
110
+ &:focus {
111
+ text-decoration: none;
112
+ background-color: transparent;
113
+ background-image: none; // Remove CSS gradient
114
+ .reset-filter();
115
+ cursor: not-allowed;
116
+ }
117
+ }
118
+
119
+ // Open state for the dropdown
120
+ .open {
121
+ // Show the menu
122
+ > .dropdown-menu {
123
+ display: block;
124
+ }
125
+
126
+ // Remove the outline when :focus is triggered
127
+ > a {
128
+ outline: 0;
129
+ }
130
+ }
131
+
132
+ // Dropdown section headers
133
+ .dropdown-header {
134
+ display: block;
135
+ padding: 3px 20px;
136
+ font-size: @font-size-small;
137
+ line-height: @line-height-base;
138
+ color: @dropdown-header-color;
139
+ }
140
+
141
+ // Backdrop to catch body clicks on mobile, etc.
142
+ .dropdown-backdrop {
143
+ position: fixed;
144
+ left: 0;
145
+ right: 0;
146
+ bottom: 0;
147
+ top: 0;
148
+ z-index: @zindex-dropdown - 10;
149
+ }
150
+
151
+ // Right aligned dropdowns
152
+ .pull-right > .dropdown-menu {
153
+ right: 0;
154
+ left: auto;
155
+ }
156
+
157
+ // Allow for dropdowns to go bottom up (aka, dropup-menu)
158
+ //
159
+ // Just add .dropup after the standard .dropdown class and you're set, bro.
160
+ // TODO: abstract this so that the navbar fixed styles are not placed here?
161
+
162
+ .dropup,
163
+ .navbar-fixed-bottom .dropdown {
164
+ // Reverse the caret
165
+ .caret {
166
+ // Firefox fix for https://github.com/twbs/bootstrap/issues/9538. Once this
167
+ // gets fixed, restore `border-top: 0;`.
168
+ border-top: 0 dotted;
169
+ border-bottom: 4px solid @dropdown-caret-color;
170
+ content: "";
171
+ }
172
+ // Different positioning for bottom up menu
173
+ .dropdown-menu {
174
+ top: auto;
175
+ bottom: 100%;
176
+ margin-bottom: 1px;
177
+ }
178
+ }
179
+
180
+
181
+ // Component alignment
182
+ //
183
+ // Reiterate per navbar.less and the modified component alignment there.
184
+
185
+ @media (min-width: @grid-float-breakpoint) {
186
+ .navbar-right {
187
+ .dropdown-menu {
188
+ .pull-right > .dropdown-menu();
189
+ }
190
+ }
191
+ }
192
+