dynflow 0.7.6 → 0.7.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. data/README.md +11 -3
  2. data/doc/pages/.gitignore +7 -0
  3. data/doc/pages/Gemfile +8 -0
  4. data/doc/pages/Rakefile +26 -0
  5. data/doc/pages/_config.yml +38 -0
  6. data/doc/pages/plugins/alert_block.rb +27 -0
  7. data/doc/pages/plugins/div_tag.rb +24 -0
  8. data/doc/pages/plugins/graphviz.rb +121 -0
  9. data/doc/pages/plugins/plantuml.rb +85 -0
  10. data/doc/pages/plugins/play.rb +13 -0
  11. data/doc/pages/plugins/tags.rb +138 -0
  12. data/doc/pages/plugins/toc.rb +20 -0
  13. data/doc/pages/source/.nojekyll +0 -0
  14. data/doc/pages/source/404.md +6 -0
  15. data/doc/pages/source/_includes/disqus.html +25 -0
  16. data/doc/pages/source/_includes/google_analytics.html +12 -0
  17. data/doc/pages/source/_includes/google_plus_one.html +2 -0
  18. data/doc/pages/source/_includes/menu.html +19 -0
  19. data/doc/pages/source/_includes/menu_brand.html +2 -0
  20. data/doc/pages/source/_includes/menu_right.html +1 -0
  21. data/doc/pages/source/_includes/post_item.html +10 -0
  22. data/doc/pages/source/_includes/scroll_to.html +24 -0
  23. data/doc/pages/source/_includes/twitter_sharing.html +9 -0
  24. data/doc/pages/source/_layouts/default.html +70 -0
  25. data/doc/pages/source/_layouts/page.html +47 -0
  26. data/doc/pages/source/_layouts/post.html +19 -0
  27. data/doc/pages/source/_layouts/presentation.html +39 -0
  28. data/doc/pages/source/_layouts/tag_page.html +12 -0
  29. data/doc/pages/source/_sass/_bootstrap-compass.scss +9 -0
  30. data/doc/pages/source/_sass/_bootstrap-mincer.scss +19 -0
  31. data/doc/pages/source/_sass/_bootstrap-sprockets.scss +9 -0
  32. data/doc/pages/source/_sass/_bootstrap-variables.sass +865 -0
  33. data/doc/pages/source/_sass/_bootstrap.scss +50 -0
  34. data/doc/pages/source/_sass/_specific.scss +16 -0
  35. data/doc/pages/source/_sass/_style.scss +172 -0
  36. data/doc/pages/source/_sass/bootstrap/_alerts.scss +73 -0
  37. data/doc/pages/source/_sass/bootstrap/_badges.scss +67 -0
  38. data/doc/pages/source/_sass/bootstrap/_breadcrumbs.scss +26 -0
  39. data/doc/pages/source/_sass/bootstrap/_button-groups.scss +243 -0
  40. data/doc/pages/source/_sass/bootstrap/_buttons.scss +160 -0
  41. data/doc/pages/source/_sass/bootstrap/_carousel.scss +269 -0
  42. data/doc/pages/source/_sass/bootstrap/_close.scss +36 -0
  43. data/doc/pages/source/_sass/bootstrap/_code.scss +69 -0
  44. data/doc/pages/source/_sass/bootstrap/_component-animations.scss +38 -0
  45. data/doc/pages/source/_sass/bootstrap/_dropdowns.scss +214 -0
  46. data/doc/pages/source/_sass/bootstrap/_forms.scss +570 -0
  47. data/doc/pages/source/_sass/bootstrap/_glyphicons.scss +301 -0
  48. data/doc/pages/source/_sass/bootstrap/_grid.scss +84 -0
  49. data/doc/pages/source/_sass/bootstrap/_input-groups.scss +166 -0
  50. data/doc/pages/source/_sass/bootstrap/_jumbotron.scss +50 -0
  51. data/doc/pages/source/_sass/bootstrap/_labels.scss +66 -0
  52. data/doc/pages/source/_sass/bootstrap/_list-group.scss +124 -0
  53. data/doc/pages/source/_sass/bootstrap/_media.scss +61 -0
  54. data/doc/pages/source/_sass/bootstrap/_mixins.scss +39 -0
  55. data/doc/pages/source/_sass/bootstrap/_modals.scss +148 -0
  56. data/doc/pages/source/_sass/bootstrap/_navbar.scss +663 -0
  57. data/doc/pages/source/_sass/bootstrap/_navs.scss +244 -0
  58. data/doc/pages/source/_sass/bootstrap/_normalize.scss +427 -0
  59. data/doc/pages/source/_sass/bootstrap/_pager.scss +54 -0
  60. data/doc/pages/source/_sass/bootstrap/_pagination.scss +88 -0
  61. data/doc/pages/source/_sass/bootstrap/_panels.scss +265 -0
  62. data/doc/pages/source/_sass/bootstrap/_popovers.scss +135 -0
  63. data/doc/pages/source/_sass/bootstrap/_print.scss +107 -0
  64. data/doc/pages/source/_sass/bootstrap/_progress-bars.scss +87 -0
  65. data/doc/pages/source/_sass/bootstrap/_responsive-embed.scss +35 -0
  66. data/doc/pages/source/_sass/bootstrap/_responsive-utilities.scss +177 -0
  67. data/doc/pages/source/_sass/bootstrap/_scaffolding.scss +150 -0
  68. data/doc/pages/source/_sass/bootstrap/_tables.scss +234 -0
  69. data/doc/pages/source/_sass/bootstrap/_theme.scss +273 -0
  70. data/doc/pages/source/_sass/bootstrap/_thumbnails.scss +38 -0
  71. data/doc/pages/source/_sass/bootstrap/_tooltip.scss +103 -0
  72. data/doc/pages/source/_sass/bootstrap/_type.scss +298 -0
  73. data/doc/pages/source/_sass/bootstrap/_utilities.scss +56 -0
  74. data/doc/pages/source/_sass/bootstrap/_variables.scss +862 -0
  75. data/doc/pages/source/_sass/bootstrap/_wells.scss +29 -0
  76. data/doc/pages/source/_sass/bootstrap/mixins/_alerts.scss +14 -0
  77. data/doc/pages/source/_sass/bootstrap/mixins/_background-variant.scss +11 -0
  78. data/doc/pages/source/_sass/bootstrap/mixins/_border-radius.scss +18 -0
  79. data/doc/pages/source/_sass/bootstrap/mixins/_buttons.scss +52 -0
  80. data/doc/pages/source/_sass/bootstrap/mixins/_center-block.scss +7 -0
  81. data/doc/pages/source/_sass/bootstrap/mixins/_clearfix.scss +22 -0
  82. data/doc/pages/source/_sass/bootstrap/mixins/_forms.scss +88 -0
  83. data/doc/pages/source/_sass/bootstrap/mixins/_gradients.scss +58 -0
  84. data/doc/pages/source/_sass/bootstrap/mixins/_grid-framework.scss +81 -0
  85. data/doc/pages/source/_sass/bootstrap/mixins/_grid.scss +122 -0
  86. data/doc/pages/source/_sass/bootstrap/mixins/_hide-text.scss +21 -0
  87. data/doc/pages/source/_sass/bootstrap/mixins/_image.scss +33 -0
  88. data/doc/pages/source/_sass/bootstrap/mixins/_labels.scss +12 -0
  89. data/doc/pages/source/_sass/bootstrap/mixins/_list-group.scss +31 -0
  90. data/doc/pages/source/_sass/bootstrap/mixins/_nav-divider.scss +10 -0
  91. data/doc/pages/source/_sass/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  92. data/doc/pages/source/_sass/bootstrap/mixins/_opacity.scss +8 -0
  93. data/doc/pages/source/_sass/bootstrap/mixins/_pagination.scss +23 -0
  94. data/doc/pages/source/_sass/bootstrap/mixins/_panels.scss +24 -0
  95. data/doc/pages/source/_sass/bootstrap/mixins/_progress-bar.scss +10 -0
  96. data/doc/pages/source/_sass/bootstrap/mixins/_reset-filter.scss +8 -0
  97. data/doc/pages/source/_sass/bootstrap/mixins/_resize.scss +6 -0
  98. data/doc/pages/source/_sass/bootstrap/mixins/_responsive-visibility.scss +21 -0
  99. data/doc/pages/source/_sass/bootstrap/mixins/_size.scss +10 -0
  100. data/doc/pages/source/_sass/bootstrap/mixins/_tab-focus.scss +9 -0
  101. data/doc/pages/source/_sass/bootstrap/mixins/_table-row.scss +28 -0
  102. data/doc/pages/source/_sass/bootstrap/mixins/_text-emphasis.scss +11 -0
  103. data/doc/pages/source/_sass/bootstrap/mixins/_text-overflow.scss +8 -0
  104. data/doc/pages/source/_sass/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  105. data/doc/pages/source/atom.xml +32 -0
  106. data/doc/pages/source/bootstrap/config.json +429 -0
  107. data/doc/pages/source/bootstrap/css/bootstrap-theme.css +479 -0
  108. data/doc/pages/source/bootstrap/css/bootstrap-theme.min.css +10 -0
  109. data/doc/pages/source/bootstrap/css/bootstrap.css +6564 -0
  110. data/doc/pages/source/bootstrap/css/bootstrap.min.css +10 -0
  111. data/doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  112. data/doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  113. data/doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  114. data/doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  115. data/doc/pages/source/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  116. data/doc/pages/source/bootstrap/js/bootstrap.js +2309 -0
  117. data/doc/pages/source/bootstrap/js/bootstrap.min.js +12 -0
  118. data/doc/pages/source/css/app.scss +10 -0
  119. data/doc/pages/source/css/syntax.css +60 -0
  120. data/doc/pages/source/documentation/index.md +977 -0
  121. data/doc/pages/source/faq/index.md +16 -0
  122. data/doc/pages/source/images/dynflow-logos.svg +423 -0
  123. data/doc/pages/source/images/logo-long.png +0 -0
  124. data/doc/pages/source/images/logo-long.svg +116 -0
  125. data/doc/pages/source/images/logo-square.png +0 -0
  126. data/doc/pages/source/images/logo-square.svg +75 -0
  127. data/doc/pages/source/images/noise.png +0 -0
  128. data/doc/pages/source/images/screenshot.png +0 -0
  129. data/doc/pages/source/index.md +64 -0
  130. data/doc/pages/source/media/index.md +20 -0
  131. data/doc/pages/source/projects/index.md +32 -0
  132. data/dynflow.gemspec +2 -3
  133. data/examples/sub_plans.rb +37 -0
  134. data/lib/dynflow/action.rb +28 -8
  135. data/lib/dynflow/action/polling.rb +6 -5
  136. data/lib/dynflow/action/with_sub_plans.rb +162 -0
  137. data/lib/dynflow/execution_plan.rb +25 -7
  138. data/lib/dynflow/execution_plan/steps/abstract.rb +5 -2
  139. data/lib/dynflow/execution_plan/steps/plan_step.rb +6 -2
  140. data/lib/dynflow/execution_plan/steps/run_step.rb +4 -0
  141. data/lib/dynflow/persistence.rb +5 -0
  142. data/lib/dynflow/persistence_adapters/sequel.rb +12 -2
  143. data/lib/dynflow/persistence_adapters/sequel_migrations/003_parent_action.rb +9 -0
  144. data/lib/dynflow/version.rb +1 -1
  145. data/lib/dynflow/web_console.rb +21 -7
  146. data/lib/dynflow/world.rb +26 -2
  147. data/test/action_test.rb +107 -0
  148. data/test/persistance_adapters_test.rb +2 -2
  149. data/test/test_helper.rb +1 -1
  150. data/web/views/flow_step.erb +3 -0
  151. metadata +137 -4
