bootstrap-sass 1.3.2 → 1.4.0

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.

Potentially problematic release.


This version of bootstrap-sass might be problematic. Click here for more details.

data/README.md CHANGED
@@ -8,21 +8,14 @@ Enjoy.
8
8
 
9
9
  In your gemfile:
10
10
 
11
- gem 'bootstrap-sass', '1.3.0'
11
+ gem 'bootstrap-sass', '1.4.0'
12
12
 
13
13
  ### CSS
14
14
 
15
- In your CSS file of choice:
15
+ In your SCSS file of choice:
16
16
 
17
17
  @import "bootstrap"; /* Use this to get all of Bootstrap's @mixins and $variables */
18
18
 
19
- or
20
-
21
- /*
22
- *= require bootstrap // This doesn't (at the moment) preserve loaded @mixins,
23
- * //so I wouldn't use this. Stil, its an alternative.
24
- */
25
-
26
19
  ### Javascript
27
20
 
28
21
  In your Javascript manifest:
@@ -30,7 +23,7 @@ In your Javascript manifest:
30
23
  // Loads all Bootstrap javascripts
31
24
  //= require bootstrap
32
25
 
33
- // Alternatively, load individual modules
26
+ // Alternatively, you can load individual modules
34
27
  //= require bootstrap-scrollspy
35
28
  //= require bootstrap-modal
36
29
  //= require bootstrap-dropdown
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================
2
- * bootstrap-alerts.js v1.3.0
2
+ * bootstrap-alerts.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#alerts
4
4
  * ==========================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -20,6 +20,8 @@
20
20
 
21
21
  !function( $ ){
22
22
 
23
+ "use strict"
24
+
23
25
  /* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
24
26
  * ======================================================= */
25
27
 
@@ -38,11 +40,11 @@
38
40
  if ( $.support.transition ) {
39
41
  transitionEnd = "TransitionEnd"
40
42
  if ( $.browser.webkit ) {
41
- transitionEnd = "webkitTransitionEnd"
43
+ transitionEnd = "webkitTransitionEnd"
42
44
  } else if ( $.browser.mozilla ) {
43
- transitionEnd = "transitionend"
45
+ transitionEnd = "transitionend"
44
46
  } else if ( $.browser.opera ) {
45
- transitionEnd = "oTransitionEnd"
47
+ transitionEnd = "oTransitionEnd"
46
48
  }
47
49
  }
48
50
 
@@ -108,4 +110,4 @@
108
110
  })
109
111
  })
110
112
 
111
- }( window.jQuery || window.ender );
113
+ }( window.jQuery || window.ender );
@@ -0,0 +1,62 @@
1
+ /* ============================================================
2
+ * bootstrap-buttons.js v1.4.0
3
+ * http://twitter.github.com/bootstrap/javascript.html#dropdown
4
+ * ============================================================
5
+ * Copyright 2011 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ============================================================ */
19
+
20
+ !function( $ ){
21
+
22
+ "use strict"
23
+
24
+ function setState(el, state) {
25
+ var d = 'disabled'
26
+ , $el = $(el)
27
+ , data = $el.data()
28
+
29
+ state = state + 'Text'
30
+ data.resetText || $el.data('resetText', $el.html())
31
+
32
+ $el.html( data[state] || $.fn.button.defaults[state] )
33
+
34
+ state == 'loadingText' ?
35
+ $el.addClass(d).attr(d, d) :
36
+ $el.removeClass(d).removeAttr(d)
37
+ }
38
+
39
+ function toggle(el) {
40
+ $(el).toggleClass('active')
41
+ }
42
+
43
+ $.fn.button = function(options) {
44
+ return this.each(function () {
45
+ if (options == 'toggle') {
46
+ return toggle(this)
47
+ }
48
+ options && setState(this, options)
49
+ })
50
+ }
51
+
52
+ $.fn.button.defaults = {
53
+ loadingText: 'loading...'
54
+ }
55
+
56
+ $(function () {
57
+ $('body').delegate('.btn[data-toggle]', 'click', function () {
58
+ $(this).button('toggle')
59
+ })
60
+ })
61
+
62
+ }( window.jQuery || window.ender );
@@ -1,5 +1,5 @@
1
1
  /* ============================================================
2
- * bootstrap-dropdown.js v1.3.0
2
+ * bootstrap-dropdown.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#dropdown
4
4
  * ============================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -20,6 +20,8 @@
20
20
 
21
21
  !function( $ ){
22
22
 
23
+ "use strict"
24
+
23
25
  /* DROPDOWN PLUGIN DEFINITION
24
26
  * ========================== */
25
27
 
@@ -1,5 +1,5 @@
1
1
  /* =========================================================
2
- * bootstrap-modal.js v1.3.0
2
+ * bootstrap-modal.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#modal
4
4
  * =========================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -20,6 +20,8 @@
20
20
 
21
21
  !function( $ ){
22
22
 
23
+ "use strict"
24
+
23
25
  /* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
24
26
  * ======================================================= */
25
27
 
@@ -87,8 +89,7 @@
87
89
  that.$element[0].offsetWidth // force reflow
88
90
  }
89
91
 
90
- that.$element
91
- .addClass('in')
92
+ that.$element.addClass('in')
92
93
 
