From 41c782567775d3bbcfc62d163ae22a531277b5e2 Mon Sep 17 00:00:00 2001 From: Ivan Khalopik Date: Fri, 29 Mar 2013 17:55:14 +0300 Subject: [PATCH 001/128] Fixes #7213 Collapse plugin does not correctly set the "collapsed" class on accordion heading links --- js/bootstrap-collapse.js | 6 +++++ js/tests/unit/bootstrap-collapse.js | 35 +++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/js/bootstrap-collapse.js b/js/bootstrap-collapse.js index 2730a48d45..813462a24e 100644 --- a/js/bootstrap-collapse.js +++ b/js/bootstrap-collapse.js @@ -160,6 +160,12 @@ || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 , option = $(target).data('collapse') ? 'toggle' : $this.data() + , parent = $this.attr('data-parent') + , $parent = parent && $(parent) + + if ($parent) { + $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed') + } $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') $(target).collapse(option) }) diff --git a/js/tests/unit/bootstrap-collapse.js b/js/tests/unit/bootstrap-collapse.js index 4c5916ecd9..dbbf5dcf1f 100644 --- a/js/tests/unit/bootstrap-collapse.js +++ b/js/tests/unit/bootstrap-collapse.js @@ -91,4 +91,39 @@ $(function () { target.click() }) + test("should remove active class from inactive accordion targets", function () { + $.support.transition = false + stop() + + var accordion = $('
') + .appendTo($('#qunit-fixture')) + + var target1 = $('') + .appendTo(accordion.find('.accordion-group').eq(0)) + + var collapsible1 = $('
') + .appendTo(accordion.find('.accordion-group').eq(0)) + + var target2 = $('') + .appendTo(accordion.find('.accordion-group').eq(1)) + + var collapsible2 = $('
') + .appendTo(accordion.find('.accordion-group').eq(1)) + + var target3 = $('') + .appendTo(accordion.find('.accordion-group').eq(2)) + + var collapsible3 = $('
') + .appendTo(accordion.find('.accordion-group').eq(2)) + .on('show', function () { + ok(target1.hasClass('collapsed')) + ok(target2.hasClass('collapsed')) + ok(!target3.hasClass('collapsed')) + + start() + }) + + target3.click() + }) + }) \ No newline at end of file From 33b5c32c8cc5713fd446af5ddd8c86cff46b9710 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C5=A0kr=C3=A1=C5=A1ek?= Date: Sun, 26 May 2013 18:14:25 +0200 Subject: [PATCH 002/128] Fixed mixin btn-pseudo-state background for [disabled] buttons --- less/mixins.less | 1 + 1 file changed, 1 insertion(+) diff --git a/less/mixins.less b/less/mixins.less index b54b05c4ee..02040ac659 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -366,6 +366,7 @@ &.disabled, &[disabled], fieldset[disabled] & { + &, &:hover, &:focus, &:active, From b0d202455d9d604050768b512ff96d3b65329867 Mon Sep 17 00:00:00 2001 From: Edgar Schnueriger Date: Mon, 17 Jun 2013 18:56:17 +0200 Subject: [PATCH 003/128] Fixes broken layout for .input-group-addons within .input-large. Follows 6ce154c7ed64f3821cc7d6cbb0bfcf65b25f1b49 --- less/forms.less | 1 + less/variables.less | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/less/forms.less b/less/forms.less index 10a315da6a..fd44308b9f 100644 --- a/less/forms.less +++ b/less/forms.less @@ -227,6 +227,7 @@ input[type="search"], input[type="tel"], input[type="color"] { &.input-large { + min-height: @input-height-large; padding: @padding-large-vertical @padding-large-horizontal; font-size: @font-size-large; border-radius: @border-radius-large; diff --git a/less/variables.less b/less/variables.less index 765dff6a0c..ab0136d211 100644 --- a/less/variables.less +++ b/less/variables.less @@ -128,7 +128,7 @@ @input-color-placeholder: @gray-light; @input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); -@input-height-large: (@line-height-computed + (@padding-large-vertical * 2) + 2); +@input-height-large: (@line-height-computed + (@padding-large-vertical * 2) + 8); @input-height-small: (@line-height-computed + (@padding-small-vertical * 2) + 2); From 6a79f53899b0d1e02d41252d0753116b3a121cd0 Mon Sep 17 00:00:00 2001 From: Edgar Schnueriger Date: Tue, 18 Jun 2013 21:43:34 +0200 Subject: [PATCH 004/128] Use correct font-size to calculate input-heights --- less/variables.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/less/variables.less b/less/variables.less index ab0136d211..21f2837115 100644 --- a/less/variables.less +++ b/less/variables.less @@ -128,8 +128,8 @@ @input-color-placeholder: @gray-light; @input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); -@input-height-large: (@line-height-computed + (@padding-large-vertical * 2) + 8); -@input-height-small: (@line-height-computed + (@padding-small-vertical * 2) + 2); +@input-height-large: (ceil(@font-size-large * @line-height-base) + (@padding-large-vertical * 2) + 2); +@input-height-small: (ceil(@font-size-small * @line-height-base) + (@padding-small-vertical * 2) + 2); // Dropdowns From cd09f3213ba2e07b988708dec6b888f95660b0f9 Mon Sep 17 00:00:00 2001 From: Luis Hdez Date: Thu, 20 Jun 2013 12:50:30 +0200 Subject: [PATCH 005/128] Add heading font family variable --- less/type.less | 1 + less/variables.less | 1 + 2 files changed, 2 insertions(+) diff --git a/less/type.less b/less/type.less index 9a6811e3d3..852f7f32fd 100644 --- a/less/type.less +++ b/less/type.less @@ -54,6 +54,7 @@ a.text-success:focus { color: darken(@state-success-text, 10%); } h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { + font-family: @headings-font-family; font-weight: @headings-font-weight; line-height: @headings-line-height; small { diff --git a/less/variables.less b/less/variables.less index 13ba8885ce..4a573a2839 100644 --- a/less/variables.less +++ b/less/variables.less @@ -53,6 +53,7 @@ @line-height-base: 1.428571429; // 20/14 @line-height-computed: floor(@font-size-base * @line-height-base); // ~20px +@headings-font-family: @font-family-sans-serif; @headings-font-weight: 500; @headings-line-height: 1.1; From 1b89a63a48f0bfd6ba024f1cf573c03a42aa5ef2 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 20 Jun 2013 15:38:18 -0700 Subject: [PATCH 006/128] Use `@font-family-base` for headings font-family variable --- less/variables.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/less/variables.less b/less/variables.less index 4a573a2839..e71dd03e16 100644 --- a/less/variables.less +++ b/less/variables.less @@ -53,7 +53,7 @@ @line-height-base: 1.428571429; // 20/14 @line-height-computed: floor(@font-size-base * @line-height-base); // ~20px -@headings-font-family: @font-family-sans-serif; +@headings-font-family: @font-family-base; @headings-font-weight: 500; @headings-line-height: 1.1; From f64fe29003159669404f8f5a7a20551fec263904 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 20 Jun 2013 15:40:37 -0700 Subject: [PATCH 007/128] Move Glyphicons into their own repo Removes the icon fonts and associated docs and LESS code from the core repo and into twbs/bootstrap-glyphicons. --- docs/components.html | 314 ------------------------- fonts/glyphiconshalflings-regular.eot | Bin 33358 -> 0 bytes fonts/glyphiconshalflings-regular.otf | Bin 18116 -> 0 bytes fonts/glyphiconshalflings-regular.svg | 175 -------------- fonts/glyphiconshalflings-regular.ttf | Bin 32896 -> 0 bytes fonts/glyphiconshalflings-regular.woff | Bin 18944 -> 0 bytes less/bootstrap.less | 1 - less/glyphicons.less | 200 ---------------- less/variables.less | 5 - 9 files changed, 695 deletions(-) delete mode 100755 fonts/glyphiconshalflings-regular.eot delete mode 100644 fonts/glyphiconshalflings-regular.otf delete mode 100755 fonts/glyphiconshalflings-regular.svg delete mode 100755 fonts/glyphiconshalflings-regular.ttf delete mode 100755 fonts/glyphiconshalflings-regular.woff delete mode 100644 less/glyphicons.less diff --git a/docs/components.html b/docs/components.html index b18fd2b64b..e2a8837051 100644 --- a/docs/components.html +++ b/docs/components.html @@ -6,320 +6,6 @@ lead: "Dozens of reusable components built to provide iconography, dropdowns, na --- - -
- - -

Included glyphs

-

Bootstrap comes with all 160 of Glyphicons Halflings set, all available in font formats for easy coloring, sizing, and placement.

- -
    -
  • glyphicon-glass
  • -
  • glyphicon-music
  • -
  • glyphicon-search
  • -
  • glyphicon-envelope
  • -
  • glyphicon-heart
  • -
  • glyphicon-star
  • -
  • glyphicon-star-empty
  • -
  • glyphicon-user
  • -
  • glyphicon-film
  • -
  • glyphicon-th-large
  • -
  • glyphicon-th
  • -
  • glyphicon-th-list
  • -
  • glyphicon-ok
  • -
  • glyphicon-remove
  • -
  • glyphicon-zoom-in
  • -
  • glyphicon-zoom-out
  • -
  • glyphicon-off
  • -
  • glyphicon-signal
  • -
  • glyphicon-cog
  • -
  • glyphicon-trash
  • -
  • glyphicon-home
  • -
  • glyphicon-file
  • -
  • glyphicon-time
  • -
  • glyphicon-road
  • -
  • glyphicon-download-alt
  • -
  • glyphicon-download
  • -
  • glyphicon-upload
  • -
  • glyphicon-inbox
  • - -
  • glyphicon-play-circle
  • -
  • glyphicon-repeat
  • -
  • glyphicon-refresh
  • -
  • glyphicon-list-alt
  • -
  • glyphicon-lock
  • -
  • glyphicon-flag
  • -
  • glyphicon-headphones
  • -
  • glyphicon-volume-off
  • -
  • glyphicon-volume-down
  • -
  • glyphicon-volume-up
  • -
  • glyphicon-qrcode
  • -
  • glyphicon-barcode
  • -
  • glyphicon-tag
  • -
  • glyphicon-tags
  • -
  • glyphicon-book
  • -
  • glyphicon-bookmark
  • -
  • glyphicon-print
  • -
  • glyphicon-camera
  • -
  • glyphicon-font
  • -
  • glyphicon-bold
  • -
  • glyphicon-italic
  • -
  • glyphicon-text-height
  • -
  • glyphicon-text-width
  • -
  • glyphicon-align-left
  • -
  • glyphicon-align-center
  • -
  • glyphicon-align-right
  • -
  • glyphicon-align-justify
  • -
  • glyphicon-list
  • - -
  • glyphicon-indent-left
  • -
  • glyphicon-indent-right
  • -
  • glyphicon-facetime-video
  • -
  • glyphicon-picture
  • -
  • glyphicon-pencil
  • -
  • glyphicon-map-marker
  • -
  • glyphicon-adjust
  • -
  • glyphicon-tint
  • -
  • glyphicon-edit
  • -
  • glyphicon-share
  • -
  • glyphicon-check
  • -
  • glyphicon-move
  • -
  • glyphicon-step-backward
  • -
  • glyphicon-fast-backward
  • -
  • glyphicon-backward
  • -
  • glyphicon-play
  • -
  • glyphicon-pause
  • -
  • glyphicon-stop
  • -
  • glyphicon-forward
  • -
  • glyphicon-fast-forward
  • -
  • glyphicon-step-forward
  • -
  • glyphicon-eject
  • -
  • glyphicon-chevron-left
  • -
  • glyphicon-chevron-right
  • -
  • glyphicon-plus-sign
  • -
  • glyphicon-minus-sign
  • -
  • glyphicon-remove-sign
  • -
  • glyphicon-ok-sign
  • - -
  • glyphicon-question-sign
  • -
  • glyphicon-info-sign
  • -
  • glyphicon-screenshot
  • -
  • glyphicon-remove-circle
  • -
  • glyphicon-ok-circle
  • -
  • glyphicon-ban-circle
  • -
  • glyphicon-arrow-left
  • -
  • glyphicon-arrow-right
  • -
  • glyphicon-arrow-up
  • -
  • glyphicon-arrow-down
  • -
  • glyphicon-share-alt
  • -
  • glyphicon-resize-full
  • -
  • glyphicon-resize-small
  • -
  • glyphicon-plus
  • -
  • glyphicon-minus
  • -
  • glyphicon-asterisk
  • -
  • glyphicon-exclamation-sign
  • -
  • glyphicon-gift
  • -
  • glyphicon-leaf
  • -
  • glyphicon-fire
  • -
  • glyphicon-eye-open
  • -
  • glyphicon-eye-close
  • -
  • glyphicon-warning-sign
  • -
  • glyphicon-plane
  • -
  • glyphicon-calendar
  • -
  • glyphicon-random
  • -
  • glyphicon-comment
  • -
  • glyphicon-magnet
  • - -
  • glyphicon-chevron-up
  • -
  • glyphicon-chevron-down
  • -
  • glyphicon-retweet
  • -
  • glyphicon-shopping-cart
  • -
  • glyphicon-folder-close
  • -
  • glyphicon-folder-open
  • -
  • glyphicon-resize-vertical
  • -
  • glyphicon-resize-horizontal
  • -
  • glyphicon-hdd
  • -
  • glyphicon-bullhorn
  • -
  • glyphicon-bell
  • -
  • glyphicon-certificate
  • -
  • glyphicon-thumbs-up
  • -
  • glyphicon-thumbs-down
  • -
  • glyphicon-hand-right
  • -
  • glyphicon-hand-left
  • -
  • glyphicon-hand-up
  • -
  • glyphicon-hand-down
  • -
  • glyphicon-circle-arrow-right
  • -
  • glyphicon-circle-arrow-left
  • -
  • glyphicon-circle-arrow-up
  • -
  • glyphicon-circle-arrow-down
  • -
  • glyphicon-globe
  • -
  • glyphicon-wrench
  • -
  • glyphicon-tasks
  • -
  • glyphicon-filter
  • -
  • glyphicon-briefcase
  • -
  • glyphicon-fullscreen
  • - -
  • glyphicon-dashboard
  • -
  • glyphicon-paperclip
  • -
  • glyphicon-heart-empty
  • -
  • glyphicon-link
  • -
  • glyphicon-phone
  • -
  • glyphicon-pushpin
  • -
  • glyphicon-euro
  • -
  • glyphicon-usd
  • -
  • glyphicon-gbp
  • -
  • glyphicon-sort
  • -
  • glyphicon-sort-by-alphabet
  • -
  • glyphicon-sort-by-alphabet-alt
  • -
  • glyphicon-sort-by-order
  • -
  • glyphicon-sort-by-order-alt
  • -
  • glyphicon-sort-by-attributes
  • -
  • glyphicon-sort-by-attributes-alt
  • -
  • glyphicon-unchecked
  • -
  • glyphicon-expand
  • -
  • glyphicon-collapse
  • -
  • glyphicon-collapse-top
  • - -
- -

Glyphicons attribution

-

Glyphicons Halflings are normally not available for free, but an arrangement between Bootstrap and the Glyphicons creator have made this possible at no cost to you as developers. As a thank you, we ask you to include an optional link back to Glyphicons whenever practical.

- - -

