twigg-app 0.0.1
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.
- checksums.yaml +7 -0
- data/data/quips.yml +45 -0
- data/lib/twigg-app/app/quips.rb +13 -0
- data/lib/twigg-app/app/routes.rb +43 -0
- data/lib/twigg-app/app/server.rb +146 -0
- data/lib/twigg-app/app/version.rb +5 -0
- data/lib/twigg-app/app.rb +14 -0
- data/lib/twigg-app.rb +5 -0
- data/public/application.js +106 -0
- data/public/favicon.ico +0 -0
- data/public/favicon.png +0 -0
- data/public/vendor/bootstrap/CNAME +1 -0
- data/public/vendor/bootstrap/CONTRIBUTING.md +66 -0
- data/public/vendor/bootstrap/Gruntfile.js +195 -0
- data/public/vendor/bootstrap/LICENSE +176 -0
- data/public/vendor/bootstrap/README.md +139 -0
- data/public/vendor/bootstrap/_config.yml +28 -0
- data/public/vendor/bootstrap/_includes/ads.html +1 -0
- data/public/vendor/bootstrap/_includes/footer.html +33 -0
- data/public/vendor/bootstrap/_includes/header.html +43 -0
- data/public/vendor/bootstrap/_includes/nav-components.html +135 -0
- data/public/vendor/bootstrap/_includes/nav-css.html +77 -0
- data/public/vendor/bootstrap/_includes/nav-customize.html +40 -0
- data/public/vendor/bootstrap/_includes/nav-getting-started.html +28 -0
- data/public/vendor/bootstrap/_includes/nav-javascript.html +88 -0
- data/public/vendor/bootstrap/_includes/nav-main.html +32 -0
- data/public/vendor/bootstrap/_includes/old-bs-docs.html +8 -0
- data/public/vendor/bootstrap/_includes/social-buttons.html +16 -0
- data/public/vendor/bootstrap/_layouts/customize.html +52 -0
- data/public/vendor/bootstrap/_layouts/default.html +72 -0
- data/public/vendor/bootstrap/_layouts/home.html +43 -0
- data/public/vendor/bootstrap/assets/css/docs.css +896 -0
- data/public/vendor/bootstrap/assets/css/pygments-manni.css +66 -0
- data/public/vendor/bootstrap/assets/ico/apple-touch-icon-114-precomposed.png +0 -0
- data/public/vendor/bootstrap/assets/ico/apple-touch-icon-144-precomposed.png +0 -0
- data/public/vendor/bootstrap/assets/ico/apple-touch-icon-57-precomposed.png +0 -0
- data/public/vendor/bootstrap/assets/ico/apple-touch-icon-72-precomposed.png +0 -0
- data/public/vendor/bootstrap/assets/ico/favicon.png +0 -0
- data/public/vendor/bootstrap/assets/js/application.js +82 -0
- data/public/vendor/bootstrap/assets/js/customizer.js +175 -0
- data/public/vendor/bootstrap/assets/js/holder.js +419 -0
- data/public/vendor/bootstrap/assets/js/html5shiv.js +8 -0
- data/public/vendor/bootstrap/assets/js/jquery.bbq.min.js +1287 -0
- data/public/vendor/bootstrap/assets/js/jquery.js +5 -0
- data/public/vendor/bootstrap/assets/js/jszip.js +1425 -0
- data/public/vendor/bootstrap/assets/js/less.js +9 -0
- data/public/vendor/bootstrap/assets/js/respond.min.js +6 -0
- data/public/vendor/bootstrap/assets/js/uglify.js +14 -0
- data/public/vendor/bootstrap/bower.json +11 -0
- data/public/vendor/bootstrap/browserstack.json +37 -0
- data/public/vendor/bootstrap/components.html +2555 -0
- data/public/vendor/bootstrap/composer.json +20 -0
- data/public/vendor/bootstrap/css.html +2276 -0
- data/public/vendor/bootstrap/customize.html +1480 -0
- data/public/vendor/bootstrap/dist/css/bootstrap.css +5579 -0
- data/public/vendor/bootstrap/dist/css/bootstrap.min.css +9 -0
- data/public/vendor/bootstrap/dist/js/bootstrap.js +1993 -0
- data/public/vendor/bootstrap/dist/js/bootstrap.min.js +6 -0
- data/public/vendor/bootstrap/getting-started.html +375 -0
- data/public/vendor/bootstrap/index.html +16 -0
- data/public/vendor/bootstrap/javascript.html +1904 -0
- data/public/vendor/bootstrap/js/affix.js +126 -0
- data/public/vendor/bootstrap/js/alert.js +98 -0
- data/public/vendor/bootstrap/js/button.js +109 -0
- data/public/vendor/bootstrap/js/carousel.js +217 -0
- data/public/vendor/bootstrap/js/collapse.js +179 -0
- data/public/vendor/bootstrap/js/dropdown.js +154 -0
- data/public/vendor/bootstrap/js/modal.js +244 -0
- data/public/vendor/bootstrap/js/popover.js +117 -0
- data/public/vendor/bootstrap/js/scrollspy.js +158 -0
- data/public/vendor/bootstrap/js/tab.js +135 -0
- data/public/vendor/bootstrap/js/tests/index.html +52 -0
- data/public/vendor/bootstrap/js/tests/phantom.js +63 -0
- data/public/vendor/bootstrap/js/tests/server.js +14 -0
- data/public/vendor/bootstrap/js/tests/unit/affix.js +25 -0
- data/public/vendor/bootstrap/js/tests/unit/alert.js +62 -0
- data/public/vendor/bootstrap/js/tests/unit/button.js +116 -0
- data/public/vendor/bootstrap/js/tests/unit/carousel.js +87 -0
- data/public/vendor/bootstrap/js/tests/unit/collapse.js +164 -0
- data/public/vendor/bootstrap/js/tests/unit/dropdown.js +219 -0
- data/public/vendor/bootstrap/js/tests/unit/modal.js +177 -0
- data/public/vendor/bootstrap/js/tests/unit/phantom.js +69 -0
- data/public/vendor/bootstrap/js/tests/unit/popover.js +133 -0
- data/public/vendor/bootstrap/js/tests/unit/scrollspy.js +37 -0
- data/public/vendor/bootstrap/js/tests/unit/tab.js +86 -0
- data/public/vendor/bootstrap/js/tests/unit/tooltip.js +437 -0
- data/public/vendor/bootstrap/js/tests/unit/transition.js +13 -0
- data/public/vendor/bootstrap/js/tests/vendor/jquery.js +5 -0
- data/public/vendor/bootstrap/js/tests/vendor/qunit.css +232 -0
- data/public/vendor/bootstrap/js/tests/vendor/qunit.js +1510 -0
- data/public/vendor/bootstrap/js/tooltip.js +382 -0
- data/public/vendor/bootstrap/js/transition.js +56 -0
- data/public/vendor/bootstrap/less/alerts.less +71 -0
- data/public/vendor/bootstrap/less/badges.less +51 -0
- data/public/vendor/bootstrap/less/bootstrap.less +63 -0
- data/public/vendor/bootstrap/less/breadcrumbs.less +23 -0
- data/public/vendor/bootstrap/less/button-groups.less +244 -0
- data/public/vendor/bootstrap/less/buttons.less +159 -0
- data/public/vendor/bootstrap/less/carousel.less +204 -0
- data/public/vendor/bootstrap/less/close.less +33 -0
- data/public/vendor/bootstrap/less/code.less +56 -0
- data/public/vendor/bootstrap/less/component-animations.less +29 -0
- data/public/vendor/bootstrap/less/dropdowns.less +176 -0
- data/public/vendor/bootstrap/less/forms.less +332 -0
- data/public/vendor/bootstrap/less/grid.less +340 -0
- data/public/vendor/bootstrap/less/input-groups.less +127 -0
- data/public/vendor/bootstrap/less/jumbotron.less +29 -0
- data/public/vendor/bootstrap/less/labels.less +54 -0
- data/public/vendor/bootstrap/less/list-group.less +88 -0
- data/public/vendor/bootstrap/less/media.less +56 -0
- data/public/vendor/bootstrap/less/mixins.less +693 -0
- data/public/vendor/bootstrap/less/modals.less +133 -0
- data/public/vendor/bootstrap/less/navbar.less +559 -0
- data/public/vendor/bootstrap/less/navs.less +228 -0
- data/public/vendor/bootstrap/less/normalize.less +396 -0
- data/public/vendor/bootstrap/less/pager.less +55 -0
- data/public/vendor/bootstrap/less/pagination.less +72 -0
- data/public/vendor/bootstrap/less/panels.less +128 -0
- data/public/vendor/bootstrap/less/popovers.less +133 -0
- data/public/vendor/bootstrap/less/print.less +100 -0
- data/public/vendor/bootstrap/less/progress-bars.less +99 -0
- data/public/vendor/bootstrap/less/responsive-utilities.less +149 -0
- data/public/vendor/bootstrap/less/scaffolding.less +111 -0
- data/public/vendor/bootstrap/less/tables.less +211 -0
- data/public/vendor/bootstrap/less/thumbnails.less +42 -0
- data/public/vendor/bootstrap/less/tooltip.less +95 -0
- data/public/vendor/bootstrap/less/type.less +238 -0
- data/public/vendor/bootstrap/less/utilities.less +42 -0
- data/public/vendor/bootstrap/less/variables.less +607 -0
- data/public/vendor/bootstrap/less/wells.less +29 -0
- data/public/vendor/bootstrap/package.json +33 -0
- data/public/vendor/bootstrap-glyphicons/CHANGELOG.md +3 -0
- data/public/vendor/bootstrap-glyphicons/CNAME +1 -0
- data/public/vendor/bootstrap-glyphicons/CONTRIBUTING.md +54 -0
- data/public/vendor/bootstrap-glyphicons/LICENSE +19 -0
- data/public/vendor/bootstrap-glyphicons/README.md +61 -0
- data/public/vendor/bootstrap-glyphicons/_config.yml +12 -0
- data/public/vendor/bootstrap-glyphicons/composer.json +9 -0
- data/public/vendor/bootstrap-glyphicons/css/bootstrap-glyphicons.css +2 -0
- data/public/vendor/bootstrap-glyphicons/css/bootstrap.css +9 -0
- data/public/vendor/bootstrap-glyphicons/css/docs.css +160 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.eot +0 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.otf +0 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.svg +175 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.ttf +0 -0
- data/public/vendor/bootstrap-glyphicons/fonts/glyphiconshalflings-regular.woff +0 -0
- data/public/vendor/bootstrap-glyphicons/index.html +255 -0
- data/public/vendor/bootstrap-glyphicons/less/bootstrap-glyphicons.less +201 -0
- data/public/vendor/bootstrap-glyphicons/package.json +18 -0
- data/public/vendor/d3/LICENSE +26 -0
- data/public/vendor/d3/README.md +7 -0
- data/public/vendor/d3/bower.json +25 -0
- data/public/vendor/d3/d3.js +8810 -0
- data/public/vendor/d3/d3.min.js +5 -0
- data/public/vendor/jquery/README.md +11 -0
- data/public/vendor/jquery/bower.json +11 -0
- data/public/vendor/jquery/component.json +15 -0
- data/public/vendor/jquery/composer.json +35 -0
- data/public/vendor/jquery/jquery-migrate.js +511 -0
- data/public/vendor/jquery/jquery-migrate.min.js +3 -0
- data/public/vendor/jquery/jquery.js +8829 -0
- data/public/vendor/jquery/jquery.min.js +6 -0
- data/public/vendor/jquery/jquery.min.map +1 -0
- data/public/vendor/jquery/package.json +7 -0
- data/public/vendor/replacejs/CHANGELOG.md +3 -0
- data/public/vendor/replacejs/MIT-LICENSE.txt +20 -0
- data/public/vendor/replacejs/README.md +123 -0
- data/public/vendor/replacejs/bower.json +24 -0
- data/public/vendor/replacejs/primer.js +17 -0
- data/public/vendor/replacejs/primer.min.js +1 -0
- data/public/vendor/replacejs/replace.js +182 -0
- data/public/vendor/stupidtable.js +158 -0
- data/views/dashboard.haml +17 -0
- data/views/layout.haml +60 -0
- metadata +330 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Modals
|
|
3
|
+
// --------------------------------------------------
|
|
4
|
+
|
|
5
|
+
// .modal-open - body class for killing the scroll
|
|
6
|
+
// .modal - container to scroll within
|
|
7
|
+
// .modal-dialog - positioning shell for the actual modal
|
|
8
|
+
// .modal-content - actual modal w/ bg and corners and shit
|
|
9
|
+
|
|
10
|
+
// Kill the scroll on the body
|
|
11
|
+
.modal-open {
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Container that the modal scrolls within
|
|
16
|
+
.modal {
|
|
17
|
+
display: none;
|
|
18
|
+
overflow: auto;
|
|
19
|
+
overflow-y: scroll;
|
|
20
|
+
position: fixed;
|
|
21
|
+
top: 0;
|
|
22
|
+
right: 0;
|
|
23
|
+
bottom: 0;
|
|
24
|
+
left: 0;
|
|
25
|
+
z-index: @zindex-modal-background;
|
|
26
|
+
|
|
27
|
+
// When fading in the modal, animate it to slide down
|
|
28
|
+
&.fade .modal-dialog {
|
|
29
|
+
.translate(0, -25%);
|
|
30
|
+
.transition-transform(~"0.3s ease-out");
|
|
31
|
+
}
|
|
32
|
+
&.in .modal-dialog { .translate(0, 0)}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Shell div to position the modal with bottom padding
|
|
36
|
+
.modal-dialog {
|
|
37
|
+
margin-left: auto;
|
|
38
|
+
margin-right: auto;
|
|
39
|
+
width: auto;
|
|
40
|
+
padding: 10px;
|
|
41
|
+
z-index: (@zindex-modal-background + 10);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Actual modal
|
|
45
|
+
.modal-content {
|
|
46
|
+
position: relative;
|
|
47
|
+
background-color: @modal-content-bg;
|
|
48
|
+
border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
|
|
49
|
+
border: 1px solid @modal-content-border-color;
|
|
50
|
+
border-radius: @border-radius-large;
|
|
51
|
+
.box-shadow(0 3px 9px rgba(0,0,0,.5));
|
|
52
|
+
background-clip: padding-box;
|
|
53
|
+
// Remove focus outline from opened modal
|
|
54
|
+
outline: none;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Modal background
|
|
58
|
+
.modal-backdrop {
|
|
59
|
+
position: fixed;
|
|
60
|
+
top: 0;
|
|
61
|
+
right: 0;
|
|
62
|
+
bottom: 0;
|
|
63
|
+
left: 0;
|
|
64
|
+
z-index: (@zindex-modal-background - 10);
|
|
65
|
+
background-color: @modal-backdrop-bg;
|
|
66
|
+
// Fade for backdrop
|
|
67
|
+
&.fade { .opacity(0); }
|
|
68
|
+
&.in { .opacity(.5); }
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Modal header
|
|
72
|
+
// Top section of the modal w/ title and dismiss
|
|
73
|
+
.modal-header {
|
|
74
|
+
padding: @modal-title-padding;
|
|
75
|
+
border-bottom: 1px solid @modal-header-border-color;
|
|
76
|
+
min-height: (@modal-title-padding + @modal-title-line-height);
|
|
77
|
+
}
|
|
78
|
+
// Close icon
|
|
79
|
+
.modal-header .close {
|
|
80
|
+
margin-top: -2px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Title text within header
|
|
84
|
+
.modal-title {
|
|
85
|
+
margin: 0;
|
|
86
|
+
line-height: @modal-title-line-height;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Modal body
|
|
90
|
+
// Where all modal content resides (sibling of .modal-header and .modal-footer)
|
|
91
|
+
.modal-body {
|
|
92
|
+
position: relative;
|
|
93
|
+
padding: @modal-inner-padding;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Footer (for actions)
|
|
97
|
+
.modal-footer {
|
|
98
|
+
margin-top: 15px;
|
|
99
|
+
padding: (@modal-inner-padding - 1) @modal-inner-padding @modal-inner-padding;
|
|
100
|
+
text-align: right; // right align buttons
|
|
101
|
+
border-top: 1px solid @modal-footer-border-color;
|
|
102
|
+
.clearfix(); // clear it in case folks use .pull-* classes on buttons
|
|
103
|
+
|
|
104
|
+
// Properly space out buttons
|
|
105
|
+
.btn + .btn {
|
|
106
|
+
margin-left: 5px;
|
|
107
|
+
margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
|
|
108
|
+
}
|
|
109
|
+
// but override that for button groups
|
|
110
|
+
.btn-group .btn + .btn {
|
|
111
|
+
margin-left: -1px;
|
|
112
|
+
}
|
|
113
|
+
// and override it for block buttons as well
|
|
114
|
+
.btn-block + .btn-block {
|
|
115
|
+
margin-left: 0;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Scale up the modal
|
|
120
|
+
@media screen and (min-width: @screen-tablet) {
|
|
121
|
+
|
|
122
|
+
.modal-dialog {
|
|
123
|
+
left: 50%;
|
|
124
|
+
right: auto;
|
|
125
|
+
width: 600px;
|
|
126
|
+
padding-top: 30px;
|
|
127
|
+
padding-bottom: 30px;
|
|
128
|
+
}
|
|
129
|
+
.modal-content {
|
|
130
|
+
.box-shadow(0 5px 15px rgba(0,0,0,.5));
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
}
|
|
@@ -0,0 +1,559 @@
|
|
|
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
|
+
background-color: @navbar-bg;
|
|
16
|
+
border: 1px solid @navbar-border;
|
|
17
|
+
|
|
18
|
+
// Prevent floats from breaking the navbar
|
|
19
|
+
.clearfix();
|
|
20
|
+
|
|
21
|
+
@media (min-width: @grid-float-breakpoint) {
|
|
22
|
+
border-radius: @navbar-border-radius;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
// Navbar heading
|
|
28
|
+
//
|
|
29
|
+
// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
|
|
30
|
+
// styling of responsive aspects.
|
|
31
|
+
|
|
32
|
+
.navbar-header {
|
|
33
|
+
padding-left: @navbar-padding-horizontal;
|
|
34
|
+
padding-right: @navbar-padding-horizontal;
|
|
35
|
+
.clearfix();
|
|
36
|
+
|
|
37
|
+
@media (min-width: @grid-float-breakpoint) {
|
|
38
|
+
float: left;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
// Navbar collapse (body)
|
|
44
|
+
//
|
|
45
|
+
// Group your navbar content into this for easy collapsing and expanding across
|
|
46
|
+
// various device sizes. By default, this content is collapsed when <768px, but
|
|
47
|
+
// will expand past that for a horizontal display.
|
|
48
|
+
//
|
|
49
|
+
// To start (on mobile devices) the navbar links, forms, and buttons are stacked
|
|
50
|
+
// vertically and include a `max-height` to overflow in case you have too much
|
|
51
|
+
// content for the user's viewport.
|
|
52
|
+
|
|
53
|
+
.navbar-collapse {
|
|
54
|
+
padding: 5px @navbar-padding-horizontal;
|
|
55
|
+
border-top: 1px solid darken(@navbar-bg, 7%);
|
|
56
|
+
box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
|
|
57
|
+
// Clear floated elements and prevent collapsing of padding
|
|
58
|
+
.clearfix();
|
|
59
|
+
|
|
60
|
+
// This is not automatically added to the `.navbar-fixed-top` because it causes
|
|
61
|
+
// z-index bugs in iOS7 (possibly earlier).
|
|
62
|
+
max-height: 340px;
|
|
63
|
+
overflow-x: visible;
|
|
64
|
+
overflow-y: auto;
|
|
65
|
+
-webkit-overflow-scrolling: touch;
|
|
66
|
+
|
|
67
|
+
@media (min-width: @grid-float-breakpoint) {
|
|
68
|
+
width: auto;
|
|
69
|
+
padding-top: 0;
|
|
70
|
+
padding-bottom: 0;
|
|
71
|
+
border-top: 0;
|
|
72
|
+
box-shadow: none;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
//
|
|
78
|
+
// Navbar alignment options
|
|
79
|
+
//
|
|
80
|
+
// Display the navbar across the entirity of the page or fixed it to the top or
|
|
81
|
+
// bottom of the page.
|
|
82
|
+
|
|
83
|
+
// Static top (unfixed, but 100% wide) navbar
|
|
84
|
+
.navbar-static-top {
|
|
85
|
+
@media (min-width: @grid-float-breakpoint) {
|
|
86
|
+
border-width: 0 0 1px;
|
|
87
|
+
border-radius: 0;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Fix the top/bottom navbars when screen real estate supports it
|
|
92
|
+
.navbar-fixed-top,
|
|
93
|
+
.navbar-fixed-bottom {
|
|
94
|
+
position: fixed;
|
|
95
|
+
right: 0;
|
|
96
|
+
left: 0;
|
|
97
|
+
z-index: @zindex-navbar-fixed;
|
|
98
|
+
border-width: 0 0 1px;
|
|
99
|
+
|
|
100
|
+
// Undo the rounded corners
|
|
101
|
+
@media (min-width: @grid-float-breakpoint) {
|
|
102
|
+
border-radius: 0;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
.navbar-fixed-top {
|
|
106
|
+
top: 0;
|
|
107
|
+
}
|
|
108
|
+
.navbar-fixed-bottom {
|
|
109
|
+
bottom: 0;
|
|
110
|
+
margin-bottom: 0; // override .navbar defaults
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
// Brand/project name
|
|
115
|
+
|
|
116
|
+
.navbar-brand {
|
|
117
|
+
float: left;
|
|
118
|
+
margin-right: (@navbar-padding-horizontal / 2);
|
|
119
|
+
padding-top: @navbar-padding-vertical;
|
|
120
|
+
padding-bottom: @navbar-padding-vertical;
|
|
121
|
+
font-size: @font-size-large;
|
|
122
|
+
line-height: @line-height-computed;
|
|
123
|
+
color: @navbar-brand-color;
|
|
124
|
+
&:hover,
|
|
125
|
+
&:focus {
|
|
126
|
+
color: @navbar-brand-hover-color;
|
|
127
|
+
text-decoration: none;
|
|
128
|
+
background-color: @navbar-brand-hover-bg;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
// Navbar toggle
|
|
134
|
+
//
|
|
135
|
+
// Custom button for toggling the `.navbar-collapse`, powered by the collapse
|
|
136
|
+
// JavaScript plugin.
|
|
137
|
+
|
|
138
|
+
.navbar-toggle {
|
|
139
|
+
position: relative;
|
|
140
|
+
float: right;
|
|
141
|
+
padding: 9px 10px;
|
|
142
|
+
.navbar-vertical-align(34px);
|
|
143
|
+
background-color: transparent;
|
|
144
|
+
border: 1px solid @navbar-toggle-border-color;
|
|
145
|
+
border-radius: @border-radius-base;
|
|
146
|
+
|
|
147
|
+
&:hover,
|
|
148
|
+
&:focus {
|
|
149
|
+
background-color: @navbar-toggle-hover-bg;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// Bars
|
|
153
|
+
.icon-bar {
|
|
154
|
+
display: block;
|
|
155
|
+
width: 22px;
|
|
156
|
+
height: 2px;
|
|
157
|
+
background-color: @navbar-toggle-icon-bar-bg;
|
|
158
|
+
border-radius: 1px;
|
|
159
|
+
}
|
|
160
|
+
.icon-bar + .icon-bar {
|
|
161
|
+
margin-top: 4px;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
// Navbar nav links
|
|
167
|
+
//
|
|
168
|
+
// Builds on top of the `.nav` components with it's own modifier class to make
|
|
169
|
+
// the nav the full height of the horizontal nav (above 768px).
|
|
170
|
+
|
|
171
|
+
.navbar-nav {
|
|
172
|
+
margin-left: -@navbar-padding-horizontal;
|
|
173
|
+
margin-right: -@navbar-padding-horizontal;
|
|
174
|
+
|
|
175
|
+
@media (min-width: @grid-float-breakpoint) {
|
|
176
|
+
margin-left: 0;
|
|
177
|
+
margin-right: 0;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
> li > a {
|
|
181
|
+
padding-top: 10px;
|
|
182
|
+
padding-bottom: 10px;
|
|
183
|
+
color: @navbar-link-color;
|
|
184
|
+
line-height: @line-height-computed;
|
|
185
|
+
&:hover,
|
|
186
|
+
&:focus {
|
|
187
|
+
color: @navbar-link-hover-color;
|
|
188
|
+
background-color: @navbar-link-hover-bg;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
> .active > a {
|
|
192
|
+
&,
|
|
193
|
+
&:hover,
|
|
194
|
+
&:focus {
|
|
195
|
+
color: @navbar-link-active-color;
|
|
196
|
+
background-color: @navbar-link-active-bg;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
> .disabled > a {
|
|
200
|
+
&,
|
|
201
|
+
&:hover,
|
|
202
|
+
&:focus {
|
|
203
|
+
color: @navbar-link-disabled-color;
|
|
204
|
+
background-color: @navbar-link-disabled-bg;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
@media (max-width: @screen-phone-max) {
|
|
209
|
+
// Dropdowns get custom display
|
|
210
|
+
.open .dropdown-menu {
|
|
211
|
+
position: static;
|
|
212
|
+
float: none;
|
|
213
|
+
width: auto;
|
|
214
|
+
margin-top: 0;
|
|
215
|
+
background-color: transparent;
|
|
216
|
+
border: 0;
|
|
217
|
+
box-shadow: none;
|
|
218
|
+
> li > a,
|
|
219
|
+
.dropdown-header {
|
|
220
|
+
padding: 5px 15px 5px 25px;
|
|
221
|
+
}
|
|
222
|
+
> li > a {
|
|
223
|
+
color: @navbar-link-color;
|
|
224
|
+
line-height: @line-height-computed;
|
|
225
|
+
&:hover,
|
|
226
|
+
&:focus {
|
|
227
|
+
color: @navbar-link-hover-color;
|
|
228
|
+
background-color: @navbar-link-hover-bg;
|
|
229
|
+
background-image: none;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
> .active > a {
|
|
233
|
+
&,
|
|
234
|
+
&:hover,
|
|
235
|
+
&:focus {
|
|
236
|
+
color: @navbar-link-active-color;
|
|
237
|
+
background-color: @navbar-link-active-bg;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
> .disabled > a {
|
|
241
|
+
&,
|
|
242
|
+
&:hover,
|
|
243
|
+
&:focus {
|
|
244
|
+
color: @navbar-link-disabled-color;
|
|
245
|
+
background-color: @navbar-link-disabled-bg;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
// Component alignment
|
|
255
|
+
//
|
|
256
|
+
// Repurpose the pull utilities as their own navbar utilities to avoid specifity
|
|
257
|
+
// issues with parents and chaining. Only do this when the navbar is uncollapsed
|
|
258
|
+
// though so that navbar contents properly stack and align in mobile.
|
|
259
|
+
|
|
260
|
+
@media (min-width: @grid-float-breakpoint) {
|
|
261
|
+
.navbar-left { .pull-left(); }
|
|
262
|
+
.navbar-right { .pull-right(); }
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
// Navbar form
|
|
267
|
+
//
|
|
268
|
+
// Extension of the `.form-inline` with some extra flavor for optimum display in
|
|
269
|
+
// our navbars.
|
|
270
|
+
|
|
271
|
+
.navbar-form {
|
|
272
|
+
margin-left: -@navbar-padding-horizontal;
|
|
273
|
+
margin-right: -@navbar-padding-horizontal;
|
|
274
|
+
padding: 10px @navbar-padding-horizontal;
|
|
275
|
+
border-top: 1px solid darken(@navbar-bg, 7%);
|
|
276
|
+
border-bottom: 1px solid darken(@navbar-bg, 7%);
|
|
277
|
+
|
|
278
|
+
// Mixin behavior for optimum display
|
|
279
|
+
.form-inline();
|
|
280
|
+
|
|
281
|
+
.form-group {
|
|
282
|
+
@media (max-width: @screen-phone-max) {
|
|
283
|
+
margin-bottom: 5px;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// Vertically center in expanded, horizontal navbar
|
|
288
|
+
.navbar-vertical-align(@input-height-base);
|
|
289
|
+
|
|
290
|
+
// Undo 100% width for pull classes
|
|
291
|
+
@media (min-width: @grid-float-breakpoint) {
|
|
292
|
+
width: auto;
|
|
293
|
+
border: 0;
|
|
294
|
+
margin-left: 0;
|
|
295
|
+
margin-right: 0;
|
|
296
|
+
padding-top: 0;
|
|
297
|
+
padding-bottom: 0;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
// Dropdown menus
|
|
303
|
+
|
|
304
|
+
// Menu position and menu carets
|
|
305
|
+
.navbar-nav > li > .dropdown-menu {
|
|
306
|
+
margin-top: 0;
|
|
307
|
+
.border-top-radius(0);
|
|
308
|
+
}
|
|
309
|
+
// Menu position and menu caret support for dropups via extra dropup class
|
|
310
|
+
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
|
|
311
|
+
.border-bottom-radius(0);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// Dropdown menu items and carets
|
|
315
|
+
.navbar-nav {
|
|
316
|
+
// Caret should match text color on hover
|
|
317
|
+
> .dropdown > a:hover .caret,
|
|
318
|
+
> .dropdown > a:focus .caret {
|
|
319
|
+
border-top-color: @navbar-link-hover-color;
|
|
320
|
+
border-bottom-color: @navbar-link-hover-color;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// Remove background color from open dropdown
|
|
324
|
+
> .open > a {
|
|
325
|
+
&,
|
|
326
|
+
&:hover,
|
|
327
|
+
&:focus {
|
|
328
|
+
background-color: @navbar-link-active-bg;
|
|
329
|
+
color: @navbar-link-active-color;
|
|
330
|
+
.caret {
|
|
331
|
+
border-top-color: @navbar-link-active-color;
|
|
332
|
+
border-bottom-color: @navbar-link-active-color;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
> .dropdown > a .caret {
|
|
337
|
+
border-top-color: @navbar-link-color;
|
|
338
|
+
border-bottom-color: @navbar-link-color;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// Right aligned menus need alt position
|
|
343
|
+
.navbar-nav.pull-right > li > .dropdown-menu,
|
|
344
|
+
.navbar-nav > li > .dropdown-menu.pull-right {
|
|
345
|
+
left: auto;
|
|
346
|
+
right: 0;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
// Inverse navbar
|
|
352
|
+
// --------------------------------------------------
|
|
353
|
+
|
|
354
|
+
.navbar-inverse {
|
|
355
|
+
background-color: @navbar-inverse-bg;
|
|
356
|
+
border-color: @navbar-inverse-border;
|
|
357
|
+
|
|
358
|
+
.navbar-brand {
|
|
359
|
+
color: @navbar-inverse-brand-color;
|
|
360
|
+
&:hover,
|
|
361
|
+
&:focus {
|
|
362
|
+
color: @navbar-inverse-brand-hover-color;
|
|
363
|
+
background-color: @navbar-inverse-brand-hover-bg;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.navbar-text {
|
|
368
|
+
color: @navbar-inverse-color;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
.navbar-nav {
|
|
372
|
+
> li > a {
|
|
373
|
+
color: @navbar-inverse-link-color;
|
|
374
|
+
|
|
375
|
+
&:hover,
|
|
376
|
+
&:focus {
|
|
377
|
+
color: @navbar-inverse-link-hover-color;
|
|
378
|
+
background-color: @navbar-inverse-link-hover-bg;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
> .active > a {
|
|
382
|
+
&,
|
|
383
|
+
&:hover,
|
|
384
|
+
&:focus {
|
|
385
|
+
color: @navbar-inverse-link-active-color;
|
|
386
|
+
background-color: @navbar-inverse-link-active-bg;
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
> .disabled > a {
|
|
390
|
+
&,
|
|
391
|
+
&:hover,
|
|
392
|
+
&:focus {
|
|
393
|
+
color: @navbar-inverse-link-disabled-color;
|
|
394
|
+
background-color: @navbar-inverse-link-disabled-bg;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// Darken the responsive nav toggle
|
|
400
|
+
.navbar-toggle {
|
|
401
|
+
border-color: @navbar-inverse-toggle-border-color;
|
|
402
|
+
&:hover,
|
|
403
|
+
&:focus {
|
|
404
|
+
background-color: @navbar-inverse-toggle-hover-bg;
|
|
405
|
+
}
|
|
406
|
+
.icon-bar {
|
|
407
|
+
background-color: @navbar-inverse-toggle-icon-bar-bg;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.navbar-collapse {
|
|
412
|
+
border-top-color: darken(@navbar-inverse-bg, 7%);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
// Dropdowns
|
|
416
|
+
.navbar-nav {
|
|
417
|
+
> .open > a {
|
|
418
|
+
&,
|
|
419
|
+
&:hover,
|
|
420
|
+
&:focus {
|
|
421
|
+
background-color: @navbar-inverse-link-active-bg;
|
|
422
|
+
color: @navbar-inverse-link-active-color;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
> .dropdown > a:hover .caret {
|
|
426
|
+
border-top-color: @navbar-inverse-link-hover-color;
|
|
427
|
+
border-bottom-color: @navbar-inverse-link-hover-color;
|
|
428
|
+
}
|
|
429
|
+
> .dropdown > a .caret {
|
|
430
|
+
border-top-color: @navbar-inverse-link-color;
|
|
431
|
+
border-bottom-color: @navbar-inverse-link-color;
|
|
432
|
+
}
|
|
433
|
+
> .open > a {
|
|
434
|
+
&,
|
|
435
|
+
&:hover,
|
|
436
|
+
&:focus {
|
|
437
|
+
.caret {
|
|
438
|
+
border-top-color: @navbar-inverse-link-active-color;
|
|
439
|
+
border-bottom-color: @navbar-inverse-link-active-color;
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
@media (max-width: @screen-phone-max) {
|
|
445
|
+
// Dropdowns get custom display
|
|
446
|
+
.open .dropdown-menu {
|
|
447
|
+
> .dropdown-header {
|
|
448
|
+
border-color: @navbar-inverse-border;
|
|
449
|
+
}
|
|
450
|
+
> li > a {
|
|
451
|
+
color: @navbar-inverse-link-color;
|
|
452
|
+
&:hover,
|
|
453
|
+
&:focus {
|
|
454
|
+
color: @navbar-inverse-link-hover-color;
|
|
455
|
+
background-color: @navbar-inverse-link-hover-bg;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
> .active > a {
|
|
459
|
+
&,
|
|
460
|
+
&:hover,
|
|
461
|
+
&:focus {
|
|
462
|
+
color: @navbar-inverse-link-active-color;
|
|
463
|
+
background-color: @navbar-inverse-link-active-bg;
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
> .disabled > a {
|
|
467
|
+
&,
|
|
468
|
+
&:hover,
|
|
469
|
+
&:focus {
|
|
470
|
+
color: @navbar-inverse-link-disabled-color;
|
|
471
|
+
background-color: @navbar-inverse-link-disabled-bg;
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
// Responsive navbar
|
|
483
|
+
// --------------------------------------------------
|
|
484
|
+
|
|
485
|
+
@media screen and (min-width: @grid-float-breakpoint) {
|
|
486
|
+
|
|
487
|
+
.navbar-nav {
|
|
488
|
+
float: left;
|
|
489
|
+
// undo margin to make nav extend full height of navbar
|
|
490
|
+
margin-top: 0;
|
|
491
|
+
margin-bottom: 0;
|
|
492
|
+
|
|
493
|
+
> li {
|
|
494
|
+
float: left;
|
|
495
|
+
> a {
|
|
496
|
+
padding-top: ((@navbar-height - @line-height-computed) / 2);
|
|
497
|
+
padding-bottom: ((@navbar-height - @line-height-computed) / 2);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
// Required to make the collapsing navbar work on regular desktops
|
|
503
|
+
.navbar-toggle {
|
|
504
|
+
position: relative;
|
|
505
|
+
top: auto;
|
|
506
|
+
left: auto;
|
|
507
|
+
display: none;
|
|
508
|
+
}
|
|
509
|
+
.navbar-collapse.collapse {
|
|
510
|
+
display: block !important;
|
|
511
|
+
height: auto !important;
|
|
512
|
+
padding-bottom: 0; // Override default setting
|
|
513
|
+
overflow: visible !important;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
// Buttons in navbars
|
|
521
|
+
//
|
|
522
|
+
// Vertically center a button within a navbar (when *not* in a form).
|
|
523
|
+
|
|
524
|
+
.navbar-btn {
|
|
525
|
+
margin-top: ((@navbar-height - @input-height-base) / 2);
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
|
|
529
|
+
|
|
530
|
+
// Text in navbars
|
|
531
|
+
//
|
|
532
|
+
// Add a class to make any element properly align itself vertically within the navbars.
|
|
533
|
+
|
|
534
|
+
.navbar-text {
|
|
535
|
+
float: left;
|
|
536
|
+
.navbar-vertical-align(@line-height-computed);
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
|
|
541
|
+
// Links in navbars
|
|
542
|
+
//
|
|
543
|
+
// Add a class to ensure links outside the navbar nav are colored correctly.
|
|
544
|
+
|
|
545
|
+
// Default navbar variables
|
|
546
|
+
.navbar-link {
|
|
547
|
+
color: @navbar-link-color;
|
|
548
|
+
&:hover {
|
|
549
|
+
color: @navbar-link-hover-color;
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
// Use the inverse navbar variables
|
|
554
|
+
.navbar-inverse .navbar-link {
|
|
555
|
+
color: @navbar-inverse-link-color;
|
|
556
|
+
&:hover {
|
|
557
|
+
color: @navbar-inverse-link-hover-color;
|
|
558
|
+
}
|
|
559
|
+
}
|