sass-twitter-bootstrap-rails 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/README.md +54 -0
  4. data/Rakefile +2 -0
  5. data/lib/sass-twitter-bootstrap-rails.rb +1 -0
  6. data/lib/sass-twitter-bootstrap/rails.rb +6 -0
  7. data/lib/sass-twitter-bootstrap/rails/engine.rb +6 -0
  8. data/lib/sass-twitter-bootstrap/rails/version.rb +7 -0
  9. data/sass-twitter-bootstrap-rails.gemspec +22 -0
  10. data/vendor/assets/javascripts/twitter/bootstrap-alerts.js +113 -0
  11. data/vendor/assets/javascripts/twitter/bootstrap-buttons.js +62 -0
  12. data/vendor/assets/javascripts/twitter/bootstrap-dropdown.js +55 -0
  13. data/vendor/assets/javascripts/twitter/bootstrap-modal.js +260 -0
  14. data/vendor/assets/javascripts/twitter/bootstrap-popover.js +86 -0
  15. data/vendor/assets/javascripts/twitter/bootstrap-scrollspy.js +107 -0
  16. data/vendor/assets/javascripts/twitter/bootstrap-tabs.js +80 -0
  17. data/vendor/assets/javascripts/twitter/bootstrap-twipsy.js +310 -0
  18. data/vendor/assets/javascripts/twitter/bootstrap.js +1 -0
  19. data/vendor/assets/stylesheets/twitter/bootstrap.scss +29 -0
  20. data/vendor/assets/stylesheets/twitter/forms.scss +478 -0
  21. data/vendor/assets/stylesheets/twitter/mixins.scss +220 -0
  22. data/vendor/assets/stylesheets/twitter/patterns.scss +1060 -0
  23. data/vendor/assets/stylesheets/twitter/reset.scss +141 -0
  24. data/vendor/assets/stylesheets/twitter/scaffolding.scss +108 -0
  25. data/vendor/assets/stylesheets/twitter/tables.scss +224 -0
  26. data/vendor/assets/stylesheets/twitter/type.scss +187 -0
  27. data/vendor/assets/stylesheets/twitter/variables.scss +60 -0
  28. metadata +84 -0