How to use

-

Add the appropriate class to any inline element. All icon classes are prefixed with glyphicon- for easy styling. To use, place the following code just about anywhere:

-{% highlight html %} - -{% endhighlight %} -

Want to change the icon color? Just change the color of the parent element.

-

When using beside strings of text, as in buttons or nav links, be sure to leave a space after the icon for proper spacing.

- - -

Icon examples

-

Use them in buttons, button groups for a toolbar, navigation, or prepended form inputs.

- -

Buttons

- -
Button group in a button toolbar
-
-
-
- - - - -
-
-
-{% highlight html %} -
-
- - - - -
-
-{% endhighlight %} - -
-

Accessibility

-

Keep in mind that using icons without any additional content means the icons are not represented to screen reader users.

-
- -
Dropdown in a button group
-
-
- User - - -
-
-{% highlight html %} - -{% endhighlight %} - -
Large button
-
- Star -
-{% highlight html %} - Star -{% endhighlight %} - -
Small button
-
- -
-{% highlight html %} - -{% endhighlight %} - - -

Navigation

- -{% highlight html %} - -{% endhighlight %} - -

Form fields

-
-
- -
-
- - -
-
-
-
-{% highlight html %} -
- -
-
- - -
-
-
-{% endhighlight %} - -
- - diff --git a/fonts/glyphiconshalflings-regular.eot b/fonts/glyphiconshalflings-regular.eot deleted file mode 100755 index bd59ccd2d679a6fa594560d56120e5e6e98b2c3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33358 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 diff --git a/fonts/glyphiconshalflings-regular.svg b/fonts/glyphiconshalflings-regular.svg deleted file mode 100755 index 0fb4587352..0000000000 --- a/fonts/glyphiconshalflings-regular.svg +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/fonts/glyphiconshalflings-regular.ttf b/fonts/glyphiconshalflings-regular.ttf deleted file mode 100755 index c63c068feb1ac0de21fb7fe459fc8d0175028f2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32896 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 T4y;kUO<052l5N*uMf(2$813#) diff --git a/fonts/glyphiconshalflings-regular.woff b/fonts/glyphiconshalflings-regular.woff deleted file mode 100755 index 4c778ffdc5fa2837359e171f35c5b410674cd3c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18944 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%0Aj9w_3|}8T~R?c=mXrZ{!OUY}Y4YKc7(y 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 Star -// -// Use them in links, buttons, headings, and more. - - -// Import the fonts -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('@{glyphicons-font-path}/glyphiconshalflings-regular.eot'); - src: url('@{glyphicons-font-path}/glyphiconshalflings-regular.eot?#iefix') format('embedded-opentype'), - url('@{glyphicons-font-path}/glyphiconshalflings-regular.woff') format('woff'), - url('@{glyphicons-font-path}/glyphiconshalflings-regular.ttf') format('truetype'), - url('@{glyphicons-font-path}/glyphiconshalflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} - -// Catchall baseclass -.glyphicon:before { - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; -} - -// Individual icons -.glyphicon-glass:before { content: "\e001"; } -.glyphicon-music:before { content: "\e002"; } -.glyphicon-search:before { content: "\e003"; } -.glyphicon-envelope:before { content: "\2709"; } -.glyphicon-heart:before { content: "\e005"; } -.glyphicon-star:before { content: "\e006"; } -.glyphicon-star-empty:before { content: "\e007"; } -.glyphicon-user:before { content: "\e008"; } -.glyphicon-film:before { content: "\e009"; } -.glyphicon-th-large:before { content: "\e010"; } -.glyphicon-th:before { content: "\e011"; } -.glyphicon-th-list:before { content: "\e012"; } -.glyphicon-ok:before { content: "\e013"; } -.glyphicon-remove:before { content: "\e014"; } -.glyphicon-zoom-in:before { content: "\e015"; } -.glyphicon-zoom-out:before { content: "\e016"; } -.glyphicon-off:before { content: "\e017"; } -.glyphicon-signal:before { content: "\e018"; } -.glyphicon-cog:before { content: "\e019"; } -.glyphicon-trash:before { content: "\e020"; } -.glyphicon-home:before { content: "\e021"; } -.glyphicon-file:before { content: "\e022"; } -.glyphicon-time:before { content: "\e023"; } -.glyphicon-road:before { content: "\e024"; } -.glyphicon-download-alt:before { content: "\e025"; } -.glyphicon-download:before { content: "\e026"; } -.glyphicon-upload:before { content: "\e027"; } -.glyphicon-inbox:before { content: "\e028"; } -.glyphicon-play-circle:before { content: "\e029"; } -.glyphicon-repeat:before { content: "\e030"; } -.glyphicon-refresh:before { content: "\e031"; } -.glyphicon-list-alt:before { content: "\e032"; } -.glyphicon-lock:before { content: "\e033"; } -.glyphicon-flag:before { content: "\e034"; } -.glyphicon-headphones:before { content: "\e035"; } -.glyphicon-volume-off:before { content: "\e036"; } -.glyphicon-volume-down:before { content: "\e037"; } -.glyphicon-volume-up:before { content: "\e038"; } -.glyphicon-qrcode:before { content: "\e039"; } -.glyphicon-barcode:before { content: "\e040"; } -.glyphicon-tag:before { content: "\e041"; } -.glyphicon-tags:before { content: "\e042"; } -.glyphicon-book:before { content: "\e043"; } -.glyphicon-bookmark:before { content: "\e044"; } -.glyphicon-print:before { content: "\e045"; } -.glyphicon-camera:before { content: "\e046"; } -.glyphicon-font:before { content: "\e047"; } -.glyphicon-bold:before { content: "\e048"; } -.glyphicon-italic:before { content: "\e049"; } -.glyphicon-text-height:before { content: "\e050"; } -.glyphicon-text-width:before { content: "\e051"; } -.glyphicon-align-left:before { content: "\e052"; } -.glyphicon-align-center:before { content: "\e053"; } -.glyphicon-align-right:before { content: "\e054"; } -.glyphicon-align-justify:before { content: "\e055"; } -.glyphicon-list:before { content: "\e056"; } -.glyphicon-indent-left:before { content: "\e057"; } -.glyphicon-indent-right:before { content: "\e058"; } -.glyphicon-facetime-video:before { content: "\e059"; } -.glyphicon-picture:before { content: "\e060"; } -.glyphicon-pencil:before { content: "\270f"; } -.glyphicon-map-marker:before { content: "\e062"; } -.glyphicon-adjust:before { content: "\e063"; } -.glyphicon-tint:before { content: "\e064"; } -.glyphicon-edit:before { content: "\e065"; } -.glyphicon-share:before { content: "\e066"; } -.glyphicon-check:before { content: "\e067"; } -.glyphicon-move:before { content: "\e068"; } -.glyphicon-step-backward:before { content: "\e069"; } -.glyphicon-fast-backward:before { content: "\e070"; } -.glyphicon-backward:before { content: "\e071"; } -.glyphicon-play:before { content: "\e072"; } -.glyphicon-pause:before { content: "\e073"; } -.glyphicon-stop:before { content: "\e074"; } -.glyphicon-forward:before { content: "\e075"; } -.glyphicon-fast-forward:before { content: "\e076"; } -.glyphicon-step-forward:before { content: "\e077"; } -.glyphicon-eject:before { content: "\e078"; } -.glyphicon-chevron-left:before { content: "\e079"; } -.glyphicon-chevron-right:before { content: "\e080"; } -.glyphicon-plus-sign:before { content: "\e081"; } -.glyphicon-minus-sign:before { content: "\e082"; } -.glyphicon-remove-sign:before { content: "\e083"; } -.glyphicon-ok-sign:before { content: "\e084"; } -.glyphicon-question-sign:before { content: "\e085"; } -.glyphicon-info-sign:before { content: "\e086"; } -.glyphicon-screenshot:before { content: "\e087"; } -.glyphicon-remove-circle:before { content: "\e088"; } -.glyphicon-ok-circle:before { content: "\e089"; } -.glyphicon-ban-circle:before { content: "\e090"; } -.glyphicon-arrow-left:before { content: "\e091"; } -.glyphicon-arrow-right:before { content: "\e092"; } -.glyphicon-arrow-up:before { content: "\e093"; } -.glyphicon-arrow-down:before { content: "\e094"; } -.glyphicon-share-alt:before { content: "\e095"; } -.glyphicon-resize-full:before { content: "\e096"; } -.glyphicon-resize-small:before { content: "\e097"; } -.glyphicon-plus:before { content: "\002b"; } -.glyphicon-minus:before { content: "\2212"; } -.glyphicon-asterisk:before { content: "\002a"; } -.glyphicon-exclamation-sign:before { content: "\e101"; } -.glyphicon-gift:before { content: "\e102"; } -.glyphicon-leaf:before { content: "\e103"; } -.glyphicon-fire:before { content: "\e104"; } -.glyphicon-eye-open:before { content: "\e105"; } -.glyphicon-eye-close:before { content: "\e106"; } -.glyphicon-warning-sign:before { content: "\e107"; } -.glyphicon-plane:before { content: "\e108"; } -.glyphicon-calendar:before { content: "\e109"; } -.glyphicon-random:before { content: "\e110"; } -.glyphicon-comment:before { content: "\e111"; } -.glyphicon-magnet:before { content: "\e112"; } -.glyphicon-chevron-up:before { content: "\e113"; } -.glyphicon-chevron-down:before { content: "\e114"; } -.glyphicon-retweet:before { content: "\e115"; } -.glyphicon-shopping-cart:before { content: "\e116"; } -.glyphicon-folder-close:before { content: "\e117"; } -.glyphicon-folder-open:before { content: "\e118"; } -.glyphicon-resize-vertical:before { content: "\e119"; } -.glyphicon-resize-horizontal:before { content: "\e120"; } -.glyphicon-hdd:before { content: "\e121"; } -.glyphicon-bullhorn:before { content: "\e122"; } -.glyphicon-bell:before { content: "\e123"; } -.glyphicon-certificate:before { content: "\e124"; } -.glyphicon-thumbs-up:before { content: "\e125"; } -.glyphicon-thumbs-down:before { content: "\e126"; } -.glyphicon-hand-right:before { content: "\e127"; } -.glyphicon-hand-left:before { content: "\e128"; } -.glyphicon-hand-up:before { content: "\e129"; } -.glyphicon-hand-down:before { content: "\e130"; } -.glyphicon-circle-arrow-right:before { content: "\e131"; } -.glyphicon-circle-arrow-left:before { content: "\e132"; } -.glyphicon-circle-arrow-up:before { content: "\e133"; } -.glyphicon-circle-arrow-down:before { content: "\e134"; } -.glyphicon-globe:before { content: "\e135"; } -.glyphicon-wrench:before { content: "\e136"; } -.glyphicon-tasks:before { content: "\e137"; } -.glyphicon-filter:before { content: "\e138"; } -.glyphicon-briefcase:before { content: "\e139"; } -.glyphicon-fullscreen:before { content: "\e140"; } -.glyphicon-dashboard:before { content: "\e141"; } -.glyphicon-paperclip:before { content: "\e142"; } -.glyphicon-heart-empty:before { content: "\e143"; } -.glyphicon-link:before { content: "\e144"; } -.glyphicon-phone:before { content: "\e145"; } -.glyphicon-pushpin:before { content: "\e146"; } -.glyphicon-euro:before { content: "\20ac"; } -.glyphicon-usd:before { content: "\e148"; } -.glyphicon-gbp:before { content: "\e149"; } -.glyphicon-sort:before { content: "\e150"; } -.glyphicon-sort-by-alphabet:before { content: "\e151"; } -.glyphicon-sort-by-alphabet-alt:before { content: "\e152"; } -.glyphicon-sort-by-order:before { content: "\e153"; } -.glyphicon-sort-by-order-alt:before { content: "\e154"; } -.glyphicon-sort-by-attributes:before { content: "\e155"; } -.glyphicon-sort-by-attributes-alt:before { content: "\e156"; } -.glyphicon-unchecked:before { content: "\e157"; } -.glyphicon-expand:before { content: "\e158"; } -.glyphicon-collapse:before { content: "\e159"; } -.glyphicon-collapse-top:before { content: "\e160"; } diff --git a/less/variables.less b/less/variables.less index 13ba8885ce..a31aafac61 100644 --- a/less/variables.less +++ b/less/variables.less @@ -165,11 +165,6 @@ @zindex-modal: 1050; -// Glyphicons font path -// ------------------------- -@glyphicons-font-path: "../fonts"; - - // Navbar // ------------------------- From 2fccf927c5320a4dfe3ad58b0a2752ed8f15354e Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 20 Jun 2013 16:00:38 -0700 Subject: [PATCH 008/128] Run make on last commit --- docs/assets/css/bootstrap.css | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index e192672a01..012cf717b8 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -425,6 +425,7 @@ h6, .h4, .h5, .h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; } From 2aec6dae597b69502d09aec983598e5f955ca558 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 20 Jun 2013 16:01:59 -0700 Subject: [PATCH 009/128] Fixes #7730: Better hiding of empty titles in popovers If the popover's title contains no text, hide it via JS. Previously was done via CSS's `:empty` property, but that doesn't work in IE8, so JS it is. /cc @fat becaue I probably did this wrong <3 --- docs/assets/css/bootstrap.css | 4 ---- docs/assets/js/bootstrap.js | 2 ++ docs/assets/js/bootstrap.min.js | 2 +- js/popover.js | 2 ++ less/popovers.less | 4 ---- 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 012cf717b8..3eb92c2b15 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -4376,10 +4376,6 @@ button.close { border-radius: 5px 5px 0 0; } -.popover-title:empty { - display: none; -} - .popover-content { padding: 9px 14px; } diff --git a/docs/assets/js/bootstrap.js b/docs/assets/js/bootstrap.js index 744b276765..2cbf1957c9 100644 --- a/docs/assets/js/bootstrap.js +++ b/docs/assets/js/bootstrap.js @@ -1420,6 +1420,8 @@ $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content) $tip.removeClass('fade top bottom left right in') + + $tip.find('.popover-title:empty').hide() } Popover.prototype.hasContent = function () { diff --git a/docs/assets/js/bootstrap.min.js b/docs/assets/js/bootstrap.min.js index 8703c8ae82..3117a381a9 100644 --- a/docs/assets/js/bootstrap.min.js +++ b/docs/assets/js/bootstrap.min.js @@ -3,4 +3,4 @@ * Copyright 2012 Twitter, Inc. * http://www.apache.org/licenses/LICENSE-2.0.txt */ -+function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(e.style[n]!==undefined)return{end:t[n]}}e(function(){e.support.transition=t()})}(window.jQuery),+function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed.bs.alert").remove()}var n=e(this),r=n.attr("data-target");r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));var i=e(r);t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close.bs.alert"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("bs.alert");i||r.data("bs.alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.bs.alert.data-api",t,n.prototype.close)}(window.jQuery),+function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r)};t.DEFAULTS={loadingText:"loading..."},t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.is("input")?"val":"html",i=n.data();e+="Text",i.resetText||n.data("resetText",n[r]()),n[r](i[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("bs.button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.bs.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),+function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.DEFAULTS={interval:5e3,pause:"hover"},t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},t.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},t.prototype.to=function(t){var n=this,r=this.getActiveIndex();if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){n.to(t)}):r==t?this.pause().cycle():this.slide(t>r?"next":"prev",e(this.$items[t]))},t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},t.prototype.next=function(){if(this.sliding)return;return this.slide("next")},t.prototype.prev=function(){if(this.sliding)return;return this.slide("prev")},t.prototype.slide=function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u]();var f=e.Event("slide.bs.carousel",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("bs.carousel"),s=e.extend({},t.DEFAULTS,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("bs.carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("bs.carousel").pause().to(o).cycle(),t.preventDefault()}),e(window).on("load",function(){e('[data-ride="carousel"]').each(function(){var t=e(this);t.carousel(t.data())})})}(window.jQuery),+function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.transitioning=null,this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.DEFAULTS={toggle:!0},t.prototype.dimension=function(){var e=this.$element.hasClass("width");return e?"width":"height"},t.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){var i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show.bs.collapse"),"shown.bs.collapse"),e.support.transition&&this.$element[t](this.$element[0][n])},t.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var t=this.dimension();this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide.bs.collapse"),"hidden"),this.$element[t](0)},t.prototype.reset=function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},t.prototype.transition=function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},t.DEFAULTS,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),+function(e){"use strict";function i(){e(t).remove(),e(n).each(function(t){var n=s(e(this));if(!n.hasClass("open"))return;n.trigger(t=e.Event("hide.bs.dropdown"));if(t.isDefaultPrevented())return;n.removeClass("open").trigger("hidden.bs.dropdown")})}function s(t){var n=t.attr("data-target");n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r=n&&e(n);return r&&r.length?r:t.parent()}var t=".dropdown-backdrop",n="[data-toggle=dropdown]",r=function(t){var n=e(t).on("click.bs.dropdown",this.toggle)};r.prototype.toggle=function(t){var n=e(this);if(n.is(".disabled, :disabled"))return;var r=s(n),o=r.hasClass("open");i();if(!o){"ontouchstart"in document.documentElement&&e('

+ {% highlight html %} @@ -142,7 +142,7 @@ $('#myModal').on('show.bs.modal', function (e) { - + {% endhighlight %} @@ -186,7 +186,7 @@ $('#myModal').on('show.bs.modal', function (e) { - +
@@ -212,7 +212,7 @@ $('#myModal').on('show.bs.modal', function (e) { Save changes
- + {% endhighlight %} @@ -264,7 +264,7 @@ $('#myModal').on('show.bs.modal', function (e) { remote path false -

If a remote url is provided, content will be loaded via jQuery's load method and injected into the .modal-body. If you're using the data api, you may alternatively use the href tag to specify the remote source. An example of this is shown below:

+

If a remote URL is provided, content will be loaded via jQuery's load method and injected into the .modal-body. If you're using the data api, you may alternatively use the href tag to specify the remote source. An example of this is shown below:

{% highlight html %} Click me {% endhighlight %} @@ -310,7 +310,7 @@ $('#myModal').modal({ shown - This event is fired when the modal has been made visible to the user (will wait for css transitions to complete). + This event is fired when the modal has been made visible to the user (will wait for CSS transitions to complete). hide @@ -318,7 +318,7 @@ $('#myModal').modal({ hidden - This event is fired when the modal has finished being hidden from the user (will wait for css transitions to complete). + This event is fired when the modal has finished being hidden from the user (will wait for CSS transitions to complete). @@ -773,13 +773,13 @@ $('#example').tooltip(options) animation boolean true - apply a css fade transition to the tooltip + apply a CSS fade transition to the tooltip html boolean false - Insert html into the tooltip. If false, jquery's text method will be used to insert content into the dom. Use text if you're worried about XSS attacks. + Insert HTML into the tooltip. If false, jQuery's text method will be used to insert content into the DOM. Use text if you're worried about XSS attacks. placement @@ -803,7 +803,7 @@ $('#example').tooltip(options) trigger string 'hover focus' - how tooltip is triggered - click | hover | focus | manual. Note you case pass trigger multiple, space seperated, trigger types. + how tooltip is triggered - click | hover | focus | manual. Note you case pass trigger multiple, space separated, trigger types. delay @@ -820,7 +820,7 @@ $('#example').tooltip(options) string | false false -

Appends the tooltip to a specific element container: 'body'

+

Appends the tooltip to a specific element. Example: container: 'body'

@@ -951,13 +951,13 @@ $('#example').tooltip(options) animation boolean true - apply a css fade transition to the tooltip + apply a CSS fade transition to the tooltip html boolean false - Insert html into the popover. If false, jquery's text method will be used to insert content into the dom. Use text if you're worried about XSS attacks. + Insert HTML into the popover. If false, jQuery's text method will be used to insert content into the DOM. Use text if you're worried about XSS attacks. placement @@ -1106,7 +1106,7 @@ $('#example').tooltip(options) closed - This event is fired when the alert has been closed (will wait for css transitions to complete). + This event is fired when the alert has been closed (will wait for CSS transitions to complete). @@ -1379,7 +1379,7 @@ $('.nav-tabs').button()

Usage

Via data attributes

-

Just add data-toggle="collapse" and a data-target to element to automatically assign control of a collapsible element. The data-target attribute accepts a css selector to apply the collapse to. Be sure to add the class collapse to the collapsible element. If you'd like it to default open, add the additional class in.

+

Just add data-toggle="collapse" and a data-target to element to automatically assign control of a collapsible element. The data-target attribute accepts a CSS selector to apply the collapse to. Be sure to add the class collapse to the collapsible element. If you'd like it to default open, add the additional class in.

To add accordion-like group management to a collapsible control, add the data attribute data-parent="#selector". Refer to the demo to see this in action.

Via JavaScript

@@ -1451,7 +1451,7 @@ $('#myCollapsible').collapse({ shown - This event is fired when a collapse element has been made visible to the user (will wait for css transitions to complete). + This event is fired when a collapse element has been made visible to the user (will wait for CSS transitions to complete). hide @@ -1461,7 +1461,7 @@ $('#myCollapsible').collapse({ hidden - This event is fired when a collapse element has been hidden from the user (will wait for css transitions to complete). + This event is fired when a collapse element has been hidden from the user (will wait for CSS transitions to complete). From 274a3426576d7aef40bb2b760a3fc7a9bce95521 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Tue, 25 Jun 2013 19:50:37 -0700 Subject: [PATCH 050/128] Docs: fix 1 typo; use in 1 place --- docs/css.html | 2 +- docs/customize.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/css.html b/docs/css.html index 2f7d747085..f73be9ac89 100644 --- a/docs/css.html +++ b/docs/css.html @@ -247,7 +247,7 @@ lead: "Fundamental HTML elements styled and enhanced with extensible classes."

Need more examples?

-

We dive into more grid layouts in a separte page, free of chrome and documentation to better show you the power of the grid.

+

We dive into more grid layouts in a separate page, free of chrome and documentation to better show you the power of the grid.

More grid examples

diff --git a/docs/customize.html b/docs/customize.html index 19957867f2..ed33632891 100644 --- a/docs/customize.html +++ b/docs/customize.html @@ -357,7 +357,7 @@ lead: Customize Bootstrap's components, LESS variables, and jQuery plugins to ge

Heads up!

-

All checked plugins will be compiled into a single file, bootstrap.js. All plugins require the latest version of jQuery to be included.

+

All checked plugins will be compiled into a single file, bootstrap.js. All plugins require the latest version of jQuery to be included.

From 242d92e09c60396bad0837581a9692bf7abe8aea Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Tue, 25 Jun 2013 20:18:30 -0700 Subject: [PATCH 051/128] Fix #8287 --- docs/components.html | 5 +++++ docs/css.html | 6 +++++- docs/javascript.html | 13 +++++++++---- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/components.html b/docs/components.html index 55f27cbc33..bbb2c0f557 100644 --- a/docs/components.html +++ b/docs/components.html @@ -482,6 +482,11 @@ lead: "Dozens of reusable components built to provide iconography, dropdowns, na

Group a series of buttons together on a single line with the button group. Add on optional JavaScript radio and checkbox style behavior with our buttons plugin.

+
+

Tooltips & popovers in button groups require special setting

+

When using tooltips or popovers on elements within a .btn-group, you'll have to specify the option container: 'body' to avoid unwanted side effects (such as the element growing wider and/or losing its rounded corners when the tooltip or popover is triggered).

+
+

Basic button group

Wrap a series of buttons with .btn in .btn-group.

diff --git a/docs/css.html b/docs/css.html index 2f7d747085..8e7b57d379 100644 --- a/docs/css.html +++ b/docs/css.html @@ -1494,12 +1494,16 @@ For example, <section> should be wrapped as inline.

Adding on top of existing browser controls, Bootstrap includes other useful form components.

Input groups

-

Add text or buttons before, after, or on both sides of any text-based input. Use .input-group with a .add-on to prepend or append elements to an <input>.

+

Add text or buttons before, after, or on both sides of any text-based input. Use .input-group with an .add-on to prepend or append elements to an <input>.

Cross-browser compatibility

Avoid using <select> elements here as they cannot be fully styled in WebKit browsers.

+
+

Tooltips & popovers in input groups require special setting

+

When using tooltips or popovers on elements within an .input-group, you'll have to specify the option container: 'body' to avoid unwanted side effects (such as the element growing wider and/or losing its rounded corners when the tooltip or popover is triggered).

+
diff --git a/docs/javascript.html b/docs/javascript.html index 9a5a5b6f06..2580d9a6e1 100644 --- a/docs/javascript.html +++ b/docs/javascript.html @@ -744,9 +744,10 @@ $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
- -

Tooltips in input groups

-

When using tooltips and popovers with the Bootstrap input groups, you'll have to set the container (documented below) option to avoid unwanted side effects.

+
+

Tooltips in button groups and input groups require special setting

+

When using tooltips on elements within a .btn-group or an .input-group, you'll have to specify the option container: 'body' (documented below) to avoid unwanted side effects (such as the element growing wider and/or losing its rounded corners when the tooltip is triggered).

+

@@ -873,6 +874,10 @@ $('#example').tooltip(options)

Plugin dependency

Popovers require the tooltip plugin to be included in your version of Bootstrap.

+
+

Popovers in button groups and input groups require special setting

+

When using popovers on elements within a .btn-group or an .input-group, you'll have to specify the option container: 'body' (documented below) to avoid unwanted side effects (such as the element growing wider and/or losing its rounded corners when the popover is triggered).

+

Static popover

Four options are available: top, right, bottom, and left aligned.

@@ -1004,7 +1009,7 @@ $('#example').tooltip(options) string | false false -

Appends the popover to a specific element container: 'body'

+

Appends the popover to a specific element. Example: container: 'body'

From 2471b9d725d2452a10f802af5667509af7b7eb2e Mon Sep 17 00:00:00 2001 From: James Holland Date: Wed, 26 Jun 2013 08:27:12 -0400 Subject: [PATCH 052/128] typo: match doc text and example --- docs/components.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/components.html b/docs/components.html index 55f27cbc33..48c7411d04 100644 --- a/docs/components.html +++ b/docs/components.html @@ -942,7 +942,7 @@ lead: "Dozens of reusable components built to provide iconography, dropdowns, na {% highlight html %} -

Going beyond light customizations and into visual overhauls is just as straightforward as the above custom button. For a site like Karma, which uses Bootstrap as a CSS reset with heavy modifications, more extensive work is involved, but well worth it in the end.

-
+

Alternate customization methods

While not recommended for folks new to Bootstrap, you may use one of two alternate methods for customization. The first is modifying the source .less files (making upgrades super difficult), and the second is mapping source LESS code to your own classes via mixins. For the time being, neither options are documented here.

diff --git a/docs/javascript.html b/docs/javascript.html index 9a5a5b6f06..9d9ecd1f84 100644 --- a/docs/javascript.html +++ b/docs/javascript.html @@ -14,8 +14,14 @@ lead: "Bring Bootstrap's components to life with over a dozen custom jQuery plug

Individual or compiled

-

Plugins can be included individually, or all at once. Do not attempt to include both. Both bootstrap.js and bootstrap.min.js contain all plugins in a single file.

-
+

Plugins can be included individually (using bootstrap-*.js original files, or all at once (using bootstrap.js or the minified bootstrap.min.js.

+ +
+

Do not attempt to include both.

+

Both bootstrap.js and bootstrap.min.js contain all plugins in a single file.

+
+ +

Plugin dependencies

Some plugins and CSS components depend on other plugins. If you include plugins individually, make sure to check for these dependencies in the docs.

@@ -65,7 +71,7 @@ $('#myModal').on('show.bs.modal', function (e) { }) {% endhighlight %} -
+

Third-party libraries

Bootstrap does not officially support third-party JavaScript libraries like Prototype or jQuery UI. Despite .noConflict and namespaced events, there may be compatibility problems that you need to fix on your own. Ask on the mailing list if you need help.

@@ -532,7 +538,7 @@ $('.dropdown-toggle').dropdown() $('#navbar-example').scrollspy() {% endhighlight %} -
+

Resolvable ID targets required

Navbar links must have resolvable id targets. For example, a <a href="#home">home</a> must correspond to something in the DOM like <div id="home"></div>.

@@ -825,7 +831,7 @@ $('#example').tooltip(options) -
+

Data attributes for individual tooltips

Options for individual tooltips can alternatively be specified through the use of data attributes, as explained above.

@@ -869,7 +875,7 @@ $('#example').tooltip(options)

Examples

Add small overlays of content, like those on the iPad, to any element for housing secondary information. Hover over the button to trigger the popover.

-
+

Plugin dependency

Popovers require the tooltip plugin to be included in your version of Bootstrap.

@@ -1009,7 +1015,7 @@ $('#example').tooltip(options) -
+

Data attributes for individual popovers

Options for individual popovers can alternatively be specified through the use of data attributes, as explained above.

@@ -1229,7 +1235,7 @@ $('.nav-tabs').button()

$().button('toggle')

Toggles push state. Gives the button the appearance that it has been activated.

-
+

Auto toggling

You can enable auto toggling of a button by using the data-toggle attribute.

@@ -1244,7 +1250,7 @@ $('.nav-tabs').button() {% endhighlight %} -
+

Cross-browser compatibility

Firefox persists the disabled state across page loads. A workaround for this is to use autocomplete="off".

@@ -1274,7 +1280,7 @@ $('.nav-tabs').button()

About

Get base styles and flexible support for collapsible components like accordions and navigation.

-
+

Plugin dependency

Collapse requires the transitions plugin to be included in your version of Bootstrap.

@@ -1541,7 +1547,7 @@ $('#myCollapsible').on('hidden.bs.collapse', function () {

Optional captions

Add captions to your slides easily with the .carousel-caption element within any .item. Place just about any optional HTML within there and it will be automatically aligned and formatted.

-
+

Responsive visibility

Captions are hidden by default and will show up only with viewports greater than 768px wide.

@@ -1712,7 +1718,7 @@ $('#myCarousel').on('slide.bs.carousel', function () {
...
{% endhighlight %} -
+

Requires positioning

You must manage the position of a pinned element and the behavior of its immediate parent. Position is controlled by affix, affix-top, and affix-bottom. Remember to check for a potentially collapsed parent when the affix kicks in as it's removing content from the normal flow of the page.

From 5e29c42211538e1e3885dc8c70779a17221c9569 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 27 Jun 2013 18:38:00 -0700 Subject: [PATCH 054/128] remove custom url in jekyll --- _config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/_config.yml b/_config.yml index d999358724..ddef7b2b9e 100644 --- a/_config.yml +++ b/_config.yml @@ -9,4 +9,3 @@ permalink: pretty source: ./docs destination: ./_gh_pages port: 9001 -url: http://getbootstrap.dev:9001 From c9ccbd2cf0b5b37fe67e55a93223d4836f22da44 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 27 Jun 2013 18:43:29 -0700 Subject: [PATCH 055/128] Fixes #8329: add `!important` to `.hidden` --- less/responsive-utilities.less | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/less/responsive-utilities.less b/less/responsive-utilities.less index 65fdc3d133..ef80be7a9b 100644 --- a/less/responsive-utilities.less +++ b/less/responsive-utilities.less @@ -29,8 +29,8 @@ // Hide from screenreaders and browsers // Credit: HTML5 Boilerplate .hidden { - display: none; - visibility: hidden; + display: none !important; + visibility: hidden !important; } // Visibility utilities From cb483b67589df7ac3ece33303b8ce944b3ac4b0e Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 27 Jun 2013 18:45:08 -0700 Subject: [PATCH 056/128] Add parens so sublime picks up on syntax highlighting --- less/responsive-utilities.less | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/less/responsive-utilities.less b/less/responsive-utilities.less index ef80be7a9b..21e5d7556d 100644 --- a/less/responsive-utilities.less +++ b/less/responsive-utilities.less @@ -37,17 +37,17 @@ // For Phones .visible-sm { - .responsive-visibility; + .responsive-visibility(); } .visible-md { display: none !important; } .visible-lg { display: none !important; } .hidden-sm { display: none !important; } .hidden-md { - .responsive-visibility; + .responsive-visibility(); } .hidden-lg { - .responsive-visibility; + .responsive-visibility(); } @@ -55,16 +55,16 @@ @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { .visible-sm { display: none !important; } .visible-md { - .responsive-visibility; + .responsive-visibility(); } .visible-lg { display: none !important; } .hidden-sm { - .responsive-visibility; + .responsive-visibility(); } .hidden-md { display: none !important; } .hidden-lg { - .responsive-visibility; + .responsive-visibility(); } } @@ -73,14 +73,14 @@ .visible-sm { display: none !important; } .visible-md { display: none !important; } .visible-lg { - .responsive-visibility; + .responsive-visibility(); } .hidden-sm { - .responsive-visibility; + .responsive-visibility(); } .hidden-md { - .responsive-visibility; + .responsive-visibility(); } .hidden-lg { display: none !important; } } @@ -91,7 +91,7 @@ @media print { .visible-print { - .responsive-visibility; + .responsive-visibility(); } .hidden-print { display: none !important; } } From 94761c221648c0968328bee1fc5970ad7b481bea Mon Sep 17 00:00:00 2001 From: fat Date: Thu, 27 Jun 2013 18:47:35 -0700 Subject: [PATCH 057/128] use collapse in dropdown js example --- docs/assets/css/bootstrap.css | 5 +-- docs/javascript.html | 73 +++++++++++++++++++---------------- 2 files changed, 41 insertions(+), 37 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 487d7eb2fc..f2aefb773c 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -691,8 +691,6 @@ pre { line-height: 1.428571429; word-break: break-all; word-wrap: break-word; - white-space: pre; - white-space: pre-wrap; background-color: #f5f5f5; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.15); @@ -706,7 +704,6 @@ pre.prettyprint { pre code { padding: 0; color: inherit; - white-space: pre; white-space: pre-wrap; background-color: transparent; border: 0; @@ -1540,7 +1537,7 @@ textarea::-webkit-input-placeholder { // Move the options list down to align with labels .controls > .radio:first-child, .controls > .checkbox:first-child { - padding-top: 5px; // has to be padding because margin collaspes + padding-top: 5px; // has to be padding because margin collapses } */ diff --git a/docs/javascript.html b/docs/javascript.html index d1c987904b..5875926001 100644 --- a/docs/javascript.html +++ b/docs/javascript.html @@ -348,39 +348,46 @@ $('#myModal').on('hidden.bs.modal', function () { From e5a9a1f5ff12bd0aa0159db4f12f46dcadf08456 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 27 Jun 2013 18:49:37 -0700 Subject: [PATCH 058/128] remove icons from sidenav --- docs/_includes/nav-components.html | 8 -------- 1 file changed, 8 deletions(-) diff --git a/docs/_includes/nav-components.html b/docs/_includes/nav-components.html index 4f49d68b26..dd56cf399e 100644 --- a/docs/_includes/nav-components.html +++ b/docs/_includes/nav-components.html @@ -1,11 +1,3 @@ -
  • - Glyphicons - -
  • Dropdowns
  • +
  • + Glyphicons +
  • Grid system {% endhighlight %} - - -

    Add an extra level of dropdown menus, appearing on hover like those of OS X, with some simple markup additions. Add .dropdown-submenu to any li in an existing dropdown menu for automatic styling.

    - -{% highlight html %} - -{% endhighlight %} -
  • diff --git a/less/dropdowns.less b/less/dropdowns.less index 3e01527882..f2ddc43924 100644 --- a/less/dropdowns.less +++ b/less/dropdowns.less @@ -63,9 +63,7 @@ // Hover/Focus state // ----------- .dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus, -.dropdown-submenu:hover > a, -.dropdown-submenu:focus > a { +.dropdown-menu > li > a:focus { text-decoration: none; color: @dropdown-link-hover-color; #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%)); @@ -153,64 +151,6 @@ } } -// Sub menus -// --------------------------- -.dropdown-submenu { - position: relative; -} -// Default dropdowns -.dropdown-submenu > .dropdown-menu { - top: 0; - left: 100%; - margin-top: -6px; - margin-left: -1px; - border-top-left-radius: 0; // Nuke the closest corner as appropriate -} -.dropdown-submenu:hover > .dropdown-menu { - display: block; -} - -// Dropups -.dropup .dropdown-submenu > .dropdown-menu { - top: auto; - bottom: 0; - margin-top: 0; - margin-bottom: -2px; - border-bottom-left-radius: 0; // Nuke the closest corner as appropriate -} - -// Caret to indicate there is a submenu -.dropdown-submenu > a:after { - display: block; - content: " "; - float: right; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; - border-width: 5px 0 5px 5px; - border-left-color: darken(@dropdown-bg, 20%); - margin-top: 5px; - margin-right: -10px; -} -.dropdown-submenu:hover > a:after { - border-left-color: @dropdown-link-hover-color; -} - -// Left aligned submenus -.dropdown-submenu.pull-left { - // Undo the float - // Yes, this is awkward since .pull-left adds a float, but it sticks to our conventions elsewhere. - float: none; - - // Positioning the submenu - > .dropdown-menu { - left: -100%; - margin-left: 10px; - border-top-right-radius: 0; // Remove the rounded corner here - } -} - // Tweak nav headers // --------------------------- // Increase padding from 15px to 20px on sides From 88ece4fc5902f7dd9582fb4e5956062fe97af84c Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 27 Jun 2013 20:50:00 -0700 Subject: [PATCH 072/128] fixes #7961 a bit: adds css for extra tooltip placement options. /cc @fat you just need dat js prolly --- docs/assets/css/bootstrap.css | 28 ++++++++++++++++++++++++++++ less/tooltip.less | 24 ++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index ec8af9204c..bffe638eea 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -3668,6 +3668,20 @@ button.close { border-width: 5px 5px 0; } +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-top-color: rgba(0, 0, 0, 0.9); + border-width: 5px 5px 0; +} + +.tooltip.top-right .tooltip-arrow { + right: 5px; + bottom: 0; + border-top-color: rgba(0, 0, 0, 0.9); + border-width: 5px 5px 0; +} + .tooltip.right .tooltip-arrow { top: 50%; left: 0; @@ -3692,6 +3706,20 @@ button.close { border-width: 0 5px 5px; } +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-bottom-color: rgba(0, 0, 0, 0.9); + border-width: 0 5px 5px; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-bottom-color: rgba(0, 0, 0, 0.9); + border-width: 0 5px 5px; +} + .popover { position: absolute; top: 0; diff --git a/less/tooltip.less b/less/tooltip.less index 9dba6f04f2..790eb1cd3e 100644 --- a/less/tooltip.less +++ b/less/tooltip.less @@ -47,6 +47,18 @@ border-width: @tooltip-arrow-width @tooltip-arrow-width 0; border-top-color: @tooltip-arrow-color; } + &.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-width: @tooltip-arrow-width @tooltip-arrow-width 0; + border-top-color: @tooltip-arrow-color; + } + &.top-right .tooltip-arrow { + bottom: 0; + right: 5px; + border-width: @tooltip-arrow-width @tooltip-arrow-width 0; + border-top-color: @tooltip-arrow-color; + } &.right .tooltip-arrow { top: 50%; left: 0; @@ -68,4 +80,16 @@ border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; border-bottom-color: @tooltip-arrow-color; } + &.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; + border-bottom-color: @tooltip-arrow-color; + } + &.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-width: 0 @tooltip-arrow-width @tooltip-arrow-width; + border-bottom-color: @tooltip-arrow-color; + } } From 8e6d5be8e495dfcf8e2f46d2f40e6ff82e0eb987 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Thu, 27 Jun 2013 23:26:04 -0700 Subject: [PATCH 073/128] update close button example display --- docs/assets/css/docs.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/assets/css/docs.css b/docs/assets/css/docs.css index 8eeaea3b73..f07654a98f 100644 --- a/docs/assets/css/docs.css +++ b/docs/assets/css/docs.css @@ -312,7 +312,7 @@ body { .bs-example > .well:last-child { margin-bottom: 0; } -.bs-example > .close { +.bs-example > p > .close { float: none; } From 1a09eada35259de198ffad56a460c6ffafe890a4 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Fri, 28 Jun 2013 00:08:19 -0700 Subject: [PATCH 074/128] Run make on JS --- docs/assets/js/bootstrap.js | 3 +++ docs/assets/js/bootstrap.min.js | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/assets/js/bootstrap.js b/docs/assets/js/bootstrap.js index c73b8e1877..03888ac5f9 100644 --- a/docs/assets/js/bootstrap.js +++ b/docs/assets/js/bootstrap.js @@ -603,7 +603,10 @@ || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 var option = $(target).data('collapse') ? 'toggle' : $this.data() + var parent = $this.attr('data-parent') + var $parent = parent && $(parent) + if ($parent) $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed') $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') $(target).collapse(option) }) diff --git a/docs/assets/js/bootstrap.min.js b/docs/assets/js/bootstrap.min.js index 9ca9b6165e..e35afa9600 100644 --- a/docs/assets/js/bootstrap.min.js +++ b/docs/assets/js/bootstrap.min.js @@ -3,4 +3,4 @@ * Copyright 2012 Twitter, Inc. * http://www.apache.org/licenses/LICENSE-2.0.txt */ -+function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(e.style[n]!==undefined)return{end:t[n]}}e(function(){e.support.transition=t()})}(window.jQuery),+function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed.bs.alert").remove()}var n=e(this),r=n.attr("data-target");r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));var i=e(r);t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close.bs.alert"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("bs.alert");i||r.data("bs.alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.bs.alert.data-api",t,n.prototype.close)}(window.jQuery),+function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r)};t.DEFAULTS={loadingText:"loading..."},t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.is("input")?"val":"html",i=n.data();e+="Text",i.resetText||n.data("resetText",n[r]()),n[r](i[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("bs.button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.bs.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),+function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.DEFAULTS={interval:5e3,pause:"hover"},t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},t.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},t.prototype.to=function(t){var n=this,r=this.getActiveIndex();if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){n.to(t)}):r==t?this.pause().cycle():this.slide(t>r?"next":"prev",e(this.$items[t]))},t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},t.prototype.next=function(){if(this.sliding)return;return this.slide("next")},t.prototype.prev=function(){if(this.sliding)return;return this.slide("prev")},t.prototype.slide=function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u]();var f=e.Event("slide.bs.carousel",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("bs.carousel"),s=e.extend({},t.DEFAULTS,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("bs.carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("bs.carousel").pause().to(o).cycle(),t.preventDefault()}),e(window).on("load",function(){e('[data-ride="carousel"]').each(function(){var t=e(this);t.carousel(t.data())})})}(window.jQuery),+function(e){"use strict";var t=function(n,r){this.$element=e(n),this.options=e.extend({},t.DEFAULTS,r),this.transitioning=null,this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.DEFAULTS={toggle:!0},t.prototype.dimension=function(){var e=this.$element.hasClass("width");return e?"width":"height"},t.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){var i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show.bs.collapse"),"shown.bs.collapse"),e.support.transition&&this.$element[t](this.$element[0][n])},t.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var t=this.dimension();this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide.bs.collapse"),"hidden"),this.$element[t](0)},t.prototype.reset=function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!=null?"addClass":"removeClass"]("collapse"),this},t.prototype.transition=function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},t.DEFAULTS,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),+function(e){"use strict";function i(){e(t).remove(),e(n).each(function(t){var n=s(e(this));if(!n.hasClass("open"))return;n.trigger(t=e.Event("hide.bs.dropdown"));if(t.isDefaultPrevented())return;n.removeClass("open").trigger("hidden.bs.dropdown")})}function s(t){var n=t.attr("data-target");n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var r=n&&e(n);return r&&r.length?r:t.parent()}var t=".dropdown-backdrop",n="[data-toggle=dropdown]",r=function(t){var n=e(t).on("click.bs.dropdown",this.toggle)};r.prototype.toggle=function(t){var n=e(this);if(n.is(".disabled, :disabled"))return;var r=s(n),o=r.hasClass("open");i();if(!o){"ontouchstart"in document.documentElement&&e(' diff --git a/docs/examples/navbar.html b/docs/examples/navbar.html index f8b25482ee..09dba0f23c 100644 --- a/docs/examples/navbar.html +++ b/docs/examples/navbar.html @@ -60,7 +60,7 @@ title: Navbar template

    Navbar example

    This example is a quick exercise to illustrate how the default, static navbar and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.

    - View navbar docs » + View navbar docs »

    From 02351c0589be66edcc2dc10bd059aeac55eb6163 Mon Sep 17 00:00:00 2001 From: Quy Ton Date: Sat, 29 Jun 2013 07:37:53 -0700 Subject: [PATCH 080/128] Remove references to fonts --- docs/getting-started.html | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/docs/getting-started.html b/docs/getting-started.html index 718e8ed79d..56e6cbc323 100644 --- a/docs/getting-started.html +++ b/docs/getting-started.html @@ -15,7 +15,7 @@ lead: "An overview of Bootstrap, how to download and use, basic templates and ex

    There are a few easy ways to quickly get started with Bootstrap, each one appealing to a different skill level and use case. Read through to see what suits your particular needs.

    Download compiled CSS and JS

    -

    The fastest way to get started is to get the compiled and minified versions of our CSS, JavaScript, and fonts. No documentation or original source files are included.

    +

    The fastest way to get started is to get the compiled and minified versions of our CSS and JavaScript. No documentation or original source files are included.

    Download Bootstrap


    @@ -72,12 +72,6 @@ bootstrap/ ├── js/ │ ├── bootstrap.js │ ├── bootstrap.min.js -└── fonts/ - ├── glyphiconshalflings-regular.eot - ├── glyphiconshalflings-regular.otf - ├── glyphiconshalflings-regular.svg - ├── glyphiconshalflings-regular.ttf - └── glyphiconshalflings-regular.woff {% endhighlight %}

    This is the most basic form of Bootstrap: compiled files for quick drop-in usage in nearly any web project. We provide compiled CSS and JS (bootstrap.*), as well as compiled and minified CSS and JS (bootstrap.min.*). The image files are compressed using ImageOptim, a Mac app for compressing PNGs.

    From 6a20810ca4970a681bd34274851365af011694e3 Mon Sep 17 00:00:00 2001 From: Francis Brunelle Date: Sat, 29 Jun 2013 16:06:14 -0400 Subject: [PATCH 081/128] reset left padding for .media-list, .pagination and .pager --- docs/assets/css/bootstrap.css | 4 +++- less/media.less | 2 +- less/pager.less | 1 + less/pagination.less | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index c76723b999..28f561a323 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -3303,6 +3303,7 @@ button.close { .pagination { display: inline-block; + padding-left: 0; margin: 20px 0; border-radius: 4px; } @@ -3394,6 +3395,7 @@ button.close { } .pager { + padding-left: 0; margin: 20px 0; text-align: center; list-style: none; @@ -4019,7 +4021,7 @@ a.thumbnail:focus { } .media-list { - margin-left: 0; + padding-left: 0; list-style: none; } diff --git a/less/media.less b/less/media.less index 21063eb2ba..bcba8081c1 100644 --- a/less/media.less +++ b/less/media.less @@ -49,6 +49,6 @@ // Undo default ul/ol styles .media-list { - margin-left: 0; + padding-left: 0; list-style: none; } diff --git a/less/pager.less b/less/pager.less index 0b2fcf7cbb..007952da08 100644 --- a/less/pager.less +++ b/less/pager.less @@ -4,6 +4,7 @@ .pager { + padding-left: 0; margin: @line-height-computed 0; list-style: none; text-align: center; diff --git a/less/pagination.less b/less/pagination.less index 73c063be04..320387a67d 100644 --- a/less/pagination.less +++ b/less/pagination.less @@ -3,6 +3,7 @@ // -------------------------------------------------- .pagination { display: inline-block; + padding-left: 0; margin: @line-height-computed 0; border-radius: @border-radius-base; } From 2e8752b26f08b888300fad5a0e357c860ab594b2 Mon Sep 17 00:00:00 2001 From: Roland Warmerdam Date: Mon, 1 Jul 2013 10:51:08 +1200 Subject: [PATCH 082/128] Prevent the font shorthand from getting compiled as division --- less/mixins.less | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/less/mixins.less b/less/mixins.less index 24ca797ffd..48c0d011a9 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -71,7 +71,7 @@ // CSS image replacement // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757 .hide-text() { - font: 0/0 a; + font: ~"0/0" a; color: transparent; text-shadow: none; background-color: transparent; From e5e9d5916ab6e14aff18e5fb2f9e8e1f2eccb5a1 Mon Sep 17 00:00:00 2001 From: liuyl Date: Mon, 1 Jul 2013 20:29:41 +0800 Subject: [PATCH 083/128] simplify tables.less --- less/tables.less | 72 +++++++++++++++++++++++------------------------- 1 file changed, 34 insertions(+), 38 deletions(-) diff --git a/less/tables.less b/less/tables.less index 88481a9444..392593902a 100644 --- a/less/tables.less +++ b/less/tables.less @@ -95,33 +95,31 @@ th { > tbody:first-child > tr:first-child td { border-top: 0; } - // For first th/td in the first row in the first thead or tbody - > thead:first-child > tr:first-child > th:first-child, - > tbody:first-child > tr:first-child > td:first-child, - > tbody:first-child > tr:first-child > th:first-child { - border-top-left-radius: @border-radius-base; + > thead:first-child > tr:first-child > th, + > tbody:first-child > tr:first-child > td, + > tbody:first-child > tr:first-child > th { + // For first th/td in the first row in the first thead or tbody + &:first-child{ + border-top-left-radius: @border-radius-base; + } + // For last th/td in the first row in the first thead or tbody + &:last-child{ + border-top-right-radius: @border-radius-base; + } } - // For last th/td in the first row in the first thead or tbody - > thead:first-child > tr:first-child > th:last-child, - > tbody:first-child > tr:first-child > td:last-child, - > tbody:first-child > tr:first-child > th:last-child { - border-top-right-radius: @border-radius-base; - } - // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot - > thead:last-child > tr:last-child > th:first-child, - > tbody:last-child > tr:last-child > td:first-child, - > tbody:last-child > tr:last-child > th:first-child, - > tfoot:last-child > tr:last-child > td:first-child, - > tfoot:last-child > tr:last-child > th:first-child { - border-bottom-left-radius: @border-radius-base; - } - // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot - > thead:last-child > tr:last-child > th:last-child, - > tbody:last-child > tr:last-child > td:last-child, - > tbody:last-child > tr:last-child > th:last-child, - > tfoot:last-child > tr:last-child > td:last-child, - > tfoot:last-child > tr:last-child > th:last-child { - border-bottom-right-radius: @border-radius-base; + > thead:last-child > tr:last-child > th, + > tbody:last-child > tr:last-child > td, + > tbody:last-child > tr:last-child > th, + > tfoot:last-child > tr:last-child > td, + > tfoot:last-child > tr:last-child > th { + // For first th/td (can be either) in the last row in the last thead, tbody, and tfoot + &:first-child{ + border-bottom-left-radius: @border-radius-base; + } + // For last th/td (can be either) in the last row in the last thead, tbody, and tfoot + &:last-child{ + border-bottom-right-radius: @border-radius-base; + } } // Clear border-radius for first and last td in the last row in the last tbody for table with tfoot @@ -133,19 +131,17 @@ th { } // Special fixes to round the left border on the first td/th - > caption + thead > tr:first-child > th:first-child, - > caption + tbody > tr:first-child > td:first-child, - > colgroup + thead > tr:first-child > th:first-child, - > colgroup + tbody > tr:first-child > td:first-child { - border-top-left-radius: @border-radius-base; + > caption + thead > tr:first-child > th, + > caption + tbody > tr:first-child > td, + > colgroup + thead > tr:first-child > th, + > colgroup + tbody > tr:first-child > td { + &:first-child{ + border-top-left-radius: @border-radius-base; + } + &:last-child{ + border-top-right-radius: @border-radius-base; + } } - > caption + thead > tr:first-child > th:last-child, - > caption + tbody > tr:first-child > td:last-child, - > colgroup + thead > tr:first-child > th:last-child, - > colgroup + tbody > tr:first-child > td:last-child { - border-top-right-radius: @border-radius-base; - } - } From fea69df80c3d304868d816a85a8b027b40a13f3d Mon Sep 17 00:00:00 2001 From: Julian Thilo Date: Mon, 1 Jul 2013 21:13:57 +0200 Subject: [PATCH 084/128] Fix responsive utilities for table elements This change prevents situations where specificity causes some rules to be overridden by the ones intended for mobile. * Added mixin `responsive-invisibility()` * Swapped out `display: none !important;` for new mixin --- docs/assets/css/bootstrap.css | 76 ++++++++++++++++++++++++++++++++++ less/mixins.less | 7 ++++ less/responsive-utilities.less | 46 ++++++++++++++------ 3 files changed, 117 insertions(+), 12 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 28f561a323..708ea42ead 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -4578,14 +4578,41 @@ td.visible-sm { display: none !important; } +tr.visible-md { + display: none !important; +} + +th.visible-md, +td.visible-md { + display: none !important; +} + .visible-lg { display: none !important; } +tr.visible-lg { + display: none !important; +} + +th.visible-lg, +td.visible-lg { + display: none !important; +} + .hidden-sm { display: none !important; } +tr.hidden-sm { + display: none !important; +} + +th.hidden-sm, +td.hidden-sm { + display: none !important; +} + .hidden-md { display: block !important; } @@ -4616,6 +4643,13 @@ td.hidden-lg { .visible-sm { display: none !important; } + tr.visible-sm { + display: none !important; + } + th.visible-sm, + td.visible-sm { + display: none !important; + } .visible-md { display: block !important; } @@ -4629,6 +4663,13 @@ td.hidden-lg { .visible-lg { display: none !important; } + tr.visible-lg { + display: none !important; + } + th.visible-lg, + td.visible-lg { + display: none !important; + } .hidden-sm { display: block !important; } @@ -4642,6 +4683,13 @@ td.hidden-lg { .hidden-md { display: none !important; } + tr.hidden-md { + display: none !important; + } + th.hidden-md, + td.hidden-md { + display: none !important; + } .hidden-lg { display: block !important; } @@ -4658,9 +4706,23 @@ td.hidden-lg { .visible-sm { display: none !important; } + tr.visible-sm { + display: none !important; + } + th.visible-sm, + td.visible-sm { + display: none !important; + } .visible-md { display: none !important; } + tr.visible-md { + display: none !important; + } + th.visible-md, + td.visible-md { + display: none !important; + } .visible-lg { display: block !important; } @@ -4694,11 +4756,25 @@ td.hidden-lg { .hidden-lg { display: none !important; } + tr.hidden-lg { + display: none !important; + } + th.hidden-lg, + td.hidden-lg { + display: none !important; + } } .visible-print { display: none !important; } +tr.visible-print { + display: none !important; +} +th.visible-print, +td.visible-print { + display: none !important; +} @media print { .visible-print { diff --git a/less/mixins.less b/less/mixins.less index 24ca797ffd..3161a845fa 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -411,6 +411,13 @@ td& { display: table-cell !important; } } +.responsive-invisibility() { + display: none !important; + tr& { display: none !important; } + th&, + td& { display: none !important; } +} + // Grid System diff --git a/less/responsive-utilities.less b/less/responsive-utilities.less index 21e5d7556d..38dd9639af 100644 --- a/less/responsive-utilities.less +++ b/less/responsive-utilities.less @@ -36,13 +36,19 @@ // Visibility utilities // For Phones -.visible-sm { +.visible-sm { .responsive-visibility(); } -.visible-md { display: none !important; } -.visible-lg { display: none !important; } +.visible-md { + .responsive-invisibility(); +} +.visible-lg { + .responsive-invisibility(); +} -.hidden-sm { display: none !important; } +.hidden-sm { + .responsive-invisibility(); +} .hidden-md { .responsive-visibility(); } @@ -53,16 +59,22 @@ // Tablets & small desktops only @media (min-width: @screen-tablet) and (max-width: @screen-tablet-max) { - .visible-sm { display: none !important; } + .visible-sm { + .responsive-invisibility(); + } .visible-md { .responsive-visibility(); } - .visible-lg { display: none !important; } + .visible-lg { + .responsive-invisibility(); + } .hidden-sm { .responsive-visibility(); } - .hidden-md { display: none !important; } + .hidden-md { + .responsive-invisibility(); + } .hidden-lg { .responsive-visibility(); } @@ -70,8 +82,12 @@ // For desktops @media (min-width: @screen-desktop) { - .visible-sm { display: none !important; } - .visible-md { display: none !important; } + .visible-sm { + .responsive-invisibility(); + } + .visible-md { + .responsive-invisibility(); + } .visible-lg { .responsive-visibility(); } @@ -82,16 +98,22 @@ .hidden-md { .responsive-visibility(); } - .hidden-lg { display: none !important; } + .hidden-lg { + .responsive-invisibility(); + } } // Print utilities -.visible-print { display: none !important; } +.visible-print { + .responsive-invisibility(); +} .hidden-print { } @media print { .visible-print { .responsive-visibility(); } - .hidden-print { display: none !important; } + .hidden-print { + .responsive-invisibility(); + } } From a27ecfccf301f8996d7ddf6bd6f7f46f358a5a31 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Mon, 1 Jul 2013 17:32:07 -0700 Subject: [PATCH 085/128] Make more components mixin-friendly --- docs/assets/css/bootstrap.css | 18 +++----- less/accordion.less | 13 +++--- less/alerts.less | 15 +++---- less/carousel.less | 14 +------ less/close.less | 20 ++++----- less/labels.less | 6 +-- less/list-group.less | 77 ++++++++++++++++------------------- 7 files changed, 69 insertions(+), 94 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index c76723b999..e721aaa80f 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -2326,6 +2326,11 @@ input[type="button"].btn-block { border-bottom-left-radius: 4px; } +.list-group-item > .badge { + float: right; + margin-right: -15px; +} + .list-group-item-heading { margin-top: 0; margin-bottom: 5px; @@ -2365,16 +2370,6 @@ a.list-group-item.active .list-group-item-text { color: #e1edf7; } -.list-group-item > .badge, -.list-group-item > .glyphicon-chevron-right { - float: right; - margin-right: -15px; -} - -.list-group-item > .glyphicon + .badge { - margin-right: 5px; -} - .panel { padding: 15px; margin-bottom: 20px; @@ -4279,9 +4274,6 @@ a.list-group-item.active > .badge, .accordion-heading .accordion-toggle { display: block; padding: 8px 15px; -} - -.accordion-toggle { cursor: pointer; } diff --git a/less/accordion.less b/less/accordion.less index 59765f1540..0d18978317 100644 --- a/less/accordion.less +++ b/less/accordion.less @@ -16,15 +16,12 @@ } .accordion-heading { border-bottom: 0; -} -.accordion-heading .accordion-toggle { - display: block; - padding: 8px 15px; -} -// General toggle styles -.accordion-toggle { - cursor: pointer; + .accordion-toggle { + display: block; + padding: 8px 15px; + cursor: pointer; + } } // Inner needs the styles because you can't animate properly with any styles on the element diff --git a/less/alerts.less b/less/alerts.less index 24b7911437..596734152b 100644 --- a/less/alerts.less +++ b/less/alerts.less @@ -82,11 +82,12 @@ .alert-block { padding-top: 15px; padding-bottom: 15px; -} -.alert-block > p, -.alert-block > ul { - margin-bottom: 0; -} -.alert-block p + p { - margin-top: 5px; + + > p, + > ul { + margin-bottom: 0; + } + p + p { + margin-top: 5px; + } } diff --git a/less/carousel.less b/less/carousel.less index 13159db41f..d0f636cf8a 100644 --- a/less/carousel.less +++ b/less/carousel.less @@ -8,15 +8,10 @@ position: relative; } -// Wrap all slides, but only show the active one .carousel-inner { position: relative; overflow: hidden; width: 100%; -} - -// Immediate parent of all slides -.carousel-inner { > .item { display: none; @@ -80,13 +75,8 @@ color: #fff; text-align: center; text-shadow: 0 1px 2px rgba(0,0,0,.6); - - // we can't have this transition here - // because webkit cancels the carousel - // animation if you trip this while - // in the middle of another animation - // ;_; - // .transition(opacity .2s linear); + // We can't have this transition here because webkit cancels the carousel + // animation if you trip this while in the middle of another animation. // Set gradients for backgrounds &.left { diff --git a/less/close.less b/less/close.less index e879da4d62..5fe23b3dc8 100644 --- a/less/close.less +++ b/less/close.less @@ -19,15 +19,15 @@ cursor: pointer; .opacity(.5); } -} -// Additional properties for button version -// iOS requires the button element instead of an anchor tag. -// If you want the anchor version, it requires `href="#"`. -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; + // Additional properties for button version + // iOS requires the button element instead of an anchor tag. + // If you want the anchor version, it requires `href="#"`. + button& { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + } } diff --git a/less/labels.less b/less/labels.less index 92fe8f89e2..3d863f7dfc 100644 --- a/less/labels.less +++ b/less/labels.less @@ -15,7 +15,7 @@ background-color: @gray-light; border-radius: .25em; - // Add hover effects, but only for links + // Add hover effects, but only for links &[href] { &:hover, &:focus { @@ -32,7 +32,7 @@ .label-danger { background-color: @label-danger-bg; &[href] { - &:hover, + &:hover, &:focus { background-color: darken(@label-danger-bg, 10%); } @@ -67,4 +67,4 @@ background-color: darken(@label-info-bg, 10%); } } -} \ No newline at end of file +} diff --git a/less/list-group.less b/less/list-group.less index f9d9f612cd..34718633ac 100644 --- a/less/list-group.less +++ b/less/list-group.less @@ -22,16 +22,22 @@ // Place the border on the list items and negative margin up for better styling margin-bottom: -1px; border: 1px solid @list-group-border; -} -// Round the first and last items -.list-group-item:first-child { - .border-top-radius(@border-radius-base); -} -.list-group-item:last-child { - margin-bottom: 0; - .border-bottom-radius(@border-radius-base); -} + // Round the first and last items + &:first-child { + .border-top-radius(@border-radius-base); + } + &:last-child { + margin-bottom: 0; + .border-bottom-radius(@border-radius-base); + } + + // Align badges within list items + > .badge { + float: right; + margin-right: -15px; + } +} // Custom content options // ------------------------- @@ -50,45 +56,34 @@ // Custom content within linked items a.list-group-item { + // Colorize content accordingly .list-group-item-heading { color: #333; } .list-group-item-text { color: #555; } -} -// Hover state -a.list-group-item:hover, -a.list-group-item:focus { - text-decoration: none; - background-color: @list-group-hover-bg; -} - -// Active class on item itself, not parent -a.list-group-item.active { - z-index: 2; // Place active items above their siblings for proper border styling - color: @list-group-active-color; - background-color: @list-group-active-bg; - border-color: @list-group-active-border; - - // Force color to inherit for custom content - .list-group-item-heading { - color: inherit; + // Hover state + &:hover, + &:focus { + text-decoration: none; + background-color: @list-group-hover-bg; } - .list-group-item-text { - color: lighten(@list-group-active-bg, 40%); + + // Active class on item itself, not parent + &.active { + z-index: 2; // Place active items above their siblings for proper border styling + color: @list-group-active-color; + background-color: @list-group-active-bg; + border-color: @list-group-active-border; + + // Force color to inherit for custom content + .list-group-item-heading { + color: inherit; + } + .list-group-item-text { + color: lighten(@list-group-active-bg, 40%); + } } } - -// Chevrons and badges within list items -// ------------------------- - -.list-group-item > .badge, -.list-group-item > .glyphicon-chevron-right { - float: right; - margin-right: -15px; -} -.list-group-item > .glyphicon + .badge { - margin-right: 5px; -} From c9df1db50221fe033a0b7bc216fa2de5b6eea17a Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Mon, 1 Jul 2013 18:16:59 -0700 Subject: [PATCH 086/128] fixes #7367: slightly larger carousel indicators --- docs/assets/css/bootstrap.css | 14 ++++++++------ less/carousel.less | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 1ec4304d6a..f09e4789cb 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -4414,24 +4414,26 @@ a.list-group-item.active > .badge, z-index: 15; width: 100px; padding-left: 0; - margin: 0 0 0 -50px; + margin-left: -50px; text-align: center; list-style: none; } .carousel-indicators li { display: inline-block; - width: 8px; - height: 8px; - margin-right: 0; - margin-left: 0; + width: 10px; + height: 10px; + margin: 1px; text-indent: -999px; cursor: pointer; border: 1px solid #fff; - border-radius: 5px; + border-radius: 10px; } .carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; background-color: #fff; } diff --git a/less/carousel.less b/less/carousel.less index d0f636cf8a..8834c6f7b8 100644 --- a/less/carousel.less +++ b/less/carousel.less @@ -120,23 +120,25 @@ left: 50%; z-index: 15; width: 100px; - margin: 0 0 0 -50px; + margin-left: -50px; padding-left: 0; list-style: none; text-align: center; li { display: inline-block; - width: 8px; - height: 8px; - margin-left: 0; - margin-right: 0; + width: 10px; + height: 10px; + margin: 1px; text-indent: -999px; border: 1px solid #fff; - border-radius: 5px; + border-radius: 10px; cursor: pointer; } .active { + margin: 0; + width: 12px; + height: 12px; background-color: #fff; } } From 9da90adb4ca09e4c3b5ec549211c07292ec38d71 Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Mon, 1 Jul 2013 18:21:19 -0700 Subject: [PATCH 087/128] fixes #8068: add .help-block to form field state mixin --- docs/assets/css/bootstrap.css | 3 +++ less/mixins.less | 1 + 2 files changed, 4 insertions(+) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index f09e4789cb..24d2b690cd 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -1605,6 +1605,7 @@ input[type="color"].input-small { border-radius: 3px; } +.has-warning .help-block, .has-warning .control-label { color: #c09853; } @@ -1628,6 +1629,7 @@ input[type="color"].input-small { border-color: #c09853; } +.has-error .help-block, .has-error .control-label { color: #b94a48; } @@ -1651,6 +1653,7 @@ input[type="color"].input-small { border-color: #b94a48; } +.has-success .help-block, .has-success .control-label { color: #468847; } diff --git a/less/mixins.less b/less/mixins.less index 24ca797ffd..6a24beb03d 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -481,6 +481,7 @@ // Generate form validation states .form-field-validation(@text-color: #555, @border-color: #ccc, @background-color: #f5f5f5) { // Color the label text + .help-block, .control-label { color: @text-color; } From 08b3515fd7dfa76cdbb92d52a15d6797f3a1c4ed Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Mon, 1 Jul 2013 19:42:26 -0700 Subject: [PATCH 088/128] fixes #8345: use inline-block on .img-responsive --- docs/assets/css/bootstrap.css | 14 +++++--------- docs/assets/css/docs.css | 4 +++- less/mixins.less | 2 -- less/scaffolding.less | 2 +- less/thumbnails.less | 7 ++----- 5 files changed, 11 insertions(+), 18 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 24d2b690cd..cb80d5c36f 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -329,7 +329,7 @@ img { } .img-responsive { - display: block; + display: inline-block; height: auto; max-width: 100%; } @@ -3957,19 +3957,15 @@ button.close { transition: all 0.2s ease-in-out; } -.thumbnail > img, -.img-thumbnail { - display: block; - height: auto; - max-width: 100%; -} - .thumbnail { display: block; } +.thumbnail > img, .img-thumbnail { display: inline-block; + height: auto; + max-width: 100%; } a.thumbnail:hover, @@ -4308,7 +4304,7 @@ a.list-group-item.active > .badge, .carousel-inner > .item > img, .carousel-inner > .item > a > img { - display: block; + display: inline-block; height: auto; max-width: 100%; line-height: 1; diff --git a/docs/assets/css/docs.css b/docs/assets/css/docs.css index f07654a98f..31047b5d78 100644 --- a/docs/assets/css/docs.css +++ b/docs/assets/css/docs.css @@ -602,6 +602,7 @@ body { } .footer-links { margin: 10px 0; + padding-left: 0; } .footer-links li { display: inline; @@ -617,7 +618,8 @@ body { } .bs-social-buttons { display: inline-block; - margin: 0; + margin-bottom: 0; + padding-left: 0; list-style: none; } .bs-social-buttons li { diff --git a/less/mixins.less b/less/mixins.less index 6a24beb03d..7d93843b95 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -411,8 +411,6 @@ td& { display: table-cell !important; } } - - // Grid System // ----------- diff --git a/less/scaffolding.less b/less/scaffolding.less index 79447c3f5b..88b6c7c6e6 100644 --- a/less/scaffolding.less +++ b/less/scaffolding.less @@ -64,7 +64,7 @@ img { // Responsive images (ensure images don't scale beyond their parents) .img-responsive { - display: block; + display: inline-block; max-width: 100%; // Part 1: Set a maximum relative to the parent height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching } diff --git a/less/thumbnails.less b/less/thumbnails.less index b15b8d25ab..1f896708d8 100644 --- a/less/thumbnails.less +++ b/less/thumbnails.less @@ -17,15 +17,12 @@ border-radius: @thumbnail-border-radius; .transition(all .2s ease-in-out); } -.thumbnail > img, -.img-thumbnail { - .img-responsive(); -} .thumbnail { display: block; } +.thumbnail > img, .img-thumbnail { - display: inline-block; + .img-responsive(); } // Add a hover state for linked versions only From 5b2d933524616c9948c9e5229c14e109aa83727a Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Mon, 1 Jul 2013 19:49:29 -0700 Subject: [PATCH 089/128] Fixes #8350: unfuck Chrome number input element cursor /cc @cvrebert @eintnohick --- docs/assets/css/bootstrap.css | 4 ++++ less/forms.less | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index cb80d5c36f..6a426850af 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -1486,6 +1486,10 @@ input[type="checkbox"]:focus { outline-offset: -2px; } +input[type="number"]::-webkit-outer-spin-button input[type="number"]::-webkit-inner-spin-button { + height: auto; +} + input:-moz-placeholder, textarea:-moz-placeholder { color: #999999; diff --git a/less/forms.less b/less/forms.less index ea340007c9..45f4537893 100644 --- a/less/forms.less +++ b/less/forms.less @@ -149,6 +149,16 @@ input[type="checkbox"]:focus { .tab-focus(); } +// Fix for Chrome number input +// Setting certain font-sizes causes the `I` bar to appear on hover of the bottom increment button. +// See https://github.com/twitter/bootstrap/issues/8350 for more. +input[type="number"] { + &::-webkit-outer-spin-button + &::-webkit-inner-spin-button { + height: auto; + } +} + // Placeholder // ------------------------- From 749dc35328862896d613bfe72fc961e490037fad Mon Sep 17 00:00:00 2001 From: Mark Otto Date: Mon, 1 Jul 2013 20:18:44 -0700 Subject: [PATCH 090/128] comma for the guardian angel /cc @cvrebert --- docs/assets/css/bootstrap.css | 3 ++- less/forms.less | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 90482621e3..87b021ee7f 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -1486,7 +1486,8 @@ input[type="checkbox"]:focus { outline-offset: -2px; } -input[type="number"]::-webkit-outer-spin-button input[type="number"]::-webkit-inner-spin-button { +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { height: auto; } diff --git a/less/forms.less b/less/forms.less index 45f4537893..2389036daf 100644 --- a/less/forms.less +++ b/less/forms.less @@ -153,7 +153,7 @@ input[type="checkbox"]:focus { // Setting certain font-sizes causes the `I` bar to appear on hover of the bottom increment button. // See https://github.com/twitter/bootstrap/issues/8350 for more. input[type="number"] { - &::-webkit-outer-spin-button + &::-webkit-outer-spin-button, &::-webkit-inner-spin-button { height: auto; } From da072fff21f565521d3dbe1f5f4f42550ecc989e Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Tue, 2 Jul 2013 11:25:57 -0700 Subject: [PATCH 091/128] refactor tables.less to use nesting more --- docs/assets/css/bootstrap.css | 8 +-- less/tables.less | 106 ++++++++++++++++++++-------------- 2 files changed, 66 insertions(+), 48 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 87b021ee7f..a28f94f064 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -1126,10 +1126,10 @@ th { } .table caption + thead tr:first-child th, -.table caption + thead tr:first-child td, .table colgroup + thead tr:first-child th, -.table colgroup + thead tr:first-child td, .table thead:first-child tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child td, .table thead:first-child tr:first-child td { border-top: 0; } @@ -1212,15 +1212,15 @@ th { } .table-bordered > caption + thead > tr:first-child > th:first-child, -.table-bordered > caption + tbody > tr:first-child > td:first-child, .table-bordered > colgroup + thead > tr:first-child > th:first-child, +.table-bordered > caption + tbody > tr:first-child > td:first-child, .table-bordered > colgroup + tbody > tr:first-child > td:first-child { border-top-left-radius: 4px; } .table-bordered > caption + thead > tr:first-child > th:last-child, -.table-bordered > caption + tbody > tr:first-child > td:last-child, .table-bordered > colgroup + thead > tr:first-child > th:last-child, +.table-bordered > caption + tbody > tr:first-child > td:last-child, .table-bordered > colgroup + tbody > tr:first-child > td:last-child { border-top-right-radius: 4px; } diff --git a/less/tables.less b/less/tables.less index 392593902a..ebfb1c6568 100644 --- a/less/tables.less +++ b/less/tables.less @@ -19,27 +19,31 @@ th { width: 100%; margin-bottom: @line-height-computed; // Cells - thead > tr > th, - tbody > tr > th, - thead > tr > td, - tbody > tr > td { - padding: 8px; - line-height: @line-height-base; - vertical-align: top; - border-top: 1px solid @table-border-color; + thead, + tbody { + > tr { + > th, + > td { + padding: 8px; + line-height: @line-height-base; + vertical-align: top; + border-top: 1px solid @table-border-color; + } + } } // Bottom align for column headings thead > tr > th { vertical-align: bottom; } // Remove top border from thead by default - caption + thead tr:first-child th, - caption + thead tr:first-child td, - colgroup + thead tr:first-child th, - colgroup + thead tr:first-child td, - thead:first-child tr:first-child th, - thead:first-child tr:first-child td { - border-top: 0; + caption + thead, + colgroup + thead, + thead:first-child { + tr:first-child { + th, td { + border-top: 0; + } + } } // Account for multiple tbody instances tbody + tbody { @@ -58,11 +62,14 @@ th { // ------------------------------- .table-condensed { - thead > tr > th, - tbody > tr > th, - thead > tr > td, - tbody > tr > td { - padding: 4px 5px; + thead, + tbody { + > tr { + > th, + > td { + padding: 4px 5px; + } + } } } @@ -77,11 +84,14 @@ th { border-left: 0; border-radius: @border-radius-base; - > thead > tr > th, - > tbody > tr > th, - > thead > tr > td, - > tbody > tr > td { - border-left: 1px solid @table-border-color; + > thead, + > tbody { + > tr { + > th, + > td { + border-left: 1px solid @table-border-color; + } + } } // Prevent a double border > caption + thead > tr:first-child th, @@ -131,15 +141,16 @@ th { } // Special fixes to round the left border on the first td/th - > caption + thead > tr:first-child > th, - > caption + tbody > tr:first-child > td, - > colgroup + thead > tr:first-child > th, - > colgroup + tbody > tr:first-child > td { - &:first-child{ - border-top-left-radius: @border-radius-base; - } - &:last-child{ - border-top-right-radius: @border-radius-base; + > caption, + > colgroup { + + thead > tr:first-child > th, + + tbody > tr:first-child > td { + &:first-child { + border-top-left-radius: @border-radius-base; + } + &:last-child { + border-top-right-radius: @border-radius-base; + } } } } @@ -152,9 +163,11 @@ th { // Default zebra-stripe styles (alternating gray and transparent backgrounds) .table-striped { > tbody { - > tr:nth-child(odd) > td, - > tr:nth-child(odd) > th { - background-color: @table-bg-accent; + > tr:nth-child(odd) { + > td, + > th { + background-color: @table-bg-accent; + } } } } @@ -167,9 +180,11 @@ th { // Placed here since it has to come after the potential zebra striping .table-hover { > tbody { - > tr:hover > td, - > tr:hover > th { - background-color: @table-bg-hover; + > tr:hover { + > td, + > th { + background-color: @table-bg-hover; + } } } } @@ -184,10 +199,13 @@ table col[class^="col-"] { float: none; display: table-column; } -table td[class^="col-"], -table th[class^="col-"] { - float: none; - display: table-cell; +table { + td, th { + &[class^="col-"] { + float: none; + display: table-cell; + } + } } From 5b69d3405301ebf9f7047a459f727cbe5f73aedd Mon Sep 17 00:00:00 2001 From: liuyl Date: Wed, 3 Jul 2013 20:37:36 +0800 Subject: [PATCH 092/128] use sibling selector instead of pseudo selector --- docs/assets/css/bootstrap.css | 8 ++------ docs/components.html | 2 +- less/breadcrumbs.less | 7 ++----- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index 87b021ee7f..dbe48cbaf0 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -3289,15 +3289,11 @@ button.close { text-shadow: 0 1px 0 #fff; } -.breadcrumb > li:after { +.breadcrumb > li + li:before { display: inline-block; padding: 0 5px; color: #ccc; - content: "\00a0 /"; -} - -.breadcrumb > li:last-child:after { - display: none; + content: "/\00a0"; } .breadcrumb > .active { diff --git a/docs/components.html b/docs/components.html index 79b00e9913..4e763d6d4d 100644 --- a/docs/components.html +++ b/docs/components.html @@ -1016,7 +1016,7 @@ body { padding-bottom: 70px; }

    Breadcrumbs

    Indicate the current page's location within a navigational hierarchy.

    -

    Separators are automatically added in CSS through :after and content.

    +

    Separators are automatically added in CSS through :before and content.

    -{% endhighlight %} - -

    With badges and chevrons

    -

    Why not both?

    -
    -
      -
    • - - 14 - Cras justo odio -
    • -
    • - - 2 - Dapibus ac facilisis in -
    • -
    • - - 1 - Morbi leo risus -
    • -
    -
    -{% highlight html %} -
      -
    • - - 14 - Cras justo odio -
    • -
    {% endhighlight %}

    Linked list group

    @@ -1906,19 +1848,14 @@ body { padding-bottom: 70px; }
    @@ -1926,19 +1863,14 @@ body { padding-bottom: 70px; } {% endhighlight %} From e757ddd60fb48849159e19abb9ebbc6df10fc78d Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sat, 6 Jul 2013 22:01:34 -0700 Subject: [PATCH 100/128] extract .alert-variant mix-in --- less/alerts.less | 30 +++--------------------------- less/mixins.less | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 27 deletions(-) diff --git a/less/alerts.less b/less/alerts.less index 596734152b..66aa6cf246 100644 --- a/less/alerts.less +++ b/less/alerts.less @@ -43,37 +43,13 @@ // ------------------------- .alert-success { - background-color: @alert-success-bg; - border-color: @alert-success-border; - color: @alert-success-text; - hr { - border-top-color: darken(@alert-success-border, 5%); - } - .alert-link { - color: darken(@alert-success-text, 10%); - } + .alert-variant(@alert-success-bg, @alert-success-border, @alert-success-text); } .alert-danger { - background-color: @alert-danger-bg; - border-color: @alert-danger-border; - color: @alert-danger-text; - hr { - border-top-color: darken(@alert-danger-border, 5%); - } - .alert-link { - color: darken(@alert-danger-text, 10%); - } + .alert-variant(@alert-danger-bg, @alert-danger-border, @alert-danger-text); } .alert-info { - background-color: @alert-info-bg; - border-color: @alert-info-border; - color: @alert-info-text; - hr { - border-top-color: darken(@alert-info-border, 5%); - } - .alert-link { - color: darken(@alert-info-text, 10%); - } + .alert-variant(@alert-info-bg, @alert-info-border, @alert-info-text); } // Block alerts diff --git a/less/mixins.less b/less/mixins.less index eb05623ac9..8bbb551a5a 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -361,6 +361,20 @@ border-bottom: 1px solid @bottom; } +// Alerts +// ------------------------- +.alert-variant(@background, @border, @text-color) { + background-color: @background; + border-color: @border; + color: @text-color; + hr { + border-top-color: darken(@border, 5%); + } + .alert-link { + color: darken(@text-color, 10%); + } +} + // Button psuedo states // ------------------------- // Easily pump out default styles, as well as :hover, :focus, :active, From f12d6401f22bc4c4f46bb8fa7fb2e7cf087b99d9 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sat, 6 Jul 2013 22:07:03 -0700 Subject: [PATCH 101/128] more nesting in button-groups.less --- less/button-groups.less | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/less/button-groups.less b/less/button-groups.less index 408e7c75d9..9500fecbb0 100644 --- a/less/button-groups.less +++ b/less/button-groups.less @@ -72,9 +72,11 @@ .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } -.btn-group > .btn-group:first-child > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { - .border-right-radius(0); +.btn-group > .btn-group:first-child { + > .btn:last-child, + > .dropdown-toggle { + .border-right-radius(0); + } } .btn-group > .btn-group:last-child > .btn:first-child { .border-left-radius(0); @@ -134,14 +136,16 @@ margin-top: -1px; } } -.btn-group-vertical .btn:not(:first-child):not(:last-child) { - border-radius: 0; -} -.btn-group-vertical .btn:first-child { - .border-bottom-radius(0); -} -.btn-group-vertical .btn:last-child { - .border-top-radius(0); +.btn-group-vertical .btn { + &:not(:first-child):not(:last-child) { + border-radius: 0; + } + &:first-child { + .border-bottom-radius(0); + } + &:last-child { + .border-top-radius(0); + } } From 15bd6eadf39c4bbd5ac0971e9d77d26ab85635af Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sat, 6 Jul 2013 21:51:47 -0700 Subject: [PATCH 102/128] more nesting in navs.less --- less/navs.less | 73 ++++++++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/less/navs.less b/less/navs.less index d42ad35883..1b1e18ed0a 100644 --- a/less/navs.less +++ b/less/navs.less @@ -31,13 +31,14 @@ // Disabled state sets text to gray and nukes hover/tab effects &.disabled > a { color: @gray-light; - } - &.disabled > a:hover, - &.disabled > a:focus { - color: @gray-light; - text-decoration: none; - background-color: transparent; - cursor: default; + + &:hover, + &:focus { + color: @gray-light; + text-decoration: none; + background-color: transparent; + cursor: default; + } } // Space the headers out when they follow another list item (link) @@ -47,15 +48,17 @@ } // Open dropdowns - &.open > a, - &.open > a:hover, - &.open > a:focus { - color: #fff; - background-color: @link-color; - border-color: @link-color; - .caret { - border-top-color: #fff; - border-bottom-color: #fff; + &.open > a { + &, + &:hover, + &:focus { + color: #fff; + background-color: @link-color; + border-color: @link-color; + .caret { + border-top-color: #fff; + border-bottom-color: #fff; + } } } @@ -99,14 +102,16 @@ } // Active state, and it's :hover to override normal :hover - &.active > a, - &.active > a:hover, - &.active > a:focus { - color: @gray; - background-color: @body-bg; - border: 1px solid #ddd; - border-bottom-color: transparent; - cursor: default; + &.active > a { + &, + &:hover, + &:focus { + color: @gray; + background-color: @body-bg; + border: 1px solid #ddd; + border-bottom-color: transparent; + cursor: default; + } } } // pulling this in mainly for less shorthand @@ -134,11 +139,13 @@ } // Active state - &.active > a, - &.active > a:hover, - &.active > a:focus { - color: #fff; - background-color: @component-active-bg; + &.active > a { + &, + &:hover, + &:focus { + color: #fff; + background-color: @component-active-bg; + } } } } @@ -218,9 +225,11 @@ .pill-content > .pill-pane { display: none; } -.tab-content > .active, -.pill-content > .active { - display: block; +.tab-content, +.pill-content { + > .active { + display: block; + } } From a7dd1088d247b533c483afb0cde85e9c49ab5ea7 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sun, 7 Jul 2013 14:26:51 -0700 Subject: [PATCH 103/128] extract .label-variant mix-in --- less/labels.less | 32 ++++---------------------------- less/mixins.less | 12 ++++++++++++ 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/less/labels.less b/less/labels.less index 3d863f7dfc..d7852d1077 100644 --- a/less/labels.less +++ b/less/labels.less @@ -30,41 +30,17 @@ // Colors // Contextual variations (linked labels get darker on :hover) .label-danger { - background-color: @label-danger-bg; - &[href] { - &:hover, - &:focus { - background-color: darken(@label-danger-bg, 10%); - } - } + .label-variant(@label-danger-bg); } .label-success { - background-color: @label-success-bg; - &[href] { - &:hover, - &:focus { - background-color: darken(@label-success-bg, 10%); - } - } + .label-variant(@label-success-bg); } .label-warning { - background-color: @label-warning-bg; - &[href] { - &:hover, - &:focus { - background-color: darken(@label-warning-bg, 10%); - } - } + .label-variant(@label-warning-bg); } .label-info { - background-color: @label-info-bg; - &[href] { - &:hover, - &:focus { - background-color: darken(@label-info-bg, 10%); - } - } + .label-variant(@label-info-bg); } diff --git a/less/mixins.less b/less/mixins.less index eb05623ac9..c4e99f2e26 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -392,6 +392,18 @@ } } +// Labels +// ------------------------- +.label-variant(@color) { + background-color: @color; + &[href] { + &:hover, + &:focus { + background-color: darken(@color, 10%); + } + } +} + // Navbar vertical align // ------------------------- // Vertically center elements in the navbar. From d2fb35d546701325686487fafca73d992b2bb74a Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sun, 7 Jul 2013 15:06:16 -0700 Subject: [PATCH 104/128] extract .progress-bar-variant mix-in --- less/mixins.less | 9 +++++++++ less/progress-bars.less | 20 ++++---------------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/less/mixins.less b/less/mixins.less index eb05623ac9..a86b7f80e4 100644 --- a/less/mixins.less +++ b/less/mixins.less @@ -401,6 +401,15 @@ margin-bottom: ((@navbar-height - @element-height) / 2); } +// Progress bars +// ------------------------- +.progress-bar-variant(@color) { + background-color: @color; + .progress-striped & { + #gradient > .striped(@color); + } +} + // Responsive utilities // ------------------------- // More easily include all the states for responsive-utilities.less. diff --git a/less/progress-bars.less b/less/progress-bars.less index e963fa9681..59f81048f0 100644 --- a/less/progress-bars.less +++ b/less/progress-bars.less @@ -87,32 +87,20 @@ // Danger (red) .progress-bar-danger { - background-color: @progress-bar-danger-bg; - .progress-striped & { - #gradient > .striped(@progress-bar-danger-bg); - } + .progress-bar-variant(@progress-bar-danger-bg); } // Success (green) .progress-bar-success { - background-color: @progress-bar-success-bg; - .progress-striped & { - #gradient > .striped(@progress-bar-success-bg); - } + .progress-bar-variant(@progress-bar-success-bg); } // Warning (orange) .progress-bar-warning { - background-color: @progress-bar-warning-bg; - .progress-striped & { - #gradient > .striped(@progress-bar-warning-bg); - } + .progress-bar-variant(@progress-bar-warning-bg); } // Info (teal) .progress-bar-info { - background-color: @progress-bar-info-bg; - .progress-striped & { - #gradient > .striped(@progress-bar-info-bg); - } + .progress-bar-variant(@progress-bar-info-bg); } From 6e03639af22e2c1c06c5e146192c79b41f1d7385 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sat, 6 Jul 2013 22:13:37 -0700 Subject: [PATCH 105/128] more nesting in buttons.less --- docs/assets/css/bootstrap.css | 14 ++++++------ less/buttons.less | 43 +++++++++++++++++------------------ 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index d3bea53f3c..cad42745ca 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -2074,6 +2074,13 @@ fieldset[disabled] .btn-info.active { border-color: #5bc0de; } +.btn-link { + font-weight: normal; + color: #428bca; + cursor: pointer; + border-radius: 0; +} + .btn-link, .btn-link:active, .btn-link[disabled], @@ -2091,13 +2098,6 @@ fieldset[disabled] .btn-link { border-color: transparent; } -.btn-link { - font-weight: normal; - color: #428bca; - cursor: pointer; - border-radius: 0; -} - .btn-link:hover, .btn-link:focus { color: #2a6496; diff --git a/less/buttons.less b/less/buttons.less index 6280d3448a..3cc7da00d1 100644 --- a/less/buttons.less +++ b/less/buttons.less @@ -81,33 +81,32 @@ // ------------------------- // Make a button look and behave like a link -.btn-link, -.btn-link:active, -.btn-link[disabled], -fieldset[disabled] .btn-link { - background-color: transparent; - background-image: none; - .box-shadow(none); -} -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; -} .btn-link { color: @link-color; font-weight: normal; cursor: pointer; border-radius: 0; -} -.btn-link:hover, -.btn-link:focus { - color: @link-hover-color; - text-decoration: underline; - background-color: transparent; -} -.btn-link { + + &, + &:active, + &[disabled], + fieldset[disabled] & { + background-color: transparent; + background-image: none; + .box-shadow(none); + } + &, + &:hover, + &:focus, + &:active { + border-color: transparent; + } + &:hover, + &:focus { + color: @link-hover-color; + text-decoration: underline; + background-color: transparent; + } &[disabled], fieldset[disabled] & { &:hover, From d9cd5e4e0c252ca7db3bc8a217a576ad9e8e6257 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sun, 7 Jul 2013 14:40:18 -0700 Subject: [PATCH 106/128] more nesting in navbar.less --- docs/assets/css/bootstrap.css | 10 +-- less/navbar.less | 118 +++++++++++++++++++--------------- 2 files changed, 71 insertions(+), 57 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index d3bea53f3c..076ead20f8 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -2948,11 +2948,6 @@ button.close { background-color: #d5d5d5; } -.navbar-nav > .dropdown > a .caret { - border-top-color: #777777; - border-bottom-color: #777777; -} - .navbar-nav > .open > a .caret, .navbar-nav > .open > a:hover .caret, .navbar-nav > .open > a:focus .caret { @@ -2960,6 +2955,11 @@ button.close { border-bottom-color: #555555; } +.navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + .navbar-nav.pull-right > li > .dropdown-menu, .navbar-nav > li > .dropdown-menu.pull-right { right: 0; diff --git a/less/navbar.less b/less/navbar.less index b8283601d6..7a6e80488f 100644 --- a/less/navbar.less +++ b/less/navbar.less @@ -30,23 +30,27 @@ color: @navbar-link-color; line-height: 20px; border-radius: @border-radius-base; + &:hover, + &:focus { + color: @navbar-link-hover-color; + background-color: @navbar-link-hover-bg; + } } - > li > a:hover, - > li > a:focus { - color: @navbar-link-hover-color; - background-color: @navbar-link-hover-bg; + > .active > a { + &, + &:hover, + &:focus { + color: @navbar-link-active-color; + background-color: @navbar-link-active-bg; + } } - > .active > a, - > .active > a:hover, - > .active > a:focus { - color: @navbar-link-active-color; - background-color: @navbar-link-active-bg; - } - > .disabled > a, - > .disabled > a:hover, - > .disabled > a:focus { - color: @navbar-link-disabled-color; - background-color: @navbar-link-disabled-bg; + > .disabled > a { + &, + &:hover, + &:focus { + color: @navbar-link-disabled-color; + background-color: @navbar-link-disabled-bg; + } } // Right aligned contents @@ -168,22 +172,22 @@ } // Remove background color from open dropdown - > .open > a, - > .open > a:hover, - > .open > a:focus { - background-color: @navbar-link-active-bg; - color: @navbar-link-active-color; + > .open > a { + &, + &:hover, + &:focus { + background-color: @navbar-link-active-bg; + color: @navbar-link-active-color; + .caret { + border-top-color: @navbar-link-active-color; + border-bottom-color: @navbar-link-active-color; + } + } } > .dropdown > a .caret { border-top-color: @navbar-link-color; border-bottom-color: @navbar-link-color; } - > .open > a .caret, - > .open > a:hover .caret, - > .open > a:focus .caret { - border-top-color: @navbar-link-active-color; - border-bottom-color: @navbar-link-active-color; - } } // Right aligned menus need alt position @@ -217,23 +221,28 @@ .navbar-nav { > li > a { color: @navbar-inverse-link-color; + + &:hover, + &:focus { + color: @navbar-inverse-link-hover-color; + background-color: @navbar-inverse-link-hover-bg; + } } - > li > a:hover, - > li > a:focus { - color: @navbar-inverse-link-hover-color; - background-color: @navbar-inverse-link-hover-bg; + > .active > a { + &, + &:hover, + &:focus { + color: @navbar-inverse-link-active-color; + background-color: @navbar-inverse-link-active-bg; + } } - > .active > a, - > .active > a:hover, - > .active > a:focus { - color: @navbar-inverse-link-active-color; - background-color: @navbar-inverse-link-active-bg; - } - > .disabled > a, - > .disabled > a:hover, - > .disabled > a:focus { - color: @navbar-inverse-link-disabled-color; - background-color: @navbar-inverse-link-disabled-bg; + > .disabled > a { + &, + &:hover, + &:focus { + color: @navbar-inverse-link-disabled-color; + background-color: @navbar-inverse-link-disabled-bg; + } } } @@ -251,11 +260,13 @@ // Dropdowns .navbar-nav { - > .open > a, - > .open > a:hover, - > .open > a:focus { - background-color: @navbar-inverse-link-active-bg; - color: @navbar-inverse-link-active-color; + > .open > a { + &, + &:hover, + &:focus { + background-color: @navbar-inverse-link-active-bg; + color: @navbar-inverse-link-active-color; + } } > .dropdown > a:hover .caret { border-top-color: @navbar-inverse-link-hover-color; @@ -265,13 +276,16 @@ border-top-color: @navbar-inverse-link-color; border-bottom-color: @navbar-inverse-link-color; } - > .open > a .caret, - > .open > a:hover .caret, - > .open > a:focus .caret { - border-top-color: @navbar-inverse-link-active-color; - border-bottom-color: @navbar-inverse-link-active-color; + > .open > a { + &, + &:hover, + &:focus { + .caret { + border-top-color: @navbar-inverse-link-active-color; + border-bottom-color: @navbar-inverse-link-active-color; + } + } } - } } From 6bda16f6beb9db168d52b5e1f291328d8fd5d7c9 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sun, 7 Jul 2013 14:52:00 -0700 Subject: [PATCH 107/128] use nesting more in pagination.less --- docs/assets/css/bootstrap.css | 26 +++++----- less/pagination.less | 90 +++++++++++++++++++---------------- 2 files changed, 63 insertions(+), 53 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index d3bea53f3c..88eaf2cfa7 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -3323,6 +3323,19 @@ button.close { border-left-width: 0; } +.pagination > li:first-child > a, +.pagination > li:first-child > span { + border-left-width: 1px; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} + +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + .pagination > li > a:hover, .pagination > li > a:focus, .pagination > .active > a, @@ -3345,19 +3358,6 @@ button.close { background-color: #ffffff; } -.pagination > li:first-child > a, -.pagination > li:first-child > span { - border-left-width: 1px; - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; -} - -.pagination > li:last-child > a, -.pagination > li:last-child > span { - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} - .pagination-large > li > a, .pagination-large > li > span { padding: 14px 16px; diff --git a/less/pagination.less b/less/pagination.less index 48201b2ef2..45c53ebcef 100644 --- a/less/pagination.less +++ b/less/pagination.less @@ -10,7 +10,7 @@ > li { display: inline; // Remove list-style and block-level defaults > a, - > span,{ + > span { float: left; // Collapse white-space padding: 4px 12px; line-height: @line-height-base; @@ -19,6 +19,19 @@ border: 1px solid @pagination-border; border-left-width: 0; } + &:first-child { + > a, + > span { + border-left-width: 1px; + .border-left-radius(@border-radius-base); + } + } + &:last-child { + > a, + > span { + .border-right-radius(@border-radius-base); + } + } } > li > a:hover, @@ -43,21 +56,6 @@ cursor: default; } } - - > li:first-child { - > a, - > span { - border-left-width: 1px; - .border-left-radius(@border-radius-base); - } - } - - > li:last-child { - > a, - > span { - .border-right-radius(@border-radius-base); - } - } } // Sizing @@ -65,34 +63,46 @@ // Large .pagination-large { - > li > a, - > li > span { - padding: @padding-large-vertical @padding-large-horizontal; - font-size: @font-size-large; - } - > li:first-child > a, - > li:first-child > span { - .border-left-radius(@border-radius-large); - } - > li:last-child > a, - > li:last-child > span { - .border-right-radius(@border-radius-large); + > li { + > a, + > span { + padding: @padding-large-vertical @padding-large-horizontal; + font-size: @font-size-large; + } + &:first-child { + > a, + > span { + .border-left-radius(@border-radius-large); + } + } + &:last-child { + > a, + > span { + .border-right-radius(@border-radius-large); + } + } } } // Small .pagination-small { - > li > a, - > li > span { - padding: @padding-small-vertical @padding-small-horizontal; - font-size: @font-size-small; - } - > li:first-child > a, - > li:first-child > span { - .border-left-radius(@border-radius-small); - } - > li:last-child > a, - > li:last-child > span { - .border-right-radius(@border-radius-small); + > li { + > a, + > span { + padding: @padding-small-vertical @padding-small-horizontal; + font-size: @font-size-small; + } + &:first-child { + > a, + > span { + .border-left-radius(@border-radius-small); + } + } + &:last-child { + > a, + > span { + .border-right-radius(@border-radius-small); + } + } } } From dcf1b60f2bb9f0aab63f09c1af533cfcedfbc8d2 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sat, 6 Jul 2013 22:02:58 -0700 Subject: [PATCH 108/128] refactor {badges,jumbotron,media,popover,print}.less (mostly nesting) --- less/badges.less | 8 +++----- less/jumbotron.less | 5 +---- less/media.less | 12 +++++++----- less/popovers.less | 18 ++++++++++-------- less/print.less | 16 ++++++++++------ 5 files changed, 31 insertions(+), 28 deletions(-) diff --git a/less/badges.less b/less/badges.less index 665aed9218..e1a2e9c5a6 100644 --- a/less/badges.less +++ b/less/badges.less @@ -35,11 +35,9 @@ a.badge { } // Quick fix for labels/badges in buttons -.btn { - .badge { - position: relative; - top: -1px; - } +.btn .badge { + position: relative; + top: -1px; } // Account for counters in navs diff --git a/less/jumbotron.less b/less/jumbotron.less index 39bec9be68..ca51b481ae 100644 --- a/less/jumbotron.less +++ b/less/jumbotron.less @@ -18,13 +18,10 @@ p { line-height: 1.4; } -} -@media screen and (min-width: @screen-tablet) { - .jumbotron { + @media screen and (min-width: @screen-tablet) { padding: 50px 60px; border-radius: @border-radius-large; // Only round corners at higher resolutions - h1 { font-size: (@font-size-base * 4.5); } diff --git a/less/media.less b/less/media.less index bcba8081c1..5ad22cd6d5 100644 --- a/less/media.less +++ b/less/media.less @@ -36,11 +36,13 @@ // Media image alignment // ------------------------- -.media > .pull-left { - margin-right: 10px; -} -.media > .pull-right { - margin-left: 10px; +.media { + > .pull-left { + margin-right: 10px; + } + > .pull-right { + margin-left: 10px; + } } diff --git a/less/popovers.less b/less/popovers.less index 2c79da9a03..33488e885e 100644 --- a/less/popovers.less +++ b/less/popovers.less @@ -50,14 +50,16 @@ // // .arrow is outer, .arrow:after is inner -.popover .arrow, -.popover .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; +.popover .arrow { + &, + &:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + } } .popover .arrow { border-width: @popover-arrow-outer-width; diff --git a/less/print.less b/less/print.less index 64c1ff9fa9..7fe459a2ed 100644 --- a/less/print.less +++ b/less/print.less @@ -71,13 +71,17 @@ .navbar { display: none; } - .table td, - .table th { - background-color: #fff !important; + .table { + td, + th { + background-color: #fff !important; + } } - .btn > .caret, - .dropup > .btn > .caret { - border-top-color: #000 !important; + .btn, + .dropup > .btn { + > .caret { + border-top-color: #000 !important; + } } .label { border: 1px solid #000; From 7e154740f3c9a06cfdd406672ba0ba143cd50b4d Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sat, 6 Jul 2013 22:27:56 -0700 Subject: [PATCH 109/128] use LESS nesting more in dropdowns.less --- less/dropdowns.less | 54 ++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/less/dropdowns.less b/less/dropdowns.less index 0a412f9c3a..8ae9dbba15 100644 --- a/less/dropdowns.less +++ b/less/dropdowns.less @@ -62,40 +62,48 @@ // Hover/Focus state // ----------- -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - text-decoration: none; - color: @dropdown-link-hover-color; - #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%)); +.dropdown-menu > li > a { + &:hover, + &:focus { + text-decoration: none; + color: @dropdown-link-hover-color; + #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%)); + } } // Active state // ------------ -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: @dropdown-link-active-color; - text-decoration: none; - outline: 0; - #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); +.dropdown-menu > .active > a { + &, + &:hover, + &:focus { + color: @dropdown-link-active-color; + text-decoration: none; + outline: 0; + #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%)); + } } // Disabled state // -------------- // Gray out text and ensure the hover/focus state remains gray -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: @gray-light; +.dropdown-menu > .disabled > a { + &, + &:hover, + &:focus { + color: @gray-light; + } } // Nuke hover/focus effects -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - text-decoration: none; - background-color: transparent; - background-image: none; // Remove CSS gradient - .reset-filter(); - cursor: default; +.dropdown-menu > .disabled > a { + &:hover, + &:focus { + text-decoration: none; + background-color: transparent; + background-image: none; // Remove CSS gradient + .reset-filter(); + cursor: default; + } } // Open state for the dropdown From e40aee9c9e3e80b03ebe00e812262da09c43bc11 Mon Sep 17 00:00:00 2001 From: Chris Rebert Date: Sat, 6 Jul 2013 22:24:03 -0700 Subject: [PATCH 110/128] code.less: cleanup styles that get immediately overriden later in the file --- docs/assets/css/bootstrap.css | 6 ++---- less/code.less | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index d3bea53f3c..d59e30e9fa 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -671,11 +671,7 @@ address { code, pre { - padding: 0 3px 2px; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; - font-size: 12px; - color: #333333; - border-radius: 4px; } code { @@ -684,6 +680,7 @@ code { color: #c7254e; white-space: nowrap; background-color: #f9f2f4; + border-radius: 4px; } pre { @@ -692,6 +689,7 @@ pre { margin: 0 0 10px; font-size: 13px; line-height: 1.428571429; + color: #333333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; diff --git a/less/code.less b/less/code.less index 63c255010d..8dd34670a8 100644 --- a/less/code.less +++ b/less/code.less @@ -6,11 +6,7 @@ // Inline and block code styles code, pre { - padding: 0 3px 2px; font-family: @font-family-monospace; - font-size: (@font-size-base - 2); - color: @gray-dark; - border-radius: 4px; } // Inline code @@ -20,6 +16,7 @@ code { color: #c7254e; background-color: #f9f2f4; white-space: nowrap; + border-radius: 4px; } // Blocks of code @@ -31,6 +28,7 @@ pre { line-height: @line-height-base; word-break: break-all; word-wrap: break-word; + color: @gray-dark; background-color: #f5f5f5; border: 1px solid #ccc; // IE8 fallback border: 1px solid rgba(0,0,0,.15); From 0d5c3c2ecf35d9bcbe4bd1ad67f3144f5341eb20 Mon Sep 17 00:00:00 2001 From: liuyl Date: Tue, 9 Jul 2013 09:22:36 +0800 Subject: [PATCH 111/128] simplify type.less --- docs/assets/css/bootstrap.css | 4 ++-- less/type.less | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/assets/css/bootstrap.css b/docs/assets/css/bootstrap.css index d3d334a978..168d6c3894 100644 --- a/docs/assets/css/bootstrap.css +++ b/docs/assets/css/bootstrap.css @@ -524,9 +524,9 @@ ol { } ul ul, +ol ul, ul ol, -ol ol, -ol ul { +ol ol { margin-bottom: 0; } diff --git a/less/type.less b/less/type.less index 2f1f42ee3a..a9a7e189f9 100644 --- a/less/type.less +++ b/less/type.less @@ -107,12 +107,10 @@ ul, ol { margin-top: 0; margin-bottom: (@line-height-computed / 2); -} -ul ul, -ul ol, -ol ol, -ol ul { - margin-bottom: 0; + ul, + ol{ + margin-bottom: 0; + } } // List options From 88d76e386f566b0c49d85aa32d0c385870bbbfb3 Mon Sep 17 00:00:00 2001 From: Julian Thilo Date: Tue, 9 Jul 2013 15:32:28 +0200 Subject: [PATCH 112/128] Dustin the docs again * Fix alllll the links! * Change all `*.js` in JS plugin docs (no mo `bootstrap-`) * Fully remove `tr.info` * Bring nav includes up to date --- docs/_includes/nav-components.html | 2 -- docs/_includes/nav-css.html | 1 - docs/_includes/nav-customize.html | 2 +- docs/components.html | 18 +++++++++--------- docs/css.html | 8 +------- docs/javascript.html | 22 +++++++++++----------- 6 files changed, 22 insertions(+), 31 deletions(-) diff --git a/docs/_includes/nav-components.html b/docs/_includes/nav-components.html index a8dd8c64f0..ed00b62fa3 100644 --- a/docs/_includes/nav-components.html +++ b/docs/_includes/nav-components.html @@ -93,9 +93,7 @@ List group diff --git a/docs/_includes/nav-customize.html b/docs/_includes/nav-customize.html index 38c96d5439..1539b0c25a 100644 --- a/docs/_includes/nav-customize.html +++ b/docs/_includes/nav-customize.html @@ -5,7 +5,7 @@ jQuery plugins
  • - LESS variables + LESS variables