@@ -0,0 +1,663 @@
1
+ //
2
+ // Navbars
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Wrapper and base class
7
+ //
8
+ // Provide a static navbar from which we expand to create full-width, fixed, and
9
+ // other navbar variations.
10
+
11
+ .navbar {
12
+ position: relative;
13
+ min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
14
+ margin-bottom: $navbar-margin-bottom;
15
+ border: 1px solid transparent;
16
+
17
+ // Prevent floats from breaking the navbar
18
+ @include clearfix;
19
+
20
+ @media (min-width: $grid-float-breakpoint) {
21
+ border-radius: $navbar-border-radius;
22
+ }
23
+ }
24
+
25
+
26
+ // Navbar heading
27
+ //
28
+ // Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
29
+ // styling of responsive aspects.
30
+
31
+ .navbar-header {
32
+ @include clearfix;
33
+
34
+ @media (min-width: $grid-float-breakpoint) {
35
+ float: left;
36
+ }
37
+ }
38
+
39
+
40
+ // Navbar collapse (body)
41
+ //
42
+ // Group your navbar content into this for easy collapsing and expanding across
43
+ // various device sizes. By default, this content is collapsed when <768px, but
44
+ // will expand past that for a horizontal display.
45
+ //
46
+ // To start (on mobile devices) the navbar links, forms, and buttons are stacked
47
+ // vertically and include a `max-height` to overflow in case you have too much
48
+ // content for the user's viewport.
49
+
50
+ .navbar-collapse {
51
+ overflow-x: visible;
52
+ padding-right: $navbar-padding-horizontal;
53
+ padding-left: $navbar-padding-horizontal;
54
+ border-top: 1px solid transparent;
55
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
56
+ @include clearfix;
57
+ -webkit-overflow-scrolling: touch;
58
+
59
+ &.in {
60
+ overflow-y: auto;
61
+ }
62
+
63
+ @media (min-width: $grid-float-breakpoint) {
64
+ width: auto;
65
+ border-top: 0;
66
+ box-shadow: none;
67
+
68
+ &.collapse {
69
+ display: block !important;
70
+ visibility: visible !important;
71
+ height: auto !important;
72
+ padding-bottom: 0; // Override default setting
73
+ overflow: visible !important;
74
+ }
75
+
76
+ &.in {
77
+ overflow-y: visible;
78
+ }
79
+
80
+ // Undo the collapse side padding for navbars with containers to ensure
81
+ // alignment of right-aligned contents.
82
+ .navbar-fixed-top &,
83
+ .navbar-static-top &,
84
+ .navbar-fixed-bottom & {
85
+ padding-left: 0;
86
+ padding-right: 0;
87
+ }
88
+ }
89
+ }
90
+
91
+ .navbar-fixed-top,
92
+ .navbar-fixed-bottom {
93
+ .navbar-collapse {
94
+ max-height: $navbar-collapse-max-height;
95
+
96
+ @media (max-device-width: $screen-xs-min) and (orientation: landscape) {
97
+ max-height: 200px;
98
+ }
99
+ }
100
+ }
101
+
102
+
103
+ // Both navbar header and collapse
104
+ //
105
+ // When a container is present, change the behavior of the header and collapse.
106
+
107
+ .container,
108
+ .container-fluid {
109
+ > .navbar-header,
110
+ > .navbar-collapse {
111
+ margin-right: -$navbar-padding-horizontal;
112
+ margin-left: -$navbar-padding-horizontal;
113
+
114
+ @media (min-width: $grid-float-breakpoint) {
115
+ margin-right: 0;
116
+ margin-left: 0;
117
+ }
118
+ }
119
+ }
120
+
121
+
122
+ //
123
+ // Navbar alignment options
124
+ //
125
+ // Display the navbar across the entirety of the page or fixed it to the top or
126
+ // bottom of the page.
127
+
128
+ // Static top (unfixed, but 100% wide) navbar
129
+ .navbar-static-top {
130
+ z-index: $zindex-navbar;
131
+ border-width: 0 0 1px;
132
+
133
+ @media (min-width: $grid-float-breakpoint) {
134
+ border-radius: 0;
135
+ }
136
+ }
137
+
138
+ // Fix the top/bottom navbars when screen real estate supports it
139
+ .navbar-fixed-top,
140
+ .navbar-fixed-bottom {
141
+ position: fixed;
142
+ right: 0;
143
+ left: 0;
144
+ z-index: $zindex-navbar-fixed;
145
+
146
+ // Undo the rounded corners
147
+ @media (min-width: $grid-float-breakpoint) {
148
+ border-radius: 0;
149
+ }
150
+ }
151
+ .navbar-fixed-top {
152
+ top: 0;
153
+ border-width: 0 0 1px;
154
+ }
155
+ .navbar-fixed-bottom {
156
+ bottom: 0;
157
+ margin-bottom: 0; // override .navbar defaults
158
+ border-width: 1px 0 0;
159
+ }
160
+
161
+
162
+ // Brand/project name
163
+
164
+ .navbar-brand {
165
+ float: left;
166
+ padding: $navbar-padding-vertical $navbar-padding-horizontal;
167
+ font-size: $font-size-large;
168
+ line-height: $line-height-computed;
169
+ height: $navbar-height;
170
+
171
+ &:hover,
172
+ &:focus {
173
+ text-decoration: none;
174
+ }
175
+
176
+ > img {
177
+ display: block;
178
+ }
179
+
180
+ @media (min-width: $grid-float-breakpoint) {
181
+ .navbar > .container &,
182
+ .navbar > .container-fluid & {
183
+ margin-left: -$navbar-padding-horizontal;
184
+ }
185
+ }
186
+ }
187
+
188
+
189
+ // Navbar toggle
190
+ //
191
+ // Custom button for toggling the `.navbar-collapse`, powered by the collapse
192
+ // JavaScript plugin.
193
+
194
+ .navbar-toggle {
195
+ position: relative;
196
+ float: right;
197
+ margin-right: $navbar-padding-horizontal;
198
+ padding: 9px 10px;
199
+ @include navbar-vertical-align(34px);
200
+ background-color: transparent;
201
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
202
+ border: 1px solid transparent;
203
+ border-radius: $border-radius-base;
204
+
205
+ // We remove the `outline` here, but later compensate by attaching `:hover`
206
+ // styles to `:focus`.
207
+ &:focus {
208
+ outline: 0;
209
+ }
210
+
211
+ // Bars
212
+ .icon-bar {
213
+ display: block;
214
+ width: 22px;
215
+ height: 2px;
216
+ border-radius: 1px;
217
+ }
218
+ .icon-bar + .icon-bar {
219
+ margin-top: 4px;
220
+ }
221
+
222
+ @media (min-width: $grid-float-breakpoint) {
223
+ display: none;
224
+ }
225
+ }
226
+
227
+
228
+ // Navbar nav links
229
+ //
230
+ // Builds on top of the `.nav` components with its own modifier class to make
231
+ // the nav the full height of the horizontal nav (above 768px).
232
+
233
+ .navbar-nav {
234
+ margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal);
235
+
236
+ > li > a {
237
+ padding-top: 10px;
238
+ padding-bottom: 10px;
239
+ line-height: $line-height-computed;
240
+ }
241
+
242
+ @media (max-width: $grid-float-breakpoint-max) {
243
+ // Dropdowns get custom display when collapsed
244
+ .open .dropdown-menu {
245
+ position: static;
246
+ float: none;
247
+ width: auto;
248
+ margin-top: 0;
249
+ background-color: transparent;
250
+ border: 0;
251
+ box-shadow: none;
252
+ > li > a,
253
+ .dropdown-header {
254
+ padding: 5px 15px 5px 25px;
255
+ }
256
+ > li > a {
257
+ line-height: $line-height-computed;
258
+ &:hover,
259
+ &:focus {
260
+ background-image: none;
261
+ }
262
+ }
263
+ }
264
+ }
265
+
266
+ // Uncollapse the nav
267
+ @media (min-width: $grid-float-breakpoint) {
268
+ float: left;
269
+ margin: 0;
270
+
271
+ > li {
272
+ float: left;
273
+ > a {
274
+ padding-top: $navbar-padding-vertical;
275
+ padding-bottom: $navbar-padding-vertical;
276
+ }
277
+ }
278
+ }
279
+ }
280
+
281
+
282
+ // Navbar form
283
+ //
284
+ // Extension of the `.form-inline` with some extra flavor for optimum display in
285
+ // our navbars.
286
+
287
+ .navbar-form {
288
+ margin-left: -$navbar-padding-horizontal;
289
+ margin-right: -$navbar-padding-horizontal;
290
+ padding: 10px $navbar-padding-horizontal;
291
+ border-top: 1px solid transparent;
292
+ border-bottom: 1px solid transparent;
293
+ $shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
294
+ @include box-shadow($shadow);
295
+
296
+ // Mixin behavior for optimum display
297
+ @include form-inline;
298
+
299
+ .form-group {
300
+ @media (max-width: $grid-float-breakpoint-max) {
301
+ margin-bottom: 5px;
302
+
303
+ &:last-child {
304
+ margin-bottom: 0;
305
+ }
306
+ }
307
+ }
308
+
309
+ // Vertically center in expanded, horizontal navbar
310
+ @include navbar-vertical-align($input-height-base);
311
+
312
+ // Undo 100% width for pull classes
313
+ @media (min-width: $grid-float-breakpoint) {
314
+ width: auto;
315
+ border: 0;
316
+ margin-left: 0;
317
+ margin-right: 0;
318
+ padding-top: 0;
319
+ padding-bottom: 0;
320
+ @include box-shadow(none);
321
+ }
322
+ }
323
+
324
+
325
+ // Dropdown menus
326
+
327
+ // Menu position and menu carets
328
+ .navbar-nav > li > .dropdown-menu {
329
+ margin-top: 0;
330
+ @include border-top-radius(0);
331
+ }
332
+ // Menu position and menu caret support for dropups via extra dropup class
333
+ .navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
334
+ margin-bottom: 0;
335
+ @include border-top-radius($navbar-border-radius);
336
+ @include border-bottom-radius(0);
337
+ }
338
+
339
+
340
+ // Buttons in navbars
341
+ //
342
+ // Vertically center a button within a navbar (when *not* in a form).
343
+
344
+ .navbar-btn {
345
+ @include navbar-vertical-align($input-height-base);
346
+
347
+ &.btn-sm {
348
+ @include navbar-vertical-align($input-height-small);
349
+ }
350
+ &.btn-xs {
351
+ @include navbar-vertical-align(22);
352
+ }
353
+ }
354
+
355
+
356
+ // Text in navbars
357
+ //
358
+ // Add a class to make any element properly align itself vertically within the navbars.
359
+
360
+ .navbar-text {
361
+ @include navbar-vertical-align($line-height-computed);
362
+
363
+ @media (min-width: $grid-float-breakpoint) {
364
+ float: left;
365
+ margin-left: $navbar-padding-horizontal;
366
+ margin-right: $navbar-padding-horizontal;
367
+ }
368
+ }
369
+
370
+
371
+ // Component alignment
372
+ //
373
+ // Repurpose the pull utilities as their own navbar utilities to avoid specificity
374
+ // issues with parents and chaining. Only do this when the navbar is uncollapsed
375
+ // though so that navbar contents properly stack and align in mobile.
376
+ //
377
+ // Declared after the navbar components to ensure more specificity on the margins.
378
+
379
+ @media (min-width: $grid-float-breakpoint) {
380
+ .navbar-left {
381
+ float: left !important;
382
+ }
383
+ .navbar-right {
384
+ float: right !important;
385
+ margin-right: -$navbar-padding-horizontal;
386
+
387
+ ~ .navbar-right {
388
+ margin-right: 0;
389
+ }
390
+ }
391
+ }
392
+
393
+
394
+ // Alternate navbars
395
+ // --------------------------------------------------
396
+
397
+ // Default navbar
398
+ .navbar-default {
399
+ background-color: $navbar-default-bg;
400
+ border-color: $navbar-default-border;
401
+
402
+ .navbar-brand {
403
+ color: $navbar-default-brand-color;
404
+ &:hover,
405
+ &:focus {
406
+ color: $navbar-default-brand-hover-color;
407
+ background-color: $navbar-default-brand-hover-bg;
408
+ }
409
+ }
410
+
411
+ .navbar-text {
412
+ color: $navbar-default-color;
413
+ }
414
+
415
+ .navbar-nav {
416
+ > li > a {
417
+ color: $navbar-default-link-color;
418
+
419
+ &:hover,
420
+ &:focus {
421
+ color: $navbar-default-link-hover-color;
422
+ background-color: $navbar-default-link-hover-bg;
423
+ }
424
+ }
425
+ > .active > a {
426
+ &,
427
+ &:hover,
428
+ &:focus {
429
+ color: $navbar-default-link-active-color;
430
+ background-color: $navbar-default-link-active-bg;
431
+ }
432
+ }
433
+ > .disabled > a {
434
+ &,
435
+ &:hover,
436
+ &:focus {
437
+ color: $navbar-default-link-disabled-color;
438
+ background-color: $navbar-default-link-disabled-bg;
439
+ }
440
+ }
441
+ }
442
+
443
+ .navbar-toggle {
444
+ border-color: $navbar-default-toggle-border-color;
445
+ &:hover,
446
+ &:focus {
447
+ background-color: $navbar-default-toggle-hover-bg;
448
+ }
449
+ .icon-bar {
450
+ background-color: $navbar-default-toggle-icon-bar-bg;
451
+ }
452
+ }
453
+
454
+ .navbar-collapse,
455
+ .navbar-form {
456
+ border-color: $navbar-default-border;
457
+ }
458
+
459
+ // Dropdown menu items
460
+ .navbar-nav {
461
+ // Remove background color from open dropdown
462
+ > .open > a {
463
+ &,
464
+ &:hover,
465
+ &:focus {
466
+ background-color: $navbar-default-link-active-bg;
467
+ color: $navbar-default-link-active-color;
468
+ }
469
+ }
470
+
471
+ @media (max-width: $grid-float-breakpoint-max) {
472
+ // Dropdowns get custom display when collapsed
473
+ .open .dropdown-menu {
474
+ > li > a {
475
+ color: $navbar-default-link-color;
476
+ &:hover,
477
+ &:focus {
478
+ color: $navbar-default-link-hover-color;
479
+ background-color: $navbar-default-link-hover-bg;
480
+ }
481
+ }
482
+ > .active > a {
483
+ &,
484
+ &:hover,
485
+ &:focus {
486
+ color: $navbar-default-link-active-color;
487
+ background-color: $navbar-default-link-active-bg;
488
+ }
489
+ }
490
+ > .disabled > a {
491
+ &,
492
+ &:hover,
493
+ &:focus {
494
+ color: $navbar-default-link-disabled-color;
495
+ background-color: $navbar-default-link-disabled-bg;
496
+ }
497
+ }
498
+ }
499
+ }
500
+ }
501
+
502
+
503
+ // Links in navbars
504
+ //
505
+ // Add a class to ensure links outside the navbar nav are colored correctly.
506
+
507
+ .navbar-link {
508
+ color: $navbar-default-link-color;
509
+ &:hover {
510
+ color: $navbar-default-link-hover-color;
511
+ }
512
+ }
513
+
514
+ .btn-link {
515
+ color: $navbar-default-link-color;
516
+ &:hover,
517
+ &:focus {
518
+ color: $navbar-default-link-hover-color;
519
+ }
520
+ &[disabled],
521
+ fieldset[disabled] & {
522
+ &:hover,
523
+ &:focus {
524
+ color: $navbar-default-link-disabled-color;
525
+ }
526
+ }
527
+ }
528
+ }
529
+
530
+ // Inverse navbar
531
+
532
+ .navbar-inverse {
533
+ background-color: $navbar-inverse-bg;
534
+ border-color: $navbar-inverse-border;
535
+
536
+ .navbar-brand {
537
+ color: $navbar-inverse-brand-color;
538
+ &:hover,
539
+ &:focus {
540
+ color: $navbar-inverse-brand-hover-color;
541
+ background-color: $navbar-inverse-brand-hover-bg;
542
+ }
543
+ }
544
+
545
+ .navbar-text {
546
+ color: $navbar-inverse-color;
547
+ }
548
+
549
+ .navbar-nav {
550
+ > li > a {
551
+ color: $navbar-inverse-link-color;
552
+
553
+ &:hover,
554
+ &:focus {
555
+ color: $navbar-inverse-link-hover-color;
556
+ background-color: $navbar-inverse-link-hover-bg;
557
+ }
558
+ }
559
+ > .active > a {
560
+ &,
561
+ &:hover,
562
+ &:focus {
563
+ color: $navbar-inverse-link-active-color;
564
+ background-color: $navbar-inverse-link-active-bg;
565
+ }
566
+ }
567
+ > .disabled > a {
568
+ &,
569
+ &:hover,
570
+ &:focus {
571
+ color: $navbar-inverse-link-disabled-color;
572
+ background-color: $navbar-inverse-link-disabled-bg;
573
+ }
574
+ }
575
+ }
576
+
577
+ // Darken the responsive nav toggle
578
+ .navbar-toggle {
579
+ border-color: $navbar-inverse-toggle-border-color;
580
+ &:hover,
581
+ &:focus {
582
+ background-color: $navbar-inverse-toggle-hover-bg;
583
+ }
584
+ .icon-bar {
585
+ background-color: $navbar-inverse-toggle-icon-bar-bg;
586
+ }
587
+ }
588
+
589
+ .navbar-collapse,
590
+ .navbar-form {
591
+ border-color: darken($navbar-inverse-bg, 7%);
592
+ }
593
+
594
+ // Dropdowns
595
+ .navbar-nav {
596
+ > .open > a {
597
+ &,
598
+ &:hover,
599
+ &:focus {
600
+ background-color: $navbar-inverse-link-active-bg;
601
+ color: $navbar-inverse-link-active-color;
602
+ }
603
+ }
604
+
605
+ @media (max-width: $grid-float-breakpoint-max) {
606
+ // Dropdowns get custom display
607
+ .open .dropdown-menu {
608
+ > .dropdown-header {
609
+ border-color: $navbar-inverse-border;
610
+ }
611
+ .divider {
612
+ background-color: $navbar-inverse-border;
613
+ }
614
+ > li > a {
615
+ color: $navbar-inverse-link-color;
616
+ &:hover,
617
+ &:focus {
618
+ color: $navbar-inverse-link-hover-color;
619
+ background-color: $navbar-inverse-link-hover-bg;
620
+ }
621
+ }
622
+ > .active > a {
623
+ &,
624
+ &:hover,
625
+ &:focus {
626
+ color: $navbar-inverse-link-active-color;
627
+ background-color: $navbar-inverse-link-active-bg;
628
+ }
629
+ }
630
+ > .disabled > a {
631
+ &,
632
+ &:hover,
633
+ &:focus {
634
+ color: $navbar-inverse-link-disabled-color;
635
+ background-color: $navbar-inverse-link-disabled-bg;
636
+ }
637
+ }
638
+ }
639
+ }
640
+ }
641
+
642
+ .navbar-link {
643
+ color: $navbar-inverse-link-color;
644
+ &:hover {
645
+ color: $navbar-inverse-link-hover-color;
646
+ }
647
+ }
648
+
649
+ .btn-link {
650
+ color: $navbar-inverse-link-color;
651
+ &:hover,
652
+ &:focus {
653
+ color: $navbar-inverse-link-hover-color;
654
+ }
655
+ &[disabled],
656
+ fieldset[disabled] & {
657
+ &:hover,
658
+ &:focus {
659
+ color: $navbar-inverse-link-disabled-color;
660
+ }
661
+ }
662
+ }
663
+ }