93
94
  transition ?
94
95
  that.$element.one(transitionEnd, function () { that.$element.trigger('shown') }) :
@@ -115,17 +116,9 @@
115
116
  .trigger('hide')
116
117
  .removeClass('in')
117
118
 
118
- function removeElement () {
119
- that.$element
120
- .hide()
121
- .trigger('hidden')
122
-
123
- backdrop.call(that)
124
- }
125
-
126
119
  $.support.transition && this.$element.hasClass('fade') ?
127
- this.$element.one(transitionEnd, removeElement) :
128
- removeElement()
120
+ hideWithTransition.call(this) :
121
+ hideModal.call(this)
129
122
 
130
123
  return this
131
124
  }
@@ -136,6 +129,28 @@
136
129
  /* MODAL PRIVATE METHODS
137
130
  * ===================== */
138
131
 
132
+ function hideWithTransition() {
133
+ // firefox drops transitionEnd events :{o
134
+ var that = this
135
+ , timeout = setTimeout(function () {
136
+ that.$element.unbind(transitionEnd)
137
+ hideModal.call(that)
138
+ }, 500)
139
+
140
+ this.$element.one(transitionEnd, function () {
141
+ clearTimeout(timeout)
142
+ hideModal.call(that)
143
+ })
144
+ }
145
+
146
+ function hideModal (that) {
147
+ this.$element
148
+ .hide()
149
+ .trigger('hidden')
150
+
151
+ backdrop.call(this)
152
+ }
153
+
139
154
  function backdrop ( callback ) {
140
155
  var that = this
141
156
  , animate = this.$element.hasClass('fade') ? 'fade' : ''
@@ -162,19 +177,20 @@
162
177
  } else if ( !this.isShown && this.$backdrop ) {
163
178
  this.$backdrop.removeClass('in')
164
179
 
165
- function removeElement() {
166
- that.$backdrop.remove()
167
- that.$backdrop = null
168
- }
169
-
170
180
  $.support.transition && this.$element.hasClass('fade')?
171
- this.$backdrop.one(transitionEnd, removeElement) :
172
- removeElement()
181
+ this.$backdrop.one(transitionEnd, $.proxy(removeBackdrop, this)) :
182
+ removeBackdrop.call(this)
183
+
173
184
  } else if ( callback ) {
174
185
  callback()
175
186
  }
176
187
  }
177
188
 
