Compare commits

..

333 Commits

Author SHA1 Message Date
Chris Rebert a10eb60bc0 full grunt 2015-03-16 08:44:41 -07:00
Chris Rebert 312e527cb0 BootstrapCDN: v3.3.2 => v3.3.4 2015-03-16 08:41:00 -07:00
Chris Rebert 8dbdb8f977 Sass: v3.3.3 => v3.3.4 2015-03-16 08:40:34 -07:00
Chris Rebert 4d652035dc v3.3.2 => v3.3.4 2015-03-16 08:39:31 -07:00
Chris Rebert 66ceae7b75 Clarify that role="button" is required for dismiss-on-next-click popovers
Refs #15947
2015-03-16 00:57:23 -07:00
Bootstrap's Grunt bot 026e7ccf4e automatic grunt dist 2015-03-15 21:50:31 +00:00
Chris Rebert 43b8fd88d0 Merge pull request #16043 from maxstorm/backward-scrolling
ScrollSpy: Fixed proper nav element selection when scrolling upwards
2015-03-15 14:47:00 -07:00
Chris Rebert d74608b934 Bump bootstrap-sass download link to Sass-specific v3.3.3
bootstrap-sass v3.3.2 is broken.
Refs https://github.com/twbs/bootstrap-sass/issues/862
Refs https://github.com/twbs/bootstrap-sass/releases/tag/v3.3.3
Refs https://github.com/twbs/bootstrap-sass/commit/daeb43dcc7b0ab06328acaca0549ee68c039aaa6
2015-03-15 05:07:48 -07:00
Bootstrap's Grunt bot fc99118179 automatic grunt dist 2015-03-15 11:30:30 +00:00
XhmikosR d18a043ddc Run grunt. 2015-03-15 04:27:44 -07:00
XhmikosR 0ca3fa42e8 Bump devDependencies. 2015-03-15 04:26:35 -07:00
Chris Rebert f3ae9430f2 Document that .progress-bar-striped doesn't work in IE<=9; fixes #16058
[skip sauce]
2015-03-13 13:53:12 -07:00
Bootstrap's Grunt bot ba1345f144 automatic grunt dist 2015-03-10 20:20:23 +00:00
Gleb Mazovetskiy a3b6c9072c Remove trailing whitespace in forms.less 2015-03-10 20:16:10 +00:00
Maxim Andrukhovych 83371735fc Fixed proper navigation element selection on backward scrolling (from the bottom to the top) 2015-03-10 20:04:15 +00:00
Bootstrap's Grunt bot 9d0259d8d1 automatic grunt dist 2015-03-10 18:50:26 +00:00
Patrick H. Lauke 03579c3f55 Merge pull request #16042 from jpkleemans/patch-1
Increment quick start options in readme.md to five
2015-03-10 18:41:16 +00:00
Jan-Paul Kleemans ad5c64a24f Increment quick start options to five 2015-03-10 18:57:02 +01:00
Chris Rebert 5b5c61bb30 Merge pull request #16036 from twbs/cr-readonly-focus-outline-bug
Add Wall of Browser Bugs entry for #16022
2015-03-10 03:39:51 -07:00
Chris Rebert a890ebde94 Add Wall of Browser Bugs entry for #16022
[skip sauce]
[skip validator]
2015-03-10 03:29:58 -07:00
Chris Rebert 1383b88328 Merge pull request #16012 from twbs/refs-12761
Disable jQuery event aliases when running test suite
2015-03-09 17:47:51 -07:00
Bootstrap's Grunt bot f972a84dd7 automatic grunt dist 2015-03-09 16:21:12 +00:00
Chris Rebert f65bd7bed0 Merge pull request #16021 from twbs/visibility-block
rm `visibility` where redundant to `display`
2015-03-09 09:14:16 -07:00
Bootstrap's Grunt bot fbc5d8ee41 automatic grunt dist 2015-03-09 14:03:04 +00:00
Chris Rebert e4d6fbf715 Merge pull request #16023 from twbs/doc-body
Affix: $('body') => $(document.body)
2015-03-09 06:58:03 -07:00
Chris Rebert a5243ad3d0 Affix: $('body') => $(document.body) 2015-03-09 06:43:41 -07:00
Bootstrap's Grunt bot 253dfc0d3d automatic grunt dist 2015-03-09 08:41:21 +00:00
Chris Rebert b6b0fe7d22 rm visibility where redundant to display
Refs #15755
2015-03-09 01:40:26 -07:00
Chris Rebert 38fbd8fe35 Merge pull request #15755 from jitendravyas/master
Removed `visibility: hidden !important` from `.hidden` class
2015-03-09 01:36:00 -07:00
Bootstrap's Grunt bot c178995b87 automatic grunt dist 2015-03-09 08:11:37 +00:00
Chris Rebert 725c6848c3 Disable jQuery event aliases when running test suite
To ensure that we don't accidentally use any of the aliases.
This should prevent any future regressions from #12761.
Also updates the test suite since it now can't use these aliases either.
2015-03-09 01:05:43 -07:00
Chris Rebert 21d56378e1 Merge pull request #16011 from twbs/fix-15315
.collapse('hide') on hidden uninit-ed collapsible no longer shows it
2015-03-09 01:03:27 -07:00
Chris Rebert 2c56b0feb0 Merge pull request #16018 from twbs/modal-visual
Enhancements to Modal visual test
2015-03-08 21:33:25 -07:00
Chris Rebert f41acae9fc add TODO item regarding clean-css v3.2 & zeroUnits
Refs https://github.com/twbs/bootstrap/issues/14837#issuecomment-77441999
2015-03-08 21:31:58 -07:00
Chris Rebert a134491fe5 add togglable scrollbar-inducing content to Modal visual test 2015-03-07 06:40:57 -08:00
Chris Rebert 6ddb8c2dd7 add static navbar to Modal visual test 2015-03-07 06:39:46 -08:00
XhmikosR e7efd81033 .gitignore: Remove obsolete files.
They are grunt-html-validation leftovers.

