spiderfw 0.6.30 → 0.6.31
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 +15 -7
- data/CHANGELOG +11 -0
- data/VERSION +1 -1
- data/apps/app_server/config/options.rb +1 -1
- data/apps/core/auth/controllers/login_controller.rb +3 -0
- data/apps/core/components/assets.rb +61 -3
- data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.eot +0 -0
- data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.svg +229 -0
- data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.ttf +0 -0
- data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.woff +0 -0
- data/apps/core/components/public/bootstrap_3/js/affix.js +140 -0
- data/apps/core/components/public/bootstrap_3/js/alert.js +92 -0
- data/apps/core/components/public/bootstrap_3/js/button.js +110 -0
- data/apps/core/components/public/bootstrap_3/js/carousel.js +210 -0
- data/apps/core/components/public/bootstrap_3/js/collapse.js +180 -0
- data/apps/core/components/public/bootstrap_3/js/dropdown.js +151 -0
- data/apps/core/components/public/bootstrap_3/js/modal.js +277 -0
- data/apps/core/components/public/bootstrap_3/js/popover.js +113 -0
- data/apps/core/components/public/bootstrap_3/js/scrollspy.js +158 -0
- data/apps/core/components/public/bootstrap_3/js/tab.js +128 -0
- data/apps/core/components/public/bootstrap_3/js/tooltip.js +456 -0
- data/apps/core/components/public/bootstrap_3/js/transition.js +48 -0
- data/apps/core/components/public/bootstrap_3/scss/_alerts.scss +67 -0
- data/apps/core/components/public/bootstrap_3/scss/_badges.scss +57 -0
- data/apps/core/components/public/bootstrap_3/scss/_breadcrumbs.scss +26 -0
- data/apps/core/components/public/bootstrap_3/scss/_button-groups.scss +240 -0
- data/apps/core/components/public/bootstrap_3/scss/_buttons.scss +159 -0
- data/apps/core/components/public/bootstrap_3/scss/_carousel.scss +243 -0
- data/apps/core/components/public/bootstrap_3/scss/_close.scss +35 -0
- data/apps/core/components/public/bootstrap_3/scss/_code.scss +62 -0
- data/apps/core/components/public/bootstrap_3/scss/_component-animations.scss +35 -0
- data/apps/core/components/public/bootstrap_3/scss/_dropdowns.scss +214 -0
- data/apps/core/components/public/bootstrap_3/scss/_forms.scss +489 -0
- data/apps/core/components/public/bootstrap_3/scss/_glyphicons.scss +237 -0
- data/apps/core/components/public/bootstrap_3/scss/_grid.scss +84 -0
- data/apps/core/components/public/bootstrap_3/scss/_input-groups.scss +166 -0
- data/apps/core/components/public/bootstrap_3/scss/_jumbotron.scss +48 -0
- data/apps/core/components/public/bootstrap_3/scss/_labels.scss +66 -0
- data/apps/core/components/public/bootstrap_3/scss/_list-group.scss +129 -0
- data/apps/core/components/public/bootstrap_3/scss/_media.scss +56 -0
- data/apps/core/components/public/bootstrap_3/scss/_mixins.scss +39 -0
- data/apps/core/components/public/bootstrap_3/scss/_modals.scss +147 -0
- data/apps/core/components/public/bootstrap_3/scss/_navbar.scss +658 -0
- data/apps/core/components/public/bootstrap_3/scss/_navs.scss +242 -0
- data/apps/core/components/public/bootstrap_3/scss/_normalize.scss +425 -0
- data/apps/core/components/public/bootstrap_3/scss/_pager.scss +55 -0
- data/apps/core/components/public/bootstrap_3/scss/_pagination.scss +88 -0
- data/apps/core/components/public/bootstrap_3/scss/_panels.scss +240 -0
- data/apps/core/components/public/bootstrap_3/scss/_popovers.scss +133 -0
- data/apps/core/components/public/bootstrap_3/scss/_print.scss +101 -0
- data/apps/core/components/public/bootstrap_3/scss/_progress-bars.scss +89 -0
- data/apps/core/components/public/bootstrap_3/scss/_responsive-embed.scss +34 -0
- data/apps/core/components/public/bootstrap_3/scss/_responsive-utilities.scss +174 -0
- data/apps/core/components/public/bootstrap_3/scss/_scaffolding.scss +150 -0
- data/apps/core/components/public/bootstrap_3/scss/_tables.scss +233 -0
- data/apps/core/components/public/bootstrap_3/scss/_theme.scss +247 -0
- data/apps/core/components/public/bootstrap_3/scss/_thumbnails.scss +38 -0
- data/apps/core/components/public/bootstrap_3/scss/_tooltip.scss +95 -0
- data/apps/core/components/public/bootstrap_3/scss/_type.scss +298 -0
- data/apps/core/components/public/bootstrap_3/scss/_utilities.scss +56 -0
- data/apps/core/components/public/bootstrap_3/scss/_variables.scss +853 -0
- data/apps/core/components/public/bootstrap_3/scss/_wells.scss +29 -0
- data/apps/core/components/public/bootstrap_3/scss/bootstrap.scss +50 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_alerts.scss +14 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_background-variant.scss +11 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_border-radius.scss +18 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_buttons.scss +50 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_center-block.scss +7 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_clearfix.scss +22 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_forms.scss +84 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_gradients.scss +58 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_grid-framework.scss +87 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_grid.scss +122 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_hide-text.scss +21 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_image.scss +33 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_labels.scss +12 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_list-group.scss +31 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_nav-divider.scss +10 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_nav-vertical-align.scss +9 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_opacity.scss +8 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_pagination.scss +23 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_panels.scss +20 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_progress-bar.scss +8 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_reset-filter.scss +8 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_resize.scss +6 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_responsive-visibility.scss +21 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_size.scss +10 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_tab-focus.scss +9 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_table-row.scss +28 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_text-emphasis.scss +11 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_text-overflow.scss +8 -0
- data/apps/core/components/public/bootstrap_3/scss/mixins/_vendor-prefixes.scss +224 -0
- data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.js +1 -1
- data/apps/core/components/widgets/month_calendar/month_calendar.shtml +3 -3
- data/apps/core/components/widgets/table/table.rb +6 -2
- data/apps/core/components/widgets/table/table.shtml +4 -4
- data/apps/core/forms/widgets/form/form.rb +1 -1
- data/apps/core/forms/widgets/inputs/select/select.rb +13 -2
- data/apps/messenger/lib/backends/mobyt.rb +6 -2
- data/apps/messenger/lib/backends/skebby.rb +1 -1
- data/apps/webdav/controllers/webdav_controller.rb +16 -7
- data/lib/spiderfw/controller/http_controller.rb +4 -1
- data/lib/spiderfw/env.rb +0 -1
- data/lib/spiderfw/http/adapters/rack.rb +3 -1
- data/lib/spiderfw/model/base_model.rb +7 -3
- data/lib/spiderfw/model/storage/connection_pool.rb +6 -2
- data/lib/spiderfw/model/storage/db/db_storage.rb +25 -9
- data/lib/spiderfw/site.rb +1 -1
- metadata +308 -149
@@ -0,0 +1,247 @@
|
|
1
|
+
|
2
|
+
//
|
3
|
+
// Load core variables and mixins
|
4
|
+
// --------------------------------------------------
|
5
|
+
|
6
|
+
@import "variables";
|
7
|
+
@import "mixins";
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
//
|
12
|
+
// Buttons
|
13
|
+
// --------------------------------------------------
|
14
|
+
|
15
|
+
// Common styles
|
16
|
+
.btn-default,
|
17
|
+
.btn-primary,
|
18
|
+
.btn-success,
|
19
|
+
.btn-info,
|
20
|
+
.btn-warning,
|
21
|
+
.btn-danger {
|
22
|
+
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
|
23
|
+
$shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
|
24
|
+
@include box-shadow($shadow);
|
25
|
+
|
26
|
+
// Reset the shadow
|
27
|
+
&:active,
|
28
|
+
&.active {
|
29
|
+
@include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
// Mixin for generating new styles
|
34
|
+
@mixin btn-styles($btn-color: #555) {
|
35
|
+
@include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%));
|
36
|
+
@include reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners
|
37
|
+
background-repeat: repeat-x;
|
38
|
+
border-color: darken($btn-color, 14%);
|
39
|
+
|
40
|
+
&:hover,
|
41
|
+
&:focus {
|
42
|
+
background-color: darken($btn-color, 12%);
|
43
|
+
background-position: 0 -15px;
|
44
|
+
}
|
45
|
+
|
46
|
+
&:active,
|
47
|
+
&.active {
|
48
|
+
background-color: darken($btn-color, 12%);
|
49
|
+
border-color: darken($btn-color, 14%);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
// Common styles
|
54
|
+
.btn {
|
55
|
+
// Remove the gradient for the pressed/active state
|
56
|
+
&:active,
|
57
|
+
&.active {
|
58
|
+
background-image: none;
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
// Apply the mixin to the buttons
|
63
|
+
.btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
|
64
|
+
.btn-primary { @include btn-styles($btn-primary-bg); }
|
65
|
+
.btn-success { @include btn-styles($btn-success-bg); }
|
66
|
+
.btn-info { @include btn-styles($btn-info-bg); }
|
67
|
+
.btn-warning { @include btn-styles($btn-warning-bg); }
|
68
|
+
.btn-danger { @include btn-styles($btn-danger-bg); }
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
//
|
73
|
+
// Images
|
74
|
+
// --------------------------------------------------
|
75
|
+
|
76
|
+
.thumbnail,
|
77
|
+
.img-thumbnail {
|
78
|
+
@include box-shadow(0 1px 2px rgba(0,0,0,.075));
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
//
|
84
|
+
// Dropdowns
|
85
|
+
// --------------------------------------------------
|
86
|
+
|
87
|
+
.dropdown-menu > li > a:hover,
|
88
|
+
.dropdown-menu > li > a:focus {
|
89
|
+
@include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
|
90
|
+
background-color: darken($dropdown-link-hover-bg, 5%);
|
91
|
+
}
|
92
|
+
.dropdown-menu > .active > a,
|
93
|
+
.dropdown-menu > .active > a:hover,
|
94
|
+
.dropdown-menu > .active > a:focus {
|
95
|
+
@include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
|
96
|
+
background-color: darken($dropdown-link-active-bg, 5%);
|
97
|
+
}
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
//
|
102
|
+
// Navbar
|
103
|
+
// --------------------------------------------------
|
104
|
+
|
105
|
+
// Default navbar
|
106
|
+
.navbar-default {
|
107
|
+
@include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
|
108
|
+
@include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
|
109
|
+
border-radius: $navbar-border-radius;
|
110
|
+
$shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
|
111
|
+
@include box-shadow($shadow);
|
112
|
+
|
113
|
+
.navbar-nav > .active > a {
|
114
|
+
@include gradient-vertical($start-color: darken($navbar-default-bg, 5%), $end-color: darken($navbar-default-bg, 2%));
|
115
|
+
@include box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
|
116
|
+
}
|
117
|
+
}
|
118
|
+
.navbar-brand,
|
119
|
+
.navbar-nav > li > a {
|
120
|
+
text-shadow: 0 1px 0 rgba(255,255,255,.25);
|
121
|
+
}
|
122
|
+
|
123
|
+
// Inverted navbar
|
124
|
+
.navbar-inverse {
|
125
|
+
@include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
|
126
|
+
@include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
|
127
|
+
|
128
|
+
.navbar-nav > .active > a {
|
129
|
+
@include gradient-vertical($start-color: $navbar-inverse-bg, $end-color: lighten($navbar-inverse-bg, 2.5%));
|
130
|
+
@include box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
|
131
|
+
}
|
132
|
+
|
133
|
+
.navbar-brand,
|
134
|
+
.navbar-nav > li > a {
|
135
|
+
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
139
|
+
// Undo rounded corners in static and fixed navbars
|
140
|
+
.navbar-static-top,
|
141
|
+
.navbar-fixed-top,
|
142
|
+
.navbar-fixed-bottom {
|
143
|
+
border-radius: 0;
|
144
|
+
}
|
145
|
+
|
146
|
+
|
147
|
+
|
148
|
+
//
|
149
|
+
// Alerts
|
150
|
+
// --------------------------------------------------
|
151
|
+
|
152
|
+
// Common styles
|
153
|
+
.alert {
|
154
|
+
text-shadow: 0 1px 0 rgba(255,255,255,.2);
|
155
|
+
$shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
|
156
|
+
@include box-shadow($shadow);
|
157
|
+
}
|
158
|
+
|
159
|
+
// Mixin for generating new styles
|
160
|
+
@mixin alert-styles($color) {
|
161
|
+
@include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
|
162
|
+
border-color: darken($color, 15%);
|
163
|
+
}
|
164
|
+
|
165
|
+
// Apply the mixin to the alerts
|
166
|
+
.alert-success { @include alert-styles($alert-success-bg); }
|
167
|
+
.alert-info { @include alert-styles($alert-info-bg); }
|
168
|
+
.alert-warning { @include alert-styles($alert-warning-bg); }
|
169
|
+
.alert-danger { @include alert-styles($alert-danger-bg); }
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
//
|
174
|
+
// Progress bars
|
175
|
+
// --------------------------------------------------
|
176
|
+
|
177
|
+
// Give the progress background some depth
|
178
|
+
.progress {
|
179
|
+
@include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
|
180
|
+
}
|
181
|
+
|
182
|
+
// Mixin for generating new styles
|
183
|
+
@mixin progress-bar-styles($color) {
|
184
|
+
@include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
|
185
|
+
}
|
186
|
+
|
187
|
+
// Apply the mixin to the progress bars
|
188
|
+
.progress-bar { @include progress-bar-styles($progress-bar-bg); }
|
189
|
+
.progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); }
|
190
|
+
.progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); }
|
191
|
+
.progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); }
|
192
|
+
.progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); }
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
//
|
197
|
+
// List groups
|
198
|
+
// --------------------------------------------------
|
199
|
+
|
200
|
+
.list-group {
|
201
|
+
border-radius: $border-radius-base;
|
202
|
+
@include box-shadow(0 1px 2px rgba(0,0,0,.075));
|
203
|
+
}
|
204
|
+
.list-group-item.active,
|
205
|
+
.list-group-item.active:hover,
|
206
|
+
.list-group-item.active:focus {
|
207
|
+
text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
|
208
|
+
@include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
|
209
|
+
border-color: darken($list-group-active-border, 7.5%);
|
210
|
+
}
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
//
|
215
|
+
// Panels
|
216
|
+
// --------------------------------------------------
|
217
|
+
|
218
|
+
// Common styles
|
219
|
+
.panel {
|
220
|
+
@include box-shadow(0 1px 2px rgba(0,0,0,.05));
|
221
|
+
}
|
222
|
+
|
223
|
+
// Mixin for generating new styles
|
224
|
+
@mixin panel-heading-styles($color) {
|
225
|
+
@include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
|
226
|
+
}
|
227
|
+
|
228
|
+
// Apply the mixin to the panel headings only
|
229
|
+
.panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); }
|
230
|
+
.panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); }
|
231
|
+
.panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); }
|
232
|
+
.panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); }
|
233
|
+
.panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); }
|
234
|
+
.panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); }
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
//
|
239
|
+
// Wells
|
240
|
+
// --------------------------------------------------
|
241
|
+
|
242
|
+
.well {
|
243
|
+
@include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
|
244
|
+
border-color: darken($well-bg, 10%);
|
245
|
+
$shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
|
246
|
+
@include box-shadow($shadow);
|
247
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
//
|
2
|
+
// Thumbnails
|
3
|
+
// --------------------------------------------------
|
4
|
+
|
5
|
+
|
6
|
+
// Mixin and adjust the regular image class
|
7
|
+
.thumbnail {
|
8
|
+
display: block;
|
9
|
+
padding: $thumbnail-padding;
|
10
|
+
margin-bottom: $line-height-computed;
|
11
|
+
line-height: $line-height-base;
|
12
|
+
background-color: $thumbnail-bg;
|
13
|
+
border: 1px solid $thumbnail-border;
|
14
|
+
border-radius: $thumbnail-border-radius;
|
15
|
+
@include transition(all .2s ease-in-out);
|
16
|
+
|
17
|
+
> img,
|
18
|
+
a > img {
|
19
|
+
@include img-responsive();
|
20
|
+
margin-left: auto;
|
21
|
+
margin-right: auto;
|
22
|
+
}
|
23
|
+
|
24
|
+
// [converter] extracted a&:hover, a&:focus, a&.active to a.thumbnail:hover, a.thumbnail:focus, a.thumbnail.active
|
25
|
+
|
26
|
+
// Image captions
|
27
|
+
.caption {
|
28
|
+
padding: $thumbnail-caption-padding;
|
29
|
+
color: $thumbnail-caption-color;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
// Add a hover state for linked versions only
|
34
|
+
a.thumbnail:hover,
|
35
|
+
a.thumbnail:focus,
|
36
|
+
a.thumbnail.active {
|
37
|
+
border-color: $link-color;
|
38
|
+
}
|
@@ -0,0 +1,95 @@
|
|
1
|
+
//
|
2
|
+
// Tooltips
|
3
|
+
// --------------------------------------------------
|
4
|
+
|
5
|
+
|
6
|
+
// Base class
|
7
|
+
.tooltip {
|
8
|
+
position: absolute;
|
9
|
+
z-index: $zindex-tooltip;
|
10
|
+
display: block;
|
11
|
+
visibility: visible;
|
12
|
+
font-size: $font-size-small;
|
13
|
+
line-height: 1.4;
|
14
|
+
@include opacity(0);
|
15
|
+
|
16
|
+
&.in { @include opacity($tooltip-opacity); }
|
17
|
+
&.top { margin-top: -3px; padding: $tooltip-arrow-width 0; }
|
18
|
+
&.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; }
|
19
|
+
&.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; }
|
20
|
+
&.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; }
|
21
|
+
}
|
22
|
+
|
23
|
+
// Wrapper for the tooltip content
|
24
|
+
.tooltip-inner {
|
25
|
+
max-width: $tooltip-max-width;
|
26
|
+
padding: 3px 8px;
|
27
|
+
color: $tooltip-color;
|
28
|
+
text-align: center;
|
29
|
+
text-decoration: none;
|
30
|
+
background-color: $tooltip-bg;
|
31
|
+
border-radius: $border-radius-base;
|
32
|
+
}
|
33
|
+
|
34
|
+
// Arrows
|
35
|
+
.tooltip-arrow {
|
36
|
+
position: absolute;
|
37
|
+
width: 0;
|
38
|
+
height: 0;
|
39
|
+
border-color: transparent;
|
40
|
+
border-style: solid;
|
41
|
+
}
|
42
|
+
.tooltip {
|
43
|
+
&.top .tooltip-arrow {
|
44
|
+
bottom: 0;
|
45
|
+
left: 50%;
|
46
|
+
margin-left: -$tooltip-arrow-width;
|
47
|
+
border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
|
48
|
+
border-top-color: $tooltip-arrow-color;
|
49
|
+
}
|
50
|
+
&.top-left .tooltip-arrow {
|
51
|
+
bottom: 0;
|
52
|
+
left: $tooltip-arrow-width;
|
53
|
+
border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
|
54
|
+
border-top-color: $tooltip-arrow-color;
|
55
|
+
}
|
56
|
+
&.top-right .tooltip-arrow {
|
57
|
+
bottom: 0;
|
58
|
+
right: $tooltip-arrow-width;
|
59
|
+
border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
|
60
|
+
border-top-color: $tooltip-arrow-color;
|
61
|
+
}
|
62
|
+
&.right .tooltip-arrow {
|
63
|
+
top: 50%;
|
64
|
+
left: 0;
|
65
|
+
margin-top: -$tooltip-arrow-width;
|
66
|
+
border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
|
67
|
+
border-right-color: $tooltip-arrow-color;
|
68
|
+
}
|
69
|
+
&.left .tooltip-arrow {
|
70
|
+
top: 50%;
|
71
|
+
right: 0;
|
72
|
+
margin-top: -$tooltip-arrow-width;
|
73
|
+
border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
|
74
|
+
border-left-color: $tooltip-arrow-color;
|
75
|
+
}
|
76
|
+
&.bottom .tooltip-arrow {
|
77
|
+
top: 0;
|
78
|
+
left: 50%;
|
79
|
+
margin-left: -$tooltip-arrow-width;
|
80
|
+
border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
|
81
|
+
border-bottom-color: $tooltip-arrow-color;
|
82
|
+
}
|
83
|
+
&.bottom-left .tooltip-arrow {
|
84
|
+
top: 0;
|
85
|
+
left: $tooltip-arrow-width;
|
86
|
+
border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
|
87
|
+
border-bottom-color: $tooltip-arrow-color;
|
88
|
+
}
|
89
|
+
&.bottom-right .tooltip-arrow {
|
90
|
+
top: 0;
|
91
|
+
right: $tooltip-arrow-width;
|
92
|
+
border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
|
93
|
+
border-bottom-color: $tooltip-arrow-color;
|
94
|
+
}
|
95
|
+
}
|
@@ -0,0 +1,298 @@
|
|
1
|
+
//
|
2
|
+
// Typography
|
3
|
+
// --------------------------------------------------
|
4
|
+
|
5
|
+
|
6
|
+
// Headings
|
7
|
+
// -------------------------
|
8
|
+
|
9
|
+
h1, h2, h3, h4, h5, h6,
|
10
|
+
.h1, .h2, .h3, .h4, .h5, .h6 {
|
11
|
+
font-family: $headings-font-family;
|
12
|
+
font-weight: $headings-font-weight;
|
13
|
+
line-height: $headings-line-height;
|
14
|
+
color: $headings-color;
|
15
|
+
|
16
|
+
small,
|
17
|
+
.small {
|
18
|
+
font-weight: normal;
|
19
|
+
line-height: 1;
|
20
|
+
color: $headings-small-color;
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
h1, .h1,
|
25
|
+
h2, .h2,
|
26
|
+
h3, .h3 {
|
27
|
+
margin-top: $line-height-computed;
|
28
|
+
margin-bottom: ($line-height-computed / 2);
|
29
|
+
|
30
|
+
small,
|
31
|
+
.small {
|
32
|
+
font-size: 65%;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
h4, .h4,
|
36
|
+
h5, .h5,
|
37
|
+
h6, .h6 {
|
38
|
+
margin-top: ($line-height-computed / 2);
|
39
|
+
margin-bottom: ($line-height-computed / 2);
|
40
|
+
|
41
|
+
small,
|
42
|
+
.small {
|
43
|
+
font-size: 75%;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
h1, .h1 { font-size: $font-size-h1; }
|
48
|
+
h2, .h2 { font-size: $font-size-h2; }
|
49
|
+
h3, .h3 { font-size: $font-size-h3; }
|
50
|
+
h4, .h4 { font-size: $font-size-h4; }
|
51
|
+
h5, .h5 { font-size: $font-size-h5; }
|
52
|
+
h6, .h6 { font-size: $font-size-h6; }
|
53
|
+
|
54
|
+
|
55
|
+
// Body text
|
56
|
+
// -------------------------
|
57
|
+
|
58
|
+
p {
|
59
|
+
margin: 0 0 ($line-height-computed / 2);
|
60
|
+
}
|
61
|
+
|
62
|
+
.lead {
|
63
|
+
margin-bottom: $line-height-computed;
|
64
|
+
font-size: floor(($font-size-base * 1.15));
|
65
|
+
font-weight: 300;
|
66
|
+
line-height: 1.4;
|
67
|
+
|
68
|
+
@media (min-width: $screen-sm-min) {
|
69
|
+
font-size: ($font-size-base * 1.5);
|
70
|
+
}
|
71
|
+
}
|
72
|
+
|
73
|
+
|
74
|
+
// Emphasis & misc
|
75
|
+
// -------------------------
|
76
|
+
|
77
|
+
// Ex: 14px base font * 85% = about 12px
|
78
|
+
small,
|
79
|
+
.small {
|
80
|
+
font-size: 85%;
|
81
|
+
}
|
82
|
+
|
83
|
+
// Undo browser default styling
|
84
|
+
cite {
|
85
|
+
font-style: normal;
|
86
|
+
}
|
87
|
+
|
88
|
+
mark,
|
89
|
+
.mark {
|
90
|
+
background-color: $state-warning-bg;
|
91
|
+
padding: .2em;
|
92
|
+
}
|
93
|
+
|
94
|
+
// Alignment
|
95
|
+
.text-left { text-align: left; }
|
96
|
+
.text-right { text-align: right; }
|
97
|
+
.text-center { text-align: center; }
|
98
|
+
.text-justify { text-align: justify; }
|
99
|
+
|
100
|
+
// Contextual colors
|
101
|
+
.text-muted {
|
102
|
+
color: $text-muted;
|
103
|
+
}
|
104
|
+
|
105
|
+
@include text-emphasis-variant('.text-primary', $brand-primary);
|
106
|
+
|
107
|
+
@include text-emphasis-variant('.text-success', $state-success-text);
|
108
|
+
|
109
|
+
@include text-emphasis-variant('.text-info', $state-info-text);
|
110
|
+
|
111
|
+
@include text-emphasis-variant('.text-warning', $state-warning-text);
|
112
|
+
|
113
|
+
@include text-emphasis-variant('.text-danger', $state-danger-text);
|
114
|
+
|
115
|
+
// Contextual backgrounds
|
116
|
+
// For now we'll leave these alongside the text classes until v4 when we can
|
117
|
+
// safely shift things around (per SemVer rules).
|
118
|
+
.bg-primary {
|
119
|
+
// Given the contrast here, this is the only class to have its color inverted
|
120
|
+
// automatically.
|
121
|
+
color: #fff;
|
122
|
+
}
|
123
|
+
@include bg-variant('.bg-primary', $brand-primary);
|
124
|
+
|
125
|
+
@include bg-variant('.bg-success', $state-success-bg);
|
126
|
+
|
127
|
+
@include bg-variant('.bg-info', $state-info-bg);
|
128
|
+
|
129
|
+
@include bg-variant('.bg-warning', $state-warning-bg);
|
130
|
+
|
131
|
+
@include bg-variant('.bg-danger', $state-danger-bg);
|
132
|
+
|
133
|
+
|
134
|
+
// Page header
|
135
|
+
// -------------------------
|
136
|
+
|
137
|
+
.page-header {
|
138
|
+
padding-bottom: (($line-height-computed / 2) - 1);
|
139
|
+
margin: ($line-height-computed * 2) 0 $line-height-computed;
|
140
|
+
border-bottom: 1px solid $page-header-border-color;
|
141
|
+
}
|
142
|
+
|
143
|
+
|
144
|
+
// Lists
|
145
|
+
// -------------------------
|
146
|
+
|
147
|
+
// Unordered and Ordered lists
|
148
|
+
ul,
|
149
|
+
ol {
|
150
|
+
margin-top: 0;
|
151
|
+
margin-bottom: ($line-height-computed / 2);
|
152
|
+
ul,
|
153
|
+
ol {
|
154
|
+
margin-bottom: 0;
|
155
|
+
}
|
156
|
+
}
|
157
|
+
|
158
|
+
// List options
|
159
|
+
|
160
|
+
// Unstyled keeps list items block level, just removes default browser padding and list-style
|
161
|
+
.list-unstyled {
|
162
|
+
padding-left: 0;
|
163
|
+
list-style: none;
|
164
|
+
}
|
165
|
+
|
166
|
+
// Inline turns list items into inline-block
|
167
|
+
.list-inline {
|
168
|
+
@extend .list-unstyled;
|
169
|
+
margin-left: -5px;
|
170
|
+
|
171
|
+
> li {
|
172
|
+
display: inline-block;
|
173
|
+
padding-left: 5px;
|
174
|
+
padding-right: 5px;
|
175
|
+
}
|
176
|
+
}
|
177
|
+
|
178
|
+
// Description Lists
|
179
|
+
dl {
|
180
|
+
margin-top: 0; // Remove browser default
|
181
|
+
margin-bottom: $line-height-computed;
|
182
|
+
}
|
183
|
+
dt,
|
184
|
+
dd {
|
185
|
+
line-height: $line-height-base;
|
186
|
+
}
|
187
|
+
dt {
|
188
|
+
font-weight: bold;
|
189
|
+
}
|
190
|
+
dd {
|
191
|
+
margin-left: 0; // Undo browser default
|
192
|
+
}
|
193
|
+
|
194
|
+
// Horizontal description lists
|
195
|
+
//
|
196
|
+
// Defaults to being stacked without any of the below styles applied, until the
|
197
|
+
// grid breakpoint is reached (default of ~768px).
|
198
|
+
|
199
|
+
.dl-horizontal {
|
200
|
+
dd {
|
201
|
+
@include clearfix(); // Clear the floated `dt` if an empty `dd` is present
|
202
|
+
}
|
203
|
+
|
204
|
+
@media (min-width: $grid-float-breakpoint) {
|
205
|
+
dt {
|
206
|
+
float: left;
|
207
|
+
width: ($component-offset-horizontal - 20);
|
208
|
+
clear: left;
|
209
|
+
text-align: right;
|
210
|
+
@include text-overflow();
|
211
|
+
}
|
212
|
+
dd {
|
213
|
+
margin-left: $component-offset-horizontal;
|
214
|
+
}
|
215
|
+
}
|
216
|
+
}
|
217
|
+
|
218
|
+
|
219
|
+
// Misc
|
220
|
+
// -------------------------
|
221
|
+
|
222
|
+
// Abbreviations and acronyms
|
223
|
+
abbr[title],
|
224
|
+
// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
|
225
|
+
abbr[data-original-title] {
|
226
|
+
cursor: help;
|
227
|
+
border-bottom: 1px dotted $abbr-border-color;
|
228
|
+
}
|
229
|
+
.initialism {
|
230
|
+
font-size: 90%;
|
231
|
+
text-transform: uppercase;
|
232
|
+
}
|
233
|
+
|
234
|
+
// Blockquotes
|
235
|
+
blockquote {
|
236
|
+
padding: ($line-height-computed / 2) $line-height-computed;
|
237
|
+
margin: 0 0 $line-height-computed;
|
238
|
+
font-size: $blockquote-font-size;
|
239
|
+
border-left: 5px solid $blockquote-border-color;
|
240
|
+
|
241
|
+
p,
|
242
|
+
ul,
|
243
|
+
ol {
|
244
|
+
&:last-child {
|
245
|
+
margin-bottom: 0;
|
246
|
+
}
|
247
|
+
}
|
248
|
+
|
249
|
+
// Note: Deprecated small and .small as of v3.1.0
|
250
|
+
// Context: https://github.com/twbs/bootstrap/issues/11660
|
251
|
+
footer,
|
252
|
+
small,
|
253
|
+
.small {
|
254
|
+
display: block;
|
255
|
+
font-size: 80%; // back to default font-size
|
256
|
+
line-height: $line-height-base;
|
257
|
+
color: $blockquote-small-color;
|
258
|
+
|
259
|
+
&:before {
|
260
|
+
content: '\2014 \00A0'; // em dash, nbsp
|
261
|
+
}
|
262
|
+
}
|
263
|
+
}
|
264
|
+
|
265
|
+
// Opposite alignment of blockquote
|
266
|
+
//
|
267
|
+
// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
|
268
|
+
.blockquote-reverse,
|
269
|
+
blockquote.pull-right {
|
270
|
+
padding-right: 15px;
|
271
|
+
padding-left: 0;
|
272
|
+
border-right: 5px solid $blockquote-border-color;
|
273
|
+
border-left: 0;
|
274
|
+
text-align: right;
|
275
|
+
|
276
|
+
// Account for citation
|
277
|
+
footer,
|
278
|
+
small,
|
279
|
+
.small {
|
280
|
+
&:before { content: ''; }
|
281
|
+
&:after {
|
282
|
+
content: '\00A0 \2014'; // nbsp, em dash
|
283
|
+
}
|
284
|
+
}
|
285
|
+
}
|
286
|
+
|
287
|
+
// Quotes
|
288
|
+
blockquote:before,
|
289
|
+
blockquote:after {
|
290
|
+
content: "";
|
291
|
+
}
|
292
|
+
|
293
|
+
// Addresses
|
294
|
+
address {
|
295
|
+
margin-bottom: $line-height-computed;
|
296
|
+
font-style: normal;
|
297
|
+
line-height: $line-height-base;
|
298
|
+
}
|