189
+ function removeBackdrop() {
190
+ this.$backdrop.remove()
191
+ this.$backdrop = null
192
+ }
193
+
178
194
  function escape() {
179
195
  var that = this
180
196
  if ( this.isShown && this.settings.keyboard ) {
@@ -1,5 +1,5 @@
1
1
  /* ===========================================================
2
- * bootstrap-popover.js v1.3.0
2
+ * bootstrap-popover.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#popover
4
4
  * ===========================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -20,6 +20,8 @@
20
20
 
21
21
  !function( $ ) {
22
22
 
23
+ "use strict"
24
+
23
25
  var Popover = function ( element, options ) {
24
26
  this.$element = $(element)
25
27
  this.options = options
@@ -39,13 +41,17 @@
39
41
  $tip[0].className = 'popover'
40
42
  }
41
43
 
44
+ , hasContent: function () {
45
+ return this.getTitle() || this.getContent()
46
+ }
47
+
42
48
  , getContent: function () {
43
49
  var content
44
50
  , $e = this.$element
45
51
  , o = this.options
46
52
 
47
53
  if (typeof this.options.content == 'string') {
48
- content = $e.attr(o.content)
54
+ content = this.options.content
49
55
  } else if (typeof this.options.content == 'function') {
50
56
  content = this.options.content.call(this.$element[0])
51
57
  }
@@ -55,7 +61,7 @@
55
61
  , tip: function() {
56
62
  if (!this.$tip) {
57
63
  this.$tip = $('<div class="popover" />')
58
- .html('<div class="arrow"></div><div class="inner"><h3 class="title"></h3><div class="content"><p></p></div></div>')
64
+ .html(this.options.template)
59
65
  }
60
66
  return this.$tip
61
67
  }
@@ -72,6 +78,9 @@
72
78
  return this
73
79
  }
74
80
 
75
- $.fn.popover.defaults = $.extend({} , $.fn.twipsy.defaults, { content: 'data-content', placement: 'right'})
81
+ $.fn.popover.defaults = $.extend({} , $.fn.twipsy.defaults, {
82
+ placement: 'right'
83
+ , template: '<div class="arrow"></div><div class="inner"><h3 class="title"></h3><div class="content"><p></p></div></div>'
84
+ })
76
85
 
77
- }( window.jQuery || window.ender );
86
+ }( window.jQuery || window.ender );
@@ -1,5 +1,5 @@
1
1
  /* =============================================================
2
- * bootstrap-scrollspy.js v1.3.0
2
+ * bootstrap-scrollspy.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#scrollspy
4
4
  * =============================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -20,6 +20,8 @@
20
20
 
21
21
  !function ( $ ) {
22
22
 
23
+ "use strict"
24
+
23
25
  var $window = $(window)
24
26
 
25
27
  function ScrollSpy( topbar, selector ) {
@@ -102,4 +104,4 @@
102
104
  $('body').scrollSpy('[data-scrollspy] li > a')
103
105
  })
104
106
 
105
- }( window.jQuery || window.ender );
107
+ }( window.jQuery || window.ender );
@@ -1,5 +1,5 @@
1
1
  /* ========================================================
2
- * bootstrap-tabs.js v1.3.0
2
+ * bootstrap-tabs.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#tabs
4
4
  * ========================================================
5
5
  * Copyright 2011 Twitter, Inc.
@@ -20,6 +20,8 @@
20
20
 
21
21
  !function( $ ){
22
22
 
23
+ "use strict"
24
+
23
25
  function activate ( element, container ) {
24
26
  container
25
27
  .find('> .active')
@@ -39,6 +41,7 @@
39
41
  , $ul = $this.closest('ul:not(.dropdown-menu)')
40
42
  , href = $this.attr('href')
41
43
  , previous
44
+ , $href
42
45
 
43
46
  if ( /^#\w+/.test(href) ) {
44
47
  e.preventDefault()
@@ -1,5 +1,5 @@
1
1
  /* ==========================================================
2
- * bootstrap-twipsy.js v1.3.0
2
+ * bootstrap-twipsy.js v1.4.0
3
3
  * http://twitter.github.com/bootstrap/javascript.html#twipsy
4
4
  * Adapted from the original jQuery.tipsy by Jason Frame
5
5
  * ==========================================================
@@ -21,6 +21,8 @@
21
21
 
22
22
  !function( $ ) {
23
23
 
24
+ "use strict"
25
+
24
26
  /* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
25
27
  * ======================================================= */
26
28
 
@@ -70,7 +72,7 @@
70
72
  , $tip
71
73
  , tp
72
74
 
73
- if (this.getTitle() && this.enabled) {
75
+ if (this.hasContent() && this.enabled) {
74
76
  $tip = this.tip()
75
77
  this.setContent()
76
78
 
@@ -143,6 +145,10 @@
143
145
  }
144
146
  }
145
147
 
148
+ , hasContent: function () {
149
+ return this.getTitle()
150
+ }
151
+
146
152
  , getTitle: function() {
147
153
  var title
148
154
  , $e = this.$element
@@ -163,7 +169,7 @@
163
169
 
164
170
  , tip: function() {
165
171
  if (!this.$tip) {
166
- this.$tip = $('<div class="twipsy" />').html('<div class="twipsy-arrow"></div><div class="twipsy-inner"></div>')
172
+ this.$tip = $('<div class="twipsy" />').html(this.options.template)
167
173
  }
168
174
  return this.$tip
169
175
  }
@@ -294,10 +300,11 @@
294
300
  , offset: 0
295
301
  , title: 'title'
296
302
  , trigger: 'hover'
303
+ , template: '<div class="twipsy-arrow"></div><div class="twipsy-inner"></div>'
297
304
  }
298
305
 
299
306
  $.fn.twipsy.elementOptions = function(ele, options) {
300
- return $.metadata ? $.extend({}, options, $(ele).metadata()) : options
307
+ return $.extend({}, options, $(ele).data())
301
308
  }
302
309
 
303
- }( window.jQuery || window.ender );
310
+ }( window.jQuery || window.ender );
@@ -1,4 +1,5 @@
1
1
  //= require bootstrap-modal
2
+ //= require bootstrap-buttons
2
3
  //= require bootstrap-dropdown
3
4
  //= require bootstrap-scrollspy
4
5
  //= require bootstrap-tabs
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v1.3.0
2
+ * Bootstrap v1.4.0
3
3
  *
4
4
  * Copyright 2011 Twitter, Inc
5
5
  * Licensed under the Apache License v2.0
@@ -8,7 +8,7 @@
8
8
  * Designed and built with all the love in the world @twitter by @mdo and @fat.
9
9
  * Converted to SASS by Thomas McDonald
10
10
  *
11
- * Date: Fri Sep 16 11:24:41 PDT 2011
11
+ * Date: Friday 4 November, 2011
12
12
  */
13
13
 
14
14
  @import "bootstrap/reset";
@@ -69,7 +69,12 @@ input, textarea, select, .uneditable-input {
69
69
  @include border-radius(3px);
70
70
  }
71
71
 