[ci skip]
2015-03-07 10:11:28 +02:00
Chris Rebert 64ca888cbc Merge pull request #15999 from twbs/kkirsche-includeTestsReadme
Document JS test suite basics
2015-03-06 23:28:30 -08:00
Kevin Kirsche ba2f7e92d0 [Fixes #15951] Document JS test suite basics
X-Ref: #15953
Closes #15952 by merging a tweaked version of it.
[skip sauce]
[skip validator]
2015-03-06 23:27:00 -08:00
Chris Rebert 5c8d56d515 Collapse unit test: rm check that no-op hide adds style="height: 0px"
Appears to be unnecessary and is broken by #16011,
which is otherwise quite sane.
2015-03-06 18:10:53 -08:00
Chris Rebert 872e56fcf2 .collapse('hide') on hidden uninit-ed collapsible no longer shows it; fixes #15315
Thanks to @peterblazejewicz & @Nikita240
Adds unit tests based on #14417
X-Ref: #14282
Closes #15807
2015-03-06 06:58:48 -08:00
Chris Rebert 01aa0d840a Merge pull request #16007 from molly/master
Update initial release announcement dead link
2015-03-05 16:42:12 -08:00
Molly White 2bb0ac38e1 Remove dead link to release announcement
Found it! They just changed the link.
2015-03-05 18:44:55 -05:00
Julian Thilo a97bfd6308 Merge pull request #16004 from kkirsche/patch-2
[Fix #16001] Add link to Vietnamese translation
2015-03-05 18:40:33 +00:00
Kevin Kirsche a884ce9349 [Fix #16001] Add link to Vietnamese translation
[Fix #16001] Add link to Vietnamese translation
2015-03-05 09:39:47 -05:00
Bootstrap's Grunt bot a97b7ec344 automatic grunt dist 2015-03-04 09:41:15 +00:00
Chris Rebert 3c190908ca Merge pull request #15988 from twbs/fix-15874
Hiding an uninitialized tooltip/popover no longer initializes it
2015-03-04 01:40:01 -08:00
Chris Rebert 27bbc7dbe9 Hiding an uninitialized tooltip/popover no longer initializes it; fixes #15874 2015-03-03 22:22:13 -08:00
Bootstrap's Grunt bot 2f17289ab6 automatic grunt dist 2015-03-03 21:11:15 +00:00
Chris Rebert 168297c779 rm semicolon for sake of fat's eccentric tastes
Erratum from #15496
2015-03-03 13:06:32 -08:00
Steven Black 20d3ad10eb Accessibility and headings hierarchy for the "CSS" page.
Closes #15948 by merging it.
2015-03-03 18:29:33 +02:00
Steven Black 0862d1410e Accessibility and headings hierarchy for the "Getting started" page.
Closes #15946 by merging it.
2015-03-03 18:26:38 +02:00
Steven Black 457885075f Javascript docs: Accessibility and cosmetic changes to headings.
Closes #15915 by merging it.
2015-03-03 18:22:09 +02:00
Heinrich Fenkart 420a8088a4 Merge pull request #15961 from kkirsche/ImplementAssertExpect
[Fixes #15953] Implement assert.expect in each unit test
2015-03-03 15:52:05 +01:00
Kevin Kirsche 4febcb4b49 [Fixes #15953] Implement assert.expect in each unit test
[Fixes #15953] Implement `assert.expect` in each unit test
2015-03-03 08:45:07 -05:00
Heinrich Fenkart ddd09f6fe7 Merge pull request #15984 from twbs/document-handleupdate
Properly document Modal#handleUpdate
2015-03-03 07:03:42 +01:00
Heinrich Fenkart be68cdd4b8 Properly document Modal#handleUpdate 2015-03-03 06:45:38 +01:00
Bootstrap's Grunt bot c1005f5283 automatic grunt dist 2015-03-03 05:01:43 +00:00
Heinrich Fenkart 200f6fb10d Merge pull request #15881 from twbs/fix-modal-backdrop
Modal: Fix backdrop not readjusting when height changes
2015-03-03 05:54:03 +01:00
Heinrich Fenkart f5beebe726 Modal: Fix backdrop not readjusting when height changes
Fixes #15136.
Closes #15345.
Closes #15314.
Refs #14724, #14927.
2015-03-03 05:27:26 +01:00
Bootstrap's Grunt bot 399658178d automatic grunt dist 2015-03-02 14:51:23 +00:00
Patrick H. Lauke 91002717d9 Merge pull request #15974 from patrickhlauke/ios-click-fix-role-button2
Add upstream patch comment for #15947
2015-03-02 14:42:39 +00:00
Patrick H. Lauke 9bbc0d76f5 Add upstream patch comment 2015-03-02 14:36:36 +00:00
Bootstrap's Grunt bot 4311e09b04 automatic grunt dist 2015-03-02 12:41:16 +00:00
Patrick H. Lauke 8e6934c135 Merge pull request #15947 from patrickhlauke/ios-click-fix-role-button
iOS fix for role="button" elements; [fixes #15935]
2015-03-02 12:35:33 +00:00
Chris Rebert 46f5a8f478 Merge pull request #15970 from twbs/the-future-is-now-qunit
Disable deprecated QUnit global methods
2015-03-02 02:39:29 -08:00
XhmikosR f8e34ff48b Disable es3 for tests and customizer.js. 2015-03-02 11:16:06 +02:00
XhmikosR ea3c7028bd Run grunt. 2015-03-02 11:16:06 +02:00
Chris Rebert c291c12cb1 Disable deprecated global QUnit method aliases to prevent backsliding on QUnit v2 readiness 2015-03-01 19:50:11 -08:00
Chris Rebert c80872235f Merge pull request #15955 from twbs/fixture-on-screen-ios
Unit tests: Only display fixture on-screen for iOS
2015-03-01 18:28:46 -08:00
Bootstrap's Grunt bot de0722f989 automatic grunt dist 2015-03-02 00:11:14 +00:00
Chris Rebert 015e63f6df Merge pull request #15593 from neoeno/handle_multiple_zero_offset_scrollspy_elements
Handle multiple zero-offset Scrollspy elements.
2015-03-01 16:04:04 -08:00
Caden Lovelace a1aa0f8afd Handle multiple zero-offset Scrollspy elements.
When the first two elements in a scrollspy content block have a document
offset of zero (i.e. they're hard against the top of the page),
Scrollspy would switch between them on every scroll event.

This could happen, for example, in a system of nested sections:

```
<section id="animals">
  <section id="dogs">
	Content
  </section>
</section>
```

This ocurred because Scrollspy's check to see if it's at the end of the
array of sections uses `!arr[index]`. This misses the case where
`arr[index]` does exist and is zero.

This commit explicitly checks the array bounds.
2015-03-01 23:55:39 +00:00
Chris Rebert 08e0f23929 Merge pull request #15965 from kkirsche/fixURL
[Docs / README] Fix URL to match the plugin keyword recommendation
2015-03-01 14:32:31 -08:00
Chris Rebert a15baba756 Merge pull request #15964 from kkirsche/addAccidentlyRemovedText
[Docs] Replace accidently removed tooltip / popover text
2015-03-01 14:27:04 -08:00
Kevin Kirsche 673cd67798 Fix URL to match the keyword
Fix URL to match the keyword
2015-03-01 16:44:13 -05:00
Kevin Kirsche 7b3e4d8423 Replace accidently removed text
X-Ref #15742

cc: @mdo
2015-03-01 16:24:12 -05:00
Heinrich Fenkart 20fb55a840 Unit tests: Only display fixture on-screen for iOS
Since only on iOS tests fail when the fixture is displayed off-screen, see https://travis-ci.org/twbs/bootstrap/jobs/52605742
2015-03-01 09:49:59 +01:00
Heinrich Fenkart 1ba2630ccf Merge pull request #15954 from twbs/sauce-hidepassed
Use different way to make failing test more visible in Sauce
2015-03-01 09:41:10 +01:00
Heinrich Fenkart 4345e24479 Use different way to make failing test more visible in Sauce 2015-03-01 09:20:00 +01:00
Patrick H. Lauke 3173efd9d9 Merge pull request #15929 from kkirsche/patch-5
[Fixes #15928] Encourage use of icons with form validation states for co...
2015-02-28 22:11:30 +00:00
Kevin Kirsche 94406bcae0 [Fixes #15928] Encourage use of icons with form validation states for colorblind users
[Fixes #15928] Encourage use of icons with form validation states for colorblind users

Update text per @patrickhlauke's feedback

Update text per @patrickhlauke's feedback.

Fix stupid grammar mistake
2015-02-28 17:07:20 -05:00
Patrick H. Lauke 9c3e7e5861 iOS fix for role="button" elements; [fixes #15935]
Fixes "clickability" issue (and more generally, the firing of events
such as focus as well) for traditionally non-focusable elements with
role="button" (see
https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile)

Fixes #15935
2015-02-28 15:41:55 +00:00
Bootstrap's Grunt bot ad379ffb4a automatic grunt dist 2015-02-27 07:51:17 +00:00
Mark Otto 049e86f47e Merge pull request #15826 from kkirsche/patch-19
[Fixes #15825] .initialism class should use mixin
2015-02-26 23:49:04 -08:00
Bootstrap's Grunt bot fb3610c3af automatic grunt dist 2015-02-27 04:11:09 +00:00
Chris Rebert 1623280f59 Merge pull request #15941 from twbs/ijcheung-collapse-update-all-triggers
Update all collapse triggers with .collapsed class and aria-expanded
2015-02-26 20:00:50 -08:00
Ivan Cheung d5071b19f1 Update all collapse triggers with .collapsed class and aria-expanded
Fixes #15741
Closes #15751 by merging it.
2015-02-26 18:48:20 -08:00
Bootstrap's Grunt bot 984204c39e automatic grunt dist 2015-02-26 14:21:13 +00:00
XhmikosR 05b444aee3 Run grunt. 2015-02-26 11:30:23 +02:00
Heinrich Fenkart c65deddcce Merge pull request #15933 from twbs/qunit-module-hooks
Unit tests: Use new names of module hooks
2015-02-26 08:36:17 +01:00
Chris Rebert 9afb61fffd QUnit.jsDump => QUnit.dump
Refs http://qunitjs.com/upgrade-guide-2.x/#replace-qunit-jsdump-with-qunit-dump
2015-02-25 23:29:27 -08:00
Chris Rebert 4ff9c54cdd Use QUnit.log(...) instead of QUnit.log = ...
Refs http://qunitjs.com/upgrade-guide-2.x/#replace-qunit-log-callback-with-qunit-log-callback-for-all-reporting-callbacks
2015-02-25 23:29:27 -08:00
Bootstrap's Grunt bot 4cb39987f0 automatic grunt dist 2015-02-26 07:21:21 +00:00
Heinrich Fenkart 3bb05b5fbb Unit tests: Use new names of module hooks
Refs #15893
2015-02-26 08:20:42 +01:00
Heinrich Fenkart 442d2dd458 Merge pull request #15930 from twbs/modal-restore-inline-padding
Modal: Apply any preexisting body padding again after closing
2015-02-26 08:13:55 +01:00
nakupanda 142a9e4ae0 Modal: Apply any preexisting body padding again after closing 2015-02-26 08:02:06 +01:00
TJ 10c8dad848 Prevent collapsed navbar in Non-responsive Example
Closes #15291 by merging it.
2015-02-25 22:53:21 -08:00
Bootstrap's Grunt bot 033dbfd06c automatic grunt dist 2015-02-26 06:01:15 +00:00
Quentin Spencer-Harper acc5f65756 Tooltip: Avoid creating an unnecessary tooltip when Tooltip#hide is called
Fixed performance bug where a tooltip element is created and then immediately destroyed when tooltip.hide() is called and there is no existing tooltip element

Resolves #15557 by merging it.
2015-02-26 06:53:58 +01:00
Bootstrap's Grunt bot f43c67b0c5 automatic grunt dist 2015-02-26 05:51:21 +00:00
vsn4ik b395f3526e Dropdowns: Skip .disabled instead of .divider on keydown event
Fixes #15147.
Closes #15520 by merging it.
2015-02-26 06:42:09 +01:00
Bootstrap's Grunt bot 5debbec59f automatic grunt dist 2015-02-26 05:01:07 +00:00
Heinrich Fenkart cac6cfcd84 Merge pull request #15923 from kkirsche/useExplicitVariableDeclaration
[Ref #15881] Use Explicit JS Variable Declarations rather than Chained
2015-02-26 05:55:27 +01:00
Bootstrap's Grunt bot 1d34615758 automatic grunt dist 2015-02-26 03:51:28 +00:00
Chris Rebert a339bfb0ac Merge pull request #15693 from huang-x-h/patch-1
tip method in popover.js can be removed
2015-02-25 19:49:26 -08:00
Kevin Kirsche 238be65786 [Ref #15881] Use Explicit Values rather than Chain
[Ref #15881] Use Explicit Values for javascript variables rather than chained ones.

From https://github.com/twbs/bootstrap/pull/15881#discussion_r25330647
2015-02-25 12:19:11 -05:00
Chris Rebert 804457c474 fix 2 typos in modal unit test assertion messages 2015-02-24 23:49:08 -08:00
Mark Otto dd1a31a7de Merge pull request #15916 from kkirsche/patch-2
Add source code documentation of justified navbar for #15906
2015-02-24 21:16:55 -08:00
Mark Otto 8982de3482 Merge pull request #15914 from StevenBlack/docs.js.headings
docs > js > headings
2015-02-24 21:14:43 -08:00
Kevin Kirsche 3ed961e4c1 Document justified navbar for #15906
Document in the source code that the justified nav is meant for single line list items only. This should help prevent Issues like #15906 in the future.
2015-02-24 23:04:59 -05:00
Heinrich Fenkart 0553300a36 Follow-up to 769c27a19f: Add new section to nav 2015-02-25 03:30:58 +01:00
Kevin Kirsche 769c27a19f Document how to properly handle modals with dynamic content height
Fixes #15106.
Closes #15910.
2015-02-25 03:23:02 +01:00
Heinrich Fenkart c40c31a308 Dropdown unit tests: Tiny style changes 2015-02-25 02:53:39 +01:00
Steven Black e9b29a3ef0 Accessibility changes to headings (transitions.html) 2015-02-24 20:19:00 -05:00
Steven Black daccfc3c0f Accessibility changes to headings (overview.html) 2015-02-24 20:17:14 -05:00
Bootstrap's Grunt bot 1d892ceef1 automatic grunt dist 2015-02-25 01:11:20 +00:00
Heinrich Fenkart 9ea98561df Merge pull request #15913 from twbs/scrollspy-consistency
ScrollSpy: Small style consistency adjustments
2015-02-25 02:03:52 +01:00
Mark Otto b7b69cd353 Merge branch 'master' of github.com:twbs/bootstrap 2015-02-24 16:43:22 -08:00
Mark Otto 05513c52c4 Fix #15911: Clear the floats and move the padding to the header 2015-02-24 16:43:07 -08:00
Heinrich Fenkart 6e0c843223 ScrollSpy: Small style consistency adjustments 2015-02-25 01:37:13 +01:00
Mark Otto be164f4d1a Merge pull request #15900 from kkirsche/patch-5
[Docs—Fixes #15882]Use an ID as the example for Scrollspy
2015-02-24 16:30:49 -08:00
Mark Otto 7e594b4b03 Merge pull request #15903 from michael-k/patch-1
Updated license links
2015-02-24 16:28:36 -08:00
Mark Otto 2457b40eab Merge pull request #15887 from StevenBlack/headings-labels
docs>components>labels headings
2015-02-24 16:27:36 -08:00
Mark Otto 7e0b801f4c Merge pull request #15889 from StevenBlack/headings-progressbars
docs>components>progress bars headings
2015-02-24 16:27:24 -08:00
Chris Rebert a415b91558 Merge pull request #15828 from kkirsche/patch-20
Add plugin package keyword recommendation
2015-02-24 16:26:39 -08:00
Mark Otto 13c690f992 Merge pull request #15891 from StevenBlack/headings-listgroup-panel-well
docs>components>(remaining components) headings
2015-02-24 16:26:17 -08:00
Mark Otto 7872ca69be Merge pull request #15890 from StevenBlack/headings-media
docs>components>media object headings
2015-02-24 16:25:59 -08:00
Mark Otto 3c4a8ea61b Merge pull request #15888 from StevenBlack/headings-thumbnails
docs>components>thumbnails headings
2015-02-24 16:24:49 -08:00
Mark Otto 0e12bb4947 Merge pull request #15886 from StevenBlack/headings-buttondropdowns
docs>components>button-dropdowns headings
2015-02-24 16:23:17 -08:00
Mark Otto 05d0e88dbb Merge pull request #15885 from StevenBlack/headings-buttongroups
docs>components>button-groups headings
2015-02-24 16:22:52 -08:00
Mark Otto 212c114bb6 Merge pull request #15884 from StevenBlack/headings-dropdowns
docs>components>dropdowns.html headings
2015-02-24 16:22:24 -08:00
Chris Rebert eefa0ada96 Merge pull request #15908 from kkirsche/bumpMarkdownIt
Bump markdown-it to ^3.0.7
2015-02-24 15:55:26 -08:00
Chris Rebert a1fd86cdf9 Merge pull request #15907 from twbs/time-grunt
bump time-grunt to ^1.1.0
2015-02-24 14:27:21 -08:00
Kevin Kirsche 2aab06bbaa Bump markdown it to 3.0.7
Bump markdown it to 3.0.7

3.0.7 / 2015-02-22

Match table columns count by header.
Added basic CLI support.
Added \v \f to valid whitespaces.
Use external package for unicode data (punctuation).
2015-02-24 17:20:29 -05:00
Chris Rebert 7f7c7901ae bump time-grunt to ^1.1.0 2015-02-24 14:14:59 -08:00
Chris Rebert 2a6207c0c9 Merge pull request #15904 from kkirsche/patch-8
Closes #15904
2015-02-24 14:11:03 -08:00
Kevin Kirsche 696fc2e53c Add unit test of aria-expanded to dropdown suite
Redo of #15876
2015-02-24 14:09:08 -08:00
Chris Rebert 19fc014397 Merge pull request #15905 from kkirsche/modalAriaTests
Add unit tests for aria-hidden to modal suite
2015-02-24 13:37:08 -08:00
Kevin Kirsche 30d8cdf639 Add tests for aria-hidden of modal
Add tests for `aria-hidden` of modal

Use strictEqual of 1 here instead of 2 asserts
2015-02-24 16:29:40 -05:00
Chris Rebert ecd469ec16 Merge pull request #15893 from twbs/qunit-modern
Modernize QUnit usage by avoiding usage of global functions
2015-02-24 11:47:29 -08:00
Michael 3425489273 Updated license links
Added attributes rel and target.
2015-02-24 20:03:28 +01:00
Kevin Kirsche ced312a90e [Docs—Fixes #15882]Use an ID as the example for Scrollspy
Fixes #15882 — Use an ID as the example for Scrollspy so that it is more clear that this is for use with a single nav.
2015-02-24 09:14:50 -05:00
Patrick H. Lauke feda77f127 Merge pull request #15898 from coliff/patch-3
Change CC link in footer to HTTPS
2015-02-24 13:55:31 +00:00
Christian 1ec651b3cd Update footer.html
Update Creative Commons link to HTTPS.
2015-02-24 22:47:03 +09:00
Chris Rebert 9c75c855c6 JS unit tests: equal() => strictEqual()
[skip validator]
2015-02-23 22:43:17 -08:00
Chris Rebert f4b734eebd Merge pull request #15894 from twbs/bump-qunit
upgrade to QUnit v1.17.1
2015-02-23 22:25:09 -08:00
Chris Rebert bda4fe87ca upgrade to QUnit v1.17.1
[skip validator]
2015-02-23 22:18:51 -08:00
Chris Rebert 118b8c2695 JS unit tests: use QUnit.module() & QUnit.test() everywhere
[skip validator]
2015-02-23 22:14:11 -08:00
Chris Rebert 7c19fee3f1 JS unit tests: use modern QUnit assert object everywhere 2015-02-23 22:14:11 -08:00
Steven Black 79eb5854ea docs>components>(remainder) headings 2015-02-23 22:14:50 -05:00
Steven Black 74b4f83434 docs>components>media object headings 2015-02-23 21:59:27 -05:00
Steven Black 8a64c684de docs>components>progress bars headings 2015-02-23 21:51:10 -05:00
Steven Black f8280e40a0 docs>components>thumbnails headings 2015-02-23 21:41:53 -05:00
Bootstrap's Grunt bot 1cbbeef47c automatic grunt dist 2015-02-24 02:41:30 +00:00
Steven Black 3e2dee6bd5 Normalized the heading hierarchy in the documentation for the Labels component. 2015-02-23 21:35:37 -05:00
Heinrich Fenkart 16479e9051 Merge pull request #15378 from twbs/fix-ie-modal-scrollbar-for-realz
Modal: Work around IE scrollbars not taking up page width
2015-02-24 03:33:32 +01:00
Steven Black 106445aea8 Normalized the heading hierarchy in the documentation for the Button dropdowns component. 2015-02-23 21:23:50 -05:00
Steven Black 9159e44a7a docs>components>button-groups headings
Normalized the heading hierarchy in the documentation for the Button groups component.
2015-02-23 21:16:02 -05:00
Steven Black 36fdaa8030 Docs>Components>Dropdowns headings
Normalized the heading hierarchy in the documentation for the Dropdowns component.
2015-02-23 21:01:54 -05:00
Kevin Kirsche 114d1cf76c Add plugin package keyword recommendation
Related to #15823, I would be interested in officially recommending a keyword such as `twbs-bootstrap` so that we can more easily showcase plugins and extensions for Bootstrap without requiring additional curation by the admins / collabs of TWBS

specificity

Add additional comment to docs

Fix capitalization

Update tag per @mdo's recommendation
2015-02-23 13:53:01 -05:00
Chris Rebert 68fef8c247 Merge pull request #15867 from twbs/sauce-ios
Use OS X 10.10 for Sauce iPhone simulator
2015-02-22 19:33:14 -08:00
Chris Rebert 9bdaf03607 Use OS X 10.10 for Sauce iPhone simulator
[skip validator]
2015-02-22 19:01:36 -08:00
Chris Rebert de31b61e42 Merge pull request #15866 from twbs/bump-sauce
Bump grunt-saucelabs to ~8.6.0
2015-02-22 19:00:00 -08:00
Chris Rebert d8ffd57b93 update shrinkwrap
[skip validator]
2015-02-22 18:47:00 -08:00
Chris Rebert 65d209e257 bump grunt-saucelabs to ~8.6.0 2015-02-22 18:42:23 -08:00
Chris Rebert 33d49f6324 Merge pull request #15862 from dante2008/contri-doc-typo
Fix a typo in the contributing doc.
2015-02-21 21:28:27 -08:00
dante2008 df2ea49c0a Fix a typo in contributing doc. 2015-02-22 13:59:15 +09:00
Patrick H. Lauke 16a4a44a34 Merge pull request #15861 from patrickhlauke/id-fixup
Fix copy/pasta'd id on accessibility skiplink callout
2015-02-21 15:03:31 +00:00
Patrick H. Lauke 36d6af9bcd Fix copy/pasta'd id on accessibility skiplink callout 2015-02-21 15:02:40 +00:00
Patrick H. Lauke 1194f0d481 Merge pull request #15860 from patrickhlauke/url-fixup
Typo in URL
2015-02-21 14:05:01 +00:00
Patrick H. Lauke b9504feb80 Typo in URL 2015-02-21 14:00:04 +00:00
Bootstrap's Grunt bot 02f8cf9d0e automatic grunt dist 2015-02-21 04:21:05 +00:00
Kevin Kirsche b4a5f89ab3 Fix #15652: Set position: relative on .{radio,checkbox}-inline
Closes #15656 by merging it.
2015-02-20 20:10:04 -08:00
Quy Ton 074419298e Fix capitalization/singular of comments in helper class docs
Closes #15839 by merging a tweaked version of it.
2015-02-20 20:02:20 -08:00
Chris Rebert 690abbcc0c Merge pull request #15857 from jonchretien/fix-typos-in-docs
fixed a few typos in the docs
2015-02-20 18:26:04 -08:00
Jon Chretien 7080e895d8 fixed a few typos in the docs 2015-02-20 17:07:14 -05:00
XhmikosR 89951a6608 Merge pull request #15851 from twbs/deps
Bump devDependencies
2015-02-20 22:24:52 +02:00
XhmikosR e6dbaea97e Run grunt. 2015-02-20 11:35:45 +02:00
XhmikosR b8a0ea1224 Update dependencies. 2015-02-20 11:35:39 +02:00
Kevin Kirsche 504435e0b0 Fix #15712: Add example of how to use grid system within a modal
Closes #15725 by merging a tweaked version of it.
2015-02-19 16:14:06 -08:00
Chris Rebert e9afc74b01 Dropdown docs: Tweak .dropup copy 2015-02-19 16:01:04 -08:00
Chris Rebert 89455afe97 Affix docs: add MDN link for position: sticky 2015-02-19 15:55:33 -08:00
Chris Rebert 3748e44b2e Merge pull request #15773 from kkirsche/patch-16
Fix #15766: Clarify Affix plugin docs
2015-02-19 15:53:49 -08:00
Bootstrap's Grunt bot 9677d6685a automatic grunt dist 2015-02-19 23:51:16 +00:00
Chris Rebert 2549b808a1 Merge pull request #15699 from kkirsche/patch-8
Fix #15691: .form-control-static changes height when empty
2015-02-19 15:42:29 -08:00
Kevin Kirsche 0ee7602284 [Fixes #15691] .form-control-static changes height when empty
[Fixes #15691] .form-control-static changes height when empty by setting the minimum height to the size it is when text is in the `.form-control-static`

JSFiddle: http://jsfiddle.net/4pdo4yzo/

Compute the minimum height

@line-height-computed = ~20px
@font-size-base = 14px

This should come to approx. 34px

Add min-height to from-group-* per @cvrebert

I had this wrong. The minimum height would depend on the font-size of that specific group, thus we need to declare it once for font-size-small and once also for font-size-large
2015-02-19 18:02:51 -05:00
Kevin Kirsche 744c3646f5 [Fixes #15766] Need Clearer Affix plugin documentation
[Fixes #15766] Need Clearer Affix plugin documentation

Remove trailing whitespace

Update the documentation
2015-02-19 16:38:03 -05:00
Luca Mussi 90e7fc418b Added package.js for Meteor integration
Closes #15716 by merging it.
2015-02-19 13:11:58 -08:00
Chris Rebert d0ec850812 Merge pull request #15846 from twbs/doc-15832
Add Wall of Browser Bugs entries for #15832
2015-02-19 12:57:33 -08:00
Chris Rebert 9596a51f54 Add Wall of Browser Bugs entries for #15832
[skip sauce]
2015-02-19 12:53:00 -08:00
Chris Rebert 0b10c6b060 Merge pull request #15662 from kkirsche/patch-5
Fix issue #15597 — Mention dropup variation in dropdown docs
2015-02-19 11:29:24 -08:00
Bootstrap's Grunt bot ed627ebcfb automatic grunt dist 2015-02-19 04:21:09 +00:00
Bootstrap's Grunt bot 6e0009e18d automatic grunt dist 2015-02-17 19:41:00 +00:00
Mark Otto a7a6e7f8d6 Merge pull request #15703 from kkirsche/patch-9
[Fix Issue #15683] `readonly` input should not have a not-allowed cursor
2015-02-17 11:31:36 -08:00
Kevin Kirsche 02195d366b [Fixes #15825] .initialism class should use mixin
[Fixes #15825] .initialism class should use text-uppercase() LESS mixin.
2015-02-17 10:48:12 -05:00
Chris Rebert 0d7b85ece7 Merge pull request #15822 from vsn4ik/upd_npmjs_link
Use https://www.npmjs.com (new site).
2015-02-17 00:19:47 -08:00
vsn4ik 1bb3ef3e0b Use https://www.npmjs.com (new site). 2015-02-17 10:01:58 +03:00
Chris Rebert 40961659ac .gitattributes: treat source maps as binary files 2015-02-16 22:27:31 -08:00
Chris Rebert 75b311552e Merge pull request #15778 from twbs/node-012
Travis: test against node.js 0.12.
2015-02-16 21:29:50 -08:00
XhmikosR b9aad573f9 Travis: test against node.js 0.12. 2015-02-16 21:09:32 -08:00
Chris Rebert fd7c69b30f Merge pull request #15765 from twbs/docs.min.js
Cleanup usage of & add notes about docs.min.js in examples
2015-02-16 19:29:58 -08:00
Chris Rebert a2c7233ac0 Use just holder.js instead of docs.min.js in examples when possible
And add explanatory comments to the Carousel & Dashboard examples regarding holder.js

[skip sauce]
2015-02-16 19:17:01 -08:00
Chris Rebert d13e879042 Remove docs.min.js from Blog & Cover examples since it's unnecessary. 2015-02-16 11:40:42 +02:00
XhmikosR 7a4fadb7b8 Fix carousel example images after c08bf4ba8b.
The revert was incomplete.
2015-02-16 11:39:14 +02:00
XhmikosR 4131af8a67 Travis CI: Bump Rouge gem to 1.8.0. 2015-02-16 11:10:28 +02:00
XhmikosR f60067f859 Merge pull request #15809 from twbs/packages.json-files
Specify the files to include in the npm package.
2015-02-16 10:58:48 +02:00
XhmikosR 101cf6b1c0 Specify the files to include in the npm package. 2015-02-15 11:43:36 +02:00
XhmikosR 3b783bd0b5 package.json: change the engine version to >= 0.10.1. 2015-02-14 14:32:16 +02:00
Mark Otto d4ff583428 Merge pull request #15805 from aroben/patch-1
Include dist/ files in language stats on GitHub
2015-02-13 13:36:37 -08:00
Adam Roben 4fc6317b40 Include dist/ files in language stats on GitHub
GitHub considers Bootstrap files to be vendored files, and excludes them from
repository language statistics. This makes sense for most repositories, where
Bootstrap is indeed third-party code. This repository is the exception; it's
first-party code here, so should count toward the language statistics.
2015-02-13 16:30:07 -05:00
Chris Rebert 763f8293da .text-hide docs: trivial indentation fix 2015-02-12 10:41:16 -08:00
Chris Rebert 0fe6ff9fca browser-device-support.html: tweak indentation 2015-02-12 10:40:00 -08:00
Chris Rebert 19a6406ec4 fix indentation of highlighted code in Modal docs 2015-02-12 10:36:15 -08:00
Bootstrap's Grunt bot 6379674f35 automatic grunt dist 2015-02-12 06:41:05 +00:00
Chris Rebert 5f5b148e49 Fix oneskyapp translation links
Closes #15754
[skip sauce]
2015-02-11 16:25:51 -08:00
Chris Rebert 51b00ce737 Merge pull request #15788 from gianpaj/patch-1
Fix link to French translation
2015-02-11 16:24:02 -08:00
Gianfranco Palumbo 5af5d6fa7b Fix link to French translation 2015-02-11 00:23:54 +00:00
Chris Rebert c8b0f59fbd Merge pull request #15784 from twbs/bump-grunt-html
Bump grunt-html to ~3.0.0
2015-02-10 13:05:43 -08:00
Chris Rebert de90cd7a80 update shrinkwrap 2015-02-10 12:57:39 -08:00
Chris Rebert 0013483d94 bump grunt-html to ~3.0.0 2015-02-10 12:57:00 -08:00
Kevin Kirsche d78d9dc5d9 Remove separate area for dropup's
Condense the dropup example
2015-02-10 08:57:56 -05:00
XhmikosR 81115cd089 Run grunt. 2015-02-10 10:50:57 +02:00
XhmikosR c388870cef Downgrade grunt-contrib-cssmin.
v0.12.0-v0.12.1 breaks paths in URL.
2015-02-10 10:49:59 +02:00
Bootstrap's Grunt bot 47c3c6a59f automatic grunt dist 2015-02-10 07:21:10 +00:00
Chris Rebert d0895faa0a Merge pull request #15779 from twbs/deps
Bump devDependencies.
2015-02-09 23:17:46 -08:00
XhmikosR a3419df829 Bump devDependencies. 2015-02-10 08:30:51 +02:00
Mark Otto e0f2db23d7 Merge pull request #15772 from kkirsche/patch-15
Fixes #15653 — Add comment which explains that how a responsive im...
2015-02-09 16:28:18 -08:00
Kevin Kirsche 894ec6f714 Fixes #15653 — Add comment which explains that how a responsive image should be centered
Fixes #15653 — Add comment which explains that how a responsive image should be centered

Redo of #15657 which I couldn't get to rebase properly after all the merges were done last night.
2015-02-09 13:55:37 -05:00
Bootstrap's Grunt bot 3efa9c46a4 automatic grunt dist 2015-02-09 01:41:04 +00:00
Mark Otto 0cf14b3768 Merge pull request #15697 from kkirsche/patch-6
[Fix Issue #15682] .caret is smaller in Firefox than other browsers
2015-02-08 17:33:19 -08:00
Mark Otto 2fad6e8dd2 Merge pull request #15648 from Nikita240/master
Improve image layout in the carousel example.
2015-02-08 17:25:13 -08:00
Bootstrap's Grunt bot 7d4ce8104a automatic grunt dist 2015-02-09 00:31:19 +00:00
Mark Otto 8ef21c73aa Merge pull request #15728 from kkirsche/patch-11
[Fix Issue #15719] Add a variable for .form-group's margin-bottom
2015-02-08 16:27:52 -08:00
Chris Rebert 9e1e73f9dc Merge pull request #15762 from twbs/twitter-handle
Update Twitter handle: @twbootstrap => @getbootstrap
2015-02-06 14:53:51 -08:00
Chris Rebert e7de01eeed Update Twitter handle: @twbootstrap => @getbootstrap
Refs https://github.com/twbs/bootstrap-blog/commit/1c94b7791f8a24a18f08aba40c38d519b873f2d0
CC: @mdo
2015-02-06 11:54:07 -08:00
Jitendra Vyas 7dd72d83fa Removed visibility: hidden !important from .hidden class
This .hidden was taken from HTML 5 Boilerplate and yesterday we discussed on twitter that visibility: hidden !important can be removed now. https://twitter.com/jitendravyas/status/562940090553733121
2015-02-05 13:28:22 +05:30
Patrick H. Lauke 27677fab5b Merge pull request #15714 from patrickhlauke/skip-link-fixes
Skip link workarounds for Chrome and IE
2015-02-04 15:38:17 +00:00
Chris Rebert 0e40c818d9 Merge pull request #15742 from kkirsche/patch-13
[Fix Issue #15701] [Docs] Tooltip/popover destroy docs and delegation
2015-02-03 13:12:24 -08:00
Kevin Kirsche be2206edfc [Fix Issue #15701] Tooltip/popover destroy docs don't explain the delegation case
[Fix Issue #15701] Tooltip/popover destroy docs don't explain the delegation case.

Add to popovers
2015-02-03 15:49:03 -05:00
Chris Rebert 012af29efc Merge pull request #15740 from twbs/carousel-events-target
Clarify target of carousel events
2015-02-03 10:58:33 -08:00
Chris Rebert 377b220e69 Merge pull request #15739 from twbs/modal-events-target
Clarify target of modal events
2015-02-03 10:54:08 -08:00
Chris Rebert ab99374a9c Clarify target of carousel events
[skip sauce]
2015-02-03 10:53:33 -08:00
Chris Rebert 89ef0a5d34 Clarify target of modal events 2015-02-03 10:48:56 -08:00
Kevin Kirsche 2dfc58fa5c [Fix Issue #15683] readonly input should not have a not-allowed cursor
[Fix Issue #15683] `readonly` input should not have a `not-allowed` cursor. Instead, this pull request displays a standard cursor and only displays the not-allowed cursor on disabled items.

Revise docs wording to clarify cursor display
2015-02-03 08:58:11 -05:00
XhmikosR 391054fa2d Merge pull request #15658 from kkirsche/patch-3
Fix issue #15601 — Position of Charset, X-UA-Compatible, and Viewport Meta Tags
2015-02-03 07:22:45 +02:00
Bootstrap's Grunt bot fa27dc13b6 automatic grunt dist 2015-02-03 02:11:42 +00:00
Chris Rebert 54bae8f021 Merge pull request #15726 from hkdobrev/fix-embed-responsive-code
Extract responsive embed nested classes
2015-02-02 18:09:53 -08:00
Kevin Kirsche a380e30f7e Fix issue #15601 — Position of X-UA-Compatible
Fix issue #15601 — Position of X-UA-Compatible, charset and viewport

Add comment to all examples

The non-responsive is correctly saying 2 instead of 3
2015-02-02 15:45:57 -05:00
Kevin Kirsche 8a9374325b Use form-group margin variable 2015-02-02 15:16:26 -05:00
Chris Rebert ccd859f3b1 Merge pull request #15611 from twbs/switch_html_validators
Use local HTML validator to improve performance
2015-02-02 12:13:51 -08:00
Kevin Kirsche 99fc85e8d0 [Fix issue #15719] Add a variable for .form-group's margin-bottom
[Fix issue #15719] Add a variable for .form-group's margin-bottom
2015-02-02 15:13:01 -05:00
Haralan Dobrev b46dbef326 Extract responsive embed nested classes
I think this is the more common coding convention across Bootstrap.

Extract nested classes as first-class citizens and assume HTML would use both.
2015-02-02 19:26:30 +02:00
Patrick H. Lauke 214516da16 Expand/clean-up prose about skip links 2015-02-02 12:30:21 +00:00
Mark Otto 65a723b602 Update shrinkwrap. 2015-02-02 04:36:13 +02:00
Mark Otto 73b50769d8 Switch to grunt-html over grunt-html-validation. 2015-02-02 04:36:13 +02:00
XhmikosR 33d8fde67c Merge pull request #15708 from twbs/customizer-libs
Update customizer libs
2015-02-02 03:52:19 +02:00
Patrick H. Lauke c0892d1470 Skip link workarounds for Chrome and IE
Add tabindex="-1" to main #content to work around bug in Chrome (and old
WebKits) and IE
Update advice in accessibility section
Include patch in docs CSS to suppress outline when #content is focused
(particularly as Chrome sets focus as result of mouse click for
tabindex="-1" elements)
2015-01-31 13:09:57 +00:00
Patrick H. Lauke a0a00b25ee Merge pull request #15710 from patrickhlauke/master
License FAQ clarification
2015-01-30 16:07:53 +00:00
Patrick H. Lauke 4d4c7c4051 License FAQ clarification 2015-01-30 16:03:07 +00:00
XhmikosR f674f8786b Run grunt. 2015-01-30 15:26:31 +02:00
XhmikosR 2139f01a76 Update uglify.js to v2.4.16. 2015-01-30 15:25:55 +02:00
XhmikosR 8e18eb8c18 Update autoprefixer to v5.1.0. 2015-01-30 15:24:39 +02:00
XhmikosR c918289b46 Bump FileSaver.js to v2015-01-04. 2015-01-30 15:22:56 +02:00
XhmikosR feb0da4c2f Bump Ruby gems. 2015-01-30 15:14:57 +02:00
XhmikosR 8fd5718e71 Run grunt. 2015-01-30 15:13:24 +02:00
XhmikosR 420088d316 Bump load-grunt-tasks. 2015-01-30 15:13:24 +02:00
Chris Rebert 97e5ac1c92 Fix #15688
Stability > Precision
2015-01-29 18:00:49 -08:00
Kevin Kirsche 119ce267a6 [Fix Issue #15682] .caret is smaller in Firefox than other browsers
[Fix Issue twbs/bootstrap#15682] .caret is smaller in Firefox than other browsers
2015-01-29 07:46:45 -05:00
dormouse 91b384399c tip method in popover.js can be removed
Popover is extend Tooltip, the tip function can use tootltip's tip, so we can remove the tip function definition in popover to reduce the js filesize

tip function definition in tooltip.js https://github.com/tbs/bootstrap/blob/master/js/tooltip.js#L405-L407
2015-01-29 11:21:07 +08:00
Bootstrap's Grunt bot a7747dedf2 automatic grunt dist 2015-01-28 19:10:59 +00:00
Chris Rebert cd4467b194 Merge pull request #15496 from twbs/15484-alternative
Make $(document).tooltip({...}) without a `selector` throw an error
2015-01-28 11:05:40 -08:00
Bootstrap's Grunt bot 4ebfbad9c7 automatic grunt dist 2015-01-28 19:02:08 +00:00
Chris Rebert af8fa54fcd Merge pull request #15630 from twbs/tabs-cond-fix
Fix error in condition in Tab plugin
2015-01-28 10:59:51 -08:00
Kevin Kirsche 98d4464065 Update per @vsn4ik's requests
data-example-id not need be moved. Only change, because data-example-id="static-dropdown" already exists.

Remove whitespace after h3.
Variation not need capitalize.
2015-01-28 13:47:02 -05:00
Bootstrap's Grunt bot cb939e2efe automatic grunt dist 2015-01-28 01:02:34 +00:00
Chris Rebert b258a1f5b0 Merge pull request #15681 from twbs/fix-replaceArrow
Fix name of Tooltip.replaceArrow() parameter
2015-01-27 16:59:24 -08:00
Kevin Kirsche 5688fc8d65 Complete @vsn4ik's requests
* Remove `<h3>Example</h3>;`
* Move `data-example-id=""` to `<h3>Dropup Variation</h3>` and change value;
2015-01-27 17:01:59 -05:00
Chris Rebert ebedeaf2fe Fix name of Tooltip.replaceArrow() parameter
isHorizontal => isVertical
2015-01-27 11:15:55 -08:00
Chris Rebert 592950cc22 Merge pull request #15678 from coliff/patch-1
Update non-responsive.css
2015-01-27 08:33:26 -08:00
Christian 37fbe1cf62 Update non-responsive.css
Fix typo on Utilize
2015-01-27 20:51:55 +09:00
XhmikosR 03e41b355c Gruntfile.js: Remove now unneeded validator relaxError option. 2015-01-26 18:02:58 +02:00
XhmikosR 9f25895015 Fix validation errors.
Surprisingly those weren't reported by the validator; only in the grunt-contrib-htmlmin branch they were reported, so after digging into it, I saw they were indeed errors...
2015-01-26 17:58:09 +02:00
Kevin Kirsche dc50153c93 Fix issue #15597 — Mention dropup variation in dropdown docs
Fix issue #15597 — Mention dropup variation in dropdown docs

Other pull request was so messed up I sincerely have no clue how to save it. The recommended command doesn't work, can't believe rebasing is so problematic...
2015-01-23 21:48:33 -05:00
Chris Rebert c015fec325 Merge pull request #15660 from twbs/bump-dev-deps
update devDependencies
2015-01-23 16:14:11 -08:00
Chris Rebert 6a84b5a090 update shrinkwrap 2015-01-23 16:03:23 -08:00
Chris Rebert 50a3e579ae update devDependencies
upgrade grunt-contrib-jshint to ~0.11.0
upgrade load-grunt-tasks to ~3.0.0
2015-01-23 15:59:37 -08:00
Chris Rebert 972a361e98 Merge pull request #15651 from sebnow/bower-woff2
Add woff2 font file to bower main files
2015-01-23 08:06:55 -08:00
Sebastian Nowicki 767f3c87bc Add woff2 font file to bower main files
If Bootstrap is installed through bower, the woff2 font file may not be
copied over as it's not in the "main" files. The LESS files still
reference the font file which results in errors.
2015-01-23 14:24:27 +01:00
Nikita Rushmanov 6e782ed42d Add a warning in images.html about text-align
People normally center images using text-align. However, the `.img-responsive`
class changes the display type to block. As a result you can no longer align the 
image with text-align. You must instead do it with margin: auto. There was no 
note about this on the web page, and no mention about setting the display to
block. Users were left on a frustrating journey to figure out why they can't center
images anymore!
2015-01-23 03:16:07 -08:00
Nikita Rushmanov d41f114e9b Fix image order in carousel example
When the screen is shrunk below the md threshold, all the featurette columns stack.
However, since the second featurette is "backwards", when stacked the second featurette
looked awkward as the image came before the heading.
2015-01-23 02:14:12 -08:00
Nikita Rushmanov ca0fb736c7 Center images in carousel example
In order to see the changes, you must shrink the browser to below the md threshold.
2015-01-23 02:02:21 -08:00
Mark Otto efd7792488 Merge branch 'master' of github.com:twbs/bootstrap 2015-01-21 21:06:28 -08:00
Mark Otto c08bf4ba8b keep the base64 2015-01-21 21:06:11 -08:00
Mark Otto a3890a72cf Merge branch 'master' into move-inline-css
Conflicts:
	docs/assets/css/docs.min.css
2015-01-21 20:16:08 -08:00
Mark Otto 8ec708870c Merge pull request #15299 from SpectrumPixel/patch-2
Remove "Separated link" in example where it's not
2015-01-21 19:58:03 -08:00
Mark Otto c64c863637 Merge branch 'master' of github.com:twbs/bootstrap 2015-01-21 19:20:59 -08:00
Mark Otto af9c7151b3 Merge branch 'docs-anchors' 2015-01-21 19:20:21 -08:00
Mark Otto 84e41378e6 style changes 2015-01-21 19:20:16 -08:00
Bootstrap's Grunt bot 5e26ad4921 automatic grunt dist 2015-01-22 03:01:38 +00:00
Mark Otto 2641ba6f0f Merge pull request #15628 from kkirsche/patch-1
[Fix Issue #15561] Fix badges not being resized inside .btn-group-xs if .btn-xs is not applied
2015-01-21 18:50:33 -08:00
Chris Rebert 426e8e12cd Fix error in condition in Tab plugin
Refs #15186
2015-01-21 14:13:26 -08:00
Kevin Kirsche 4c5d1faa35 Fix having multiple selectors on a single line. 2015-01-21 16:38:58 -05:00
Bootstrap's Grunt bot c8be2a063a automatic grunt dist 2015-01-21 21:20:51 +00:00
Chris Rebert 22a4d96e9a Merge pull request #15620 from twbs/iso-4217
Add .glyphicon-* aliases for other ISO 4217-ish currency codes
2015-01-21 13:16:57 -08:00
Kevin Kirsche 848701a1b3 Fix issue twbs/bootstrap#15561
Fix issue twbs/bootstrap#15561 regarding badges not shrinking to fit inside of .btn-group-xs
2015-01-21 12:01:25 -05:00
Chris Rebert 1ce502dc4d Merge pull request #15621 from twbs/fix-12832
Document sticky :hover on mobile browsers
2015-01-21 00:02:09 -08:00
XhmikosR 53d2abff92 Carousel example: move the Base64 images outside of the HTML.
Use a simple blank.gif and change the background color instead of duplicating stuff.
2015-01-21 09:51:12 +02:00
XhmikosR a6f3bdb71f Move inline CSS to docs.css. 2015-01-21 09:51:12 +02:00
XhmikosR 3f512c927b Add AnchorJS for docs anchors. 2015-01-21 09:50:51 +02:00
Chris Rebert d5a2b27e16 Merge pull request #15503 from twbs/qunit
Update QUnit to v1.17.0.
2015-01-20 20:23:34 -08:00
Chris Rebert 1652efc3f6 tweak 'close reopened modal' unit test to work under new QUnit API 2015-01-20 20:18:33 -08:00
Chris Rebert df73535a2d fix bug in tab show/shown relatedTarget unit test 2015-01-20 20:16:42 -08:00
Chris Rebert b56d97f210 update JS unit tests to future-proof QUnit 1.16.0 API
[skip validator]
2015-01-20 19:57:51 -08:00
Chris Rebert 2e20e67dc1 Document sticky :hover on mobile browsers; fixes #12832 2015-01-20 19:22:20 -08:00
Chris Rebert 07a3ea5f54 Add .glyphicon-* aliases for other ISO 4217-ish currency codes
Fixes #15617.
2015-01-20 16:24:48 -08:00
Chris Rebert d9f437f4ec Merge pull request #15619 from twbs/markdown
Change markdown library
2015-01-20 13:25:24 -08:00
Chris Rebert 92b267f357 update shrinkwrap 2015-01-20 13:05:58 -08:00
Chris Rebert 30b74105dd remarkable -> markdown-it 2015-01-20 13:04:55 -08:00
Chris Rebert 136058b562 Merge pull request #15618 from twbs/update-sauce
update grunt-saucelabs to ~8.5.0
2015-01-20 13:04:17 -08:00
Chris Rebert 0b7f6b941a update shrinkwrap 2015-01-20 12:49:46 -08:00
Chris Rebert 429809c9cc update grunt-saucelabs to ~8.5.0 2015-01-20 12:49:08 -08:00
Bootstrap's Grunt bot c643a3d331 automatic grunt dist 2015-01-19 23:20:54 +00:00
Mark Otto b6c0007f21 Merge pull request #15606 from tagliala/trim-whitespaces
Trim whitespaces
2015-01-19 15:13:16 -08:00
Geremia Taglialatela e90f98dd0c Trim whitespaces 2015-01-19 21:26:01 +01:00
XhmikosR a8139a0392 Update QUnit to v1.17.0. 2015-01-19 20:10:34 +02:00
XhmikosR 4fd01b7ac1 Merge pull request #15605 from twbs/deps
Update devDependencies.
2015-01-19 19:54:43 +02:00
XhmikosR fbc220defd Update devDependencies. 2015-01-19 19:20:13 +02:00
Mark Otto 24aad4fe3a customizer typo 2015-01-19 09:19:09 -08:00
Chris Rebert 34f88e94fc window.Document doesn't exist in IE8 2015-01-05 14:47:33 -08:00
Chris Rebert f6a837cbf1 Make $(document).tooltip({...}) without a selector throw an error
Closes #15484
2015-01-05 14:22:49 -08:00
Heinrich Fenkart 32f62bc565 Modal: Work around IE scrollbars not taking up page width
Fixes #15353.
2014-12-18 07:29:34 +01:00
TJ f837a3f775 Remove "Separated link" in example where it's not
Removed "Separated link" in example where it's not separated. This may confuse people to think that it is separated.

I don't want to sound nitpick, but I've been working with a client maintaining a custom internal Bootstrap installation with customized docs, so I've been getting a lot of feedback from client developers using the docs.
2014-12-04 19:00:31 -05:00
161 changed files with 12222 additions and 6672 deletions
+6
View File
@@ -7,3 +7,9 @@
*.md text eol=lf
*.svg text eol=lf
*.yml text eol=lf
# Don't diff or textually merge source maps
*.map binary
bootstrap-theme.css linguist-vendored=false
bootstrap.css linguist-vendored=false
bootstrap.js linguist-vendored=false
-4
View File
@@ -33,10 +33,6 @@ Thumbs.db
.komodotools
*.komodoproject
# grunt-html-validation
validation-report.json
validation-status.json
# Folders to ignore
bower_components
node_modules
+3 -3
View File
@@ -2,7 +2,7 @@ language: node_js
git:
depth: 10
node_js:
- "0.10"
- "0.12"
before_install:
- travis_retry sudo pip install -r test-infra/requirements.txt
- rvm use 1.9.3 --fuzzy
@@ -21,8 +21,8 @@ after_script:
- if [ "$TRAVIS_REPO_SLUG" != twbs-savage/bootstrap ] && [ "$TWBS_TEST" = validate-html ] && [ $TWBS_DO_VALIDATOR -ne 0 ]; then ./test-infra/s3_cache.py upload rubygems; fi
env:
global:
- JEKYLL_VERSION="2.5.1"
- ROUGE_VERSION="1.7.2"
- JEKYLL_VERSION="2.5.3"
- ROUGE_VERSION="1.8.0"
- SAUCE_USERNAME="bootstrap"
- secure: "pJkBwnuae9dKU5tEcCqccfS1QQw7/meEcfz63fM7ba7QJNjoA6BaXj08L5Z3Vb5vBmVPwBawxo5Hp0jC0r/Z/O0hGnAmz/Cz09L+cy7dSAZ9x4hvZePSja/UAusaB5ogMoO8l2b773MzgQeSmrLbExr9BWLeqEfjC2hFgdgHLaQ="
- secure: "gqjqISbxBJK6byFbsmr1AyP1qoWH+rap06A2gI7v72+Tn2PU2nYkIMUkCvhZw6K889jv+LhQ/ybcBxDOXHpNCExCnSgB4dcnmYp+9oeNZb37jSP0rQ+Ib4OTLjzc3/FawE/fUq5kukZTC7porzc/k0qJNLAZRx3YLALmK1GIdUY="
+1 -1
View File
@@ -33,7 +33,7 @@ restrictions:
Our bug tracker utilizes several labels to help organize and identify issues. Here's what they represent and how we use them:
- `browser bug` - Issues that are reported to us, but actually are the result of a browser-specific bug. These are diagnosed with reduced test cases and result in a issue opened on that browser's own bug tracker.
- `browser bug` - Issues that are reported to us, but actually are the result of a browser-specific bug. These are diagnosed with reduced test cases and result in an issue opened on that browser's own bug tracker.
- `confirmed` - Issues that have been confirmed with a reduced test case and identify a bug in Bootstrap.
- `css` - Issues stemming from our compiled CSS or source Less files.
- `customizer` - Issues with our web-based Customizer.
+22 -20
View File
@@ -191,7 +191,7 @@ module.exports = function (grunt) {
src: 'dist/css/<%= pkg.name %>-theme.css'
},
docs: {
src: 'docs/assets/css/src/docs.css'
src: ['docs/assets/css/anchor.css', 'docs/assets/css/src/docs.css']
},
examples: {
expand: true,
@@ -223,6 +223,8 @@ module.exports = function (grunt) {
cssmin: {
options: {
// TODO: disable `zeroUnits` optimization once clean-css 3.2 is released
// and then simplify the fix for https://github.com/twbs/bootstrap/issues/14837 accordingly
compatibility: 'ie8',
keepSpecialComments: '*',
advanced: false
@@ -237,8 +239,10 @@ module.exports = function (grunt) {
},
docs: {
src: [
'docs/assets/css/src/docs.css',
'docs/assets/css/src/pygments-manni.css'
'docs/assets/css/src/pygments-manni.css',
'docs/assets/css/src/anchor.css',
'docs/assets/css/src/docs.css'
],
dest: 'docs/assets/css/docs.min.css'
}
@@ -278,12 +282,17 @@ module.exports = function (grunt) {
copy: {
fonts: {
expand: true,
src: 'fonts/*',
dest: 'dist/'
},
docs: {
src: 'dist/*/*',
dest: 'docs/'
expand: true,
cwd: 'dist/',
src: [
'**/*'
],
dest: 'docs/dist/'
}
},
@@ -323,22 +332,15 @@ module.exports = function (grunt) {
}
},
validation: {
htmllint: {
options: {
charset: 'utf-8',
doctype: 'HTML5',
failHard: true,
reset: true,
relaxerror: [
'Element img is missing required attribute src.',
'Attribute autocomplete not allowed on element input at this point.',
'Attribute autocomplete not allowed on element button at this point.',
'Bad value separator for attribute role on element li.'
ignore: [
'Attribute "autocomplete" not allowed on element "button" at this point.',
'Attribute "autocomplete" not allowed on element "input" at this point.',
'Element "img" is missing required attribute "src".'
]
},
files: {
src: '_gh_pages/**/*.html'
}
src: '_gh_pages/**/*.html'
},
watch: {
@@ -374,7 +376,7 @@ module.exports = function (grunt) {
throttled: 10,
maxRetries: 3,
maxPollRetries: 4,
urls: ['http://127.0.0.1:3000/js/tests/index.html'],
urls: ['http://127.0.0.1:3000/js/tests/index.html?hidepassed'],
browsers: grunt.file.readYAML('grunt/sauce_browsers.yml')
}
}
@@ -413,7 +415,7 @@ module.exports = function (grunt) {
require('time-grunt')(grunt);
// Docs HTML validation task
grunt.registerTask('validate-html', ['jekyll:docs', 'validation']);
grunt.registerTask('validate-html', ['jekyll:docs', 'htmllint']);
var runSubset = function (subset) {
return !process.env.TWBS_TEST || process.env.TWBS_TEST === subset;
+7 -5
View File
@@ -22,12 +22,13 @@ To get started, check out <http://getbootstrap.com>!
## Quick start
Four quick start options are available:
Five quick start options are available:
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.2.zip).
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.4.zip).
- Clone the repo: `git clone https://github.com/twbs/bootstrap.git`.
- Install with [Bower](http://bower.io): `bower install bootstrap`.
- Install with [npm](https://www.npmjs.org): `npm install bootstrap`.
- Install with [npm](https://www.npmjs.com): `npm install bootstrap`.
- Install with [Meteor](https://www.meteor.com/): `meteor add twbs:bootstrap`.
Read the [Getting started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more.
@@ -90,7 +91,7 @@ Documentation for v2.3.2 has been made available for the time being at <http://g
Please read through our [contributing guidelines](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development.
Moreover, if your pull request contains JavaScript patches or features, you must include relevant unit tests. All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo).
Moreover, if your pull request contains JavaScript patches or features, you must include [relevant unit tests](https://github.com/twbs/bootstrap/tree/master/js/tests). All HTML and CSS should conform to the [Code Guide](https://github.com/mdo/code-guide), maintained by [Mark Otto](https://github.com/mdo).
Editor preferences are available in the [editor config](https://github.com/twbs/bootstrap/blob/master/.editorconfig) for easy use in common text editors. Read more and download plugins at <http://editorconfig.org>.
@@ -100,10 +101,11 @@ Editor preferences are available in the [editor config](https://github.com/twbs/
Keep track of development and community news.
- Follow [@twbootstrap on Twitter](https://twitter.com/twbootstrap).
- Follow [@getbootstrap on Twitter](https://twitter.com/getbootstrap).
- Read and subscribe to [The Official Bootstrap Blog](http://blog.getbootstrap.com).
- Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##bootstrap` channel.
- Implementation help may be found at Stack Overflow (tagged [`twitter-bootstrap-3`](http://stackoverflow.com/questions/tagged/twitter-bootstrap-3)).
- Developers should use the keyword `bootstrap` on packages which modify or add to the functionality of Bootstrap when distributing through [npm](https://www.npmjs.com/browse/keyword/bootstrap) or similar delivery mechanisms for maximum discoverability.
+7 -7
View File
@@ -14,19 +14,19 @@ url: http://getbootstrap.com
encoding: UTF-8
# Custom vars
current_version: 3.3.2
current_version: 3.3.4
repo: https://github.com/twbs/bootstrap
sass_repo: https://github.com/twbs/bootstrap-sass
download:
source: https://github.com/twbs/bootstrap/archive/v3.3.2.zip
dist: https://github.com/twbs/bootstrap/releases/download/v3.3.2/bootstrap-3.3.2-dist.zip
sass: https://github.com/twbs/bootstrap-sass/archive/v3.3.2.tar.gz
source: https://github.com/twbs/bootstrap/archive/v3.3.4.zip
dist: https://github.com/twbs/bootstrap/releases/download/v3.3.4/bootstrap-3.3.4-dist.zip
sass: https://github.com/twbs/bootstrap-sass/archive/v3.3.4.tar.gz
blog: http://blog.getbootstrap.com
expo: http://expo.getbootstrap.com
cdn:
css: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css
css_theme: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css
js: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js
css: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css
css_theme: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css
js: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js
+3 -2
View File
@@ -1,7 +1,7 @@
{
"name": "bootstrap",
"description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
"version": "3.3.2",
"version": "3.3.4",
"keywords": [
"css",
"js",
@@ -20,7 +20,8 @@
"dist/fonts/glyphicons-halflings-regular.eot",
"dist/fonts/glyphicons-halflings-regular.svg",
"dist/fonts/glyphicons-halflings-regular.ttf",
"dist/fonts/glyphicons-halflings-regular.woff"
"dist/fonts/glyphicons-halflings-regular.woff",
"dist/fonts/glyphicons-halflings-regular.woff2"
],
"ignore": [
"/.*",
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v3.3.2 (http://getbootstrap.com)
* Bootstrap v3.3.4 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
+1 -1
View File
File diff suppressed because one or more lines are too long
+33 -15
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v3.3.2 (http://getbootstrap.com)
* Bootstrap v3.3.4 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@@ -958,12 +958,24 @@ th {
.glyphicon-bitcoin:before {
content: "\e227";
}
.glyphicon-btc:before {
content: "\e227";
}
.glyphicon-xbt:before {
content: "\e227";
}
.glyphicon-yen:before {
content: "\00a5";
}
.glyphicon-jpy:before {
content: "\00a5";
}
.glyphicon-ruble:before {
content: "\20bd";
}
.glyphicon-rub:before {
content: "\20bd";
}
.glyphicon-scale:before {
content: "\e230";
}
@@ -1161,6 +1173,9 @@ hr {
overflow: visible;
clip: auto;
}
[role="button"] {
cursor: pointer;
}
h1,
h2,
h3,
@@ -2564,10 +2579,13 @@ output {
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
cursor: not-allowed;
background-color: #eee;
opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
cursor: not-allowed;
}
textarea.form-control {
height: auto;
}
@@ -2634,6 +2652,7 @@ input[type="search"] {
}
.radio-inline,
.checkbox-inline {
position: relative;
display: inline-block;
padding-left: 20px;
margin-bottom: 0;
@@ -2667,6 +2686,7 @@ fieldset[disabled] .checkbox label {
cursor: not-allowed;
}
.form-control-static {
min-height: 34px;
padding-top: 7px;
padding-bottom: 7px;
margin-bottom: 0;
@@ -2708,6 +2728,7 @@ select[multiple].form-group-sm .form-control {
}
.form-group-sm .form-control-static {
height: 30px;
min-height: 32px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
@@ -2744,6 +2765,7 @@ select[multiple].form-group-lg .form-control {
}
.form-group-lg .form-control-static {
height: 46px;
min-height: 38px;
padding: 10px 16px;
font-size: 18px;
line-height: 1.3333333;
@@ -3365,11 +3387,9 @@ input[type="button"].btn-block {
}
.collapse {
display: none;
visibility: hidden;
}
.collapse.in {
display: block;
visibility: visible;
}
tr.collapse.in {
display: table-row;
@@ -3397,7 +3417,7 @@ tbody.collapse.in {
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: 4px solid;
border-top: 4px dashed;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
@@ -4037,11 +4057,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.tab-content > .tab-pane {
display: none;
visibility: hidden;
}
.tab-content > .active {
display: block;
visibility: visible;
}
.nav-tabs .dropdown-menu {
margin-top: -1px;
@@ -4088,7 +4106,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
height: auto !important;
padding-bottom: 0;
overflow: visible !important;
visibility: visible !important;
}
.navbar-collapse.in {
overflow-y: visible;
@@ -4813,7 +4830,8 @@ a.label:focus {
position: relative;
top: -1px;
}
.btn-xs .badge {
.btn-xs .badge,
.btn-group-xs > .btn .badge {
top: 0;
padding: 1px 5px;
}
@@ -5645,10 +5663,10 @@ a.list-group-item-danger.active:focus {
height: 100%;
border: 0;
}
.embed-responsive.embed-responsive-16by9 {
.embed-responsive-16by9 {
padding-bottom: 56.25%;
}
.embed-responsive.embed-responsive-4by3 {
.embed-responsive-4by3 {
padding-bottom: 75%;
}
.well {
@@ -5707,7 +5725,7 @@ button.close {
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
z-index: 1050;
display: none;
overflow: hidden;
-webkit-overflow-scrolling: touch;
@@ -5750,10 +5768,12 @@ button.close {
box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}
.modal-backdrop {
position: absolute;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
@@ -5828,7 +5848,6 @@ button.close {
font-size: 12px;
font-weight: normal;
line-height: 1.4;
visibility: visible;
filter: alpha(opacity=0);
opacity: 0;
}
@@ -6348,7 +6367,6 @@ button.close {
}
.hidden {
display: none !important;
visibility: hidden !important;
}
.affix {
position: fixed;
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+108 -97
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v3.3.2 (http://getbootstrap.com)
* Bootstrap v3.3.4 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@@ -17,7 +17,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: transition.js v3.3.2
* Bootstrap: transition.js v3.3.4
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -77,7 +77,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: alert.js v3.3.2
* Bootstrap: alert.js v3.3.4
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -96,7 +96,7 @@ if (typeof jQuery === 'undefined') {
$(el).on('click', dismiss, this.close)
}
Alert.VERSION = '3.3.2'
Alert.VERSION = '3.3.4'
Alert.TRANSITION_DURATION = 150
@@ -172,7 +172,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: button.js v3.3.2
* Bootstrap: button.js v3.3.4
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -192,7 +192,7 @@ if (typeof jQuery === 'undefined') {
this.isLoading = false
}
Button.VERSION = '3.3.2'
Button.VERSION = '3.3.4'
Button.DEFAULTS = {
loadingText: 'loading...'
@@ -289,7 +289,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: carousel.js v3.3.2
* Bootstrap: carousel.js v3.3.4
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -307,10 +307,10 @@ if (typeof jQuery === 'undefined') {
this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.paused =
this.sliding =
this.interval =
this.$active =
this.paused = null
this.sliding = null
this.interval = null
this.$active = null
this.$items = null
this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
@@ -320,7 +320,7 @@ if (typeof jQuery === 'undefined') {
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
}
Carousel.VERSION = '3.3.2'
Carousel.VERSION = '3.3.4'
Carousel.TRANSITION_DURATION = 600
@@ -527,7 +527,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: collapse.js v3.3.2
* Bootstrap: collapse.js v3.3.4
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -544,7 +544,8 @@ if (typeof jQuery === 'undefined') {
var Collapse = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, Collapse.DEFAULTS, options)
this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
'[data-toggle="collapse"][data-target="#' + element.id + '"]')
this.transitioning = null
if (this.options.parent) {
@@ -556,13 +557,12 @@ if (typeof jQuery === 'undefined') {
if (this.options.toggle) this.toggle()
}
Collapse.VERSION = '3.3.2'
Collapse.VERSION = '3.3.4'
Collapse.TRANSITION_DURATION = 350
Collapse.DEFAULTS = {
toggle: true,
trigger: '[data-toggle="collapse"]'
toggle: true
}
Collapse.prototype.dimension = function () {
@@ -700,7 +700,7 @@ if (typeof jQuery === 'undefined') {
var data = $this.data('bs.collapse')
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
if (!data && options.toggle && option == 'show') options.toggle = false
if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -731,7 +731,7 @@ if (typeof jQuery === 'undefined') {
var $target = getTargetFromTrigger($this)
var data = $target.data('bs.collapse')
var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
var option = data ? 'toggle' : $this.data()
Plugin.call($target, option)
})
@@ -739,7 +739,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: dropdown.js v3.3.2
* Bootstrap: dropdown.js v3.3.4
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -759,7 +759,7 @@ if (typeof jQuery === 'undefined') {
$(element).on('click.bs.dropdown', this.toggle)
}
Dropdown.VERSION = '3.3.2'
Dropdown.VERSION = '3.3.4'
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
@@ -812,7 +812,7 @@ if (typeof jQuery === 'undefined') {
return $this.trigger('click')
}
var desc = ' li:not(.divider):visible a'
var desc = ' li:not(.disabled):visible a'
var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
if (!$items.length) return
@@ -901,7 +901,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: modal.js v3.3.2
* Bootstrap: modal.js v3.3.4
* http://getbootstrap.com/javascript/#modals
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -916,12 +916,15 @@ if (typeof jQuery === 'undefined') {
// ======================
var Modal = function (element, options) {
this.options = options
this.$body = $(document.body)
this.$element = $(element)
this.$backdrop =
this.isShown = null
this.scrollbarWidth = 0
this.options = options
this.$body = $(document.body)
this.$element = $(element)
this.$dialog = this.$element.find('.modal-dialog')
this.$backdrop = null
this.isShown = null
this.originalBodyPad = null
this.scrollbarWidth = 0
this.ignoreBackdropClick = false
if (this.options.remote) {
this.$element
@@ -932,7 +935,7 @@ if (typeof jQuery === 'undefined') {
}
}
Modal.VERSION = '3.3.2'
Modal.VERSION = '3.3.4'
Modal.TRANSITION_DURATION = 300
Modal.BACKDROP_TRANSITION_DURATION = 150
@@ -966,6 +969,12 @@ if (typeof jQuery === 'undefined') {
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
this.$dialog.on('mousedown.dismiss.bs.modal', function () {
that.$element.one('mouseup.dismiss.bs.modal', function (e) {
if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
})
})
this.backdrop(function () {
var transition = $.support.transition && that.$element.hasClass('fade')
@@ -977,7 +986,6 @@ if (typeof jQuery === 'undefined') {
.show()
.scrollTop(0)
if (that.options.backdrop) that.adjustBackdrop()
that.adjustDialog()
if (transition) {
@@ -993,7 +1001,7 @@ if (typeof jQuery === 'undefined') {
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
that.$dialog // wait for modal to slide in
.one('bsTransitionEnd', function () {
that.$element.trigger('focus').trigger(e)
})
@@ -1022,6 +1030,9 @@ if (typeof jQuery === 'undefined') {
.removeClass('in')
.attr('aria-hidden', true)
.off('click.dismiss.bs.modal')
.off('mouseup.dismiss.bs.modal')
this.$dialog.off('mousedown.dismiss.bs.modal')
$.support.transition && this.$element.hasClass('fade') ?
this.$element
@@ -1082,13 +1093,18 @@ if (typeof jQuery === 'undefined') {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.prependTo(this.$element)
.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (e.target !== e.currentTarget) return
this.options.backdrop == 'static'
? this.$element[0].focus.call(this.$element[0])
: this.hide.call(this)
}, this))
.appendTo(this.$body)
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (this.ignoreBackdropClick) {
this.ignoreBackdropClick = false
return
}
if (e.target !== e.currentTarget) return
this.options.backdrop == 'static'
? this.$element[0].focus()
: this.hide()
}, this))
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
@@ -1123,16 +1139,9 @@ if (typeof jQuery === 'undefined') {
// these following methods are used to handle overflowing modals
Modal.prototype.handleUpdate = function () {
if (this.options.backdrop) this.adjustBackdrop()
this.adjustDialog()
}
Modal.prototype.adjustBackdrop = function () {
this.$backdrop
.css('height', 0)
.css('height', this.$element[0].scrollHeight)
}
Modal.prototype.adjustDialog = function () {
var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
@@ -1150,17 +1159,23 @@ if (typeof jQuery === 'undefined') {
}
Modal.prototype.checkScrollbar = function () {
this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight
var fullWindowWidth = window.innerWidth
if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
var documentElementRect = document.documentElement.getBoundingClientRect()
fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
}
this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
this.scrollbarWidth = this.measureScrollbar()
}
Modal.prototype.setScrollbar = function () {
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
this.originalBodyPad = document.body.style.paddingRight || ''
if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
}
Modal.prototype.resetScrollbar = function () {
this.$body.css('padding-right', '')
this.$body.css('padding-right', this.originalBodyPad)
}
Modal.prototype.measureScrollbar = function () { // thx walsh
@@ -1226,7 +1241,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: tooltip.js v3.3.2
* Bootstrap: tooltip.js v3.3.4
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
@@ -1242,17 +1257,17 @@ if (typeof jQuery === 'undefined') {
// ===============================
var Tooltip = function (element, options) {
this.type =
this.options =
this.enabled =
this.timeout =
this.hoverState =
this.type = null
this.options = null
this.enabled = null
this.timeout = null
this.hoverState = null
this.$element = null
this.init('tooltip', element, options)
}
Tooltip.VERSION = '3.3.2'
Tooltip.VERSION = '3.3.4'
Tooltip.TRANSITION_DURATION = 150
@@ -1279,6 +1294,10 @@ if (typeof jQuery === 'undefined') {
this.options = this.getOptions(options)
this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
if (this.$element[0] instanceof document.constructor && !this.options.selector) {
throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
}
var triggers = this.options.trigger.split(' ')
for (var i = triggers.length; i--;) {
@@ -1499,10 +1518,10 @@ if (typeof jQuery === 'undefined') {
this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
}
Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {
Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
this.arrow()
.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
.css(isHorizontal ? 'top' : 'left', '')
.css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
.css(isVertical ? 'top' : 'left', '')
}
Tooltip.prototype.setContent = function () {
@@ -1515,7 +1534,7 @@ if (typeof jQuery === 'undefined') {
Tooltip.prototype.hide = function (callback) {
var that = this
var $tip = this.tip()
var $tip = $(this.$tip)
var e = $.Event('hide.bs.' + this.type)
function complete() {
@@ -1532,7 +1551,7 @@ if (typeof jQuery === 'undefined') {
$tip.removeClass('in')
$.support.transition && this.$tip.hasClass('fade') ?
$.support.transition && $tip.hasClass('fade') ?
$tip
.one('bsTransitionEnd', complete)
.emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
@@ -1676,7 +1695,7 @@ if (typeof jQuery === 'undefined') {
var data = $this.data('bs.tooltip')
var options = typeof option == 'object' && option
if (!data && option == 'destroy') return
if (!data && /destroy|hide/.test(option)) return
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -1699,7 +1718,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: popover.js v3.3.2
* Bootstrap: popover.js v3.3.4
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -1719,7 +1738,7 @@ if (typeof jQuery === 'undefined') {
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
Popover.VERSION = '3.3.2'
Popover.VERSION = '3.3.4'
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
placement: 'right',
@@ -1775,11 +1794,6 @@ if (typeof jQuery === 'undefined') {
return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
}
Popover.prototype.tip = function () {
if (!this.$tip) this.$tip = $(this.options.template)
return this.$tip
}
// POPOVER PLUGIN DEFINITION
// =========================
@@ -1790,7 +1804,7 @@ if (typeof jQuery === 'undefined') {
var data = $this.data('bs.popover')
var options = typeof option == 'object' && option
if (!data && option == 'destroy') return
if (!data && /destroy|hide/.test(option)) return
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -1813,7 +1827,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: scrollspy.js v3.3.2
* Bootstrap: scrollspy.js v3.3.4
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -1828,10 +1842,8 @@ if (typeof jQuery === 'undefined') {
// ==========================
function ScrollSpy(element, options) {
var process = $.proxy(this.process, this)
this.$body = $('body')
this.$scrollElement = $(element).is('body') ? $(window) : $(element)
this.$body = $(document.body)
this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
this.selector = (this.options.target || '') + ' .nav li > a'
this.offsets = []
@@ -1839,12 +1851,12 @@ if (typeof jQuery === 'undefined') {
this.activeTarget = null
this.scrollHeight = 0
this.$scrollElement.on('scroll.bs.scrollspy', process)
this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
this.refresh()
this.process()
}
ScrollSpy.VERSION = '3.3.2'
ScrollSpy.VERSION = '3.3.4'
ScrollSpy.DEFAULTS = {
offset: 10
@@ -1855,20 +1867,19 @@ if (typeof jQuery === 'undefined') {
}
ScrollSpy.prototype.refresh = function () {
var offsetMethod = 'offset'
var offsetBase = 0
var that = this
var offsetMethod = 'offset'
var offsetBase = 0
this.offsets = []
this.targets = []
this.scrollHeight = this.getScrollHeight()
if (!$.isWindow(this.$scrollElement[0])) {
offsetMethod = 'position'
offsetBase = this.$scrollElement.scrollTop()
}
this.offsets = []
this.targets = []
this.scrollHeight = this.getScrollHeight()
var self = this
this.$body
.find(this.selector)
.map(function () {
@@ -1883,8 +1894,8 @@ if (typeof jQuery === 'undefined') {
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
self.offsets.push(this[0])
self.targets.push(this[1])
that.offsets.push(this[0])
that.targets.push(this[1])
})
}
@@ -1913,7 +1924,7 @@ if (typeof jQuery === 'undefined') {
for (i = offsets.length; i--;) {
activeTarget != targets[i]
&& scrollTop >= offsets[i]
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
&& (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
&& this.activate(targets[i])
}
}
@@ -1924,8 +1935,8 @@ if (typeof jQuery === 'undefined') {
this.clear()
var selector = this.selector +
'[data-target="' + target + '"],' +
this.selector + '[href="' + target + '"]'
'[data-target="' + target + '"],' +
this.selector + '[href="' + target + '"]'
var active = $(selector)
.parents('li')
@@ -1989,7 +2000,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: tab.js v3.3.2
* Bootstrap: tab.js v3.3.4
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -2007,7 +2018,7 @@ if (typeof jQuery === 'undefined') {
this.element = $(element)
}
Tab.VERSION = '3.3.2'
Tab.VERSION = '3.3.4'
Tab.TRANSITION_DURATION = 150
@@ -2078,7 +2089,7 @@ if (typeof jQuery === 'undefined') {
element.removeClass('fade')
}
if (element.parent('.dropdown-menu')) {
if (element.parent('.dropdown-menu').length) {
element
.closest('li.dropdown')
.addClass('active')
@@ -2143,7 +2154,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: affix.js v3.3.2
* Bootstrap: affix.js v3.3.4
* http://getbootstrap.com/javascript/#affix
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -2165,14 +2176,14 @@ if (typeof jQuery === 'undefined') {
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
this.$element = $(element)
this.affixed =
this.unpin =
this.affixed = null
this.unpin = null
this.pinnedOffset = null
this.checkPosition()
}
Affix.VERSION = '3.3.2'
Affix.VERSION = '3.3.4'
Affix.RESET = 'affix affix-top affix-bottom'
@@ -2222,7 +2233,7 @@ if (typeof jQuery === 'undefined') {
var offset = this.options.offset
var offsetTop = offset.top
var offsetBottom = offset.bottom
var scrollHeight = $('body').height()
var scrollHeight = $(document.body).height()
if (typeof offset != 'object') offsetBottom = offsetTop = offset
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
+3 -3
View File
File diff suppressed because one or more lines are too long
+30
View File
@@ -78,6 +78,16 @@
origin: >
Offshoot of Bootstrap#8350 & Chromium#337668
-
browser: >
Chrome (OS X)
summary: >
Caps Lock indicator not shown in `<input type="password">` with `display: block`
upstream_bug: >
Chromium#460200
origin: >
Bootstrap#15832
-
browser: >
Chrome
@@ -108,6 +118,16 @@
origin: >
Bootstrap#14409
-
browser: >
Chrome
summary: >
`:focus` `outline` style causes cursor to not be displayed when toggling a `readonly` `<input>` to read-write.
upstream_bug: >
Chromium#465274
origin: >
Bootstrap#16022
-
browser: >
Chrome (Windows & Linux)
@@ -170,6 +190,16 @@
origin: >
Bootstrap#15205
-
browser: >
Safari (OS X)
summary: >
Caps Lock indicator not shown in `<input type="password">` with `display: block`
upstream_bug: >
WebKit#141804, Safari#19892433
origin: >
Bootstrap#15832
-
browser: >
Safari (iOS)
+4
View File
@@ -227,8 +227,12 @@
- glyphicon-piggy-bank
- glyphicon-scissors
- glyphicon-bitcoin
- glyphicon-btc
- glyphicon-xbt
- glyphicon-yen
- glyphicon-jpy
- glyphicon-ruble
- glyphicon-rub
- glyphicon-scale
- glyphicon-ice-lolly
- glyphicon-ice-lolly-tasted
+8 -3
View File
@@ -11,7 +11,7 @@
- name: French
code: fr
description: Bootstrap en Français
url: http://www.oneskyapp.com/docs/bootstrap/fr
url: http://www.oneskyapp.com/fr/docs/bootstrap/getting-started/
- name: German
code: de
@@ -31,14 +31,19 @@
- name: Russian
code: ru
description: Bootstrap по-русски
url: http://www.oneskyapp.com/docs/bootstrap/ru
url: http://www.oneskyapp.com/ru/docs/bootstrap/
- name: Spanish
code: es
description: Bootstrap en Español
url: http://www.oneskyapp.com/docs/bootstrap/es
url: http://www.oneskyapp.com/es/docs/bootstrap/
- name: Ukrainian
code: uk
description: Bootstrap українською
url: http://twbs.docs.org.ua
- name: Vietnamese
code: vi
description: Bootstrap bằng tiếng Việt
url: http://getbootstrap.com.vn
+1 -1
View File
@@ -11,7 +11,7 @@
<li><a href="#">Home</a></li>
<li class="active">Library</li>
</ol>
<ol class="breadcrumb" style="margin-bottom: 5px;">
<ol class="breadcrumb">
<li><a href="#">Home</a></li>
<li><a href="#">Library</a></li>
<li class="active">Data</li>
@@ -8,7 +8,7 @@
<p>Button dropdowns require the <a href="../javascript/#dropdowns">dropdown plugin</a> to be included in your version of Bootstrap.</p>
</div>
<h3 id="btn-dropdowns-single">Single button dropdowns</h3>
<h2 id="btn-dropdowns-single">Single button dropdowns</h2>
<p>Turn a button into a dropdown toggle with some basic markup changes.</p>
<div class="bs-example" data-example-id="single-button-dropdown">
<div class="btn-group">
@@ -88,7 +88,7 @@
</div>
{% endhighlight %}
<h3 id="btn-dropdowns-split">Split button dropdowns</h3>
<h2 id="btn-dropdowns-split">Split button dropdowns</h2>
<p>Similarly, create split button dropdowns with the same markup changes, only with a separate button.</p>
<div class="bs-example" data-example-id="split-button-dropdown">
<div class="btn-group">
@@ -194,7 +194,7 @@
</div>
{% endhighlight %}
<h3 id="btn-dropdowns-sizing">Sizing</h3>
<h2 id="btn-dropdowns-sizing">Sizing</h2>
<p>Button dropdowns work with buttons of all sizes.</p>
<div class="bs-example" data-example-id="button-dropdown-sizing">
<div class="btn-toolbar" role="toolbar">
@@ -272,7 +272,7 @@
</div>
{% endhighlight %}
<h3 id="btn-dropdowns-dropup">Dropup variation</h3>
<h2 id="btn-dropdowns-dropup">Dropup variation</h2>
<p>Trigger dropdown menus above elements by adding <code>.dropup</code> to the parent.</p>
<div class="bs-example" data-example-id="button-dropdown-dropup">
<div class="btn-toolbar" role="toolbar">
+6 -6
View File
@@ -15,7 +15,7 @@
<p>In addition, groups and toolbars should be given an explicit label, as most assistive technologies will otherwise not announce them, despite the presence of the correct <code>role</code> attribute. In the examples provided here, we use <code>aria-label</code>, but alternatives such as <code>aria-labelledby</code> can also be used.</p>
</div>
<h3 id="btn-groups-single">Basic example</h3>
<h2 id="btn-groups-single">Basic example</h2>
<p>Wrap a series of buttons with <code>.btn</code> in <code>.btn-group</code>.</p>
<div class="bs-example" data-example-id="simple-button-group">
<div class="btn-group" role="group" aria-label="Basic example">
@@ -32,7 +32,7 @@
</div>
{% endhighlight %}
<h3 id="btn-groups-toolbar">Button toolbar</h3>
<h2 id="btn-groups-toolbar">Button toolbar</h2>
<p>Combine sets of <code>&lt;div class="btn-group"&gt;</code> into a <code>&lt;div class="btn-toolbar"&gt;</code> for more complex components.</p>
<div class="bs-example" data-example-id="simple-button-toolbar">
<div class="btn-toolbar" role="toolbar" aria-label="Toolbar with button groups">
@@ -60,7 +60,7 @@
</div>
{% endhighlight %}
<h3 id="btn-groups-sizing">Sizing</h3>
<h2 id="btn-groups-sizing">Sizing</h2>
<p>Instead of applying button sizing classes to every button in a group, just add <code>.btn-group-*</code> to each <code>.btn-group</code>, including when nesting multiple groups.</p>
<div class="bs-example" data-example-id="button-group-sizing">
<div class="btn-group btn-group-lg" role="group" aria-label="Large button group">
@@ -94,7 +94,7 @@
<div class="btn-group btn-group-xs" role="group" aria-label="...">...</div>
{% endhighlight %}
<h3 id="btn-groups-nested">Nesting</h3>
<h2 id="btn-groups-nested">Nesting</h2>
<p>Place a <code>.btn-group</code> within another <code>.btn-group</code> when you want dropdown menus mixed with a series of buttons.</p>
<div class="bs-example" data-example-id="button-group-nesting">
<div class="btn-group" role="group" aria-label="Button group with nested dropdown">
@@ -131,7 +131,7 @@
</div>
{% endhighlight %}
<h3 id="btn-groups-vertical">Vertical variation</h3>
<h2 id="btn-groups-vertical">Vertical variation</h2>
<p>Make a set of buttons appear vertically stacked rather than horizontally. <strong class="text-danger">Split button dropdowns are not supported here.</strong></p>
<div class="bs-example" data-example-id="vertical-button-group">
<div class="btn-group-vertical" role="group" aria-label="Vertical button group">
@@ -187,7 +187,7 @@
</div>
{% endhighlight %}
<h3 id="btn-groups-justified">Justified button groups</h3>
<h2 id="btn-groups-justified">Justified button groups</h2>
<p>Make a group of buttons stretch at equal sizes to span the entire width of its parent. Also works with button dropdowns within the button group.</p>
<div class="bs-callout bs-callout-warning" id="callout-btn-group-justified-dbl-border">
+35 -13
View File
@@ -3,8 +3,8 @@
<p class="lead">Toggleable, contextual menu for displaying lists of links. Made interactive with the <a href="../javascript/#dropdowns">dropdown JavaScript plugin</a>.</p>
<h3 id="dropdowns-example">Example</h3>
<p>Wrap the dropdown's trigger and the dropdown menu within <code>.dropdown</code>, or another element that declares <code>position: relative;</code>. Then add the menu's HTML.</p>
<h2 id="dropdowns-example">Example</h2>
<p>Wrap the dropdown's trigger and the dropdown menu within <code>.dropdown</code>, or another element that declares <code>position: relative;</code>. Then add the menu's HTML. Dropdown menus can be changed to expand upwards (instead of downwards) by adding <code>.dropup</code> to the parent.</p>
<div class="bs-example" data-example-id="static-dropdown">
<div class="dropdown clearfix">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
@@ -15,7 +15,17 @@
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
<div class="dropup clearfix">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu2">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
</ul>
</div>
</div><!-- /example -->
@@ -32,9 +42,21 @@
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
<div class="dropup">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu2">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
{% endhighlight %}
<h3 id="dropdowns-alignment">Alignment</h3>
<h2 id="dropdowns-alignment">Alignment</h2>
<p>By default, a dropdown menu is automatically positioned 100% from the top and along the left side of its parent. Add <code>.dropdown-menu-right</code> to a <code>.dropdown-menu</code> to right align the dropdown menu.</p>
<div class="bs-callout bs-callout-warning" id="callout-dropdown-positioning">
<h4>May require additional positioning</h4>
@@ -50,15 +72,15 @@
</ul>
{% endhighlight %}
<h3 id="dropdowns-headers">Headers</h3>
<h2 id="dropdowns-headers">Headers</h2>
<p>Add a header to label sections of actions in any dropdown menu.</p>
<div class="bs-example">
<div class="dropdown clearfix">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-expanded="true">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu3" data-toggle="dropdown" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu2">
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu3">
<li role="presentation" class="dropdown-header">Dropdown header</li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another action</a></li>
@@ -69,14 +91,14 @@
</div>
</div><!-- /example -->
{% highlight html %}
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu2">
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu3">
...
<li role="presentation" class="dropdown-header">Dropdown header</li>
...
</ul>
{% endhighlight %}
<h3 id="dropdowns-divider">Divider</h3>
<h2 id="dropdowns-divider">Divider</h2>
<p>Add a divider to separate series of links in a dropdown menu.</p>
<div class="bs-example">
<div class="dropdown clearfix">
@@ -101,15 +123,15 @@
</ul>
{% endhighlight %}
<h3 id="dropdowns-disabled">Disabled menu items</h3>
<h2 id="dropdowns-disabled">Disabled menu items</h2>
<p>Add <code>.disabled</code> to a <code>&lt;li&gt;</code> in the dropdown to disable the link.</p>
<div class="bs-example">
<div class="dropdown clearfix">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu3" data-toggle="dropdown" aria-expanded="true">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu4" data-toggle="dropdown" aria-expanded="true">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu3">
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu4">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Regular link</a></li>
<li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">Disabled link</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another link</a></li>
@@ -117,7 +139,7 @@
</div>
</div><!-- /example -->
{% highlight html %}
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu3">
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu4">
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Regular link</a></li>
<li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">Disabled link</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Another link</a></li>
+1 -1
View File
@@ -2,7 +2,7 @@
<h1 id="glyphicons" class="page-header">Glyphicons</h1>
<h2 id="glyphicons-glyphs">Available glyphs</h2>
<p>Includes 260 glyphs in font format from the Glyphicon Halflings set. <a href="http://glyphicons.com/">Glyphicons</a> Halflings are normally not available for free, but their creator has made them available for Bootstrap free of cost. As a thank you, we only ask that you include a link back to <a href="http://glyphicons.com/">Glyphicons</a> whenever possible.</p>
<p>Includes over 250 glyphs in font format from the Glyphicon Halflings set. <a href="http://glyphicons.com/">Glyphicons</a> Halflings are normally not available for free, but their creator has made them available for Bootstrap free of cost. As a thank you, we only ask that you include a link back to <a href="http://glyphicons.com/">Glyphicons</a> whenever possible.</p>
<div class="bs-glyphicons">
<ul class="bs-glyphicons-list">
{% for iconClassName in site.data.glyphicons %}
+2 -2
View File
@@ -1,7 +1,7 @@
<div class="bs-docs-section">
<h1 id="labels" class="page-header">Labels</h1>
<h3>Example</h3>
<h2>Example</h2>
<div class="bs-example" data-example-id="labels-in-headings">
<h1>Example heading <span class="label label-default">New</span></h1>
<h2>Example heading <span class="label label-default">New</span></h2>
@@ -14,7 +14,7 @@
<h3>Example heading <span class="label label-default">New</span></h3>
{% endhighlight %}
<h3>Available variations</h3>
<h2>Available variations</h2>
<p>Add any of the below mentioned modifier classes to change the appearance of a label.</p>
<div class="bs-example" data-example-id="label-variants">
<span class="label label-default">Default</span>
+6 -6
View File
@@ -3,7 +3,7 @@
<p class="lead">List groups are a flexible and powerful component for displaying not only simple lists of elements, but complex ones with custom content.</p>
<h3 id="list-group-basic">Basic example</h3>
<h2 id="list-group-basic">Basic example</h2>
<p>The most basic list group is simply an unordered list with list items, and the proper classes. Build upon it with the options that follow, or your own CSS as needed.</p>
<div class="bs-example" data-example-id="simple-list-group">
<ul class="list-group">
@@ -24,7 +24,7 @@
</ul>
{% endhighlight %}
<h3 id="list-group-badges">Badges</h3>
<h2 id="list-group-badges">Badges</h2>
<p>Add the badges component to any list group item and it will automatically be positioned on the right.</p>
<div class="bs-example" data-example-id="list-group-badges">
<ul class="list-group">
@@ -51,7 +51,7 @@
</ul>
{% endhighlight %}
<h3 id="list-group-linked">Linked items</h3>
<h2 id="list-group-linked">Linked items</h2>
<p>Linkify list group items by using anchor tags instead of list items (that also means a parent <code>&lt;div&gt;</code> instead of an <code>&lt;ul&gt;</code>). No need for individual parents around each element.</p>
<div class="bs-example" data-example-id="list-group-anchors">
<div class="list-group">
@@ -76,7 +76,7 @@
</div>
{% endhighlight %}
<h3 id="list-group-disabled">Disabled items</h3>
<h2 id="list-group-disabled">Disabled items</h2>
<p>Add <code>.disabled</code> to a <code>.list-group-item</code> to gray it out to appear disabled.</p>
<div class="bs-example" data-example-id="list-group-disabled">
<div class="list-group">
@@ -101,7 +101,7 @@
</div>
{% endhighlight %}
<h3 id="list-group-contextual-classes">Contextual classes</h3>
<h2 id="list-group-contextual-classes">Contextual classes</h2>
<p>Use contextual classes to style list items, default or linked. Also includes <code>.active</code> state.</p>
<div class="bs-example" data-example-id="list-group-variants">
<div class="row">
@@ -138,7 +138,7 @@
</div>
{% endhighlight %}
<h3 id="list-group-custom-content">Custom content</h3>
<h2 id="list-group-custom-content">Custom content</h2>
<p>Add nearly any HTML within, even for linked list groups like the one below.</p>
<div class="bs-example" data-example-id="list-group-custom-content">
<div class="list-group">
+3 -3
View File
@@ -3,7 +3,7 @@
<p class="lead">Abstract object styles for building various types of components (like blog comments, Tweets, etc) that feature a left- or right-aligned image alongside textual content.</p>
<h3 id="media-default">Default media</h3>
<h2 id="media-default">Default media</h2>
<p>The default media displays a media object (images, video, audio) to the left or right of a content block.</p>
<div class="bs-example" data-example-id="default-media">
<div class="media">
@@ -82,7 +82,7 @@
{% endhighlight %}
<p>The classes <code>.pull-left</code> and <code>.pull-right</code> also exist and were previously used as part of the media component, but are deprecated for that use as of v3.3.0. They are approximately equivalent to <code>.media-left</code> and <code>.media-right</code>, except that <code>.media-right</code> should be placed after the <code>.media-body</code> in the html.</p>
<h3 id="media-alignment">Media alignment</h3>
<h2 id="media-alignment">Media alignment</h2>
<p>The images or other media can be aligned top, middle, or bottom. The default is top aligned.</p>
<div class="bs-example" data-example-id="media-alignment">
<div class="media">
@@ -136,7 +136,7 @@
</div>
{% endhighlight %}
<h3 id="media-list">Media list</h3>
<h2 id="media-list">Media list</h2>
<p>With a bit of extra markup, you can use media inside list (useful for comment threads or articles lists).</p>
<div class="bs-example" data-example-id="media-list">
<ul class="media-list">
+1 -1
View File
@@ -49,7 +49,7 @@
{% endhighlight %}
<p>Pills are also vertically stackable. Just add <code>.nav-stacked</code>.</p>
<div class="bs-example" data-example-id="simple-nav-stacked">
<ul class="nav nav-pills nav-stacked" style="max-width: 300px;">
<ul class="nav nav-pills nav-stacked nav-pills-stacked-example">
<li role="presentation" class="active"><a href="#">Home</a></li>
<li role="presentation"><a href="#">Profile</a></li>
<li role="presentation"><a href="#">Messages</a></li>
+6 -6
View File
@@ -3,7 +3,7 @@
<p class="lead">While not always necessary, sometimes you need to put your DOM in a box. For those situations, try the panel component.</p>
<h3 id="panels-basic">Basic example</h3>
<h2 id="panels-basic">Basic example</h2>
<p>By default, all the <code>.panel</code> does is apply some basic border and padding to contain some content.</p>
<div class="bs-example" data-example-id="simple-panel">
<div class="panel panel-default">
@@ -20,7 +20,7 @@
</div>
{% endhighlight %}
<h3 id="panels-heading">Panel with heading</h3>
<h2 id="panels-heading">Panel with heading</h2>
<p>Easily add a heading container to your panel with <code>.panel-heading</code>. You may also include any <code>&lt;h1&gt;</code>-<code>&lt;h6&gt;</code> with a <code>.panel-title</code> class to add a pre-styled heading.</p>
<p>For proper link coloring, be sure to place links in headings within <code>.panel-title</code>.</p>
<div class="bs-example" data-example-id="panel-with-heading">
@@ -57,7 +57,7 @@
</div>
{% endhighlight %}
<h3 id="panels-footer">Panel with footer</h3>
<h2 id="panels-footer">Panel with footer</h2>
<p>Wrap buttons or secondary text in <code>.panel-footer</code>. Note that panel footers <strong>do not</strong> inherit colors and borders when using contextual variations as they are not meant to be in the foreground.</p>
<div class="bs-example" data-example-id="panel-with-footer">
<div class="panel panel-default">
@@ -76,7 +76,7 @@
</div>
{% endhighlight %}
<h3 id="panels-alternatives">Contextual alternatives</h3>
<h2 id="panels-alternatives">Contextual alternatives</h2>
<p>Like other components, easily make a panel more meaningful to a particular context by adding any of the contextual state classes.</p>
<div class="bs-example" data-example-id="contextual-panels">
<div class="panel panel-primary">
@@ -128,7 +128,7 @@
<div class="panel panel-danger">...</div>
{% endhighlight %}
<h3 id="panels-tables">With tables</h3>
<h2 id="panels-tables">With tables</h2>
<p>Add any non-bordered <code>.table</code> within a panel for a seamless design. If there is a <code>.panel-body</code>, we add an extra border to the top of the table for separation.</p>
<div class="bs-example" data-example-id="table-within-panel">
<div class="panel panel-default">
@@ -238,7 +238,7 @@
{% endhighlight %}
<h3 id="panels-list-group">With list groups</h3>
<h2 id="panels-list-group">With list groups</h2>
<p>Easily include full-width <a href="#list-group">list groups</a> within any panel.</p>
<div class="bs-example" data-example-id="panel-with-list-group">
<div class="panel panel-default">
+7 -7
View File
@@ -8,7 +8,7 @@
<p>Progress bars use CSS3 transitions and animations to achieve some of their effects. These features are not supported in Internet Explorer 9 and below or older versions of Firefox. Opera 12 does not support animations.</p>
</div>
<h3 id="progress-basic">Basic example</h3>
<h2 id="progress-basic">Basic example</h2>
<p>Default progress bar.</p>
<div class="bs-example" data-example-id="simple-progress-bar">
<div class="progress">
@@ -25,7 +25,7 @@
</div>
{% endhighlight %}
<h3 id="progress-label">With label</h3>
<h2 id="progress-label">With label</h2>
<p>Remove the <code>&lt;span&gt;</code> with <code>.sr-only</code> class from within the progress bar to show a visible percentage.</p>
<div class="bs-example" data-example-id="progress-bar-with-label">
<div class="progress">
@@ -68,7 +68,7 @@
{% endhighlight %}
<h3 id="progress-alternatives">Contextual alternatives</h3>
<h2 id="progress-alternatives">Contextual alternatives</h2>
<p>Progress bars use some of the same button and alert classes for consistent styles.</p>
<div class="bs-example" data-example-id="contextual-progress-bar">
<div class="progress">
@@ -115,8 +115,8 @@
</div>
{% endhighlight %}
<h3 id="progress-striped">Striped</h3>
<p>Uses a gradient to create a striped effect. Not available in IE8.</p>
<h2 id="progress-striped">Striped</h2>
<p>Uses a gradient to create a striped effect. Not available in IE9 and below.</p>
<div class="bs-example" data-example-id="striped-progress-bar">
<div class="progress">
<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
@@ -162,7 +162,7 @@
</div>
{% endhighlight %}
<h3 id="progress-animated">Animated</h3>
<h2 id="progress-animated">Animated</h2>
<p>Add <code>.active</code> to <code>.progress-bar-striped</code> to animate the stripes right to left. Not available in IE9 and below.</p>
<div class="bs-example" data-example-id="animated-progress-bar">
<div class="progress">
@@ -178,7 +178,7 @@
</div>
{% endhighlight %}
<h3 id="progress-stacked">Stacked</h3>
<h2 id="progress-stacked">Stacked</h2>
<p>Place multiple bars into the same <code>.progress</code> to stack them.</p>
<div class="bs-example" data-example-id="stacked-progress-bar">
<div class="progress">
+2 -2
View File
@@ -4,7 +4,7 @@
<p class="lead">Extend Bootstrap's <a href="../css/#grid">grid system</a> with the thumbnail component to easily display grids of images, videos, text, and more.</p>
<p>If you're looking for Pinterest-like presentation of thumbnails of varying heights and/or widths, you'll need to use a third-party plugin such as <a href="http://masonry.desandro.com">Masonry</a>, <a href="http://isotope.metafizzy.co">Isotope</a>, or <a href="http://salvattore.com">Salvattore</a>.</p>
<h3 id="thumbnails-default">Default example</h3>
<h2 id="thumbnails-default">Default example</h2>
<p>By default, Bootstrap's thumbnails are designed to showcase linked images with minimal required markup.</p>
<div class="bs-example" data-example-id="simple-thumbnails">
<div class="row">
@@ -41,7 +41,7 @@
</div>
{% endhighlight %}
<h3 id="thumbnails-custom-content">Custom content</h3>
<h2 id="thumbnails-custom-content">Custom content</h2>
<p>With a bit of extra markup, it's possible to add any kind of HTML content like headings, paragraphs, or buttons into thumbnails.</p>
<div class="bs-example" data-example-id="thumbnails-with-custom-content">
<div class="row">
+2 -2
View File
@@ -1,7 +1,7 @@
<div class="bs-docs-section">
<h1 id="wells" class="page-header">Wells</h1>
<h3>Default well</h3>
<h2>Default well</h2>
<p>Use the well as a simple effect on an element to give it an inset effect.</p>
<div class="bs-example" data-example-id="default-well">
<div class="well">
@@ -11,7 +11,7 @@
{% highlight html %}
<div class="well">...</div>
{% endhighlight %}
<h3>Optional classes</h3>
<h2>Optional classes</h2>
<p>Control padding and rounded corners with two optional modifier classes.</p>
<div class="bs-example" data-example-id="large-well">
<div class="well well-lg">
+1 -1
View File
@@ -112,7 +112,7 @@
<p>Create block level buttons&mdash;those that span the full width of a parent&mdash; by adding <code>.btn-block</code>.</p>
<div class="bs-example" data-example-id="block-btns">
<div class="well" style="max-width: 400px; margin: 0 auto 10px;">
<div class="well center-block" style="max-width: 400px;">
<button type="button" class="btn btn-primary btn-lg btn-block">Block level button</button>
<button type="button" class="btn btn-default btn-lg btn-block">Block level button</button>
</div>
+5 -5
View File
@@ -528,7 +528,7 @@
<h2 id="forms-control-disabled">Disabled state</h2>
<p>Add the <code>disabled</code> boolean attribute on an input to prevent user input and trigger a slightly different look.</p>
<p>Add the <code>disabled</code> boolean attribute on an input to prevent user interactions. Disabled inputs appear lighter and add a <code>not-allowed</code> cursor.</p>
<div class="bs-example" data-example-id="text-form-control-disabled">
<form>
<input class="form-control" id="disabledInput" type="text" placeholder="Disabled input here…" disabled>
@@ -598,7 +598,7 @@
<h2 id="forms-control-readonly">Readonly state</h2>
<p>Add the <code>readonly</code> boolean attribute on an input to prevent user input and style the input as disabled.</p>
<p>Add the <code>readonly</code> boolean attribute on an input to prevent modification of the input's value. Read-only inputs appear lighter (just like disabled inputs), but retain the standard cursor.</p>
<div class="bs-example" data-example-id="readonly-text-form-control">
<form>
<input class="form-control" type="text" placeholder="Readonly input here…" readonly>
@@ -613,9 +613,9 @@
<p>Bootstrap includes validation styles for error, warning, and success states on form controls. To use, add <code>.has-warning</code>, <code>.has-error</code>, or <code>.has-success</code> to the parent element. Any <code>.control-label</code>, <code>.form-control</code>, and <code>.help-block</code> within that element will receive the validation styles.</p>
<div class="bs-callout bs-callout-warning" id="callout-form-validation-state-accessibility">
<h4>Conveying validation state to assistive technologies</h4>
<p>Using these validation styles to denote the state of a form control only provides a visual indication, which will not be conveyed to users of assistive technologies such as screen readers.</p>
<p>Ensure that an alternative indication of state is also provided. For instance, you can include a hint about state in the form control's <code>&lt;label&gt;</code> text itself (as is the case in the following code example), or associate an additional element with textual information about the validation state with the form control using <code>aria-describedby</code> (see the example in the following section). In the case of an error, you could also use the <code>aria-invalid="true"</code> attribute on the form control.</p>
<h4>Conveying validation state to assistive technologies and colorblind users</h4>
<p>Using these validation styles to denote the state of a form control only provides a visual, color-based indication, which will not be conveyed to users of assistive technologies - such as screen readers - or to colorblind users.</p>
<p>Ensure that an alternative indication of state is also provided. For instance, you can include a hint about state in the form control's <code>&lt;label&gt;</code> text itself (as is the case in the following code example), include a <a href="../components/#glyphicons">Glyphicon</a> (with appropriate alternative text using the <code>.sr-only</code> class - see the <a href="../components/#glyphicons-examples">Glyphicon examples</a>), or by providing an additional <a href="#forms-help-text">help text</a> block. Specifically for assistive technologies, invalid form controls can also be assigned an <code>aria-invalid="true"</code> attribute.</p>
</div>
<div class="bs-example" data-example-id="form-validation-states">
+16 -16
View File
@@ -3,7 +3,7 @@
<p class="lead">Bootstrap includes a responsive, mobile first fluid grid system that appropriately scales up to 12 columns as the device or viewport size increases. It includes <a href="#grid-example-basic">predefined classes</a> for easy layout options, as well as powerful <a href="#grid-less">mixins for generating more semantic layouts</a>.</p>
<h3 id="grid-intro">Introduction</h3>
<h2 id="grid-intro">Introduction</h2>
<p>Grid systems are used for creating page layouts through a series of rows and columns that house your content. Here's how the Bootstrap grid system works:</p>
<ul>
<li>Rows must be placed within a <code>.container</code> (fixed-width) or <code>.container-fluid</code> (full-width) for proper alignment and padding.</li>
@@ -18,7 +18,7 @@
</ul>
<p>Look to the examples for applying these principles to your code.</p>
<h3 id="grid-media-queries">Media queries</h3>
<h2 id="grid-media-queries">Media queries</h2>
<p>We use the following media queries in our Less files to create the key breakpoints in our grid system.</p>
{% highlight scss %}
/* Extra small devices (phones, less than 768px) */
@@ -41,7 +41,7 @@
@media (min-width: @screen-lg-min) { ... }
{% endhighlight %}
<h3 id="grid-options">Grid options</h3>
<h2 id="grid-options">Grid options</h2>
<p>See how aspects of the Bootstrap grid system work across multiple devices with a handy table.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
@@ -117,7 +117,7 @@
</table>
</div>
<h3 id="grid-example-basic">Example: Stacked-to-horizontal</h3>
<h2 id="grid-example-basic">Example: Stacked-to-horizontal</h2>
<p>Using a single set of <code>.col-md-*</code> grid classes, you can create a basic grid system that starts out stacked on mobile devices and tablet devices (the extra small to small range) before becoming horizontal on desktop (medium) devices. Place grid columns in any <code>.row</code>.</p>
<div class="bs-docs-grid">
<div class="row show-grid">
@@ -178,7 +178,7 @@
</div>
{% endhighlight %}
<h3 id="grid-example-fluid">Example: Fluid container</h3>
<h2 id="grid-example-fluid">Example: Fluid container</h2>
<p>Turn any fixed-width grid layout into a full-width layout by changing your outermost <code>.container</code> to <code>.container-fluid</code>.</p>
{% highlight html %}
<div class="container-fluid">
@@ -188,7 +188,7 @@
</div>
{% endhighlight %}
<h3 id="grid-example-mixed">Example: Mobile and desktop</h3>
<h2 id="grid-example-mixed">Example: Mobile and desktop</h2>
<p>Don't want your columns to simply stack in smaller devices? Use the extra small and medium device grid classes by adding <code>.col-xs-*</code> <code>.col-md-*</code> to your columns. See the example below for a better idea of how it all works.</p>
<div class="bs-docs-grid">
<div class="row show-grid">
@@ -226,7 +226,7 @@
</div>
{% endhighlight %}
<h3 id="grid-example-mixed-complete">Example: Mobile, tablet, desktop</h3>
<h2 id="grid-example-mixed-complete">Example: Mobile, tablet, desktop</h2>
<p>Build on the previous example by creating even more dynamic and powerful layouts with tablet <code>.col-sm-*</code> classes.</p>
<div class="bs-docs-grid">
<div class="row show-grid">
@@ -255,7 +255,7 @@
</div>
{% endhighlight %}
<h3 id="grid-example-wrapping">Example: Column wrapping</h3>
<h2 id="grid-example-wrapping">Example: Column wrapping</h2>
<p>If more than 12 columns are placed within a single row, each group of extra columns will, as one unit, wrap onto a new line.</p>
<div class="bs-docs-grid">
<div class="row show-grid">
@@ -272,7 +272,7 @@
</div>
{% endhighlight %}
<h3 id="grid-responsive-resets">Responsive column resets</h3>
<h2 id="grid-responsive-resets">Responsive column resets</h2>
<p>With the four tiers of grids available you're bound to run into issues where, at certain breakpoints, your columns don't clear quite right as one is taller than the other. To fix that, use a combination of a <code>.clearfix</code> and our <a href="#responsive-utilities">responsive utility classes</a>.</p>
<div class="bs-docs-grid">
<div class="row show-grid">
@@ -316,7 +316,7 @@
{% endhighlight %}
<h3 id="grid-offsetting">Offsetting columns</h3>
<h2 id="grid-offsetting">Offsetting columns</h2>
<p>Move columns to the right using <code>.col-md-offset-*</code> classes. These classes increase the left margin of a column by <code>*</code> columns. For example, <code>.col-md-offset-4</code> moves <code>.col-md-4</code> over four columns.</p>
<div class="bs-docs-grid">
<div class="row show-grid">
@@ -346,7 +346,7 @@
{% endhighlight %}
<h3 id="grid-nesting">Nesting columns</h3>
<h2 id="grid-nesting">Nesting columns</h2>
<p>To nest your content with the default grid, add a new <code>.row</code> and set of <code>.col-sm-*</code> columns within an existing <code>.col-sm-*</code> column. Nested rows should include a set of columns that add up to 12 or fewer (it is not required that you use all 12 available columns).</p>
<div class="row show-grid">
<div class="col-sm-9">
@@ -377,7 +377,7 @@
</div>
{% endhighlight %}
<h3 id="grid-column-ordering">Column ordering</h3>
<h2 id="grid-column-ordering">Column ordering</h2>
<p>Easily change the order of our built-in grid columns with <code>.col-md-push-*</code> and <code>.col-md-pull-*</code> modifier classes.</p>
<div class="row show-grid">
<div class="col-md-9 col-md-push-3">.col-md-9 .col-md-push-3</div>
@@ -391,10 +391,10 @@
</div>
{% endhighlight %}
<h3 id="grid-less">Less mixins and variables</h3>
<h2 id="grid-less">Less mixins and variables</h2>
<p>In addition to <a href="#grid-example-basic">prebuilt grid classes</a> for fast layouts, Bootstrap includes Less variables and mixins for quickly generating your own simple, semantic layouts.</p>
<h4>Variables</h4>
<h3>Variables</h3>
<p>Variables determine the number of columns, the gutter width, and the media query point at which to begin floating columns. We use these to generate the predefined grid classes documented above, as well as for the custom mixins listed below.</p>
{% highlight scss %}
@grid-columns: 12;
@@ -402,7 +402,7 @@
@grid-float-breakpoint: 768px;
{% endhighlight %}
<h4>Mixins</h4>
<h3>Mixins</h3>
<p>Mixins are used in conjunction with the grid variables to generate semantic CSS for individual grid columns.</p>
{% highlight scss %}
// Creates a wrapper for a series of columns
@@ -538,7 +538,7 @@
}
{% endhighlight %}
<h4>Example usage</h4>
<h3>Example usage</h3>
<p>You can modify the variables to your own custom values, or just use the mixins with their default values. Here's an example of using the default settings to create a two-column layout with a gap between.</p>
{% highlight scss %}
.wrapper {
+6 -6
View File
@@ -109,14 +109,14 @@
<div class="center-block">...</div>
{% endhighlight %}
{% highlight scss %}
// Classes
// Class
.center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
// Usage as mixins
// Usage as a mixin
.element {
.center-block();
}
@@ -142,7 +142,7 @@
}
}
// Usage as a Mixin
// Usage as a mixin
.element {
.clearfix();
}
@@ -186,7 +186,7 @@
<a class="sr-only sr-only-focusable" href="#content">Skip to main content</a>
{% endhighlight %}
{% highlight scss %}
// Usage as a Mixin
// Usage as a mixin
.skip-navigation {
.sr-only();
.sr-only-focusable();
@@ -199,8 +199,8 @@
{% highlight html %}
<h1 class="text-hide">Custom heading</h1>
{% endhighlight %}
{% highlight scss %}
// Usage as a Mixin
{% highlight scss %}
// Usage as a mixin
.heading {
.text-hide();
}
+2 -1
View File
@@ -2,7 +2,8 @@
<h1 id="images" class="page-header">Images</h1>
<h2 id="images-responsive">Responsive images</h2>
<p>Images in Bootstrap 3 can be made responsive-friendly via the addition of the <code>.img-responsive</code> class. This applies <code>max-width: 100%;</code> and <code>height: auto;</code> to the image so that it scales nicely to the parent element.</p>
<p>Images in Bootstrap 3 can be made responsive-friendly via the addition of the <code>.img-responsive</code> class. This applies <code>max-width: 100%;</code>, <code>height: auto;</code> and <code>display: block;</code> to the image so that it scales nicely to the parent element.</p>
<p>To center images which use the <code>.img-responsive</code> class, use <code>.center-block</code> instead of <code>.text-center</code>. <a href="../css/#helper-classes-center">See the helper classes section</a> for more details about <code>.center-block</code> usage.</p>
<div class="bs-callout bs-callout-warning" id="callout-images-ie-svg">
<h4>SVG images and IE 8-10</h4>
<p>In Internet Explorer 8-10, SVG images with <code>.img-responsive</code> are disproportionately sized. To fix this, add <code>width: 100% \9;</code> where necessary. Bootstrap doesn't apply this automatically as it causes complications to other image formats.</p>
+5 -5
View File
@@ -92,7 +92,7 @@ a {
<p>Note that the <code>@link-hover-color</code> uses a function, another awesome tool from Less, to automagically create the right hover color. You can use <code>darken</code>, <code>lighten</code>, <code>saturate</code>, and <code>desaturate</code>.</p>
<h3 id="less-variables-typography">Typography</h3>
<p>Easily set your type face, text size, leading, and more with a few quick variables. Bootstrap makes use of these as well to provide easy typographic mixins.</p>
<p>Easily set your typeface, text size, leading, and more with a few quick variables. Bootstrap makes use of these as well to provide easy typographic mixins.</p>
{% highlight scss %}
@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
@font-family-serif: Georgia, "Times New Roman", Times, serif;
@@ -162,7 +162,7 @@ a {
<h3 id="less-mixins-box-sizing">Box-sizing</h3>
<p>Reset your components' box model with a single mixin. For context, see this <a href="https://developer.mozilla.org/en-US/docs/CSS/box-sizing" target="_blank">helpful article from Mozilla</a>.</p>
<p>The mixin is <strong>deprecated</strong> as of v3.2.0, with the introduction of autoprefixer. To preserve backwards-compatibility, Bootstrap will continue to use the mixin internally until Bootstrap v4.</p>
<p>The mixin is <strong>deprecated</strong> as of v3.2.0, with the introduction of Autoprefixer. To preserve backwards-compatibility, Bootstrap will continue to use the mixin internally until Bootstrap v4.</p>
{% highlight scss %}
.box-sizing(@box-model) {
-webkit-box-sizing: @box-model; // Safari <= 5
@@ -205,7 +205,7 @@ a {
<h3 id="less-mixins-transitions">Transitions</h3>
<p>Multiple mixins for flexibility. Set all transition information with one, or specify a separate delay and duration as needed.</p>
<p>The mixins are <strong>deprecated</strong> as of v3.2.0, with the introduction of autoprefixer. To preserve backwards-compatibility, Bootstrap will continue to use the mixins internally until Bootstrap v4.</p>
<p>The mixins are <strong>deprecated</strong> as of v3.2.0, with the introduction of Autoprefixer. To preserve backwards-compatibility, Bootstrap will continue to use the mixins internally until Bootstrap v4.</p>
{% highlight scss %}
.transition(@transition) {
-webkit-transition: @transition;
@@ -237,7 +237,7 @@ a {
<h3 id="less-mixins-transformations">Transformations</h3>
<p>Rotate, scale, translate (move), or skew any object.</p>
<p>The mixins are <strong>deprecated</strong> as of v3.2.0, with the introduction of autoprefixer. To preserve backwards-compatibility, Bootstrap will continue to use the mixins internally until Bootstrap v4.</p>
<p>The mixins are <strong>deprecated</strong> as of v3.2.0, with the introduction of Autoprefixer. To preserve backwards-compatibility, Bootstrap will continue to use the mixins internally until Bootstrap v4.</p>
{% highlight scss %}
.rotate(@degrees) {
-webkit-transform: rotate(@degrees);
@@ -294,7 +294,7 @@ a {
<h3 id="less-mixins-animations">Animations</h3>
<p>A single mixin for using all of CSS3's animation properties in one declaration and other mixins for individual properties.</p>
<p>The mixins are <strong>deprecated</strong> as of v3.2.0, with the introduction of autoprefixer. To preserve backwards-compatibility, Bootstrap will continue to use the mixins internally until Bootstrap v4.</p>
<p>The mixins are <strong>deprecated</strong> as of v3.2.0, with the introduction of Autoprefixer. To preserve backwards-compatibility, Bootstrap will continue to use the mixins internally until Bootstrap v4.</p>
{% highlight scss %}
.animation(@animation) {
-webkit-animation: @animation;
+5 -5
View File
@@ -3,7 +3,7 @@
<p class="lead">Get the lowdown on the key pieces of Bootstrap's infrastructure, including our approach to better, faster, stronger web development.</p>
<h3 id="overview-doctype">HTML5 doctype</h3>
<h2 id="overview-doctype">HTML5 doctype</h2>
<p>Bootstrap makes use of certain HTML elements and CSS properties that require the use of the HTML5 doctype. Include it at the beginning of all your projects.</p>
{% highlight html %}
<!DOCTYPE html>
@@ -12,7 +12,7 @@
</html>
{% endhighlight %}
<h3 id="overview-mobile">Mobile first</h3>
<h2 id="overview-mobile">Mobile first</h2>
<p>With Bootstrap 2, we added optional mobile friendly styles for key aspects of the framework. With Bootstrap 3, we've rewritten the project to be mobile friendly from the start. Instead of adding on optional mobile styles, they're baked right into the core. In fact, <strong>Bootstrap is mobile first</strong>. Mobile first styles can be found throughout the entire library instead of in separate files.</p>
<p>To ensure proper rendering and touch zooming, <strong>add the viewport meta tag</strong> to your <code>&lt;head&gt;</code>.</p>
{% highlight html %}
@@ -23,7 +23,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
{% endhighlight %}
<h3 id="overview-type-links">Typography and links</h3>
<h2 id="overview-type-links">Typography and links</h2>
<p>Bootstrap sets basic global display, typography, and link styles. Specifically, we:</p>
<ul>
<li>Set <code>background-color: #fff;</code> on the <code>body</code></li>
@@ -32,10 +32,10 @@
</ul>
<p>These styles can be found within <code>scaffolding.less</code>.</p>
<h3 id="overview-normalize">Normalize.css</h3>
<h2 id="overview-normalize">Normalize.css</h2>
<p>For improved cross-browser rendering, we use <a href="http://necolas.github.io/normalize.css/" target="_blank">Normalize.css</a>, a project by <a href="https://twitter.com/necolas" target="_blank">Nicolas Gallagher</a> and <a href="https://twitter.com/jon_neal" target="_blank">Jonathan Neal</a>.</p>
<h3 id="overview-container">Containers</h3>
<h2 id="overview-container">Containers</h2>
<p>Bootstrap requires a containing element to wrap site contents and house our grid system. You may choose one of two containers to use in your projects. Note that, due to <code>padding</code> and more, neither container is nestable.</p>
<p>Use <code>.container</code> for a responsive fixed width container.</p>
{% highlight html %}
+6 -1
View File
@@ -467,6 +467,11 @@
<p id="help-block-@input-height-small" class="help-block">Small <code>.form-control</code> height</p>
</div>
<div class="clearfix"></div>
<div class="col-xs-4">
<label for="input-@form-group-margin-bottom">@form-group-margin-bottom</label>
<input id="input-@form-group-margin-bottom" type="text" aria-describedby="help-block-@form-group-margin-bottom" value="15px" data-var="@form-group-margin-bottom" class="form-control"/>
<p id="help-block-@form-group-margin-bottom" class="help-block"><code>.form-group</code> margin</p>
</div>
<div class="col-xs-4">
<label for="input-@legend-color">@legend-color</label>
<input id="input-@legend-color" type="text" value="@gray-dark" data-var="@legend-color" class="form-control"/>
@@ -475,12 +480,12 @@
<label for="input-@legend-border-color">@legend-border-color</label>
<input id="input-@legend-border-color" type="text" value="#e5e5e5" data-var="@legend-border-color" class="form-control"/>
</div>
<div class="clearfix"></div>
<div class="col-xs-4">
<label for="input-@input-group-addon-bg">@input-group-addon-bg</label>
<input id="input-@input-group-addon-bg" type="text" aria-describedby="help-block-@input-group-addon-bg" value="@gray-lighter" data-var="@input-group-addon-bg" class="form-control"/>
<p id="help-block-@input-group-addon-bg" class="help-block">Background color for textual input addons</p>
</div>
<div class="clearfix"></div>
<div class="col-xs-4">
<label for="input-@input-group-addon-border-color">@input-group-addon-border-color</label>
<input id="input-@input-group-addon-border-color" type="text" aria-describedby="help-block-@input-group-addon-border-color" value="@input-border" data-var="@input-group-addon-border-color" class="form-control"/>
+1 -1
View File
@@ -6,7 +6,7 @@
<p>Designed and built with all the love in the world by <a href="https://twitter.com/mdo" target="_blank">@mdo</a> and <a href="https://twitter.com/fat" target="_blank">@fat</a>.</p>
<p>Maintained by the <a href="https://github.com/orgs/twbs/people">core team</a> with the help of <a href="https://github.com/twbs/bootstrap/graphs/contributors">our contributors</a>.</p>
<p>Code licensed under <a href="https://github.com/twbs/bootstrap/blob/master/LICENSE" target="_blank">MIT</a>, documentation under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p>
<p>Code licensed under <a rel="license" href="https://github.com/twbs/bootstrap/blob/master/LICENSE" target="_blank">MIT</a>, documentation under <a rel="license" href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC BY 3.0</a>.</p>
<ul class="bs-docs-footer-links text-muted">
<li>Currently v{{ site.current_version }}</li>
<li>&middot;</li>
@@ -2,26 +2,31 @@
<h1 id="accessibility" class="page-header">Accessibility</h1>
<p class="lead">Bootstrap follows common web standards and&mdash;with minimal extra effort&mdash;can be used to create sites that are accessible to those using <abbr title="Assistive Technology" class="initialism">AT</abbr>.</p>
<h3>Skip navigation</h3>
<p>If your navigation contains many links and comes before the main content in the DOM, add a <code>Skip to main content</code> link before the navigation <a href="http://a11yproject.com/posts/skip-nav-links/">(read why)</a>. Using the <code>.sr-only</code> class will visually hide the skip link, and the <code>.sr-only-focusable</code> class will ensure that the link becomes visible once focused (for sighted keyboard users).</p>
<h2>Skip navigation</h2>
<p>If your navigation contains many links and comes before the main content in the DOM, add a <code>Skip to main content</code> link before the navigation (for a simple explanation, see this <a href="http://a11yproject.com/posts/skip-nav-links/">A11Y Project article on skip navigation links</a>). Using the <code>.sr-only</code> class will visually hide the skip link, and the <code>.sr-only-focusable</code> class will ensure that the link becomes visible once focused (for sighted keyboard users).</p>
<div class="bs-callout bs-callout-danger" id="callout-skiplinks">
<p>Due to long-standing shortcomings/bugs in Chrome (see <a href="https://code.google.com/p/chromium/issues/detail?id=262171" title="Chromium bug tracker - Issue 262171: Focus should cycle from named anchor">issue 262171 in the Chromium bug tracker</a>) and Internet Explorer (see this article on <a href="http://accessibleculture.org/articles/2010/05/in-page-links/">in-page links and focus order</a>), you will need to make sure that the target of your skip link is at least programmatically focusable by adding <code>tabindex="-1"</code>.</p>
<p>In addition, you may want to explicitly suppress a visible focus indication on the target (particularly as Chrome currently also sets focus on elements with <code>tabindex="-1"</code> when they are clicked with the mouse) with <code>#content:focus { outline: none; }</code>.</p>
<p>Note that this bug will also affect any other in-page links your site may be using, rendering them useless for keyboard users. You may consider adding a similar stop-gap fix to all other named anchors / fragment identifiers that act as link targets.</p>
</div>
{% highlight html %}
<body>
<a href="#content" class="sr-only sr-only-focusable">Skip to main content</a>
...
<div class="container" id="content">
<div class="container" id="content" tabindex="-1">
<!-- The main page content -->
</div>
</body>
{% endhighlight %}
<h3>Nested headings</h3>
<h2>Nested headings</h2>
<p>When nesting headings (<code>&lt;h1&gt;</code> - <code>&lt;h6&gt;</code>), your primary document header should be an <code>&lt;h1&gt;</code>. Subsequent headings should make logical use of <code>&lt;h2&gt;</code> - <code>&lt;h6&gt;</code> such that screen readers can construct a table of contents for your pages.</p>
<p>Learn more at <a href="http://squizlabs.github.io/HTML_CodeSniffer/Standards/Section508/">HTML CodeSniffer</a> and <a href="http://accessibility.psu.edu/headings">Penn State's AccessAbility</a>.</p>
<h3>Color contrast</h3>
<h2>Color contrast</h2>
<p>Currently, some of the default color combinations available in Bootstrap (such as the various <a href="../css/#buttons">styled button</a> classes, some of the code highlighting colors used for <a href="../css/#code-block">basic code blocks</a>, the <code>.bg-primary</code> <a href="../css/#helper-classes-backgrounds">contextual background</a> helper class, and the default link color when used on a white background) have a low contrast ratio (below the <a href="http://www.w3.org/TR/WCAG20/#visual-audio-contrast-contrast">recommended ratio of 4.5:1</a>). This can cause problems to users with low vision or who are color blind. These default colors may need to be modified to increase their contrast and legibility.</p>
<h3>Additional resources</h3>
<h2>Additional resources</h2>
<ul>
<li><a href="https://github.com/squizlabs/HTML_CodeSniffer">"HTML Codesniffer" bookmarklet for identifying accessibility issues</a></li>
<li><a href="https://chrome.google.com/webstore/detail/accessibility-developer-t/fpkknkljclfencbdbgkenhalefipecmb?hl=en">Chrome's Accessibility Developer Tools extension</a></li>
@@ -2,7 +2,7 @@
<h1 id="support" class="page-header">Browser and device support</h1>
<p class="lead">Bootstrap is built to work best in the latest desktop and mobile browsers, meaning older browsers might display differently styled, though fully functional, renderings of certain components.</p>
<h3 id="support-browsers">Supported browsers</h3>
<h2 id="support-browsers">Supported browsers</h2>
<p>Specifically, we support the <strong>latest versions</strong> of the following browsers and platforms. On Windows, <strong>we support Internet Explorer 8-11</strong>. More specific support information is provided below.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
@@ -53,7 +53,7 @@
<p>Unofficially, Bootstrap should look and behave well enough in Chromium and Chrome for Linux, Firefox for Linux, and Internet Explorer 7, though they are not officially supported.</p>
<p>For a list of some of the browser bugs that Bootstrap has to grapple with, see our <a href="../browser-bugs/">Wall of browser bugs</a>.</p>
<h3 id="support-ie8-ie9">Internet Explorer 8 and 9</h3>
<h2 id="support-ie8-ie9">Internet Explorer 8 and 9</h2>
<p>Internet Explorer 8 and 9 are also supported, however, please be aware that some CSS3 properties and HTML5 elements are not fully supported by these browsers. In addition, <strong>Internet Explorer 8 requires the use of <a href="https://github.com/scottjehl/Respond">Respond.js</a> to enable media query support.</strong></p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
@@ -94,22 +94,22 @@
<p>Visit <a href="http://caniuse.com/">Can I use...</a> for details on browser support of CSS3 and HTML5 features.</p>
<h3 id="support-ie8-respondjs">Internet Explorer 8 and Respond.js</h3>
<h2 id="support-ie8-respondjs">Internet Explorer 8 and Respond.js</h2>
<p>Beware of the following caveats when using Respond.js in your development and production environments for Internet Explorer 8.</p>
<h4 id="respond-js-x-domain">Respond.js and cross-domain CSS</h4>
<h3 id="respond-js-x-domain">Respond.js and cross-domain CSS</h3>
<p>Using Respond.js with CSS hosted on a different (sub)domain (for example, on a CDN) requires some additional setup. <a href="https://github.com/scottjehl/Respond/blob/master/README.md#cdnx-domain-setup">See the Respond.js docs</a> for details.</p>
<h4 id="respond-file-proto">Respond.js and <code>file://</code></h4>
<h3 id="respond-file-proto">Respond.js and <code>file://</code></h3>
<p>Due to browser security rules, Respond.js doesn't work with pages viewed via the <code>file://</code> protocol (like when opening a local HTML file). To test responsive features in IE8, view your pages over HTTP(S). <a href="https://github.com/scottjehl/Respond/blob/master/README.md#support--caveats">See the Respond.js docs</a> for details.</p>
<h4 id="respond-import">Respond.js and <code>@import</code></h4>
<h3 id="respond-import">Respond.js and <code>@import</code></h3>
<p>Respond.js doesn't work with CSS that's referenced via <code>@import</code>. In particular, some Drupal configurations are known to use <code>@import</code>. <a href="https://github.com/scottjehl/Respond/blob/master/README.md#support--caveats">See the Respond.js docs</a> for details.</p>
<h3 id="support-ie8-box-sizing">Internet Explorer 8 and box-sizing</h3>
<h2 id="support-ie8-box-sizing">Internet Explorer 8 and box-sizing</h2>
<p>IE8 does not fully support <code>box-sizing: border-box;</code> when combined with <code>min-width</code>, <code>max-width</code>, <code>min-height</code>, or <code>max-height</code>. For that reason, as of v3.0.1, we no longer use <code>max-width</code> on <code>.container</code>s.</p>
<h3 id="support-ie8-font-face">Internet Explorer 8 and @font-face</h3>
<h2 id="support-ie8-font-face">Internet Explorer 8 and @font-face</h2>
<p>IE8 has some issues with <code>@font-face</code> when combined with <code>:before</code>. Bootstrap uses that combination with its Glyphicons. If a page is cached, and loaded without the mouse over the window (i.e. hit the refresh button or load something in an iframe) then the page gets rendered before the font loads. Hovering over the page (body) will show some of the icons and hovering over the remaining icons will show those as well. <a href="https://github.com/twbs/bootstrap/issues/13863">See issue #13863</a> for details.</p>
<h3 id="support-ie-compatibility-modes">IE Compatibility modes</h3>
<h2 id="support-ie-compatibility-modes">IE Compatibility modes</h2>
<p>Bootstrap is not supported in the old Internet Explorer compatibility modes. To be sure you're using the latest rendering mode for IE, consider including the appropriate <code>&lt;meta&gt;</code> tag in your pages:</p>
{% highlight html %}
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -118,7 +118,7 @@
<p>This tag is included in all of Bootstrap's documentation and examples to ensure the best rendering possible in each supported version of Internet Explorer.</p>
<p>See <a href="http://stackoverflow.com/questions/6771258/whats-the-difference-if-meta-http-equiv-x-ua-compatible-content-ie-edge">this StackOverflow question</a> for more information.</p>
<h3 id="support-ie10-width">Internet Explorer 10 in Windows 8 and Windows Phone 8</h3>
<h2 id="support-ie10-width">Internet Explorer 10 in Windows 8 and Windows Phone 8</h2>
<p>Internet Explorer 10 doesn't differentiate <strong>device width</strong> from <strong>viewport width</strong>, and thus doesn't properly apply the media queries in Bootstrap's CSS. Normally you'd just add a quick snippet of CSS to fix this:</p>
{% highlight scss %}
@-ms-viewport { width: device-width; }
@@ -146,25 +146,28 @@ if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
<p>For more information and usage guidelines, read <a href="http://timkadlec.com/2013/01/windows-phone-8-and-device-width/">Windows Phone 8 and Device-Width</a>.</p>
<p>As a heads up, we include this in all of Bootstrap's documentation and examples as a demonstration.</p>
<h3 id="support-safari-percentages">Safari percent rounding</h3>
<h2 id="support-safari-percentages">Safari percent rounding</h2>
<p>The rendering engine of versions of Safari prior to v7.1 for OS X and Safari for iOS v8.0 had some trouble with the number of decimal places used in our <code>.col-*-1</code> grid classes. So if you had 12 individual grid columns, you'd notice that they came up short compared to other rows of columns. Besides upgrading Safari/iOS, you have some options for workarounds:</p>
<ul>
<li>Add <code>.pull-right</code> to your last grid column to get the hard-right alignment</li>
<li>Tweak your percentages manually to get the perfect rounding for Safari (more difficult than the first option)</li>
</ul>
<h3 id="support-fixed-position-keyboards">Modals, navbars, and virtual keyboards</h3>
<h4>Overflow and scrolling</h4>
<h2 id="support-fixed-position-keyboards">Modals, navbars, and virtual keyboards</h2>
<h3>Overflow and scrolling</h3>
<p>Support for <code>overflow: hidden</code> on the <code>&lt;body&gt;</code> element is quite limited in iOS and Android. To that end, when you scroll past the top or bottom of a modal in either of those devices' browsers, the <code>&lt;body&gt;</code> content will begin to scroll.</p>
<h4>Virtual keyboards</h4>
<h3>Virtual keyboards</h3>
<p>Also, note that if you're using a fixed navbar or using inputs within a modal, iOS has a rendering bug that doesn't update the position of fixed elements when the virtual keyboard is triggered. A few workarounds for this include transforming your elements to <code>position: absolute</code> or invoking a timer on focus to try to correct the positioning manually. This is not handled by Bootstrap, so it is up to you to decide which solution is best for your application.</p>
<h4>Navbar Dropdowns</h4>
<h3>Navbar Dropdowns</h3>
<p>The <code>.dropdown-backdrop</code> element isn't used on iOS in the nav because of the complexity of z-indexing. Thus, to close dropdowns in navbars, you must directly click the dropdown element (or <a href="https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile">any other element which will fire a click event in iOS</a>).</p>
<h3 id="support-browser-zooming">Browser zooming</h3>
<h2 id="support-browser-zooming">Browser zooming</h2>
<p>Page zooming inevitably presents rendering artifacts in some components, both in Bootstrap and the rest of the web. Depending on the issue, we may be able to fix it (search first and then open an issue if need be). However, we tend to ignore these as they often have no direct solution other than hacky workarounds.</p>
<h3 id="support-printing">Printing</h3>
<h2 id="support-sticky-hover-mobile">Sticky <code>:hover</code>/<code>:focus</code> on mobile</h2>
<p>Even though real hovering isn't possible on most touchscreens, most mobile browsers emulate hovering support and make <code>:hover</code> "sticky". In other words, <code>:hover</code> styles start applying after tapping an element and only stop applying after the user taps some other element. This can cause Bootstrap's <code>:hover</code> states to become unwantedly "stuck" on such browsers. Some mobile browsers also make <code>:focus</code> similarly sticky. There is currently no simple workaround for these issues other than removing such styles entirely.</p>
<h2 id="support-printing">Printing</h2>
<p>Even in some modern browsers, printing can be quirky.</p>
<p>In particular, as of Chrome v32 and regardless of margin settings, Chrome uses a viewport width significantly narrower than the physical paper size when resolving media queries while printing a webpage. This can result in Bootstrap's extra-small grid being unexpectedly activated when printing. <a href="https://github.com/twbs/bootstrap/issues/12078">See #12078 for some details.</a> Suggested workarounds:</p>
<ul>
@@ -173,17 +176,17 @@ if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
<li>Add custom media queries to change the grid size breakpoints for print media only.</li>
</ul>
<p>Also, as of Safari v8.0, fixed-width <code>.container</code>s can cause Safari to use an unusually small font size when printing. See <a href="https://github.com/twbs/bootstrap/issues/14868">#14868</a> for more details. One potential workaround for this is adding the following CSS:</p>
{% highlight css %}
{% highlight css %}
@media print {
.container {
width: auto;
}
}
{% endhighlight %}
{% endhighlight %}
<h3 id="support-android-stock-browser">Android stock browser</h3>
<h2 id="support-android-stock-browser">Android stock browser</h2>
<p>Out of the box, Android 4.1 (and even some newer releases apparently) ship with the Browser app as the default web browser of choice (as opposed to Chrome). Unfortunately, the Browser app has lots of bugs and inconsistencies with CSS in general.</p>
<h4>Select menus</h4>
<h3>Select menus</h3>
<p>On <code>&lt;select&gt;</code> elements, the Android stock browser will not display the side controls if there is a <code>border-radius</code> and/or <code>border</code> applied. (See <a href="http://stackoverflow.com/questions/14744437/html-select-box-not-showing-drop-down-arrow-on-android-version-4-0-when-set-with">this StackOverflow question</a> for details.) Use the snippet of code below to remove the offending CSS and render the <code>&lt;select&gt;</code> as an unstyled element on the Android stock browser. The user agent sniffing avoids interference with Chrome, Safari, and Mozilla browsers.</p>
{% highlight html %}
<script>
@@ -198,7 +201,7 @@ $(function () {
{% endhighlight %}
<p>Want to see an example? <a href="http://jsbin.com/kuvoz/1">Check out this JS Bin demo.</a></p>
<h3 id="support-validators">Validators</h3>
<h2 id="support-validators">Validators</h2>
<p>In order to provide the best possible experience to old and buggy browsers, Bootstrap uses <a href="http://browserhacks.com">CSS browser hacks</a> in several places to target special CSS to certain browser versions in order to work around bugs in the browsers themselves. These hacks understandably cause CSS validators to complain that they are invalid. In a couple places, we also use bleeding-edge CSS features that aren't yet fully standardized, but these are used purely for progressive enhancement.</p>
<p>These validation warnings don't matter in practice since the non-hacky portion of our CSS does fully validate and the hacky portions don't interfere with the proper functioning of the non-hacky portion, hence why we deliberately ignore these particular warnings.</p>
<p>Our HTML docs likewise have some trivial and inconsequential HTML validation warnings due to our inclusion of a workaround for <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=654072">a certain Firefox bug</a>.</p>
@@ -6,7 +6,8 @@
<li>Read and subscribe to <a href="http://blog.getbootstrap.com/">The Official Bootstrap Blog</a>.</li>
<li>Chat with fellow Bootstrappers using IRC in the <code>irc.freenode.net</code> server, in the <a href="irc://irc.freenode.net/%23bootstrap">##bootstrap channel</a>.</li>
<li>For help using Bootstrap, ask on <a href="http://stackoverflow.com/questions/tagged/twitter-bootstrap-3">StackOverflow using the tag <code>twitter-bootstrap-3</code></a>.</li>
<li>Developers should use the keyword <code>bootstrap</code> on packages which modify or add to the functionality of Bootstrap when distributing through <a href="https://www.npmjs.com/browse/keyword/bootstrap">npm</a> or similar delivery mechanisms for maximum discoverability.</li>
<li>Find inspiring examples of people building with Bootstrap at the <a href="http://expo.getbootstrap.com">Bootstrap Expo</a>.</li>
</ul>
<p>You can also follow <a href="https://twitter.com/twbootstrap">@twbootstrap on Twitter</a> for the latest gossip and awesome music videos.</p>
<p>You can also follow <a href="https://twitter.com/getbootstrap">@getbootstrap on Twitter</a> for the latest gossip and awesome music videos.</p>
</div>
@@ -4,7 +4,7 @@
<p class="lead">Bootstrap automatically adapts your pages for various screen sizes.
Here's how to disable this feature so your page works like <a href="../examples/non-responsive/">this non-responsive example</a>.</p>
<h3>Steps to disable page responsiveness</h3>
<h2>Steps to disable page responsiveness</h2>
<ol>
<li>Omit the viewport <code>&lt;meta&gt;</code> mentioned in <a href="../css/#overview-mobile">the CSS docs</a></li>
<li>Override the <code>width</code> on the <code>.container</code> for each grid tier with a single width, for example <code>width: 970px !important;</code> Be sure that this comes after the default Bootstrap CSS. You can optionally avoid the <code>!important</code> with media queries or some selector-fu.</li>
@@ -14,7 +14,7 @@
<p>You'll still need Respond.js for IE8 (since our media queries are still there and need to be processed).
This disables the "mobile site" aspects of Bootstrap.</p>
<h3>Bootstrap template with responsiveness disabled</h3>
<h2>Bootstrap template with responsiveness disabled</h2>
<p>We've applied these steps to an example. Read its source code to see the specific changes implemented.</p>
<p>
<a href="../examples/non-responsive/" class="btn btn-primary">View non-responsive example</a>
+4 -4
View File
@@ -27,7 +27,7 @@
</div>
</div>
<h3 id="download-cdn">Bootstrap CDN</h3>
<h2 id="download-cdn">Bootstrap CDN</h2>
<p>The folks over at <a href="http://www.maxcdn.com/">MaxCDN</a> graciously provide CDN support for Bootstrap's CSS and JavaScript. Just use these <a href="http://www.bootstrapcdn.com/">Bootstrap CDN</a> links.</p>
{% highlight html %}
<!-- Latest compiled and minified CSS -->
@@ -40,11 +40,11 @@
<script src="{{ site.cdn.js }}"></script>
{% endhighlight %}
<h3 id="download-bower">Install with Bower</h3>
<h2 id="download-bower">Install with Bower</h2>
<p>You can also install and manage Bootstrap's Less, CSS, JavaScript, and fonts using <a href="http://bower.io">Bower</a>:</p>
{% highlight bash %}$ bower install bootstrap{% endhighlight %}
<h3 id="download-npm">Install with npm</h3>
<h2 id="download-npm">Install with npm</h2>
<p>You can also install Bootstrap using <a href="https://www.npmjs.com">npm</a>:</p>
{% highlight bash %}$ npm install bootstrap{% endhighlight %}
<p><code>require('bootstrap')</code> will load all of Bootstrap's jQuery plugins onto the jQuery object. The <code>bootstrap</code> module itself does not export anything. You can manually load Bootstrap's jQuery plugins individually by loading the <code>/js/*.js</code> files under the package's top-level directory.</p>
@@ -54,6 +54,6 @@
<li><code>style</code> - path to Bootstrap's non-minified CSS that's been precompiled using the default settings (no customization)</li>
</ul>
<h3 id="download-autoprefixer">Autoprefixer required for Less/Sass</h3>
<h2 id="download-autoprefixer">Autoprefixer required for Less/Sass</h2>
<p>Bootstrap uses <a href="https://github.com/postcss/autoprefixer">Autoprefixer</a> to deal with <a href="http://webdesign.about.com/od/css/a/css-vendor-prefixes.htm">CSS vendor prefixes</a>. If you're compiling Bootstrap from its Less/Sass source and not using our Gruntfile, you'll need to integrate Autoprefixer into your build process yourself. If you're using precompiled Bootstrap or using our Gruntfile, you don't need to worry about this because Autoprefixer is already integrated into our Gruntfile.</p>
</div>
+22 -22
View File
@@ -3,20 +3,20 @@
<p class="lead">Build on the basic template above with Bootstrap's many components. We encourage you to customize and adapt Bootstrap to suit your individual project's needs.</p>
<h3 id="examples-framework">Using the framework</h3>
<h2 id="examples-framework">Using the framework</h2>
<div class="row bs-examples">
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/starter-template/">
<img src="../examples/screenshots/starter-template.jpg" alt="Starter template example">
</a>
<h4>Starter template</h4>
<h3>Starter template</h3>
<p>Nothing but the basics: compiled CSS and JavaScript along with a container.</p>
</div>
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/theme/">
<img src="../examples/screenshots/theme.jpg" alt="Bootstrap theme example">
</a>
<h4>Bootstrap theme</h4>
<h3>Bootstrap theme</h3>
<p>Load the optional Bootstrap theme for a visually enhanced experience.</p>
</div>
<div class="clearfix visible-xs"></div>
@@ -25,14 +25,14 @@
<a class="thumbnail" href="../examples/grid/">
<img src="../examples/screenshots/grid.jpg" alt="Multiple grids example">
</a>
<h4>Grids</h4>
<h3>Grids</h3>
<p>Multiple examples of grid layouts with all four tiers, nesting, and more.</p>
</div>
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/jumbotron/">
<img src="../examples/screenshots/jumbotron.jpg" alt="Jumbotron example">
</a>
<h4>Jumbotron</h4>
<h3>Jumbotron</h3>
<p>Build around the jumbotron with a navbar and some basic grid columns.</p>
</div>
<div class="clearfix visible-xs"></div>
@@ -41,25 +41,25 @@
<a class="thumbnail" href="../examples/jumbotron-narrow/">
<img src="../examples/screenshots/jumbotron-narrow.jpg" alt="Narrow jumbotron example">
</a>
<h4>Narrow jumbotron</h4>
<h3>Narrow jumbotron</h3>
<p>Build a more custom page by narrowing the default container and jumbotron.</p>
</div>
</div>
<h3 id="examples-navbars">Navbars in action</h3>
<h2 id="examples-navbars">Navbars in action</h2>
<div class="row bs-examples">
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/navbar/">
<img src="../examples/screenshots/navbar.jpg" alt="Navbar example">
</a>
<h4>Navbar</h4>
<h3>Navbar</h3>
<p>Super basic template that includes the navbar along with some additional content.</p>
</div>
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/navbar-static-top/">
<img src="../examples/screenshots/navbar-static.jpg" alt="Static top navbar example">
</a>
<h4>Static top navbar</h4>
<h3>Static top navbar</h3>
<p>Super basic template with a static top navbar along with some additional content.</p>
</div>
<div class="clearfix visible-xs"></div>
@@ -68,25 +68,25 @@
<a class="thumbnail" href="../examples/navbar-fixed-top/">
<img src="../examples/screenshots/navbar-fixed.jpg" alt="Fixed navbar example">
</a>
<h4>Fixed navbar</h4>
<h3>Fixed navbar</h3>
<p>Super basic template with a fixed top navbar along with some additional content.</p>
</div>
</div>
<h3 id="examples-custom">Custom components</h3>
<h2 id="examples-custom">Custom components</h2>
<div class="row bs-examples">
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/cover/">
<img src="../examples/screenshots/cover.jpg" alt="A one-page template example">
</a>
<h4>Cover</h4>
<h3>Cover</h3>
<p>A one-page template for building simple and beautiful home pages.</p>
</div>
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/carousel/">
<img src="../examples/screenshots/carousel.jpg" alt="Carousel example">
</a>
<h4>Carousel</h4>
<h3>Carousel</h3>
<p>Customize the navbar and carousel, then add some new components.</p>
</div>
<div class="clearfix visible-xs"></div>
@@ -95,14 +95,14 @@
<a class="thumbnail" href="../examples/blog/">
<img src="../examples/screenshots/blog.jpg" alt="Blog layout example">
</a>
<h4>Blog</h4>
<h3>Blog</h3>
<p>Simple two-column blog layout with custom navigation, header, and type.</p>
</div>
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/dashboard/">
<img src="../examples/screenshots/dashboard.jpg" alt="Dashboard example">
</a>
<h4>Dashboard</h4>
<h3>Dashboard</h3>
<p>Basic structure for an admin dashboard with fixed sidebar and navbar.</p>
</div>
<div class="clearfix visible-xs"></div>
@@ -111,14 +111,14 @@
<a class="thumbnail" href="../examples/signin/">
<img src="../examples/screenshots/sign-in.jpg" alt="Sign-in page example">
</a>
<h4>Sign-in page</h4>
<h3>Sign-in page</h3>
<p>Custom form layout and design for a simple sign in form.</p>
</div>
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/justified-nav/">
<img src="../examples/screenshots/justified-nav.jpg" alt="Justified nav example">
</a>
<h4>Justified nav</h4>
<h3>Justified nav</h3>
<p>Create a custom navbar with justified links. Heads up! <a href="../components/#nav-justified">Not too Safari friendly.</a></p>
</div>
<div class="clearfix visible-xs"></div>
@@ -127,32 +127,32 @@
<a class="thumbnail" href="../examples/sticky-footer/">
<img src="../examples/screenshots/sticky-footer.jpg" alt="Sticky footer example">
</a>
<h4>Sticky footer</h4>
<h3>Sticky footer</h3>
<p>Attach a footer to the bottom of the viewport when the content is shorter than it.</p>
</div>
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/sticky-footer-navbar/">
<img src="../examples/screenshots/sticky-footer-navbar.jpg" alt="Sticky footer with navbar example">
</a>
<h4>Sticky footer with navbar</h4>
<h3>Sticky footer with navbar</h3>
<p>Attach a footer to the bottom of the viewport with a fixed navbar at the top.</p>
</div>
</div>
<h3 id="examples-experiments">Experiments</h3>
<h2 id="examples-experiments">Experiments</h2>
<div class="row bs-examples">
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/non-responsive/">
<img src="../examples/screenshots/non-responsive.jpg" alt="Non-responsive example">
</a>
<h4>Non-responsive Bootstrap</h4>
<h3>Non-responsive Bootstrap</h3>
<p>Easily disable the responsiveness of Bootstrap <a href="#disable-responsive">per our docs</a>.</p>
</div>
<div class="col-xs-6 col-md-4">
<a class="thumbnail" href="../examples/offcanvas/">
<img src="../examples/screenshots/offcanvas.jpg" alt="Off-canvas navigation example">
</a>
<h4>Offcanvas</h4>
<h3>Off-canvas</h3>
<p>Build a toggleable off-canvas navigation menu for use with Bootstrap.</p>
</div>
</div>
+1 -1
View File
@@ -4,7 +4,7 @@
<p class="lead">Bootstrap uses <a href="http://gruntjs.com">Grunt</a> for its build system, with convenient methods for working with the framework. It's how we compile our code, run tests, and more.</p>
<h2 id="grunt-installing">Installing Grunt</h2>
<p>To install Grunt, you must <strong>first <a href="http://nodejs.org/download/">download and install node.js</a></strong> (which includes npm). npm stands for <a href="http://npmjs.org/">node packaged modules</a> and is a way to manage development dependencies through node.js.</p>
<p>To install Grunt, you must <strong>first <a href="http://nodejs.org/download/">download and install node.js</a></strong> (which includes npm). npm stands for <a href="https://www.npmjs.com/">node packaged modules</a> and is a way to manage development dependencies through node.js.</p>
Then, from the command line:
<ol>
+5 -5
View File
@@ -2,12 +2,12 @@
<h1 id="license-faqs" class="page-header">License FAQs</h1>
<p class="lead">Bootstrap is released under the MIT license and is copyright {{ site.time | date: "%Y" }} Twitter. Boiled down to smaller chunks, it can be described with the following conditions.</p>
<h4>It requires you to:</h4>
<h2>It requires you to:</h2>
<ul>
<li>Include the license and copyright notice in your works</li>
<li>Keep the license and copyright notice included in Bootstrap's CSS and JavaScript files when you use them in your works</li>
</ul>
<h4>It permits you to:</h4>
<h2>It permits you to:</h2>
<ul>
<li>Freely download and use Bootstrap, in whole or in part, for personal, private, company internal, or commercial purposes</li>
<li>Use Bootstrap in packages or distributions that you create</li>
@@ -15,7 +15,7 @@
<li>Grant a sublicense to modify and distribute Bootstrap to third parties not included in the license</li>
</ul>
<h4>It forbids you to:</h4>
<h2>It forbids you to:</h2>
<ul>
<li>Hold the authors and license owners liable for damages as Bootstrap is provided without warranty</li>
<li>Hold the creators or copyright holders of Bootstrap liable</li>
@@ -24,7 +24,7 @@
<li>Use any marks owned by Twitter in any way that might state or imply that you created the Twitter software in question</li>
</ul>
<h4>It does not require you to:</h4>
<h2>It does not require you to:</h2>
<ul>
<li>Include the source of Bootstrap itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it</li>
<li>Submit changes that you make to Bootstrap back to the Bootstrap project (though such feedback is encouraged)</li>
@@ -11,6 +11,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
@@ -2,7 +2,7 @@
<h1 id="third-parties" class="page-header">Third party support</h1>
<p class="lead">While we don't officially support any third party plugins or add-ons, we do offer some useful advice to help avoid potential issues in your projects.</p>
<h3 id="third-box-sizing">Box-sizing</h3>
<h2 id="third-box-sizing">Box-sizing</h2>
<p>Some third party software, including Google Maps and Google Custom Search Engine, conflict with Bootstrap due to <code>* { box-sizing: border-box; }</code>, a rule which makes it so <code>padding</code> does not affect the final computed width of an element. Learn more about <a href="http://css-tricks.com/box-sizing/">box model and sizing at CSS Tricks</a>.</p>
<p>Depending on the context, you may override as-needed (Option 1) or reset the box-sizing for entire regions (Option 2).</p>
{% highlight scss %}
+2 -1
View File
@@ -32,8 +32,9 @@
{% if site.github %}
<link href="../assets/css/docs.min.css" rel="stylesheet">
{% else %}
<link href="../assets/css/src/docs.css" rel="stylesheet">
<link href="../assets/css/src/pygments-manni.css" rel="stylesheet">
<link href="../assets/css/src/anchor.css" rel="stylesheet">
<link href="../assets/css/src/docs.css" rel="stylesheet">
{% endif %}
<!--[if lt IE 9]><script src="../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="../assets/js/ie-emulation-modes-warning.js"></script>
+7 -7
View File
@@ -2,7 +2,7 @@
<h1 id="affix" class="page-header">Affix <small>affix.js</small></h1>
<h2 id="affix-examples">Example</h2>
<p>The subnavigation on the right is a live demo of the affix plugin.</p>
<p>The affix plugin toggles <code>position: fixed;</code> on and off, emulating the effect found with <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/position#Sticky_positioning"><code>position: sticky;</code></a>. The subnavigation on the right is a live demo of the affix plugin.</p>
<hr class="bs-docs-separator">
@@ -10,7 +10,7 @@
<p>Use the affix plugin via data attributes or manually with your own JavaScript. <strong class="text-danger">In both situations, you must provide CSS for the positioning and width of your affixed content.</strong></p>
<h3>Positioning via CSS</h3>
<p>The affix plugin toggles between three classes, each representing a particular state: <code>.affix</code>, <code>.affix-top</code>, and <code>.affix-bottom</code>. You must provide the styles for these classes yourself (independent of this plugin) to handle the actual positions.</p>
<p>The affix plugin toggles between three classes, each representing a particular state: <code>.affix</code>, <code>.affix-top</code>, and <code>.affix-bottom</code>. You must provide the styles, with the exception of <code>position: fixed;</code> on <code>.affix</code>, for these classes yourself (independent of this plugin) to handle the actual positions.</p>
<p>Here's how the affix plugin works:</p>
<ol>
<li>To start, the plugin adds <code>.affix-top</code> to indicate the element is in its top-most position. At this point no CSS positioning is required.</li>
@@ -46,12 +46,12 @@ $('#myAffix').affix({
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-offset-top="200"</code>.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<table class="table table-bordered table-striped js-options-table">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 100px;">type</th>
<th style="width: 50px;">default</th>
<th>Name</th>
<th>type</th>
<th>default</th>
<th>description</th>
</tr>
</thead>
@@ -80,7 +80,7 @@ $('#myAffix').affix({
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+3 -3
View File
@@ -36,10 +36,10 @@
<h3 id="alerts-methods">Methods</h3>
<h4>$().alert()</h4>
<h4><code>$().alert()</code></h4>
<p>Makes an alert listen for click events on descendant elements which have the <code>data-dismiss="alert"</code> attribute. (Not necessary when using the data-api's auto-initialization.)</p>
<h4>$().alert('close')</h4>
<h4><code>$().alert('close')</code></h4>
<p>Closes an alert by removing it from the DOM. If the <code>.fade</code> and <code>.in</code> classes are present on the element, the alert will fade out before it is removed.</p>
@@ -49,7 +49,7 @@
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+4 -4
View File
@@ -115,15 +115,15 @@
{% endhighlight %}
<h2 id="buttons-methods">Methods</h2>
<h4>$().button('toggle')</h4>
<h4><code>$().button('toggle')</code></h4>
<p>Toggles push state. Gives the button the appearance that it has been activated.</p>
<h4>$().button('reset')</h4>
<h4><code>$().button('reset')</code></h4>
<p>Resets button state - swaps text to original text.</p>
<h4>$().button(string)</h4>
<h4><code>$().button(string)</code></h4>
<p>Swaps text to any data defined text state.</p>
{% highlight html %}
<button type="button" id="myStateButton" data-complete-text="finished!" class="btn btn-primary" autocomplete="off">
...
+12 -11
View File
@@ -155,12 +155,12 @@ $('.carousel').carousel()
<h3 id="carousel-options">Options</h3>
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-interval=""</code>.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<table class="table table-bordered table-striped js-options-table">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 50px;">type</th>
<th style="width: 50px;">default</th>
<th>Name</th>
<th>type</th>
<th>default</th>
<th>description</th>
</tr>
</thead>
@@ -195,7 +195,7 @@ $('.carousel').carousel()
<h3 id="carousel-methods">Methods</h3>
<h4>.carousel(options)</h4>
<h4><code>.carousel(options)</code></h4>
<p>Initializes the carousel with an optional options <code>object</code> and starts cycling through items.</p>
{% highlight js %}
$('.carousel').carousel({
@@ -203,20 +203,20 @@ $('.carousel').carousel({
})
{% endhighlight %}
<h4>.carousel('cycle')</h4>
<h4><code>.carousel('cycle')</code></h4>
<p>Cycles through the carousel items from left to right.</p>
<h4>.carousel('pause')</h4>
<h4><code>.carousel('pause')</code></h4>
<p>Stops the carousel from cycling through items.</p>
<h4>.carousel(number)</h4>
<h4><code>.carousel(number)</code></h4>
<p>Cycles the carousel to a particular frame (0 based, similar to an array).</p>
<h4>.carousel('prev')</h4>
<h4><code>.carousel('prev')</code></h4>
<p>Cycles to the previous item.</p>
<h4>.carousel('next')</h4>
<h4><code>.carousel('next')</code></h4>
<p>Cycles to the next item.</p>
<h3 id="carousel-events">Events</h3>
@@ -226,11 +226,12 @@ $('.carousel').carousel({
<li><code>direction</code>: The direction in which the carousel is sliding (either <code>"left"</code> or <code>"right"</code>).</li>
<li><code>relatedTarget</code>: The DOM element that is being slid into place as the active item.</li>
</ul>
<p>All carousel events are fired at the carousel itself (i.e. at the <code>&lt;div class="carousel"&gt;</code>).</p>
<div class="table-responsive">
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+10 -10
View File
@@ -192,12 +192,12 @@ $('.collapse').collapse()
<h3 id="collapse-options">Options</h3>
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-parent=""</code>.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<table class="table table-bordered table-striped js-options-table">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 50px;">type</th>
<th style="width: 50px;">default</th>
<th>Name</th>
<th>type</th>
<th>default</th>
<th>description</th>
</tr>
</thead>
@@ -220,21 +220,21 @@ $('.collapse').collapse()
<h3 id="collapse-methods">Methods</h3>
<h4>.collapse(options)</h4>
<p>Activates your content as a collapsible element. Accepts an optional options <code>object</code>.
<h4><code>.collapse(options)</code></h4>
<p>Activates your content as a collapsible element. Accepts an optional options <code>object</code>.</p>
{% highlight js %}
$('#myCollapsible').collapse({
toggle: false
})
{% endhighlight %}
<h4>.collapse('toggle')</h4>
<h4><code>.collapse('toggle')</code></h4>
<p>Toggles a collapsible element to shown or hidden.</p>
<h4>.collapse('show')</h4>
<h4><code>.collapse('show')</code></h4>
<p>Shows a collapsible element.</p>
<h4>.collapse('hide')</h4>
<h4><code>.collapse('hide')</code></h4>
<p>Hides a collapsible element.</p>
<h3 id="collapse-events">Events</h3>
@@ -243,7 +243,7 @@ $('#myCollapsible').collapse({
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+2 -2
View File
@@ -159,7 +159,7 @@ $('.dropdown-toggle').dropdown()
<p><em>None</em></p>
<h3 id="dropdowns-methods">Methods</h3>
<h4>$().dropdown('toggle')</h4>
<h4><code>$().dropdown('toggle')</code></h4>
<p>Toggles the dropdown menu of a given navbar or tabbed navigation.</p>
<h3 id="dropdowns-events">Events</h3>
@@ -169,7 +169,7 @@ $('.dropdown-toggle').dropdown()
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+120 -18
View File
@@ -16,11 +16,11 @@
</div>
<p><strong class="text-danger">Due to how HTML5 defines its semantics, the <code>autofocus</code> HTML attribute has no effect in Bootstrap modals.</strong> To achieve the same effect, use some custom JavaScript:</p>
{% highlight js %}
$('#myModal').on('shown.bs.modal', function () {
$('#myInput').focus()
})
{% endhighlight %}
{% highlight js %}
$('#myModal').on('shown.bs.modal', function () {
$('#myInput').focus()
})
{% endhighlight %}
<h2 id="modals-examples">Examples</h2>
@@ -108,7 +108,7 @@
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<div class="bs-example" style="padding-bottom: 24px;">
<div class="bs-example bs-example-padded-bottom">
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
@@ -216,14 +216,110 @@
<div class="modal" tabindex="-1" role="dialog" aria-labelledby="" aria-hidden="true">
...
</div>
{% endhighlight %}
<h2 id="modals-grid-system">Using the grid system</h2>
<p>To take advantage of the Bootstrap grid system within a modal, just nest <code>.container-fluid</code> within the <code>.modal-body</code> and then use the normal grid system classes within this container.</p>
<!-- sample modal content -->
<div id="gridSystemModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="gridModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="gridModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<div class="container-fluid">
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>
</div>
<div class="row">
<div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
<div class="col-md-2 col-md-offset-4">.col-md-2 .col-md-offset-4</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>
</div>
<div class="row">
<div class="col-sm-9">
Level 1: .col-sm-9
<div class="row">
<div class="col-xs-8 col-sm-6">
Level 2: .col-xs-8 .col-sm-6
</div>
<div class="col-xs-4 col-sm-6">
Level 2: .col-xs-4 .col-sm-6
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
<div class="bs-example bs-example-padded-bottom">
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#gridSystemModal">
Launch demo modal
</button>
</div><!-- /example -->
{% highlight html %}
<div class="modal fade" role="dialog" aria-labelledby="gridSystemModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="gridSystemModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<div class="container-fluid">
<div class="row">
<div class="col-md-4">.col-md-4</div>
<div class="col-md-4 col-md-offset-4">.col-md-4 .col-md-offset-4</div>
</div>
<div class="row">
<div class="col-md-3 col-md-offset-3">.col-md-3 .col-md-offset-3</div>
<div class="col-md-2 col-md-offset-4">.col-md-2 .col-md-offset-4</div>
</div>
<div class="row">
<div class="col-md-6 col-md-offset-3">.col-md-6 .col-md-offset-3</div>
</div>
<div class="row">
<div class="col-sm-9">
Level 1: .col-sm-9
<div class="row">
<div class="col-xs-8 col-sm-6">
Level 2: .col-xs-8 .col-sm-6
</div>
<div class="col-xs-4 col-sm-6">
Level 2: .col-xs-4 .col-sm-6
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
{% endhighlight %}
<h2 id="modals-related-target">Varying modal content based on trigger button</h2>
<p>Have a bunch of buttons that all trigger the same modal, just with slightly different contents? Use <code>event.relatedTarget</code> and <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes">HTML <code>data-*</code> attributes</a> (possibly <a href="http://api.jquery.com/data/">via jQuery</a>) to vary the contents of the modal depending on which button was clicked. See the Modal Events docs for details on <code>relatedTarget</code>,</p>
<div class="bs-example" style="padding-bottom: 24px;">
<div class="bs-example">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@twbootstrap">Open modal for @twbootstrap</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>
...more buttons...
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
@@ -256,7 +352,7 @@
{% highlight html %}
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@mdo">Open modal for @mdo</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@fat">Open modal for @fat</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@twbootstrap">Open modal for @twbootstrap</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="@getbootstrap">Open modal for @getbootstrap</button>
...more buttons...
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
@@ -314,12 +410,12 @@ $('#exampleModal').on('show.bs.modal', function (event) {
<h3 id="modals-options">Options</h3>
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-backdrop=""</code>.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<table class="table table-bordered table-striped js-options-table">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 50px;">type</th>
<th style="width: 50px;">default</th>
<th>Name</th>
<th>type</th>
<th>default</th>
<th>description</th>
</tr>
</thead>
@@ -360,7 +456,7 @@ $('#exampleModal').on('show.bs.modal', function (event) {
<h3 id="modals-methods">Methods</h3>
<h4>.modal(options)</h4>
<h4><code>.modal(options)</code></h4>
<p>Activates your content as a modal. Accepts an optional options <code>object</code>.</p>
{% highlight js %}
$('#myModal').modal({
@@ -368,25 +464,31 @@ $('#myModal').modal({
})
{% endhighlight %}
<h4>.modal('toggle')</h4>
<h4><code>.modal('toggle')</code></h4>
<p>Manually toggles a modal. <strong>Returns to the caller before the modal has actually been shown or hidden</strong> (i.e. before the <code>shown.bs.modal</code> or <code>hidden.bs.modal</code> event occurs).</p>
{% highlight js %}$('#myModal').modal('toggle'){% endhighlight %}
<h4>.modal('show')</h4>
<h4><code>.modal('show')</code></h4>
<p>Manually opens a modal. <strong>Returns to the caller before the modal has actually been shown</strong> (i.e. before the <code>shown.bs.modal</code> event occurs).</p>
{% highlight js %}$('#myModal').modal('show'){% endhighlight %}
<h4>.modal('hide')</h4>
<h4><code>.modal('hide')</code></h4>
<p>Manually hides a modal. <strong>Returns to the caller before the modal has actually been hidden</strong> (i.e. before the <code>hidden.bs.modal</code> event occurs).</p>
{% highlight js %}$('#myModal').modal('hide'){% endhighlight %}
<h4>.modal('handleUpdate')</h4>
<p>Readjusts the modal's positioning to counter a scrollbar in case one should appear, which would make the modal jump to the left.</p>
<p>Only needed when the height of the modal changes while it is open.</p>
{% highlight js %}$('#myModal').modal('handleUpdate'){% endhighlight %}
<h3 id="modals-events">Events</h3>
<p>Bootstrap's modal class exposes a few events for hooking into modal functionality.</p>
<p>All modal events are fired at the modal itself (i.e. at the <code>&lt;div class="modal"&gt;</code>).</p>
<div class="table-responsive">
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+8 -8
View File
@@ -1,7 +1,7 @@
<div class="bs-docs-section">
<h1 id="js-overview" class="page-header">Overview</h1>
<h3 id="js-individual-compiled">Individual or compiled</h3>
<h2 id="js-individual-compiled">Individual or compiled</h2>
<p>Plugins can be included individually (using Bootstrap's individual <code>*.js</code> files), or all at once (using <code>bootstrap.js</code> or the minified <code>bootstrap.min.js</code>).</p>
<div class="bs-callout bs-callout-danger" id="callout-overview-not-both">
@@ -14,7 +14,7 @@
<p>Some plugins and CSS components depend on other plugins. If you include plugins individually, make sure to check for these dependencies in the docs. Also note that all plugins depend on jQuery (this means jQuery must be included <strong>before</strong> the plugin files). <a href="{{ site.repo }}/blob/v{{ site.current_version }}/bower.json">Consult our <code>bower.json</code></a> to see which versions of jQuery are supported.</p>
</div>
<h3 id="js-data-attrs">Data attributes</h3>
<h2 id="js-data-attrs">Data attributes</h2>
<p>You can use all Bootstrap plugins purely through the markup API without writing a single line of JavaScript. This is Bootstrap's first-class API and should be your first consideration when using a plugin.</p>
<p>That said, in some situations it may be desirable to turn this functionality off. Therefore, we also provide the ability to disable the data attribute API by unbinding all events on the document namespaced with <code>data-api</code>. This looks like this:</p>
@@ -32,7 +32,7 @@ $(document).off('.alert.data-api')
<p>Don't use data attributes from multiple plugins on the same element. For example, a button cannot both have a tooltip and toggle a modal. To accomplish this, use a wrapping element.</p>
</div>
<h3 id="js-programmatic-api">Programmatic API</h3>
<h2 id="js-programmatic-api">Programmatic API</h2>
<p>We also believe you should be able to use all Bootstrap plugins purely through the JavaScript API. All public APIs are single, chainable methods, and return the collection acted upon.</p>
{% highlight js %}
$('.btn.danger').button('toggle').addClass('fat')
@@ -48,19 +48,19 @@ $('#myModal').modal('show') // initializes and invokes show immed
<p>Each plugin also exposes its raw constructor on a <code>Constructor</code> property: <code>$.fn.popover.Constructor</code>. If you'd like to get a particular plugin instance, retrieve it directly from an element: <code>$('[rel="popover"]').data('popover')</code>.</p>
<h4>Default settings</h4>
<p>You can change the default settings for a plugin by modifying the plugin's <code>Constructor.DEFAULTS</code> object:<p>
<p>You can change the default settings for a plugin by modifying the plugin's <code>Constructor.DEFAULTS</code> object:</p>
{% highlight js %}
$.fn.modal.Constructor.DEFAULTS.keyboard = false // changes default for the modal plugin's `keyboard` option to false
{% endhighlight %}
<h3 id="js-noconflict">No conflict</h3>
<h2 id="js-noconflict">No conflict</h2>
<p>Sometimes it is necessary to use Bootstrap plugins with other UI frameworks. In these circumstances, namespace collisions can occasionally occur. If this happens, you may call <code>.noConflict</code> on the plugin you wish to revert the value of.</p>
{% highlight js %}
var bootstrapButton = $.fn.button.noConflict() // return $.fn.button to previously assigned value
$.fn.bootstrapBtn = bootstrapButton // give $().bootstrapBtn the Bootstrap functionality
{% endhighlight %}
<h3 id="js-events">Events</h3>
<h2 id="js-events">Events</h2>
<p>Bootstrap provides custom events for most plugins' unique actions. Generally, these come in an infinitive and past participle form - where the infinitive (ex. <code>show</code>) is triggered at the start of an event, and its past participle form (ex. <code>shown</code>) is triggered on the completion of an action.</p>
<p>As of 3.0.0, all Bootstrap events are namespaced.</p>
<p>All infinitive events provide <code>preventDefault</code> functionality. This provides the ability to stop the execution of an action before it starts.</p>
@@ -70,13 +70,13 @@ $('#myModal').on('show.bs.modal', function (e) {
})
{% endhighlight %}
<h3 id="js-version-nums">Version numbers</h3>
<h2 id="js-version-nums">Version numbers</h2>
<p>The version of each of Bootstrap's jQuery plugins can be accessed via the <code>VERSION</code> property of the plugin's constructor. For example, for the tooltip plugin:</p>
{% highlight js %}
$.fn.tooltip.Constructor.VERSION // => "{{ site.current_version }}"
{% endhighlight %}
<h3 id="js-disabled">No special fallbacks when JavaScript is disabled</h3>
<h2 id="js-disabled">No special fallbacks when JavaScript is disabled</h2>
<p>Bootstrap's plugins don't fall back particularly gracefully when JavaScript is disabled. If you care about the user experience in this case, use <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/noscript"><code>&lt;noscript&gt;</code></a> to explain the situation (and how to re-enable JavaScript) to your users, and/or add your own custom fallbacks.</p>
<div class="bs-callout bs-callout-warning" id="callout-third-party-libs">
+14 -14
View File
@@ -76,7 +76,7 @@ $(function () {
</div>
<h3>Live demo</h3>
<div class="bs-example" style="padding-bottom: 24px;">
<div class="bs-example bs-example-padded-bottom">
<button type="button" class="btn btn-lg btn-danger bs-docs-popover" data-toggle="popover" title="Popover title" data-content="And here's some amazing content. It's very engaging. Right?">Click to toggle popover</button>
</div>
{% highlight html %}
@@ -123,9 +123,9 @@ sagittis lacus vel augue laoreet rutrum faucibus.">
<p>Use the <code>focus</code> trigger to dismiss popovers on the next click that the user makes.</p>
<div class="bs-callout bs-callout-danger" id="callout-popover-dismiss-click">
<h4>Specific markup required for dismiss-on-next-click</h4>
<p>For proper cross-browser and cross-platform behavior, you must use the <code>&lt;a&gt;</code> tag, <i>not</i> the <code>&lt;button&gt;</code> tag, and you also must include a <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#tabindex"><code>tabindex</code></a> attribute.</p>
<p>For proper cross-browser and cross-platform behavior, you must use the <code>&lt;a&gt;</code> tag, <i>not</i> the <code>&lt;button&gt;</code> tag, and you also must include the <code>role="button"</code> and <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes#tabindex"><code>tabindex</code></a> attributes.</p>
</div>
<div class="bs-example" style="padding-bottom: 24px;">
<div class="bs-example bs-example-padded-bottom">
<a tabindex="0" class="btn btn-lg btn-danger bs-docs-popover" role="button" data-toggle="popover" data-trigger="focus" title="Dismissible popover" data-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</a>
</div>
{% highlight html %}
@@ -140,12 +140,12 @@ sagittis lacus vel augue laoreet rutrum faucibus.">
<h3 id="popovers-options">Options</h3>
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-animation=""</code>.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<table class="table table-bordered table-striped js-options-table js-options-table">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 100px;">Type</th>
<th style="width: 50px;">Default</th>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th>Description</th>
</tr>
</thead>
@@ -248,23 +248,23 @@ sagittis lacus vel augue laoreet rutrum faucibus.">
</div>
<h3>Methods</h3>
<h4>$().popover(options)</h4>
<h4><code>$().popover(options)</code></h4>
<p>Initializes popovers for an element collection.</p>
<h4>.popover('show')</h4>
<h4><code>.popover('show')</code></h4>
<p>Reveals an element's popover. <strong>Returns to the caller before the popover has actually been shown</strong> (i.e. before the <code>shown.bs.popover</code> event occurs). This is considered a "manual" triggering of the popover. Popovers whose both title and content are zero-length are never displayed.</p>
{% highlight js %}$('#element').popover('show'){% endhighlight %}
<h4>.popover('hide')</h4>
<h4><code>.popover('hide')</code></h4>
<p>Hides an element's popover. <strong>Returns to the caller before the popover has actually been hidden</strong> (i.e. before the <code>hidden.bs.popover</code> event occurs). This is considered a "manual" triggering of the popover.</p>
{% highlight js %}$('#element').popover('hide'){% endhighlight %}
<h4>.popover('toggle')</h4>
<h4><code>.popover('toggle')</code></h4>
<p>Toggles an element's popover. <strong>Returns to the caller before the popover has actually been shown or hidden</strong> (i.e. before the <code>shown.bs.popover</code> or <code>hidden.bs.popover</code> event occurs). This is considered a "manual" triggering of the popover.</p>
{% highlight js %}$('#element').popover('toggle'){% endhighlight %}
<h4>.popover('destroy')</h4>
<p>Hides and destroys an element's popover.</p>
<h4><code>.popover('destroy')</code></h4>
<p>Hides and destroys an element's popover. Popovers that use delegation (which are created using <a href="#popovers-options">the <code>selector</code> option</a>) cannot be individually destroyed on descendant trigger elements.</p>
{% highlight js %}$('#element').popover('destroy'){% endhighlight %}
<h3 id="popovers-events">Events</h3>
@@ -272,7 +272,7 @@ sagittis lacus vel augue laoreet rutrum faucibus.">
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+9 -9
View File
@@ -75,9 +75,9 @@ body {
}
{% endhighlight %}
{% highlight html %}
<body data-spy="scroll" data-target=".navbar-example">
<body data-spy="scroll" data-target="#navbar-example">
...
<div class="navbar-example">
<div id="navbar-example">
<ul class="nav nav-tabs" role="tablist">
...
</ul>
@@ -89,12 +89,12 @@ body {
<h3>Via JavaScript</h3>
<p>After adding <code>position: relative;</code> in your CSS, call the scrollspy via JavaScript:</p>
{% highlight js %}
$('body').scrollspy({ target: '.navbar-example' })
$('body').scrollspy({ target: '#navbar-example' })
{% endhighlight %}
<h3 id="scrollspy-methods">Methods</h3>
<h4>.scrollspy('refresh')</h4>
<h4><code>.scrollspy('refresh')</code></h4>
<p>When using scrollspy in conjunction with adding or removing of elements from the DOM, you'll need to call the refresh method like so:</p>
{% highlight js %}
$('[data-spy="scroll"]').each(function () {
@@ -106,12 +106,12 @@ $('[data-spy="scroll"]').each(function () {
<h3 id="scrollspy-options">Options</h3>
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-offset=""</code>.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<table class="table table-bordered table-striped js-options-table">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 100px;">type</th>
<th style="width: 50px;">default</th>
<th>Name</th>
<th>type</th>
<th>default</th>
<th>description</th>
</tr>
</thead>
@@ -131,7 +131,7 @@ $('[data-spy="scroll"]').each(function () {
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+2 -2
View File
@@ -92,7 +92,7 @@ $('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed)
{% endhighlight %}
<h3 id="tabs-methods">Methods</h3>
<h4>$().tab</h4>
<h4><code>$().tab</code></h4>
<p>
Activates a tab element and content container. Tab should have either a <code>data-target</code> or an <code>href</code> targeting a container node in the DOM.
</p>
@@ -131,7 +131,7 @@ $('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed)
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+11 -11
View File
@@ -110,12 +110,12 @@ $('#example').tooltip(options)
<h3 id="tooltips-options">Options</h3>
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-animation=""</code>.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<table class="table table-bordered table-striped js-options-table">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 100px;">Type</th>
<th style="width: 50px;">Default</th>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th>Description</th>
</tr>
</thead>
@@ -209,23 +209,23 @@ $('#example').tooltip(options)
<h3 id="tooltips-methods">Methods</h3>
<h4>$().tooltip(options)</h4>
<h4><code>$().tooltip(options)</code></h4>
<p>Attaches a tooltip handler to an element collection.</p>
<h4>.tooltip('show')</h4>
<h4><code>.tooltip('show')</code></h4>
<p>Reveals an element's tooltip. <strong>Returns to the caller before the tooltip has actually been shown</strong> (i.e. before the <code>shown.bs.tooltip</code> event occurs). This is considered a "manual" triggering of the tooltip. Tooltips with zero-length titles are never displayed.</p>
{% highlight js %}$('#element').tooltip('show'){% endhighlight %}
<h4>.tooltip('hide')</h4>
<h4><code>.tooltip('hide')</code></h4>
<p>Hides an element's tooltip. <strong>Returns to the caller before the tooltip has actually been hidden</strong> (i.e. before the <code>hidden.bs.tooltip</code> event occurs). This is considered a "manual" triggering of the tooltip.</p>
{% highlight js %}$('#element').tooltip('hide'){% endhighlight %}
<h4>.tooltip('toggle')</h4>
<h4><code>.tooltip('toggle')</code></h4>
<p>Toggles an element's tooltip. <strong>Returns to the caller before the tooltip has actually been shown or hidden</strong> (i.e. before the <code>shown.bs.tooltip</code> or <code>hidden.bs.tooltip</code> event occurs). This is considered a "manual" triggering of the tooltip.</p>
{% highlight js %}$('#element').tooltip('toggle'){% endhighlight %}
<h4>.tooltip('destroy')</h4>
<p>Hides and destroys an element's tooltip.</p>
<h4><code>.tooltip('destroy')</code></h4>
<p>Hides and destroys an element's tooltip. Tooltips that use delegation (which are created using <a href="#tooltips-options">the <code>selector</code> option</a>) cannot be individually destroyed on descendant trigger elements.</p>
{% highlight js %}$('#element').tooltip('destroy'){% endhighlight %}
<h3 id="tooltips-events">Events</h3>
@@ -233,7 +233,7 @@ $('#example').tooltip(options)
<table class="table table-bordered table-striped bs-events-table">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Event Type</th>
<th>Description</th>
</tr>
</thead>
+2 -2
View File
@@ -1,8 +1,8 @@
<div class="bs-docs-section">
<h1 id="transitions" class="page-header">Transitions <small>transition.js</small></h1>
<h3>About transitions</h3>
<h2>About transitions</h2>
<p>For simple transition effects, include <code>transition.js</code> once alongside the other JS files. If you're using the compiled (or minified) <code>bootstrap.js</code>, there is no need to include this&mdash;it's already there.</p>
<h3>What's inside</h3>
<h2>What's inside</h2>
<p>Transition.js is a basic helper for <code>transitionEnd</code> events as well as a CSS transition emulator. It's used by the other plugins to check for CSS transition support and to catch hanging transitions.</p>
</div>
+1
View File
@@ -56,6 +56,7 @@
<li><a href="#support-safari-percentages">Safari percent rounding</a></li>
<li><a href="#support-fixed-position-keyboards">Modals, navbars, and virtual keyboards</a></li>
<li><a href="#support-browser-zooming">Browser zooming</a></li>
<li><a href="#support-sticky-hover-mobile">Sticky :hover/:focus on mobile</a></li>
<li><a href="#support-printing">Printing</a></li>
<li><a href="#support-android-stock-browser">Android stock browser</a></li>
<li><a href="#support-validators">Validators</a></li>
+2 -2
View File
@@ -7,10 +7,10 @@
<iframe class="github-btn" src="http://ghbtns.com/github-btn.html?user=twbs&amp;repo=bootstrap&amp;type=fork&amp;count=true" width="102" height="20" title="Fork on GitHub"></iframe>
</li>
<li class="follow-btn">
<a href="https://twitter.com/twbootstrap" class="twitter-follow-button" data-link-color="#0069D6" data-show-count="true">Follow @twbootstrap</a>
<a href="https://twitter.com/getbootstrap" class="twitter-follow-button" data-link-color="#0069D6" data-show-count="true">Follow @getbootstrap</a>
</li>
<li class="tweet-btn">
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://getbootstrap.com/" data-count="horizontal" data-via="twbootstrap" data-related="mdo:Creator of Bootstrap">Tweet</a>
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://getbootstrap.com/" data-count="horizontal" data-via="getbootstrap" data-related="mdo:Creator of Bootstrap">Tweet</a>
</li>
</ul>
</div>
+1 -1
View File
@@ -11,7 +11,7 @@
{% include nav/main.html %}
<!-- Docs page layout -->
<div class="bs-docs-header" id="content">
<div class="bs-docs-header" id="content" tabindex="-1">
<div class="container">
<h1>{{ page.title }}</h1>
<p>{{ page.lead }}</p>
+1 -1
View File
@@ -13,7 +13,7 @@ lead: "Learn about the project's history, meet the maintaining teams, and find o
<p class="lead">Originally created by a designer and a developer at Twitter, Bootstrap has become one of the most popular front-end frameworks and open source projects in the world.</p>
<p>Bootstrap was created at Twitter in mid-2010 by <a href="https://twitter.com/mdo">@mdo</a> and <a href="https://twitter.com/fat">@fat</a>. Prior to being an open-sourced framework, Bootstrap was known as <em>Twitter Blueprint</em>. A few months into development, Twitter held its <a href="https://blog.twitter.com/2010/hack-week">first Hack Week</a> and the project exploded as developers of all skill levels jumped in without any external guidance. It served as the style guide for internal tools development at the company for over a year before its public release, and continues to do so today.</p>
<p>Originally <a href="https://dev.twitter.com/blog/bootstrap-twitter">released</a> on <a href="https://twitter.com/mdo/statuses/104620039650557952"><time datetime="2011-08-19 11:25">Friday, August 19, 2011</time></a>, we've since had over <a href="https://github.com/twbs/bootstrap/releases">twenty releases</a>, including two major rewrites with v2 and v3. With Bootstrap 2, we added responsive functionality to the entire framework as an optional stylesheet. Building on that with Bootstrap 3, we rewrote the library once more to make it responsive by default with a mobile first approach.</p>
<p>Originally <a href="https://blog.twitter.com/2011/bootstrap-twitter">released</a> on <a href="https://twitter.com/mdo/statuses/104620039650557952"><time datetime="2011-08-19 11:25">Friday, August 19, 2011</time></a>, we've since had over <a href="https://github.com/twbs/bootstrap/releases">twenty releases</a>, including two major rewrites with v2 and v3. With Bootstrap 2, we added responsive functionality to the entire framework as an optional stylesheet. Building on that with Bootstrap 3, we rewrote the library once more to make it responsive by default with a mobile first approach.</p>
</div>
+2 -2
View File
File diff suppressed because one or more lines are too long
+60
View File
@@ -0,0 +1,60 @@
/**
* Store the link icon as a base64 embedded icon font.
*/
@font-face {
font-family: 'anchorjs-link';
src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg6v8yoAAAC8AAAAYGNtYXDL8RqdAAABHAAAADxnYXNwAAAAEAAAAVgAAAAIZ2x5Zkm2oNUAAAFgAAABWGhlYWQAHd4cAAACuAAAADZoaGVhB3sECwAAAvAAAAAkaG10eAYAAEcAAAMUAAAADGxvY2EACgCsAAADIAAAAAhtYXhwAAYAcAAAAygAAAAgbmFtZUQXtNYAAANIAAABOXBvc3QAAwAAAAAEhAAAACAAAwQAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAACDmAAPA/8D/wAPAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEACgAAAAGAAQAAQACACDmAP//AAAAIOYA////4RoCAAEAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAIARwAHA7kDeQA2AG0AAAEnLgEiBg8BDgEUFh8BHgMXNy4DLwEuATQ2PwE+ATIWHwEeARQGDwEeAxU3PgE0JicBLgMnBx4DHwEeARQGDwEOASImLwEuATQ2PwEuAzUHDgEUFh8BHgEyNj8BPgE0Ji8BA7kEI1ldWiPaIyQkIwQDBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMk/r4DBgYGBFAEBwYHAwQTExMT2xMwMjETBBMTExNjBwkGA5gkIyMkBCNZXVoj2iMkJCMEA3UEJCMjJNojWV1aIwQDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkj/sYDBgUFA1ACBQUFAwQUMDIxE9oTExMTBBMxMjATYxAhISIRmSNaXVkjBCQjIyTaI1ldWiMEAAEAAAABAABR/4xQXw889QALBAAAAAAAzqNM0wAAAADOo0zTAAAAAAO5A3kAAAAIAAIAAAAAAAAAAQAAA8D/wAAABAAAAABHA7kAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAgAAAAQAAEcAAAAAAAoArAABAAAAAwBuAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIADgBHAAEAAAAAAAMADgAkAAEAAAAAAAQADgBVAAEAAAAAAAUAFgAOAAEAAAAAAAYABwAyAAEAAAAAAAoAKABjAAMAAQQJAAEADgAAAAMAAQQJAAIADgBHAAMAAQQJAAMADgAkAAMAAQQJAAQADgBVAAMAAQQJAAUAFgAOAAMAAQQJAAYADgA5AAMAAQQJAAoAKABjAGkAYwBvAG0AbwBvAG4AVgBlAHIAcwBpAG8AbgAgADAALgAwAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG4AUgBlAGcAdQBsAGEAcgBpAGMAbwBtAG8AbwBuAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'),
url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAATwAAsAAAAABKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDq/zKmNtYXAAAAFoAAAAPAAAADzL8RqdZ2FzcAAAAaQAAAAIAAAACAAAABBnbHlmAAABrAAAAVgAAAFYSbag1WhlYWQAAAMEAAAANgAAADYAHd4caGhlYQAAAzwAAAAkAAAAJAd7BAtobXR4AAADYAAAAAwAAAAMBgAAR2xvY2EAAANsAAAACAAAAAgACgCsbWF4cAAAA3QAAAAgAAAAIAAGAHBuYW1lAAADlAAAATkAAAE5RBe01nBvc3QAAATQAAAAIAAAACAAAwAAAAMEAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAg5gADwP/A/8ADwABAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAgAAAAMAAAAUAAMAAQAAABQABAAoAAAABgAEAAEAAgAg5gD//wAAACDmAP///+EaAgABAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAACAEcABwO5A3kANgBtAAABJy4BIgYPAQ4BFBYfAR4DFzcuAy8BLgE0Nj8BPgEyFh8BHgEUBg8BHgMVNz4BNCYnAS4DJwceAx8BHgEUBg8BDgEiJi8BLgE0Nj8BLgM1Bw4BFBYfAR4BMjY/AT4BNCYvAQO5BCNZXVoj2iMkJCMEAwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJP6+AwYGBgRQBAcGBwMEExMTE9sTMDIxEwQTExMTYwcJBgOYJCMjJAQjWV1aI9ojJCQjBAN1BCQjIyTaI1ldWiMEAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZI/7GAwYFBQNQAgUFBQMEFDAyMRPaExMTEwQTMTIwE2MQISEiEZkjWl1ZIwQkIyMk2iNZXVojBAABAAAAAQAAUf+MUF8PPPUACwQAAAAAAM6jTNMAAAAAzqNM0wAAAAADuQN5AAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAARwO5AAEAAAAAAAAAAAAAAAAAAAADAAAAAAIAAAAEAABHAAAAAAAKAKwAAQAAAAMAbgACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA4AAAABAAAAAAACAA4ARwABAAAAAAADAA4AJAABAAAAAAAEAA4AVQABAAAAAAAFABYADgABAAAAAAAGAAcAMgABAAAAAAAKACgAYwADAAEECQABAA4AAAADAAEECQACAA4ARwADAAEECQADAA4AJAADAAEECQAEAA4AVQADAAEECQAFABYADgADAAEECQAGAA4AOQADAAEECQAKACgAYwBpAGMAbwBtAG8AbwBuAFYAZQByAHMAaQBvAG4AIAAwAC4AMABpAGMAbwBtAG8AbwBuaWNvbW9vbgBpAGMAbwBtAG8AbwBuAFIAZQBnAHUAbABhAHIAaQBjAG8AbQBvAG8AbgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4AAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format('woff');
font-weight: normal;
font-style: normal;
}
.anchorjs-icon {
font-family: 'anchorjs-link';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Icon Rendering */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/**
* Link placement and hover behavior.
*/
.anchorjs-link {
float: left;
width: 1em;
height: 1em;
margin-left: -1.2em;
opacity: 0;
color: inherit;
text-align: center;
}
@media (max-width: 480px) {
.anchorjs-link {
display: none;
}
}
*:hover > .anchorjs-link,
.anchorjs-link:focus {
opacity: .75;
transition: color .16s linear;
}
*:hover > .anchorjs-link:hover {
opacity: 1;
text-decoration: none;
}
.anchorjs-icon {
font-size: 60%;
vertical-align: .2em;
}
.anchorjs-icon:before {
content: "\e600";
}
+33
View File
@@ -28,6 +28,13 @@ body {
font-weight: normal;
}
/* Inline code within headings retain the heading's background-color */
h2 code,
h3 code,
h4 code {
background-color: inherit;
}
/* Outline button for use within the docs */
.btn-outline {
color: #563d7c;
@@ -93,6 +100,7 @@ body {
* Fancy skip link
*
* Make it look a bit less "bare bones"
* Also includes focus suppression for the Chrome tabindex="-1" workaround
*/
#skippy {
@@ -108,6 +116,10 @@ body {
outline: 1px dotted;
}
#content:focus {
outline: none;
}
/*
* Main navigation
@@ -913,6 +925,10 @@ h1[id] {
content: "Example";
}
.bs-example-padded-bottom {
padding-bottom: 24px;
}
/* Tweak display of the code snippets when following an example */
.bs-example + .highlight,
.bs-example + .zero-clipboard + .highlight {
@@ -1166,6 +1182,10 @@ h1[id] {
overflow: auto;
}
.bs-example > .nav-pills-stacked-example {
max-width: 300px;
}
/* Simple collapse example */
#collapseExample .well {
margin-bottom: 0;
@@ -1177,6 +1197,19 @@ h1[id] {
white-space: nowrap;
}
.bs-events-table > thead > tr > th:first-child {
width: 150px;
}
.js-options-table > thead > tr > th:nth-child(1),
.js-options-table > thead > tr > th:nth-child(2) {
width: 100px;
}
.js-options-table > thead > tr > th:nth-child(3) {
width: 50px;
}
/*
* Code snippets
*
+55 -22
View File
File diff suppressed because one or more lines are too long
+7 -2
View File
File diff suppressed because one or more lines are too long
+3 -3
View File
File diff suppressed because one or more lines are too long
+6 -1
View File
@@ -9,7 +9,7 @@
* details, see http://creativecommons.org/licenses/by/3.0/.
*/
/* global ZeroClipboard */
/* global ZeroClipboard, addAnchors */
!function ($) {
'use strict';
@@ -174,3 +174,8 @@
})
}(jQuery)
;(function () {
'use strict';
addAnchors('.bs-docs-container h1, .bs-docs-container h2, .bs-docs-container h3, .bs-docs-container h4, .bs-docs-container h5');
})();
+2 -1
View File
@@ -6,12 +6,13 @@
* details, see http://creativecommons.org/licenses/by/3.0/.
*/
/* jshint es3:false */
/* global JSZip, less, autoprefixer, saveAs, UglifyJS, __configBridge, __js, __less, __fonts */
window.onload = function () { // wait for load in a dumb way because B-0
'use strict';
var cw = '/*!\n' +
' * Bootstrap v3.3.2 (http://getbootstrap.com)\n' +
' * Bootstrap v3.3.4 (http://getbootstrap.com)\n' +
' * Copyright 2011-' + new Date().getFullYear() + ' Twitter, Inc.\n' +
' * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n' +
' */\n\n'
+7 -6
View File
@@ -1,6 +1,6 @@
/* FileSaver.js
* A saveAs() FileSaver implementation.
* 2014-08-29
* 2015-01-04
*
* By Eli Grey, http://eligrey.com
* License: X11/MIT
@@ -49,9 +49,10 @@ var saveAs = saveAs
}
, force_saveable_type = "application/octet-stream"
, fs_min_size = 0
// See https://code.google.com/p/chromium/issues/detail?id=375297#c7 for
// the reasoning behind the timeout and revocation flow
, arbitrary_revoke_timeout = 10
// See https://code.google.com/p/chromium/issues/detail?id=375297#c7 and
// https://github.com/eligrey/FileSaver.js/commit/485930a#commitcomment-8768047
// for the reasoning behind the timeout and revocation flow
, arbitrary_revoke_timeout = 500 // in ms
, revoke = function(file) {
var revoker = function() {
if (typeof file === "string") { // file is an object URL
@@ -234,8 +235,8 @@ var saveAs = saveAs
// while `this` is nsIContentFrameMessageManager
// with an attribute `content` that corresponds to the window
if (typeof module !== "undefined" && module !== null) {
module.exports = saveAs;
if (typeof module !== "undefined" && module.exports) {
module.exports.saveAs = saveAs;
} else if ((typeof define !== "undefined" && define !== null) && (define.amd != null)) {
define([], function() {
return saveAs;
+48
View File
@@ -0,0 +1,48 @@
/*!
* AnchorJS - v0.1.0 - 2014-08-17
* https://github.com/bryanbraun/anchorjs
* Copyright (c) 2014 Bryan Braun; Licensed MIT
*/
function addAnchors(selector) {
'use strict';
// Sensible default selector, if none is provided.
if (!selector) {
selector = 'h1, h2, h3, h4, h5, h6';
} else if (typeof selector !== 'string') {
throw new Error('AnchorJS accepts only strings; you used a ' + typeof selector);
}
// Select any elements that match the provided selector.
var elements = document.querySelectorAll(selector);
// Loop through the selected elements.
for (var i = 0; i < elements.length; i++) {
var elementID;
if (elements[i].hasAttribute('id')) {
elementID = elements[i].getAttribute('id');
} else {
// We need to create an ID on our element. First, we find which text selection method is available to the browser.
var textMethod = document.body.textContent ? 'textContent' : 'innerText';
// Get the text inside our element
var roughText = elements[i][textMethod];
// Refine it so it makes a good ID. Makes all lowercase and hyphen separated.
// Ex. Hello World > hello-world
var tidyText = roughText.replace(/\s+/g, '-').toLowerCase();
// Assign it to our element.
// Currently the setAttribute element is only supported in IE9 and above.
elements[i].setAttribute('id', tidyText);
// Grab it for use in our anchor.
elementID = tidyText;
}
var anchor = '<a class="anchorjs-link" href="#' + elementID + '"><span class="anchorjs-icon"></span></a>';
elements[i].innerHTML += anchor;
}
}
+7087 -3475
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v3.3.2 (http://getbootstrap.com)
* Bootstrap v3.3.4 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
File diff suppressed because one or more lines are too long
+33 -15
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v3.3.2 (http://getbootstrap.com)
* Bootstrap v3.3.4 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@@ -958,12 +958,24 @@ th {
.glyphicon-bitcoin:before {
content: "\e227";
}
.glyphicon-btc:before {
content: "\e227";
}
.glyphicon-xbt:before {
content: "\e227";
}
.glyphicon-yen:before {
content: "\00a5";
}
.glyphicon-jpy:before {
content: "\00a5";
}
.glyphicon-ruble:before {
content: "\20bd";
}
.glyphicon-rub:before {
content: "\20bd";
}
.glyphicon-scale:before {
content: "\e230";
}
@@ -1161,6 +1173,9 @@ hr {
overflow: visible;
clip: auto;
}
[role="button"] {
cursor: pointer;
}
h1,
h2,
h3,
@@ -2564,10 +2579,13 @@ output {
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
cursor: not-allowed;
background-color: #eee;
opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
cursor: not-allowed;
}
textarea.form-control {
height: auto;
}
@@ -2634,6 +2652,7 @@ input[type="search"] {
}
.radio-inline,
.checkbox-inline {
position: relative;
display: inline-block;
padding-left: 20px;
margin-bottom: 0;
@@ -2667,6 +2686,7 @@ fieldset[disabled] .checkbox label {
cursor: not-allowed;
}
.form-control-static {
min-height: 34px;
padding-top: 7px;
padding-bottom: 7px;
margin-bottom: 0;
@@ -2708,6 +2728,7 @@ select[multiple].form-group-sm .form-control {
}
.form-group-sm .form-control-static {
height: 30px;
min-height: 32px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
@@ -2744,6 +2765,7 @@ select[multiple].form-group-lg .form-control {
}
.form-group-lg .form-control-static {
height: 46px;
min-height: 38px;
padding: 10px 16px;
font-size: 18px;
line-height: 1.3333333;
@@ -3365,11 +3387,9 @@ input[type="button"].btn-block {
}
.collapse {
display: none;
visibility: hidden;
}
.collapse.in {
display: block;
visibility: visible;
}
tr.collapse.in {
display: table-row;
@@ -3397,7 +3417,7 @@ tbody.collapse.in {
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: 4px solid;
border-top: 4px dashed;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
@@ -4037,11 +4057,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.tab-content > .tab-pane {
display: none;
visibility: hidden;
}
.tab-content > .active {
display: block;
visibility: visible;
}
.nav-tabs .dropdown-menu {
margin-top: -1px;
@@ -4088,7 +4106,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
height: auto !important;
padding-bottom: 0;
overflow: visible !important;
visibility: visible !important;
}
.navbar-collapse.in {
overflow-y: visible;
@@ -4813,7 +4830,8 @@ a.label:focus {
position: relative;
top: -1px;
}
.btn-xs .badge {
.btn-xs .badge,
.btn-group-xs > .btn .badge {
top: 0;
padding: 1px 5px;
}
@@ -5645,10 +5663,10 @@ a.list-group-item-danger.active:focus {
height: 100%;
border: 0;
}
.embed-responsive.embed-responsive-16by9 {
.embed-responsive-16by9 {
padding-bottom: 56.25%;
}
.embed-responsive.embed-responsive-4by3 {
.embed-responsive-4by3 {
padding-bottom: 75%;
}
.well {
@@ -5707,7 +5725,7 @@ button.close {
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
z-index: 1050;
display: none;
overflow: hidden;
-webkit-overflow-scrolling: touch;
@@ -5750,10 +5768,12 @@ button.close {
box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}
.modal-backdrop {
position: absolute;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
@@ -5828,7 +5848,6 @@ button.close {
font-size: 12px;
font-weight: normal;
line-height: 1.4;
visibility: visible;
filter: alpha(opacity=0);
opacity: 0;
}
@@ -6348,7 +6367,6 @@ button.close {
}
.hidden {
display: none !important;
visibility: hidden !important;
}
.affix {
position: fixed;
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
+108 -97
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v3.3.2 (http://getbootstrap.com)
* Bootstrap v3.3.4 (http://getbootstrap.com)
* Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@@ -17,7 +17,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: transition.js v3.3.2
* Bootstrap: transition.js v3.3.4
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -77,7 +77,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: alert.js v3.3.2
* Bootstrap: alert.js v3.3.4
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -96,7 +96,7 @@ if (typeof jQuery === 'undefined') {
$(el).on('click', dismiss, this.close)
}
Alert.VERSION = '3.3.2'
Alert.VERSION = '3.3.4'
Alert.TRANSITION_DURATION = 150
@@ -172,7 +172,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: button.js v3.3.2
* Bootstrap: button.js v3.3.4
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -192,7 +192,7 @@ if (typeof jQuery === 'undefined') {
this.isLoading = false
}
Button.VERSION = '3.3.2'
Button.VERSION = '3.3.4'
Button.DEFAULTS = {
loadingText: 'loading...'
@@ -289,7 +289,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: carousel.js v3.3.2
* Bootstrap: carousel.js v3.3.4
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -307,10 +307,10 @@ if (typeof jQuery === 'undefined') {
this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
this.paused =
this.sliding =
this.interval =
this.$active =
this.paused = null
this.sliding = null
this.interval = null
this.$active = null
this.$items = null
this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
@@ -320,7 +320,7 @@ if (typeof jQuery === 'undefined') {
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
}
Carousel.VERSION = '3.3.2'
Carousel.VERSION = '3.3.4'
Carousel.TRANSITION_DURATION = 600
@@ -527,7 +527,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: collapse.js v3.3.2
* Bootstrap: collapse.js v3.3.4
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -544,7 +544,8 @@ if (typeof jQuery === 'undefined') {
var Collapse = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, Collapse.DEFAULTS, options)
this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
'[data-toggle="collapse"][data-target="#' + element.id + '"]')
this.transitioning = null
if (this.options.parent) {
@@ -556,13 +557,12 @@ if (typeof jQuery === 'undefined') {
if (this.options.toggle) this.toggle()
}
Collapse.VERSION = '3.3.2'
Collapse.VERSION = '3.3.4'
Collapse.TRANSITION_DURATION = 350
Collapse.DEFAULTS = {
toggle: true,
trigger: '[data-toggle="collapse"]'
toggle: true
}
Collapse.prototype.dimension = function () {
@@ -700,7 +700,7 @@ if (typeof jQuery === 'undefined') {
var data = $this.data('bs.collapse')
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
if (!data && options.toggle && option == 'show') options.toggle = false
if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -731,7 +731,7 @@ if (typeof jQuery === 'undefined') {
var $target = getTargetFromTrigger($this)
var data = $target.data('bs.collapse')
var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
var option = data ? 'toggle' : $this.data()
Plugin.call($target, option)
})
@@ -739,7 +739,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: dropdown.js v3.3.2
* Bootstrap: dropdown.js v3.3.4
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -759,7 +759,7 @@ if (typeof jQuery === 'undefined') {
$(element).on('click.bs.dropdown', this.toggle)
}
Dropdown.VERSION = '3.3.2'
Dropdown.VERSION = '3.3.4'
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
@@ -812,7 +812,7 @@ if (typeof jQuery === 'undefined') {
return $this.trigger('click')
}
var desc = ' li:not(.divider):visible a'
var desc = ' li:not(.disabled):visible a'
var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
if (!$items.length) return
@@ -901,7 +901,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: modal.js v3.3.2
* Bootstrap: modal.js v3.3.4
* http://getbootstrap.com/javascript/#modals
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -916,12 +916,15 @@ if (typeof jQuery === 'undefined') {
// ======================
var Modal = function (element, options) {
this.options = options
this.$body = $(document.body)
this.$element = $(element)
this.$backdrop =
this.isShown = null
this.scrollbarWidth = 0
this.options = options
this.$body = $(document.body)
this.$element = $(element)
this.$dialog = this.$element.find('.modal-dialog')
this.$backdrop = null
this.isShown = null
this.originalBodyPad = null
this.scrollbarWidth = 0
this.ignoreBackdropClick = false
if (this.options.remote) {
this.$element
@@ -932,7 +935,7 @@ if (typeof jQuery === 'undefined') {
}
}
Modal.VERSION = '3.3.2'
Modal.VERSION = '3.3.4'
Modal.TRANSITION_DURATION = 300
Modal.BACKDROP_TRANSITION_DURATION = 150
@@ -966,6 +969,12 @@ if (typeof jQuery === 'undefined') {
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
this.$dialog.on('mousedown.dismiss.bs.modal', function () {
that.$element.one('mouseup.dismiss.bs.modal', function (e) {
if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
})
})
this.backdrop(function () {
var transition = $.support.transition && that.$element.hasClass('fade')
@@ -977,7 +986,6 @@ if (typeof jQuery === 'undefined') {
.show()
.scrollTop(0)
if (that.options.backdrop) that.adjustBackdrop()
that.adjustDialog()
if (transition) {
@@ -993,7 +1001,7 @@ if (typeof jQuery === 'undefined') {
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition ?
that.$element.find('.modal-dialog') // wait for modal to slide in
that.$dialog // wait for modal to slide in
.one('bsTransitionEnd', function () {
that.$element.trigger('focus').trigger(e)
})
@@ -1022,6 +1030,9 @@ if (typeof jQuery === 'undefined') {
.removeClass('in')
.attr('aria-hidden', true)
.off('click.dismiss.bs.modal')
.off('mouseup.dismiss.bs.modal')
this.$dialog.off('mousedown.dismiss.bs.modal')
$.support.transition && this.$element.hasClass('fade') ?
this.$element
@@ -1082,13 +1093,18 @@ if (typeof jQuery === 'undefined') {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.prependTo(this.$element)
.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (e.target !== e.currentTarget) return
this.options.backdrop == 'static'
? this.$element[0].focus.call(this.$element[0])
: this.hide.call(this)
}, this))
.appendTo(this.$body)
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
if (this.ignoreBackdropClick) {
this.ignoreBackdropClick = false
return
}
if (e.target !== e.currentTarget) return
this.options.backdrop == 'static'
? this.$element[0].focus()
: this.hide()
}, this))
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
@@ -1123,16 +1139,9 @@ if (typeof jQuery === 'undefined') {
// these following methods are used to handle overflowing modals
Modal.prototype.handleUpdate = function () {
if (this.options.backdrop) this.adjustBackdrop()
this.adjustDialog()
}
Modal.prototype.adjustBackdrop = function () {
this.$backdrop
.css('height', 0)
.css('height', this.$element[0].scrollHeight)
}
Modal.prototype.adjustDialog = function () {
var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
@@ -1150,17 +1159,23 @@ if (typeof jQuery === 'undefined') {
}
Modal.prototype.checkScrollbar = function () {
this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight
var fullWindowWidth = window.innerWidth
if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
var documentElementRect = document.documentElement.getBoundingClientRect()
fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
}
this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
this.scrollbarWidth = this.measureScrollbar()
}
Modal.prototype.setScrollbar = function () {
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
this.originalBodyPad = document.body.style.paddingRight || ''
if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
}
Modal.prototype.resetScrollbar = function () {
this.$body.css('padding-right', '')
this.$body.css('padding-right', this.originalBodyPad)
}
Modal.prototype.measureScrollbar = function () { // thx walsh
@@ -1226,7 +1241,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: tooltip.js v3.3.2
* Bootstrap: tooltip.js v3.3.4
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
@@ -1242,17 +1257,17 @@ if (typeof jQuery === 'undefined') {
// ===============================
var Tooltip = function (element, options) {
this.type =
this.options =
this.enabled =
this.timeout =
this.hoverState =
this.type = null
this.options = null
this.enabled = null
this.timeout = null
this.hoverState = null
this.$element = null
this.init('tooltip', element, options)
}
Tooltip.VERSION = '3.3.2'
Tooltip.VERSION = '3.3.4'
Tooltip.TRANSITION_DURATION = 150
@@ -1279,6 +1294,10 @@ if (typeof jQuery === 'undefined') {
this.options = this.getOptions(options)
this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
if (this.$element[0] instanceof document.constructor && !this.options.selector) {
throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
}
var triggers = this.options.trigger.split(' ')
for (var i = triggers.length; i--;) {
@@ -1499,10 +1518,10 @@ if (typeof jQuery === 'undefined') {
this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
}
Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {
Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
this.arrow()
.css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
.css(isHorizontal ? 'top' : 'left', '')
.css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
.css(isVertical ? 'top' : 'left', '')
}
Tooltip.prototype.setContent = function () {
@@ -1515,7 +1534,7 @@ if (typeof jQuery === 'undefined') {
Tooltip.prototype.hide = function (callback) {
var that = this
var $tip = this.tip()
var $tip = $(this.$tip)
var e = $.Event('hide.bs.' + this.type)
function complete() {
@@ -1532,7 +1551,7 @@ if (typeof jQuery === 'undefined') {
$tip.removeClass('in')
$.support.transition && this.$tip.hasClass('fade') ?
$.support.transition && $tip.hasClass('fade') ?
$tip
.one('bsTransitionEnd', complete)
.emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
@@ -1676,7 +1695,7 @@ if (typeof jQuery === 'undefined') {
var data = $this.data('bs.tooltip')
var options = typeof option == 'object' && option
if (!data && option == 'destroy') return
if (!data && /destroy|hide/.test(option)) return
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -1699,7 +1718,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: popover.js v3.3.2
* Bootstrap: popover.js v3.3.4
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -1719,7 +1738,7 @@ if (typeof jQuery === 'undefined') {
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
Popover.VERSION = '3.3.2'
Popover.VERSION = '3.3.4'
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
placement: 'right',
@@ -1775,11 +1794,6 @@ if (typeof jQuery === 'undefined') {
return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
}
Popover.prototype.tip = function () {
if (!this.$tip) this.$tip = $(this.options.template)
return this.$tip
}
// POPOVER PLUGIN DEFINITION
// =========================
@@ -1790,7 +1804,7 @@ if (typeof jQuery === 'undefined') {
var data = $this.data('bs.popover')
var options = typeof option == 'object' && option
if (!data && option == 'destroy') return
if (!data && /destroy|hide/.test(option)) return
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -1813,7 +1827,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: scrollspy.js v3.3.2
* Bootstrap: scrollspy.js v3.3.4
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -1828,10 +1842,8 @@ if (typeof jQuery === 'undefined') {
// ==========================
function ScrollSpy(element, options) {
var process = $.proxy(this.process, this)
this.$body = $('body')
this.$scrollElement = $(element).is('body') ? $(window) : $(element)
this.$body = $(document.body)
this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
this.selector = (this.options.target || '') + ' .nav li > a'
this.offsets = []
@@ -1839,12 +1851,12 @@ if (typeof jQuery === 'undefined') {
this.activeTarget = null
this.scrollHeight = 0
this.$scrollElement.on('scroll.bs.scrollspy', process)
this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
this.refresh()
this.process()
}
ScrollSpy.VERSION = '3.3.2'
ScrollSpy.VERSION = '3.3.4'
ScrollSpy.DEFAULTS = {
offset: 10
@@ -1855,20 +1867,19 @@ if (typeof jQuery === 'undefined') {
}
ScrollSpy.prototype.refresh = function () {
var offsetMethod = 'offset'
var offsetBase = 0
var that = this
var offsetMethod = 'offset'
var offsetBase = 0
this.offsets = []
this.targets = []
this.scrollHeight = this.getScrollHeight()
if (!$.isWindow(this.$scrollElement[0])) {
offsetMethod = 'position'
offsetBase = this.$scrollElement.scrollTop()
}
this.offsets = []
this.targets = []
this.scrollHeight = this.getScrollHeight()
var self = this
this.$body
.find(this.selector)
.map(function () {
@@ -1883,8 +1894,8 @@ if (typeof jQuery === 'undefined') {
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
self.offsets.push(this[0])
self.targets.push(this[1])
that.offsets.push(this[0])
that.targets.push(this[1])
})
}
@@ -1913,7 +1924,7 @@ if (typeof jQuery === 'undefined') {
for (i = offsets.length; i--;) {
activeTarget != targets[i]
&& scrollTop >= offsets[i]
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
&& (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
&& this.activate(targets[i])
}
}
@@ -1924,8 +1935,8 @@ if (typeof jQuery === 'undefined') {
this.clear()
var selector = this.selector +
'[data-target="' + target + '"],' +
this.selector + '[href="' + target + '"]'
'[data-target="' + target + '"],' +
this.selector + '[href="' + target + '"]'
var active = $(selector)
.parents('li')
@@ -1989,7 +2000,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: tab.js v3.3.2
* Bootstrap: tab.js v3.3.4
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -2007,7 +2018,7 @@ if (typeof jQuery === 'undefined') {
this.element = $(element)
}
Tab.VERSION = '3.3.2'
Tab.VERSION = '3.3.4'
Tab.TRANSITION_DURATION = 150
@@ -2078,7 +2089,7 @@ if (typeof jQuery === 'undefined') {
element.removeClass('fade')
}
if (element.parent('.dropdown-menu')) {
if (element.parent('.dropdown-menu').length) {
element
.closest('li.dropdown')
.addClass('active')
@@ -2143,7 +2154,7 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
* Bootstrap: affix.js v3.3.2
* Bootstrap: affix.js v3.3.4
* http://getbootstrap.com/javascript/#affix
* ========================================================================
* Copyright 2011-2015 Twitter, Inc.
@@ -2165,14 +2176,14 @@ if (typeof jQuery === 'undefined') {
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
this.$element = $(element)
this.affixed =
this.unpin =
this.affixed = null
this.unpin = null
this.pinnedOffset = null
this.checkPosition()
}
Affix.VERSION = '3.3.2'
Affix.VERSION = '3.3.4'
Affix.RESET = 'affix affix-top affix-bottom'
@@ -2222,7 +2233,7 @@ if (typeof jQuery === 'undefined') {
var offset = this.options.offset
var offsetTop = offset.top
var offsetBottom = offset.bottom
var scrollHeight = $('body').height()
var scrollHeight = $(document.body).height()
if (typeof offset != 'object') offsetBottom = offsetTop = offset
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
+3 -3
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
@@ -169,7 +170,6 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<script src="../../assets/js/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</body>
+15 -13
View File
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
@@ -80,7 +81,7 @@
</ol>
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="First slide">
<img class="first-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="First slide">
<div class="container">
<div class="carousel-caption">
<h1>Example headline.</h1>
@@ -90,7 +91,7 @@
</div>
</div>
<div class="item">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAGZmZgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Second slide">
<img class="second-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Second slide">
<div class="container">
<div class="carousel-caption">
<h1>Another example headline.</h1>
@@ -100,7 +101,7 @@
</div>
</div>
<div class="item">
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAFVVVQAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Third slide">
<img class="third-slide" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Third slide">
<div class="container">
<div class="carousel-caption">
<h1>One more for good measure.</h1>
@@ -130,19 +131,19 @@
<!-- Three columns of text below the carousel -->
<div class="row">
<div class="col-lg-4">
<img class="img-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" style="width: 140px; height: 140px;">
<img class="img-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" width="140" height="140">
<h2>Heading</h2>
<p>Donec sed odio dui. Etiam porta sem malesuada magna mollis euismod. Nullam id dolor id nibh ultricies vehicula ut id elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna.</p>
<p><a class="btn btn-default" href="#" role="button">View details &raquo;</a></p>
</div><!-- /.col-lg-4 -->
<div class="col-lg-4">
<img class="img-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" style="width: 140px; height: 140px;">
<img class="img-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" width="140" height="140">
<h2>Heading</h2>
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh.</p>
<p><a class="btn btn-default" href="#" role="button">View details &raquo;</a></p>
</div><!-- /.col-lg-4 -->
<div class="col-lg-4">
<img class="img-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" style="width: 140px; height: 140px;">
<img class="img-circle" src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" alt="Generic placeholder image" width="140" height="140">
<h2>Heading</h2>
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
<p><a class="btn btn-default" href="#" role="button">View details &raquo;</a></p>
@@ -160,20 +161,20 @@
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
</div>
<div class="col-md-5">
<img class="featurette-image img-responsive" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
<img class="featurette-image img-responsive center-block" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
</div>
</div>
<hr class="featurette-divider">
<div class="row featurette">
<div class="col-md-5">
<img class="featurette-image img-responsive" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
</div>
<div class="col-md-7">
<div class="col-md-7 col-md-push-5">
<h2 class="featurette-heading">Oh yeah, it's that good. <span class="text-muted">See for yourself.</span></h2>
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
</div>
<div class="col-md-5 col-md-pull-7">
<img class="featurette-image img-responsive center-block" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
</div>
</div>
<hr class="featurette-divider">
@@ -184,7 +185,7 @@
<p class="lead">Donec ullamcorper nulla non metus auctor fringilla. Vestibulum id ligula porta felis euismod semper. Praesent commodo cursus magna, vel scelerisque nisl consectetur. Fusce dapibus, tellus ac cursus commodo.</p>
</div>
<div class="col-md-5">
<img class="featurette-image img-responsive" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
<img class="featurette-image img-responsive center-block" data-src="holder.js/500x500/auto" alt="Generic placeholder image">
</div>
</div>
@@ -207,7 +208,8 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<script src="../../assets/js/docs.min.js"></script>
<!-- Just to make our placeholder images work. Don't actually copy the next line! -->
<script src="../../assets/js/vendor/holder.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</body>
+1 -1
View File
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
@@ -73,7 +74,6 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<script src="../../assets/js/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</body>
+3 -1
View File
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
@@ -239,7 +240,8 @@
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="../../dist/js/bootstrap.min.js"></script>
<script src="../../assets/js/docs.min.js"></script>
<!-- Just to make our placeholder images work. Don't actually copy the next line! -->
<script src="../../assets/js/vendor/holder.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
</body>
+1
View File
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
+2 -1
View File
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
@@ -30,7 +31,7 @@
<body>
<div class="container">
<div class="header">
<div class="header clearfix">
<nav>
<ul class="nav nav-pills pull-right">
<li role="presentation" class="active"><a href="#">Home</a></li>
@@ -14,11 +14,11 @@ body {
/* Custom page header */
.header {
padding-bottom: 20px;
border-bottom: 1px solid #e5e5e5;
}
/* Make the masthead heading the same height as the navigation */
.header h3 {
padding-bottom: 19px;
margin-top: 0;
margin-bottom: 0;
line-height: 40px;
+1
View File
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
+3
View File
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
@@ -31,6 +32,8 @@
<div class="container">
<!-- The justified navigation menu is meant for single line per list item.
Multiple lines will require custom code not provided by Bootstrap. -->
<div class="masthead">
<h3 class="text-muted">Project name</h3>
<nav>
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
+1
View File
@@ -4,6 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
+5 -8
View File
@@ -3,6 +3,7 @@
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- The above 2 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
@@ -35,15 +36,11 @@
<nav class="navbar navbar-default navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- The mobile navbar-toggle button can be safely removed since you do not need it in a non-responsive implementation -->
<a class="navbar-brand" href="#">Project name</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<!-- Note that the .navbar-collapse and .collapse classes have been removed from the #navbar -->
<div id="navbar">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
@@ -84,7 +81,7 @@
</div>
<h3>What changes</h3>
<p>Note the lack of the <code>&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;</code>, which disables the zooming aspect of sites in mobile devices. In addition, we reset our container's width and are basically good to go.</p>
<p>Note the lack of the <code>&lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;</code>, which disables the zooming aspect of sites in mobile devices. In addition, we reset our container's width and changed the navbar to prevent collapsing, and are basically good to go.</p>
<h3>Regarding navbars</h3>
<p>As a heads up, the navbar component is rather tricky here in that the styles for displaying it are rather specific and detailed. Overrides to ensure desktop styles display are not as performant or sleek as one would like. Just be aware there may be potential gotchas as you build on top of this example when using the navbar.</p>

Some files were not shown because too many files have changed in this diff Show More