@@ -0,0 +1,220 @@
1
+ /* Mixins.scss
2
+ * Snippets of reusable CSS to develop faster and keep code readable
3
+ * ----------------------------------------------------------------- */
4
+
5
+ // Clearfix for clearing floats like a boss h5bp.com/q
6
+ @mixin clearfix {
7
+ zoom: 1;
8
+ &:before,
9
+ &:after {
10
+ display: table;
11
+ content: "";
12
+ zoom: 1;
13
+ }
14
+ &:after {
15
+ clear: both;
16
+ }
17
+ }
18
+ .clearfix { @include clearfix; }
19
+
20
+ // Center-align a block level element
21
+ @mixin center-block {
22
+ display: block;
23
+ margin-left: auto;
24
+ margin-right: auto;
25
+ }
26
+
27
+ // Sizing shortcuts
28
+ @mixin size($height: 5px, $width: 5px) {
29
+ height: $height;
30
+ width: $width;
31
+ }
32
+ @mixin square($size: 5px) {
33
+ @include size($size, $size);
34
+ }
35
+
36
+ // Input placeholder text
37
+ @mixin placeholder($color: $grayLight) {
38
+ :-moz-placeholder {
39
+ color: $color;
40
+ }
41
+ ::-webkit-input-placeholder {
42
+ color: $color;
43
+ }
44
+ }
45
+
46
+ // Font Stacks
47
+ @mixin shorthand-font($weight: normal, $size: 14px, $lineHeight: 20px) {
48
+ font-size: $size;
49
+ font-weight: $weight;
50
+ line-height: $lineHeight;
51
+ }
52
+ @mixin sans-serif-font($weight: normal, $size: 14px, $lineHeight: 20px) {
53
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
54
+ font-size: $size;
55
+ font-weight: $weight;
56
+ line-height: $lineHeight;
57
+ }
58
+ @mixin serif-font($weight: normal, $size: 14px, $lineHeight: 20px) {
59
+ font-family: "Georgia", Times New Roman, Times, serif;
60
+ font-size: $size;
61
+ font-weight: $weight;
62
+ line-height: $lineHeight;
63
+ }
64
+ @mixin monospace-font($weight: normal, $size: 12px, $lineHeight: 20px) {
65
+ font-family: "Monaco", Courier New, monospace;
66
+ font-size: $size;
67
+ font-weight: $weight;
68
+ line-height: $lineHeight;
69
+ }
70
+
71
+ // Grid System
72
+ @mixin fixed-container {
73
+ width: $siteWidth;
74
+ margin-left: auto;
75
+ margin-right: auto;
76
+ @include clearfix();
77
+ }
78
+ .fixed-container { @include fixed-container; }
79
+ @mixin columns($columnSpan: 1) {
80
+ width: ($gridColumnWidth * $columnSpan) + ($gridGutterWidth * ($columnSpan - 1));
81
+ }
82
+ @mixin offset($columnOffset: 1) {
83
+ margin-left: ($gridColumnWidth * $columnOffset) + ($gridGutterWidth * ($columnOffset - 1)) + $extraSpace;
84
+ }
85
+ // Necessary grid styles for every column to make them appear next to each other horizontally
86
+ @mixin gridColumn() {
87
+ display: inline;
88
+ float: left;
89
+ margin-left: $gridGutterWidth;
90
+ }
91
+ // makeColumn can be used to mark any element (e.g., .content-primary) as a column without changing markup to .span something
92
+ @mixin makeColumn($columnSpan: 1) {
93
+ @include gridColumn();
94
+ @include columns($columnSpan);
95
+ }
96
+
97
+ // Border Radius
98
+ @mixin border-radius($radius: 5px) {
99
+ -webkit-border-radius: $radius;
100
+ -moz-border-radius: $radius;
101
+ border-radius: $radius;
102
+ }
103
+
104
+ // Drop shadows
105
+ @mixin box-shadow($shadow: 0 1px 3px rgba(0,0,0,.25)) {
106
+ -webkit-box-shadow: $shadow;
107
+ -moz-box-shadow: $shadow;
108
+ box-shadow: $shadow;
109
+ }
110
+
111
+ // Transitions
112
+ @mixin transition($transition) {
113
+ -webkit-transition: $transition;
114
+ -moz-transition: $transition;
115
+ -ms-transition: $transition;
116
+ -o-transition: $transition;
117
+ transition: $transition;
118
+ }
119
+
120
+ // Background clipping
121
+ @mixin background-clip($clip) {
122
+ -webkit-background-clip: $clip;
123
+ -moz-background-clip: $clip;
124
+ background-clip: $clip;
125
+ }
126
+
127
+ // CSS3 Content Columns
128
+ @mixin content-columns($columnCount, $columnGap: 20px) {
129
+ -webkit-column-count: $columnCount;
130
+ -moz-column-count: $columnCount;
131
+ column-count: $columnCount;
132
+ -webkit-column-gap: $columnGap;
133
+ -moz-column-gap: $columnGap;
134
+ column-gap: $columnGap;
135
+ }
136
+
137
+ // Make any element resizable for prototyping
138
+ @mixin resizable($direction: both) {
139
+ resize: $direction; // Options are horizontal, vertical, both
140
+ overflow: auto; // Safari fix
141
+ }
142
+
143
+ // Add an alphatransparency value to any background or border color (via Elyse Holladay)
144
+ @mixin translucent-background($color: $white, $alpha: 1) {
145
+ background-color: hsla(hue($color), saturation($color), lightness($color), $alpha);
146
+ }
147
+ @mixin translucent-border($color: $white, $alpha: 1) {
148
+ border-color: hsla(hue($color), saturation($color), lightness($color), $alpha);
149
+ background-clip: padding-box;
150
+ }
151
+
152
+ // Gradients
153
+ @mixin horizontal-gradient ($startColor: #555, $endColor: #333) {
154
+ background-color: $endColor;
155
+ background-repeat: repeat-x;
156
+ background-image: -khtml-gradient(linear, left top, right top, from($startColor), to($endColor)); // Konqueror
157
+ background-image: -moz-linear-gradient(left, $startColor, $endColor); // FF 3.6+
158
+ background-image: -ms-linear-gradient(left, $startColor, $endColor); // IE10
159
+ background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, $startColor), color-stop(100%, $endColor)); // Safari 4+, Chrome 2+
160
+ background-image: -webkit-linear-gradient(left, $startColor, $endColor); // Safari 5.1+, Chrome 10+
161
+ background-image: -o-linear-gradient(left, $startColor, $endColor); // Opera 11.10
162
+ background-image: linear-gradient(left, $startColor, $endColor); // Le standard
163
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$startColor}', endColorstr='#{$endColor}', GradientType=1); // IE9 and down
164
+ }
165
+
166
+ @mixin vertical-gradient ($startColor: #555, $endColor: #333) {
167
+ background-color: $endColor;
168
+ background-repeat: repeat-x;
169
+ background-image: -khtml-gradient(linear, left top, left bottom, from($startColor), to($endColor)); // Konqueror
170
+ background-image: -moz-linear-gradient(top, $startColor, $endColor); // FF 3.6+
171
+ background-image: -ms-linear-gradient(top, $startColor, $endColor); // IE10
172
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, $startColor), color-stop(100%, $endColor)); // Safari 4+, Chrome 2+
173
+ background-image: -webkit-linear-gradient(top, $startColor, $endColor); // Safari 5.1+, Chrome 10+
174
+ background-image: -o-linear-gradient(top, $startColor, $endColor); // Opera 11.10
175
+ background-image: linear-gradient(top, $startColor, $endColor); // The standard
176
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$startColor}', endColorstr='#{$endColor}', GradientType=0); // IE9 and down
177
+ }
178
+
179
+ @mixin directional-gradient ($startColor: #555, $endColor: #333, $deg: 45deg) {
180
+ background-color: $endColor;
181
+ background-repeat: repeat-x;
182
+ background-image: -moz-linear-gradient($deg, $startColor, $endColor); // FF 3.6+
183
+ background-image: -ms-linear-gradient($deg, $startColor, $endColor); // IE10
184
+ background-image: -webkit-linear-gradient($deg, $startColor, $endColor); // Safari 5.1+, Chrome 10+
185
+ background-image: -o-linear-gradient($deg, $startColor, $endColor); // Opera 11.10
186
+ background-image: linear-gradient($deg, $startColor, $endColor); // The standard
187
+ }
188
+
189
+ @mixin vertical-three-colors-gradient($startColor: #00b3ee, $midColor: #7a43b6, $colorStop: 50%, $endColor: #c3325f) {
190
+ background-color: $endColor;
191
+ background-repeat: no-repeat;
192
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from($startColor), color-stop($colorStop, $midColor), to($endColor));
193
+ background-image: -webkit-linear-gradient($startColor, $midColor $colorStop, $endColor);
194
+ background-image: -moz-linear-gradient($startColor, $midColor $colorStop, $endColor);
195
+ background-image: -ms-linear-gradient($startColor, $midColor $colorStop, $endColor);
196
+ background-image: -o-linear-gradient($startColor, $midColor $colorStop, $endColor);
197
+ background-image: linear-gradient($startColor, $midColor $colorStop, $endColor);
198
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$startColor}', endColorstr='#{$endColor}', GradientType=0); // IE9 and down, gets no color-stop at all the proper fallback
199
+ }
200
+
201
+ // Gradient Bar Colors for buttons and allerts
202
+ @mixin gradientBar($primaryColor, $secondaryColor) {
203
+ @include vertical-gradient($primaryColor, $secondaryColor);
204
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
205
+ border-color: $secondaryColor $secondaryColor darken($secondaryColor, 15%);
206
+ border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) opacify(rgba(0,0,0,.1), .15);
207
+ }
208
+
209
+ // Reset filters for IE
210
+ @mixin reset-filter() {
211
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
212
+ }
213
+
214
+ // Opacity
215
+ @mixin opacity($opacity: 100) {
216
+ filter: alpha(opacity=$opacity);
217
+ -khtml-opacity: $opacity / 100;
218
+ -moz-opacity: $opacity / 100;
219
+ opacity: $opacity / 100;
220
+ }
@@ -0,0 +1,1060 @@
1
+ /* Patterns.scss
2
+ * Repeatable UI elements outside the base styles provided from the scaffolding
3
+ * ---------------------------------------------------------------------------- */
4
+
5
+
6
+ // TOPBAR
7
+ // ------
8
+
9
+ // Topbar for Branding and Nav
10
+ .topbar {
11
+ height: 40px;
12
+ position: fixed;
13
+ top: 0;
14
+ left: 0;
15
+ right: 0;
16
+ z-index: 10000;
17
+ overflow: visible;
18
+
19
+ // Links get text shadow
20
+ a {
21
+ color: $grayLight;
22
+ text-shadow: 0 -1px 0 rgba(0,0,0,.25);
23
+ }
24
+
25
+ // Hover and active states
26
+ // h3 for backwards compatibility
27
+ h3 a:hover,
28
+ .brand:hover,
29
+ ul .active > a {
30
+ background-color: #333;
31
+ background-color: rgba(255,255,255,.05);
32
+ color: $white;
33
+ text-decoration: none;
34
+ }
35
+
36
+ // Website name
37
+ // h3 left for backwards compatibility
38
+ h3 {
39
+ position: relative;
40
+ }
41
+ h3 a,
42
+ .brand {
43
+ float: left;
44
+ display: block;
45
+ padding: 8px 20px 12px;
46
+ margin-left: -20px; // negative indent to left-align the text down the page
47
+ color: $white;
48
+ font-size: 20px;
49
+ font-weight: 200;
50
+ line-height: 1;
51
+ }
52
+
53
+ // Plain text in topbar
54
+ p {
55
+ margin: 0;
56
+ line-height: 40px;
57
+ a:hover {
58
+ background-color: transparent;
59
+ color: $white;
60
+ }
61
+ }
62
+
63
+ // Search Form
64
+ form {
65
+ float: left;
66
+ margin: 5px 0 0 0;
67
+ position: relative;
68
+ @include opacity(100);
69
+ }
70
+ // Todo: remove from v2.0 when ready, added for legacy
71
+ form.pull-right {
72
+ float: right;
73
+ }
74
+ input {
75
+ background-color: #444;
76
+ background-color: rgba(255,255,255,.3);
77
+ @include sans-serif-font(13px, normal, 1);
78
+ padding: 4px 9px;
79
+ color: $white;
80
+ color: rgba(255,255,255,.75);
81
+ border: 1px solid #111;
82
+ @include border-radius(4px);
83
+ $shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0px rgba(255,255,255,.25);
84
+ @include box-shadow($shadow);
85
+ @include transition(none);
86
+
87
+ // Placeholder text gets special styles; can't be bundled together though for some reason
88
+ &:-moz-placeholder {
89
+ color: $grayLighter;
90
+ }
91
+ &::-webkit-input-placeholder {
92
+ color: $grayLighter;
93
+ }
94
+ // Hover states
95
+ &:hover {
96
+ background-color: $grayLight;
97
+ background-color: rgba(255,255,255,.5);
98
+ color: $white;
99
+ }
100
+ // Focus states (we use .focused since IE8 and down doesn't support :focus)
101
+ &:focus,
102
+ &.focused {
103
+ outline: 0;
104
+ background-color: $white;
105
+ color: $grayDark;
106
+ text-shadow: 0 1px 0 $white;
107
+ border: 0;
108
+ padding: 5px 10px;
109
+ @include box-shadow(0 0 3px rgba(0,0,0,.15));
110
+ }
111
+ }
112
+ }
113
+
114
+ // gradient is applied to it's own element because overflow visible is not honored by ie when filter is present
115
+ // For backwards compatibility, include .topbar .fill
116
+ .topbar-inner,
117
+ .topbar .fill {
118
+ background-color: #222;
119
+ @include vertical-gradient(#333, #222);
120
+ $shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
121
+ @include box-shadow($shadow);
122
+ }
123
+
124
+
125
+ // NAVIGATION
126
+ // ----------
127
+
128
+ // Topbar Nav
129
+ // ul.nav for all topbar based navigation to avoid inheritance issues and over-specificity
130
+ // For backwards compatibility, leave in .topbar div > ul
131
+ .topbar div > ul,
132
+ .nav {
133
+ display: block;
134
+ float: left;
135
+ margin: 0 10px 0 0;
136
+ position: relative;
137
+ left: 0;
138
+ > li {
139
+ display: block;
140
+ float: left;
141
+ }
142
+ a {
143
+ display: block;
144
+ float: none;
145
+ padding: 10px 10px 11px;
146
+ line-height: 19px;
147
+ text-decoration: none;
148
+ &:hover {
149
+ color: $white;
150
+ text-decoration: none;
151
+ }
152
+ }
153
+ .active > a {
154
+ background-color: #222;
155
+ background-color: rgba(0,0,0,.5);
156
+ }
157
+
158
+ // Secondary (floated right) nav in topbar
159
+ &.secondary-nav {
160
+ float: right;
161
+ margin-left: 10px;
162
+ margin-right: 0;
163
+ // backwards compatibility
164
+ .menu-dropdown,
165
+ .dropdown-menu {
166
+ right: 0;
167
+ border: 0;
168
+ }
169
+ }
170
+ // Dropdowns within the .nav
171
+ // a.menu:hover and li.open .menu for backwards compatibility
172
+ a.menu:hover,
173
+ li.open .menu,
174
+ .dropdown-toggle:hover,
175
+ .dropdown.open .dropdown-toggle {
176
+ background: #444;
177
+ background: rgba(255,255,255,.05);
178
+ }
179
+ // .menu-dropdown for backwards compatibility
180
+ .menu-dropdown,
181
+ .dropdown-menu {
182
+ background-color: #333;
183
+ // a.menu for backwards compatibility
184
+ a.menu,
185
+ .dropdown-toggle {
186
+ color: $white;
187
+ &.open {
188
+ background: #444;
189
+ background: rgba(255,255,255,.05);
190
+ }
191
+ }
192
+ li a {
193
+ color: #999;
194
+ text-shadow: 0 1px 0 rgba(0,0,0,.5);
195
+ &:hover {
196
+ @include vertical-gradient(#292929,#191919);
197
+ color: $white;
198
+ }
199
+ }
200
+ .active a {
201
+ color: $white;
202
+ }
203
+ .divider {
204
+ background-color: #222;
205
+ border-color: #444;
206
+ }
207
+ }
208
+ }
209
+
210
+ // For backwards compatibility with new dropdowns, redeclare dropdown link padding
211
+ .topbar ul .menu-dropdown li a,
212
+ .topbar ul .dropdown-menu li a {
213
+ padding: 4px 15px;
214
+ }
215
+
216
+ // Dropdown Menus
217
+ // Use the .menu class on any <li> element within the topbar or ul.tabs and you'll get some superfancy dropdowns
218
+ // li.menu for backwards compatibility
219
+ li.menu,
220
+ .dropdown {
221
+ position: relative;
222
+ }
223
+ // The link that is clicked to toggle the dropdown
224
+ // a.menu for backwards compatibility
225
+ a.menu:after,
226
+ .dropdown-toggle:after {
227
+ width: 0;
228
+ height: 0;
229
+ display: inline-block;
230
+ content: "&darr;";
231
+ text-indent: -99999px;
232
+ vertical-align: top;
233
+ margin-top: 8px;
234
+ margin-left: 4px;
235
+ border-left: 4px solid transparent;
236
+ border-right: 4px solid transparent;
237
+ border-top: 4px solid $white;
238
+ @include opacity(50);
239
+ }
240
+ // The dropdown menu (ul)
241
+ // .menu-dropdown for backwards compatibility
242
+ .menu-dropdown,
243
+ .dropdown-menu {
244
+ background-color: $white;
245
+ float: left;
246
+ display: none; // None by default, but block on "open" of the menu
247
+ position: absolute;
248
+ top: 40px;
249
+ z-index: 900;
250
+ min-width: 160px;
251
+ max-width: 220px;
252
+ _width: 160px;
253
+ margin-left: 0; // override default ul styles
254
+ margin-right: 0;
255
+ padding: 6px 0;
256
+ zoom: 1; // do we need this?
257
+ border-color: #999;
258
+ border-color: rgba(0,0,0,.2);
259
+ border-style: solid;
260
+ border-width: 0 1px 1px;
261
+ @include border-radius(0 0 6px 6px);
262
+ @include box-shadow(0 2px 4px rgba(0,0,0,.2));
263
+ @include background-clip(padding-box);
264
+
265
+ // Unfloat any li's to make them stack
266
+ li {
267
+ float: none;
268
+ display: block;
269
+ background-color: none;
270
+ }
271
+ // Dividers (basically an hr) within the dropdown
272
+ .divider {
273
+ height: 1px;
274
+ margin: 5px 0;
275
+ overflow: hidden;
276
+ background-color: #eee;
277
+ border-bottom: 1px solid $white;
278
+ }
279
+ }
280
+
281
+ .topbar .dropdown-menu,
282
+ .dropdown-menu {
283
+ // Links within the dropdown menu
284
+ a {
285
+ display: block;
286
+ padding: 4px 15px;
287
+ clear: both;
288
+ font-weight: normal;
289
+ line-height: 18px;
290
+ color: $gray;
291
+ text-shadow: 0 1px 0 $white;
292
+ // Hover state
293
+ &:hover,
294
+ &.hover {
295
+ @include vertical-gradient(#eeeeee, #dddddd);
296
+ color: $grayDark;
297
+ text-decoration: none;
298
+ $shadow: inset 0 1px 0 rgba(0,0,0,.025), inset 0 -1px rgba(0,0,0,.025);
299
+ @include box-shadow($shadow);
300
+ }
301
+ }
302
+ }
303
+
304
+ // Open state for the dropdown
305
+ // .open for backwards compatibility
306
+ .open,
307
+ .dropdown.open {
308
+ // .menu for backwards compatibility
309
+ .menu,
310
+ .dropdown-toggle {
311
+ color: $white;
312
+ background: #ccc;
313
+ background: rgba(0,0,0,.3);
314
+ }
315
+ // .menu-dropdown for backwards compatibility
316
+ .menu-dropdown,
317
+ .dropdown-menu {
318
+ display: block;
319
+ }
320
+ }
321
+
322
+
323
+ // TABS AND PILLS
324
+ //---------------
325
+
326
+ // Common styles
327
+ .tabs,
328
+ .pills {
329
+ margin: 0 0 $baseline;
330
+ padding: 0;
331
+ list-style: none;
332
+ @include clearfix();
333
+ > li {
334
+ float: left;
335
+ > a {
336
+ display: block;
337
+ }
338
+ }
339
+ }
340
+
341
+ // Tabs
342
+ .tabs {
343
+ border-color: #ddd;
344
+ border-style: solid;
345
+ border-width: 0 0 1px;
346
+ > li {
347
+ position: relative; // For the dropdowns mostly
348
+ margin-bottom: -1px;
349
+ > a {
350
+ padding: 0 15px;
351
+ margin-right: 2px;
352
+ line-height: ($baseline * 2) - 2;
353
+ border: 1px solid transparent;
354
+ @include border-radius(4px 4px 0 0);
355
+ &:hover {
356
+ text-decoration: none;
357
+ background-color: #eee;
358
+ border-color: #eee #eee #ddd;
359
+ }
360
+ }
361
+ }
362
+ // Active state, and it's :hover to override normal :hover
363
+ .active > a,
364
+ .active > a:hover {
365
+ color: $gray;
366
+ background-color: $white;
367
+ border: 1px solid #ddd;
368
+ border-bottom-color: transparent;
369
+ cursor: default;
370
+ }
371
+ }
372
+
373
+ // Dropdowns in tabs
374
+ .tabs {
375
+ // first one for backwards compatibility
376
+ .menu-dropdown,
377
+ .dropdown-menu {
378
+ top: 35px;
379
+ border-width: 1px;
380
+ @include border-radius(0 6px 6px 6px);
381
+ }
382
+ // first one for backwards compatibility
383
+ a.menu:after,
384
+ .dropdown-toggle:after {
385
+ border-top-color: #999;
386
+ margin-top: 15px;
387
+ margin-left: 5px;
388
+ }
389
+ // first one for backwards compatibility
390
+ li.open.menu .menu,
391
+ .open.dropdown .dropdown-toggle {
392
+ border-color: #999;
393
+ }
394
+ // first one for backwards compatibility
395
+ li.open a.menu:after,
396
+ .dropdown.open .dropdown-toggle:after {
397
+ border-top-color: #555;
398
+ }
399
+ }
400
+
401
+ // Pills
402
+ .pills {
403
+ a {
404
+ margin: 5px 3px 5px 0;
405
+ padding: 0 15px;
406
+ line-height: 30px;
407
+ text-shadow: 0 1px 1px $white;
408
+ @include border-radius(15px);
409
+ &:hover {
410
+ color: $white;
411
+ text-decoration: none;
412
+ text-shadow: 0 1px 1px rgba(0,0,0,.25);
413
+ background-color: $linkColorHover;
414
+ }
415
+ }
416
+ .active a {
417
+ color: $white;
418
+ text-shadow: 0 1px 1px rgba(0,0,0,.25);
419
+ background-color: $linkColor;
420
+ }
421
+ }
422
+
423
+ // Stacked pills
424
+ .pills-vertical > li {
425
+ float: none;
426
+ }
427
+
428
+ // Tabbable areas
429
+ .tab-content,
430
+ .pill-content {
431
+ }
432
+ .tab-content > .tab-pane,
433
+ .pill-content > .pill-pane,
434
+ .tab-content > div,
435
+ .pill-content > div {
436
+ display: none;
437
+ }
438
+ .tab-content > .active,
439
+ .pill-content > .active {
440
+ display: block;
441
+ }
442
+
443
+
444
+ // BREADCRUMBS
445
+ // -----------
446
+
447
+ .breadcrumb {
448
+ padding: 7px 14px;
449
+ margin: 0 0 $baseline;
450
+ @include vertical-gradient(#ffffff, #f5f5f5);
451
+ border: 1px solid #ddd;
452
+ @include border-radius(3px);
453
+ @include box-shadow(inset 0 1px 0 $white);
454
+ li {
455
+ display: inline;
456
+ text-shadow: 0 1px 0 $white;
457
+ }
458
+ .divider {
459
+ padding: 0 5px;
460
+ color: $grayLight;
461
+ }
462
+ .active a {
463
+ color: $grayDark;
464
+ }
465
+ }
466
+
467
+
468
+ // PAGE HEADERS
469
+ // ------------
470
+
471
+ .hero-unit {
472
+ background-color: #f5f5f5;
473
+ margin-top: 60px;
474
+ margin-bottom: 30px;
475
+ padding: 60px;
476
+ @include border-radius(6px);
477
+ h1 {
478
+ margin-bottom: 0;
479
+ font-size: 60px;
480
+ line-height: 1;
481
+ letter-spacing: -1px;
482
+ }
483
+ p {
484
+ font-size: 18px;
485
+ font-weight: 200;
486
+ line-height: $baseline * 1.5;
487
+ }
488
+ }
489
+ footer {
490
+ margin-top: $baseline - 1;
491
+ padding-top: $baseline - 1;
492
+ border-top: 1px solid #eee;
493
+ }
494
+
495
+ // PAGE HEADERS
496
+ // ------------
497
+
498
+ .page-header {
499
+ margin-bottom: $baseline - 1;
500
+ border-bottom: 1px solid #ddd;
501
+ @include box-shadow(0 1px 0 rgba(255,255,255,.5));
502
+ h1 {
503
+ margin-bottom: ($baseline / 2) - 1px;
504
+ }
505
+ }
506
+
507
+
508
+ // BUTTON STYLES
509
+ // -------------
510
+
511
+ // Shared colors for buttons and alerts
512
+ .btn,
513
+ .alert-message {
514
+ // Set text color
515
+ &.danger,
516
+ &.danger:hover,
517
+ &.error,
518
+ &.error:hover,
519
+ &.success,
520
+ &.success:hover,
521
+ &.info,
522
+ &.info:hover {
523
+ color: $white;
524
+ }
525
+ // Sets the close button to the middle of message
526
+ .close {
527
+ font-family: Arial, sans-serif;
528
+ line-height: 18px;
529
+ }
530
+ // Danger and error appear as red
531
+ &.danger,
532
+ &.error {
533
+ @include gradientBar(#ee5f5b, #c43c35);
534
+ }
535
+ // Success appears as green
536
+ &.success {
537
+ @include gradientBar(#62c462, #57a957);
538
+ }
539
+ // Info appears as a neutral blue
540
+ &.info {
541
+ @include gradientBar(#5bc0de, #339bb9);
542
+ }
543
+ }
544
+
545
+ // Base .btn styles
546
+ .btn {
547
+ // Button Base
548
+ cursor: pointer;
549
+ display: inline-block;
550
+ @include vertical-three-colors-gradient(#fff, #fff, 25%, darken(#fff, 10%));
551
+ padding: 5px 14px 6px;
552
+ text-shadow: 0 1px 1px rgba(255,255,255,.75);
553
+ color: #333;
554
+ font-size: $basefont;
555
+ line-height: normal;
556
+ border: 1px solid #ccc;
557
+ border-bottom-color: #bbb;
558
+ @include border-radius(4px);
559
+ $shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
560
+ @include box-shadow($shadow);
561
+
562
+ &:hover {
563
+ background-position: 0 -15px;
564
+ color: #333;
565
+ text-decoration: none;
566
+ }
567
+
568
+ // Focus state for keyboard and accessibility
569
+ &:focus {
570
+ outline: 1px dotted #666;
571
+ }
572
+
573
+ // Primary Button Type
574
+ &.primary {
575
+ color: $white;
576
+ @include gradientBar($blue, $blueDark);
577
+ }
578
+
579
+ // Transitions
580
+ @include transition(.1s linear all);
581
+
582
+ // Active and Disabled states
583
+ &.active,
584
+ &:active {
585
+ $shadow: inset 0 2px 4px rgba(0,0,0,.25), 0 1px 2px rgba(0,0,0,.05);
586
+ @include box-shadow($shadow);
587
+ }
588
+ &.disabled {
589
+ cursor: default;
590
+ background-image: none;
591
+ @include reset-filter();
592
+ @include opacity(65);
593
+ @include box-shadow(none);
594
+ }
595
+ &[disabled] {
596
+ // disabled pseudo can't be included with .disabled
597
+ // def because IE8 and below will drop it ;_;
598
+ cursor: default;
599
+ background-image: none;
600
+ @include reset-filter();
601
+ @include opacity(65);
602
+ @include box-shadow(none);
603
+ }
604
+
605
+ // Button Sizes
606
+ &.large {
607
+ font-size: $basefont + 2px;
608
+ line-height: normal;
609
+ padding: 9px 14px 9px;
610
+ @include border-radius(6px);
611
+ }
612
+ &.small {
613
+ padding: 7px 9px 7px;
614
+ font-size: $basefont - 2px;
615
+ }
616
+ }
617
+ // Super jank hack for removing border-radius from IE9 so we can keep filter gradients on alerts and buttons
618
+ :root .alert-message,
619
+ :root .btn {
620
+ border-radius: 0 \0;
621
+ }
622
+
623
+ // Help Firefox not be a jerk about adding extra padding to buttons
624
+ button.btn,
625
+ input[type=submit].btn {
626
+ &::-moz-focus-inner {
627
+ padding: 0;
628
+ border: 0;
629
+ }
630
+ }
631
+
632
+
633
+ // CLOSE ICONS
634
+ // -----------
635
+ .close {
636
+ float: right;
637
+ color: $black;
638
+ font-size: 20px;
639
+ font-weight: bold;
640
+ line-height: $baseline * .75;
641
+ text-shadow: 0 1px 0 rgba(255,255,255,1);
642
+ @include opacity(25);
643
+ &:hover {
644
+ color: $black;
645
+ text-decoration: none;
646
+ @include opacity(40);
647
+ }
648
+ }
649
+
650
+
651
+ // ERROR STYLES
652
+ // ------------
653
+
654
+ // Base alert styles
655
+ .alert-message {
656
+ position: relative;
657
+ padding: 7px 15px;
658
+ margin-bottom: $baseline;
659
+ color: $grayDark;
660
+ @include gradientBar(#fceec1, #eedc94);
661
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
662
+ border-width: 1px;
663
+ border-style: solid;
664
+ @include border-radius(4px);
665
+ @include box-shadow(inset 0 1px 0 rgba(255,255,255,.25));
666
+
667
+ // Adjust close icon
668
+ .close {
669
+ margin-top: 1px;
670
+ *margin-top: 0; // For IE7
671
+ }
672
+
673
+ // Make links same color as text and stand out more
674
+ a {
675
+ font-weight: bold;
676
+ color: $grayDark;
677
+ }
678
+ &.danger p a,
679
+ &.error p a,
680
+ &.success p a,
681
+ &.info p a {
682
+ color: $white;
683
+ }
684
+
685
+ // Remove extra margin from content
686
+ h5 {
687
+ line-height: $baseline;
688
+ }
689
+ p {
690
+ margin-bottom: 0;
691
+ }
692
+ div {
693
+ margin-top: 5px;
694
+ margin-bottom: 2px;
695
+ line-height: 28px;
696
+ }
697
+ .btn {
698
+ // Provide actions with buttons
699
+ @include box-shadow(0 1px 0 rgba(255,255,255,.25));
700
+ }
701
+
702
+ &.block-message {
703
+ background-image: none;
704
+ background-color: lighten(#fceec1, 5%);
705
+ @include reset-filter();
706
+ padding: 14px;
707
+ border-color: #fceec1;
708
+ @include box-shadow(none);
709
+ ul, p {
710
+ margin-right: 30px;
711
+ }
712
+ ul {
713
+ margin-bottom: 0;
714
+ }
715
+ li {
716
+ color: $grayDark;
717
+ }
718
+ .alert-actions {
719
+ margin-top: 5px;
720
+ }
721
+ &.error,
722
+ &.success,
723
+ &.info {
724
+ color: $grayDark;
725
+ text-shadow: 0 1px 0 rgba(255,255,255,.5);
726
+ }
727
+ &.error {
728
+ background-color: lighten(#f56a66, 25%);
729
+ border-color: lighten(#f56a66, 20%);
730
+ }
731
+ &.success {
732
+ background-color: lighten(#62c462, 30%);
733
+ border-color: lighten(#62c462, 25%);
734
+ }
735
+ &.info {
736
+ background-color: lighten(#6bd0ee, 25%);
737
+ border-color: lighten(#6bd0ee, 20%);
738
+ }
739
+ // Change link color back
740
+ &.danger p a,
741
+ &.error p a,
742
+ &.success p a,
743
+ &.info p a {
744
+ color: $grayDark;
745
+ }
746
+
747
+ }
748
+ }
749
+
750
+
751
+ // PAGINATION
752
+ // ----------
753
+
754
+ .pagination {
755
+ height: $baseline * 2;
756
+ margin: $baseline 0;
757
+ ul {
758
+ float: left;
759
+ margin: 0;
760
+ border: 1px solid #ddd;
761
+ border: 1px solid rgba(0,0,0,.15);
762
+ @include border-radius(3px);
763
+ @include box-shadow(0 1px 2px rgba(0,0,0,.05));
764
+ }
765
+ li {
766
+ display: inline;
767
+ }
768
+ a {
769
+ float: left;
770
+ padding: 0 14px;
771
+ line-height: ($baseline * 2) - 2;
772
+ border-right: 1px solid;
773
+ border-right-color: #ddd;
774
+ border-right-color: rgba(0,0,0,.15);
775
+ *border-right-color: #ddd; /* IE6-7 */
776
+ text-decoration: none;
777
+ }
778
+ a:hover,
779
+ .active a {
780
+ background-color: lighten($blue, 45%);
781
+ }
782
+ .disabled a,
783
+ .disabled a:hover {
784
+ background-color: transparent;
785
+ color: $grayLight;
786
+ }
787
+ .next a {
788
+ border: 0;
789
+ }
790
+ }
791
+
792
+
793
+ // WELLS
794
+ // -----
795
+
796
+ .well {
797
+ background-color: #f5f5f5;
798
+ margin-bottom: 20px;
799
+ padding: 19px;
800
+ min-height: 20px;
801
+ border: 1px solid #eee;
802
+ border: 1px solid rgba(0,0,0,.05);
803
+ @include border-radius(4px);
804
+ @include box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
805
+ blockquote {
806
+ border-color: #ddd;
807
+ border-color: rgba(0,0,0,.15);
808
+ }
809
+ }
810
+
811
+
812
+ // MODALS
813
+ // ------
814
+
815
+ .modal-backdrop {
816
+ background-color: $black;
817
+ position: fixed;
818
+ top: 0;
819
+ left: 0;
820
+ right: 0;
821
+ bottom: 0;
822
+ z-index: 10000;
823
+ // Fade for backdrop
824
+ &.fade { opacity: 0; }
825
+ }
826
+
827
+ .modal-backdrop,
828
+ .modal-backdrop.fade.in {
829
+ @include opacity(80);
830
+ }
831
+
832
+ .modal {
833
+ position: fixed;
834
+ top: 50%;
835
+ left: 50%;
836
+ z-index: 11000;
837
+ width: 560px;
838
+ margin: -250px 0 0 -280px;
839
+ background-color: $white;
840
+ border: 1px solid #999;
841
+ border: 1px solid rgba(0,0,0,.3);
842
+ *border: 1px solid #999; /* IE6-7 */
843
+ @include border-radius(6px);
844
+ @include box-shadow(0 3px 7px rgba(0,0,0,0.3));
845
+ @include background-clip(padding-box);
846
+ .close { margin-top: 7px; }
847
+ &.fade {
848
+ @include transition("opacity .3s linear, top .3s ease-out");
849
+ top: -25%;
850
+ }
851
+ &.fade.in{ top: 50%; }
852
+ }
853
+ .modal-header {
854
+ border-bottom: 1px solid #eee;
855
+ padding: 5px 15px;
856
+ }
857
+ .modal-body {
858
+ padding: 15px;
859
+ }
860
+ .modal-body form {
861
+ margin-bottom: 0;
862
+ }
863
+ .modal-footer {
864
+ background-color: #f5f5f5;
865
+ padding: 14px 15px 15px;
866
+ border-top: 1px solid #ddd;
867
+ @include border-radius(0 0 6px 6px);
868
+ @include box-shadow(inset 0 1px 0 $white);
869
+ @include clearfix();
870
+ margin-bottom: 0;
871
+ .btn {
872
+ float: right;
873
+ margin-left: 5px;
874
+ }
875
+ }
876
+
877
+ // Fix the stacking of these components when in modals
878
+ .modal .popover,
879
+ .modal .twipsy {
880
+ z-index: 12000;
881
+ }
882
+
883
+
884
+ // POPOVER ARROWS
885
+ // --------------
886
+
887
+
888
+ @mixin popover-arrow-above($arrowWidth: 5px) {
889
+ bottom: 0;
890
+ left: 50%;
891
+ margin-left: -$arrowWidth;
892
+ border-left: $arrowWidth solid transparent;
893
+ border-right: $arrowWidth solid transparent;
894
+ border-top: $arrowWidth solid $black;
895
+ }
896
+ @mixin popover-arrow-left($arrowWidth: 5px) {
897
+ top: 50%;
898
+ right: 0;
899
+ margin-top: -$arrowWidth;
900
+ border-top: $arrowWidth solid transparent;
901
+ border-bottom: $arrowWidth solid transparent;
902
+ border-left: $arrowWidth solid $black;
903
+ }
904
+ @mixin popover-arrow-below($arrowWidth: 5px) {
905
+ top: 0;
906
+ left: 50%;
907
+ margin-left: -$arrowWidth;
908
+ border-left: $arrowWidth solid transparent;
909
+ border-right: $arrowWidth solid transparent;
910
+ border-bottom: $arrowWidth solid $black;
911
+ }
912
+ @mixin popover-arrow-right($arrowWidth: 5px) {
913
+ top: 50%;
914
+ left: 0;
915
+ margin-top: -$arrowWidth;
916
+ border-top: $arrowWidth solid transparent;
917
+ border-bottom: $arrowWidth solid transparent;
918
+ border-right: $arrowWidth solid $black;
919
+ }
920
+
921
+
922
+ // TWIPSY
923
+ // ------
924
+
925
+ .twipsy {
926
+ display: block;
927
+ position: absolute;
928
+ visibility: visible;
929
+ padding: 5px;
930
+ font-size: 11px;
931
+ z-index: 1000;
932
+ @include opacity(80);
933
+ &.fade.in {
934
+ @include opacity(80);
935
+ }
936
+ &.above .twipsy-arrow { @include popover-arrow-above(); }
937
+ &.left .twipsy-arrow { @include popover-arrow-left(); }
938
+ &.below .twipsy-arrow { @include popover-arrow-below(); }
939
+ &.right .twipsy-arrow { @include popover-arrow-right(); }
940
+ }
941
+ .twipsy-inner {
942
+ padding: 3px 8px;
943
+ background-color: $black;
944
+ color: white;
945
+ text-align: center;
946
+ max-width: 200px;
947
+ text-decoration: none;
948
+ @include border-radius(4px);
949
+ }
950
+ .twipsy-arrow {
951
+ position: absolute;
952
+ width: 0;
953
+ height: 0;
954
+ }
955
+
956
+
957
+ // POPOVERS
958
+ // --------
959
+
960
+ .popover {
961
+ position: absolute;
962
+ top: 0;
963
+ left: 0;
964
+ z-index: 1000;
965
+ padding: 5px;
966
+ display: none;
967
+ &.above .arrow { @include popover-arrow-above(); }
968
+ &.right .arrow { @include popover-arrow-right(); }
969
+ &.below .arrow { @include popover-arrow-below(); }
970
+ &.left .arrow { @include popover-arrow-left(); }
971
+ .arrow {
972
+ position: absolute;
973
+ width: 0;
974
+ height: 0;
975
+ }
976
+ .inner {
977
+ background: $black;
978
+ background: rgba(0,0,0,.8);
979
+ padding: 3px;
980
+ overflow: hidden;
981
+ width: 280px;
982
+ @include border-radius(6px);
983
+ @include box-shadow(0 3px 7px rgba(0,0,0,0.3));
984
+ }
985
+ .title {
986
+ background-color: #f5f5f5;
987
+ padding: 9px 15px;
988
+ line-height: 1;
989
+ @include border-radius(3px 3px 0 0);
990
+ border-bottom:1px solid #eee;
991
+ }
992
+ .content {
993
+ background-color: $white;
994
+ padding: 14px;
995
+ @include border-radius(0 0 3px 3px);
996
+ @include background-clip(padding-box);
997
+ p, ul, ol {
998
+ margin-bottom: 0;
999
+ }
1000
+ }
1001
+ }
1002
+
1003
+ // PATTERN ANIMATIONS
1004
+ // ------------------
1005
+
1006
+ .fade {
1007
+ @include transition(opacity .15s linear);
1008
+ opacity: 0;
1009
+ &.in {
1010
+ opacity: 1;
1011
+ }
1012
+ }
1013
+
1014
+
1015
+ // LABELS
1016
+ // ------
1017
+
1018
+ .label {
1019
+ padding: 1px 3px 2px;
1020
+ font-size: $basefont * .75;
1021
+ font-weight: bold;
1022
+ color: $white;
1023
+ text-transform: uppercase;
1024
+ white-space: nowrap;
1025
+ background-color: $grayLight;
1026
+ @include border-radius(3px);
1027
+ &.important { background-color: #c43c35; }
1028
+ &.warning { background-color: $orange; }
1029
+ &.success { background-color: $green; }
1030
+ &.notice { background-color: lighten($blue, 25%); }
1031
+ }
1032
+
1033
+
1034
+ // MEDIA GRIDS
1035
+ // -----------
1036
+
1037
+ .media-grid {
1038
+ margin-left: -$gridGutterWidth;
1039
+ margin-bottom: 0;
1040
+ @include clearfix();
1041
+ li {
1042
+ display: inline;
1043
+ }
1044
+ a {
1045
+ float: left;
1046
+ padding: 4px;
1047
+ margin: 0 0 $baseline $gridGutterWidth;
1048
+ border: 1px solid #ddd;
1049
+ @include border-radius(4px);
1050
+ @include box-shadow(0 1px 1px rgba(0,0,0,.075));
1051
+ img {
1052
+ display: block;
1053
+ }
1054
+ &:hover {
1055
+ border-color: $linkColor;
1056
+ @include box-shadow(0 1px 4px rgba(0,105,214,.25));
1057
+ }
1058
+ }
1059
+ }
1060
+