72
- /* mini reset for non-html5 file types */
72
+ // remove padding from select
73
+ select {
74
+ padding: initial;
75
+ }
76
+
77
+ // mini reset for non-html5 file types
73
78
  input[type=checkbox], input[type=radio] {
74
79
  width: auto;
75
80
  height: auto;
@@ -95,6 +100,7 @@ input[type=button], input[type=reset], input[type=submit] {
95
100
 
96
101
  select, input[type=file] {
97
102
  height: $baseline * 1.5; // In IE7, the height of the select element cannot be changed by height, only font-size
103
+ height: auto; // reset for IE7. bah.
98
104
  line-height: $baseline * 1.5;
99
105
  *margin-top: 4px; /* For IE7, add top margin to align select with labels */
100
106
  }
@@ -102,6 +108,7 @@ select, input[type=file] {
102
108
  // Make multiple select elements height not fixed
103
109
  select[multiple] {
104
110
  height: inherit;
111
+ background-color: $white; // Fixes Chromium bug of unreadable items
105
112
  }
106
113
 
107
114
  textarea {
@@ -142,32 +149,40 @@ input[type=file]:focus, input[type=checkbox]:focus, select:focus {
142
149
  outline: 1px dotted #666; // Selet elements don't get box-shadow styles, so instead we do outline
143
150
  }
144
151
 
145
- // Error styles
146
- form div.clearfix.error {
147
- background: lighten($red, 57%);
148
- padding: 10px 0;
149
- margin: -10px 0 10px;
150
- @include border-radius(4px);
151
- $error-text: desaturate(lighten($red, 25%), 25%);
152
- > label, span.help-inline, span.help-block {
153
- color: $red;
152
+ // FORM FIELD FEEDBACK STATES
153
+ // --------------------------
154
+ @mixin formFieldState($textColor: #555, $borderColor: #ccc, $backgroundColor: #f5f5f5) {
155
+ // Set the text color
156
+ > label, .help-block, .help-inline {
157
+ color: $textColor;
154
158
  }
155
159
  input, textarea {
156
- border-color: $error-text;
157
- @include box-shadow(0 0 3px rgba(171,41,32,.25));
160
+ color: $textColor;
161
+ border-color: $borderColor;
158
162
  &:focus {
159
- border-color: darken($error-text, 10%);
160
- @include box-shadow(0 0 6px rgba(171,41,32,.5));
163
+ border-color: darken($borderColor, 10%);
164
+ @include box-shadow(0 0 6px lighten($borderColor, 10%));
161
165
  }
162
166
  }
163
- .input-prepend, .input-append {
164
- span.add-on {
165
- background: lighten($red, 50%);
166
- border-color: $error-text;
167
- color: darken($error-text, 10%);
168
- }
167
+ // Give a small background color for input-prepend/-append
168
+ .input-prepend .add-on, .input-append .add-on {
169
+ color: $textColor;
170
+ background-color: $backgroundColor;
171
+ border-color: $borderColor;
169
172
  }
170
173
  }
174
+ // Error
175
+ form .clearfix.error {
176
+ @include formFieldState(#b94a48, #ee5f5b, lighten(#ee5f5b, 30%));
177
+ }
178
+ // Warning
179
+ form .clearfix.warning {
180
+ @include formFieldState(#c09853, #ccae64, lighten(#ccae64, 5%));
181
+ }
182
+ // Success
183
+ form .clearfix.success {
184
+ @include formFieldState(#468847, #57a957, lighten(#57a957, 30%));
185
+ }
171
186
 
172
187
  // Form element sizes
173
188
  // TODO v2: remove duplication here and just stick to .input-[size] in light of adding .spanN sizes
@@ -198,10 +213,10 @@ textarea.xxlarge {
198
213
  @mixin formColumns($columnSpan: 1) {
199
214
  display: inline-block;
200
215
  float: none;
201
- width: (($gridColumnWidth - 10) * $columnSpan) + (($gridColumnWidth - 10) * ($columnSpan - 1));
216
+ width: ($gridColumnWidth * $columnSpan) + ($gridGutterWidth * ($columnSpan - 1)) - 10;
202
217
  margin-left: 0;
203
218
  }
204
- input, textarea, select {
219
+ input, textarea {
205
220
  // Default columns
206
221
  &.span1 { @include formColumns(1); }
207
222
  &.span2 { @include formColumns(2); }
@@ -249,7 +264,7 @@ input[disabled], select[disabled], textarea[disabled], input[readonly], select[r
249
264
 
250
265
  // Help Text
251
266
  .help-inline, .help-block {
252
- font-size: $basefont - 2;
267
+ font-size: $basefont;
253
268
  line-height: $baseline;
254
269
  color: $grayLight;
255
270
  }
@@ -268,15 +283,6 @@ input[disabled], select[disabled], textarea[disabled], input[readonly], select[r
268
283
  // Inline Fields (input fields that appear as inline objects
269
284
  .inline-inputs {
270
285
  color: $gray;
271
- span, input {
272
- display: inline-block;
273
- }
274
- input.mini {
275
- width: 60px;
276
- }
277
- input.small {
278
- width: 90px;
279
- }
280
286
  span {
281
287
  padding: 0 2px 0 1px;
282
288
  }
@@ -342,6 +348,7 @@ input[disabled], select[disabled], textarea[disabled], input[readonly], select[r
342
348
  float: none;
343
349
  width: auto;
344
350
  padding: 0;
351
+ margin-left: 20px;
345
352
  line-height: $baseline;
346
353
  text-align: left;
347
354
  white-space: normal;
@@ -366,6 +373,8 @@ input[disabled], select[disabled], textarea[disabled], input[readonly], select[r
366
373
  }
367
374
  input[type=radio], input[type=checkbox] {
368
375
  margin-bottom: 0;
376
+ margin-left: -20px;
377
+ float: left;
369
378
  }
370
379
  }
371
380
 
@@ -11,7 +11,6 @@
11
11
  display: table;
12
12
  content: "";
13
13
  zoom: 1;
14
- *display: inline;
15
14
  }
16
15
  &:after {
17
16
  clear: both;
@@ -110,7 +109,7 @@
110
109
 
111
110
  // Transitions
112
111
  @mixin transition($transition) {
113
- -webkit-transition: $transition;
112
+ -webkit-transition: $transition;
114
113
  -moz-transition: $transition;
115
114
  -ms-transition: $transition;
116
115
  -o-transition: $transition;
@@ -134,6 +133,11 @@
134
133
  column-gap: $columnGap;
135
134
  }
136
135
 
136
+ @mixin resizable($direction: both) {
137
+ resize: $direction; // Options are horizontal, vertical, both
138
+ overflow: auto; // Safari fix
139
+ }
140
+
137
141
  // Add an alphatransparency value to any background or border color (via Elyse Holladay)
138
142
  @mixin background-translucent($color: $white, $alpha: 1) {
139
143
  background-color: hsla(hue($color), saturation($color), lightness($color), $alpha);
@@ -24,7 +24,7 @@
24
24
 
25
25
  // Hover and active states
26
26
  // h3 for backwards compatibility
27
- h3 a:hover, .brand a:hover, ul .active > a {
27
+ h3 a:hover, .brand:hover, ul .active > a {
28
28
  background-color: #333;
29
29
  background-color: rgba(255,255,255,.05);
30
30
  color: $white;
@@ -272,7 +272,7 @@ a.menu:after, .dropdown-toggle:after {
272
272
  color: $gray;
273
273
  text-shadow: 0 1px 0 $white;
274
274
  // Hover state
275
- &:hover {
275
+ &:hover, &.hover {
276
276
  @include vertical-gradient(#eeeeee, #dddddd);
277
277
  color: $grayDark;
278
278
  text-decoration: none;
@@ -297,9 +297,12 @@ a.menu:after, .dropdown-toggle:after {
297
297
  }
298
298
  }
299
299
 
300
- // Tabs and Pills
300
+ // TABS AND PILLS
301
+ // --------------
302
+
303
+ // Common styles
301
304
  .tabs, .pills {
302
- margin: 0 0 20px;
305
+ margin: 0 0 $baseline;
303
306
  padding: 0;
304
307
  list-style: none;
305
308
  @include clearfix();
@@ -311,18 +314,18 @@ a.menu:after, .dropdown-toggle:after {
311
314
  }
312
315
  }
313
316
 
314
- // Basic Tabs
317
+ // Tabs
315
318
  .tabs {
316
- float: left;
317
- width: 100%;
318
- border-bottom: 1px solid #ddd;
319
+ border-color: #ddd;
320
+ border-style: solid;
321
+ border-width: 0 0 1px;
319
322
  > li {
320
323
  position: relative; // For the dropdowns mostly
321
- top: 1px;
324
+ margin-bottom: -1px;
322
325
  > a {
323
326
  padding: 0 15px;
324
327
  margin-right: 2px;
325
- line-height: $baseline * 2;
328
+ line-height: ($baseline * 2) - 2;
326
329
  border: 1px solid transparent;
327
330
  @include border-radius(4px 4px 0 0);
328
331
  &:hover {
@@ -331,13 +334,18 @@ a.menu:after, .dropdown-toggle:after {
331
334
  border-color: #eee #eee #ddd;
332
335
  }
333
336
  }
334
- &.active > a {
335
- color: $gray;
336
- background-color: $white;
337
- border: 1px solid #ddd;
338
- border-bottom-color: transparent;
339
- }
340
337
  }
338
+ .active > a, .active > a:hover {
339
+ color: $gray;
340
+ background-color: $white;
341
+ border: 1px solid #ddd;
342
+ border-bottom-color: transparent;
343
+ cursor: default;
344
+ }
345
+ }
346
+
347
+ // Dropdowns in tabs
348
+ .tabs {
341
349
  // first one for backwards compatibility
342
350
  .menu-dropdown, .dropdown-menu {
343
351
  top: 35px;
@@ -359,46 +367,50 @@ a.menu:after, .dropdown-toggle:after {
359
367
  border-top-color: #555;
360
368
  }
361
369
  }
362
- .tab-content {
363
- clear: both;
364
- }
365
370
 
366
- // Basic pill nav
371
+ // Pills
367
372
  .pills {
368
373
  a {
369
- margin: 5px 3px 5px 0;
374
+ margin: 5px 3px 5px 0;
370
375
  padding: 0 15px;
371
- text-shadow: 0 1px 1px $white;
372
376
  line-height: 30px;
377
+ text-shadow: 0 1px 1px $white;
373
378
  @include border-radius(15px);
374
379
  &:hover {
375
- background: $linkColorHover;
376
380
  color: $white;
377
381
  text-decoration: none;
378
382
  text-shadow: 0 1px 1px rgba(0,0,0,.25);
383
+ background-color: $linkColorHover;
379
384
  }
380
385
  }
381
386
  .active a {
382
- background: $linkColor;
383
387
  color: $white;
384
388
  text-shadow: 0 1px 1px rgba(0,0,0,.25);
389
+ background-color: $linkColor;
385
390
  }
386
391
  }
387
392
 
388
- .tab-content > *, .pill-content > * {
389
- display: none;
393
+ // Stacked pills
394
+ .pills-vertical > li {
395
+ float: none;
390
396
  }
391
397
 
398
+ // Tabbable areas
399
+ .tab-content, .pill-content {
400
+ }
401
+ .tab-content > .tab-pane, .pill-content > .pill-pane {
402
+ display: none;
403
+ }
392
404
  .tab-content > .active, .pill-content > .active {
393
- display:block;
405
+ display: block;
394
406
  }
395
407
 
396
408
  // BREADCRUMBS
397
409
  // -----------
398
410
 
399
411
  .breadcrumb {
400
- margin: 0 0 $baseline;
401
412
  padding: 7px 14px;
413
+ margin: 0 0 $baseline;
402
414
  @include vertical-gradient(#ffffff, #f5f5f5);
403
415
  border: 1px solid #ddd;
404
416
  @include border-radius(3px);
@@ -411,8 +423,6 @@ a.menu:after, .dropdown-toggle:after {
411
423
  padding: 0 5px;
412
424
  color: $grayLight;
413
425
  }
414
- a {
415
- }
416
426
  .active a {
417
427
  color: $grayDark;
418
428
  }
@@ -468,6 +478,11 @@ footer {
468
478
  &.danger, &.danger:hover, &.error, &.error:hover, &.success, &.success:hover, &.info, &.info:hover {
469
479
  color: $white
470
480
  }
481
+ // Sets the close button to the middle of message
482
+ .close {
483
+ font-family: Arial, sans-serif;
484
+ line-height: 18px;
485
+ }
471
486
  // Danger and error appear as red
472
487
  &.danger, &.error {
473
488
  @include gradientBar(#ee5f5b, #c43c35);
@@ -520,7 +535,7 @@ footer {
520
535
  @include transition(.1s linear all);
521
536
 
522
537
  // Active and Disabled states
523
- &:active {
538
+ &:active, &.active {
524
539
  $shadow: inset 0 2px 4px rgba(0,0,0,.25), 0 1px 2px rgba(0,0,0,.05);
525
540
  @include box-shadow($shadow);
526
541
  }
@@ -576,7 +591,7 @@ button.btn, input[type=submit].btn {
576
591
  font-weight: bold;
577
592
  line-height: $baseline * .75;
578
593
  text-shadow: 0 1px 0 rgba(255,255,255,1);
579
- @include opacity(20);
594
+ @include opacity(25);
580
595
  &:hover {
581
596
  color: $black;
582
597
  text-decoration: none;
@@ -603,7 +618,17 @@ button.btn, input[type=submit].btn {
603
618
 
604
619
  // Adjust close icon
605
620
  .close {
606
- *margin-top: 3px; /* IE7 spacing */
621
+ margin-top: 1px;
622
+ *margin-top: 0; // IE7.
623
+ }
624
+
625
+ // Make links same color as text and stand out more
626
+ a {
627
+ font-weight: bold;
628
+ color: $grayDark;
629
+ }
630
+ &.danger p a, &.error p a, &.success p a, &.info p a {
631
+ color: $grayDark;
607
632
  }
608
633
 
609
634
  // Remove extra margin from content
@@ -746,7 +771,7 @@ button.btn, input[type=submit].btn {
746
771
  left: 50%;
747
772
  z-index: 11000;
748
773
  width: 560px;
749
- margin: -250px 0 0 -250px;
774
+ margin: -250px 0 0 -280px;
750
775
  background-color: $white;
751
776
  border: 1px solid #999;
752
777
  border: 1px solid rgba(0,0,0,.3);
@@ -769,6 +794,9 @@ button.btn, input[type=submit].btn {
769
794
  .modal-body {
770
795
  padding: 15px;
771
796
  }
797
+ .modal-body form {
798
+ margin-bottom: 0;
799
+ }
772
800
  .modal-footer {
773
801
  background-color: #f5f5f5;
774
802
  padding: 14px 15px 15px;
@@ -783,6 +811,10 @@ button.btn, input[type=submit].btn {
783
811
  }
784
812
  }
785
813
 
814
+ // Fix the stacking of these components when in modals
815
+ .modal .popover, .modal .twipsy {
816
+ z-index: 12000;
817
+ }
786
818
 
787
819
  // POPOVER ARROWS
788
820
  // --------------
@@ -875,8 +907,8 @@ button.btn, input[type=submit].btn {
875
907
  height: 0;
876
908
  }
877
909
  .inner {
878
- background-color: $black;
879
- background-color: rgba(0,0,0,.8);
910
+ background: $black;
911
+ background: rgba(0,0,0,.8);
880
912
  padding: 3px;
881
913
  overflow: hidden;
882
914
  width: 280px;
@@ -918,11 +950,12 @@ button.btn, input[type=submit].btn {
918
950
 
919
951
  .label {
920
952
  padding: 1px 3px 2px;
921
- background-color: $grayLight;
922
953
  font-size: $basefont * .75;
923
954
  font-weight: bold;
924
955
  color: $white;
925
956
  text-transform: uppercase;
957
+ white-space: nowrap;
958
+ background-color: $grayLight;
926
959
  @include border-radius(3px);
927
960
  &.important { background-color: #c43c35; }
928
961
  &.warning { background-color: $orange; }
@@ -935,7 +968,7 @@ button.btn, input[type=submit].btn {
935
968
  // -----------
936
969
 
937
970
  .media-grid {
938
- margin-left: -20px;
971
+ margin-left: -$gridGutterWidth;
939
972
  margin-bottom: 0;
940
973
  @include clearfix();
941
974
  li {
@@ -944,7 +977,7 @@ button.btn, input[type=submit].btn {
944
977
  a {
945
978
  float: left;
946
979
  padding: 4px;
947
- margin: 0 0 20px 20px;
980
+ margin: 0 0 $baseline $gridGutterWidth;
948
981
  border: 1px solid #ddd;
949
982
  @include border-radius(4px);
950
983
  @include box-shadow(0 1px 1px rgba(0,0,0,.075));
@@ -7,10 +7,8 @@
7
7
  // STRUCTURAL LAYOUT
8
8
  // -----------------
9
9
 
10
- html, body {
11
- background-color: $white;
12
- }
13
10
  body {
11
+ background-color: $white;
14
12
  margin: 0;
15
13
  @include sans-serif-font(normal,$basefont,$baseline);
16
14
  color: $grayDark;
@@ -24,31 +22,22 @@ body {
24
22
  // Fluid layouts (left aligned, with sidebar, min- & max-width content)
25
23
  .container-fluid {
26
24
  position: relative;
25
+ min-width: 940px;
27
26
  padding-left: 20px;
28
27
  padding-right: 20px;
29
28
  @include clearfix();
30
29
  > .sidebar {
31
- float: left;
30
+ position: absolute;
31
+ top: 0;
32
+ left: 20px;
32
33
  width: 220px;
33
34
  }
34
35
  // TODO in v2: rename this and .popover .content to be more specific
35
36
  > .content {
36
- float: left;
37
- min-width: 700px;
38
- max-width: 1180px;
39
- margin-left: 20px;
37
+ margin-left: 240px;
40
38
  }
41
39
  }
42
40
 
43
- // Toggling content
44
- .hide {
45
- display: none;
46
- }
47
- .show {
48
- display: block;
49
- }
50
-
51
-
52
41
  // BASE STYLES
53
42
  // -----------
54
43
 
@@ -65,13 +54,12 @@ a {
65
54
  }
66
55
 
67
56
  // Quick floats
68
- .pull-right {
69
- float: right;
70
- }
71
- .pull-left {
72
- float: left;
73
- }
57
+ .pull-right { float: right; }
58
+ .pull-left { float: left; }
74
59
 
60
+ // Toggling content
61
+ .hide { display: none; }
62
+ .show { display: block; }
75
63
 
76
64
  // GRID SYSTEM
77
65
  // -----------
@@ -79,12 +67,12 @@ a {
79
67
 
80
68
  .row {
81
69
  @include clearfix();
82
- margin-left: -1 * $gridGutterWidth;
70
+ margin-left: -$gridGutterWidth;
83
71
  }
84
72
 
85
73
  // Find all .span# classes within .row and give them the necessary properties for grid columns (supported by all browsers back to IE7)
86
74
  // Credit to @dhg for the idea
87
- [class*="span"] {
75
+ .row > [class*="span"] {
88
76
  @include gridColumn();
89
77
  }
90
78
 
@@ -117,18 +105,20 @@ a {
117
105
  .span24 { @include columns(24); }
118
106
 
119
107
  // Offset column options
120
- .offset1 { @include offset(1); }
121
- .offset2 { @include offset(2); }
122
- .offset3 { @include offset(3); }
123
- .offset4 { @include offset(4); }
124
- .offset5 { @include offset(5); }
125
- .offset6 { @include offset(6); }
126
- .offset7 { @include offset(7); }
127
- .offset8 { @include offset(8); }
128
- .offset9 { @include offset(9); }
129
- .offset10 { @include offset(10); }
130
- .offset11 { @include offset(11); }
131
- .offset12 { @include offset(12); }
108
+ .row {
109
+ & > .offset1 { @include offset(1); }
110
+ & > .offset2 { @include offset(2); }
111
+ & > .offset3 { @include offset(3); }
112
+ & > .offset4 { @include offset(4); }
113
+ & > .offset5 { @include offset(5); }
114
+ & > .offset6 { @include offset(6); }
115
+ & > .offset7 { @include offset(7); }
116
+ & > .offset8 { @include offset(8); }
117
+ & > .offset9 { @include offset(9); }
118
+ & > .offset10 { @include offset(10); }
119
+ & > .offset11 { @include offset(11); }
120
+ & > .offset12 { @include offset(12); }
121
+ }
132
122
 
133
123
  // Unique column sizes for 16-column grid
134
124
  .span-one-third { width: 300px; }
@@ -11,11 +11,8 @@ table {
11
11
  width: 100%;
12
12
  margin-bottom: $baseline;
13
13
  padding: 0;
14
- border-collapse: separate; // Done so we can round those corners!
15
- *border-collapse: collapse; /* IE7, collapse table to remove spacing */
16
14
  font-size: $basefont;
17
- border: 1px solid #ddd;
18
- @include border-radius(4px);
15
+ border-collapse: collapse;
19
16
  th, td {
20
17
  padding: 10px 10px 9px;
21
18
  line-height: $baseline;
@@ -25,22 +22,38 @@ table {
25
22
  padding-top: 9px;
26
23
  font-weight: bold;
27
24
  vertical-align: middle;
28
- border-bottom: 1px solid #ddd;
29
25
  }
30
26
  td {
31
27
  vertical-align: top;
28
+ border-top: 1px solid #ddd;
32
29
  }
33
- th + th,
34
- td + td {
35
- border-left: 1px solid #ddd;
36
- }
37
- tr + tr td {
30
+ // When scoped to row, fix th in body
31
+ tbody th {
38
32
  border-top: 1px solid #ddd;
33
+ vertical-align: top;
39
34
  }
40
- tbody tr:first-child td:first-child {
35
+ }
36
+
37
+ // Condensed table
38
+ .condensed-table {
39
+ .th, .td {
40
+ padding: 5px 5px 4px;
41
+ }
42
+ }
43
+
44
+ // Bordered table
45
+ .bordered-table {
46
+ border: 1px solid #ddd;
47
+ border-collapse: separate; // For rounded corners
48
+ *border-collapse: collapse; // IE7, Y U NO STANDARD
49
+ @include border-radius(4px);
50
+ th + th, td + td, th + td {
51
+ border-left: 1px solid #ddd;
52
+ }
53
+ thead tr:first-child th:first-child, tbody tr:first-child td:first-child {
41
54
  @include border-radius(4px 0 0 0);
42
55
  }
43
- tbody tr:first-child td:last-child {
56
+ thead tr:first-child th:last-child, tbody tr:first-child td:last-child {
44
57
  @include border-radius(0 4px 0 0);
45
58
  }
46
59
  tbody tr:last-child td:first-child {
@@ -51,6 +64,33 @@ table {
51
64
  }
52
65
  }
53
66
 
67
+ // TABLE CELL SIZES
68
+ // ----------------
69
+
70
+ // This is a duplication of the main grid .columns() mixin, but subtracts 20px to account for padding and border
71
+ @mixin tableColumns($columnSpan: 1) {
72
+ width: (($gridColumnWidth - 20) * $columnSpan) + (($gridColumnWidth - 20) * ($columnSpan - 1));
73
+ }
74
+
75
+ table {
76
+ // Default columns
77
+ .span1 { @include tableColumns(1); }
78
+ .span2 { @include tableColumns(2); }
79
+ .span3 { @include tableColumns(3); }
80
+ .span4 { @include tableColumns(4); }
81
+ .span5 { @include tableColumns(5); }
82
+ .span6 { @include tableColumns(6); }
83
+ .span7 { @include tableColumns(7); }
84
+ .span8 { @include tableColumns(8); }
85
+ .span9 { @include tableColumns(9); }
86
+ .span10 { @include tableColumns(10); }
87
+ .span11 { @include tableColumns(11); }
88
+ .span12 { @include tableColumns(12); }
89
+ .span13 { @include tableColumns(13); }
90
+ .span14 { @include tableColumns(14); }
91
+ .span15 { @include tableColumns(15); }
92
+ .span16 { @include tableColumns(16); }
93
+ }
54
94
 
55
95
  // ZEBRA-STRIPING
56
96
  // --------------
@@ -58,14 +98,16 @@ table {
58
98
  // Default zebra-stripe styles (alternating gray and transparent backgrounds)
59
99
  .zebra-striped {
60
100
  tbody {
61
- tr:nth-child(odd) td {
101
+ tr:nth-child(odd) td, tr:nth-child(odd) th {
62
102
  background-color: #f9f9f9;
63
103
  }
64
- tr:hover td {
104
+ tr:hover td, tr:hover th {
65
105
  background-color: #f5f5f5;
66
106
  }
67
107
  }
108
+ }
68
109
 
110
+ table {
69
111
  // Tablesorting styles w/ jQuery plugin
70
112
  .header {
71
113
  cursor: pointer;
@@ -111,9 +153,6 @@ table {
111
153
  @include opacity(60);
112
154
  }
113
155
  }
114
- }
115
-
116
- table {
117
156
  // Blue Table Headings
118
157
  .blue {
119
158
  color: $blue;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bootstrap-sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-22 00:00:00.000000000Z
12
+ date: 2011-11-04 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sass-rails
16
- requirement: &70332401141760 !ruby/object:Gem::Requirement
16
+ requirement: &70249967724180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70332401141760
24
+ version_requirements: *70249967724180
25
25
  description:
26
26
  email: tom@conceptcoding.co.uk
27
27
  executables: []
@@ -38,6 +38,7 @@ files:
38
38
  - vendor/assets/stylesheets/bootstrap/variables.css.scss
39
39
  - vendor/assets/stylesheets/bootstrap.css.scss
40
40
  - vendor/assets/javascripts/bootstrap-alerts.js
41
+ - vendor/assets/javascripts/bootstrap-buttons.js
41
42
  - vendor/assets/javascripts/bootstrap-dropdown.js
42
43
  - vendor/assets/javascripts/bootstrap-modal.js
43
44
  - vendor/assets/javascripts/bootstrap-popover.js