compass-bootstrap 0.1.2 → 0.1.3

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