Compare commits

...

760 Commits

Author SHA1 Message Date
Mark Otto 16dbdbd7a2 Merge branch 'master' into v3.3.0
Conflicts:
	docs/assets/js/customize.min.js
	docs/assets/js/raw-files.min.js
2014-10-29 11:56:48 -07:00
Mark Otto 15d668dd15 grunt 2014-10-29 11:13:25 -07:00
XhmikosR 5a83be362a Update shrinkwrap. 2014-10-29 19:44:14 +02:00
Mark Otto 5429e71401 fixes #14913: badges in list group shouldn't have text shadow 2014-10-29 10:27:18 -07:00
Mark Otto aa85e762ea new homepage images 2014-10-29 10:02:51 -07:00
Mark Otto e07d741088 grunt 2014-10-29 09:54:43 -07:00
Mark Otto 34c2f46c8b Merge branch 'master' into v3.3.0 2014-10-29 09:45:09 -07:00
Mark Otto 22baa8153b fixes #14911: bump dependencies to fix customizer text from being cut shor 2014-10-29 09:42:00 -07:00
Mark Otto 22f9c8fc0a grunt 2014-10-29 08:58:51 -07:00
Mark Otto 94b59b57d6 version bump 2014-10-29 08:56:20 -07:00
Mark Otto a369a0a729 grunt 2014-10-29 08:51:05 -07:00
Chris Rebert 0a56bf7bf2 Merge pull request #14907 from twbs/justified-nav-wall
Add WebKit bug for #9774 to Wall of Browser Bugs
2014-10-28 23:22:46 -07:00
Chris Rebert 3fe6a04b90 Add WebKit bug for #9774 to Wall of Browser Bugs
[skip sauce]
2014-10-28 23:20:51 -07:00
Mark Otto a75c6d84e1 grunt 2014-10-28 23:08:42 -07:00
Mark Otto 2d20bba307 Merge pull request #14891 from twbs/cursor_var
Add variable for default cursor
2014-10-28 23:04:49 -07:00
Mark Otto aad0f00887 indentation and comment 2014-10-28 23:04:25 -07:00
Mark Otto c0c1588402 Merge pull request #14904 from twbs/customize-min-files
Customizer: include the minified files only on GitHub pages.
2014-10-28 23:02:48 -07:00
Mark Otto e528daf6d0 change back to not allowed cursor 2014-10-28 22:57:56 -07:00
Mark Otto c4b053a013 Merge branch 'master' into cursor_var 2014-10-28 22:57:26 -07:00
Mark Otto 45b59f4307 Reverts #14848, the overflow scrolling in the docs sidebar /cc @hnrch02 2014-10-28 22:57:16 -07:00
XhmikosR a515191afd Customizer: include the minified files only on GitHub pages. 2014-10-29 07:30:57 +02:00
XhmikosR 97ed62361e Merge pull request #14903 from twbs/fix-#14750
Fix customizer download with Firefox.
2014-10-29 07:13:48 +02:00
Heinrich Fenkart cf88a65f30 Fix customizer download with Firefox. 2014-10-29 06:48:00 +02:00
Chris Rebert 4e3ffa5629 Merge pull request #14902 from twbs/safari-justified-nav
Safari v8.0 still suffers from Justified Nav rendering bug
2014-10-28 21:26:00 -07:00
Chris Rebert c897f9d5f0 Safari v8.0 still suffers from Justified Nav rendering bug 2014-10-28 21:24:45 -07:00
Heinrich Fenkart bf2ad00ee0 grunt 2014-10-29 04:56:02 +01:00
Ben-Russell 68b771a057 Independently delegate data-api selectors
Fixes #14462.
Closes #14463 by merging it.
2014-10-29 04:54:53 +01:00
Heinrich Fenkart 94b544c229 grunt 2014-10-29 04:44:52 +01:00
Heinrich Fenkart 36e3d07c12 Merge pull request #14686 from twbs/collapsed-class-manual-invocation
Handle `collapsed` class on triggers even when manually invoked
2014-10-29 04:42:38 +01:00
Heinrich Fenkart ed3a65f084 Handle collapsed class on triggers even when manually invoked
Fixes #13636.
2014-10-29 04:34:05 +01:00
Heinrich Fenkart a7f58a8356 grunt 2014-10-29 04:30:31 +01:00
Heinrich Fenkart e851b8685a Merge pull request #14457 from hnrch02/button-set-val-after-event-loop
Change value of stateful button after event loop
2014-10-29 04:28:22 +01:00
Chris Rebert 2aac61ed17 Merge pull request #14901 from twbs/translate3d-ios-bug
Add `transform: translate3d(0, 0, 0)` iOS Safari bug to the Wall
2014-10-28 18:01:20 -07:00
Chris Rebert a7fd40950b Add transform: translate3d(0, 0, 0) iOS Safari bug to the Wall
Closes #14603 (again)
[skip sauce]
2014-10-28 17:54:59 -07:00
Mark Otto 2758cfecd8 Merge pull request #14885 from twbs/remove-baseurl
Remove `baseurl` as it doesn't serve any real purpose.
2014-10-28 17:21:04 -07:00
Chris Rebert ca63e387b9 Merge pull request #14899 from twbs/a-href-s
add missing hrefs to <a>s in docs+examples
2014-10-28 17:05:52 -07:00
Chris Rebert d87a636ff9 add missing href="#" to .btn-group-justified example
[skip sauce]
2014-10-28 16:10:43 -07:00
Chris Rebert 3eec86e2e5 add missing hrefs to <a>s in docs+examples 2014-10-28 16:05:32 -07:00
Chris Rebert 780c9b05fe reads more smoothly
For @XhmikosR
2014-10-28 13:11:35 -07:00
Chris Rebert 5589a82e80 update shrinkwrap 2014-10-28 11:35:21 -07:00
Chris Rebert 223d9b4b6b Merge branch 'master' into jonschlinkert/master 2014-10-28 11:10:51 -07:00
Mark Otto bf3be5a456 swap cursor not-allow for default, and use a variable for all disabled elements 2014-10-27 20:45:46 -07:00
Mark Otto a5497da5be grunt 2014-10-27 20:37:17 -07:00
Mark Otto 892f6e35b8 Merge branch 'master' of github.com:twbs/bootstrap 2014-10-27 20:30:02 -07:00
Chris Rebert de62dcaf53 Merge pull request #14886 from twbs/customizer-clearfix
Customizer: add clearfixes to rows and simplify .bs-customizer-input to .col-xs-4
2014-10-27 16:36:03 -07:00
Chris Rebert 5e1af10ecb Merge pull request #14888 from twbs/fix-14851
Increase timeouts in tooltip unit tests to avoid spurious Sauce failures
2014-10-27 16:29:31 -07:00
Chris Rebert 22e1f94b52 Increase timeouts in tooltip unit tests to avoid spurious Sauce failures
Fixes #14851
2014-10-27 15:53:43 -07:00
Chris Rebert ea86605203 Merge pull request #14887 from twbs/ios-8-sauce
Update Sauce iOS Safari test to iOS 8.0
[skip validator]
2014-10-27 15:41:08 -07:00
Mark Otto 0723060b89 Merge branch 'master' of github.com:twbs/bootstrap 2014-10-27 15:36:26 -07:00
Chris Rebert 0b9f69b9c8 Update Sauce iOS Safari test to iOS 8.0
[skip validator]
2014-10-27 15:26:55 -07:00
Chris Rebert 96801605a4 tweak banner of autogenerated CommonJS module 2014-10-27 15:20:55 -07:00
Chris Rebert a43d4767ba .bs-customizer-input => .col-xs-4 2014-10-27 15:02:21 -07:00
Chris Rebert 032a5ab72f add clearfix divs to customizer input rows 2014-10-27 15:00:30 -07:00
Chris Rebert af70ac8ae1 Tweak parser to ignore empty Less section docstrings; fixes #14878 2014-10-27 13:50:45 -07:00
XhmikosR 3908235e0f Remove baseurl as it doesn't serve any real purpose. 2014-10-27 19:35:59 +02:00
Mark Otto dcee894a8c grunt 2014-10-26 22:57:38 -07:00
Mark Otto c672f9e079 Merge pull request #14881 from bhamodi/white-space-optimization
Removed unnecessary new lines that were inconsistent with the current formatting style.
2014-10-26 22:56:35 -07:00
Baraa f0fd6df63a Removed unnecessary new lines that were inconsistent with current style. 2014-10-26 22:33:55 -07:00
Mark Otto 66bb0b4fc9 Merge branch 'master' into need-to-activate-animated-progressbar 2014-10-26 14:43:32 -07:00
Mark Otto 05c785bfae grunt 2014-10-26 14:42:06 -07:00
Mark Otto 657ff31c74 Merge branch 'need-to-activate-animated-progressbar' of github.com:twbs/bootstrap into need-to-activate-animated-progressbar
Conflicts:
	docs/_includes/components/progress-bars.html
	docs/assets/js/src/application.js
2014-10-26 14:17:14 -07:00
XhmikosR 554568a184 Merge pull request #14876 from twbs/fix-14875
bs-commonjs-generator.js: always use forward slashes in the require path.
2014-10-26 22:13:54 +02:00
Heinrich Fenkart 66e140db82 Docs: progress bars' animation now needs to be manually toggled
Refs #14409
2014-10-26 20:43:41 +01:00
Julian Thilo d40288b0c0 Merge pull request #14880 from danieljuhl/patch-2
Added link to danish translation of docs
2014-10-26 15:45:26 +01:00
Daniel Juhl b171451d77 Added link to danish translation of docs 2014-10-26 15:04:37 +01:00
jonschlinkert 3e9b461766 Replaces markdown.js with [remarkable](https://github.com/jonschlinkert/remarkable).
- remarkable has 100% support for [commonmark](http://jgm.github.io/CommonMark/spec.html)
  - [faster](https://github.com/jonschlinkert/remarkable/tree/master/benchmark)
  - easier to monkeypatch. this is a goal of ours, might be useful to you at some point given the custom tokenizing/parsing you're doing for documentation.
2014-10-26 06:38:10 -04:00
XhmikosR 37facee922 bs-commonjs-generator.js: always use forward slashes in the require path.
Since `path.resolve` is using backslashes on Windows, we ended up with different files. Just replace those with forward slashes.
2014-10-26 09:35:14 +02:00
XhmikosR bab3679d10 Losslessly compress apple-touch-icon.png.
6314 -> 6140 bytes

[ci skip]
2014-10-26 08:08:33 +02:00
Mark Otto 743aaf6100 fix clipboard button and examples 2014-10-25 22:39:01 -07:00
Heinrich Fenkart 97b4364452 Docs: progress bars' animation now needs to be manually toggled
Refs #14409
2014-10-26 06:17:05 +01:00
Mark Otto 5eb08f5d8d Merge pull request #14748 from twbs/apple-touch-icon
Docs: Use a 180x180 apple-touch-icon-precomposed.png.
2014-10-25 21:02:08 -07:00
Heinrich Fenkart 007fbdb66d Remove faulty unit test from 9740d8b
This would only work with transitions but since we disable them for unit tests, this delivers unreliably results.
2014-10-26 04:56:52 +01:00
Mark Otto af2fe1d76b new icon 2014-10-25 20:49:10 -07:00
Heinrich Fenkart 5da85f8e8b Follow-up to 9740d8b: fix small typo 2014-10-26 04:41:47 +01:00
Heinrich Fenkart 2cbb1d9374 grunt 2014-10-26 04:39:49 +01:00
Phil Hughes 9740d8bb69 Fix tooltip occasionally not hiding when using a hide delay
Fixes #14375.
Closes #14519 by merging it.
2014-10-26 04:38:18 +01:00
Mark Otto 783eced7ab follow up fix for #14837 /cc @hnrch02 2014-10-25 20:20:24 -07:00
Heinrich Fenkart 5f2e6fa58b grunt 2014-10-26 03:53:10 +01:00
Andrew S. Brown 1b3237629a Allow multiple delegated tooltip selectors on a node
Fixes #14167.
Closes #14189 by merging it.
2014-10-26 03:51:55 +01:00
Mark Otto 0521913a99 Merge pull request #13824 from jsdf/node-requirable
Allow npm package to be resolved via node module resolution
2014-10-25 19:43:05 -07:00
Heinrich Fenkart 44cc763229 grunt 2014-10-26 03:17:19 +01:00
Heinrich Fenkart 0e991ccba2 Follow-up to e8af21c: rm unused variable in unit test 2014-10-26 03:16:05 +01:00
Tadeu Zagallo e8af21cc9d Clear scrollspy selection above first section
Closes #13563 by merging it.
2014-10-26 03:14:08 +01:00
Mark Otto 2c2564faef Fixes #14736: Reverts the remaining progress bar min value overrides from #12848 2014-10-25 19:10:03 -07:00
Mark Otto 3fcd65af41 Fixes #14806: reset the text-shadow in the themed buttons 2014-10-25 18:57:27 -07:00
Mark Otto dbef67f198 fix validation 2014-10-25 18:53:43 -07:00
Mark Otto e795ea1084 Fixes #14791: document dropdown dividers 2014-10-25 18:44:55 -07:00
Mark Otto 9bf9aab132 grunt 2014-10-25 18:29:15 -07:00
Mark Otto 75620dadcc Merge branch 'master' of github.com:twbs/bootstrap 2014-10-25 18:28:07 -07:00
Mark Otto 41a26ced24 Fixes #14814: Use the link active bg variables for theme navbar gradients 2014-10-25 18:27:40 -07:00
Cameron Little 0755d529c6 Tabs plugin accessibility
Added support for `aria-expanded` toggling via JavaScript. Added
`aria-controls`, `aria-expanded`, `aria-labelledby` to tabs docs.

Added `aria-expanded` unit test for the tabs plugin.

See also #13554.

Closes #14154 by merging it.
2014-10-26 02:25:47 +01:00
Mark Otto 38217ee405 Merge branch 'pr/14801'
Conflicts:
	dist/css/bootstrap.css.map
	dist/css/bootstrap.min.css
	docs/assets/js/customize.min.js
	docs/assets/js/raw-files.min.js
	docs/dist/css/bootstrap.css.map
	docs/dist/css/bootstrap.min.css
2014-10-25 18:16:40 -07:00
Mark Otto 6e3c55a115 grunt 2014-10-25 18:13:50 -07:00
Mark Otto 42c2918372 Fix up margins and unnest code 2014-10-25 18:13:35 -07:00
Mark Otto a0e6bd96de grunt 2014-10-25 17:54:06 -07:00
Mark Otto 57b60e3a04 Merge pull request #14869 from lipis/glyphicon-eur
Added alias for euro -> eur
2014-10-25 17:50:08 -07:00
Mark Otto 018c1c0b6e Merge pull request #14871 from twbs/fix-#14810
Move "Copy" button in `code`.
2014-10-25 17:49:13 -07:00
Heinrich Fenkart e9d6f256c2 grunt 2014-10-26 01:59:25 +02:00
Heinrich Fenkart 1403748907 Merge pull request #14873 from twbs/revert-14569-scrollspy-ignore-invisible-targets
Revert "Scrollspy: ignore invisible list items"
2014-10-26 01:56:08 +02:00
Heinrich Fenkart c1f669e83b Revert "Scrollspy: ignore invisible list items" 2014-10-26 01:50:38 +02:00
XhmikosR db550a9235 Run grunt. 2014-10-25 14:12:21 +03:00
XhmikosR 0ad97ab446 Update node dependencies. 2014-10-25 14:12:20 +03:00
Panayiotis Lipiridis 49bcdcb0a8 Added alias for euro -> eur 2014-10-25 01:15:04 +02:00
XhmikosR 0ba39d45b4 Move "Copy" button in code. 2014-10-25 01:48:02 +03:00
Mark Otto a92aea5127 Merge pull request #14786 from andy-saint/links
Added link hover decoration variable
2014-10-24 13:28:46 -07:00
Mark Otto 80aca8c17e grunt 2014-10-24 13:27:28 -07:00
Mark Otto 79b38361ab 20px from bottom because the final frontier 2014-10-24 13:26:05 -07:00
Mark Otto 1979a311d4 Merge branch 'master' of github.com:twbs/bootstrap 2014-10-24 13:24:34 -07:00
Mark Otto 23e3995cec guhrunt 2014-10-24 13:24:28 -07:00
Mark Otto e631b721ec Merge pull request #14848 from knownasilya/patch-1
Make the docs' nav sidebar scrollable
2014-10-24 13:24:14 -07:00
Mark Otto dbd45f2f6c Merge pull request #14857 from twbs/fix-14856
Fix #14856
2014-10-24 12:09:44 -07:00
Jenn Dodd e8643ed8b3 Remove .media-object from docs.
Signed-off-by: Geoff Pleiss <gpleiss@pivotal.io>
2014-10-23 18:48:50 -04:00
Nicole Sullivan 919b4ccb15 Fixes #14799: Add vertical alignment of image in media component
Signed-off-by: Jenn Dodd <jedodd@pivotal.io>
2014-10-23 18:48:18 -04:00
Chris Rebert 3bea2a45ef Merge pull request #14847 from twbs/node-deps
Update node dependencies.
2014-10-23 13:53:35 -07:00
Chris Rebert 16a5f874d0 grunt update-shrinkwrap
[skip sauce]
2014-10-23 13:26:48 -07:00
XhmikosR d59b235242 Update node dependencies. 2014-10-23 13:26:48 -07:00
XhmikosR 2df585ad6b Merge pull request #14860 from twbs/comment-typo
Fix a small typo in comment.
2014-10-23 09:19:03 +03:00
XhmikosR f33ed634fc Docs: Use a 180x180 apple-touch-icon.png.
Refs:
https://github.com/h5bp/html5-boilerplate/commit/1c4fcf32142e888946db579df0efbb52542e0ed1
https://github.com/h5bp/html5-boilerplate/commit/345925f04384b59929d8d39ba428cef548921408

[ci skip]
2014-10-23 09:17:27 +03:00
XhmikosR 41dbc53b9b Fix a small typo in comment.
[ci skip]
2014-10-23 09:11:12 +03:00
Heinrich Fenkart 51f1f58be8 grunt 2014-10-23 06:39:51 +02:00
Heinrich Fenkart 9814256736 Merge pull request #14852 from twbs/jquery-version-check
Add jQuery version check to existing jQuery presence check
2014-10-23 06:15:36 +02:00
Heinrich Fenkart fe51148434 Merge pull request #14669 from vsn4ik/dropdown_event_target
Use e.target instead :focus selector.
2014-10-23 06:13:46 +02:00
Heinrich Fenkart 1604af041b Add jQuery version check to existing jQuery presence check
Fixes #14809.
Closes #14825.
2014-10-23 05:57:15 +02:00
Heinrich Fenkart e0cea19cbc grunt 2014-10-23 05:23:29 +02:00
Chris Rebert 57e4b58782 Merge pull request #14859 from twbs/fix-14853
Clarify order of tabs events
2014-10-22 18:57:43 -07:00
Chris Rebert 5c18722453 Merge pull request #14858 from twbs/fix-14802
Document .alert-dismissible .close restrictions
2014-10-22 18:40:43 -07:00
Chris Rebert b421dc9490 Clarify order of tabs events; fixes #14853
[skip sauce]
2014-10-22 18:38:18 -07:00
Chris Rebert 8d806b0ae5 Document .alert-dismissible .close restrictions; fixes #14802
[skip sauce]
2014-10-22 18:05:42 -07:00
Chris Rebert 58143b128b Fix #14856
[skip sauce]
2014-10-22 17:53:59 -07:00
Heinrich Fenkart 3c98dd35ba Fix IE8 unit test breakage introduced by #14767 2014-10-22 22:09:58 +02:00
Phil Hughes ab8dbc214e Implement hide and hidden events for tabs
Closes #14772.
2014-10-22 21:42:35 +02:00
Heinrich Fenkart 40c309b39a grunt 2014-10-22 21:39:37 +02:00
Heinrich Fenkart 95e0f48e3a Follow-up to e2cfbd5: Fix spaces in placement calculation 2014-10-22 21:38:34 +02:00
saranya.r e2cfbd5f2d Fixes tooltip misplacements in scrollable viewports with auto positioning
Fixes #14756.
Closes #14767.
2014-10-22 21:35:44 +02:00
Heinrich Fenkart 2bc5277b44 grunt 2014-10-22 21:04:18 +02:00
Patrick H. Lauke e1d40f7633 Add aria-pressed to single toggle buttons
also includes tiny fix/clarification to two existing unit tests for the
.active class, adding data-toggle=“button” explicitly to the tested
buttons

Closes #14819.
2014-10-22 21:02:19 +02:00
Heinrich Fenkart 60bb69acd5 Merge pull request #14829 from lipis/blank-lines
Added/removed blank lines in the docs for consitency
2014-10-22 19:46:40 +02:00
Ilya Radchenko fb70b13dc3 Allow to scroll the nav
Basically it's impossible to use the navigation if it's expanded. This will allow it to be scrollable so that the menus are accessable.
2014-10-22 11:56:12 -04:00
XhmikosR b2385016ec Merge pull request #14794 from twbs/docs-libs
Update customizer libraries
2014-10-22 18:52:05 +03:00
Chris Rebert 3a7d2691be Merge pull request #14830 from lipis/sort
Sorted various lines using atom/sort-lines
2014-10-22 08:45:02 -07:00
Chris Rebert fece552ce0 Merge pull request #14841 from twbs/role-button
add role="button" to a couple more dummy-anchor btns
2014-10-22 08:31:35 -07:00
Panayiotis Lipiridis aa8269cfb6 Sorted various lines using atom/sort-lines 2014-10-22 14:06:09 +02:00
Panayiotis Lipiridis a4f93895be Added/removed blank lines in the docs for consitency 2014-10-22 13:52:49 +02:00
XhmikosR 27478b966b Run grunt.
[ci skip]
2014-10-22 14:18:18 +03:00
XhmikosR 961ed36f01 Update Holder.js to v2.4.1.
[ci skip]
2014-10-22 14:18:13 +03:00
XhmikosR 40ce5670e7 Update JSZip to v2.4.0.
[ci skip]
2014-10-22 14:17:48 +03:00
XhmikosR 908190a6c5 Replace the unicode ellipsis symbol with 3 dots.
[ci skip]
2014-10-22 13:49:24 +03:00
Chris Rebert fc0eee7d47 Merge pull request #14838 from twbs/ie9-bizarre-table-hover-bug
Add min-height: 0% to .table-responsive; fixes #14837
2014-10-22 01:55:26 -07:00
Heinrich Fenkart 930c422f22 grunt 2014-10-22 04:28:16 +02:00
Heinrich Fenkart e811a24118 Don't fire show event if show is prevented because other element is still transitioning
Fixes #14844.
Closes #14845.
2014-10-22 04:25:05 +02:00
Chris Rebert f26dde085f add role="button" to a couple more dummy-anchor btns 2014-10-20 20:16:09 -07:00
Chris Rebert 15236f517f Add min-height: 0% to .table-responsive; Fixes #14837 2014-10-20 17:35:36 -07:00
Chris Rebert a096c3f6f6 Merge pull request #14836 from lipis/double
Removed double parentheses from expressions
2014-10-20 13:26:42 -07:00
Panayiotis Lipiridis b43a7a932e Removed double parentheses from expressions 2014-10-20 21:43:03 +02:00
Chris Rebert 8a6a253355 clarify that "build & test everything" Grunt task requires Jekyll
Refs #13131.
2014-10-14 11:41:30 -07:00
XhmikosR 87c1665528 Merge pull request #14790 from twbs/print
Print style updates
2014-10-13 20:39:50 +03:00
XhmikosR 9f82f27b9d Update less/print.less to the latest html5 bp version.
Also, keep the html5 boilerplate link in the built CSS.
2014-10-13 13:32:39 +03:00
Andrew Saint 86eac52cce Added link hover decoration variable 2014-10-12 10:40:10 +01:00
Heinrich Fenkart 4a89fd02b7 grunt 2014-10-10 08:35:56 +02:00
Jacob 42311c86c1 Merge pull request #14724 from twbs/fat-13816
fixes #13816 Modal dialog closes when dragging and releasing mouse button outside dialog
2014-10-09 20:56:21 -07:00
fat 4bbe80658a fixes #13816 Modal dialog closes when dragging and releasing mouse button outside dialog 2014-10-09 20:01:51 -07:00
XhmikosR 9299f5dfa2 Run grunt.
[ci skip]
2014-10-09 08:17:56 +03:00
XhmikosR a1a2dfebb5 Update less.js to v1.7.5. 2014-10-09 08:16:32 +03:00
XhmikosR 924c68f8bb Update FileSaver.js v2014-08-29. 2014-10-09 08:16:32 +03:00
XhmikosR 7ded2d185d Update Blob.js to v2014-07-24. 2014-10-09 08:16:31 +03:00
XhmikosR 07f1d89dd2 Run grunt. 2014-10-07 19:57:01 +03:00
XhmikosR 3bdafb1fa5 Merge pull request #14745 from twbs/twitter-https
Change Twitter links to use `https`.
2014-10-07 15:59:26 +03:00
XhmikosR 909a178362 Change Twitter links to use https. 2014-10-07 15:28:41 +03:00
XhmikosR b93ebeaa9c Merge pull request #14743 from twbs/normalize-302
Update normalize.css to v3.0.2.
2014-10-07 11:38:23 +03:00
XhmikosR 0ca71396b5 Update normalize.css to v3.0.2. 2014-10-07 11:29:59 +03:00
Heinrich Fenkart 61705d35fa Small clean-up in scrollspy unit test 2014-10-07 06:57:46 +02:00
Chris Rebert 7af7a5eadb Merge pull request #14728 from twbs/browser-bug-reporting
Add browser bug reporting links to CONTRIBUTING docs
2014-10-03 20:39:12 -07:00
Chris Rebert d361470487 tooltip unit tests: fix typo in test description 2014-10-03 16:26:53 -07:00
Chris Rebert 00b381ed9b Add browser bug reporting links to CONTRIBUTING docs; refs #13974 2014-10-03 15:16:46 -07:00
Maarten Van Hoof 44894a40e5 Add missing collapse JS files to dropdown visual test
Closes #14726.
2014-10-03 19:55:13 +02:00
Heinrich Fenkart 5bb08c50fa grunt 2014-10-03 08:17:49 +02:00
Jacob 2c562d2386 Merge pull request #14590 from twbs/carousel-keyboard-option
Add `keyboard` option to carousel
2014-10-02 23:11:14 -07:00
Mark Otto f75fc32462 grunt 2014-10-02 22:21:02 -07:00
Mark Otto 0f28bbf732 Merge branch 'master' of github.com:twbs/bootstrap 2014-10-02 22:18:46 -07:00
Mark Otto 82eaf3cdce Fixes #14251: Don't use hidden screen reader content in docs table so that Safari doesn't screw up overflow: hidden; content 2014-10-02 22:18:39 -07:00
Jacob 62344098af Merge pull request #14723 from twbs/fat-fix-14254
fix #14254  Modal Sometimes Does Not Appear after Multiple Displays in S...
2014-10-02 22:03:55 -07:00
fat 582bb7dcdc fix #14254 Modal Sometimes Does Not Appear after Multiple Displays in Safari 2014-10-02 21:52:53 -07:00
Jacob 3fda099f5c Merge pull request #14722 from twbs/fat-14646
Escape key should only close Dropdown
2014-10-02 21:26:38 -07:00
Mark Otto 76268c4b96 more grunt 2014-10-02 21:21:49 -07:00
Mark Otto f579b66b80 Merge branch 'master' of github.com:twbs/bootstrap
Conflicts:
	docs/assets/js/raw-files.min.js
2014-10-02 21:19:43 -07:00
Mark Otto 12091b9567 Fixes #14711: Account for list groups in collapsing panels 2014-10-02 21:19:20 -07:00
fat e5fc22ccfa Escape key should only close Dropdown 2014-10-02 21:11:17 -07:00
Heinrich Fenkart 68b80836cf grunt 2014-10-03 05:20:23 +02:00
Heinrich Fenkart 038a63b0eb Add keyboard option to carousel
Also adds unit tests for keyboard events.

Fixes #14468.
2014-10-03 05:16:31 +02:00
Mark Otto e7b5c4c18b Merge branch 'master' of github.com:twbs/bootstrap 2014-10-02 20:10:19 -07:00
Mark Otto 2aedd274f2 fixes #14714: don't use specific value in buttons docs 2014-10-02 20:09:23 -07:00
Jacob b702889613 Merge pull request #14626 from twbs/carousel-pause-hover-non-mobile
Only enable `pause: hover` for non-touch browsers
2014-10-02 20:09:20 -07:00
Chris Rebert 64a74e9354 Merge pull request #14716 from blankmaker/docs/fix-12563
Fix #12563: Elaborate that popover('show') checks title/content
2014-10-02 10:48:36 -07:00
David Nguyen 6fa7495333 Fix #12563: Reiterate that empty tooltips+popovers do not get displayed 2014-10-02 10:44:20 -07:00
Chris Rebert 33afb8a37b Merge pull request #14715 from watilde/update/grunt-contrib-jade
Update grunt-contrib-jade@0.13.0
2014-10-01 22:02:22 -07:00
Daijiro Wachi 2b70f94b15 Update grunt-contrib-jade version 2014-10-02 13:30:36 +09:00
Heinrich Fenkart 32162b16cb grunt 2014-10-01 21:10:33 +02:00
Chris Rebert 91581e8c6c Filed WebKit bug for #8350 2014-10-01 09:38:09 -07:00
Chris Rebert 89a873e204 Chromium bug #329574 seems to have been fixed 2014-10-01 09:19:29 -07:00
Chris Rebert 0e236586aa Chromium bug #282918 seems to have been fixed. 2014-09-30 19:38:00 -07:00
Nicole Bartelt 8f912a76cd Merge pull request #14709 from twbs/add-collapsed-default-class-to-accordion-toggle-example
Added default collapsed class to accordion
2014-09-30 18:05:11 -07:00
Nicole Bartelt 7398e1904b Added default collapsed class to the collapsed accordion html code example in the docs 2014-09-30 17:54:34 -07:00
Nicole Bartelt d8c02c7d29 Added default collapsed class to the collapsed accordion examples in the docs 2014-09-30 17:10:51 -07:00
Chris Rebert ef6378b9e8 Chromium bug #337668 seems to have been fixed. 2014-09-30 13:50:46 -07:00
Mark Otto 121b204b14 grunt 2014-09-26 13:48:31 -07:00
Mark Otto 36fdd29413 Fixes #14682: Remove quotes reset on blockquote elements as it causes rendering bugs 2014-09-26 13:47:26 -07:00
Mark Otto 8e25695d09 Fixes #14687: Include video element in responsive embed 2014-09-26 13:45:28 -07:00
Heinrich Fenkart 4e17a9be18 Merge pull request #14691 from Quy/master
Fix anchor link
2014-09-26 17:36:58 +02:00
Quy Ton ebe85270d9 Fix anchor link 2014-09-26 08:27:55 -07:00
Heinrich Fenkart a332c18c87 Add type to buttons in tooltip-viewport example 2014-09-26 00:14:48 +02:00
Heinrich Fenkart 0d04dcaebd grunt 2014-09-26 00:10:41 +02:00
Chris Rebert 89d437deda rm redundant grid column classes from responsive utilities demos 2014-09-25 09:09:19 -07:00
XhmikosR e26fcf470f Update dependencies.
Close #14664.
2014-09-25 18:39:42 +03:00
Chris Rebert 443a1b11ee tooltip.js: fix alignment 2014-09-24 21:27:56 -07:00
Chris Rebert c15fffc73b Merge pull request #14623 from twbs/fix-14561
Use container instead of parent for tooltip/popover auto-placement calcs
2014-09-24 21:13:25 -07:00
Chris Rebert 4d9890ea2e Use container instead of parent for tooltip/popover auto-placement calcs
Fixes #14561. Big thanks to @wickstargazer.

[skip validator]
2014-09-24 20:46:49 -07:00
Heinrich Fenkart 7ce6824748 grunt 2014-09-25 02:23:48 +02:00
Heinrich Fenkart 61a4fee626 Merge pull request #14599 from twbs/tooltip-outerDims-only-when-body
Tooltip: Rely on `getBoundingClientRect` for `width` and `height`
2014-09-25 02:08:30 +02:00
Heinrich Fenkart 24ae068f21 Tooltip: Rely on getBoundingClientRect for width and height
Fixes #14553.
2014-09-25 01:35:51 +02:00
Chris Rebert e70fc61eff fix typo in Tools section of Getting Started docs 2014-09-24 11:10:18 -07:00
Mark Otto 2858208038 Merge pull request #14673 from twbs/restore_sr_friendly_collapse
More screenreader friendly Collapse, Take 2
2014-09-24 10:38:01 -07:00
Mark Otto 73117814ea Merge pull request #14677 from twbs/bootlint-docs
Mention Bootlint in Getting Started docs under new Tools section
2014-09-23 22:03:35 -07:00
Mark Otto 6eb633775b Merge pull request #14674 from twbs/fix-14478
Document that the autofocus attribute doesn't work in modals.
2014-09-23 22:03:13 -07:00
Mark Otto e4f8684d16 Merge pull request #14675 from twbs/bug-report-guidelines
Mention HTML5 validator and Bootlint as part of troubleshooting steps
2014-09-23 22:02:36 -07:00
Mark Otto bfdd6d7683 Merge pull request #14676 from twbs/mention-14598-more
Also mention the "no justified navbars" limitation in the Nav docs
2014-09-23 22:02:11 -07:00
Chris Rebert afde59ef87 Mention Bootlint in Getting Started docs under new Tools section
[skip sauce]
2014-09-23 18:24:37 -07:00
Chris Rebert f334a15e9e Also mention the "no justified navbars" limitation in the Nav docs
Refs #14598
[skip sauce]
2014-09-23 18:06:39 -07:00
Chris Rebert 93f4426fed linkify reference to Nav component in Scrollspy docs 2014-09-23 17:18:15 -07:00
Chris Rebert a28e5a3024 Mention HTML5 validator and Bootlint as part of troubleshooting steps
Fixes https://github.com/twbs/bootlint/issues/67
2014-09-23 17:14:13 -07:00
Chris Rebert d6903e4239 Document that the autofocus attribute doesn't work in modals.
Closes #14478.
2014-09-23 16:53:09 -07:00
Heinrich Fenkart c37c1a6743 Only enable pause: hover for non-touch browsers
Fixes #11967.
2014-09-23 23:34:58 +02:00
Mark Otto 5d051736a4 Add brief note about justified navs being unsupported to fix #14598 2014-09-23 14:29:48 -07:00
Mark Otto 6cfd176ac3 Reverts 0ec05da0ee to bring back #14444 to fix #14348 (again) 2014-09-23 13:29:19 -07:00
vsn4ik bd66b12a94 Use e.target instead :focus selector. 2014-09-23 13:19:15 +04:00
Mark Otto ccecb7cde4 fixes #14654: callout for scrollspy-nav link 2014-09-22 20:27:23 -07:00
Mark Otto 5cba9ba564 Merge pull request #14667 from twbs/remove_translate3d
Remove translate3d
2014-09-22 14:56:35 -07:00
Mark Otto 4969c2055d grunt 2014-09-22 14:27:13 -07:00
Mark Otto cfa4f4db23 Merge branch 'master' into remove_translate3d 2014-09-22 14:25:52 -07:00
Mark Otto f540569e87 Fixes #14227, #14603: Drop translate3d for translate on navbars to avoid iOS rendering problems and ensure a more predictable base styling 2014-09-22 14:17:54 -07:00
Chris Rebert 27484b415f Merge pull request #14666 from twbs/fix-14663
Update docs to reflect that Safari percentages were fixed in v7.1 & iOS 8.0
2014-09-22 13:52:48 -07:00
Chris Rebert be79bef527 Safari percentages were fixed in v7.1 & iOS 8.0; fixes #14663 2014-09-22 13:48:05 -07:00
Chris Rebert 4a3931d4c5 document S3Cachefile.json 2014-09-22 13:22:34 -07:00
Heinrich Fenkart 36ebec5e76 grunt 2014-09-22 21:47:24 +02:00
Heinrich Fenkart acf3c0bf48 Merge pull request #14570 from twbs/remove-modal-open-after-backdrop-closed
Remove `.modal-open` class after backdrop is hidden
2014-09-22 21:44:39 +02:00
Chris Rebert 7441d3f4c5 Remove #8702 entry from Wall of browser bugs
A fix is shipping in Firefox 35: https://bugzilla.mozilla.org/show_bug.cgi?id=763671
2014-09-22 10:59:38 -07:00
Chris Rebert 7f415e20e7 Remove Safari percent rounding bug entry from Wall of browser bugs
Bug is fixed in OS X Safari v7.1
Refs #14663
2014-09-22 10:16:25 -07:00
Chris Rebert 1f329f8f17 the justified nav bug is still present in Safari v7.1 2014-09-21 15:34:57 -07:00
Mark Otto e33922eb06 grunt 2014-09-18 19:11:47 -07:00
Mark Otto 9ed65ab444 Fixes #14592: Add new variable for progress border radius 2014-09-18 19:09:51 -07:00
Mark Otto 98b745a06b grunt 2014-09-18 19:00:30 -07:00
Mark Otto 642fbf7e36 Fixes #14642: Add docs mention for blank checkboxes and radios 2014-09-18 19:00:26 -07:00
Mark Otto 75204aeafa grunt 2014-09-18 18:33:52 -07:00
Chris Rebert 0a5ba4aab2 Merge pull request #14641 from twbs/hide-passing
Make it easier to see failing tests in Sauce screencasts
2014-09-18 00:45:45 -07:00
Chris Rebert 6f6466330d Make it easier to see failing tests in Sauce screencasts
...by hiding passing tests in the list of tests.
2014-09-17 18:33:39 -07:00
Chris Rebert 3a1bf02ebf tweak grunt docs description 2014-09-17 17:48:40 -07:00
Chris Rebert 0013f12989 fix #14609 2014-09-17 17:36:07 -07:00
Heinrich Fenkart 3beeb32bb0 Follow-up to #14581: Use div instead of HTML5 section for IE8 2014-09-17 23:33:22 +02:00
saranya.r db9e8ee813 Fix tooltip misplacement with "auto top"
Fixes #14322.
Closes #14581.
2014-09-17 23:11:04 +02:00
Mark Otto c5c67d0f54 Fixes #14628, #14629: Add note to docs about grunt docs command 2014-09-17 11:28:24 -07:00
Heinrich Fenkart c4f431d262 Remove .modal-open class after backdrop is hidden
Fixes #14274.
Fixes #14632.
2014-09-17 09:21:09 +02:00
Chris Rebert 48c67095b0 Merge pull request #14577 from twbs/pagination-role-nav
Wrap .pagination & .pager in <nav> to improve accessibility
2014-09-16 13:01:00 -07:00
Heinrich Fenkart 5a5cf224e1 grunt 2014-09-16 05:59:09 +02:00
Heinrich Fenkart 152d9dfe2e Merge pull request #14610 from twbs/axe-tooltip-validate
Remove unused Tooltip#validate method
2014-09-16 05:41:17 +02:00
Heinrich Fenkart 16f9529ed1 grunt 2014-09-16 05:40:03 +02:00
Chris Rebert 0e18ee643b Merge pull request #14625 from twbs/svg-tooltip-test-fix
Must explicitly destroy tooltip in SVG unit test since its container is body
2014-09-15 20:05:24 -07:00
Chris Rebert 73e3db0a2f Must explicitly destroy tooltip in SVG unit test since its container is body.
Leaking tooltips across tests leads to confusion and sadness.
2014-09-15 20:01:06 -07:00
Chris Rebert 1783c70727 Merge pull request #14624 from twbs/type-button
modal docs: ensure all <button>s have an explicit `type` attribute
2014-09-15 15:49:22 -07:00
Chris Rebert ad00ad85fe modal docs: ensure all <button>s have an explicit type attribute
[skip sauce]
2014-09-15 15:43:34 -07:00
Chris Rebert 4f983bbaca Merge pull request #14611 from vsn4ik/add_install_with_npm
Add npm install info.
2014-09-15 11:55:54 -07:00
Chris Rebert 060c277c8d Merge pull request #14612 from vsn4ik/update_docs_links
Update github links in footer.
2014-09-13 10:37:29 -07:00
vsn4ik 73224f6564 Update github links in footer. 2014-09-13 12:59:42 +04:00
vsn4ik ca7c75d978 README.md: Add npm install info. 2014-09-13 12:50:36 +04:00
Heinrich Fenkart e094d470d4 Remove unused Tooltip#validate method 2014-09-13 09:39:15 +02:00
Heinrich Fenkart d0f76e416c grunt 2014-09-13 04:46:31 +02:00
Peter West 4c98507010 Correctly selects arrow placement for a tooltip
Fixes #13696.
Fixes #13696.
Fixes #14197.
Closes #13718.
2014-09-13 04:25:34 +02:00
Heinrich Fenkart 0a4c39dc40 Teh grunt
https://www.youtube.com/watch?v=L-4VxEtWyRo
2014-09-13 03:15:04 +02:00
Heinrich Fenkart a3a04bfe53 Merge pull request #14571 from twbs/properly-hide-tooltip-on-destroy
Properly fire hidden event when tooltip is destroyed
2014-09-13 03:11:03 +02:00
Heinrich Fenkart 76762169c3 Properly fire hidden event when tooltip is destroyed
Fixes #13031.
2014-09-13 03:07:32 +02:00
Chris Rebert 0fe48a78c1 Merge pull request #14578 from twbs/accordion-panel-labelledby
add aria-labelledby to accordion example to improve accessibility
2014-09-12 17:52:42 -07:00
Heinrich Fenkart 0cf94b82ee grunt 2014-09-13 02:42:18 +02:00
Chris Rebert 4849ec1cea add aria-labelledby to accordion example to improve accessibility 2014-09-12 17:40:44 -07:00
Heinrich Fenkart a97db64881 Merge pull request #14569 from twbs/scrollspy-ignore-invisible-targets
Scrollspy: ignore invisible list items
2014-09-13 02:29:28 +02:00
Heinrich Fenkart 40f889df2a Merge pull request #14353 from hnrch02/collapse-count-collapsing-as-active
Collapse: count `.collapsing` elements as actives; closes #13447
2014-09-13 02:28:25 +02:00
Chris Rebert 60164bc4ba Merge pull request #14579 from twbs/accordion-heading-role-tab
add role="tab" to .panel-heading-s in accordion example to improve accessibility
2014-09-12 17:23:23 -07:00
Heinrich Fenkart cabace78da G R U N T 2014-09-11 23:43:27 +02:00
Heinrich Fenkart 6e206f5e8f Merge pull request #14492 from twbs/ie8-getBoundingClientRect
Handle lack of .width and .height from getBoundingClientRect() in IE8
2014-09-11 23:11:45 +02:00
Chris Rebert 56c8c1bb55 add role="tab" to .panel-heading-s in accordion example to improve accessibility 2014-09-08 23:33:26 -07:00
Chris Rebert b2088366a3 Wrap .pagination & .pager in <nav> to improve accessibility 2014-09-08 20:52:07 -07:00
Heinrich Fenkart 97027a2f6f Merge pull request #14573 from twbs/indom-check-cross-doc
Make inDom check of tooltip cross document compatible
2014-09-09 03:14:12 +02:00
Heinrich Fenkart 759a95b0fe Make inDom check of tooltip cross document compatible
Fixes #14483
2014-09-09 03:03:14 +02:00
James Friend 3440074bb7 code style improvement 2014-09-09 08:50:35 +08:00
James Friend 4ba4b7c3cf added banner about generated file 2014-09-09 08:47:23 +08:00
samme e29c75041e Make affix accept 0 as offsetTop or offsetBottom
Fixes #12815.
Closes #14363.
2014-09-09 01:32:42 +02:00
Heinrich Fenkart 9b9e2f5d13 grunt and missing new line 2014-09-09 01:23:48 +02:00
Patrick H. Lauke fb1ca10b99 ARIA support for collapse
Added handling of aria-expanded=true/false to collapse.js, updated
documentation to include advice on making expand/collapse controls
accessible, updated examples and javascript documentation to use
aria-expanded and aria-controls (when targetting single collapsible
element, using ID rather than class selector)

Closes #14147.
Closes #14153.
2014-09-09 01:19:20 +02:00
Heinrich Fenkart d15444d15e Scrollspy: ignore invisible list items
Fixes #13071
2014-09-09 00:18:18 +02:00
Heinrich Fenkart 9702579aeb run grunt 2014-09-09 00:12:33 +02:00
Heinrich Fenkart 859ddc11fb Merge pull request #14242 from hnrch02/remove-aria-describedby-later
Remove `aria-describedby` attribute later
2014-09-08 23:14:50 +02:00
Heinrich Fenkart e4b55ded5c Merge pull request #13928 from SGinTech/sgit_collapseEventOrder
Ensure that hidden event is sent when content is really hidden (collapsi...
2014-09-08 23:12:27 +02:00
Heinrich Fenkart c9602c29c3 grunt 2014-09-08 22:41:45 +02:00
Chris Rebert f6264b444a Merge branch 'collinanderson/whitespace' 2014-09-08 13:36:11 -07:00
Chris Rebert 1e6849dd58 clean whitespace
Thanks to @collinanderson
Closes #14567
2014-09-08 13:35:07 -07:00
Heinrich Fenkart 787404e090 Merge pull request #14287 from hnrch02/revert-13855-modal-mousedown
Revert #13855 due to #14263
2014-09-08 22:23:43 +02:00
Mark Otto 6cec0399d0 grunt 2014-09-08 11:40:23 -07:00
Heinrich Fenkart 285feb4dd7 Merge pull request #14559 from hnrch02/properly-hide-btngroup-checkbox-n-radio
Properly hide checkbox and radio inputs in button groups
2014-09-08 20:32:20 +02:00
Chris Rebert cd3c54d281 Merge pull request #14565 from twbs/hnrch02
Add @hnrch02 to Core Team members list
2014-09-08 11:09:15 -07:00
Mark Otto a3b8189927 Merge pull request #14566 from twbs/fixes_14542
Cleaned up fix for #14511 (input border-radii variables)
2014-09-08 11:08:35 -07:00
Chris Rebert 28f4632e6c Add @hnrch02 to Core Team members list 2014-09-08 11:05:32 -07:00
Mark Otto c12928abdb grunt 2014-09-08 11:04:47 -07:00
Marat Abdullin 0d8f5fffa5 Variables for large and small input border radiuses 2014-09-08 11:04:12 -07:00
Mark Otto 994d0b20aa Merge pull request #14564 from twbs/fixes_14557
Fixes #14557: .form-group margin in .navbar-form
2014-09-08 11:03:00 -07:00
Mark Otto c6d7d71549 Fixes #14557: Reset the bottom margin on .form-group:last-child in .navbar-form to prevent extra spacing 2014-09-08 10:57:50 -07:00
Mark Otto 5578733238 Merge pull request #14563 from twbs/fixes_14319
Fixes #14319: Jumbotron reflow
2014-09-08 10:45:18 -07:00
Chris Rebert 8bb1a3fc75 customizer: minor cleanup of IE8 error messaging code
[skip sauce]
2014-09-08 10:44:28 -07:00
Mark Otto f2783fbf83 Fixes #14319: Prevent jumbotron reflow by ensuring padding of .container isn't interferred with by .jumbotron side padding 2014-09-08 10:29:45 -07:00
Mark Otto 48a1308e5d grunt 2014-09-08 10:23:25 -07:00
Heinrich Fenkart 475152a9a1 Properly hide checkbox and radio inputs in button groups
`pointer-events: none;` for modern browsers (including IE11+), `clip: rect(1px, 1px, 1px, 1px);` for everything else.

Fixes #14137
2014-09-08 14:56:29 +02:00
Chris Rebert 7f56233862 Merge branch 'stefansundin/master' 2014-09-07 23:07:38 -07:00
Stefan Sundin f25181615e Fix bug not re-calculating scrollbar width when opening modal.
If opening a modal when a scrollbar is present, closing it, then
resizing the window so the scrollbar disappears, then opening the
modal again, the content would shift. This fixes the problem by
always calculating the scrollbar width every time a modal is opened.

Closes #14357.
2014-09-07 23:06:37 -07:00
XhmikosR 5b9fcea9f2 Run grunt. 2014-09-08 09:04:33 +03:00
XhmikosR 5befcb991c Update dependencies. 2014-09-08 09:03:26 +03:00
Chris Rebert 989dafb153 Handle lack of .width and .height from getBoundingClientRect() in IE8
Closes #14093
Correction to #14090
Relevant docs: https://developer.mozilla.org/en-US/docs/Web/API/Element.getBoundingClientRect#Browser_compatibility
2014-09-07 22:58:33 -07:00
Jacob c22b270582 Merge pull request #14273 from sgonyea/master
Fix hover-popover/tooltip flickering when mouse re-enters
2014-09-07 10:36:45 -07:00
Mark Otto 9f5660c3e3 Fixes #14545: Avoid strange formatting on vendor prefixing for placeholder 2014-09-06 21:25:33 -07:00
Mark Otto c20d00cf05 Merge pull request #14546 from twbs/address-14541
Address #14541 by tweaking badge docs
2014-09-06 21:21:13 -07:00
Mark Otto f5a05fe9e9 Merge pull request #14543 from twbs/validation-docs
Add section to docs explaining our stance on validators
2014-09-06 12:24:45 -07:00
Chris Rebert bb8ca6b786 Address #14541 by tweaking badge docs
* move unrelated .btn-primary example out of the pills subsection
* remove excessive .nav-stacked example
2014-09-05 16:04:56 -07:00
Chris Rebert c447cc7bc1 Add section to docs explaining our stance on validators 2014-09-05 11:59:04 -07:00
Mark Otto 5603311acd Merge pull request #14535 from gitname/patch-1
Fixed typos involving apostrophes
2014-09-04 22:40:37 -07:00
gitname 83daf95c64 Fixed typos involving apostrophes
Added apostrophes to 3 words to indicate possession (i.e. ownership of something) instead of plurality (i.e. multiples of something).
2014-09-04 22:10:19 -07:00
Mark Otto 5b7a5f84d4 Fixes #14437: Round the corners of table rows in panels as well as the cells 2014-09-04 19:06:01 -07:00
Chris Rebert ce7363e0db Merge branch 'thr3-arendt/patch-1' 2014-09-04 16:59:13 -07:00
thr3-arendt de0f78bc8e Replace nonexistent .col-6 classes in offcanvas example with .col-xs-6
Fixes #14500
2014-09-04 16:58:50 -07:00
Mark Otto 411a8408a2 Merge pull request #14531 from twbs/doc-14528
add entry for #14528 to Wall of Browser Bugs
2014-09-04 16:48:27 -07:00
Chris Rebert c4a8d76177 add entry for #14528 to Wall of Browser Bugs 2014-09-04 12:30:38 -07:00
Chris Rebert af5f2213f0 Merge pull request #14527 from twbs/firefox-disabled-bug
Add Wall of Browser bugs entry for #793
2014-09-03 19:00:29 -07:00
Chris Rebert b9bfc74c62 Add Wall of Browser bugs entry for #793
Also, link to the Mozilla bug in the relevant callout.
2014-09-03 16:50:47 -07:00
Chris Rebert 037ccb424b Merge pull request #14497 from BBosman/clone-depth
Set git clone depth to 10 for Travis to make it faster
2014-09-02 22:39:52 -07:00
Chris Rebert 3df6ae66c7 Merge pull request #14516 from twbs/fix-14509
Document that fieldset[disabled] is somewhat broken in IE11
2014-09-02 22:37:05 -07:00
Chris Rebert e646889fd6 document that fieldset[disabled] is somewhat broken in IE11; fixes #14509 2014-09-02 15:23:15 -07:00
Mark Otto e37e06d73e Fixes #14443: Only transition what needs transitioning for thumbnails to avoid Safari/Chrome render bug 2014-09-01 12:48:19 -07:00
Bas Bosman 0531d1a776 Set git clone depth to 10 for Travis to make it faster 2014-09-01 10:18:49 +02:00
XhmikosR fe896923fc Update grunt-jscs. 2014-08-30 08:43:44 +03:00
Chris Rebert 59d7772daa Merge pull request #14488 from vsn4ik/gruntfile_copy_task
Gruntfile.js: Simplify copy task.
2014-08-29 20:08:49 -07:00
vsn4ik 1965f032ca Gruntfile.js: Simplify copy task. 2014-08-30 01:20:48 +04:00
Mark Otto e99866447b Merge pull request #14482 from twbs/doc-14362
Document that input groups weren't intended for use with <textarea>s
2014-08-29 11:45:09 -07:00
Chris Rebert 629fe63291 Document that input groups weren't intended for use with <textarea>s
Refs #14362
2014-08-28 19:55:23 -07:00
Mark Otto 551306fe9d grunt 2014-08-28 17:22:08 -07:00
Scott Gonyea aac0e16452 Fix hover-tooltip flickering when mouse re-enters
- is(':visible') seems to be the only reliable check, without a refactoring of how hoverState is used
- tests need improvement
2014-08-28 17:17:50 -07:00
Mark Otto 28dd4a4407 mention #14320 in browser bugs 2014-08-28 17:10:44 -07:00
Mark Otto 36f098dc07 Merge pull request #14472 from mrduguo/master
fix nav links to end with / to avoid 301 redirect
2014-08-28 16:57:40 -07:00
XhmikosR d869a5fb62 Update QUnit to v1.15.0. 2014-08-28 09:38:53 +03:00
Mark Otto 783e001786 grunt 2014-08-27 23:35:54 -07:00
Mark Otto fe19211e4d Finish reverting #14444 2014-08-27 23:34:46 -07:00
Mark Otto 72ddad6fc8 Fixes #14439: Add static tooltip example to docs 2014-08-27 23:33:03 -07:00
Mark Otto 0ec05da0ee Undo the collapse visibility changes since it breaks our collapse plugin 2014-08-27 23:31:34 -07:00
Mark Otto aa25ce779d Fixes #14329: Fixed list-groups nested inside of collapsing panels, from @apexskier 2014-08-27 23:17:37 -07:00
Mark Otto 0a816e009f Fixes #14337: Round .jumbotron corners within .container and .container-fluid 2014-08-27 23:01:58 -07:00
Mark Otto a25b866ec7 Merge pull request #14444 from twbs/sr_friendly_hidden_content
More screenreader friendly hidden content
2014-08-27 22:53:21 -07:00
Mark Otto 190452a36d typo 2014-08-27 22:40:46 -07:00
Mark Otto f4eefd28d1 Merge branch 'master' into sr_friendly_hidden_content
Conflicts:
	dist/css/bootstrap.css.map
	dist/css/bootstrap.min.css
2014-08-27 22:38:46 -07:00
Mark Otto 1ebc7e62a8 grunt 2014-08-27 22:37:10 -07:00
Mark Otto d14d60e04c Merge pull request #14452 from vsn4ik/update_print_less
Update print.less from source (html5-boilerplate).
2014-08-27 22:30:53 -07:00
Mark Otto fcf26d0ef6 Merge pull request #14465 from kaime/master
Make `popover-arrow-color` default to `popover-bg`
2014-08-27 22:29:39 -07:00
Mark Otto f5890adb17 grunt 2014-08-27 22:25:24 -07:00
James Friend 2bc417732c code style fixes 2014-08-28 09:54:51 +08:00
James Friend 015ee2ed74 pulled output path out to gruntfile 2014-08-28 09:39:41 +08:00
James Friend 9aeaf19b1d Merge remote-tracking branch 'upstream/master' into node-requirable
Conflicts:
	Gruntfile.js
2014-08-28 09:32:08 +08:00
James Friend e7991a9a1e generate commonjs/npm entrypoint module via grunt task 2014-08-28 09:24:23 +08:00
Guo Du 57c152e8ff fix nav links to end with / to avoid 301 redirect 2014-08-27 21:37:55 +01:00
Jaume Alemany 3ce160754c Make popover-arrow-color default to popover-bg 2014-08-27 14:20:49 +02:00
XhmikosR 35f09315ed Merge pull request #14453 from vsn4ik/less_empty_lines
Less: Remove empty lines and blanks.
2014-08-26 19:07:00 +03:00
XhmikosR 4372d49911 Merge pull request #14458 from twbs/npm-deps
Update dev dependencies.
2014-08-26 19:04:46 +03:00
XhmikosR ac132da789 Update Ruby dependencies. 2014-08-26 13:54:22 +03:00
XhmikosR 701c27e22e Update dev dependencies. 2014-08-26 13:51:05 +03:00
XhmikosR b1bb57360c Specify cursor: pointer for #import-manual-trigger. 2014-08-26 13:12:54 +03:00
Heinrich Fenkart c207b5b66b Change value of stateful button after event loop
Fixes #14450
2014-08-26 03:02:29 +02:00
vsn4ik a03d269287 Less: Remove empty lines and blanks. 2014-08-26 02:24:09 +04:00
vsn4ik 4c15fa8642 Update print.less from source (html5-boilerplate). Simplyfy table style. 2014-08-26 02:04:34 +04:00
Chris Rebert 55dd964690 Merge pull request #14451 from Siecje/patch-1
Updating IRC channel
2014-08-25 12:38:53 -07:00
Siecje 22edcc8d50 Updating IRC channel 2014-08-25 12:14:11 -04:00
Julian Thilo 1517bea4e2 Update link to Run Jekyll on Windows guide 2014-08-25 02:18:58 +02:00
Mark Otto 0140198699 grunt 2014-08-23 13:46:28 -07:00
Mark Otto a9cd2ce4c9 Merge branch 'master' of github.com:twbs/bootstrap 2014-08-23 13:44:41 -07:00
Mark Otto 32a6d9b404 Full grunt 2014-08-23 13:43:41 -07:00
Mark Otto 56bb92ac4f Fixes #14386: Reset font, text, and line-height properties in popovers 2014-08-23 13:42:45 -07:00
Mark Otto 7e8f10fd1a Merge pull request #14408 from vsn4ik/dropdown_menu_disabled_style
Refactor dropdown.less. Optimize ".dropdown-menu > .disabled" selector.
2014-08-23 13:39:10 -07:00
Mark Otto 3c0e2e28f8 fixes #14425: remove invalid css property 2014-08-23 13:37:29 -07:00
Mark Otto 28c907f635 fixes #14441 2014-08-23 13:35:39 -07:00
Mark Otto 4fc96e8029 grunt 2014-08-23 13:35:22 -07:00
Mark Otto f36e1c467c Merge branch 'master' of github.com:twbs/bootstrap 2014-08-23 13:31:56 -07:00
Mark Otto 9a39ee90b4 Fixes #13943 again: lighten links, and text, in navbar. Still not 100% compliant, but it's better. 2014-08-23 13:26:37 -07:00
Mark Otto e3c2640782 Merge pull request #14382 from vsn4ik/https_links_in_readme
README.md: Change links to use HTTPS
2014-08-23 13:12:47 -07:00
Mark Otto 875006d08c Merge pull request #14417 from twbs/fat-14282
fixes #14282 - Already Visible collapse gets closed when …
2014-08-23 12:58:24 -07:00
Mark Otto dfa2759a52 Fixes #14348: Add visibility styles to collapse and tab content to match .hidden 2014-08-23 12:25:27 -07:00
Mark Otto f265137c05 Fixes #14440: Remove unused nav variable 2014-08-23 12:21:17 -07:00
Mark Otto 6a0eb4e6bd grunt 2014-08-23 12:19:36 -07:00
Julian Thilo 70a5b849e8 Merge pull request #14433 from KostyaTretyak/patch-1
Ukrainian site migrates on twbs.docs.org.ua
2014-08-21 16:06:45 +02:00
KostyaTretyak c954ba4545 Ukrainian site migrates to twbs.docs.org.ua 2014-08-21 13:42:30 +03:00
Chris Rebert 9efedf8f7b Merge pull request #14406 from twbs/nav-tag-for-navbar
consistently use <nav> instead of <div> for .navbar in docs
2014-08-20 21:48:59 -07:00
Jacob c95aa97c03 Merge pull request #14244 from programcsharp/master
Remove popover content with .children().detach() instead of .empty()
2014-08-18 20:06:02 -07:00
fat 9c2e54bfec fixes #14282 - Already Visible collapse gets closed when .collapse('show') is called 2014-08-18 19:58:19 -07:00
Chris Rebert ea0e1606dc Assume Element.getBoundingClientRect() exists; Fixes #14093
[skip validator]
2014-08-17 16:08:49 -07:00
Chris Rebert e7d5905f38 grunt 2014-08-17 15:44:25 -07:00
Chris Rebert 71c2c372f6 Fix #14411 by setting JSON Content-Type for Gist API request 2014-08-17 15:41:53 -07:00
vsn4ik 8d7700b2b6 Use single .dropdown-menu 2014-08-16 19:20:13 +04:00
Chris Rebert 6b7142212f consistently use <nav> instead of <div> for .navbar in docs 2014-08-15 18:09:05 -07:00
Chris Rebert 31f7cb152e Merge pull request #14402 from Joshua-Anderson/travis-time
Remove `time` from `.travis.yml`.
2014-08-15 11:52:50 -07:00
Joshua Anderson 325defb63f Remove time from .travis.yml.
Travis CI now does this automatically.
2014-08-15 11:37:32 -07:00
Chris Rebert 8194668c52 Merge pull request #14316 from hnrch02/use-closest-alert
Use closest `.alert` for alert dismissal; closes #14306
2014-08-15 11:30:35 -07:00
Chris Rebert a9b7ba419a Merge pull request #14394 from twbs/gruntfile-bower
Fix `grunt dist` under Bower by separating docs into separate task
2014-08-15 10:52:28 -07:00
Chris Rebert c8f1dd7e97 Merge pull request #14396 from twbs/retry-npm
Add retries to uncached-npm-install.sh
2014-08-15 10:43:40 -07:00
Julian Thilo 32aa9b24a1 Merge pull request #14339 from budnik/patch-3
fix typo in ukrainian doc description
2014-08-15 11:48:29 +02:00
Chris Rebert ff18f380d5 Add retries to uncached-npm-install.sh
Pull requests are frequently failing on Travis due to npm flakiness
(I think) travis_retry isn't available in indirect subshells like this
2014-08-14 17:59:55 -07:00
Chris Rebert 06c4002019 Gruntfile: Fix #13949 by separating docs into separate task & refactoring 2014-08-14 11:42:13 -07:00
vsn4ik b6fe7c43e3 README.md: Аmendment links to use HTTPS. 2014-08-14 14:26:47 +04:00
Chris Rebert 559f16572f Gruntfile: switch cssmin & jade tasks from files over to src & dest
Refs #14388.
2014-08-13 17:36:13 -07:00
vsn4ik da8daa667c Gruntfile.js: Use user-friendly properties. 2014-08-13 23:12:09 +04:00
Chris Rebert a8437f0d23 Merge pull request #14325 from hnrch02/cleanup-buttons-docs
Clean up buttons documentation
2014-08-08 12:23:55 -07:00
Heinrich Fenkart 436015c191 Collapse: count .collapsing elements as actives; closes #13447 2014-08-08 01:23:50 +02:00
Дмитро Будник 8c3f095fa4 fix typo in ukrainian doc description 2014-08-06 15:56:56 +03:00
Heinrich Fenkart 2c625c7d1a Clean up buttons documentation 2014-08-06 06:10:51 +02:00
Chris Rebert b4895a0d6d Merge pull request #14336 from michaeljayt/patch-2
Make grunt concat js files when watching
2014-08-05 19:28:22 -07:00
Michael J. d80be40d04 Make grunt concat js files when watching 2014-08-06 10:22:16 +08:00
Heinrich Fenkart d9f1ea8252 Small wording tweak in alert docs 2014-08-06 03:50:10 +02:00
Chris Rebert ae20895fd0 Merge pull request #14334 from twbs/update-autoprefixer
bump grunt-autoprefixer to ~1.0.0
2014-08-05 18:46:02 -07:00
Chris Rebert c3b6de2d44 Merge pull request #14332 from hnrch02/clarify-alert-removal
Document that alerts are removed from the DOM when closed; fixes #14318
2014-08-05 18:42:01 -07:00
Chris Rebert b3e8001be2 bump grunt-autoprefixer to ~1.0.0 2014-08-05 18:38:29 -07:00
Heinrich Fenkart ddadb2cf65 Document that alerts are removed from the DOM when closed; fixes #14318 2014-08-06 02:42:03 +02:00
James Friend 689faaf16f added a separate npm-specific main file 2014-08-05 10:51:31 +08:00
Mark Otto 9096c20021 grunt 2014-08-04 14:05:12 -07:00
Heinrich Fenkart 75bffd84ae Use closest .alert for alert dismissal; closes #14306 2014-08-04 19:33:42 +02:00
Heinrich Fenkart dca8afa333 Remove aria-describedby attribute later
Fixes #14241
2014-08-04 19:21:49 +02:00
Mark Otto 14e8ec2514 unfuck all that because lol dependencies 2014-08-04 10:14:11 -07:00
Mark Otto 6c87895eec fixes #14310: reset .active as well for button links 2014-08-04 10:01:20 -07:00
Julian Thilo fd6c00d141 Merge pull request #14315 from twbs/browser_bug_applet
Add Wall of Browser Bugs entry for #14124
2014-08-04 18:48:04 +02:00
Julian Thilo f7acc1c77c Add Wall of Browser Bugs entry for #14124
[skip sauce]
2014-08-04 18:46:27 +02:00
Chris Rebert fb2e9fe30c Merge branch 'KyleMit/add-default-settings-documentation' 2014-08-04 09:08:07 -07:00
Kyle 333af7d371 Add docs for how to change default JS plugin settings
Closes #14250.
2014-08-04 09:07:19 -07:00
Mark Otto 77b0dc69eb Merge pull request #14311 from hnrch02/autoprefixer-for-13074
Follow-up to #13074: use spec syntax instead of deprecated mixins
2014-08-03 22:12:52 -07:00
Heinrich Fenkart b10b373c60 Follow-up to #13074: use spec syntax instead of deprecated mixins 2014-08-04 06:19:42 +02:00
Mark Otto 6424acf69a Fixes #14234: Reset the hack IE8-10 with another hack just for IE11 for temporal inputs and line-height 2014-08-02 21:16:32 -07:00
Mark Otto 9d0872b748 Fixes #14251: Remove the -webkit-overflow-scrolling to prevent Safari from screwing up widths 2014-08-02 19:05:46 -07:00
Mark Otto 67d39404a2 grunt 2014-08-02 18:41:00 -07:00
Mark Otto c7970106a2 Merge pull request #13074 from haydenbleasel/master
WebKit CSS3 carousel transforms for supported devices
2014-08-02 18:40:21 -07:00
Mark Otto 033f1654b0 Fixes #14296: document a table caption example 2014-08-02 14:49:48 -07:00
Mark Otto b9e6848dc8 Fixes #14253: Add borders for tables that follow bodies in panels 2014-08-02 13:55:02 -07:00
Mark Otto feed9aed5b Fixes #13202: Always use overflow: auto; on .table-responsive to prevent content breaking out of containers 2014-08-02 13:05:11 -07:00
Chris Rebert 557d3e527c Firefox 31 has been released, so rm pre-v31 browser bug entry 2014-08-01 15:04:55 -07:00
Jacob 8bf48121a0 Merge pull request #14061 from hnrch02/fix-13656
Expose transition durations on plugin constructors; closes #13656
2014-08-01 12:50:03 -07:00
Chris Rebert 948a74662f Merge pull request #14299 from twbs/fix-14076
Add unit test for tooltips on SVG elements
2014-08-01 12:10:46 -07:00
Chris Rebert 08393bf68a Fix #14076: Add unit test for tooltips on SVG elements
[skip validator]
2014-08-01 12:10:00 -07:00
XhmikosR de1d8c36ad Run grunt. 2014-08-01 19:49:54 +03:00
XhmikosR 1625102671 Remove layout: nil.
It throws a warning with the latest Jekyll.
2014-08-01 19:45:11 +03:00
Chris Rebert 232b61a3ce Merge pull request #14297 from twbs/bump-deps
Bump dependencies
2014-07-31 14:28:32 -07:00
Chris Rebert 553c5d6f86 update shrinkwrap 2014-07-31 14:14:24 -07:00
Chris Rebert 460294ff77 bump grunt-saucelabs to ~8.2.0 2014-07-31 13:16:04 -07:00
Chris Rebert 80ca659154 bump grunt-contrib-clean to ~0.6.0 2014-07-31 13:15:27 -07:00
Chris Rebert 87ce371018 Merge branch 'thomaswelton/11004-import-config' 2014-07-31 11:46:17 -07:00
Thomas Welton 9739271c04 Add drag and drop config import; closes #11004
Closes #13790 by merging a rebased version of it.
2014-07-31 11:45:21 -07:00
Chris Rebert f026cfb831 Merge pull request #14069 from twbs/fix-13818
Use more robust "find next carousel item" logic
2014-07-31 11:36:56 -07:00
Chris Rebert cbba8e53df Fix #13818 by using more robust "find next carousel item" logic
Also adds another test for #9461: carousel next/prev should ignore non-items
2014-07-31 11:36:24 -07:00
Chris Rebert d38fd028d6 Merge pull request #14290 from michaeljayt/patch-1
grunt now watch files in all folders/subfolders
2014-07-30 20:07:27 -07:00
Michael J. 0c03d0c273 grunt now watch files in all folders/subfolders 2014-07-31 10:21:56 +08:00
Heinrich Fenkart 18c0a1c977 Revert "Use mousedown instead of click for backdrop click detection; fixes #13816" 2014-07-30 23:54:25 +02:00
Chris Rebert fc1db2e74b Merge pull request #14264 from hnrch02/document-placement-args
Document arguments passed to `placement` function of tooltip/popover
2014-07-28 17:47:51 -07:00
Heinrich Fenkart 852d0d1144 Document arguments passed to placement function of tooltip/popover
Closes #14255
2014-07-29 02:29:41 +02:00
Chris Rebert 86d698f4e4 Merge pull request #14256 from twbs/fix-14224
Correctly doc args passed to function vals for `title` & `content` options of tooltips+popovers
2014-07-28 13:53:48 -07:00
Chris Rebert 2973103571 Merge pull request #14257 from twbs/fix-14219
Document that empty tooltips+popovers do not get displayed
2014-07-28 13:51:51 -07:00
Chris Rebert 5892273a23 Merge pull request #14258 from twbs/fix-14164
Move Windows Phone 8 IE10 viewport bug workaround script from head to footer
2014-07-27 17:08:27 -07:00
Chris Rebert a64f2008da Merge pull request #14235 from twbs/doc-14221
Update docs & add example for #14221
2014-07-27 17:06:48 -07:00
Chris Rebert 9742bb2ee4 Fix #14164: move Windows Phone 8 IE10 viewport bug workaround script to footer of pages 2014-07-27 17:01:34 -07:00
Chris Rebert 90424296eb Fix #14219: Document that empty tooltips+popovers do not get displayed 2014-07-27 16:51:07 -07:00
Chris Rebert ff12a76e5a Fix #14224: Correctly document args passed to function vals for title & content options of tooltips+popovers 2014-07-27 16:18:59 -07:00
Mark Otto d6d9bb5bc8 Fixes #14213: Rouge 1.6.1 2014-07-27 09:35:16 -07:00
Chris Hynes 531fc80885 Use .end() to remove extra line 2014-07-25 11:10:46 -07:00
Chris Rebert c2f4e5fef1 re-alphabetize .jscsrc 2014-07-25 11:02:30 -07:00
Chris Hynes 519a087dbe Remove popover content with .children().detach() instead of .empty() so it can be reused 2014-07-25 10:16:44 -07:00
Chris Rebert f023ddc64e Merge pull request #14239 from artbelov/patch-1
Delete duplicate property in .JSCSRC
2014-07-25 07:44:06 -07:00
Chris Rebert 73540abc80 Merge pull request #14240 from vsn4ik/fix_dropdown_link_example
dropdowns.html: Remove wrong "type" attribute.
2014-07-25 07:27:49 -07:00
vsn4ik 3e15e40ac9 dropdowns.html: Remove wrong "type" attribute. 2014-07-25 16:54:05 +04:00
Artem Belov 098242afd8 Delete duplicate JSCS properties 2014-07-25 15:03:07 +04:00
Chris Rebert 2c4641855d fix #14115
[skip sauce]
2014-07-24 15:16:08 -07:00
Chris Rebert 43fe197da7 Update docs & add example for #14221
[skip sauce]
2014-07-24 13:58:13 -07:00
Chris Rebert 5ea6b57616 Merge pull request #14233 from twbs/another-one-bites-the-dust
Remove #9226 from Wall of Browser Bugs
2014-07-24 12:25:42 -07:00
Chris Rebert 8288cc9c05 Remove #9226 from Wall of Browser Bugs
Per https://code.google.com/p/chromium/issues/detail?id=272750
and https://github.com/twbs/bootstrap/issues/9226#issuecomment-49873472
2014-07-24 12:22:22 -07:00
Mark Otto 98d693ba7b Fixes #14142: Adding horizontal padding to captions in tables in panels. 2014-07-23 21:03:46 -07:00
Mark Otto 7fcc6c7889 unfuck those dropdowns 2014-07-23 21:00:48 -07:00
Mark Otto 078aafe7fd Fixes #14221: Make .form-control-static work in inline forms as well 2014-07-23 20:54:07 -07:00
Mark Otto abbb4d64e1 Merge branch 'master' of github.com:twbs/bootstrap 2014-07-23 20:50:00 -07:00
Mark Otto 6dde491ddf Fixes #14168: bold nested kbd elements 2014-07-23 20:49:47 -07:00
Mark Otto 463fe476d8 Merge pull request #14166 from hnrch02/docs-cleanup
Docs cleanup
2014-07-23 20:39:40 -07:00
Mark Otto 5713bd74d6 Fixes #12669 again: Redeclare the line-heights again for date inputs in IE8+ 2014-07-23 20:32:05 -07:00
Chris Rebert 912c4bcbe4 Merge pull request #14225 from twbs/issue-14211
Add Wall of Browser Bugs entry for IE bug from issue #14211
2014-07-23 18:02:58 -07:00
Chris Rebert c0eddc1fe3 Merge pull request #14188 from twbs/doc-14148
Document limitations of buttons JS plugin
2014-07-23 18:01:31 -07:00
Chris Rebert 4a98e2d765 Merge pull request #14191 from twbs/autocomplete-off-btns
Use autocomplete="off" in buttons plugin docs examples
2014-07-23 17:55:12 -07:00
Chris Rebert c22ec79d3f Add Wall of Browser Bugs entry for IE bug from issue #14211
[skip sauce]
2014-07-23 10:24:23 -07:00
Jacob 36483af92c Merge pull request #14207 from twbs/charlesbjohnson-affix-bottom-when-dynamic-height
Charlesbjohnson affix bottom when dynamic height
2014-07-21 22:48:38 -07:00
Jacob f88e6ba2a3 Merge pull request #14208 from twbs/mckramer-dropdown-aria
Mckramer dropdown aria
2014-07-21 22:48:08 -07:00
fat 4775c9296a Merge branch 'dropdown-aria' of git://github.com/mckramer/bootstrap into mckramer-dropdown-aria
Conflicts:
	docs/_includes/js/dropdowns.html
2014-07-21 22:44:35 -07:00
fat eff9b063da cleanup style 2014-07-21 22:37:04 -07:00
XhmikosR 97cb2803d7 Run grunt. 2014-07-22 08:31:36 +03:00
XhmikosR 88b4016ce6 Update all devDependencies. 2014-07-22 08:31:26 +03:00
XhmikosR caed585033 Update Filesaver.js to v2014-07-21. 2014-07-22 08:29:06 +03:00
XhmikosR 5c569dc4d4 Update Blob.js to the latest version. 2014-07-22 08:29:06 +03:00
XhmikosR 8b6d396adf Merge pull request #13873 from twbs/grunt-csscomb
Update grunt-csscomb
2014-07-22 08:26:37 +03:00
XhmikosR 8d435cbb3c Run grunt. 2014-07-22 08:25:41 +03:00
XhmikosR 7ba5c5d5e4 Update grunt-csscomb. 2014-07-22 08:25:35 +03:00
Chris Rebert e3f4072a9e update to Jekyll v2.1.1 in Travis CI build 2014-07-21 19:38:30 -07:00
Chris Rebert 031734c1d1 update to rouge v1.5.1 in Travis CI build 2014-07-21 19:37:22 -07:00
Mark Otto a3ebd0104c Merge pull request #14203 from twbs/fix-14202
Document that form field feedback icons only work with input.form-control
2014-07-21 12:46:10 -07:00
Chris Rebert 1118e8103b Document that form field feedback icons only work with input.form-control
Closes #14202.

[skip sauce]
2014-07-21 12:27:55 -07:00
Chris Rebert 49519e9816 grunt dist 2014-07-21 00:35:41 -07:00
Chris Rebert a035ee59ae Merge pull request #14192 from twbs/https-everywhere
Use HTTPS in CDN URLs in _config.yml
2014-07-19 22:11:07 -07:00
Chris Rebert 780e8d7e7e Merge pull request #14156 from twbs/fix-14038
Fix popover dismiss-on-next-click example
2014-07-18 16:46:19 -07:00
Chris Rebert 0fe4fe328c Use HTTPS in CDN URLs in _config.yml
For consistency with the rest of the docs and per our code guidelines.
2014-07-18 14:26:14 -07:00
Chris Rebert db352bcc94 Make warning from #13875 slightly more detailed
[skip sauce]
2014-07-18 14:19:19 -07:00
Chris Rebert 031cb969d7 Have HTML5 validator ignore autocomplete="off" on input[type="checkbox"]
Not clear from the spec whether this is invalid per se.
But it is the current best known workaround for Firefox's unusual behavior.
2014-07-18 14:19:16 -07:00
Chris Rebert fc19cad608 Use autocomplete="off" in buttons plugin docs examples
Refs #13875.
2014-07-18 13:59:37 -07:00
Chris Rebert 976441ac1b Document limitations of buttons JS plugin
Addresses #14148.
2014-07-18 11:48:00 -07:00
Charles B Johnson 724c4f526c Fix issue where bottom affixed element floats over the footer when the
document height is smaller than the viewport height.
2014-07-18 10:46:42 -04:00
Charles B Johnson 8c0eb9b00e Refactor determining affix state into a separate expanded method
in order to handle multiple edge cases, specifically when the document
  height is dynamic.
Always reposition an affix that is affixed to the bottom.
2014-07-18 10:45:59 -04:00
Charles B Johnson d3dea01a11 Add a bottom affixed element to affix visual tests. 2014-07-18 10:45:59 -04:00
Jacob 866ffc4f37 Merge pull request #14055 from twbs/fat-speed-up-tests
speed up js tests a bit
2014-07-17 10:07:28 -07:00
Chris Rebert 33156dc184 Merge pull request #14171 from wangsai/tab2space
Tabs to spaces in variables.less
2014-07-17 09:22:40 -07:00
wangsai 45acf4e040 Tabs to spaces 2014-07-17 20:13:16 +08:00
fat 9b90b87099 speed up js tests a bit 2014-07-16 22:22:42 -07:00
Jacob 541a75f92c Merge pull request #14160 from hnrch02/simplify-button-focus-logic
Follow-up to #13907: simplify JS logic for focus shim
2014-07-16 21:56:13 -07:00
Heinrich Fenkart 38335b2a3d Merge alert examples and add .bs-example-standalone class 2014-07-17 05:16:48 +02:00
Heinrich Fenkart 31772677f9 Clean up the Alert documentation 2014-07-17 05:16:34 +02:00
Heinrich Fenkart f9349f36df Clean up Affix documentation 2014-07-17 03:53:49 +02:00
Heinrich Fenkart cc7fab893d Follow-up to #13907: simplify JS logic for focus shim 2014-07-16 08:44:56 +02:00
Chris Rebert b3d068f2d3 regenerate docs/assets/js/docs.min.js 2014-07-15 17:21:39 -07:00
Chris Rebert 11db482371 popover dismiss-on-next-click example: instead of <button>, use <a> w/ tabindex
Fixes #14038.

Research supporting this choice of approach:
    https://gist.github.com/cvrebert/68659d0333a578d75372

Why not <button>?
Even with a `tabindex` attribute, they don't gain focus when clicked upon in:
    * Mac OS X Firefox 30.0
    * Mac OS X Safari 7.0.5
2014-07-15 16:57:54 -07:00
Chris Rebert dd22f59999 Merge pull request #14151 from BBosman/fix-link
Fix jsbin link
2014-07-15 11:09:50 -07:00
Bas Bosman d7c92a0f08 Fix jsbin link 2014-07-15 19:55:28 +02:00
Chris Rebert dc0fe18e35 Merge pull request #14143 from twbs/fix-14134
add docs note about browsers with JS disabled
2014-07-15 09:51:07 -07:00
Mark Otto aa73047254 Another new js bin link
/cc @cvrebert @hnrch02
2014-07-15 09:28:48 -07:00
Chris Rebert 74691b7e27 add docs note about browsers w/ JS disabled; fixes #14134
[skip sauce]
2014-07-14 17:17:38 -07:00
Chris Rebert 5c1746c556 fix #14114 mo' betta 2014-07-14 14:52:36 -07:00
Chris Rebert ed8228e1cb Merge pull request #14138 from danielnixon/master
Fix inaccessible buttons.
2014-07-13 15:28:07 -07:00
Daniel Nixon 8167223b3b Fix inaccessible buttons. 2014-07-14 08:13:17 +10:00
Mark Otto 2c540b7e33 typos 2014-07-13 00:08:25 -07:00
Chris Rebert cd7250d6a8 Redundant thanks to bb1286a0ab 2014-07-12 18:15:45 -07:00
Mark Otto 7a8d9dbdbf grunt 2014-07-12 18:06:26 -07:00
Mark Otto 8c586a8e3e Fixes #14074: Make open dropdown nav links in navbar use gradients 2014-07-12 17:59:02 -07:00
Mark Otto bb1286a0ab Fixes #14133 2014-07-12 17:53:31 -07:00
Mark Otto d9a38cd99f Fixes #14132: add .alert-dismissible to docs examples 2014-07-12 17:51:57 -07:00
Mark Otto 62d6d69c20 Use bootstrapcdn links 2014-07-12 17:26:43 -07:00
Mark Otto 2000e854ed New Android select example
Fixes #14114
2014-07-12 17:23:51 -07:00
Mark Otto 4afe40db38 Merge pull request #14111 from hnrch02/bug-report-template
Update JS Bin template in CONTRIBUTING.md
2014-07-12 16:17:06 -07:00
Heinrich Fenkart 95592e81a3 Update JS Bin template in CONTRIBUTING.md
Refs: #14109
2014-07-13 01:02:46 +02:00
Mark Otto fe0ef38898 Fixes #14095: Add basic styling for captions, which we've for some reason been missing all this time. 2014-07-12 15:55:15 -07:00
Mark Otto 2962f845a5 grunt 2014-07-12 15:47:42 -07:00
Mark Otto 05ba466f6c Merge pull request #14104 from KyleMit/add-pointer-events
Add Pointer Events
2014-07-12 15:43:49 -07:00
Mark Otto 717a50ce19 grunt 2014-07-12 15:37:13 -07:00
Mark Otto 5850f637ab code guide, fixes #14126 2014-07-12 15:36:08 -07:00
Mark Otto 3e8cddf867 Fixes #13974, #14123: Remove translate3d repaint performance enhancement for text rendering and position wonkiness 2014-07-12 15:22:41 -07:00
Mark Otto 7ec6c9fd13 Fixes #14116: Use <button> elements over empty anchors 2014-07-12 15:16:43 -07:00
Mark Otto bd292ca3b8 Fixes #14107: Lighten placeholder text 2014-07-12 15:13:18 -07:00
Chris Rebert c3ae289f4a Gruntfile-specific JSHint config: disable ASI
Refs #14118
2014-07-10 16:58:18 -07:00
Chris Rebert 502e8c069e Merge pull request #14118 from vsn4ik/add-semicolon-in-gruntfile
Gruntfile.js: Add semicolon in "_update-shrinkwrap" task.
2014-07-10 16:56:25 -07:00
vsn4ik 59171b3377 Gruntfile.js: Add semicolon in "_update-shrinkwrap" task. 2014-07-11 03:42:09 +04:00
Chris Rebert d8d954372c Merge pull request #14113 from vsn4ik/add-attributes-for-dropdown-example
dropdowns.html: Add role="button" and id="..." to link in example.
2014-07-10 13:32:22 -07:00
vsn4ik 816c8f480a dropdowns.html: Add role="button" and id="..." to link in example. 2014-07-10 21:44:46 +04:00
Chris Rebert 2a5e9cb2ea Merge pull request #14112 from vsn4ik/fix-sr-only-progress-bars
Fix text on ".progress-bar .sr-only" elements in docs
2014-07-10 10:41:40 -07:00
vsn4ik 2fb107e918 Fix text on ".progress-bar .sr-only" elements. 2014-07-10 21:30:21 +04:00
XhmikosR 94472ee74a Run grunt. 2014-07-10 10:03:24 +03:00
XhmikosR e598247bcc Update uglify-js to v2.4.15. 2014-07-10 10:02:41 +03:00
XhmikosR 503ec4e5db Update dependencies. 2014-07-10 09:58:23 +03:00
Kyle c298fb1a88 Add Pointer Events 2014-07-09 19:21:45 -04:00
XhmikosR 643effe382 Run grunt. 2014-07-09 10:24:39 +03:00
XhmikosR d88a837fea Update uglify-js to v2.4.14. 2014-07-09 10:22:43 +03:00
Chris Rebert 42fbcfdaef Merge pull request #14090 from hnrch02/unit-tests-ie8
Fix IE8 problems with unit tests
2014-07-08 16:17:16 -07:00
Heinrich Fenkart 1719d2b051 document.head is undefined in IE8 2014-07-09 00:42:02 +02:00
Heinrich Fenkart 0268b41c4f Fix IE8 reporting type object for getBoundingClientRect 2014-07-09 00:42:02 +02:00
Heinrich Fenkart 05ddea314c Fix IE8 reporting height style as all uppercase 2014-07-09 00:42:02 +02:00
Chris Rebert 31373309a5 Merge pull request #14091 from twbs/tooltip-test-html-fix
Fix unusual HTML in "should allow html entities" tooltip unit test
2014-07-08 15:40:46 -07:00
Chris Rebert 21571b3412 Fix invalid HTML in "should allow html entities" tooltip unit test
Refs #14090.
Also, fix one typo.
2014-07-08 14:40:20 -07:00
Chris Rebert 8c6061c195 Merge pull request #14089 from twbs/accordion-panel-group-aria-multiselectable
Add role="tablist" & aria-multiselectable="true" to accordion .panel-group
2014-07-08 12:56:06 -07:00
Chris Rebert 9ff2c911a3 Merge pull request #14088 from twbs/panel-collapse-role-tabpanel
add role="tabpanel" to .panel-collapse to improve accessibility
2014-07-08 12:55:41 -07:00
Chris Rebert 878f720ea1 Add role="tablist" & aria-multiselectable="true" to accordion .panel-group to improve accessibility
Refs #13555.
Per https://github.com/paypal/bootstrap-accessibility-plugin/blob/master/README.md#collapse
Credit: https://github.com/paypal/bootstrap-accessibility-plugin

[skip sauce]
2014-07-08 12:47:44 -07:00
Chris Rebert 81f67e925a add role="tabpanel" to .panel-collapse to improve accessibility
Refs #13555.
Per https://github.com/paypal/bootstrap-accessibility-plugin/blob/master/README.md#collapse
Credit: https://github.com/paypal/bootstrap-accessibility-plugin

[skip sauce]
2014-07-08 12:40:42 -07:00
Chris Rebert 4683beeedf Merge pull request #14085 from twbs/tab-lis-role-preso
add role="presentation" to tab <li>s to improve accessibility
2014-07-08 12:25:38 -07:00
Chris Rebert a53be21b45 Merge pull request #14086 from twbs/tab-pane-role-tabpanel
Add role="tabpanel" to .tab-pane <div>s to improve accessibility
2014-07-08 12:14:59 -07:00
Chris Rebert e2b4f3429c Add role="tabpanel" to .tab-pane <div>s to improve accessibility
Refs #13554.
Per https://github.com/paypal/bootstrap-accessibility-plugin/blob/master/README.md#tab-panel
Credit: https://github.com/paypal/bootstrap-accessibility-plugin

[skip sauce]
2014-07-08 12:11:02 -07:00
Chris Rebert 5c1f4e1a0c add role="presentation" to tab <li>s to improve accessibility
Refs #13554.
Per https://github.com/paypal/bootstrap-accessibility-plugin/blob/master/README.md#tab-panel
Credit: https://github.com/paypal/bootstrap-accessibility-plugin

[skip sauce]
2014-07-08 12:00:43 -07:00
Chris Rebert c23c663c7c Merge pull request #14083 from twbs/fix-14078
Properly integrate Rouge into the Travis build
2014-07-08 10:53:36 -07:00
Chris Rebert aa9182cab4 properly integrate Rouge into the Travis build; fixes #14078
[skip sauce]
2014-07-08 10:49:22 -07:00
Julian Thilo 7f359666c4 Fix that @mdo nightlife <3 2014-07-08 13:33:21 +02:00
Mark Otto 933b38421c derp 2014-07-08 03:51:32 -07:00
Mark Otto ddee04038f Fixes #14068: Update docs note for inline forms 2014-07-07 20:44:43 -07:00
Mark Otto 25a9095840 Merge branch 'master' of github.com:twbs/bootstrap 2014-07-07 20:29:51 -07:00
Mark Otto 32affe9835 more accurate homepage title 2014-07-07 20:29:43 -07:00
Chris Rebert 2e3f1a23f6 Merge pull request #14072 from twbs/carousel-gloss-buttons
Add screenreader text to prev/next carousel buttons in examples to improve accessibility
2014-07-07 20:16:52 -07:00
Chris Rebert b83bf671a1 Merge pull request #14071 from twbs/carousel-inner-role-listbox
add role="listbox" to .carousel-inner to improve accessibility of Carousels
2014-07-07 20:09:58 -07:00
Chris Rebert 849bf58a54 Add screenreader text to prev/next carousel buttons in examples to improve accessibility
Refs #13556.
Per https://github.com/paypal/bootstrap-accessibility-plugin/blob/master/README.md#carousel
Credit: https://github.com/paypal/bootstrap-accessibility-plugin

[skip sauce]
2014-07-07 20:05:44 -07:00
Chris Rebert 94eff8c159 add role="listbox" to .carousel-inner to improve accessibility of Carousels
Refs #13556.
Per https://github.com/paypal/bootstrap-accessibility-plugin/#carousel
Credit: https://github.com/paypal/bootstrap-accessibility-plugin

[skip sauce]
2014-07-07 19:53:57 -07:00
Mark Otto 2ccbc38685 Cut down on homepage file size; reorg some docs CSS 2014-07-07 19:40:15 -07:00
Mark Otto 861cff8756 Merge branch 'master' of github.com:twbs/bootstrap 2014-07-07 19:38:32 -07:00
Chris Rebert 5d1abf8b38 Merge pull request #14036 from twbs/fix-13575
Jekyll: Use non-minified assets when not running from GitHub Pages
2014-07-07 19:36:32 -07:00
Mark Otto 2e27c90b6b Merge branch 'master' of github.com:twbs/bootstrap 2014-07-07 19:33:44 -07:00
Chris Rebert c7c2a078dd Merge pull request #14070 from twbs/pills-role-tablist-too
Add role="tablist" to .nav-pills in examples to improve accessibility
2014-07-07 19:30:18 -07:00
Chris Rebert 7c50b9ad7a Add role="tablist" to .nav-pills in examples to improve accessibility
Follow-up to e9374c0609
Per https://github.com/paypal/bootstrap-accessibility-plugin/commit/f203dea4b6d17264d7b776f02feaeeaa386cc9b2
Credit: https://github.com/paypal/bootstrap-accessibility-plugin & @rohk

[skip sauce]
2014-07-07 19:24:32 -07:00
Mark Otto bb939f0004 Switch to Rogue over Pygments for speeeeeed 2014-07-07 18:20:18 -07:00
Mark Otto 4f5efb84c9 Part 2 for fixing #13996: Add a docs callout to help folks using SVG images in IE8-10 2014-07-07 17:26:52 -07:00
Mark Otto c769d7c21f Part 1 for fixing #13996: Revert the width: 100% \9; IE hack for SVG img-responsive 2014-07-07 16:59:59 -07:00
Hayden Bleasel 30d1236a1d CSS3 Carousel code formatting 2014-07-08 09:49:08 +10:00
Chris Rebert 9a8e6263da Merge pull request #14065 from twbs/glyphicons-grunt-bye
remove Glyphicons docs autogeneration from Grunt
2014-07-07 12:07:58 -07:00
Chris Rebert 36b5308926 remove Glyphicons docs autogeneration from Grunt
Simplifies the build tooling a teeny bit.
This data file shouldn't need to be updated for v3 ever again.
This task will also be unnecessary in v4.

[skip sauce] [skip validator]
2014-07-07 11:06:19 -07:00
Heinrich Fenkart 231744d628 Expose transition durations on plugin constructors; closes #13656 2014-07-07 13:03:56 +02:00
Mark Otto a0d8d56593 grunt 2014-07-07 00:59:51 -07:00
Mark Otto d5e2262782 Merge pull request #14058 from twbs/btn_focus
Follow up to #13907: Add .focus styles for buttons
2014-07-07 00:59:10 -07:00
Mark Otto 9ed9eb97ee Follow up to #13907: Add .focus styles for buttons 2014-07-07 00:56:06 -07:00
Mark Otto 6f88238a6b Merge pull request #14051 from loic/issue13325
Address margins on .navbar-right to fix #13325 #13464.
2014-07-07 00:39:06 -07:00
Mark Otto 907b3b2892 Merge pull request #13907 from twbs/fat-12145
add "focus" to focused btns with button plugin
2014-07-07 00:36:59 -07:00
Chris Rebert 719cde1a11 docs HTML5 validity fixup to 8e2348e9ed 2014-07-07 00:25:55 -07:00
Chris Rebert 488778857a Merge pull request #14057 from hnrch02/patch-1
Fix small typo introduced in e2029e1
2014-07-07 00:24:13 -07:00
Heinrich Fenkart dc22226b95 Fix small typo introduced in e2029e1 2014-07-07 09:23:12 +02:00
Chris Rebert 520b3547a4 nitpick phrasing of the docs added for #13835 2014-07-07 00:10:49 -07:00
Chris Rebert ddffe76961 grammar fix; indicate that img[src] shouldn't actually be empty 2014-07-07 00:04:14 -07:00
Mark Otto 117ca8167a Merge branch 'master' of github.com:twbs/bootstrap 2014-07-06 23:45:36 -07:00
Mark Otto 225819ae66 Merge pull request #14029 from BBosman/touch-action
Add touch-action: manipulate to .btn
2014-07-06 23:43:43 -07:00
Loic Bistuer e88fa90991 Address margins on .navbar-right to fix #13325 #13464.
This commit follows f9fde56.
2014-07-07 12:56:52 +07:00
fat 587c09cb48 fix scrollspy test in firefox mac os 2014-07-06 21:50:46 -07:00
Jacob b5d86ad0bd Merge pull request #13853 from hnrch02/unit-tests-cleanup
Major unit tests cleanup
2014-07-06 21:43:48 -07:00
Hayden Bleasel d6d8e204e6 Added Firefox support for CSS3 carousel transition 2014-07-07 12:20:06 +10:00
Mark Otto 8e2348e9ed Fixes #13746: Add docs section for brand image 2014-07-06 18:39:37 -07:00
Mark Otto 5e41a23ec5 Fixes #13835: More explicitly document mobile dropdown menu dismissing behavior 2014-07-06 16:55:35 -07:00
Mark Otto 9be2bbb5ef Fixes #14053: Don't show radio/checkbox in justified button groups 2014-07-06 16:48:41 -07:00
Mark Otto 44f83fff90 Merge pull request #14021 from CFXd/add_collapsed_default_class_to_navbar_collapse_button
Add collapsed default class to navbar-toggle
2014-07-06 16:37:42 -07:00
Mark Otto b44d4ef724 grunt 2014-07-06 15:35:24 -07:00
Mark Otto e2029e122c Fixes #13997: Move min-height for radio/checkbox to their inner label 2014-07-06 15:09:20 -07:00
Mark Otto 354d423668 grunt 2014-07-06 15:08:37 -07:00
Mark Otto ac18e5811d jscs fix 2014-07-06 15:08:33 -07:00
fat cb19f4f227 Merge branch 'breaddevil-replace-scrollspy-default-behavior-test' 2014-07-06 14:11:38 -07:00
fat b19719ea1a Merge branch 'replace-scrollspy-default-behavior-test' of git://github.com/breaddevil/bootstrap into breaddevil-replace-scrollspy-default-behavior-test
Conflicts:
	js/tests/unit/scrollspy.js
2014-07-06 14:11:23 -07:00
Jacob 279c46152b Merge pull request #13815 from hnrch02/tabs-fade-not-active
Allow tabs to fade in if no initially active pane is present
2014-07-06 13:50:54 -07:00
XhmikosR 0a8845c3fd Update package.json.
* "grunt-jscs-checker" was renamed to "grunt-jscs"
* update deps
2014-07-06 14:25:56 +03:00
Heinrich Fenkart 58eb8b2ae3 Move to leading pluses 2014-07-06 11:56:12 +02:00
Chris Rebert a34e52de4d Merge pull request #14015 from twbs/possible-14013-fix
Possible fix for #14013
2014-07-06 00:36:52 -07:00
Heinrich Fenkart dad56be96c Move to 16ms from 18ms based on the Paul Irish's rAF polyfill 2014-07-06 09:24:23 +02:00
Heinrich Fenkart 8ff099585f Mention #13500 in comment for ScrollSpy test 2014-07-06 09:24:23 +02:00
Heinrich Fenkart e341355d28 Clean tooltip unit tests up 2014-07-06 09:24:23 +02:00
Heinrich Fenkart b3a125e941 Clean tab unit tests up 2014-07-06 09:24:23 +02:00
Heinrich Fenkart 05ba1e491e Clean scrollspy unit tests up 2014-07-06 09:24:22 +02:00
Heinrich Fenkart 56b8d5fe6e Clean popover unit tests up 2014-07-06 09:24:22 +02:00
Heinrich Fenkart 998c3724e8 Clean modal unit tests up 2014-07-06 09:24:22 +02:00
Heinrich Fenkart 9ff66a12bc Clean dropdown unit tests up 2014-07-06 09:24:22 +02:00
Heinrich Fenkart 77d0557468 Clean collapse unit tests up 2014-07-06 09:24:22 +02:00
Heinrich Fenkart 6a523bf99d Clean carousel unit tests up 2014-07-06 09:24:22 +02:00
Heinrich Fenkart f3345f68d7 Clean button unit tests up 2014-07-06 09:24:22 +02:00
Heinrich Fenkart b063de54a5 Clean alert unit tests up 2014-07-06 09:24:22 +02:00
Heinrich Fenkart 95d7c9c3fb Clean affix unit tests up 2014-07-06 09:24:22 +02:00
Heinrich Fenkart 4950fe6f4e Perform a cleanup after each test 2014-07-06 09:24:22 +02:00
Heinrich Fenkart 1e64c4c0ba Update QUnit settings/QUnit phantomjs bridge to new versions 2014-07-06 09:24:22 +02:00
Chris Rebert f9ffb49932 refactor/reformat Tooltip.getPosition per @fat's feedback 2014-07-06 00:16:54 -07:00
Jacob 5830febd9a Merge pull request #13855 from hnrch02/modal-mousedown
Use mousedown instead of click for backdrop click detection; fixes #13816
2014-07-06 00:01:57 -07:00
Chris Rebert fc29dfab1b Merge pull request #14050 from twbs/bower
Bower: only ignore /.*
2014-07-06 00:00:27 -07:00
Jacob 13a4c50cc7 Merge pull request #14000 from hnrch02/modal-keydown
Only close modal if escape was hit with keydown; fixes #13929
2014-07-05 23:55:36 -07:00
fat c08e275000 fix build 2014-07-05 23:49:45 -07:00
Chris Rebert 7933a50ee5 Merge pull request #14034 from twbs/deprecate-modal-remote
Deprecate the `remote` option of modals?
2014-07-05 23:48:25 -07:00
Chris Rebert 7f4af4aeea remote modal docs: mention jQuery.load and other JS options as alternatives
[skip sauce]
2014-07-05 23:43:29 -07:00
fat 22f851fa62 apply #14022 without semicolon – cleans up some jquery class usage 2014-07-05 23:28:44 -07:00
Mark Otto c1bd4fca61 only ignore /.* 2014-07-05 21:20:09 -07:00
Mark Otto 043b40636c grunt 2014-07-05 20:17:57 -07:00
Mark Otto b4b82e815c Merge pull request #13920 from AndreiRailean/patch-1
assign background to row of .table-striped
2014-07-05 20:16:10 -07:00
Mark Otto d55462fae8 grunt 2014-07-05 20:10:44 -07:00
Mark Otto b5205bf848 Merge pull request #13923 from ilikeprograms/gray-base-variable
Added @gray-base variable to make @gray-{shade} reference, also allows @...
2014-07-05 20:04:47 -07:00
Mark Otto 9677c95d83 Fixes #13967: Don't reset the cite element's font-style 2014-07-05 20:02:02 -07:00
Mark Otto f22e7d857a Fixes #13953: Remove the progress bar min-width styles for low percentages to avoid jumping progress 2014-07-05 20:01:18 -07:00
Mark Otto 0378a6be2a Fixes #13943: Lighten the navbar inverse link color more since our text contrast change in v3.2.0 2014-07-05 19:59:50 -07:00
Mark Otto 3c99de9764 grunt 2014-07-05 19:57:15 -07:00
Mark Otto f9fde567be Merge pull request #13464 from nickcolley/#13325-navbar-right-first
Changed last-child to first-child to fix #13325
2014-07-05 18:51:47 -07:00
XhmikosR bae2c55a52 Merge pull request #14047 from twbs/kbd
Docs: add missing example code code for `kbd` after #13351.
2014-07-05 18:38:50 +03:00
XhmikosR 97ca848e16 Docs: add missing example code code for kbd after #13351. 2014-07-05 15:51:03 +03:00
Chris Rebert 83c9510da2 Merge pull request #14037 from twbs/close-13892
Add Wall of Browser Bugs entry for #13892
2014-07-03 17:41:42 -07:00
Chris Rebert a14f6222a6 Add Wall of Browser Bugs entry for #13892
Closes #13892.
[skip sauce]
2014-07-03 17:17:18 -07:00
Chris Rebert 1dc54dc160 use non-minified Bootstrap JS when on non-gh-pages 2014-07-03 13:40:47 -07:00
Chris Rebert 92fd25a2a2 use non-minified docs JS on non-gh-pages 2014-07-03 13:18:44 -07:00
Chris Rebert b793fbb13a use non-minified docs CSS on non-gh-pages 2014-07-03 13:12:58 -07:00
Chris Rebert d9f356f05f use non-minified BS Theme CSS on non-gh-pages 2014-07-03 13:06:54 -07:00
Chris Rebert 6b46d4d8c1 use non-minified Bootstrap CSS on non-gh-pages 2014-07-03 13:05:48 -07:00
Chris Rebert 24e51590b7 modal docs formatting tweak
[skip sauce]
2014-07-03 12:58:20 -07:00
Chris Rebert 8340d664ce Mark the remote option of the Modal plugin as deprecated.
Follow-up to https://github.com/twbs/bootstrap/issues/13087#issuecomment-46563760
Closes #13087 as WONTFIX.
Closes #13597 as WONTFIX.
2014-07-03 12:58:10 -07:00
Chris Rebert 456bd67da8 Merge pull request #13986 from twbs/address-13874
docs: use valid JSON in compound option value examples
2014-07-03 11:07:50 -07:00
Chris Rebert 9875ce8d63 Merge pull request #13998 from steelywing/patch-1 2014-07-03 10:52:42 -07:00
Wing 4b08832308 no need to create $.Event
`trigger()` can handle string argument
2014-07-03 10:52:22 -07:00
Wing 48b822db40 trigger 'affixed.bs.affix' instead of 'affixed'
Original is triggering `affixed` not `affixed.bs.affix`, only `.on('affixed.bs.affix', ...)` also catch `affixed` event.

Closes #13998.
2014-07-03 10:52:22 -07:00
Mark Otto 13426c18a3 Merge pull request #14030 from BBosman/double-cursor
Remove superfluous cursor:pointer
2014-07-03 09:57:36 -07:00
Bas Bosman 4975978083 Remove superfluous cursor:pointer 2014-07-03 13:17:14 +02:00
Bas Bosman 47521fd7d0 Add touch-action: manipulate to buttons 2014-07-03 12:53:23 +02:00
Mark Otto 23dd323da1 grunt 2014-07-03 00:57:37 -07:00
Mark Otto 3537481c97 Fixes #12738 again: use max-device-width instead of max-width for .navbar-collapse height in landscape devices 2014-07-03 00:55:32 -07:00
Mark Otto 4f8697cbbb grunt 2014-07-02 23:44:56 -07:00
Mark Otto fcf9470a20 typo 2014-07-02 23:35:37 -07:00
Mark Otto 96b545c6b5 Fixes #13989: Don't extend the input sizes; manually chain the selectors 2014-07-02 23:14:23 -07:00
Mark Otto fb37ec16f8 Merge branch 'master' into pr/14005 2014-07-02 22:55:01 -07:00
Mark Otto b4958aba69 merge in and resolve conflicts 2014-07-02 22:54:56 -07:00
Mark Otto a091c90063 fix new form validation 2014-07-02 22:12:39 -07:00
Mark Otto d67fe0f5b9 Merge branch 'pr/14011' 2014-07-02 22:06:32 -07:00
Mark Otto ebdecacd65 fix up examples 2014-07-02 22:06:28 -07:00
Chris Rebert afbe7114b4 clarify the iOS virtual keyboard bug with respect to navbars 2014-07-02 17:09:13 -07:00
Michael Silber 1e407c81f1 Add collapsed default class to navbar-toggle 2014-07-02 16:49:03 -04:00
Chris Rebert 1ce5e9f3ae possible fix for #14013 2014-07-02 10:09:28 -07:00
Zac Echola 1136f9346a Moves checkbox/radios into "Validation states" example. 2014-07-02 11:32:25 -05:00
Zac Echola afdc9c4b32 Documents radio and checkbox validation states
References #14010

fixing duped IDs

fix ALL the duped IDs.

make example id match actual id
2014-07-02 11:05:28 -05:00
XhmikosR 4715e05510 Merge pull request #14001 from twbs/docs-dist
Copy all files in docs/dist.
2014-07-02 11:52:08 +03:00
Boris Serdyuk 77c1a528ab place feedback icon lower, only if it really need 2014-07-01 20:23:22 +04:00
XhmikosR 2a47034598 Copy all files in docs/dist.
Now we are on par with what we have on the gh-pages dist/ folder.
2014-07-01 07:38:38 +03:00
XhmikosR a013c112c4 Update dependencies. 2014-07-01 07:32:50 +03:00
Heinrich Fenkart 91f329e448 Only close modal if escape was hit with keydown; fixes #13929 2014-07-01 05:50:31 +02:00
Heinrich Fenkart 121bf6633e Use mousedown instead of click for backdrop click detection; fixes #13816 2014-07-01 02:53:57 +02:00
Chris Rebert 8deab3a95d Merge pull request #13988 from twbs/fix-13896
doc that you can't use both data-ride and $().carousel() on the same carousel
2014-06-30 14:49:11 -07:00
Mark Otto 2ff0e5efa2 Merge pull request #13993 from twbs/fix-13964
Fix #13964
2014-06-30 11:39:37 -07:00
Chris Rebert bf183e080e fix #13964 2014-06-30 10:27:55 -07:00
XhmikosR 225351431e Update dependencies. 2014-06-30 18:35:50 +03:00
Julian Thilo a13f645d20 Merge pull request #13992 from pjrobertson/master
Fix inconsistency between demo and displayed code for modal demo
2014-06-30 17:10:57 +02:00
Patrick Robertson dcb09f3b09 Fix inconsistency between demo and displayed code for modal demo
Fixes #13991
2014-06-30 19:19:18 +07:00
Chris Rebert 3dfad4f1ad doc that you can't use both data-ride and $().carousel() on the same carousel; fixes #13896
[skip sauce]
2014-06-29 21:16:44 -07:00
Chris Rebert 48e35cb830 docs: use valid JSON in compound option value examples
Fixes #13874.
[skip sauce]
2014-06-29 21:08:42 -07:00
Chris Rebert d23d9ee4a0 fix #13979 2014-06-29 19:58:09 -07:00
XhmikosR 1098453f83 Update to Jekyll 2.1.x. 2014-06-29 08:39:40 +03:00
Mark Otto 018114fc09 Merge pull request #13954 from hnrch02/persist-preview-theme
Save "Preview theme" state; resolves #13940
2014-06-28 21:43:04 -07:00
Mark Otto 51f924ea24 fixes #13968 2014-06-28 16:23:06 -07:00
XhmikosR fec94e1695 Update "grunt-autoprefixer". 2014-06-27 07:38:46 +03:00
Heinrich Fenkart 92ca842830 Save "Preview theme" state; resolves #13940 2014-06-27 02:08:58 +02:00
Mark Otto 2b6f00c2a7 Merge pull request #13931 from ByScripts/patch-1
Remove "pointer" cursor on disabled list-group-item
2014-06-26 14:47:44 -07:00
Chris Rebert b9527acc45 JSCS hotfix
[skip sauce] [skip validator]
2014-06-26 13:01:21 -07:00
Chris Rebert ed8a64c5d8 Merge pull request #13947 from twbs/fix-13937
Fix popover live demos in docs
2014-06-26 12:25:05 -07:00
Chris Rebert fde088751a regenerate docs.min.js
[skip sauce]
2014-06-26 12:21:45 -07:00
Chris Rebert 2f7d5fd26b docs: minor correction to the focus-triggered popover demo explanation 2014-06-26 12:21:45 -07:00
Chris Rebert 0bc2edd191 add docs JS to activate popover demos; fixes #13937 2014-06-26 12:21:33 -07:00
Chris Rebert 83d9165287 Merge pull request #13946 from rufo/patch-1
Fixed apostrophe typo on home page
2014-06-26 12:12:37 -07:00
Rufo Sanchez 1939d017c5 Fixed crazy-making typo on home page
...at least if you're a writing nerd :P "Bootstrap ships with vanilla CSS, but *its* source code..."
2014-06-26 15:09:59 -04:00
Mark Otto d79082aac8 Merge pull request #13939 from twbs/tree-shaking
Remove apparent dead code from docs JS
2014-06-26 11:46:45 -07:00
Chris Rebert 248af0e293 Merge pull request #13942 from twbs/docs-grunt-13938
Fix link to compiling info.
2014-06-26 11:38:41 -07:00
XhmikosR 10ea20515c Fix link to compiling info. Fixes #13938.
[skip sauce]
2014-06-26 11:37:08 -07:00
Chris Rebert c0b3f18c0c rm apparent dead code from docs JS
.bs-docs-navbar class doesn't seem to be used anywhere at all
2014-06-26 10:53:58 -07:00
Chris Rebert 43ecc8726b add comment explaining which demos this JS is for 2014-06-26 10:52:12 -07:00
Chris Rebert 43b7a942bc fix class names in popover live examples in docs 2014-06-26 10:51:07 -07:00
Thierry Goettelmann 165c7889bd Change cursor from "default" to "not-allowed" if disabled 2014-06-26 16:31:37 +02:00
Thierry Goettelmann 76ca3677f5 Remove "pointer" cursor on disabled list-group-item 2014-06-26 15:50:20 +02:00
sgamel 9445b84b0b Ensure that hidden event is sent when content is really hidden (collapsing class is removed) 2014-06-26 10:18:45 +02:00
Thomas Coleman fdacff2297 Fixed @gray-base value being once space short 2014-06-25 16:09:57 +01:00
Thomas Coleman 41f27fd813 Added @gray-base variable to make @gray-{shade} reference, also allows @gray-base to be modified with less#modifyVars and the vars to cascade 2014-06-25 15:00:41 +01:00
Andrei Railean ac67bc857f removing redundant background declarations on TDs 2014-06-25 15:16:25 +10:00
Andrei Railean 71974e2f4d assign background to row of .table-striped
if background is not set on row, striping doesn't work properly in responsive tables where row and cells are set to  display: block.
2014-06-25 14:01:34 +10:00
Heinrich Fenkart 282f8fc04b Add a few more cases to the visual test tab page 2014-06-25 04:18:51 +02:00
Heinrich Fenkart 634ea59a25 Allow tabs to fade in if no initially active pane is present; fixes #13814 2014-06-25 04:18:51 +02:00
fat 6b6476fcd9 add "focus" to focused btns with button plugin 2014-06-23 23:39:54 -07:00
James Friend 33a6932d6f added 'main' field to package.json 2014-06-15 12:53:26 +08:00
James Friend 03342f1a7e allow require.resolve('bootstrap') to work under node 2014-06-15 12:50:32 +08:00
Max Kramer ee12ce8305 Add aria-haspopup and aria-expanded attributes to dropdown plugin
1. Add aria-haspopup="true" and aria-expanded="false" to dropdown docs
2. Toggle aria-expanded between "true" and "false" when opening and closing dropdown

Satisfy item 1 from https://github.com/paypal/bootstrap-accessibility-plugin#dropdown. See #13553.
2014-05-22 18:13:41 -04:00
breaddevil 7627b24c1e replace js scrollspy test for default behavior 2014-05-04 11:24:31 +02:00
Nick Colley dd0b0cd664 Changed last-child to first-child
As noted by @jerem the first child will actually be the last shown
2014-04-30 01:08:24 +01:00
Hayden Bleasel 4fa2d9e0ca Improved mixin ability with nested media query 2014-04-23 20:36:49 +10:00
Hayden Bleasel bab63abee8 Removed unnecessary percentage sign for 3D translation 2014-03-16 17:07:55 +11:00
Hayden Bleasel 8ab6746cbe Utilised mixins rather than specific WebKit properties 2014-03-15 18:30:09 +11:00
Hayden Bleasel da044d9c69 WebKit CSS3 carousel transforms for supported devices 2014-03-15 17:56:24 +11:00
211 changed files with 17930 additions and 6385 deletions
+4 -4
View File
@@ -3,12 +3,12 @@
root = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.py]
indent_size = 4
+9 -9
View File
@@ -6,37 +6,37 @@ _site
# Numerous always-ignore extensions
*.diff
*.err
*.orig
*.log
*.orig
*.rej
*.swo
*.swp
*.zip
*.vi
*.zip
*~
# OS or Editor folders
.DS_Store
._*
Thumbs.db
.cache
.DS_Store
.idea
.project
.settings
.tmproj
*.esproj
nbproject
*.sublime-project
*.sublime-workspace
.idea
nbproject
Thumbs.db
# Komodo
*.komodoproject
.komodotools
*.komodoproject
# grunt-html-validation
validation-status.json
validation-report.json
validation-status.json
# Folders to ignore
node_modules
bower_components
node_modules
+7 -4
View File
@@ -1,16 +1,18 @@
language: node_js
git:
depth: 10
node_js:
- "0.10"
before_install:
- time travis_retry sudo pip install -r test-infra/requirements.txt
- travis_retry sudo pip install -r test-infra/requirements.txt
- rvm use 1.9.3 --fuzzy
- export GEMDIR=$(rvm gemdir)
- if [ "$TWBS_TEST" = validate-html ]; then echo "ruby=$(basename $GEMDIR) jekyll=$JEKYLL_VERSION" > pseudo_Gemfile.lock; fi
- if [ "$TWBS_TEST" = validate-html ]; then echo "ruby=$(basename $GEMDIR) jekyll=$JEKYLL_VERSION rouge=$ROUGE_VERSION" > pseudo_Gemfile.lock; fi
- "export TRAVIS_COMMIT_MSG=\"$(git log --format=%B --no-merges -n 1)\""
- echo "$TRAVIS_COMMIT_MSG" | grep '\[skip validator\]'; export TWBS_DO_VALIDATOR=$?; true
- echo "$TRAVIS_COMMIT_MSG" | grep '\[skip sauce\]'; export TWBS_DO_SAUCE=$?; true
install:
- time npm install -g grunt-cli
- npm install -g grunt-cli
- ./test-infra/s3_cache.py download npm-modules
- if [ "$TWBS_TEST" = validate-html ] && [ $TWBS_DO_VALIDATOR -ne 0 ]; then ./test-infra/s3_cache.py download rubygems; fi
after_script:
@@ -18,7 +20,8 @@ after_script:
- if [ "$TWBS_TEST" = validate-html ] && [ $TWBS_DO_VALIDATOR -ne 0 ]; then ./test-infra/s3_cache.py upload rubygems; fi
env:
global:
- JEKYLL_VERSION: 2.0.3
- JEKYLL_VERSION: 2.3.0
- ROUGE_VERSION: 1.6.2
- SAUCE_USERNAME: bootstrap
- secure: "pJkBwnuae9dKU5tEcCqccfS1QQw7/meEcfz63fM7ba7QJNjoA6BaXj08L5Z3Vb5vBmVPwBawxo5Hp0jC0r/Z/O0hGnAmz/Cz09L+cy7dSAZ9x4hvZePSja/UAusaB5ogMoO8l2b773MzgQeSmrLbExr9BWLeqEfjC2hFgdgHLaQ="
- secure: "gqjqISbxBJK6byFbsmr1AyP1qoWH+rap06A2gI7v72+Tn2PU2nYkIMUkCvhZw6K889jv+LhQ/ybcBxDOXHpNCExCnSgB4dcnmYp+9oeNZb37jSP0rQ+Ib4OTLjzc3/FawE/fUq5kukZTC7porzc/k0qJNLAZRx3YLALmK1GIdUY="
+21 -16
View File
@@ -36,6 +36,10 @@ Good bug reports are extremely helpful, so thanks!
Guidelines for bug reports:
0. **Validate and lint your code** &mdash; [validate your HTML](http://html5.validator.nu)
and [lint your HTML](https://github.com/twbs/bootlint) to ensure your
problem isn't caused by a simple error in your own code.
1. **Use the GitHub issue search** &mdash; check if the issue has already been
reported.
@@ -44,7 +48,7 @@ Guidelines for bug reports:
3. **Isolate the problem** &mdash; ideally create a [reduced test
case](http://css-tricks.com/6263-reduced-test-cases/) and a live example.
[This JS Bin](http://jsbin.com/EBAwOkOK/1) is a helpful template.
[This JS Bin](http://jsbin.com/lefey/1/edit?html,output) is a helpful template.
A good bug report shouldn't leave others needing to chase you up for more
@@ -72,6 +76,18 @@ Example:
> causing the bug, and potential solutions (and your opinions on their
> merits).
### Reporting upstream browser bugs
Sometimes bugs reported to us are actually caused by bugs in the browser(s) themselves, not bugs in Bootstrap per se.
When feasible, we aim to report such upstream bugs to the relevant browser vendor(s), and then list them on our [Wall of Browser Bugs](http://getbootstrap.com/browser-bugs/).
| Vendor(s) | Browser(s) | Rendering engine | Bug reporting website(s) | Notes |
| ------------- | ---------------------------- | ---------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| Mozilla | Firefox | Gecko | https://bugzilla.mozilla.org/enter_bug.cgi | "Core" is normally the right product option to choose. |
| Apple | Safari | WebKit | https://bugs.webkit.org/enter_bug.cgi?product=WebKit <br> https://bugreport.apple.com | In Apple's bug reporter, choose "Safari" as the product. |
| Google, Opera | Chrome, Chromium, Opera v15+ | Blink | https://code.google.com/p/chromium/issues/list | Click the "New issue" button. |
| Microsoft | Internet Explorer | Trident | https://connect.microsoft.com/IE/feedback/LoadSubmitFeedbackForm | |
## Feature requests
@@ -154,26 +170,16 @@ license your work under the terms of the [MIT License](LICENSE.md).
### HTML
- Two spaces for indentation, never tabs.
- Double quotes only, never single quotes.
- Always use proper indentation.
[Adhere to the Code Guide.](http://codeguide.co/#html)
- Use tags and elements appropriate for an HTML5 doctype (e.g., self-closing tags).
- Use CDNs and HTTPS for third-party JS when possible. We don't use protocol-relative URLs in this case because they break when viewing the page locally via `file://`.
- Use [WAI-ARIA](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA) attributes in documentation examples to promote accessibility.
### CSS
- CSS changes must be done in `.less` files first, never just in the compiled `.css` files.
- Adhere to the [CSS property order](http://markdotto.com/2011/11/29/css-property-order/).
- Multiple-line approach (one property and value per line).
- Always a space after a property's colon (e.g., `display: block;` and not `display:block;`).
- End all lines with a semi-colon.
- For multiple, comma-separated selectors, place each selector on its own line.
- Don't add vendor prefixed properties to their unprefixed counterparts (e.g., only `box-sizing` and not also include `-webkit-box-sizing`), as this is done automagically at build time.
- Attribute selectors, like `input[type="text"]` should always wrap the attribute's value in double quotes, for consistency and safety (see this [blog post on unquoted attribute values](http://mathiasbynens.be/notes/unquoted-attribute-values) that can lead to XSS attacks).
- Attribute selectors should only be used where absolutely necessary (e.g., form controls) and should be avoided on custom components for performance and explicitness.
- Series of classes for a component should include a base class (e.g., `.component`) and use the base class as a prefix for modifier and sub-components (e.g., `.component-lg`).
- Avoid inheritance and over nesting—use single, explicit classes whenever possible.
[Adhere to the Code Guide.](http://codeguide.co/#css)
- When feasible, default color palettes should comply with [WCAG color contrast guidelines](http://www.w3.org/TR/WCAG20/#visual-audio-contrast).
- Except in rare cases, don't remove default `:focus` styles (via e.g. `outline: none;`) without providing alternative styles. See [this A11Y Project post](http://a11yproject.com/posts/never-remove-css-outlines/) for more details.
@@ -194,4 +200,3 @@ Run `grunt test` before committing to ensure your changes follow our coding stan
By contributing your code, you agree to license your contribution under the [MIT license](https://github.com/twbs/bootstrap/blob/master/LICENSE).
Prior to v3.1.0, Bootstrap was released under the Apache License v2.0.
+98 -76
View File
@@ -18,9 +18,15 @@ module.exports = function (grunt) {
var fs = require('fs');
var path = require('path');
var npmShrinkwrap = require('npm-shrinkwrap');
var generateGlyphiconsData = require('./grunt/bs-glyphicons-data-generator.js');
var BsLessdocParser = require('./grunt/bs-lessdoc-parser.js');
var getLessVarsData = function () {
var filePath = path.join(__dirname, 'less/variables.less');
var fileContent = fs.readFileSync(filePath, { encoding: 'utf8' });
var parser = new BsLessdocParser(fileContent);
return { sections: parser.parseFile() };
};
var generateRawFiles = require('./grunt/bs-raw-files-generator.js');
var generateCommonJSModule = require('./grunt/bs-commonjs-generator.js');
// Project configuration.
grunt.initConfig({
@@ -32,12 +38,26 @@ module.exports = function (grunt) {
' * Copyright 2011-<%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
' * Licensed under <%= pkg.license.type %> (<%= pkg.license.url %>)\n' +
' */\n',
// NOTE: This jqueryCheck code is duplicated in customizer.js; if making changes here, be sure to update the other copy too.
jqueryCheck: 'if (typeof jQuery === \'undefined\') { throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\') }\n\n',
// NOTE: This jqueryCheck/jqueryVersionCheck code is duplicated in customizer.js;
// if making changes here, be sure to update the other copy too.
jqueryCheck: [
'if (typeof jQuery === \'undefined\') {',
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\')',
'}\n'
].join('\n'),
jqueryVersionCheck: [
'+function ($) {',
' var version = $.fn.jquery.split(\' \')[0].split(\'.\')',
' if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {',
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery version 1.9.1 or higher\')',
' }',
'}(jQuery);\n\n'
].join('\n'),
// Task configuration.
clean: {
dist: ['dist', 'docs/dist']
dist: 'dist',
docs: 'docs/dist'
},
jshint: {
@@ -50,7 +70,7 @@ module.exports = function (grunt) {
},
src: ['Gruntfile.js', 'grunt/*.js']
},
src: {
core: {
src: 'js/*.js'
},
test: {
@@ -60,7 +80,7 @@ module.exports = function (grunt) {
src: 'js/tests/unit/*.js'
},
assets: {
src: ['docs/assets/js/_src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js']
src: ['docs/assets/js/src/*.js', 'docs/assets/js/*.js', '!docs/assets/js/*.min.js']
}
},
@@ -71,8 +91,8 @@ module.exports = function (grunt) {
grunt: {
src: '<%= jshint.grunt.src %>'
},
src: {
src: '<%= jshint.src.src %>'
core: {
src: '<%= jshint.core.src %>'
},
test: {
src: '<%= jshint.test.src %>'
@@ -87,7 +107,7 @@ module.exports = function (grunt) {
concat: {
options: {
banner: '<%= banner %>\n<%= jqueryCheck %>',
banner: '<%= banner %>\n<%= jqueryCheck %>\n<%= jqueryVersionCheck %>',
stripBanners: false
},
bootstrap: {
@@ -113,27 +133,29 @@ module.exports = function (grunt) {
options: {
preserveComments: 'some'
},
bootstrap: {
core: {
src: '<%= concat.bootstrap.dest %>',
dest: 'dist/js/<%= pkg.name %>.min.js'
},
customize: {
// NOTE: This src list is duplicated in footer.html; if making changes here, be sure to update the other copy too.
src: [
'docs/assets/js/_vendor/less.min.js',
'docs/assets/js/_vendor/jszip.min.js',
'docs/assets/js/_vendor/uglify.min.js',
'docs/assets/js/_vendor/blob.js',
'docs/assets/js/_vendor/filesaver.js',
'docs/assets/js/vendor/less.min.js',
'docs/assets/js/vendor/jszip.min.js',
'docs/assets/js/vendor/uglify.min.js',
'docs/assets/js/vendor/Blob.js',
'docs/assets/js/vendor/FileSaver.js',
'docs/assets/js/raw-files.min.js',
'docs/assets/js/_src/customizer.js'
'docs/assets/js/src/customizer.js'
],
dest: 'docs/assets/js/customize.min.js'
},
docsJs: {
// NOTE: This src list is duplicated in footer.html; if making changes here, be sure to update the other copy too.
src: [
'docs/assets/js/_vendor/holder.js',
'docs/assets/js/_vendor/ZeroClipboard.min.js',
'docs/assets/js/_src/application.js'
'docs/assets/js/vendor/holder.js',
'docs/assets/js/vendor/ZeroClipboard.min.js',
'docs/assets/js/src/application.js'
],
dest: 'docs/assets/js/docs.min.js'
}
@@ -155,9 +177,8 @@ module.exports = function (grunt) {
sourceMapURL: '<%= pkg.name %>.css.map',
sourceMapFilename: 'dist/css/<%= pkg.name %>.css.map'
},
files: {
'dist/css/<%= pkg.name %>.css': 'less/bootstrap.less'
}
src: 'less/bootstrap.less',
dest: 'dist/css/<%= pkg.name %>.css'
},
compileTheme: {
options: {
@@ -167,9 +188,8 @@ module.exports = function (grunt) {
sourceMapURL: '<%= pkg.name %>-theme.css.map',
sourceMapFilename: 'dist/css/<%= pkg.name %>-theme.css.map'
},
files: {
'dist/css/<%= pkg.name %>-theme.css': 'less/theme.less'
}
src: 'less/theme.less',
dest: 'dist/css/<%= pkg.name %>-theme.css'
}
},
@@ -199,7 +219,7 @@ module.exports = function (grunt) {
src: 'dist/css/<%= pkg.name %>-theme.css'
},
docs: {
src: 'docs/assets/css/_src/docs.css'
src: 'docs/assets/css/src/docs.css'
},
examples: {
expand: true,
@@ -213,7 +233,7 @@ module.exports = function (grunt) {
options: {
csslintrc: 'less/.csslintrc'
},
src: [
dist: [
'dist/css/bootstrap.css',
'dist/css/bootstrap-theme.css'
],
@@ -225,7 +245,7 @@ module.exports = function (grunt) {
ids: false,
'overqualified-elements': false
},
src: 'docs/assets/css/_src/docs.css'
src: 'docs/assets/css/src/docs.css'
}
},
@@ -235,16 +255,18 @@ module.exports = function (grunt) {
keepSpecialComments: '*',
noAdvanced: true
},
core: {
files: {
'dist/css/<%= pkg.name %>.min.css': 'dist/css/<%= pkg.name %>.css',
'dist/css/<%= pkg.name %>-theme.min.css': 'dist/css/<%= pkg.name %>-theme.css'
}
minifyCore: {
src: 'dist/css/<%= pkg.name %>.css',
dest: 'dist/css/<%= pkg.name %>.min.css'
},
minifyTheme: {
src: 'dist/css/<%= pkg.name %>-theme.css',
dest: 'dist/css/<%= pkg.name %>-theme.min.css'
},
docs: {
src: [
'docs/assets/css/_src/docs.css',
'docs/assets/css/_src/pygments-manni.css'
'docs/assets/css/src/docs.css',
'docs/assets/css/src/pygments-manni.css'
],
dest: 'docs/assets/css/docs.min.css'
}
@@ -277,27 +299,19 @@ module.exports = function (grunt) {
dest: 'docs/examples/'
},
docs: {
files: {
'docs/assets/css/_src/docs.css': 'docs/assets/css/_src/docs.css'
}
src: 'docs/assets/css/src/docs.css',
dest: 'docs/assets/css/src/docs.css'
}
},
copy: {
fonts: {
expand: true,
src: 'fonts/*',
dest: 'dist/'
},
docs: {
expand: true,
cwd: './dist',
src: [
'{css,js}/*.min.*',
'css/*.map',
'fonts/*'
],
dest: 'docs/dist'
src: 'dist/*/*',
dest: 'docs/'
}
},
@@ -315,20 +329,17 @@ module.exports = function (grunt) {
},
jade: {
compile: {
options: {
pretty: true,
data: function () {
var filePath = path.join(__dirname, 'less/variables.less');
var fileContent = fs.readFileSync(filePath, { encoding: 'utf8' });
var parser = new BsLessdocParser(fileContent);
return { sections: parser.parseFile() };
}
},
files: {
'docs/_includes/customizer-variables.html': 'docs/_jade/customizer-variables.jade',
'docs/_includes/nav/customize.html': 'docs/_jade/customizer-nav.jade'
}
options: {
pretty: true,
data: getLessVarsData
},
customizerVars: {
src: 'docs/_jade/customizer-variables.jade',
dest: 'docs/_includes/customizer-variables.html'
},
customizerNav: {
src: 'docs/_jade/customizer-nav.jade',
dest: 'docs/_includes/nav/customize.html'
}
},
@@ -340,7 +351,9 @@ module.exports = function (grunt) {
reset: true,
relaxerror: [
'Bad value X-UA-Compatible for attribute http-equiv on element meta.',
'Element img is missing required attribute src.'
'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.'
]
},
files: {
@@ -350,15 +363,15 @@ module.exports = function (grunt) {
watch: {
src: {
files: '<%= jshint.src.src %>',
tasks: ['jshint:src', 'qunit']
files: '<%= jshint.core.src %>',
tasks: ['jshint:src', 'qunit', 'concat']
},
test: {
files: '<%= jshint.test.src %>',
tasks: ['jshint:test', 'qunit']
},
less: {
files: 'less/*.less',
files: 'less/**/*.less',
tasks: 'less'
}
},
@@ -412,7 +425,7 @@ module.exports = function (grunt) {
var testSubtasks = [];
// Skip core tests if running a different subset of the test suite
if (runSubset('core')) {
testSubtasks = testSubtasks.concat(['dist-css', 'csslint', 'jshint', 'jscs', 'qunit', 'build-customizer-html']);
testSubtasks = testSubtasks.concat(['dist-css', 'dist-js', 'csslint:dist', 'test-js', 'docs']);
}
// Skip HTML validation if running a different subset of the test suite
if (runSubset('validate-html') &&
@@ -430,30 +443,26 @@ module.exports = function (grunt) {
testSubtasks.push('saucelabs-qunit');
}
grunt.registerTask('test', testSubtasks);
grunt.registerTask('test-js', ['jshint:core', 'jshint:test', 'jshint:grunt', 'jscs:core', 'jscs:test', 'jscs:grunt', 'qunit']);
// JS distribution task.
grunt.registerTask('dist-js', ['concat', 'uglify']);
grunt.registerTask('dist-js', ['concat', 'uglify:core', 'commonjs']);
// CSS distribution task.
grunt.registerTask('less-compile', ['less:compileCore', 'less:compileTheme']);
grunt.registerTask('dist-css', ['less-compile', 'autoprefixer', 'usebanner', 'csscomb', 'cssmin']);
// Docs distribution task.
grunt.registerTask('dist-docs', 'copy:docs');
grunt.registerTask('dist-css', ['less-compile', 'autoprefixer:core', 'autoprefixer:theme', 'usebanner', 'csscomb:dist', 'cssmin:minifyCore', 'cssmin:minifyTheme']);
// Full distribution task.
grunt.registerTask('dist', ['clean', 'dist-css', 'copy:fonts', 'dist-js', 'dist-docs']);
grunt.registerTask('dist', ['clean:dist', 'dist-css', 'copy:fonts', 'dist-js']);
// Default task.
grunt.registerTask('default', ['test', 'dist', 'build-glyphicons-data', 'build-customizer']);
grunt.registerTask('default', ['clean:dist', 'copy:fonts', 'test']);
// Version numbering task.
// grunt change-version-number --oldver=A.B.C --newver=X.Y.Z
// This can be overzealous, so its changes should always be manually reviewed!
grunt.registerTask('change-version-number', 'sed');
grunt.registerTask('build-glyphicons-data', function () { generateGlyphiconsData.call(this, grunt); });
// task for building customizer
grunt.registerTask('build-customizer', ['build-customizer-html', 'build-raw-files']);
grunt.registerTask('build-customizer-html', 'jade');
@@ -462,6 +471,19 @@ module.exports = function (grunt) {
generateRawFiles(grunt, banner);
});
grunt.registerTask('commonjs', 'Generate CommonJS entrypoint module in dist dir.', function () {
var srcFiles = grunt.config.get('concat.bootstrap.src');
var destFilepath = 'dist/js/npm.js';
generateCommonJSModule(grunt, srcFiles, destFilepath);
});
// Docs task.
grunt.registerTask('docs-css', ['autoprefixer:docs', 'autoprefixer:examples', 'csscomb:docs', 'csscomb:examples', 'cssmin:docs']);
grunt.registerTask('lint-docs-css', ['csslint:docs', 'csslint:examples']);
grunt.registerTask('docs-js', ['uglify:docsJs', 'uglify:customize']);
grunt.registerTask('lint-docs-js', ['jshint:assets', 'jscs:assets']);
grunt.registerTask('docs', ['docs-css', 'lint-docs-css', 'docs-js', 'lint-docs-js', 'clean:docs', 'copy:docs', 'build-customizer']);
// Task for updating the cached npm packages used by the Travis build (which are controlled by test-infra/npm-shrinkwrap.json).
// This task should be run and the updated file should be committed whenever Bootstrap's dependencies change.
grunt.registerTask('update-shrinkwrap', ['exec:npmUpdate', '_update-shrinkwrap']);
@@ -469,7 +491,7 @@ module.exports = function (grunt) {
var done = this.async();
npmShrinkwrap({ dev: true, dirname: __dirname }, function (err) {
if (err) {
grunt.fail.warn(err)
grunt.fail.warn(err);
}
var dest = 'test-infra/npm-shrinkwrap.json';
fs.renameSync('npm-shrinkwrap.json', dest);
+25 -23
View File
@@ -1,32 +1,33 @@
# [Bootstrap](http://getbootstrap.com)
[![Bower version](https://badge.fury.io/bo/bootstrap.svg)](http://badge.fury.io/bo/bootstrap)
[![NPM version](https://badge.fury.io/js/bootstrap.svg)](http://badge.fury.io/js/bootstrap)
[![Build Status](https://secure.travis-ci.org/twbs/bootstrap.svg?branch=master)](http://travis-ci.org/twbs/bootstrap)
[![Build Status](https://secure.travis-ci.org/twbs/bootstrap.svg?branch=master)](https://travis-ci.org/twbs/bootstrap)
[![devDependency Status](https://david-dm.org/twbs/bootstrap/dev-status.svg)](https://david-dm.org/twbs/bootstrap#info=devDependencies)
[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap)
Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by [Mark Otto](http://twitter.com/mdo) and [Jacob Thornton](http://twitter.com/fat), and maintained by the [core team](https://github.com/twbs?tab=members) with the massive support and involvement of the community.
Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created by [Mark Otto](https://twitter.com/mdo) and [Jacob Thornton](https://twitter.com/fat), and maintained by the [core team](https://github.com/twbs?tab=members) with the massive support and involvement of the community.
To get started, check out <http://getbootstrap.com>!
## Table of contents
- [Quick start](#quick-start)
- [Bugs and feature requests](#bugs-and-feature-requests)
- [Documentation](#documentation)
- [Contributing](#contributing)
- [Community](#community)
- [Versioning](#versioning)
- [Creators](#creators)
- [Copyright and license](#copyright-and-license)
- [Quick start](#quick-start)
- [Bugs and feature requests](#bugs-and-feature-requests)
- [Documentation](#documentation)
- [Contributing](#contributing)
- [Community](#community)
- [Versioning](#versioning)
- [Creators](#creators)
- [Copyright and license](#copyright-and-license)
## Quick start
Three quick start options are available:
Four quick start options are available:
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.2.0.zip).
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v3.3.0.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`.
Read the [Getting started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more.
@@ -66,10 +67,11 @@ Bootstrap's documentation, included in this repo in the root directory, is built
### Running documentation locally
1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v2.0.x).
- **Windows users:** Read [this unofficial guide](https://github.com/juthilo/run-jekyll-on-windows/) to get Jekyll up and running without problems. We use Pygments for syntax highlighting, so make sure to read the sections on installing Python and Pygments.
2. From the root `/bootstrap` directory, run `jekyll serve` in the command line.
3. Open <http://localhost:9001> in your browser, and voilà.
1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v2.3.x).
- **Windows users:** Read [this unofficial guide](http://jekyll-windows.juthilo.com/) to get Jekyll up and running without problems.
2. Install the Ruby-based syntax highlighter, [Rouge](https://github.com/jneen/rouge), with `gem install rouge`.
3. From the root `/bootstrap` directory, run `jekyll serve` in the command line.
4. Open <http://localhost:9001> in your browser, and voilà.
Learn more about using Jekyll by reading its [documentation](http://jekyllrb.com/docs/home/).
@@ -85,7 +87,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](http://github.com/mdo/code-guide), maintained by [Mark Otto](http://github.com/mdo).
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).
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>.
@@ -95,9 +97,9 @@ Editor preferences are available in the [editor config](https://github.com/twbs/
Keep track of development and community news.
- Follow [@twbootstrap on Twitter](http://twitter.com/twbootstrap).
- Follow [@twbootstrap on Twitter](https://twitter.com/twbootstrap).
- 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 `##twitter-bootstrap` channel.
- 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)).
@@ -112,13 +114,13 @@ For transparency into our release cycle and in striving to maintain backward com
**Mark Otto**
- <http://twitter.com/mdo>
- <http://github.com/mdo>
- <https://twitter.com/mdo>
- <https://github.com/mdo>
**Jacob Thornton**
- <http://twitter.com/fat>
- <http://github.com/fat>
- <https://twitter.com/fat>
- <https://github.com/fat>
+8 -9
View File
@@ -1,6 +1,6 @@
# Dependencies
markdown: kramdown
highlighter: pygments
highlighter: rouge
# Permalinks
permalink: pretty
@@ -10,24 +10,23 @@ source: docs
destination: _gh_pages
host: 0.0.0.0
port: 9001
baseurl: /
url: http://getbootstrap.com
encoding: UTF-8
# Custom vars
current_version: 3.2.0
current_version: 3.3.0
repo: https://github.com/twbs/bootstrap
sass_repo: https://github.com/twbs/bootstrap-sass
download:
source: https://github.com/twbs/bootstrap/archive/v3.2.0.zip
dist: https://github.com/twbs/bootstrap/releases/download/v3.2.0/bootstrap-3.2.0-dist.zip
sass: https://github.com/twbs/bootstrap-sass/archive/v3.2.0.tar.gz
source: https://github.com/twbs/bootstrap/archive/v3.3.0.zip
dist: https://github.com/twbs/bootstrap/releases/download/v3.3.0/bootstrap-3.3.0-dist.zip
sass: https://github.com/twbs/bootstrap-sass/archive/v3.3.0.tar.gz
blog: http://blog.getbootstrap.com
expo: http://expo.getbootstrap.com
cdn:
css: //maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css
css_theme: //maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css
js: //maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js
css: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css
css_theme: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap-theme.min.css
js: https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js
+3 -3
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.2.0",
"version": "3.3.0",
"keywords": [
"css",
"js",
@@ -23,7 +23,7 @@
"dist/fonts/glyphicons-halflings-regular.woff"
],
"ignore": [
".*",
"/.*",
"_config.yml",
"CNAME",
"composer.json",
@@ -33,6 +33,6 @@
"test-infra"
],
"dependencies": {
"jquery": ">= 1.9.0"
"jquery": ">= 1.9.1"
}
}
+1 -1
View File
@@ -28,7 +28,7 @@
"license": "MIT",
"extra": {
"branch-alias": {
"dev-master": "3.2.x-dev"
"dev-master": "3.3.x-dev"
}
},
"replace": {
+26 -11
View File
@@ -1,5 +1,5 @@
/*!
* Bootstrap v3.2.0 (http://getbootstrap.com)
* Bootstrap v3.3.0 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
@@ -29,6 +29,14 @@
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
.btn:active,
.btn.active {
background-image: none;
@@ -223,12 +231,13 @@
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f3f3f3));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
@@ -246,12 +255,13 @@
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
background-image: -o-linear-gradient(top, #222 0%, #282828 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#222), to(#282828));
background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
@@ -376,6 +386,11 @@
background-repeat: repeat-x;
border-color: #3278b3;
}
.list-group-item.active .badge,
.list-group-item.active:hover .badge,
.list-group-item.active:focus .badge {
text-shadow: none;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
+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
+287 -132
View File
@@ -1,10 +1,10 @@
/*!
* Bootstrap v3.2.0 (http://getbootstrap.com)
* Bootstrap v3.3.0 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
html {
font-family: sans-serif;
-webkit-text-size-adjust: 100%;
@@ -22,6 +22,7 @@ footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
@@ -43,7 +44,7 @@ template {
display: none;
}
a {
background: transparent;
background-color: transparent;
}
a:active,
a:hover {
@@ -187,8 +188,11 @@ td,
th {
padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
* {
*,
*:before,
*:after {
color: #000 !important;
text-shadow: none !important;
background: transparent !important;
@@ -205,8 +209,8 @@ th {
abbr[title]:after {
content: " (" attr(title) ")";
}
a[href^="javascript:"]:after,
a[href^="#"]:after {
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
pre,
@@ -241,10 +245,6 @@ th {
.navbar {
display: none;
}
.table td,
.table th {
background-color: #fff !important;
}
.btn > .caret,
.dropup > .btn > .caret {
border-top-color: #000 !important;
@@ -255,6 +255,10 @@ th {
.table {
border-collapse: collapse !important;
}
.table td,
.table th {
background-color: #fff !important;
}
.table-bordered th,
.table-bordered td {
border: 1px solid #ddd !important;
@@ -284,7 +288,8 @@ th {
.glyphicon-plus:before {
content: "\2b";
}
.glyphicon-euro:before {
.glyphicon-euro:before,
.glyphicon-eur:before {
content: "\20ac";
}
.glyphicon-minus:before {
@@ -935,7 +940,6 @@ img {
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
display: block;
width: 100% \9;
max-width: 100%;
height: auto;
}
@@ -944,7 +948,6 @@ img {
}
.img-thumbnail {
display: inline-block;
width: 100% \9;
max-width: 100%;
height: auto;
padding: 4px;
@@ -1117,9 +1120,6 @@ small,
.small {
font-size: 85%;
}
cite {
font-style: normal;
}
mark,
.mark {
padding: .2em;
@@ -1328,10 +1328,6 @@ blockquote.pull-right small:after,
blockquote.pull-right .small:after {
content: '\00A0 \2014';
}
blockquote:before,
blockquote:after {
content: "";
}
address {
margin-bottom: 20px;
font-style: normal;
@@ -1362,6 +1358,7 @@ kbd {
kbd kbd {
padding: 0;
font-size: 100%;
font-weight: bold;
-webkit-box-shadow: none;
box-shadow: none;
}
@@ -2060,6 +2057,12 @@ pre code {
table {
background-color: transparent;
}
caption {
padding-top: 8px;
padding-bottom: 8px;
color: #777;
text-align: left;
}
th {
text-align: left;
}
@@ -2120,12 +2123,10 @@ th {
.table-bordered > thead > tr > td {
border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-child(odd) > td,
.table-striped > tbody > tr:nth-child(odd) > th {
.table-striped > tbody > tr:nth-child(odd) {
background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover > td,
.table-hover > tbody > tr:hover > th {
.table-hover > tbody > tr:hover {
background-color: #f5f5f5;
}
table col[class*="col-"] {
@@ -2244,13 +2245,15 @@ table th[class*="col-"] {
.table-hover > tbody > tr.danger:hover > th {
background-color: #ebcccc;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
}
@media screen and (max-width: 767px) {
.table-responsive {
width: 100%;
margin-bottom: 15px;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid #ddd;
}
@@ -2375,14 +2378,14 @@ output {
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
}
.form-control::-moz-placeholder {
color: #777;
color: #999;
opacity: 1;
}
.form-control:-ms-input-placeholder {
color: #777;
color: #999;
}
.form-control::-webkit-input-placeholder {
color: #777;
color: #999;
}
.form-control[disabled],
.form-control[readonly],
@@ -2409,12 +2412,44 @@ input[type="time"].input-sm,
input[type="datetime-local"].input-sm,
input[type="month"].input-sm {
line-height: 30px;
line-height: 1.5 \0;
}
input[type="date"].input-lg,
input[type="time"].input-lg,
input[type="datetime-local"].input-lg,
input[type="month"].input-lg {
line-height: 46px;
line-height: 1.33 \0;
}
_:-ms-fullscreen,
:root input[type="date"],
_:-ms-fullscreen,
:root input[type="time"],
_:-ms-fullscreen,
:root input[type="datetime-local"],
_:-ms-fullscreen,
:root input[type="month"] {
line-height: 1.42857143;
}
_:-ms-fullscreen.input-sm,
:root input[type="date"].input-sm,
_:-ms-fullscreen.input-sm,
:root input[type="time"].input-sm,
_:-ms-fullscreen.input-sm,
:root input[type="datetime-local"].input-sm,
_:-ms-fullscreen.input-sm,
:root input[type="month"].input-sm {
line-height: 1.5;
}
_:-ms-fullscreen.input-lg,
:root input[type="date"].input-lg,
_:-ms-fullscreen.input-lg,
:root input[type="time"].input-lg,
_:-ms-fullscreen.input-lg,
:root input[type="datetime-local"].input-lg,
_:-ms-fullscreen.input-lg,
:root input[type="month"].input-lg {
line-height: 1.33;
}
.form-group {
margin-bottom: 15px;
@@ -2423,12 +2458,12 @@ input[type="month"].input-lg {
.checkbox {
position: relative;
display: block;
min-height: 20px;
margin-top: 10px;
margin-bottom: 10px;
}
.radio label,
.checkbox label {
min-height: 20px;
padding-left: 20px;
margin-bottom: 0;
font-weight: normal;
@@ -2491,35 +2526,41 @@ fieldset[disabled] .checkbox label {
padding-left: 0;
}
.input-sm,
.form-horizontal .form-group-sm .form-control {
.form-group-sm .form-control {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 3px;
}
select.input-sm {
select.input-sm,
select.form-group-sm .form-control {
height: 30px;
line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
textarea.form-group-sm .form-control,
select[multiple].input-sm,
select[multiple].form-group-sm .form-control {
height: auto;
}
.input-lg,
.form-horizontal .form-group-lg .form-control {
.form-group-lg .form-control {
height: 46px;
padding: 10px 16px;
font-size: 18px;
line-height: 1.33;
border-radius: 6px;
}
select.input-lg {
select.input-lg,
select.form-group-lg .form-control {
height: 46px;
line-height: 46px;
}
textarea.input-lg,
select[multiple].input-lg {
textarea.form-group-lg .form-control,
select[multiple].input-lg,
select[multiple].form-group-lg .form-control {
height: auto;
}
.has-feedback {
@@ -2530,7 +2571,7 @@ select[multiple].input-lg {
}
.form-control-feedback {
position: absolute;
top: 25px;
top: 0;
right: 0;
z-index: 2;
display: block;
@@ -2538,6 +2579,7 @@ select[multiple].input-lg {
height: 34px;
line-height: 34px;
text-align: center;
pointer-events: none;
}
.input-lg + .form-control-feedback {
width: 46px;
@@ -2554,7 +2596,11 @@ select[multiple].input-lg {
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline {
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
color: #3c763d;
}
.has-success .form-control {
@@ -2580,7 +2626,11 @@ select[multiple].input-lg {
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline {
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
color: #8a6d3b;
}
.has-warning .form-control {
@@ -2606,7 +2656,11 @@ select[multiple].input-lg {
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline {
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
color: #a94442;
}
.has-error .form-control {
@@ -2627,6 +2681,9 @@ select[multiple].input-lg {
.has-error .form-control-feedback {
color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
top: 25px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
top: 0;
}
@@ -2647,6 +2704,9 @@ select[multiple].input-lg {
width: auto;
vertical-align: middle;
}
.form-inline .form-control-static {
display: inline-block;
}
.form-inline .input-group {
display: inline-table;
vertical-align: middle;
@@ -2707,7 +2767,6 @@ select[multiple].input-lg {
}
}
.form-horizontal .has-feedback .form-control-feedback {
top: 0;
right: 15px;
}
@media (min-width: 768px) {
@@ -2730,6 +2789,8 @@ select[multiple].input-lg {
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
@@ -2741,13 +2802,17 @@ select[multiple].input-lg {
}
.btn:focus,
.btn:active:focus,
.btn.active:focus {
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
outline: thin dotted;
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.btn:hover,
.btn:focus {
.btn:focus,
.btn.focus {
color: #333;
text-decoration: none;
}
@@ -2775,6 +2840,7 @@ fieldset[disabled] .btn {
}
.btn-default:hover,
.btn-default:focus,
.btn-default.focus,
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
@@ -2796,6 +2862,9 @@ fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
@@ -2816,6 +2885,7 @@ fieldset[disabled] .btn-default.active {
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary.focus,
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
@@ -2837,6 +2907,9 @@ fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
@@ -2857,6 +2930,7 @@ fieldset[disabled] .btn-primary.active {
}
.btn-success:hover,
.btn-success:focus,
.btn-success.focus,
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
@@ -2878,6 +2952,9 @@ fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus,
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
@@ -2898,6 +2975,7 @@ fieldset[disabled] .btn-success.active {
}
.btn-info:hover,
.btn-info:focus,
.btn-info.focus,
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
@@ -2919,6 +2997,9 @@ fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
@@ -2939,6 +3020,7 @@ fieldset[disabled] .btn-info.active {
}
.btn-warning:hover,
.btn-warning:focus,
.btn-warning.focus,
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
@@ -2960,6 +3042,9 @@ fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
@@ -2980,6 +3065,7 @@ fieldset[disabled] .btn-warning.active {
}
.btn-danger:hover,
.btn-danger:focus,
.btn-danger.focus,
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
@@ -3001,6 +3087,9 @@ fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
@@ -3017,11 +3106,11 @@ fieldset[disabled] .btn-danger.active {
.btn-link {
font-weight: normal;
color: #428bca;
cursor: pointer;
border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
background-color: transparent;
@@ -3091,9 +3180,11 @@ input[type="button"].btn-block {
}
.collapse {
display: none;
visibility: hidden;
}
.collapse.in {
display: block;
visibility: visible;
}
tr.collapse.in {
display: table-row;
@@ -3105,9 +3196,15 @@ tbody.collapse.in {
position: relative;
height: 0;
overflow: hidden;
-webkit-transition: height .35s ease;
-o-transition: height .35s ease;
transition: height .35s ease;
-webkit-transition-timing-function: ease;
-o-transition-timing-function: ease;
transition-timing-function: ease;
-webkit-transition-duration: .35s;
-o-transition-duration: .35s;
transition-duration: .35s;
-webkit-transition-property: height, visibility;
-o-transition-property: height, visibility;
transition-property: height, visibility;
}
.caret {
display: inline-block;
@@ -3413,12 +3510,13 @@ tbody.collapse.in {
.btn-group-justified > .btn-group .dropdown-menu {
left: auto;
}
[data-toggle="buttons"] > .btn > input[type="radio"],
[data-toggle="buttons"] > .btn > input[type="checkbox"] {
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
position: absolute;
z-index: -1;
filter: alpha(opacity=0);
opacity: 0;
clip: rect(0, 0, 0, 0);
pointer-events: none;
}
.input-group {
position: relative;
@@ -3757,9 +3855,11 @@ 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;
@@ -3806,6 +3906,7 @@ 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;
@@ -3821,7 +3922,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.navbar-fixed-bottom .navbar-collapse {
max-height: 340px;
}
@media (max-width: 480px) and (orientation: landscape) {
@media (max-device-width: 480px) and (orientation: landscape) {
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 200px;
@@ -3858,9 +3959,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
right: 0;
left: 0;
z-index: 1030;
-webkit-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
@media (min-width: 768px) {
.navbar-fixed-top,
@@ -3888,6 +3986,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.navbar-brand:focus {
text-decoration: none;
}
.navbar-brand > img {
display: block;
}
@media (min-width: 768px) {
.navbar > .container .navbar-brand,
.navbar > .container-fluid .navbar-brand {
@@ -3966,17 +4067,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
padding-top: 15px;
padding-bottom: 15px;
}
.navbar-nav.navbar-right:last-child {
margin-right: -15px;
}
}
@media (min-width: 768px) {
.navbar-left {
float: left !important;
}
.navbar-right {
float: right !important;
}
}
.navbar-form {
padding: 10px 15px;
@@ -4000,6 +4090,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
width: auto;
vertical-align: middle;
}
.navbar-form .form-control-static {
display: inline-block;
}
.navbar-form .input-group {
display: inline-table;
vertical-align: middle;
@@ -4040,6 +4133,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.navbar-form .form-group {
margin-bottom: 5px;
}
.navbar-form .form-group:last-child {
margin-bottom: 0;
}
}
@media (min-width: 768px) {
.navbar-form {
@@ -4052,9 +4148,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
-webkit-box-shadow: none;
box-shadow: none;
}
.navbar-form.navbar-right:last-child {
margin-right: -15px;
}
}
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
@@ -4087,7 +4180,16 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
margin-right: 15px;
margin-left: 15px;
}
.navbar-text.navbar-right:last-child {
}
@media (min-width: 768px) {
.navbar-left {
float: left !important;
}
.navbar-right {
float: right !important;
margin-right: -15px;
}
.navbar-right ~ .navbar-right {
margin-right: 0;
}
}
@@ -4192,7 +4294,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
border-color: #080808;
}
.navbar-inverse .navbar-brand {
color: #777;
color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
@@ -4200,10 +4302,10 @@ fieldset[disabled] .navbar-default .btn-link:focus {
background-color: transparent;
}
.navbar-inverse .navbar-text {
color: #777;
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
color: #777;
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
@@ -4250,7 +4352,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
color: #777;
color: #9d9d9d;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
@@ -4271,13 +4373,13 @@ fieldset[disabled] .navbar-default .btn-link:focus {
}
}
.navbar-inverse .navbar-link {
color: #777;
color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
color: #fff;
}
.navbar-inverse .btn-link {
color: #777;
color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
@@ -4545,7 +4647,7 @@ a.list-group-item.active > .badge,
margin-left: 3px;
}
.jumbotron {
padding: 30px;
padding: 30px 15px;
margin-bottom: 30px;
color: inherit;
background-color: #eee;
@@ -4562,7 +4664,8 @@ a.list-group-item.active > .badge,
.jumbotron > hr {
border-top-color: #d5d5d5;
}
.container .jumbotron {
.container .jumbotron,
.container-fluid .jumbotron {
border-radius: 6px;
}
.jumbotron .container {
@@ -4570,8 +4673,7 @@ a.list-group-item.active > .badge,
}
@media screen and (min-width: 768px) {
.jumbotron {
padding-top: 48px;
padding-bottom: 48px;
padding: 48px 0;
}
.container .jumbotron {
padding-right: 60px;
@@ -4590,9 +4692,9 @@ a.list-group-item.active > .badge,
background-color: #fff;
border: 1px solid #ddd;
border-radius: 4px;
-webkit-transition: all .2s ease-in-out;
-o-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
-webkit-transition: border .2s ease-in-out;
-o-transition: border .2s ease-in-out;
transition: border .2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
@@ -4745,18 +4847,6 @@ a.thumbnail.active {
-o-animation: progress-bar-stripes 2s linear infinite;
animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar[aria-valuenow="1"],
.progress-bar[aria-valuenow="2"] {
min-width: 30px;
}
.progress-bar[aria-valuenow="0"] {
min-width: 30px;
color: #777;
background-color: transparent;
background-image: none;
-webkit-box-shadow: none;
box-shadow: none;
}
.progress-bar-success {
background-color: #5cb85c;
}
@@ -4789,29 +4879,35 @@ a.thumbnail.active {
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.media,
.media-body {
overflow: hidden;
zoom: 1;
}
.media,
.media .media {
.media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
.media-object {
display: block;
.media-right,
.media > .pull-right {
padding-left: 10px;
}
.media-left,
.media > .pull-left {
padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
display: table-cell;
vertical-align: top;
}
.media-middle {
vertical-align: middle;
}
.media-bottom {
vertical-align: bottom;
}
.media-heading {
margin: 0 0 5px;
}
.media > .pull-left {
margin-right: 10px;
}
.media > .pull-right {
margin-left: 10px;
margin-top: 0;
margin-bottom: 5px;
}
.media-list {
padding-left: 0;
@@ -4860,6 +4956,7 @@ a.list-group-item:focus {
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
color: #777;
cursor: not-allowed;
background-color: #eee;
}
.list-group-item.disabled .list-group-item-heading,
@@ -5028,19 +5125,23 @@ a.list-group-item-danger.active:focus {
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
.panel > .list-group {
.panel > .list-group,
.panel > .panel-collapse > .list-group {
margin-bottom: 0;
}
.panel > .list-group .list-group-item {
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
border-width: 1px 0;
border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child {
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
border-top: 0;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}
.panel > .list-group:last-child .list-group-item:last-child {
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
border-bottom: 0;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
@@ -5056,11 +5157,24 @@ a.list-group-item-danger.active:focus {
.panel > .panel-collapse > .table {
margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
padding-right: 15px;
padding-left: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
@@ -5086,6 +5200,13 @@ a.list-group-item-danger.active:focus {
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
@@ -5107,7 +5228,9 @@ a.list-group-item-danger.active:focus {
border-bottom-right-radius: 3px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive {
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
@@ -5183,7 +5306,8 @@ a.list-group-item-danger.active:focus {
.panel-group .panel-heading {
border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body {
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
@@ -5310,7 +5434,8 @@ a.list-group-item-danger.active:focus {
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object {
.embed-responsive object,
.embed-responsive video {
position: absolute;
top: 0;
bottom: 0;
@@ -5381,7 +5506,7 @@ button.close {
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
z-index: 1040;
display: none;
overflow: hidden;
-webkit-overflow-scrolling: touch;
@@ -5391,14 +5516,16 @@ button.close {
-webkit-transition: -webkit-transform .3s ease-out;
-o-transition: -o-transform .3s ease-out;
transition: transform .3s ease-out;
-webkit-transform: translate3d(0, -25%, 0);
-o-transform: translate3d(0, -25%, 0);
transform: translate3d(0, -25%, 0);
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
-o-transform: translate(0, -25%);
transform: translate(0, -25%);
}
.modal.in .modal-dialog {
-webkit-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
.modal-open .modal {
overflow-x: hidden;
@@ -5427,7 +5554,6 @@ button.close {
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
@@ -5600,6 +5726,9 @@ button.close {
display: none;
max-width: 276px;
padding: 1px;
font-size: 14px;
font-weight: normal;
line-height: 1.42857143;
text-align: left;
white-space: normal;
background-color: #fff;
@@ -5627,8 +5756,6 @@ button.close {
padding: 8px 14px;
margin: 0;
font-size: 14px;
font-weight: normal;
line-height: 18px;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
border-radius: 5px 5px 0 0;
@@ -5731,6 +5858,37 @@ button.close {
.carousel-inner > .item > a > img {
line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
.carousel-inner > .item {
-webkit-transition: -webkit-transform .6s ease-in-out;
-o-transition: -o-transform .6s ease-in-out;
transition: transform .6s ease-in-out;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-perspective: 1000;
perspective: 1000;
}
.carousel-inner > .item.next,
.carousel-inner > .item.active.right {
left: 0;
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
}
.carousel-inner > .item.prev,
.carousel-inner > .item.active.left {
left: 0;
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
}
.carousel-inner > .item.next.left,
.carousel-inner > .item.prev.right,
.carousel-inner > .item.active {
left: 0;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
@@ -5986,9 +6144,6 @@ button.close {
}
.affix {
position: fixed;
-webkit-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
@-ms-viewport {
width: device-width;
+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
+1 -1
View File
@@ -226,4 +226,4 @@
<glyph unicode="&#xe199;" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
<glyph unicode="&#xe200;" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
</font>
</defs></svg>
</defs></svg>

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

+340 -178
View File
File diff suppressed because it is too large Load Diff
+3 -2
View File
File diff suppressed because one or more lines are too long
+13
View File
@@ -0,0 +1,13 @@
// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
require('../../js/transition.js')
require('../../js/alert.js')
require('../../js/button.js')
require('../../js/carousel.js')
require('../../js/collapse.js')
require('../../js/dropdown.js')
require('../../js/modal.js')
require('../../js/tooltip.js')
require('../../js/popover.js')
require('../../js/scrollspy.js')
require('../../js/tab.js')
require('../../js/affix.js')
+4
View File
@@ -17,3 +17,7 @@
- name: XhmikosR
user: xhmikosr
gravatar: e37759b1ea0125d4e97b1e00b5eed26f
- name: Heinrich Fenkart
user: hnrch02
gravatar: 0d53f5d3d3d28bd470f394d98f7ef48f
+9 -9
View File
@@ -1,7 +1,12 @@
- name: Red Antler
url: http://www.redantler.com/
expo_url: http://expo.getbootstrap.com/2014/02/24/redantler/
img: redantler
- name: Lyft
url: https://www.lyft.com
expo_url: http://expo.getbootstrap.com/2014/10/29/lyft/
img: lyft
- name: Vogue
url: http://www.vogue.com
expo_url: http://expo.getbootstrap.com/2014/09/30/vogue/
img: vogue
- name: Riot Design
url: http://riotdesign.eu/en/
@@ -12,8 +17,3 @@
url: http://www.newsweek.com/
expo_url: http://expo.getbootstrap.com/2014/02/12/newsweek/
img: newsweek
- name: Robinhood
url: https://www.robinhood.com
expo_url: http://expo.getbootstrap.com/2014/02/26/robinhood/
img: robinhood
+7 -2
View File
@@ -3,6 +3,11 @@
description: Bootstrap 中文文档
url: http://v3.bootcss.com/
- name: Danish
code: da
description: Bootstrap på Dansk
url: http://getbootstrap.dk/
- name: French
code: fr
description: Bootstrap en Français
@@ -35,5 +40,5 @@
- name: Ukrainian
code: uk
description: Bootstrap ua Українською
url: http://twbs.site-konstruktor.com.ua
description: Bootstrap українською
url: http://twbs.docs.org.ua
+5 -1
View File
@@ -1,7 +1,7 @@
<div class="bs-docs-section">
<h1 id="alerts" class="page-header">Alerts</h1>
<p class="lead">Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages. For inline dismissal, use the <a href="../javascript/#alerts">alerts jQuery plugin</a>.</p>
<p class="lead">Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages.</p>
<h2 id="alerts-examples">Examples</h2>
<p>Wrap any text and an optional dismiss button in <code>.alert</code> and one of the four contextual classes (e.g., <code>.alert-success</code>) for basic alert messages.</p>
@@ -34,6 +34,10 @@
<h2 id="alerts-dismissible">Dismissible alerts</h2>
<p>Build on any alert by adding an optional <code>.alert-dismissible</code> and close button.</p>
<div class="bs-callout bs-callout-info">
<h4>Requires JavaScript alert plugin</h4>
<p>For fully functioning, dismissible alerts, you must use the <a href="../javascript/#alerts">alerts JavaScript plugin</a>.</p>
</div>
<div class="bs-example">
<div class="alert alert-warning alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
+16 -32
View File
@@ -5,9 +5,17 @@
<div class="bs-example">
<a href="#">Inbox <span class="badge">42</span></a>
<br><br>
<button class="btn btn-primary" type="button">
Messages <span class="badge">4</span>
</button>
</div>
{% highlight html %}
<a href="#">Inbox <span class="badge">42</span></a>
<button class="btn btn-primary" type="button">
Messages <span class="badge">4</span>
</button>
{% endhighlight %}
<h4>Self collapsing</h4>
@@ -21,41 +29,17 @@
<h4>Adapts to active nav states</h4>
<p>Built-in styles are included for placing badges in active states in pill navigations.</p>
<div class="bs-example">
<ul class="nav nav-pills">
<li class="active"><a href="#">Home <span class="badge">42</span></a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Messages <span class="badge">3</span></a></li>
<ul class="nav nav-pills" role="tablist">
<li role="presentation" class="active"><a href="#">Home <span class="badge">42</span></a></li>
<li role="presentation"><a href="#">Profile</a></li>
<li role="presentation"><a href="#">Messages <span class="badge">3</span></a></li>
</ul>
<br>
<ul class="nav nav-pills nav-stacked" style="max-width: 260px;">
<li class="active">
<a href="#">
<span class="badge pull-right">42</span>
Home
</a>
</li>
<li><a href="#">Profile</a></li>
<li>
<a href="#">
<span class="badge pull-right">3</span>
Messages
</a>
</li>
</ul>
<br>
<button class="btn btn-primary" type="button">
Messages <span class="badge">4</span>
</button>
</div>
{% highlight html %}
<ul class="nav nav-pills nav-stacked">
<li class="active">
<a href="#">
<span class="badge pull-right">42</span>
Home
</a>
</li>
...
<ul class="nav nav-pills" role="tablist">
<li role="presentation" class="active"><a href="#">Home <span class="badge">42</span></a></li>
<li role="presentation"><a href="#">Profile</a></li>
<li role="presentation"><a href="#">Messages <span class="badge">3</span></a></li>
</ul>
{% endhighlight %}
</div>
+6 -6
View File
@@ -202,16 +202,16 @@
<p>Just wrap a series of <code>.btn</code>s in <code>.btn-group.btn-group-justified</code>.</p>
<div class="bs-example">
<div class="btn-group btn-group-justified">
<a class="btn btn-default" role="button">Left</a>
<a class="btn btn-default" role="button">Middle</a>
<a class="btn btn-default" role="button">Right</a>
<a href="#" class="btn btn-default" role="button">Left</a>
<a href="#" class="btn btn-default" role="button">Middle</a>
<a href="#" class="btn btn-default" role="button">Right</a>
</div>
<br>
<div class="btn-group btn-group-justified">
<a class="btn btn-default" role="button">Left</a>
<a class="btn btn-default" role="button">Middle</a>
<a href="#" class="btn btn-default" role="button">Left</a>
<a href="#" class="btn btn-default" role="button">Middle</a>
<div class="btn-group">
<a class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<a href="#" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
Dropdown <span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
+24 -4
View File
@@ -15,7 +15,6 @@
<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" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
@@ -30,7 +29,6 @@
<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" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
@@ -65,7 +63,6 @@
<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" class="divider"></li>
<li role="presentation" class="dropdown-header">Dropdown header</li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul>
@@ -73,10 +70,33 @@
</div><!-- /example -->
{% highlight html %}
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu2">
...
<li role="presentation" class="dropdown-header">Dropdown header</li>
...
</ul>
{% endhighlight %}
<h3 id="dropdowns-divider">Divider</h3>
<p>Add a divider to separate series of links in a dropdown menu.</p>
<div class="bs-example">
<div class="dropdown clearfix">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenuDivider" data-toggle="dropdown">
Dropdown
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuDivider">
<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" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="#">Separated link</a></li>
</ul>
</div>
</div><!-- /example -->
{% highlight html %}
<ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenuDivider">
...
<li role="presentation" class="divider"></li>
<li role="presentation" class="dropdown-header">Dropdown header</li>
...
</ul>
{% endhighlight %}
+4 -4
View File
@@ -45,10 +45,10 @@
<div class="bs-example">
<div class="btn-toolbar" role="toolbar">
<div class="btn-group">
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-left"></span></button>
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-center"></span></button>
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-right"></span></button>
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-justify"></span></button>
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-left"></span> <span class="sr-only">Left Align</span></button>
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-center"></span> <span class="sr-only">Center Align</span></button>
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-right"></span> <span class="sr-only">Right Align</span></button>
<button type="button" class="btn btn-default"><span class="glyphicon glyphicon-align-justify"></span> <span class="sr-only">Justify</span></button>
</div>
</div>
<div class="btn-toolbar" role="toolbar">
+3 -2
View File
@@ -1,11 +1,12 @@
<div class="bs-docs-section">
<h1 id="input-groups" class="page-header">Input groups</h1>
<p class="lead">Extend form controls by adding text or buttons before, after, or on both sides of any text-based input. Use <code>.input-group</code> with an <code>.input-group-addon</code> to prepend or append elements to a single <code>.form-control</code>.</p>
<p class="lead">Extend form controls by adding text or buttons before, after, or on both sides of any text-based <code>&lt;input&gt;</code>. Use <code>.input-group</code> with an <code>.input-group-addon</code> to prepend or append elements to a single <code>.form-control</code>.</p>
<div class="bs-callout bs-callout-danger">
<h4>Cross-browser compatibility</h4>
<h4>Textual <code>&lt;input&gt;</code>s only</h4>
<p>Avoid using <code>&lt;select&gt;</code> elements here as they cannot be fully styled in WebKit browsers.</p>
<p>Avoid using <code>&lt;textarea&gt;</code> elements here as their <code>rows</code> attribute will not be respected in some cases.</p>
</div>
<div class="bs-callout bs-callout-warning">
<h4>Tooltips &amp; popovers in input groups require special setting</h4>
+2 -2
View File
@@ -6,14 +6,14 @@
<div class="jumbotron">
<h1>Hello, world!</h1>
<p>This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.</p>
<p><a class="btn btn-primary btn-lg" role="button">Learn more</a></p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
</div>
</div>
{% highlight html %}
<div class="jumbotron">
<h1>Hello, world!</h1>
<p>...</p>
<p><a class="btn btn-primary btn-lg" role="button">Learn more</a></p>
<p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more</a></p>
</div>
{% endhighlight %}
<p>To make the jumbotron full width, and without rounded corners, place it outside all <code>.container</code>s and instead add a <code>.container</code> within.</p>
+87 -28
View File
@@ -4,11 +4,11 @@
<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>
<p>The default media allow to float a media object (images, video, audio) to the left or right of a content block.</p>
<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">
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
<a class="media-left" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Media heading</h4>
@@ -16,15 +16,15 @@
</div>
</div>
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
<a class="media-left" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Media heading</h4>
Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
<a class="media-left" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Nested media heading</h4>
@@ -33,17 +33,85 @@
</div>
</div>
</div>
<div class="media">
<div class="media-body">
<h4 class="media-heading">Media heading</h4>
Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
</div>
<a class="media-right" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
</div>
<div class="media">
<a class="pull-right" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<a class="pull-left" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Deprecated pull-right pull-left example</h4>
Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
</div>
</div>
</div><!-- /.bs-example -->
{% highlight html %}
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" src="..." alt="...">
<a class="media-left" href="#">
<img src="..." alt="...">
</a>
<div class="media-body">
<h4 class="media-heading">Media heading</h4>
...
</div>
</div>
{% 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>
<p>The images or other media can be aligned top, middle, or bottom. The default is top aligned.</p>
<div class="bs-example">
<div class="media">
<a class="media-left" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Top aligned media</h4>
<p>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</p>
<p>Donec sed odio dui. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</div>
</div>
<div class="media">
<a class="media-left media-middle" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Middle aligned media</h4>
<p>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</p>
<p>Donec sed odio dui. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</div>
</div>
<div class="media">
<a class="media-left media-bottom" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Bottom aligned media</h4>
<p>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.</p>
<p>Donec sed odio dui. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
</div>
</div>
</div>
{% highlight html %}
<div class="media">
<a class="media-left media-middle" href="#">
<img data-src="..." alt="...">
</a>
<div class="media-body">
<h4 class="media-heading">Middle aligned media</h4>
...
</div>
</div>
{% endhighlight %}
<h3 id="media-list">Media list</h3>
@@ -51,24 +119,24 @@
<div class="bs-example">
<ul class="media-list">
<li class="media">
<a class="pull-left" href="#">
<img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
<a class="media-left" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Media heading</h4>
<p>Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.</p>
<!-- Nested media object -->
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
<a class="media-left" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Nested media heading</h4>
Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
<!-- Nested media object -->
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
<a class="media-left" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Nested media heading</h4>
@@ -79,8 +147,8 @@
</div>
<!-- Nested media object -->
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
<a class="media-left" href="#">
<img data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Nested media heading</h4>
@@ -89,22 +157,13 @@
</div>
</div>
</li>
<li class="media">
<a class="pull-right" href="#">
<img class="media-object" data-src="holder.js/64x64" alt="Generic placeholder image">
</a>
<div class="media-body">
<h4 class="media-heading">Media heading</h4>
Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis.
</div>
</li>
</ul>
</div>
{% highlight html %}
<ul class="media-list">
<li class="media">
<a class="pull-left" href="#">
<img class="media-object" src="..." alt="...">
<a class="media-left" href="#">
<img src="..." alt="...">
</a>
<div class="media-body">
<h4 class="media-heading">Media heading</h4>
+37 -10
View File
@@ -3,6 +3,7 @@
<h2 id="navbar-default">Default navbar</h2>
<p>Navbars are responsive meta components that serve as navigation headers for your application or site. They begin collapsed (and are toggleable) in mobile views and become horizontal as the available viewport width increases.</p>
<p><strong class="text-danger">Justified navbar nav links are currently not supported.</strong></p>
<div class="bs-callout bs-callout-warning" id="callout-navbar-overflow">
<h4>Overflowing content</h4>
@@ -27,7 +28,7 @@
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -82,7 +83,7 @@
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -144,6 +145,32 @@
</div>
<h2 id="navbar-brand-image">Brand image</h2>
<p>Replace the navbar brand with your own image by swapping the text for an <code>&lt;img&gt;</code>. Since the <code>.navbar-brand</code> has its own padding and height, you may need to override some CSS depending on your image.</p>
<div class="bs-example">
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">
<img alt="Brand" height="20" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACYCAYAAAAYwiAhAAAMU0lEQVR4AeyZzU4TARSFhx08ienKiAsSSymliEjpdBBqoUX++gMJupZC/6B0prPUhIRI4qvIwoUhxAU8gBKiS0kkYQW5npsUAZloy4xYp3fxJSxYDMOXc07uKETkGJmI6clo5iLYmtfMbXAwP2IeA2oNqo6Q0W6N40ykegC205HqFlgEHiedcECq6j0ItQGZDptcABGqXiLVQ7CRVo3OfyLYU1+uDQ+iQaqdyy8cD0Szj9fp2cM1SvSVaNxfoFhPnvD7LmDFEaLdzQP/Xfz/iQeKNNm/SjODZUqFK7/IZuykVV2Ldi+33YpgMLsLibV7LlUqbNDUwBrLxA8sMlkI1bwsWwHpcgiJEiWHL2RLRYzdlKp3/TXBkE4dXIWQ6gzQXKhC8b6iCPWfy2TF2CXGA3maGSpTGpKBs3TE2EyG9Q5HBYNYHki1f55YLJbI5A6hxuqERZsbrtREM/aRaB5HBEMl+hZGzCPsLd5WIpQL0skOif4SIcW4No9SquGzJRjkUpFaJzzeJwJFkckV6WSfWG+e9xmLdoJGU28kGOTyslzJYZ1i/rwLZJJ0soX3KlG8t9mh9ZpkurchwXBsu7Ogmd+SIcjVk2+5dBKZ6gPPAcnKfMpAXeqeugRDarVjb+0huVgukcldVWdDqKwVNcmQZKq+hzRr/6NgGc3c5M2FWhShWjadsg0R9S3zJmPJNn8rGB9RkV6nzg96SafmlYnJ2ibmz7Fgp/gS0GUpGH/+gVwfcYqQIS7p1BCjNeLBIqUi+i5+brsmGNJL4yOqC9JJZLoVoayZDa1TUq1o1wRDen3AhV5kcuEQty9T/cR6c5RS9Z0rgiG9OvFtUYRq8apjRh1genCNsMXuXwimma+QXpJOUnWN82DpGjH/Cgv2+qdguHl9lXSSqrupUFbgAPuF3UI9GnenBlal6qyRdLohiWCBkuGKB/VYfTHuz0vVMZJOjoH3wYI9V7D437ZSOskQd16mJ9bQTKj8Rpl+VH4v6SRVZ1soCyYHSu+URLD0WWSSqrMrkxXxYOGTMhEofJeqk3SyK9MFL8/hc8WxEuvJSzpJ1dmWyYqx7izxR24Z4pJOtmWyYtS7RIpUXeNIOtWP0tpVJ0P8Rzt39ptlEcVx/HDHPwJeIUvRondcSG3LoneiFKIXKG3ZRMGyaGSRVcJarKxuiUQWNxCI7DS2mFAEb0ohCg0mGilqgiiBPJ4M9SX1TF4Z3jnvb9r3TPK9NdF+cuZ5Z57HeJi4x2Rk06n3b3V4ULKnu6PUz5wuXejs9X1/tiPbv/eka8WCHdnMSW/3iekkQcko9enUh5fDd+zQt1njyp3ZC2MX9XpMstkZpb7VldI6z5PuvU2fA0DFweSLUn8QL8V1/drvbjtNfTrJZJT6gzh24aFtXLkzvekUEAEwGbDwrZOf0RaippMmMPyZk62766fOXxwyLKbwKOkzJwnMkI1ZmBIm0VMjekapH2DKZcieZ2R4UBKT7NWM8KAMWOg63XweP50kJm+U+vWKf9lavmB7cph8UeqXv/5lq4uPMECgFIEpYzJgYWvHps8AmMIi4HQyYBEe+GM8iGtGqb+aYiv/mj5xZYTppBel/hZm/mXrkw8OgTHJxo14JRel/uJc7MWXyLGuV3h6rOJfczu62+7+2Pz6Db+Gc6V410htHQmBkhEeEwCY/vUKH4a+6R7C+deeKrCbf/6Fx+Sr/G6U+jviCsCKfsWyf+8JTWPJYPJFKWGSqQBDXK+4aaa1ls3fVjxQ5WERGhQAGOy+jp/RAMAUplNABMYEAHYCevl7sf0KBJg+Jn+U+udQCsCg1ysbVnysDgyFaWz5LBHhMcnwwHRPxDWA4UH5o9Q/h1IABr+v421SFxgIky9KDRQAmAImADA8KG+U+udQsdc+Boa+rzvfdgEMTGBSi1L/HEoBmAIm7ARDYRI9KiPkdMIBw97VxQTGV1EpgRIRHhMYGOCKJeb9ZGvzORwm0csiCsCkDAoADHBfN61mRRZzbW/8FA/K05juKAAU4HpFFxjgvo6viw5mMdfE6tfxmPJEKX6sqQ8Mc/k7qfqN2NujEiYuHJM3SvBjzR5pAQNc/joQMdfUmuWA6RQWJfixpj4wwH3dvj1x3wk7eug0AFN4hMYEAKYJSsRTJvq519XOn92zV0qgRI/MdFGRtrrEgOnf182but5tiRqvSM+rX58kJl+EnE4AYO6PzlcrBbd0/tZc+/Ycz8XXQA4BL21cyWEa7YkA0ykoWz1wpQ5KRBJUWt/X2XLPXA4XHlN4lBImmQE7erA1q6legAEVIQqCALheKeWptXTeFiQmADDA9UopLv6hoIdJtRkiQk4nmaikH+pbT53L5tav7w2gRNXdEWA6BZXZcge1vF0mj8kXIaeTAQtaPNG+y2qqFiQJSjT8bgTBFHAibktunW/xNINj8oMSUWIfa4ps+de2xr3JYfJFYFAKwAyZxlYX3nQXATApADNkiOkkQclIH5MB014N9Wsh00kUDgz/OZTG/1+ef/YX0GVvQa9CK/w7TaiajwflifCY8hd78Ss1RTkR5196bvviowX3y097fbnnGAqTqCqXBJba93UawCAn4oxNc8o5xHXPLYViEpUxsIQwicboAEOeiLtJo7WOHGxVBSURCVAiSgXUGJkeMOwVC2+fm93E0ZhiEyrnF206yUKB4T+HUnhWOZ7E9cq65R/pHFts3FO06SSbJiI0Jjww3PVKC/8AiL3OtbUXbTpJUDICgEoRGOREnB/KNbZJGCZflPq3dfrAoPd1buLEXkvmbo671QVU+Z8o/EFcFZRIHxj0vs49M8VeO9//yo9JH5SIGE7K39dpHEiCMDlQooa6NfH/HXcfg2DyRXhMMn1guMtfX7EXX10VDKoyUgQFhQEGwAQAhgHFTe0RATChgcFBVfVMAxgEk2gYAwNgwgNL7L5OFVgRMfmi1D+H0geGv6+LvToYmCqoYfcfpf5tnS4w/H0dHlj4dAqJEgMl0gEmoaCuV5bMfRcATAWT6EmOksEEAAa4/BUdOdiiA0x/OglMslBggPs6fWDY+7qua79lsRejLT4mUb2L0sFUPGASEea+7ovdRzONxf/ceFtdACZfhPlYEwssAJPaificujVq7+ovaWiCYAoABrv8FSnd0+lf/oJw8UKCElGKH2vqA8Nd/q5d9qEqrnNn2iGYREPvRkBMIGBH9UH5Yblfd9pr68bdOUwAUCIKwAS4XsEBqywwPt9yf+yWU2fFxNL8dG18RQMCk6iiO0oMlCj24mMB8VV2R4QSWA6zxKQPqiJPBMUkCrhGsSWm15RnFxdtOuWvLpcEBr38NWAFnH0BMAlQIgrCBLivs3V/2/74itfCQClg8kVpYBIFALM1p3Y1ZDoFA8ODMmDhxxK7FKZTvAiAKeiYwFaeS+0DLVEexDVzwOCXv3my5V8tJ8+GTidIBJlOAdmSa8uGXVhMAREeUwgwO+ta3NCEBxUQBWCCfFtn696W+AwfReDRhEV4UFPzZMA62n/kqfVOr8A0akitiAIwQb6vM1i9BlMAMBAmX6V2In/4wDfZS+MX9VZQIlKYTgGYDBhPKr5HPJLNrl2dEqZoUXGmkwFjSDlMfMyA3/50QIkIjwn/Wi+HPxHHY1KJkKDSxyQzTGFRn8SEuvw1UCKyrc4wKfY3MYY/bDoZKKV+JQbyQ9KgDFOv64khU1yjhtZeIj4HO24P4oVmmHxVDKs7Tvw+WJNtdQaqAEz5gDXR6PIZtfYgHppNJ2+De1ZZVv8ijXt81iDb6mQ2nYJBiUaXT3+IsiwjRnHVtrr82XQKrpNt0b/AVtl0EhmmwlqVA1Y1fNpgm0621cWM/zsOzgHrnmLN9iBu0ylSzd2u7gFjPNW21dl0ilS1AMZY+nGtNp0MU4G1cv0EsG5kZdxtm0621T1gt7ky50kAyyGrW2ugbDo9YGtzlvIA68+dMUw2nQI7w/X3A5PIBnBdhsmm0312nRsoLXmB5ZCVczcMlGH6n25w5dKQBOZDVsXdNEwuwyS7yVUJOwJYfmQjw7dLm04lUBc3MmclHJh4Jmsr1elkmERt3ABhJRyY+HW5hrtjD+Il2x1unfi1WAAwEf+ByrgWw1RytfQ4RI0KTCLrx1VzzbbV9fmauerc9Y86MIltELeau9xnppN1hVvNPRxgQQGYxDaQm8w1cl9zF7ku7lZy08m6xXVxF7nDXCM3WR6YFtY/g9j2sjS1K/4AAAAASUVORK5CYII=">
</a>
</div>
</div>
</nav>
</div>
{% highlight html %}
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#">
<img alt="Brand" src="...">
</a>
</div>
</div>
</nav>
{% endhighlight %}
<h2 id="navbar-forms">Forms</h2>
<p>Place form content within <code>.navbar-form</code> for proper vertical alignment and collapsed behavior in narrow viewports. Use the alignment options to decide where it resides within the navbar content.</p>
<p>As a heads up, <code>.navbar-form</code> shares much of its code with <code>.form-inline</code> via mixin. <strong class="text-danger">Some form controls, like input groups, may require fixed widths to be show up properly within a navbar.</strong></p>
@@ -151,7 +178,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-2">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-2">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -196,7 +223,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-3">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-3">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -225,7 +252,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-4">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-4">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -250,7 +277,7 @@
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-5">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-5">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -286,7 +313,7 @@
<!-- We use the fluid option here to avoid overriding the fixed width of a normal container within the narrow content columns. -->
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-6">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-6">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -330,7 +357,7 @@ body { padding-top: 70px; }
<!-- We use the fluid option here to avoid overriding the fixed width of a normal container within the narrow content columns. -->
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-7">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-7">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -375,7 +402,7 @@ body { padding-bottom: 70px; }
<!-- We use the fluid option here to avoid overriding the fixed width of a normal container within the narrow content columns. -->
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-8">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-8">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -411,7 +438,7 @@ body { padding-bottom: 70px; }
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-9">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-9">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
+45 -44
View File
@@ -7,16 +7,16 @@
<p>Note the <code>.nav-tabs</code> class requires the <code>.nav</code> base class.</p>
<div class="bs-example">
<ul class="nav nav-tabs" role="tablist">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Messages</a></li>
<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>
</ul>
</div>
{% highlight html %}
<ul class="nav nav-tabs" role="tablist">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Messages</a></li>
<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>
</ul>
{% endhighlight %}
<div class="bs-callout bs-callout-info">
@@ -27,29 +27,29 @@
<h2 id="nav-pills">Pills</h2>
<p>Take that same HTML, but use <code>.nav-pills</code> instead:</p>
<div class="bs-example">
<ul class="nav nav-pills">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Messages</a></li>
<ul class="nav nav-pills" role="tablist">
<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>
</ul>
</div>
{% highlight html %}
<ul class="nav nav-pills">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Messages</a></li>
<ul class="nav nav-pills" role="tablist">
<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>
</ul>
{% endhighlight %}
<p>Pills are also vertically stackable. Just add <code>.nav-stacked</code>.</p>
<div class="bs-example">
<ul class="nav nav-pills nav-stacked" style="max-width: 300px;">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Messages</a></li>
<ul class="nav nav-pills nav-stacked" role="tablist" style="max-width: 300px;">
<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>
</ul>
</div>
{% highlight html %}
<ul class="nav nav-pills nav-stacked">
<ul class="nav nav-pills nav-stacked" role="tablist">
...
</ul>
{% endhighlight %}
@@ -57,28 +57,29 @@
<h2 id="nav-justified">Justified</h2>
<p>Easily make tabs or pills equal widths of their parent at screens wider than 768px with <code>.nav-justified</code>. On smaller screens, the nav links are stacked.</p>
<p><strong class="text-danger">Justified navbar nav links are currently not supported.</strong></p>
<div class="bs-callout bs-callout-warning">
<h4>Safari and responsive justified navs</h4>
<p>As of v7.0.1, Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing. This bug is also shown in the <a href="../examples/justified-nav/">justified nav example</a>.</p>
<p>As of v8.0, Safari exhibits a bug in which resizing your browser horizontally causes rendering errors in the justified nav that are cleared upon refreshing. This bug is also shown in the <a href="../examples/justified-nav/">justified nav example</a>.</p>
</div>
<div class="bs-example">
<ul class="nav nav-tabs nav-justified" role="tablist">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Messages</a></li>
<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>
</ul>
<br>
<ul class="nav nav-pills nav-justified">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Messages</a></li>
<ul class="nav nav-pills nav-justified" role="tablist">
<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>
</ul>
</div>
{% highlight html %}
<ul class="nav nav-tabs nav-justified" role="tablist">
...
</ul>
<ul class="nav nav-pills nav-justified">
<ul class="nav nav-pills nav-justified" role="tablist">
...
</ul>
{% endhighlight %}
@@ -93,16 +94,16 @@
</div>
<div class="bs-example">
<ul class="nav nav-pills">
<li><a href="#">Clickable link</a></li>
<li><a href="#">Clickable link</a></li>
<li class="disabled"><a href="#">Disabled link</a></li>
<ul class="nav nav-pills" role="tablist">
<li role="presentation"><a href="#">Clickable link</a></li>
<li role="presentation"><a href="#">Clickable link</a></li>
<li role="presentation" class="disabled"><a href="#">Disabled link</a></li>
</ul>
</div>
{% highlight html %}
<ul class="nav nav-pills">
<ul class="nav nav-pills" role="tablist">
...
<li class="disabled"><a href="#">Disabled link</a></li>
<li role="presentation" class="disabled"><a href="#">Disabled link</a></li>
...
</ul>
{% endhighlight %}
@@ -114,9 +115,9 @@
<h3>Tabs with dropdowns</h3>
<div class="bs-example">
<ul class="nav nav-tabs" role="tablist">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Help</a></li>
<li class="dropdown">
<li role="presentation" class="active"><a href="#">Home</a></li>
<li role="presentation"><a href="#">Help</a></li>
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
Dropdown <span class="caret"></span>
</a>
@@ -133,7 +134,7 @@
{% highlight html %}
<ul class="nav nav-tabs" role="tablist">
...
<li class="dropdown">
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
Dropdown <span class="caret"></span>
</a>
@@ -147,10 +148,10 @@
<h3>Pills with dropdowns</h3>
<div class="bs-example">
<ul class="nav nav-pills">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Help</a></li>
<li class="dropdown">
<ul class="nav nav-pills" role="tablist">
<li role="presentation" class="active"><a href="#">Home</a></li>
<li role="presentation"><a href="#">Help</a></li>
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
Dropdown <span class="caret"></span>
</a>
@@ -165,9 +166,9 @@
</ul>
</div><!-- /example -->
{% highlight html %}
<ul class="nav nav-pills">
<ul class="nav nav-pills" role="tablist">
...
<li class="dropdown">
<li role="presentation" class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
Dropdown <span class="caret"></span>
</a>
+119 -97
View File
@@ -6,73 +6,7 @@
<h2 id="pagination-default">Default pagination</h2>
<p>Simple pagination inspired by Rdio, great for apps and search results. The large block is hard to miss, easily scalable, and provides large click areas.</p>
<div class="bs-example">
<ul class="pagination">
<li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
</div>
{% highlight html %}
<ul class="pagination">
<li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
{% endhighlight %}
<h3>Disabled and active states</h3>
<p>Links are customizable for different circumstances. Use <code>.disabled</code> for unclickable links and <code>.active</code> to indicate the current page.</p>
<div class="bs-example">
<ul class="pagination">
<li class="disabled"><a href="#">&laquo;</a></li>
<li class="active"><a href="#">1 <span class="sr-only">(current)</span></a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
</div>
{% highlight html %}
<ul class="pagination">
<li class="disabled"><a href="#">&laquo;</a></li>
<li class="active"><a href="#">1 <span class="sr-only">(current)</span></a></li>
...
</ul>
{% endhighlight %}
<p>You can optionally swap out active or disabled anchors for <code>&lt;span&gt;</code> to remove click functionality while retaining intended styles.</p>
{% highlight html %}
<ul class="pagination">
<li class="disabled"><span>&laquo;</span></li>
<li class="active"><span>1 <span class="sr-only">(current)</span></span></li>
...
</ul>
{% endhighlight %}
<h3>Sizing</h3>
<p>Fancy larger or smaller pagination? Add <code>.pagination-lg</code> or <code>.pagination-sm</code> for additional sizes.</p>
<div class="bs-example">
<div>
<ul class="pagination pagination-lg">
<li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
</div>
<div>
<nav>
<ul class="pagination">
<li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li>
@@ -82,8 +16,84 @@
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
</div>
<div>
</nav>
</div>
{% highlight html %}
<nav>
<ul class="pagination">
<li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
</nav>
{% endhighlight %}
<h3>Disabled and active states</h3>
<p>Links are customizable for different circumstances. Use <code>.disabled</code> for unclickable links and <code>.active</code> to indicate the current page.</p>
<div class="bs-example">
<nav>
<ul class="pagination">
<li class="disabled"><a href="#">&laquo;</a></li>
<li class="active"><a href="#">1 <span class="sr-only">(current)</span></a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
</nav>
</div>
{% highlight html %}
<nav>
<ul class="pagination">
<li class="disabled"><a href="#">&laquo;</a></li>
<li class="active"><a href="#">1 <span class="sr-only">(current)</span></a></li>
...
</ul>
</nav>
{% endhighlight %}
<p>You can optionally swap out active or disabled anchors for <code>&lt;span&gt;</code> to remove click functionality while retaining intended styles.</p>
{% highlight html %}
<nav>
<ul class="pagination">
<li class="disabled"><span>&laquo;</span></li>
<li class="active"><span>1 <span class="sr-only">(current)</span></span></li>
...
</ul>
</nav>
{% endhighlight %}
<h3>Sizing</h3>
<p>Fancy larger or smaller pagination? Add <code>.pagination-lg</code> or <code>.pagination-sm</code> for additional sizes.</p>
<div class="bs-example">
<nav>
<ul class="pagination pagination-lg">
<li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
</nav>
<nav>
<ul class="pagination">
<li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
</nav>
<nav>
<ul class="pagination pagination-sm">
<li><a href="#">&laquo;</a></li>
<li><a href="#">1</a></li>
@@ -93,12 +103,12 @@
<li><a href="#">5</a></li>
<li><a href="#">&raquo;</a></li>
</ul>
</div>
</nav>
</div>
{% highlight html %}
<ul class="pagination pagination-lg">...</ul>
<ul class="pagination">...</ul>
<ul class="pagination pagination-sm">...</ul>
<nav><ul class="pagination pagination-lg">...</ul></nav>
<nav><ul class="pagination">...</ul></nav>
<nav><ul class="pagination pagination-sm">...</ul></nav>
{% endhighlight %}
@@ -108,46 +118,58 @@
<h3>Default example</h3>
<p>By default, the pager centers links.</p>
<div class="bs-example">
<ul class="pager">
<li><a href="#">Previous</a></li>
<li><a href="#">Next</a></li>
</ul>
<nav>
<ul class="pager">
<li><a href="#">Previous</a></li>
<li><a href="#">Next</a></li>
</ul>
</nav>
</div>
{% highlight html %}
<ul class="pager">
<li><a href="#">Previous</a></li>
<li><a href="#">Next</a></li>
</ul>
<nav>
<ul class="pager">
<li><a href="#">Previous</a></li>
<li><a href="#">Next</a></li>
</ul>
</nav>
{% endhighlight %}
<h3>Aligned links</h3>
<p>Alternatively, you can align each link to the sides:</p>
<div class="bs-example">
<ul class="pager">
<li class="previous"><a href="#">&larr; Older</a></li>
<li class="next"><a href="#">Newer &rarr;</a></li>
</ul>
<nav>
<ul class="pager">
<li class="previous"><a href="#">&larr; Older</a></li>
<li class="next"><a href="#">Newer &rarr;</a></li>
</ul>
</nav>
</div>
{% highlight html %}
<ul class="pager">
<li class="previous"><a href="#">&larr; Older</a></li>
<li class="next"><a href="#">Newer &rarr;</a></li>
</ul>
<nav>
<ul class="pager">
<li class="previous"><a href="#">&larr; Older</a></li>
<li class="next"><a href="#">Newer &rarr;</a></li>
</ul>
</nav>
{% endhighlight %}
<h3>Optional disabled state</h3>
<p>Pager links also use the general <code>.disabled</code> utility class from the pagination.</p>
<div class="bs-example">
<ul class="pager">
<li class="previous disabled"><a href="#">&larr; Older</a></li>
<li class="next"><a href="#">Newer &rarr;</a></li>
</ul>
<nav>
<ul class="pager">
<li class="previous disabled"><a href="#">&larr; Older</a></li>
<li class="next"><a href="#">Newer &rarr;</a></li>
</ul>
</nav>
</div>
{% highlight html %}
<ul class="pager">
<li class="previous disabled"><a href="#">&larr; Older</a></li>
<li class="next"><a href="#">Newer &rarr;</a></li>
</ul>
<nav>
<ul class="pager">
<li class="previous disabled"><a href="#">&larr; Older</a></li>
<li class="next"><a href="#">Newer &rarr;</a></li>
</ul>
</nav>
{% endhighlight %}
</div>
+4 -3
View File
@@ -112,7 +112,7 @@
</div>
<div class="progress">
<div class="progress-bar progress-bar-danger" role="progressbar" aria-valuenow="80" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
<span class="sr-only">80% Complete</span>
<span class="sr-only">80% Complete (danger)</span>
</div>
</div>
{% endhighlight %}
@@ -168,12 +168,13 @@
<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">
<div class="progress">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 45%"><span class="sr-only">45% Complete</span></div>
<div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 45%"><span class="sr-only">45% Complete</span></div>
</div>
<button type="button" class="btn btn-default bs-docs-activate-animated-progressbar" data-toggle="button" aria-pressed="false" autocomplete="off">Toggle animation</button>
</div>
{% highlight html %}
<div class="progress">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 45%">
<div class="progress-bar progress-bar-striped active" role="progressbar" aria-valuenow="45" aria-valuemin="0" aria-valuemax="100" style="width: 45%">
<span class="sr-only">45% Complete</span>
</div>
</div>
@@ -2,7 +2,7 @@
<h1 id="responsive-embed" class="page-header">Responsive embed</h1>
<p>Allow browsers to determine video or slideshow dimensions based on the width of their containing block by creating an intrinsic ratio that will properly scale on any device.</p>
<p>Rules are directly applied to <code>&lt;iframe&gt;</code>, <code>&lt;embed&gt;</code>, and <code>&lt;object&gt;</code> elements; optionally use an explicit descendant class <code>.embed-responsive-item</code> when you want to match the styling for other attributes.</p>
<p>Rules are directly applied to <code>&lt;iframe&gt;</code>, <code>&lt;embed&gt;</code>, <code>&lt;video&gt;</code>, and <code>&lt;object&gt;</code> elements; optionally use an explicit descendant class <code>.embed-responsive-item</code> when you want to match the styling for other attributes.</p>
<p><strong>Pro-Tip!</strong> You don't need to include <code>frameborder="0"</code> in your <code>&lt;iframe&gt;</code>s as we override that for you.</p>
<div class="bs-example">
<div class="embed-responsive embed-responsive-16by9">
@@ -12,12 +12,12 @@
{% highlight html %}
<!-- 16:9 aspect ratio -->
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src=""></iframe>
<iframe class="embed-responsive-item" src="..."></iframe>
</div>
<!-- 4:3 aspect ratio -->
<div class="embed-responsive embed-responsive-4by3">
<iframe class="embed-responsive-item" src=""></iframe>
<iframe class="embed-responsive-item" src="..."></iframe>
</div>
{% endhighlight %}
</div>
+1 -1
View File
@@ -114,7 +114,7 @@
<h2 id="buttons-disabled">Disabled state</h2>
<p>Make buttons look unclickable by fading them back 50%.</p>
<p>Make buttons look unclickable by fading them back with <code>opacity</code>.</p>
<h3>Button element</h3>
<p>Add the <code>disabled</code> attribute to <code>&lt;button&gt;</code> buttons.</p>
+2 -1
View File
@@ -17,7 +17,8 @@ For example, <code>&lt;section&gt;</code> should be wrapped as inline.
To edit settings, press <kbd><kbd>ctrl</kbd> + <kbd>,</kbd></kbd>
</div>
{% highlight html %}
To switch directories, type <kbd>cd</kbd> followed by the name of the directory.
To switch directories, type <kbd>cd</kbd> followed by the name of the directory.<br>
To edit settings, press <kbd><kbd>ctrl</kbd> + <kbd>,</kbd></kbd>
{% endhighlight %}
<h2 id="code-block">Basic block</h2>
+117 -7
View File
@@ -49,17 +49,17 @@
<button type="submit" class="btn btn-default">Submit</button>
</form>
{% endhighlight %}
<div class="bs-callout bs-callout-warning">
<h4>Don't mix form groups with input groups</h4>
<p>Do not mix form groups directly with <a href="/components/#input-groups">input groups</a>. Instead, nest the input group inside of the form group.</p>
</div>
<div class="bs-callout bs-callout-warning">
<h4>Don't mix form groups with input groups</h4>
<p>Do not mix form groups directly with <a href="/components/#input-groups">input groups</a>. Instead, nest the input group inside of the form group.</p>
</div>
<h2 id="forms-inline">Inline form</h2>
<p>Add <code>.form-inline</code> to your <code>&lt;form&gt;</code> for left-aligned and inline-block controls. <strong>This only applies to forms within viewports that are at least 768px wide.</strong></p>
<div class="bs-callout bs-callout-danger">
<h4>Requires custom widths</h4>
<p>Inputs, selects, and textareas are 100% wide by default in Bootstrap. To use the inline form, you'll have to set a width on the form controls used within.</p>
<p>Inputs and selects have <code>width: 100%;</code> applied by default in Bootstrap. Within inline forms, we reset that to <code>width: auto;</code> so multiple controls can reside on the same line. Depending on your layout, additional custom widths may be required.</p>
</div>
<div class="bs-callout bs-callout-warning">
<h4>Always add labels</h4>
@@ -95,6 +95,12 @@
<label class="sr-only" for="exampleInputEmail2">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail2" placeholder="Enter email">
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">@</div>
<input class="form-control" type="email" placeholder="Enter email">
</div>
</div>
<div class="form-group">
<label class="sr-only" for="exampleInputPassword2">Password</label>
<input type="password" class="form-control" id="exampleInputPassword2" placeholder="Password">
@@ -326,6 +332,35 @@
<label class="radio-inline">
<input type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3"> 3
</label>
{% endhighlight %}
<h4>Checkboxes and radios without labels</h4>
<p>Should you have no text within the <code>&lt;label&gt;</code>, the input is positioned as you'd expect. <strong>Currently only works on non-inline checkboxes and radios.</strong></p>
<div class="bs-example">
<form role="form">
<div class="checkbox">
<label>
<input type="checkbox" id="blankCheckbox" value="option1">
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="blankRadio" id="blankRadio1" value="option1">
</label>
</div>
</form>
</div>
{% highlight html %}
<div class="checkbox">
<label>
<input type="checkbox" id="blankCheckbox" value="option1">
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="blankRadio" id="blankRadio1" value="option1">
</label>
</div>
{% endhighlight %}
<h3>Selects</h3>
@@ -369,7 +404,7 @@
<h2 id="forms-controls-static">Static control</h2>
<p>When you need to place plain text next to a form label within a horizontal form, use the <code>.form-control-static</code> class on a <code>&lt;p&gt;</code>.</p>
<p>When you need to place plain text next to a form label within a form, use the <code>.form-control-static</code> class on a <code>&lt;p&gt;</code>.</p>
<div class="bs-example">
<form class="form-horizontal" role="form">
<div class="form-group">
@@ -401,6 +436,32 @@
</div>
</div>
</form>
{% endhighlight %}
<div class="bs-example">
<form class="form-inline" role="form">
<div class="form-group">
<label class="sr-only">Email</label>
<p class="form-control-static">email@example.com</p>
</div>
<div class="form-group">
<label for="inputPassword2" class="sr-only">Password</label>
<input type="password" class="form-control" id="inputPassword2" placeholder="Password">
</div>
<button type="submit" class="btn btn-default">Confirm identity</button>
</form>
</div>
{% highlight html %}
<form class="form-inline" role="form">
<div class="form-group">
<label class="sr-only">Email</label>
<p class="form-control-static">email@example.com</p>
</div>
<div class="form-group">
<label for="inputPassword2" class="sr-only">Password</label>
<input type="password" class="form-control" id="inputPassword2" placeholder="Password">
</div>
<button type="submit" class="btn btn-default">Confirm identity</button>
</form>
{% endhighlight %}
<h2 id="forms-control-focus">Input focus</h2>
@@ -437,7 +498,7 @@
<div class="bs-callout bs-callout-danger">
<h4>Cross-browser compatibility</h4>
<p>While Bootstrap will apply these styles in all browsers, Internet Explorer 9 and below don't actually support the <code>disabled</code> attribute on a <code>&lt;fieldset&gt;</code>. Use custom JavaScript to disable the fieldset in these browsers.</p>
<p>While Bootstrap will apply these styles in all browsers, Internet Explorer 11 and below don't fully support the <code>disabled</code> attribute on a <code>&lt;fieldset&gt;</code>. Use custom JavaScript to disable the fieldset in these browsers.</p>
</div>
<div class="bs-example">
@@ -515,6 +576,30 @@
<label class="control-label" for="inputError1">Input with error</label>
<input type="text" class="form-control" id="inputError1">
</div>
<div class="has-success">
<div class="checkbox">
<label>
<input type="checkbox" id="checkboxSuccess" value="option1">
Checkbox with success
</label>
</div>
</div>
<div class="has-warning">
<div class="checkbox">
<label>
<input type="checkbox" id="checkboxWarning" value="option1">
Checkbox with warning
</label>
</div>
</div>
<div class="has-error">
<div class="checkbox">
<label>
<input type="checkbox" id="checkboxError" value="option1">
Checkbox with error
</label>
</div>
</div>
</form>
</div><!-- /.bs-example -->
{% highlight html %}
@@ -530,10 +615,35 @@
<label class="control-label" for="inputError1">Input with error</label>
<input type="text" class="form-control" id="inputError1">
</div>
<div class="has-success">
<div class="checkbox">
<label>
<input type="checkbox" id="checkboxSuccess" value="option1">
Checkbox with success
</label>
</div>
</div>
<div class="has-warning">
<div class="checkbox">
<label>
<input type="checkbox" id="checkboxWarning" value="option1">
Checkbox with warning
</label>
</div>
</div>
<div class="has-error">
<div class="checkbox">
<label>
<input type="checkbox" id="checkboxError" value="option1">
Checkbox with error
</label>
</div>
</div>
{% endhighlight %}
<h3>With optional icons</h3>
<p>You can also add optional feedback icons with the addition of <code>.has-feedback</code> and the right icon.</p>
<p><strong class="text-danger">Feedback icons only work with textual <code>&lt;input class="form-control"&gt;</code> elements.</strong></p>
<div class="bs-callout bs-callout-warning">
<h4>Icons, labels, and input groups</h4>
<p>Manual positioning of feedback icons is required for inputs without a label and for <a href="../components#input-groups">input groups</a> with an add-on on the right. You are strongly encouraged to provide labels for all inputs for accessibility reasons. If you wish to prevent labels from being displayed, hide them with the <code>sr-only</code> class. If you must do without labels, adjust the <code>top</code> value of the feedback icon. For input groups, adjust the <code>right</code> value to an appropriate pixel value depending on the width of your addon.</p>
+4
View File
@@ -3,6 +3,10 @@
<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>
<div class="bs-callout bs-callout-warning">
<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>
</div>
{% highlight html %}
<img src="..." class="img-responsive" alt="Responsive image">
{% endhighlight %}
+2 -2
View File
@@ -7,7 +7,7 @@
<h2 id="less-bootstrap">Compiling Bootstrap</h2>
<p>Bootstrap can be used in at least two ways: with the compiled CSS or with the source Less files. To compile the Less files, <a href="https://github.com/twbs/bootstrap#compiling-css-and-javascript">visit the README</a> for how to setup your development environment to run the necessary commands.</p>
<p>Bootstrap can be used in at least two ways: with the compiled CSS or with the source Less files. To compile the Less files, <a href="../getting-started/#grunt">consult the Getting Started section</a> for how to setup your development environment to run the necessary commands.</p>
<p>Third party compilation tools may work with Bootstrap, but they are not supported by our core team.</p>
<h2 id="less-variables">Variables</h2>
@@ -390,7 +390,7 @@ a {
<p>Utility mixins are mixins that combine otherwise unrelated CSS properties to achieve a specific goal or task.</p>
<h3 id="less-mixins-clearfix">Clearfix</h3>
<p>Forget adding <code>class="clearfix"</code> to any element and instead add the <code>.clearfix()</code> mixin where appropriate. Uses the <a href="http://nicolasgallagher.com/micro-clearfix-hack/" target="_blank">micro clearfix</a> from <a href="http://twitter.com/necolas" target="_blank">Nicolas Gallager</a>.</p>
<p>Forget adding <code>class="clearfix"</code> to any element and instead add the <code>.clearfix()</code> mixin where appropriate. Uses the <a href="http://nicolasgallagher.com/micro-clearfix-hack/" target="_blank">micro clearfix</a> from <a href="https://twitter.com/necolas" target="_blank">Nicolas Gallager</a>.</p>
{% highlight scss %}
// Mixin
.clearfix() {
+1 -1
View File
@@ -33,7 +33,7 @@
<p>These styles can be found within <code>scaffolding.less</code>.</p>
<h3 id="overview-normalize">Normalize.css</h3>
<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="http://twitter.com/necolas" target="_blank">Nicolas Gallagher</a> and <a href="http://twitter.com/jon_neal" target="_blank">Jonathan Neal</a>.</p>
<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>
<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>
+12 -12
View File
@@ -178,29 +178,29 @@
</div>
</div>
<div class="row responsive-utilities-test visible-on">
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-xs hidden-sm">Extra small and small</span>
<span class="visible-xs-block visible-sm-block">&#10004; Visible on x-small and small</span>
</div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-md hidden-lg">Medium and large</span>
<span class="visible-md-block visible-lg-block">&#10004; Visible on medium and large</span>
</div>
<div class="clearfix visible-xs-block"></div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-xs hidden-md">Extra small and medium</span>
<span class="visible-xs-block visible-md-block">&#10004; Visible on x-small and medium</span>
</div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-sm hidden-lg">Small and large</span>
<span class="visible-sm-block visible-lg-block">&#10004; Visible on small and large</span>
</div>
<div class="clearfix visible-xs-block"></div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-xs hidden-lg">Extra small and large</span>
<span class="visible-xs-block visible-lg-block">&#10004; Visible on x-small and large</span>
</div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-sm hidden-md">Small and medium</span>
<span class="visible-sm-block visible-md-block">&#10004; Visible on small and medium</span>
</div>
@@ -228,29 +228,29 @@
</div>
</div>
<div class="row responsive-utilities-test hidden-on">
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-xs hidden-sm">Extra small and small</span>
<span class="visible-xs-block visible-sm-block">&#10004; Hidden on x-small and small</span>
</div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-md hidden-lg">Medium and large</span>
<span class="visible-md-block visible-lg-block">&#10004; Hidden on medium and large</span>
</div>
<div class="clearfix visible-xs-block"></div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-xs hidden-md">Extra small and medium</span>
<span class="visible-xs-block visible-md-block">&#10004; Hidden on x-small and medium</span>
</div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-sm hidden-lg">Small and large</span>
<span class="visible-sm-block visible-lg-block">&#10004; Hidden on small and large</span>
</div>
<div class="clearfix visible-xs-block"></div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-xs hidden-lg">Extra small and large</span>
<span class="visible-xs-block visible-lg-block">&#10004; Hidden on x-small and large</span>
</div>
<div class="col-xs-6 col-sm-6">
<div class="col-xs-6">
<span class="hidden-sm hidden-md">Small and medium</span>
<span class="visible-sm-block visible-md-block">&#10004; Hidden on small and medium</span>
</div>
+1
View File
@@ -5,6 +5,7 @@
<p>For basic styling&mdash;light padding and only horizontal dividers&mdash;add the base class <code>.table</code> to any <code>&lt;table&gt;</code>. It may seem super redundant, but given the widespread use of tables for other plugins like calendars and date pickers, we've opted to isolate our custom table styles.</p>
<div class="bs-example">
<table class="table">
<caption>Optional table caption.</caption>
<thead>
<tr>
<th>#</th>
File diff suppressed because it is too large Load Diff
+36 -7
View File
@@ -4,8 +4,8 @@
<div class="container">
{% include social-buttons.html %}
<p>Designed and built with all the love in the world by <a href="http://twitter.com/mdo" target="_blank">@mdo</a> and <a href="http://twitter.com/fat" target="_blank">@fat</a>.</p>
<p>Maintained by the <a href="https://github.com/twbs?tab=members">core team</a> with the help of <a href="https://github.com/twbs/bootstrap/graphs/contributors">our contributors</a>.</p>
<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>
<ul class="bs-docs-footer-links muted">
<li>Currently v{{ site.current_version }}</li>
@@ -22,7 +22,7 @@
<li>&middot;</li>
<li><a href="{{ site.blog }}">Blog</a></li>
<li>&middot;</li>
<li><a href="{{ site.repo }}/issues?state=open">Issues</a></li>
<li><a href="{{ site.repo }}/issues">Issues</a></li>
<li>&middot;</li>
<li><a href="{{ site.repo }}/releases">Releases</a></li>
</ul>
@@ -33,12 +33,41 @@
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="../dist/js/bootstrap.min.js"></script>
<script src="../assets/js/docs.min.js"></script>
{% if page.slug == "customize" %}
<script src="../assets/js/customize.min.js"></script>
{% if site.github %}
<script src="../dist/js/bootstrap.min.js"></script>
{% else %}
<script src="../dist/js/bootstrap.js"></script>
{% endif %}
{% if site.github %}
<script src="../assets/js/docs.min.js"></script>
{% else %}
<script src="../assets/js/vendor/holder.js"></script>
<script src="../assets/js/vendor/ZeroClipboard.min.js"></script>
<script src="../assets/js/src/application.js"></script>
{% endif %}
{% if page.slug == "customize" %}
{% if site.github %}
<script src="../assets/js/customize.min.js"></script>
{% else %}
{% comment %}
This list is repeated in our Gruntfile—update both when making changes.
{% endcomment %}
<script src="../assets/js/vendor/less.min.js"></script>
<script src="../assets/js/vendor/jszip.min.js"></script>
<script src="../assets/js/vendor/uglify.min.js"></script>
<script src="../assets/js/vendor/Blob.js"></script>
<script src="../assets/js/vendor/FileSaver.js"></script>
<script src="../assets/js/raw-files.min.js"></script>
<script src="../assets/js/src/customizer.js"></script>
{% endif %}
{% endif %}
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../assets/js/ie10-viewport-bug-workaround.js"></script>
{% comment %}
Inject Twitter widgets asynchronously. Snippet snipped from Twitter's
JS interface site: https://dev.twitter.com/docs/tfw-javascript
@@ -19,33 +19,33 @@
<tbody>
<tr>
<th>Android</th>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-muted" rowspan="3" style="vertical-align: middle;">N/A</td>
<td class="text-danger"><span class="glyphicon glyphicon-remove"></span> <span class="sr-only">Not Supported</span></td>
<td class="text-danger"><span class="glyphicon glyphicon-remove"></span> Not Supported</td>
<td class="text-muted">N/A</td>
</tr>
<tr>
<th>iOS</th>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-muted">N/A</td>
<td class="text-danger"><span class="glyphicon glyphicon-remove"></span> <span class="sr-only">Not Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-danger"><span class="glyphicon glyphicon-remove"></span> Not Supported</td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
</tr>
<tr>
<th>Mac OS X</th>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
</tr>
<tr>
<th>Windows</th>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> <span class="sr-only">Supported</span></td>
<td class="text-danger"><span class="glyphicon glyphicon-remove"></span> <span class="sr-only">Not Supported</span></td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-success"><span class="glyphicon glyphicon-ok"></span> Supported</td>
<td class="text-danger"><span class="glyphicon glyphicon-remove"></span> Not Supported</td>
</tr>
</tbody>
</table>
@@ -147,7 +147,7 @@ if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
<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>
<p>As of Safari v7.0.1 for OS X and Safari for iOS v7.0.1, Safari's rendering engine has some trouble with the number of decimal places used in our <code>.col-*-1</code> grid classes. So if you have 12 individual grid columns, you'll notice that they come up short compared to other rows of columns. We can't do much here (<a href="https://github.com/twbs/bootstrap/issues/9282">see #9282</a>) but you do have some options:</p>
<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>
@@ -158,7 +158,7 @@ if (navigator.userAgent.match(/IEMobile\/10\.0/)) {
<h4>Overflow and scrolling</h4>
<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>
<p>Also, note that if you're using inputs in your modal or navbar, 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>
<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>
<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 any other element which will fire a click event in iOS).</p>
@@ -188,5 +188,10 @@ $(function () {
})
</script>
{% endhighlight %}
<p>Want to see an example? <a href="http://jsbin.com/OyaqoDO/2">Check out this JS Bin demo.</a></p>
<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>
<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 href="#support-ie-compatibility-modes">X-UA-Compatible <code>&lt;meta&gt;</code> tags</a> to avoid Internet Explorer issues and our inclusion of a workaround for <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=654072">a certain Firefox bug</a>.</p>
</div>
+4 -1
View File
@@ -24,8 +24,11 @@
<h3><code>grunt test</code> (Run tests)</h3>
<p>Runs <a href="http://jshint.com">JSHint</a> and runs the <a href="http://qunitjs.com">QUnit</a> tests headlessly in <a href="http://phantomjs.org">PhantomJS</a>.</p>
<h3><code>grunt docs</code> (Build &amp; test the docs assets)</h3>
<p>Builds and tests CSS, JavaScript, and other assets which are used when running the documentation locally via <code>jekyll serve</code>.</p>
<h3><code>grunt</code> (Build absolutely everything and run tests)</h3>
<p>Compiles and minifies CSS and JavaScript, builds the documentation website, runs the HTML5 validator against the docs, regenerates the Customizer assets, and more. Usually only necessary if you're hacking on Bootstrap itself.</p>
<p>Compiles and minifies CSS and JavaScript, builds the documentation website, runs the HTML5 validator against the docs, regenerates the Customizer assets, and more. Requires <a href="http://jekyllrb.com/docs/installation/">Jekyll</a>. Usually only necessary if you're hacking on Bootstrap itself.</p>
<h2 id="grunt-troubleshooting">Troubleshooting</h2>
<p>Should you encounter problems with installing dependencies or running Grunt commands, first delete the <code>/node_modules/</code> directory generated by npm. Then, rerun <code>npm install</code>.</p>
+1 -1
View File
@@ -16,7 +16,7 @@
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
@@ -0,0 +1,6 @@
<div class="bs-docs-section">
<h1 id="tools" class="page-header">Tools</h1>
<h2 id="tools-bootlint">Bootlint</h2>
<p><strong><a href="https://github.com/twbs/bootlint">Bootlint</a></strong> is the official Bootstrap HTML <a href="http://en.wikipedia.org/wiki/Lint_(software)">linter</a> tool. It automatically checks for several common HTML mistakes in webpages that are using Bootstrap in a fairly "vanilla" way. Vanilla Bootstrap's components/widgets require their parts of the DOM to conform to certain structures. Bootlint checks that instances of Bootstrap components have correctly-structured HTML. Consider adding Bootlint to your Bootstrap web development toolchain so that none of the common mistakes slow down your project's development.</p>
</div>
+16 -5
View File
@@ -6,7 +6,7 @@
<meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
<title>
{% if page.title == "Bootstrap" %}
{% if page.layout == "home" %}
{{ page.title }}
{% else %}
{{ page.title }} &middot; Bootstrap
@@ -14,27 +14,38 @@
</title>
<!-- Bootstrap core CSS -->
{% if site.github %}
<link href="../dist/css/bootstrap.min.css" rel="stylesheet">
{% else %}
<link href="../dist/css/bootstrap.css" rel="stylesheet">
{% endif %}
{% if page.slug == "css" or page.slug == "components" or page.slug == "js" %}
<!-- Optional Bootstrap Theme -->
{% if site.github %}
<link href="data:text/css;charset=utf-8," data-href="../dist/css/bootstrap-theme.min.css" rel="stylesheet" id="bs-theme-stylesheet">
{% else %}
<link href="data:text/css;charset=utf-8," data-href="../dist/css/bootstrap-theme.css" rel="stylesheet" id="bs-theme-stylesheet">
{% endif %}
{% endif %}
<!-- Documentation extras -->
{% 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">
{% endif %}
<!--[if lt IE 9]><script src="../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="../assets/js/ie10-viewport-bug-workaround.js"></script>
<script src="../assets/js/ie-emulation-modes-warning.js"></script>
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Favicons -->
<link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-precomposed.png">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="icon" href="/favicon.ico">
<script>
+10 -10
View File
@@ -14,8 +14,8 @@
<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>
<li>Scrolling past the element you want affixed should trigger the actual affixing. This is where <code>.affix</code> replaces <code>.affix-top</code> and sets <code>position: fixed;</code> (provided by Bootstrap's code CSS).</li>
<li>If a bottom offset is defined, scrolling past that should replace <code>.affix</code> with <code>.affix-bottom</code>. Since offsets are optional, setting one requires you to set the appropriate CSS. In this case, add <code>position: absolute;</code> when necessary. The plugin uses the data attribute or JavaScript option to determine where to position the element from there.</li>
<li>Scrolling past the element you want affixed should trigger the actual affixing. This is where <code>.affix</code> replaces <code>.affix-top</code> and sets <code>position: fixed;</code> (provided by Bootstrap's CSS).</li>
<li>If a bottom offset is defined, scrolling past it should replace <code>.affix</code> with <code>.affix-bottom</code>. Since offsets are optional, setting one requires you to set the appropriate CSS. In this case, add <code>position: absolute;</code> when necessary. The plugin uses the data attribute or JavaScript option to determine where to position the element from there.</li>
</ol>
<p>Follow the above steps to set your CSS for either of the usage options below.</p>
@@ -31,14 +31,14 @@
<h3>Via JavaScript</h3>
<p>Call the affix plugin via JavaScript:</p>
{% highlight js %}
$('#my-affix').affix({
offset: {
top: 100
, bottom: function () {
return (this.bottom = $('.footer').outerHeight(true))
}
$('#myAffix').affix({
offset: {
top: 100,
bottom: function () {
return (this.bottom = $('.footer').outerHeight(true))
}
})
}
})
{% endhighlight %}
@@ -75,7 +75,7 @@
<h3>Events</h3>
<p>Bootstrap's affix class exposes a few events for hooking into affix functionality.</p>
<p>Bootstrap's affix plugin exposes a few events for hooking into affix functionality.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
+19 -16
View File
@@ -3,15 +3,14 @@
<h2 id="alerts-examples">Example alerts</h2>
<p>Add dismiss functionality to all alert messages with this plugin.</p>
<div class="bs-example">
<div class="alert alert-warning fade in" role="alert">
<p>When using a <code>.close</code> button, it must be the first child of the <code>.alert-dismissible</code> and no text content may come before it in the markup.</p>
<div class="bs-example bs-example-standalone">
<div class="alert alert-warning alert-dismissible fade in" role="alert">
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<strong>Holy guacamole!</strong> Best check yo self, you're not looking too good.
</div>
</div><!-- /example -->
<div class="bs-example">
<div class="alert alert-danger fade in" role="alert">
<div class="alert alert-danger alert-dismissible fade in" role="alert">
<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4>Oh snap! You got an error!</h4>
<p>Change this and that and try again. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Cras mattis consectetur purus sit amet fermentum.</p>
@@ -24,25 +23,29 @@
<h2 id="alerts-usage">Usage</h2>
<p>Enable dismissal of an alert via JavaScript:</p>
{% highlight js %}$(".alert").alert(){% endhighlight %}
<h3>Markup</h3>
<p>Just add <code>data-dismiss="alert"</code> to your close button to automatically give an alert close functionality.</p>
{% highlight html %}<button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>{% endhighlight %}
<p>Just add <code>data-dismiss="alert"</code> to your close button to automatically give an alert close functionality. Closing an alert removes it from the DOM.</p>
{% highlight html %}
<button type="button" class="close" data-dismiss="alert">
<span aria-hidden="true">&times;</span>
<span class="sr-only">Close</span>
</button>
{% endhighlight %}
<p>To have your alerts use animation when closing, make sure they have the <code>.fade</code> and <code>.in</code> classes already applied to them.</p>
<h3>Methods</h3>
<h4>$().alert()</h4>
<p>Wraps all alerts with close functionality. To have your alerts animate out when closed, make sure they have the <code>.fade</code> and <code>.in</code> class already applied to them.</p>
<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>
<p>Closes an alert.</p>
{% highlight js %}$(".alert").alert('close'){% endhighlight %}
<h4>$().alert('close')</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>
<h3>Events</h3>
<p>Bootstrap's alert class exposes a few events for hooking into alert functionality.</p>
<p>Bootstrap's alert plugin exposes a few events for hooking into alert functionality.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
@@ -64,7 +67,7 @@
</table>
</div><!-- /.table-responsive -->
{% highlight js %}
$('#my-alert').on('closed.bs.alert', function () {
$('#myAlert').on('closed.bs.alert', function () {
// do something…
})
{% endhighlight %}
+77 -100
View File
@@ -1,161 +1,138 @@
<div class="bs-docs-section">
<h1 id="buttons" class="page-header">Buttons <small>button.js</small></h1>
<h2 id="buttons-examples">Example uses</h2>
<p>Do more with buttons. Control button states or create groups of buttons for more components like toolbars.</p>
<p class="lead">Do more with buttons. Control button states or create groups of buttons for more components like toolbars.</p>
<h4>Stateful</h4>
<div class="bs-callout bs-callout-danger">
<h4>Cross-browser compatibility</h4>
<p><a href="https://github.com/twbs/bootstrap/issues/793">Firefox persists form control states (disabledness and checkedness) across page loads</a>. A workaround for this is to use <code>autocomplete="off"</code>. See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=654072">Mozilla bug #654072</a>.</p>
</div>
<h2 id="buttons-stateful">Stateful</h2>
<p>Add <code>data-loading-text="Loading..."</code> to use a loading state on a button.</p>
<div class="bs-example" style="padding-bottom: 24px;">
<button type="button" id="loading-example-btn" data-loading-text="Loading..." class="btn btn-primary">
<div class="bs-callout bs-callout-info">
<h4>Use whichever state you like!</h4>
<p>For the sake of this demonstration, we are using <code>data-loading-text</code> and <code>$().button('loading')</code>, but that's not the only state you can use. <a href="#buttons-methods">See more on this below in the <code>$().button(string)</code> documentation</a>.</p>
</div>
<div class="bs-example">
<button type="button" id="loading-example-btn" data-loading-text="Loading..." class="btn btn-primary" autocomplete="off">
Loading state
</button>
</div><!-- /example -->
{% highlight html %}
<button type="button" id="loading-example-btn" data-loading-text="Loading..." class="btn btn-primary">
<button type="button" id="myButton" data-loading-text="Loading..." class="btn btn-primary" autocomplete="off">
Loading state
</button>
<script>
$('#loading-example-btn').click(function () {
var btn = $(this)
btn.button('loading')
$.ajax(...).always(function () {
btn.button('reset')
});
});
$('#myButton').on('click', function () {
var $btn = $(this).button('loading')
// business logic...
$btn.button('reset')
})
</script>
{% endhighlight %}
<h4>Single toggle</h4>
<h2 id="buttons-single-toggle">Single toggle</h2>
<p>Add <code>data-toggle="button"</code> to activate toggling on a single button.</p>
<div class="bs-example" style="padding-bottom: 24px;">
<button type="button" class="btn btn-primary" data-toggle="button">Single toggle</button>
<div class="bs-example">
<button type="button" class="btn btn-primary" data-toggle="button" aria-pressed="false" autocomplete="off">
Single toggle
</button>
</div><!-- /example -->
{% highlight html %}
<button type="button" class="btn btn-primary" data-toggle="button">Single toggle</button>
<button type="button" class="btn btn-primary" data-toggle="button" aria-pressed="false" autocomplete="off">
Single toggle
</button>
{% endhighlight %}
<h4>Checkbox</h4>
<p>Add <code>data-toggle="buttons"</code> to a group of checkboxes for checkbox style toggling on btn-group.</p>
<div class="bs-callout bs-callout-warning">
<h4>Pre-checked options need <code>.active</code></h4>
<p>For pre-checked options, you must add the <code>.active</code> class to the input's <code>label</code> yourself.</p>
<h4>Pre-toggled buttons need <code>.active</code> and <code>aria-pressed="true"</code></h4>
<p>For pre-toggled buttons, you must add the <code>.active</code> class and the <code>aria-pressed="true"</code> attribute to the <code>button</code> yourself.</p>
</div>
<div class="bs-example" style="padding-bottom: 24px;">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="checkbox" checked> Option 1 (pre-checked)
</label>
<label class="btn btn-primary">
<input type="checkbox"> Option 2
</label>
<label class="btn btn-primary">
<input type="checkbox"> Option 3
</label>
</div>
</div><!-- /example -->
{% highlight html %}
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="checkbox" checked> Option 1 (pre-checked)
</label>
<label class="btn btn-primary">
<input type="checkbox"> Option 2
</label>
<label class="btn btn-primary">
<input type="checkbox"> Option 3
</label>
</div>
{% endhighlight %}
<h4>Radio</h4>
<p>Add <code>data-toggle="buttons"</code> to a group of radio inputs for radio style toggling on btn-group.</p>
<h2 id="buttons-checkbox-radio">Checkbox / Radio</h2>
<p>Add <code>data-toggle="buttons"</code> to a <code>.btn-group</code> containing checkbox or radio inputs to enable toggling in their respective styles.</p>
<div class="bs-callout bs-callout-warning">
<h4>Preselected options need <code>.active</code></h4>
<p>For preselected options, you must add the <code>.active</code> class to the input's <code>label</code> yourself.</p>
</div>
<div class="bs-example" style="padding-bottom: 24px;">
<div class="bs-callout bs-callout-warning">
<h4>Visual checked state only updated on click</h4>
<p>If the checked state of a checkbox button is updated without firing a <code>click</code> event on the button (e.g. via <code>&lt;input type="reset"&gt;</code> or via setting the <code>checked</code> property of the input), you will need to toggle the <code>.active</code> class on the input's <code>label</code> yourself.</p>
</div>
<div class="bs-example">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="radio" name="options" id="option1" checked> Option 1 (preselected)
<input type="checkbox" checked autocomplete="off"> Checkbox 1 (pre-checked)
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option2"> Option 2
<input type="checkbox" autocomplete="off"> Checkbox 2
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option3"> Option 3
<input type="checkbox" autocomplete="off"> Checkbox 3
</label>
</div>
</div><!-- /example -->
{% highlight html %}
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="radio" name="options" id="option1" checked> Option 1 (preselected)
<input type="checkbox" autocomplete="off" checked> Checkbox 1 (pre-checked)
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option2"> Option 2
<input type="checkbox" autocomplete="off"> Checkbox 2
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option3"> Option 3
<input type="checkbox" autocomplete="off"> Checkbox 3
</label>
</div>
{% endhighlight %}
<h2 id="buttons-usage">Usage</h2>
<p>Enable buttons via JavaScript:</p>
{% highlight js %}
$('.btn').button()
<div class="bs-example">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="radio" name="options" id="option1" autocomplete="off" checked> Radio 1 (preselected)
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option2" autocomplete="off"> Radio 2
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option3" autocomplete="off"> Radio 3
</label>
</div>
</div><!-- /example -->
{% highlight html %}
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-primary active">
<input type="radio" name="options" id="option1" autocomplete="off" checked> Radio 1 (preselected)
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option2" autocomplete="off"> Radio 2
</label>
<label class="btn btn-primary">
<input type="radio" name="options" id="option3" autocomplete="off"> Radio 3
</label>
</div>
{% endhighlight %}
<h3>Markup</h3>
<p>Data attributes are integral to the button plugin. Check out the example code below for the various markup types.</p>
<h3>Options</h3>
<p><em>None</em></p>
<h3>Methods</h3>
<h2 id="buttons-methods">Methods</h2>
<h4>$().button('toggle')</h4>
<p>Toggles push state. Gives the button the appearance that it has been activated.</p>
<div class="bs-callout bs-callout-info">
<h4>Auto toggling</h4>
<p>You can enable auto toggling of a button by using the <code>data-toggle</code> attribute.</p>
</div>
{% highlight html %}
<button type="button" class="btn btn-primary" data-toggle="button">...</button>
{% endhighlight %}
<h4>$().button('loading')</h4>
<p>Sets button state to loading - disables button and swaps text to loading text. Loading text should be defined on the button element using the data attribute <code>data-loading-text</code>.
</p>
{% highlight html %}
<button id="loading-example-btn" type="button" class="btn btn-primary" data-loading-text="loading stuff...">...</button>
<script>
$('#loading-example-btn').click(function () {
var btn = $(this)
btn.button('loading')
$.ajax(...).always(function () {
btn.button('reset')
});
});
</script>
{% endhighlight %}
<div class="bs-callout bs-callout-danger">
<h4>Cross-browser compatibility</h4>
<p><a href="https://github.com/twbs/bootstrap/issues/793">Firefox persists form control states across page loads</a>. A workaround for this is to use <code>autocomplete="off"</code>.</p>
</div>
<h4>$().button('reset')</h4>
<p>Resets button state - swaps text to original text.</p>
<h4>$().button(string)</h4>
<p>Resets button state - swaps text to any data defined text state.</p>
<p>Swaps text to any data defined text state.</p>
{% highlight html %}
<button type="button" class="btn btn-primary" data-complete-text="finished!" >...</button>
<button type="button" id="myStateButton" data-complete-text="finished!" class="btn btn-primary" autocomplete="off">
...
</button>
<script>
$('.btn').button('complete')
$('#myStateButton').on('click', function () {
$(this).button('complete') // button text will be "finished!"
})
</script>
{% endhighlight %}
</div>
+18 -5
View File
@@ -1,8 +1,9 @@
<div class="bs-docs-section">
<h1 id="carousel" class="page-header">Carousel <small>carousel.js</small></h1>
<p>A slideshow component for cycling through elemnts, like a carousel. <strong>Nested carousels are not supported.</strong></p>
<h2 id="carousel-examples">Examples</h2>
<p>The slideshow below shows a generic plugin and component for cycling through elements like a carousel.</p>
<div class="bs-example">
<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
@@ -10,7 +11,7 @@
<li data-target="#carousel-example-generic" data-slide-to="1"></li>
<li data-target="#carousel-example-generic" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-inner" role="listbox">
<div class="item active">
<img data-src="holder.js/900x500/auto/#777:#555/text:First slide" alt="First slide">
</div>
@@ -23,9 +24,11 @@
</div>
<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div><!-- /example -->
@@ -39,7 +42,7 @@
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner">
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="..." alt="...">
<div class="carousel-caption">
@@ -58,9 +61,11 @@
<!-- Controls -->
<a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>
{% endhighlight %}
@@ -79,7 +84,7 @@
<li data-target="#carousel-example-captions" data-slide-to="1"></li>
<li data-target="#carousel-example-captions" data-slide-to="2"></li>
</ol>
<div class="carousel-inner">
<div class="carousel-inner" role="listbox">
<div class="item active">
<img data-src="holder.js/900x500/auto/#777:#777" alt="First slide image">
<div class="carousel-caption">
@@ -104,9 +109,11 @@
</div>
<a class="left carousel-control" href="#carousel-example-captions" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#carousel-example-captions" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</a>
</div>
</div><!-- /example -->
@@ -132,7 +139,7 @@
<h3>Via data attributes</h3>
<p>Use data attributes to easily control the position of the carousel. <code>data-slide</code> accepts the keywords <code>prev</code> or <code>next</code>, which alters the slide position relative to its current position. Alternatively, use <code>data-slide-to</code> to pass a raw slide index to the carousel <code>data-slide-to="2"</code>, which shifts the slide position to a particular index beginning with <code>0</code>.</p>
<p>The <code>data-ride="carousel"</code> attribute is used to mark a carousel as animating starting at page load.</p>
<p>The <code>data-ride="carousel"</code> attribute is used to mark a carousel as animating starting at page load. <strong class="text-danger">It cannot be used in combination with (redundant and unnecessary) explicit JavaScript initialization of the same carousel.</strong></p>
<h3>Via JavaScript</h3>
<p>Call carousel manually with:</p>
@@ -171,6 +178,12 @@ $('.carousel').carousel()
<td>true</td>
<td>Whether the carousel should cycle continuously or have hard stops.</td>
</tr>
<tr>
<td>keyboard</td>
<td>boolean</td>
<td>true</td>
<td>Whether the carousel should react to keyboard events.</td>
</tr>
</tbody>
</table>
</div><!-- /.table-responsive -->
+50 -23
View File
@@ -13,44 +13,44 @@
<p>Using the collapse plugin, we built a simple accordion by extending the panel component.</p>
<div class="bs-example">
<div class="panel-group" id="accordion">
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in">
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-heading" role="tab" id="headingTwo">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
<a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Collapsible Group Item #2
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse">
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
<div class="panel-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-heading" role="tab" id="headingThree">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
<a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Collapsible Group Item #3
</a>
</h4>
</div>
<div id="collapseThree" class="panel-collapse collapse">
<div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
<div class="panel-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
@@ -59,44 +59,44 @@
</div>
</div><!-- /example -->
{% highlight html %}
<div class="panel-group" id="accordion">
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-heading" role="tab" id="headingOne">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
Collapsible Group Item #1
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in">
<div id="collapseOne" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-heading" role="tab" id="headingTwo">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
<a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Collapsible Group Item #2
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse">
<div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
<div class="panel-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<div class="panel-heading" role="tab" id="headingThree">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
<a class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
Collapsible Group Item #3
</a>
</h4>
</div>
<div id="collapseThree" class="panel-collapse collapse">
<div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
<div class="panel-body">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
@@ -105,15 +105,42 @@
</div>
{% endhighlight %}
<p>It's also possible to swap out <code>.panel-body</code>s with <code>.list-group</code>s.</p>
<div class="panel-group" role="tablist">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="collapseListGroupHeading1">
<h4 class="panel-title">
<a class="collapsed" data-toggle="collapse" href="#collapseListGroup1" aria-expanded="false" aria-controls="collapseListGroup1">
Collapsible list group
</a>
</h4>
</div>
<div id="collapseListGroup1" class="panel-collapse collapse" role="tabpanel" aria-labelledby="collapseListGroupHeading1">
<ul class="list-group">
<li class="list-group-item">Bootply</li>
<li class="list-group-item">One itmus ac facilin</li>
<li class="list-group-item">Second eros</li>
</ul>
<div class="panel-footer">Footer</div>
</div>
</div>
</div>
<p>You can also use the plugin without the accordion markup. Make a button toggle the expanding and collapsing of another element.</p>
{% highlight html %}
<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo">
<button type="button" class="btn btn-danger" data-toggle="collapse" data-target="#demo" aria-expanded="true" aria-controls="demo">
simple collapsible
</button>
<div id="demo" class="collapse in">...</div>
{% endhighlight %}
<div class="bs-callout bs-callout-warning">
<h4>Make expand/collapse controls accessible</h4>
<p>Be sure to add <code>aria-expanded</code> to the control element. This attribute explicitly defines the current state of the collapsible element to screen readers and similar assistive technologies. If the collapsible element is closed by default, it should have a value of <code>aria-expanded="false"</code>. If you've set the collapsible element to be open by default using the <code>in</code> class, set <code>aria-expanded="true"</code> on the control instead. The plugin will automatically toggle this attribute based on whether or not the collapsible element has been opened or closed.</p>
<p>Additionally, if your control element is targetting a single collapsible element i.e. the <code>data-target</code> attribute is pointing to an <code>id</code> selector you may add an additional <code>aria-controls</code> attribute to the control element, containing the <code>id</code> of the collapsible element. Modern screen readers and similar assistive technologies make use of this attribute to provide users with additional shortcuts to navigate directly to the collapsible element itself.</p>
</div>
<h2 id="collapse-usage">Usage</h2>
<p>The collapse plugin utilizes a few classes to handle the heavy lifting:</p>
@@ -125,7 +152,7 @@
<p>These classes can be found in <code>component-animations.less</code>.</p>
<h3>Via data attributes</h3>
<p>Just add <code>data-toggle="collapse"</code> and a <code>data-target</code> to element to automatically assign control of a collapsible element. The <code>data-target</code> attribute accepts a CSS selector to apply the collapse to. Be sure to add the class <code>collapse</code> to the collapsible element. If you'd like it to default open, add the additional class <code>in</code>.</p>
<p>Just add <code>data-toggle="collapse"</code> and a <code>data-target</code> to the element to automatically assign control of a collapsible element. The <code>data-target</code> attribute accepts a CSS selector to apply the collapse to. Be sure to add the class <code>collapse</code> to the collapsible element. If you'd like it to default open, add the additional class <code>in</code>.</p>
<p>To add accordion-like group management to a collapsible control, add the data attribute <code>data-parent="#selector"</code>. Refer to the demo to see this in action.</p>
<h3>Via JavaScript</h3>
@@ -151,7 +178,7 @@ $('.collapse').collapse()
<td>parent</td>
<td>selector</td>
<td>false</td>
<td>If selector then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior - this dependent on the <code>panel</code> class)</td>
<td>If a selector is provided, then all collapsible elements under the specified parent will be closed when this collapsible item is shown. (similar to traditional accordion behavior - this is dependent on the <code>panel</code> class)</td>
</tr>
<tr>
<td>toggle</td>
+65 -42
View File
@@ -9,7 +9,7 @@
<nav id="navbar-example" class="navbar navbar-default navbar-static" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-example-js-navbar-collapse">
<button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-example-js-navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -20,35 +20,44 @@
<div class="collapse navbar-collapse bs-example-js-navbar-collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a id="drop1" href="#" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a>
<a id="drop1" href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop1">
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Something else here</a></li>
<li role="presentation" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Separated link</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Separated link</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" id="drop2" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown 2 <span class="caret"></span></a>
<a id="drop2" href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop2">
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Something else here</a></li>
<li role="presentation" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Separated link</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Separated link</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li id="fat-menu" class="dropdown">
<a href="#" id="drop3" role="button" class="dropdown-toggle" data-toggle="dropdown">Dropdown 3 <span class="caret"></span></a>
<a id="drop3" href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="drop3">
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Something else here</a></li>
<li role="presentation" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Separated link</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Separated link</a></li>
</ul>
</li>
</ul>
@@ -59,36 +68,45 @@
<h3>Within pills</h3>
<div class="bs-example">
<ul class="nav nav-pills">
<li class="active"><a href="#">Regular link</a></li>
<li class="dropdown">
<a id="drop4" role="button" data-toggle="dropdown" href="#">Dropdown <span class="caret"></span></a>
<ul class="nav nav-pills" role="tablist">
<li role="presentation" class="active"><a href="#">Regular link</a></li>
<li role="presentation" class="dropdown">
<a id="drop4" href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
<span class="caret"></span>
</a>
<ul id="menu1" class="dropdown-menu" role="menu" aria-labelledby="drop4">
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Something else here</a></li>
<li role="presentation" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Separated link</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Separated link</a></li>
</ul>
</li>
<li class="dropdown">
<a id="drop5" role="button" data-toggle="dropdown" href="#">Dropdown 2 <span class="caret"></span></a>
<li role="presentation" class="dropdown">
<a id="drop5" href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
<span class="caret"></span>
</a>
<ul id="menu2" class="dropdown-menu" role="menu" aria-labelledby="drop5">
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Something else here</a></li>
<li role="presentation" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Separated link</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Separated link</a></li>
</ul>
</li>
<li class="dropdown">
<a id="drop6" role="button" data-toggle="dropdown" href="#">Dropdown 3 <span class="caret"></span></a>
<li role="presentation" class="dropdown">
<a id="drop6" href="#" class="dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
<span class="caret"></span>
</a>
<ul id="menu3" class="dropdown-menu" role="menu" aria-labelledby="drop6">
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Something else here</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Another action</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Something else here</a></li>
<li role="presentation" class="divider"></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="http://twitter.com/fat">Separated link</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="https://twitter.com/fat">Separated link</a></li>
</ul>
</li>
</ul> <!-- /pills -->
@@ -96,26 +114,31 @@
<h2 id="dropdowns-usage">Usage</h2>
<p>Via data attributes or JavaScript, the dropdown plugin toggles hidden content (dropdown menus) by toggling the <code>.open</code> class on the parent list item. When opened, the plugin also adds <code>.dropdown-backdrop</code> as a click area for closing dropdown menus when clicking outside the menu. Note: The <code>data-toggle=dropdown</code> attribute is relied on for closing dropdown menus at an application level, so it's a good idea to always use it.</p>
<p>Via data attributes or JavaScript, the dropdown plugin toggles hidden content (dropdown menus) by toggling the <code>.open</code> class on the parent list item.</p>
<p>On mobile devices, opening a dropdown adds a <code>.dropdown-backdrop</code> as a tap area for closing dropdown menus when tapping outside the menu, a requirement for proper iOS support. <strong class="text-danger">This means that switching from an open dropdown menu to a different dropdown menu requires an extra tap on mobile.</strong></p>
<p>Note: The <code>data-toggle="dropdown"</code> attribute is relied on for closing dropdown menus at an application level, so it's a good idea to always use it.</p>
<h3>Via data attributes</h3>
<p>Add <code>data-toggle="dropdown"</code> to a link or button to toggle a dropdown.</p>
{% highlight html %}
<div class="dropdown">
<a data-toggle="dropdown" href="#">Dropdown trigger</a>
<button id="dLabel" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown trigger
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
...
</ul>
</div>
{% endhighlight %}
<p>To keep URLs intact, use the <code>data-target</code> attribute instead of <code>href="#"</code>.</p>
<p>To keep URLs intact with link buttons, use the <code>data-target</code> attribute instead of <code>href="#"</code>.</p>
{% highlight html %}
<div class="dropdown">
<a id="dLabel" role="button" data-toggle="dropdown" data-target="#" href="/page.html">
Dropdown <span class="caret"></span>
<a id="dLabel" data-target="#" href="http://example.com" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown trigger
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
...
</ul>
+15 -11
View File
@@ -1,7 +1,5 @@
<div class="bs-docs-section">
<h1 id="modals" class="page-header">Modals <small>modal.js</small></h1>
<h2 id="modals-examples">Examples</h2>
<p>Modals are streamlined, but flexible, dialog prompts with the minimum required functionality and smart defaults.</p>
<div class="bs-callout bs-callout-warning" id="callout-stacked-modals">
@@ -17,6 +15,10 @@
<p>There are some caveats regarding using modals on mobile devices. <a href="../getting-started/#support-fixed-position-keyboards">See our browser support docs</a> for details.</p>
</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></p>
<h2 id="modals-examples">Examples</h2>
<h3>Static example</h3>
<p>A rendered modal with header, body, and set of actions in the footer.</p>
<div class="bs-example bs-example-modal">
@@ -67,7 +69,7 @@
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
<h4 class="modal-title" id="myModalLabel">Modal Heading</h4>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<h4>Text in a modal</h4>
@@ -102,13 +104,13 @@
</div><!-- /.modal -->
<div class="bs-example" style="padding-bottom: 24px;">
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
</div><!-- /example -->
{% highlight html %}
<!-- Button trigger modal -->
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
@@ -146,12 +148,12 @@
<h2 id="modals-sizes">Optional sizes</h2>
<p>Modals have two optional sizes, available via modifier classes to be placed on a <code>.modal-dialog</code>.</p>
<div class="bs-example">
<button class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">Large modal</button>
<button class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm">Small modal</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">Large modal</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm">Small modal</button>
</div>
{% highlight html %}
<!-- Large modal -->
<button class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">Large modal</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-lg">Large modal</button>
<div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
@@ -162,7 +164,7 @@
</div>
<!-- Small modal -->
<button class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm">Small modal</button>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm">Small modal</button>
<div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
<div class="modal-dialog modal-sm">
@@ -259,7 +261,9 @@
<td>remote</td>
<td>path</td>
<td>false</td>
<td><p>If a remote URL is provided, <strong>content will be loaded one time</strong> via jQuery's <code>load</code> method and injected into the <code>.modal-content</code> div. If you're using the data-api, you may alternatively use the <code>href</code> attribute to specify the remote source. An example of this is shown below:</p>
<td>
<p><span class="text-danger">This option is deprecated since v3.2.1 and will be removed in v4.</span> We recommend instead using client-side templating or a data binding framework, or calling <a href="http://api.jquery.com/load/">jQuery.load</a> yourself.</p>
<p>If a remote URL is provided, <strong>content will be loaded one time</strong> via jQuery's <code>load</code> method and injected into the <code>.modal-content</code> div. If you're using the data-api, you may alternatively use the <code>href</code> attribute to specify the remote source. An example of this is shown below:</p>
{% highlight html %}
<a data-toggle="modal" href="remote.html" data-target="#modal">Click me</a>
{% endhighlight %}
@@ -320,7 +324,7 @@ $('#myModal').modal({
</tr>
<tr>
<td>loaded.bs.modal</td>
<td>This event is fired when the modal has loaded content using the remote option.</td>
<td>This event is fired when the modal has loaded content using the <code>remote</code> option.</td>
</tr>
</tbody>
</table>
+9
View File
@@ -47,6 +47,12 @@ $('#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>
{% 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>
<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 %}
@@ -64,6 +70,9 @@ $('#myModal').on('show.bs.modal', function (e) {
})
{% endhighlight %}
<h3 id="js-disabled">No special fallbacks when JavaScript is disabled</h3>
<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">
<h4>Third-party libraries</h4>
<p><strong>Bootstrap does not officially support third-party JavaScript libraries</strong> like Prototype or jQuery UI. Despite <code>.noConflict</code> and namespaced events, there may be compatibility problems that you need to fix on your own.</p>
+60 -55
View File
@@ -3,6 +3,7 @@
<h2 id="popovers-examples">Examples</h2>
<p>Add small overlays of content, like those on the iPad, to any element for housing secondary information.</p>
<p>Popovers whose both title and content are zero-length are never displayed.</p>
<div class="bs-callout bs-callout-danger">
<h4>Plugin dependency</h4>
@@ -24,6 +25,10 @@
<h4>Popovers on disabled elements require wrapper elements</h4>
<p>To add a popover to a <code>disabled</code> or <code>.disabled</code> element, put the element inside of a <code>&lt;div&gt;</code> and apply the popover to that <code>&lt;div&gt;</code> instead.</p>
</div>
<div class="bs-callout bs-callout-info">
<h4>Multiple-line links</h4>
<p>Sometimes you want to add a popover to a hyperlink that wraps multiple lines. The default behavior of the popover plugin is to center it horizontally and vertically. Add <code>white-space: nowrap;</code> to your anchors to avoid this.</p>
</div>
<h3>Static popover</h3>
<p>Four options are available: top, right, bottom, and left aligned.</p>
@@ -73,8 +78,8 @@
{% endhighlight %}
<h4>Four directions</h4>
<div class="bs-example tooltip-demo">
<div class="bs-example-tooltips">
<div class="bs-example popover-demo">
<div class="bs-example-popovers">
<button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="left" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus.">
Popover on left
</button>
@@ -109,23 +114,17 @@ sagittis lacus vel augue laoreet rutrum faucibus.">
{% endhighlight %}
<h4>Dismiss on next click</h4>
<p>Use the <code>focus</code> trigger to dismiss popovers on their next click.</p>
<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">
<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>
</div>
<div class="bs-example" style="padding-bottom: 24px;">
<button type="button" class="btn btn-lg btn-danger bs-docs-popover-dismiss" data-toggle="popover" title="Dismissible popover" data-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</button>
<a href="#" 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 %}
<button type="button" class="btn btn-lg btn-danger popover-dismiss" data-toggle="popover" title="Dismissible popover" data-content="And here's some amazing content. It's very engaging. Right?">Dismissible popover</button>
<a href="#" tabindex="0" class="btn btn-lg btn-danger" 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>
{% endhighlight %}
{% highlight js %}
$('.popover-dismiss').popover({
trigger: 'focus'
})
{% endhighlight %}
<div class="bs-callout bs-callout-warning">
<h4>Multiple-line links</h4>
<p>Sometimes you want to add a popover to a hyperlink that wraps multiple lines. The default behavior of the popover plugin is to center it horizontally and vertically. Add <code>white-space: nowrap;</code> to your anchors to avoid this.</p>
</div>
<h2 id="popovers-usage">Usage</h2>
@@ -156,7 +155,7 @@ $('.popover-dismiss').popover({
<td>string | false</td>
<td>false</td>
<td>
<p>Appends the popover to a specific element. Example: <code>container: 'body'</code>. This option is particularly useful in that it allows you to position the popover in the flow of the document near the triggering element - which will prevent the popover from floating away from the triggering element during a window resize.</p>
<p>Appends the popover to a specific element. Example: <code>container: 'body'</code>. This option is particularly useful in that it allows you to position the popover in the flow of the document near the triggering element - which will prevent the popover from floating away from the triggering element during a window resize.</p>
</td>
</tr>
<tr>
@@ -165,7 +164,7 @@ $('.popover-dismiss').popover({
<td>''</td>
<td>
<p>Default content value if <code>data-content</code> attribute isn't present.</p>
<p>If a function is given, it will be called with 1 argument, which is the element that the popover is attached to.</p>
<p>If a function is given, it will be called with its <code>this</code> reference set to the element that the popover is attached to.</p>
</td>
</tr>
<tr>
@@ -175,7 +174,7 @@ $('.popover-dismiss').popover({
<td>
<p>Delay showing and hiding the popover (ms) - does not apply to manual trigger type</p>
<p>If a number is supplied, delay is applied to both hide/show</p>
<p>Object structure is: <code>delay: { show: 500, hide: 100 }</code></p>
<p>Object structure is: <code>delay: { "show": 500, "hide": 100 }</code></p>
</td>
</tr>
<tr>
@@ -188,31 +187,37 @@ $('.popover-dismiss').popover({
<td>placement</td>
<td>string | function</td>
<td>'right'</td>
<td>How to position the popover - top | bottom | left | right | auto.<br> When "auto" is specified, it will dynamically reorient the popover. For example, if placement is "auto left", the popover will display to the left when possible, otherwise it will display right.</td>
<td>
<p>How to position the popover - top | bottom | left | right | auto.<br>When "auto" is specified, it will dynamically reorient the popover. For example, if placement is "auto left", the popover will display to the left when possible, otherwise it will display right.</p>
<p>When a function is used to determine the placement, it is called with the popover DOM node as its first argument and the triggering element DOM node as its second. The <code>this</code> context is set to the popover instance.</p>
</td>
</tr>
<tr>
<td>selector</td>
<td>string</td>
<td>false</td>
<td>If a selector is provided, popover objects will be delegated to the specified targets. In practice, this is used to enable dynamic HTML content to have popovers added. See <a href="https://github.com/twbs/bootstrap/issues/4215">this</a> and <a href="http://jsfiddle.net/fScua/">an informative example</a>.</td>
<td>If a selector is provided, popover objects will be delegated to the specified targets. In practice, this is used to enable dynamic HTML content to have popovers added. See <a href="https://github.com/twbs/bootstrap/issues/4215">this</a> and <a href="http://jsbin.com/zopod/1/edit">an informative example</a>.</td>
</tr>
<tr>
<td>template</td>
<td>string</td>
<td><code>'&lt;div class="popover" role="tooltip"&gt;&lt;div class="arrow"&gt;&lt;/div&gt;&lt;h3 class="popover-title"&gt;&lt;/h3&gt;&lt;div class="popover-content"&gt;&lt;/div&gt;&lt;/div&gt;'</code></td>
<td>
<p>Base HTML to use when creating the popover.</p>
<p>The popover's <code>title</code> will be injected into the <code>.popover-title</code>.</p>
<p>The popover's <code>content</code> will be injected into the <code>.popover-content</code>.</p>
<p><code>.arrow</code> will become the popover's arrow.</p>
<p>The outermost wrapper element should have the <code>.popover</code> class.</p>
<p>Base HTML to use when creating the popover.</p>
<p>The popover's <code>title</code> will be injected into the <code>.popover-title</code>.</p>
<p>The popover's <code>content</code> will be injected into the <code>.popover-content</code>.</p>
<p><code>.arrow</code> will become the popover's arrow.</p>
<p>The outermost wrapper element should have the <code>.popover</code> class.</p>
</td>
</tr>
<tr>
<td>title</td>
<td>string | function</td>
<td>''</td>
<td>Default title value if <code>title</code> attribute isn't present</td>
<td>
<p>Default title value if <code>title</code> attribute isn't present.</p>
<p>If a function is given, it will be called with its <code>this</code> reference set to the element that the popover is attached to.</p>
</td>
</tr>
<tr>
<td>trigger</td>
@@ -221,12 +226,12 @@ $('.popover-dismiss').popover({
<td>How popover is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space.</td>
</tr>
<tr>
<td>viewport</td>
<td>string | object</td>
<td>{ selector: 'body', padding: 0 }</td>
<td>
<p>Keeps the popover within the bounds of this element. Example: <code>viewport: '#viewport'</code> or <code>{ selector: '#viewport', padding: 0 }</code></p>
</td>
<td>viewport</td>
<td>string | object</td>
<td>{ selector: 'body', padding: 0 }</td>
<td>
<p>Keeps the popover within the bounds of this element. Example: <code>viewport: '#viewport'</code> or <code>{ "selector": "#viewport", "padding": 0 }</code></p>
</td>
</tr>
</tbody>
</table>
@@ -241,15 +246,15 @@ $('.popover-dismiss').popover({
<p>Initializes popovers for an element collection.</p>
<h4>.popover('show')</h4>
<p>Reveals an elements popover.</p>
<p>Reveals an element's popover. Popovers whose both title and content are zero-length are never displayed.</p>
{% highlight js %}$('#element').popover('show'){% endhighlight %}
<h4>.popover('hide')</h4>
<p>Hides an elements popover.</p>
<p>Hides an element's popover.</p>
{% highlight js %}$('#element').popover('hide'){% endhighlight %}
<h4>.popover('toggle')</h4>
<p>Toggles an elements popover.</p>
<p>Toggles an element's popover.</p>
{% highlight js %}$('#element').popover('toggle'){% endhighlight %}
<h4>.popover('destroy')</h4>
@@ -259,28 +264,28 @@ $('.popover-dismiss').popover({
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Description</th>
</tr>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>show.bs.popover</td>
<td>This event fires immediately when the <code>show</code> instance method is called.</td>
</tr>
<tr>
<td>shown.bs.popover</td>
<td>This event is fired when the popover has been made visible to the user (will wait for CSS transitions to complete).</td>
</tr>
<tr>
<td>hide.bs.popover</td>
<td>This event is fired immediately when the <code>hide</code> instance method has been called.</td>
</tr>
<tr>
<td>hidden.bs.popover</td>
<td>This event is fired when the popover has finished being hidden from the user (will wait for CSS transitions to complete).</td>
</tr>
<tr>
<td>show.bs.popover</td>
<td>This event fires immediately when the <code>show</code> instance method is called.</td>
</tr>
<tr>
<td>shown.bs.popover</td>
<td>This event is fired when the popover has been made visible to the user (will wait for CSS transitions to complete).</td>
</tr>
<tr>
<td>hide.bs.popover</td>
<td>This event is fired immediately when the <code>hide</code> instance method has been called.</td>
</tr>
<tr>
<td>hidden.bs.popover</td>
<td>This event is fired when the popover has finished being hidden from the user (will wait for CSS transitions to complete).</td>
</tr>
</tbody>
</table>
</div><!-- /.table-responsive -->
+6 -1
View File
@@ -7,7 +7,7 @@
<nav id="navbar-example2" class="navbar navbar-default navbar-static" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-example-js-navbar-scrollspy">
<button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-example-js-navbar-scrollspy">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -51,6 +51,11 @@
<h2 id="scrollspy-usage">Usage</h2>
<div class="bs-callout bs-callout-warning">
<h4>Requires Bootstrap nav</h4>
<p>Scrollspy currently requires the use of a <a href="../components/#nav">Bootstrap nav component</a> for proper highlighting of active links.</p>
</div>
<h3>Requires relative positioning</h3>
<p>No matter the implementation method, scrollspy requires the use of <code>position: relative;</code> on the element you're spying on. In most cases this is the <code>&lt;body&gt;</code>.</p>
+49 -33
View File
@@ -5,27 +5,27 @@
<p>Add quick, dynamic tab functionality to transition through panes of local content, even via dropdown menus.</p>
<div class="bs-example bs-example-tabs">
<ul id="myTab" class="nav nav-tabs" role="tablist">
<li class="active"><a href="#home" role="tab" data-toggle="tab">Home</a></li>
<li><a href="#profile" role="tab" data-toggle="tab">Profile</a></li>
<li class="dropdown">
<a href="#" id="myTabDrop1" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="myTabDrop1">
<li><a href="#dropdown1" tabindex="-1" role="tab" data-toggle="tab">@fat</a></li>
<li><a href="#dropdown2" tabindex="-1" role="tab" data-toggle="tab">@mdo</a></li>
<li role="presentation" class="active"><a href="#home" id="home-tab" role="tab" data-toggle="tab" aria-controls="home" aria-expanded="true">Home</a></li>
<li role="presentation"><a href="#profile" role="tab" id="profile-tab" data-toggle="tab" aria-controls="profile">Profile</a></li>
<li role="presentation" class="dropdown">
<a href="#" id="myTabDrop1" class="dropdown-toggle" data-toggle="dropdown" aria-controls="myTabDrop1-contents">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu" aria-labelledby="myTabDrop1" id="myTabDrop1-contents">
<li><a href="#dropdown1" tabindex="-1" role="tab" id="dropdown1-tab" data-toggle="tab" aria-controls="dropdown1">@fat</a></li>
<li><a href="#dropdown2" tabindex="-1" role="tab" id="dropdown2-tab" data-toggle="tab" aria-controls="dropdown2">@mdo</a></li>
</ul>
</li>
</ul>
<div id="myTabContent" class="tab-content">
<div class="tab-pane fade in active" id="home">
<div role="tabpanel" class="tab-pane fade in active" id="home" aria-labelledBy="home-tab">
<p>Raw denim you probably haven't heard of them jean shorts Austin. Nesciunt tofu stumptown aliqua, retro synth master cleanse. Mustache cliche tempor, williamsburg carles vegan helvetica. Reprehenderit butcher retro keffiyeh dreamcatcher synth. Cosby sweater eu banh mi, qui irure terry richardson ex squid. Aliquip placeat salvia cillum iphone. Seitan aliquip quis cardigan american apparel, butcher voluptate nisi qui.</p>
</div>
<div class="tab-pane fade" id="profile">
<div role="tabpanel" class="tab-pane fade" id="profile" aria-labelledBy="profile-tab">
<p>Food truck fixie locavore, accusamus mcsweeney's marfa nulla single-origin coffee squid. Exercitation +1 labore velit, blog sartorial PBR leggings next level wes anderson artisan four loko farm-to-table craft beer twee. Qui photo booth letterpress, commodo enim craft beer mlkshk aliquip jean shorts ullamco ad vinyl cillum PBR. Homo nostrud organic, assumenda labore aesthetic magna delectus mollit. Keytar helvetica VHS salvia yr, vero magna velit sapiente labore stumptown. Vegan fanny pack odio cillum wes anderson 8-bit, sustainable jean shorts beard ut DIY ethical culpa terry richardson biodiesel. Art party scenester stumptown, tumblr butcher vero sint qui sapiente accusamus tattooed echo park.</p>
</div>
<div class="tab-pane fade" id="dropdown1">
<div role="tabpanel" class="tab-pane fade" id="dropdown1" aria-labelledBy="dropdown1-tab">
<p>Etsy mixtape wayfarers, ethical wes anderson tofu before they sold out mcsweeney's organic lomo retro fanny pack lo-fi farm-to-table readymade. Messenger bag gentrify pitchfork tattooed craft beer, iphone skateboard locavore carles etsy salvia banksy hoodie helvetica. DIY synth PBR banksy irony. Leggings gentrify squid 8-bit cred pitchfork. Williamsburg banh mi whatever gluten-free, carles pitchfork biodiesel fixie etsy retro mlkshk vice blog. Scenester cred you probably haven't heard of them, vinyl craft beer blog stumptown. Pitchfork sustainable tofu synth chambray yr.</p>
</div>
<div class="tab-pane fade" id="dropdown2">
<div role="tabpanel" class="tab-pane fade" id="dropdown2" aria-labelledBy="dropdown2-tab">
<p>Trust fund seitan letterpress, keytar raw denim keffiyeh etsy art party before they sold out master cleanse gluten-free squid scenester freegan cosby sweater. Fanny pack portland seitan DIY, art party locavore wolf cliche high life echo park Austin. Cred vinyl keffiyeh DIY salvia PBR, banh mi before they sold out farm-to-table VHS viral locavore cosby sweater. Lomo wolf viral, mustache readymade thundercats keffiyeh craft beer marfa ethical. Wolf salvia freegan, sartorial keffiyeh echo park vegan.</p>
</div>
</div>
@@ -61,18 +61,18 @@ $('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed)
{% highlight html %}
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li class="active"><a href="#home" role="tab" data-toggle="tab">Home</a></li>
<li><a href="#profile" role="tab" data-toggle="tab">Profile</a></li>
<li><a href="#messages" role="tab" data-toggle="tab">Messages</a></li>
<li><a href="#settings" role="tab" data-toggle="tab">Settings</a></li>
<li role="presentation" class="active"><a href="#home" role="tab" data-toggle="tab">Home</a></li>
<li role="presentation"><a href="#profile" role="tab" data-toggle="tab">Profile</a></li>
<li role="presentation"><a href="#messages" role="tab" data-toggle="tab">Messages</a></li>
<li role="presentation"><a href="#settings" role="tab" data-toggle="tab">Settings</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane active" id="home">...</div>
<div class="tab-pane" id="profile">...</div>
<div class="tab-pane" id="messages">...</div>
<div class="tab-pane" id="settings">...</div>
<div role="tabpanel" class="tab-pane active" id="home">...</div>
<div role="tabpanel" class="tab-pane" id="profile">...</div>
<div role="tabpanel" class="tab-pane" id="messages">...</div>
<div role="tabpanel" class="tab-pane" id="settings">...</div>
</div>
{% endhighlight %}
@@ -80,10 +80,10 @@ $('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed)
<p>To make tabs fade in, add <code>.fade</code> to each <code>.tab-pane</code>. The first tab pane must also have <code>.in</code> to properly fade in initial content.</p>
{% highlight html %}
<div class="tab-content">
<div class="tab-pane fade in active" id="home">...</div>
<div class="tab-pane fade" id="profile">...</div>
<div class="tab-pane fade" id="messages">...</div>
<div class="tab-pane fade" id="settings">...</div>
<div role="tabpanel" class="tab-pane fade in active" id="home">...</div>
<div role="tabpanel" class="tab-pane fade" id="profile">...</div>
<div role="tabpanel" class="tab-pane fade" id="messages">...</div>
<div role="tabpanel" class="tab-pane fade" id="settings">...</div>
</div>
{% endhighlight %}
@@ -94,17 +94,17 @@ $('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed)
</p>
{% highlight html %}
<ul class="nav nav-tabs" role="tablist" id="myTab">
<li class="active"><a href="#home" role="tab" data-toggle="tab">Home</a></li>
<li><a href="#profile" role="tab" data-toggle="tab">Profile</a></li>
<li><a href="#messages" role="tab" data-toggle="tab">Messages</a></li>
<li><a href="#settings" role="tab" data-toggle="tab">Settings</a></li>
<li role="presentation" class="active"><a href="#home" role="tab" data-toggle="tab">Home</a></li>
<li role="presentation"><a href="#profile" role="tab" data-toggle="tab">Profile</a></li>
<li role="presentation"><a href="#messages" role="tab" data-toggle="tab">Messages</a></li>
<li role="presentation"><a href="#settings" role="tab" data-toggle="tab">Settings</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="home">...</div>
<div class="tab-pane" id="profile">...</div>
<div class="tab-pane" id="messages">...</div>
<div class="tab-pane" id="settings">...</div>
<div role="tabpanel" class="tab-pane active" id="home">...</div>
<div role="tabpanel" class="tab-pane" id="profile">...</div>
<div role="tabpanel" class="tab-pane" id="messages">...</div>
<div role="tabpanel" class="tab-pane" id="settings">...</div>
</div>
<script>
@@ -115,6 +115,14 @@ $('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed)
{% endhighlight %}
<h3>Events</h3>
<p>When showing a new tab, the events fire in the following order:</p>
<ol>
<li><code>hide.bs.tab</code> (on the current active tab)</li>
<li><code>show.bs.tab</code> (on the to-be-shown tab)</li>
<li><code>hidden.bs.tab</code> (on the previous active tab, the same one as for the <code>hide.bs.tab</code> event)</li>
<li><code>shown.bs.tab</code> (on the newly-active just-shown tab, the same one as for the <code>show.bs.tab</code> event)</li>
</ol>
<p>If no tab was already active, then the <code>hide.bs.tab</code> and <code>hidden.bs.tab</code> events will not be fired.</p>
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
@@ -132,13 +140,21 @@ $('#myTab li:eq(2) a').tab('show') // Select third tab (0-indexed)
<td>shown.bs.tab</td>
<td>This event fires on tab show after a tab has been shown. Use <code>event.target</code> and <code>event.relatedTarget</code> to target the active tab and the previous active tab (if available) respectively.</td>
</tr>
<tr>
<td>hide.bs.tab</td>
<td>This event fires when a new tab is to be shown (and thus the previous active tab is to be hidden). Use <code>event.target</code> and <code>event.relatedTarget</code> to target the current active tab and the new soon-to-be-active tab, respectively.</td>
</tr>
<tr>
<td>hidden.bs.tab</td>
<td>This event fires after a new tab is shown (and thus the previous active tab is hidden). Use <code>event.target</code> and <code>event.relatedTarget</code> to target the previous active tab and the new active tab, respectively.</td>
</tr>
</tbody>
</table>
</div><!-- /.table-responsive -->
{% highlight js %}
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
e.target // activated tab
e.relatedTarget // previous tab
e.target // newly activated tab
e.relatedTarget // previous active tab
})
{% endhighlight %}
</div>
+138 -102
View File
@@ -1,14 +1,44 @@
<div class="bs-docs-section">
<h1 id="tooltips" class="page-header">Tooltips <small>tooltip.js</small></h1>
<p>Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.</p>
<p>Tooltips with zero-length titles are never displayed.</p>
<h2 id="tooltips-examples">Examples</h2>
<p>Inspired by the excellent jQuery.tipsy plugin written by Jason Frame; Tooltips are an updated version, which don't rely on images, use CSS3 for animations, and data-attributes for local title storage.</p>
<p>Hover over the links below to see tooltips:</p>
<div class="bs-example tooltip-demo">
<p class="muted" style="margin-bottom: 0;">Tight pants next level keffiyeh <a href="#" data-toggle="tooltip" title="Default tooltip">you probably</a> haven't heard of them. Photo booth beard raw denim letterpress vegan messenger bag stumptown. Farm-to-table seitan, mcsweeney's fixie sustainable quinoa 8-bit american apparel <a href="#" data-toggle="tooltip" title="Another tooltip">have a</a> terry richardson vinyl chambray. Beard stumptown, cardigans banh mi lomo thundercats. Tofu biodiesel williamsburg marfa, four loko mcsweeney's cleanse vegan chambray. A really ironic artisan <a href="#" data-toggle="tooltip" title="Another one here too">whatever keytar</a>, scenester farm-to-table banksy Austin <a href="#" data-toggle="tooltip" title="The last tip!">twitter handle</a> freegan cred raw denim single-origin coffee viral.
</p>
</div><!-- /example -->
<h3>Static tooltip</h3>
<p>Four options are available: top, right, bottom, and left aligned.</p>
<div class="bs-example bs-example-tooltip">
<div class="tooltip left" role="tooltip">
<div class="tooltip-arrow"></div>
<div class="tooltip-inner">
Tooltip on the left
</div>
</div>
<div class="tooltip top" role="tooltip">
<div class="tooltip-arrow"></div>
<div class="tooltip-inner">
Tooltip on the top
</div>
</div>
<div class="tooltip bottom" role="tooltip">
<div class="tooltip-arrow"></div>
<div class="tooltip-inner">
Tooltip on the bottom
</div>
</div>
<div class="tooltip right" role="tooltip">
<div class="tooltip-arrow"></div>
<div class="tooltip-inner">
Tooltip on the right
</div>
</div>
</div>
<h3>Four directions</h3>
<div class="bs-example tooltip-demo">
<div class="bs-example-tooltips">
@@ -58,7 +88,7 @@ $('#example').tooltip(options)
<h4>Multiple-line links</h4>
<p>Sometimes you want to add a tooltip to a hyperlink that wraps multiple lines. The default behavior of the tooltip plugin is to center it horizontally and vertically. Add <code>white-space: nowrap;</code> to your anchors to avoid this.</p>
</div>
{% highlight html linenos %}
{% highlight html %}
<!-- HTML to write -->
<a href="#" data-toggle="tooltip" title="Some tooltip text!">Hover over me</a>
@@ -76,87 +106,93 @@ $('#example').tooltip(options)
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 100px;">Type</th>
<th style="width: 50px;">Default</th>
<th>Description</th>
</tr>
<tr>
<th style="width: 100px;">Name</th>
<th style="width: 100px;">Type</th>
<th style="width: 50px;">Default</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>animation</td>
<td>boolean</td>
<td>true</td>
<td>Apply a CSS fade transition to the tooltip</td>
</tr>
<tr>
<td>container</td>
<td>string | false</td>
<td>false</td>
<td>
<p>Appends the tooltip to a specific element. Example: <code>container: 'body'</code>. This option is particularly useful in that it allows you to position the tooltip in the flow of the document near the triggering element - which will prevent the tooltip from floating away from the triggering element during a window resize.</p>
</td>
</tr>
<tr>
<td>delay</td>
<td>number | object</td>
<td>0</td>
<td>
<p>Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type</p>
<p>If a number is supplied, delay is applied to both hide/show</p>
<p>Object structure is: <code>delay: { show: 500, hide: 100 }</code></p>
</td>
</tr>
<tr>
<td>html</td>
<td>boolean</td>
<td>false</td>
<td>Insert HTML into the tooltip. If false, jQuery's <code>text</code> method will be used to insert content into the DOM. Use text if you're worried about XSS attacks.</td>
</tr>
<tr>
<td>placement</td>
<td>string | function</td>
<td>'top'</td>
<td>How to position the tooltip - top | bottom | left | right | auto. <br> When "auto" is specified, it will dynamically reorient the tooltip. For example, if placement is "auto left", the tooltip will display to the left when possible, otherwise it will display right.</td>
</tr>
<tr>
<td>selector</td>
<td>string</td>
<td>false</td>
<td>If a selector is provided, tooltip objects will be delegated to the specified targets. In practice, this is used to enable dynamic HTML content to have tooltips added. See <a href="https://github.com/twbs/bootstrap/issues/4215">this</a> and <a href="http://jsfiddle.net/fScua/">an informative example</a>.</td>
</tr>
<tr>
<td>template</td>
<td>string</td>
<td><code>'&lt;div class="tooltip" role="tooltip"&gt;&lt;div class="tooltip-arrow"&gt;&lt;/div&gt;&lt;div class="tooltip-inner"&gt;&lt;/div&gt;&lt;/div&gt;'</code></td>
<td>
<p>Base HTML to use when creating the tooltip.</p>
<p>The tooltip's <code>title</code> will be injected into the <code>.tooltip-inner</code>.</p>
<p><code>.tooltip-arrow</code> will become the tooltip's arrow.</p>
<p>The outermost wrapper element should have the <code>.tooltip</code> class.</p>
</td>
</tr>
<tr>
<td>title</td>
<td>string | function</td>
<td>''</td>
<td>Default title value if <code>title</code> attribute isn't present</td>
</tr>
<tr>
<td>trigger</td>
<td>string</td>
<td>'hover focus'</td>
<td>How tooltip is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space.</td>
</tr>
<tr>
<td>viewport</td>
<td>string | object</td>
<td>{ selector: 'body', padding: 0 }</td>
<td>
<p>Keeps the tooltip within the bounds of this element. Example: <code>viewport: '#viewport'</code> or <code>{ selector: '#viewport', padding: 0 }</code></p>
</td>
</tr>
<tr>
<td>animation</td>
<td>boolean</td>
<td>true</td>
<td>Apply a CSS fade transition to the tooltip</td>
</tr>
<tr>
<td>container</td>
<td>string | false</td>
<td>false</td>
<td>
<p>Appends the tooltip to a specific element. Example: <code>container: 'body'</code>. This option is particularly useful in that it allows you to position the tooltip in the flow of the document near the triggering element - which will prevent the tooltip from floating away from the triggering element during a window resize.</p>
</td>
</tr>
<tr>
<td>delay</td>
<td>number | object</td>
<td>0</td>
<td>
<p>Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type</p>
<p>If a number is supplied, delay is applied to both hide/show</p>
<p>Object structure is: <code>delay: { "show": 500, "hide": 100 }</code></p>
</td>
</tr>
<tr>
<td>html</td>
<td>boolean</td>
<td>false</td>
<td>Insert HTML into the tooltip. If false, jQuery's <code>text</code> method will be used to insert content into the DOM. Use text if you're worried about XSS attacks.</td>
</tr>
<tr>
<td>placement</td>
<td>string | function</td>
<td>'top'</td>
<td>
<p>How to position the tooltip - top | bottom | left | right | auto.<br>When "auto" is specified, it will dynamically reorient the tooltip. For example, if placement is "auto left", the tooltip will display to the left when possible, otherwise it will display right.</p>
<p>When a function is used to determine the placement, it is called with the tooltip DOM node as its first argument and the triggering element DOM node as its second. The <code>this</code> context is set to the tooltip instance.</p>
</td>
</tr>
<tr>
<td>selector</td>
<td>string</td>
<td>false</td>
<td>If a selector is provided, tooltip objects will be delegated to the specified targets. In practice, this is used to enable dynamic HTML content to have tooltips added. See <a href="https://github.com/twbs/bootstrap/issues/4215">this</a> and <a href="http://jsbin.com/zopod/1/edit">an informative example</a>.</td>
</tr>
<tr>
<td>template</td>
<td>string</td>
<td><code>'&lt;div class="tooltip" role="tooltip"&gt;&lt;div class="tooltip-arrow"&gt;&lt;/div&gt;&lt;div class="tooltip-inner"&gt;&lt;/div&gt;&lt;/div&gt;'</code></td>
<td>
<p>Base HTML to use when creating the tooltip.</p>
<p>The tooltip's <code>title</code> will be injected into the <code>.tooltip-inner</code>.</p>
<p><code>.tooltip-arrow</code> will become the tooltip's arrow.</p>
<p>The outermost wrapper element should have the <code>.tooltip</code> class.</p>
</td>
</tr>
<tr>
<td>title</td>
<td>string | function</td>
<td>''</td>
<td>
<p>Default title value if <code>title</code> attribute isn't present.</p>
<p>If a function is given, it will be called with its <code>this</code> reference set to the element that the tooltip is attached to.</p>
</td>
</tr>
<tr>
<td>trigger</td>
<td>string</td>
<td>'hover focus'</td>
<td>How tooltip is triggered - click | hover | focus | manual. You may pass multiple triggers; separate them with a space.</td>
</tr>
<tr>
<td>viewport</td>
<td>string | object</td>
<td>{ selector: 'body', padding: 0 }</td>
<td>
<p>Keeps the tooltip within the bounds of this element. Example: <code>viewport: '#viewport'</code> or <code>{ "selector": "#viewport", "padding": 0 }</code></p>
</td>
</tr>
</tbody>
</table>
</div><!-- /.table-responsive -->
@@ -171,7 +207,7 @@ $('#example').tooltip(options)
<p>Attaches a tooltip handler to an element collection.</p>
<h4>.tooltip('show')</h4>
<p>Reveals an element's tooltip.</p>
<p>Reveals an element's tooltip. Tooltips with zero-length titles are never displayed.</p>
{% highlight js %}$('#element').tooltip('show'){% endhighlight %}
<h4>.tooltip('hide')</h4>
@@ -190,28 +226,28 @@ $('#example').tooltip(options)
<div class="table-responsive">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Description</th>
</tr>
<tr>
<th style="width: 150px;">Event Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>show.bs.tooltip</td>
<td>This event fires immediately when the <code>show</code> instance method is called.</td>
</tr>
<tr>
<td>shown.bs.tooltip</td>
<td>This event is fired when the tooltip has been made visible to the user (will wait for CSS transitions to complete).</td>
</tr>
<tr>
<td>hide.bs.tooltip</td>
<td>This event is fired immediately when the <code>hide</code> instance method has been called.</td>
</tr>
<tr>
<td>hidden.bs.tooltip</td>
<td>This event is fired when the tooltip has finished being hidden from the user (will wait for CSS transitions to complete).</td>
</tr>
<tr>
<td>show.bs.tooltip</td>
<td>This event fires immediately when the <code>show</code> instance method is called.</td>
</tr>
<tr>
<td>shown.bs.tooltip</td>
<td>This event is fired when the tooltip has been made visible to the user (will wait for CSS transitions to complete).</td>
</tr>
<tr>
<td>hide.bs.tooltip</td>
<td>This event is fired immediately when the <code>hide</code> instance method has been called.</td>
</tr>
<tr>
<td>hidden.bs.tooltip</td>
<td>This event is fired when the tooltip has finished being hidden from the user (will wait for CSS transitions to complete).</td>
</tr>
</tbody>
</table>
</div><!-- /.table-responsive -->
+2
View File
@@ -12,6 +12,7 @@
<li><a href="#dropdowns-example">Example</a></li>
<li><a href="#dropdowns-alignment">Alignment options</a></li>
<li><a href="#dropdowns-headers">Headers</a></li>
<li><a href="#dropdowns-divider">Divider</a></li>
<li><a href="#dropdowns-disabled">Disabled menu items</a></li>
</ul>
</li>
@@ -60,6 +61,7 @@
<a href="#navbar">Navbar</a>
<ul class="nav">
<li><a href="#navbar-default">Default navbar</a></li>
<li><a href="#navbar-brand-image">Brand image</a></li>
<li><a href="#navbar-forms">Forms</a></li>
<li><a href="#navbar-buttons">Buttons</a></li>
<li><a href="#navbar-text">Text</a></li>
+1
View File
@@ -1,5 +1,6 @@
<!-- NOTE: DO NOT EDIT THE FOLLOWING SECTION DIRECTLY! It is autogenerated via the `build-customizer-html` Grunt task using the customizer-nav.jade template.-->
<li><a href="#import-drop-target">Import</a></li>
<li><a href="#less">Less components</a></li>
<li><a href="#plugins">jQuery plugins</a></li>
<li><a href="#less-variables">Less variables</a>
+7
View File
@@ -28,6 +28,12 @@
<li><a href="#examples-experiments">Experiments</a></li>
</ul>
</li>
<li>
<a href="#tools">Tools</a>
<ul class="nav">
<li><a href="#tools-bootlint">Bootlint</a></li>
</ul>
</li>
<li>
<a href="#community">Community</a>
</li>
@@ -52,6 +58,7 @@
<li><a href="#support-browser-zooming">Browser zooming</a></li>
<li><a href="#support-printing">Printer viewports</a></li>
<li><a href="#support-android-stock-browser">Android stock browser</a></li>
<li><a href="#support-validators">Validators</a></li>
</ul>
</li>
<li>
+5 -2
View File
@@ -6,6 +6,7 @@
<li><a href="#js-programmatic-api">Programmatic API</a></li>
<li><a href="#js-noconflict">No conflict</a></li>
<li><a href="#js-events">Events</a></li>
<li><a href="#js-disabled">When JavaScript is disabled</a></li>
<li><a href="#callout-third-party-libs">Third-party libraries</a></li>
</ul>
</li>
@@ -64,8 +65,10 @@
<li>
<a href="#buttons">Button</a>
<ul class="nav">
<li><a href="#buttons-examples">Examples</a></li>
<li><a href="#buttons-usage">Usage</a></li>
<li><a href="#buttons-stateful">Stateful</a></li>
<li><a href="#buttons-single-toggle">Single toggle</a></li>
<li><a href="#buttons-checkbox-radio">Checkbox / Radio</a></li>
<li><a href="#buttons-methods">Methods</a></li>
</ul>
</li>
<li>
+6 -6
View File
@@ -1,7 +1,7 @@
<header class="navbar navbar-static-top bs-docs-nav" id="top" role="banner">
<div class="container">
<div class="navbar-header">
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
<button class="navbar-toggle collapsed" type="button" data-toggle="collapse" data-target=".bs-navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
@@ -12,19 +12,19 @@
<nav class="collapse navbar-collapse bs-navbar-collapse" role="navigation">
<ul class="nav navbar-nav">
<li{% if page.slug == "getting-started" %} class="active"{% endif %}>
<a href="../getting-started">Getting started</a>
<a href="../getting-started/">Getting started</a>
</li>
<li{% if page.slug == "css" %} class="active"{% endif %}>
<a href="../css">CSS</a>
<a href="../css/">CSS</a>
</li>
<li{% if page.slug == "components" %} class="active"{% endif %}>
<a href="../components">Components</a>
<a href="../components/">Components</a>
</li>
<li{% if page.slug == "js" %} class="active"{% endif %}>
<a href="../javascript">JavaScript</a>
<a href="../javascript/">JavaScript</a>
</li>
<li{% if page.slug == "customize" %} class="active"{% endif %}>
<a href="../customize">Customize</a>
<a href="../customize/">Customize</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
+2
View File
@@ -1,4 +1,6 @@
// NOTE: DO NOT EDIT THE FOLLOWING SECTION DIRECTLY! It is autogenerated via the `build-customizer-html` Grunt task using the customizer-nav.jade template.
li
a(href='#import-drop-target') Import
li
a(href='#less') Less components
li
+4 -2
View File
@@ -8,8 +8,10 @@ each section in sections
if subsection.heading
h3(id=subsection.id)= subsection.heading
div.row
each variable in subsection.variables
div.bs-customizer-input
each variable, index in subsection.variables
if index > 0 && index % 3 === 0
div.clearfix
div.col-xs-4
label(for="input-" + variable.name)= variable.name
input.form-control(
id="input-" + variable.name
+1 -1
View File
@@ -48,7 +48,7 @@
Back to top
</a>
{% if page.slug == "css" or page.slug == "components" or page.slug == "js" %}
<a href="#" class="bs-docs-theme-toggle">
<a href="#" class="bs-docs-theme-toggle" role="button">
Preview theme
</a>
{% endif %}
-1
View File
@@ -121,5 +121,4 @@ lead: "Learn about the project's history, meet the maintaining teams, and find o
<div class="color-swatch bs-gray"></div>
</div>
</div>
</div>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

+1 -1
View File
File diff suppressed because one or more lines are too long
@@ -9,27 +9,6 @@
/*
* Bootstrap Documentation
* Special styles for presenting Bootstrap's documentation and code examples.
*
* Table of contents:
*
* Scaffolding
* Main navigation
* Footer
* Social buttons
* Homepage
* Page headers
* Old docs callout
* Ads
* Side navigation
* Docs sections
* Callouts
* Grid styles
* Examples
* Code snippets (highlight)
* Responsive tests
* Glyphicons
* Customizer
* Miscellaneous
*/
@@ -484,6 +463,30 @@ body {
margin-right: auto;
margin-left: auto;
}
.bs-docs-featurette .img-responsive {
margin-top: 0;
}
}
/*
* Featured sites
*
* Homepage thumbnails from the Expo.
*/
.bs-docs-featured-sites {
margin-right: -1px;
margin-left: -1px;
}
.bs-docs-featured-sites .col-xs-6 {
padding: 1px;
}
.bs-docs-featured-sites .img-responsive {
margin-top: 0;
}
@media (min-width: 768px) {
.bs-docs-featured-sites .col-sm-3:first-child img {
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
@@ -492,31 +495,25 @@ body {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.bs-docs-featurette .img-responsive {
margin-top: 0;
}
}
/* Featured sites */
.bs-docs-featured-sites {
margin-right: -1px;
margin-left: -1px;
/*
* Examples
*
* Linked docs examples.
*/
.bs-examples .thumbnail {
margin-bottom: 10px;
}
.bs-docs-featured-sites .col-sm-3 {
padding-right: 1px;
padding-left: 1px;
.bs-examples h4 {
margin-bottom: 5px;
}
.bs-docs-featured-sites .img-responsive {
margin-bottom: 15px;
}
@media (min-width: 480px) {
.bs-docs-featured-sites .img-responsive {
margin-bottom: 0;
}
.bs-examples p {
margin-bottom: 20px;
}
/* Example thumbnails */
@media (max-width: 480px) {
.bs-examples {
margin-right: -10px;
@@ -883,7 +880,8 @@ h1[id] {
}
/* Tweak display of the code snippets when following an example */
.bs-example + .highlight {
.bs-example + .highlight,
.bs-example + .zero-clipboard + .highlight {
margin: -15px -15px 15px;
border-width: 0 0 1px;
border-radius: 0;
@@ -901,7 +899,8 @@ h1[id] {
-webkit-box-shadow: none;
box-shadow: none;
}
.bs-example + .highlight {
.bs-example + .highlight,
.bs-example + .zero-clipboard + .highlight {
margin-top: -16px;
margin-right: 0;
margin-left: 0;
@@ -909,6 +908,9 @@ h1[id] {
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
}
.bs-example-standalone {
border-radius: 4px;
}
}
/* Undo width of container */
@@ -1102,6 +1104,12 @@ h1[id] {
margin-top: 5px;
margin-bottom: 5px;
}
.bs-example-tooltip .tooltip {
position: relative;
display: inline-block;
margin: 10px 20px;
opacity: 1;
}
/* Popovers */
.bs-example-popover {
@@ -1143,7 +1151,6 @@ h1[id] {
margin-top: 0;
margin-bottom: 0;
word-break: normal;
word-wrap: nowrap;
white-space: nowrap;
background-color: transparent;
border: 0;
@@ -1333,13 +1340,6 @@ h1[id] {
font-weight: normal;
}
.bs-customizer-input {
float: left;
width: 33.333333%;
padding-right: 15px;
padding-left: 15px;
}
/* Downloads */
.bs-customize-download .btn-outline {
padding: 20px;
@@ -1378,6 +1378,33 @@ h1[id] {
box-shadow: inset 0 2px 4px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
}
.bs-dropzone {
position: relative;
padding: 20px;
margin-bottom: 20px;
color: #777;
text-align: center;
border: 2px dashed #eee;
border-radius: 4px;
}
.bs-dropzone h2 {
margin-top: 0;
margin-bottom: 5px;
}
.bs-dropzone hr {
width: 100px;
}
.bs-dropzone .lead {
margin-bottom: 10px;
font-weight: normal;
color: #333;
}
/*.bs-dropzone*/ #import-manual-trigger {
cursor: pointer;
}
.bs-dropzone p:last-child {
margin-bottom: 0;
}
/*
* Brand guidelines
@@ -1455,34 +1482,6 @@ h1[id] {
}
/*
* Miscellaneous
*
* Odds and ends for optimum docs display.
*/
/* Examples gallery: space out content better */
.bs-examples .thumbnail {
margin-bottom: 10px;
}
.bs-examples h4 {
margin-bottom: 5px;
}
.bs-examples p {
margin-bottom: 20px;
}
/* Pseudo :focus state for showing how it looks in the docs */
#focusedInput {
border-color: rgb(204,204,204); /* Restate unfocused value to make CSSLint happy that there's a pre-CSS3 fallback*/
border-color: rgba(82,168,236,.8);
outline: 0;
outline: thin dotted \9; /* IE6-9 */
-webkit-box-shadow: 0 0 8px rgba(82,168,236,.6);
box-shadow: 0 0 8px rgba(82,168,236,.6);
}
/*
* ZeroClipboard styles
*/
@@ -1515,4 +1514,25 @@ h1[id] {
.zero-clipboard {
display: block;
}
.bs-example + .zero-clipboard .btn-clipboard {
top: -16px;
border-top-right-radius: 0;
}
}
/*
* Miscellaneous
*
* Odds and ends for optimum docs display.
*/
/* Pseudo :focus state for showing how it looks in the docs */
#focusedInput {
border-color: rgb(204,204,204); /* Restate unfocused value to make CSSLint happy that there's a pre-CSS3 fallback*/
border-color: rgba(82,168,236,.8);
outline: 0;
outline: thin dotted \9; /* IE6-9 */
-webkit-box-shadow: 0 0 8px rgba(82,168,236,.6);
box-shadow: 0 0 8px rgba(82,168,236,.6);
}
-658
View File
@@ -1,658 +0,0 @@
/*!
Holder - 2.3.2 - client side image placeholders
(c) 2012-2014 Ivan Malopinsky / http://imsky.co
Provided under the MIT License.
Commercial use requires attribution.
*/
var Holder = Holder || {};
(function (app, win) {
var system_config = {
use_svg: false,
use_canvas: false,
use_fallback: false
};
var instance_config = {};
var preempted = false;
canvas = document.createElement('canvas');
var dpr = 1, bsr = 1;
var resizable_images = [];
if (!canvas.getContext) {
system_config.use_fallback = true;
} else {
if (canvas.toDataURL("image/png")
.indexOf("data:image/png") < 0) {
//Android doesn't support data URI
system_config.use_fallback = true;
} else {
var ctx = canvas.getContext("2d");
}
}
if(!!document.createElementNS && !!document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect){
system_config.use_svg = true;
system_config.use_canvas = false;
}
if(!system_config.use_fallback){
dpr = window.devicePixelRatio || 1,
bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
}
var ratio = dpr / bsr;
var settings = {
domain: "holder.js",
images: "img",
bgnodes: ".holderjs",
themes: {
"gray": {
background: "#eee",
foreground: "#aaa",
size: 12
},
"social": {
background: "#3a5a97",
foreground: "#fff",
size: 12
},
"industrial": {
background: "#434A52",
foreground: "#C2F200",
size: 12
},
"sky": {
background: "#0D8FDB",
foreground: "#fff",
size: 12
},
"vine": {
background: "#39DBAC",
foreground: "#1E292C",
size: 12
},
"lava": {
background: "#F8591A",
foreground: "#1C2846",
size: 12
}
},
stylesheet: ""
};
app.flags = {
dimensions: {
regex: /^(\d+)x(\d+)$/,
output: function (val) {
var exec = this.regex.exec(val);
return {
width: +exec[1],
height: +exec[2]
}
}
},
fluid: {
regex: /^([0-9%]+)x([0-9%]+)$/,
output: function (val) {
var exec = this.regex.exec(val);
return {
width: exec[1],
height: exec[2]
}
}
},
colors: {
regex: /#([0-9a-f]{3,})\:#([0-9a-f]{3,})/i,
output: function (val) {
var exec = this.regex.exec(val);
return {
size: settings.themes.gray.size,
foreground: "#" + exec[2],
background: "#" + exec[1]
}
}
},
text: {
regex: /text\:(.*)/,
output: function (val) {
return this.regex.exec(val)[1];
}
},
font: {
regex: /font\:(.*)/,
output: function (val) {
return this.regex.exec(val)[1];
}
},
auto: {
regex: /^auto$/
},
textmode: {
regex: /textmode\:(.*)/,
output: function(val){
return this.regex.exec(val)[1];
}
}
}
function text_size(width, height, template) {
height = parseInt(height, 10);
width = parseInt(width, 10);
var bigSide = Math.max(height, width)
var smallSide = Math.min(height, width)
var scale = 1 / 12;
var newHeight = Math.min(smallSide * 0.75, 0.75 * bigSide * scale);
return {
height: Math.round(Math.max(template.size, newHeight))
}
}
var svg_el = (function(){
//Prevent IE <9 from initializing SVG renderer
if(!window.XMLSerializer) return;
var serializer = new XMLSerializer();
var svg_ns = "http://www.w3.org/2000/svg"
var svg = document.createElementNS(svg_ns, "svg");
//IE throws an exception if this is set and Chrome requires it to be set
if(svg.webkitMatchesSelector){
svg.setAttribute("xmlns", "http://www.w3.org/2000/svg")
}
var bg_el = document.createElementNS(svg_ns, "rect")
var text_el = document.createElementNS(svg_ns, "text")
var textnode_el = document.createTextNode(null)
text_el.setAttribute("text-anchor", "middle")
text_el.appendChild(textnode_el)
svg.appendChild(bg_el)
svg.appendChild(text_el)
return function(props){
svg.setAttribute("width",props.width);
svg.setAttribute("height", props.height);
bg_el.setAttribute("width", props.width);
bg_el.setAttribute("height", props.height);
bg_el.setAttribute("fill", props.template.background);
text_el.setAttribute("x", props.width/2)
text_el.setAttribute("y", props.height/2)
textnode_el.nodeValue=props.text
text_el.setAttribute("style", css_properties({
"fill": props.template.foreground,
"font-weight": "bold",
"font-size": props.text_height+"px",
"font-family":props.font,
"dominant-baseline":"central"
}))
return serializer.serializeToString(svg)
}
})()
function css_properties(props){
var ret = [];
for(p in props){
if(props.hasOwnProperty(p)){
ret.push(p+":"+props[p])
}
}
return ret.join(";")
}
function draw_canvas(args) {
var ctx = args.ctx,
dimensions = args.dimensions,
template = args.template,
ratio = args.ratio,
holder = args.holder,
literal = holder.textmode == "literal",
exact = holder.textmode == "exact";
var ts = text_size(dimensions.width, dimensions.height, template);
var text_height = ts.height;
var width = dimensions.width * ratio,
height = dimensions.height * ratio;
var font = template.font ? template.font : "Arial,Helvetica,sans-serif";
canvas.width = width;
canvas.height = height;
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.fillStyle = template.background;
ctx.fillRect(0, 0, width, height);
ctx.fillStyle = template.foreground;
ctx.font = "bold " + text_height + "px " + font;
var text = template.text ? template.text : (Math.floor(dimensions.width) + "x" + Math.floor(dimensions.height));
if (literal) {
var dimensions = holder.dimensions;
text = dimensions.width + "x" + dimensions.height;
}
else if(exact && holder.exact_dimensions){
var dimensions = holder.exact_dimensions;
text = (Math.floor(dimensions.width) + "x" + Math.floor(dimensions.height));
}
var text_width = ctx.measureText(text).width;
if (text_width / width >= 0.75) {
text_height = Math.floor(text_height * 0.75 * (width / text_width));
}
//Resetting font size if necessary
ctx.font = "bold " + (text_height * ratio) + "px " + font;
ctx.fillText(text, (width / 2), (height / 2), width);
return canvas.toDataURL("image/png");
}
function draw_svg(args){
var dimensions = args.dimensions,
template = args.template,
holder = args.holder,
literal = holder.textmode == "literal",
exact = holder.textmode == "exact";
var ts = text_size(dimensions.width, dimensions.height, template);
var text_height = ts.height;
var width = dimensions.width,
height = dimensions.height;
var font = template.font ? template.font : "Arial,Helvetica,sans-serif";
var text = template.text ? template.text : (Math.floor(dimensions.width) + "x" + Math.floor(dimensions.height));
if (literal) {
var dimensions = holder.dimensions;
text = dimensions.width + "x" + dimensions.height;
}
else if(exact && holder.exact_dimensions){
var dimensions = holder.exact_dimensions;
text = (Math.floor(dimensions.width) + "x" + Math.floor(dimensions.height));
}
var string = svg_el({
text: text,
width:width,
height:height,
text_height:text_height,
font:font,
template:template
})
return "data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(string)));
}
function draw(args) {
if(instance_config.use_canvas && !instance_config.use_svg){
return draw_canvas(args);
}
else{
return draw_svg(args);
}
}
function render(mode, el, holder, src) {
var dimensions = holder.dimensions,
theme = holder.theme,
text = holder.text ? decodeURIComponent(holder.text) : holder.text;
var dimensions_caption = dimensions.width + "x" + dimensions.height;
theme = (text ? extend(theme, {
text: text
}) : theme);
theme = (holder.font ? extend(theme, {
font: holder.font
}) : theme);
el.setAttribute("data-src", src);
holder.theme = theme;
el.holder_data = holder;
if (mode == "image") {
el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption);
if (instance_config.use_fallback || !holder.auto) {
el.style.width = dimensions.width + "px";
el.style.height = dimensions.height + "px";
}
if (instance_config.use_fallback) {
el.style.backgroundColor = theme.background;
} else {
el.setAttribute("src", draw({ctx: ctx, dimensions: dimensions, template: theme, ratio:ratio, holder: holder}));
if(holder.textmode && holder.textmode == "exact"){
resizable_images.push(el);
resizable_update(el);
}
}
} else if (mode == "background") {
if (!instance_config.use_fallback) {
el.style.backgroundImage = "url(" + draw({ctx:ctx, dimensions: dimensions, template: theme, ratio: ratio, holder: holder}) + ")";
el.style.backgroundSize = dimensions.width + "px " + dimensions.height + "px";
}
} else if (mode == "fluid") {
el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption);
if (dimensions.height.slice(-1) == "%") {
el.style.height = dimensions.height
} else if(holder.auto == null || !holder.auto){
el.style.height = dimensions.height + "px"
}
if (dimensions.width.slice(-1) == "%") {
el.style.width = dimensions.width
} else if(holder.auto == null || !holder.auto){
el.style.width = dimensions.width + "px"
}
if (el.style.display == "inline" || el.style.display === "" || el.style.display == "none") {
el.style.display = "block";
}
set_initial_dimensions(el)
if (instance_config.use_fallback) {
el.style.backgroundColor = theme.background;
} else {
resizable_images.push(el);
resizable_update(el);
}
}
}
function dimension_check(el, callback) {
var dimensions = {
height: el.clientHeight,
width: el.clientWidth
};
if (!dimensions.height && !dimensions.width) {
el.setAttribute("data-holder-invisible", true)
callback.call(this, el)
}
else{
el.removeAttribute("data-holder-invisible")
return dimensions;
}
}
function set_initial_dimensions(el){
if(el.holder_data){
var dimensions = dimension_check(el, app.invisible_error_fn( set_initial_dimensions))
if(dimensions){
var holder = el.holder_data;
holder.initial_dimensions = dimensions;
holder.fluid_data = {
fluid_height: holder.dimensions.height.slice(-1) == "%",
fluid_width: holder.dimensions.width.slice(-1) == "%",
mode: null
}
if(holder.fluid_data.fluid_width && !holder.fluid_data.fluid_height){
holder.fluid_data.mode = "width"
holder.fluid_data.ratio = holder.initial_dimensions.width / parseFloat(holder.dimensions.height)
}
else if(!holder.fluid_data.fluid_width && holder.fluid_data.fluid_height){
holder.fluid_data.mode = "height";
holder.fluid_data.ratio = parseFloat(holder.dimensions.width) / holder.initial_dimensions.height
}
}
}
}
function resizable_update(element) {
var images;
if (element.nodeType == null) {
images = resizable_images;
} else {
images = [element]
}
for (var i in images) {
if (!images.hasOwnProperty(i)) {
continue;
}
var el = images[i]
if (el.holder_data) {
var holder = el.holder_data;
var dimensions = dimension_check(el, app.invisible_error_fn( resizable_update))
if(dimensions){
if(holder.fluid){
if(holder.auto){
switch(holder.fluid_data.mode){
case "width":
dimensions.height = dimensions.width / holder.fluid_data.ratio;
break;
case "height":
dimensions.width = dimensions.height * holder.fluid_data.ratio;
break;
}
}
el.setAttribute("src", draw({
ctx: ctx,
dimensions: dimensions,
template: holder.theme,
ratio: ratio,
holder: holder
}))
}
if(holder.textmode && holder.textmode == "exact"){
holder.exact_dimensions = dimensions;
el.setAttribute("src", draw({
ctx: ctx,
dimensions: holder.dimensions,
template: holder.theme,
ratio: ratio,
holder: holder
}))
}
}
}
}
}
function parse_flags(flags, options) {
var ret = {
theme: extend(settings.themes.gray, {})
};
var render = false;
for (var fl = flags.length, j = 0; j < fl; j++) {
var flag = flags[j];
if (app.flags.dimensions.match(flag)) {
render = true;
ret.dimensions = app.flags.dimensions.output(flag);
} else if (app.flags.fluid.match(flag)) {
render = true;
ret.dimensions = app.flags.fluid.output(flag);
ret.fluid = true;
} else if (app.flags.textmode.match(flag)) {
ret.textmode = app.flags.textmode.output(flag)
} else if (app.flags.colors.match(flag)) {
ret.theme = app.flags.colors.output(flag);
} else if (options.themes[flag]) {
//If a theme is specified, it will override custom colors
if(options.themes.hasOwnProperty(flag)){
ret.theme = extend(options.themes[flag], {});
}
} else if (app.flags.font.match(flag)) {
ret.font = app.flags.font.output(flag);
} else if (app.flags.auto.match(flag)) {
ret.auto = true;
} else if (app.flags.text.match(flag)) {
ret.text = app.flags.text.output(flag);
}
}
return render ? ret : false;
}
for (var flag in app.flags) {
if (!app.flags.hasOwnProperty(flag)) continue;
app.flags[flag].match = function (val) {
return val.match(this.regex)
}
}
app.invisible_error_fn = function(fn){
return function(el){
if(el.hasAttribute("data-holder-invisible")){
throw new Error("Holder: invisible placeholder")
}
}
}
app.add_theme = function (name, theme) {
name != null && theme != null && (settings.themes[name] = theme);
return app;
};
app.add_image = function (src, el) {
var node = selector(el);
if (node.length) {
for (var i = 0, l = node.length; i < l; i++) {
var img = document.createElement("img")
img.setAttribute("data-src", src);
node[i].appendChild(img);
}
}
return app;
};
app.run = function (o) {
instance_config = extend({}, system_config)
preempted = true;
var options = extend(settings, o),
images = [],
imageNodes = [],
bgnodes = [];
if(options.use_canvas != null && options.use_canvas){
instance_config.use_canvas = true;
instance_config.use_svg = false;
}
if (typeof (options.images) == "string") {
imageNodes = selector(options.images);
} else if (window.NodeList && options.images instanceof window.NodeList) {
imageNodes = options.images;
} else if (window.Node && options.images instanceof window.Node) {
imageNodes = [options.images];
} else if(window.HTMLCollection && options.images instanceof window.HTMLCollection){
imageNodes = options.images
}
if (typeof (options.bgnodes) == "string") {
bgnodes = selector(options.bgnodes);
} else if (window.NodeList && options.elements instanceof window.NodeList) {
bgnodes = options.bgnodes;
} else if (window.Node && options.bgnodes instanceof window.Node) {
bgnodes = [options.bgnodes];
}
for (i = 0, l = imageNodes.length; i < l; i++) images.push(imageNodes[i]);
var holdercss = document.getElementById("holderjs-style");
if (!holdercss) {
holdercss = document.createElement("style");
holdercss.setAttribute("id", "holderjs-style");
holdercss.type = "text/css";
document.getElementsByTagName("head")[0].appendChild(holdercss);
}
if (!options.nocss) {
if (holdercss.styleSheet) {
holdercss.styleSheet.cssText += options.stylesheet;
} else {
if(options.stylesheet.length){
holdercss.appendChild(document.createTextNode(options.stylesheet));
}
}
}
var cssregex = new RegExp(options.domain + "\/(.*?)\"?\\)");
for (var l = bgnodes.length, i = 0; i < l; i++) {
var src = window.getComputedStyle(bgnodes[i], null)
.getPropertyValue("background-image");
var flags = src.match(cssregex);
var bgsrc = bgnodes[i].getAttribute("data-background-src");
if (flags) {
var holder = parse_flags(flags[1].split("/"), options);
if (holder) {
render("background", bgnodes[i], holder, src);
}
} else if (bgsrc != null) {
var holder = parse_flags(bgsrc.substr(bgsrc.lastIndexOf(options.domain) + options.domain.length + 1)
.split("/"), options);
if (holder) {
render("background", bgnodes[i], holder, src);
}
}
}
for (l = images.length, i = 0; i < l; i++) {
var attr_data_src, attr_src;
attr_src = attr_data_src = src = null;
try {
attr_src = images[i].getAttribute("src");
attr_datasrc = images[i].getAttribute("data-src");
} catch (e) {}
if (attr_datasrc == null && !! attr_src && attr_src.indexOf(options.domain) >= 0) {
src = attr_src;
} else if ( !! attr_datasrc && attr_datasrc.indexOf(options.domain) >= 0) {
src = attr_datasrc;
}
if (src) {
var holder = parse_flags(src.substr(src.lastIndexOf(options.domain) + options.domain.length + 1).split("/"), options);
if (holder) {
if (holder.fluid) {
render("fluid", images[i], holder, src)
} else {
render("image", images[i], holder, src);
}
}
}
}
return app;
};
contentLoaded(win, function () {
if (window.addEventListener) {
window.addEventListener("resize", resizable_update, false);
window.addEventListener("orientationchange", resizable_update, false);
} else {
window.attachEvent("onresize", resizable_update)
}
preempted || app.run({});
if (typeof window.Turbolinks === "object") {
document.addEventListener("page:change", function() { app.run({}) })
}
});
if (typeof define === "function" && define.amd) {
define([], function () {
return app;
});
}
//github.com/davidchambers/Base64.js
(function(){function t(t){this.message=t}var e="undefined"!=typeof exports?exports:this,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.prototype=Error(),t.prototype.name="InvalidCharacterError",e.btoa||(e.btoa=function(e){for(var o,n,a=0,i=r,c="";e.charAt(0|a)||(i="=",a%1);c+=i.charAt(63&o>>8-8*(a%1))){if(n=e.charCodeAt(a+=.75),n>255)throw new t("'btoa' failed");o=o<<8|n}return c}),e.atob||(e.atob=function(e){if(e=e.replace(/=+$/,""),1==e.length%4)throw new t("'atob' failed");for(var o,n,a=0,i=0,c="";n=e.charAt(i++);~n&&(o=a%4?64*o+n:n,a++%4)?c+=String.fromCharCode(255&o>>(6&-2*a)):0)n=r.indexOf(n);return c})})();
//getElementsByClassName polyfill
document.getElementsByClassName||(document.getElementsByClassName=function(e){var t=document,n,r,i,s=[];if(t.querySelectorAll)return t.querySelectorAll("."+e);if(t.evaluate){r=".//*[contains(concat(' ', @class, ' '), ' "+e+" ')]",n=t.evaluate(r,t,null,0,null);while(i=n.iterateNext())s.push(i)}else{n=t.getElementsByTagName("*"),r=new RegExp("(^|\\s)"+e+"(\\s|$)");for(i=0;i<n.length;i++)r.test(n[i].className)&&s.push(n[i])}return s})
//getComputedStyle polyfill
window.getComputedStyle||(window.getComputedStyle=function(e){return this.el=e,this.getPropertyValue=function(t){var n=/(\-([a-z]){1})/g;return t=="float"&&(t="styleFloat"),n.test(t)&&(t=t.replace(n,function(){return arguments[2].toUpperCase()})),e.currentStyle[t]?e.currentStyle[t]:null},this})
//http://javascript.nwbox.com/ContentLoaded by Diego Perini with modifications
function contentLoaded(n,t){var l="complete",s="readystatechange",u=!1,h=u,c=!0,i=n.document,a=i.documentElement,e=i.addEventListener?"addEventListener":"attachEvent",v=i.addEventListener?"removeEventListener":"detachEvent",f=i.addEventListener?"":"on",r=function(e){(e.type!=s||i.readyState==l)&&((e.type=="load"?n:i)[v](f+e.type,r,u),!h&&(h=!0)&&t.call(n,null))},o=function(){try{a.doScroll("left")}catch(n){setTimeout(o,50);return}r("poll")};if(i.readyState==l)t.call(n,"lazy");else{if(i.createEventObject&&a.doScroll){try{c=!n.frameElement}catch(y){}c&&o()}i[e](f+"DOMContentLoaded",r,u),i[e](f+s,r,u),n[e](f+"load",r,u)}}
//https://gist.github.com/991057 by Jed Schmidt with modifications
function selector(a,b){var a=a.match(/^(\W)?(.*)/),b=b||document,c=b["getElement"+(a[1]?"#"==a[1]?"ById":"sByClassName":"sByTagName")],d=c.call(b,a[2]),e=[];return null!==d&&(e=d.length||0===d.length?d:[d]),e}
//shallow object property extend
function extend(a,b){
var c={};
for(var i in a){
if(a.hasOwnProperty(i)){
c[i]=a[i];
}
}
for(var i in b){
if(b.hasOwnProperty(i)){
c[i]=b[i];
}
}
return c
}
//hasOwnProperty polyfill
if (!Object.prototype.hasOwnProperty)
/*jshint -W001, -W103 */
Object.prototype.hasOwnProperty = function(prop) {
var proto = this.__proto__ || this.constructor.prototype;
return (prop in this) && (!(prop in proto) || proto[prop] !== this[prop]);
}
/*jshint +W001, +W103 */
})(Holder, window);
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+22 -22
View File
File diff suppressed because one or more lines are too long
+8 -6
View File
File diff suppressed because one or more lines are too long
+4 -4
View File
File diff suppressed because one or more lines are too long
@@ -27,13 +27,11 @@
$body.scrollspy('refresh')
})
// Kill links
$('.bs-docs-container [href=#]').click(function (e) {
e.preventDefault()
})
// Sidenav affixing
setTimeout(function () {
var $sideBar = $('.bs-docs-sidebar')
@@ -62,15 +60,25 @@
;(function () {
var stylesheetLink = $('#bs-theme-stylesheet')
var themeBtn = $('.bs-docs-theme-toggle')
var activateTheme = function () {
stylesheetLink.attr('href', stylesheetLink.attr('data-href'))
themeBtn.text('Disable theme preview')
localStorage.setItem('previewTheme', true)
}
if (localStorage.getItem('previewTheme')) {
activateTheme()
}
themeBtn.click(function () {
var href = stylesheetLink.attr('href');
var href = stylesheetLink.attr('href')
if (!href || href.indexOf('data') === 0) {
stylesheetLink.attr('href', stylesheetLink.attr('data-href'))
themeBtn.text('Disable theme preview')
}
else {
activateTheme()
} else {
stylesheetLink.attr('href', '')
themeBtn.text('Preview theme')
localStorage.removeItem('previewTheme')
}
})
})();
@@ -80,20 +88,20 @@
selector: '[data-toggle="tooltip"]',
container: 'body'
})
$('.popover-demo').popover({
selector: '[data-toggle="popover"]',
container: 'body'
})
// Demos within modals
$('.tooltip-test').tooltip()
$('.popover-test').popover()
$('.bs-docs-navbar').tooltip({
selector: 'a[data-toggle="tooltip"]',
container: '.bs-docs-navbar .nav'
})
// Default popover demo
// Popover demos
$('.bs-docs-popover').popover()
// Button state demo
$('#loading-example-btn').click(function () {
$('#loading-example-btn').on('click', function () {
var btn = $(this)
btn.button('loading')
setTimeout(function () {
@@ -101,6 +109,10 @@
}, 3000)
})
// Activate animated progress bar
$('.bs-docs-activate-animated-progressbar').on('click', function () {
$(this).siblings('.progress').find('.progress-bar-striped').toggleClass('active')
})
// Config ZeroClipboard
ZeroClipboard.config({
@@ -108,17 +120,10 @@
hoverClass: 'btn-clipboard-hover'
})
// Insert copy to clipboard button before .highlight or .bs-example
// Insert copy to clipboard button before .highlight
$('.highlight').each(function () {
var highlight = $(this)
var previous = highlight.prev()
var btnHtml = '<div class="zero-clipboard"><span class="btn-clipboard">Copy</span></div>'
if (previous.hasClass('bs-example')) {
previous.before(btnHtml.replace(/btn-clipboard/, 'btn-clipboard with-example'))
} else {
highlight.before(btnHtml)
}
$(this).before(btnHtml)
})
var zeroClipboard = new ZeroClipboard($('.btn-clipboard'))
var htmlBridge = $('#global-zeroclipboard-html-bridge')
@@ -11,11 +11,14 @@
window.onload = function () { // wait for load in a dumb way because B-0
'use strict';
var cw = '/*!\n' +
' * Bootstrap v3.2.0 (http://getbootstrap.com)\n' +
' * Bootstrap v3.3.0 (http://getbootstrap.com)\n' +
' * Copyright 2011-2014 Twitter, Inc.\n' +
' * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n' +
' */\n\n'
var supportsFile = (window.File && window.FileReader && window.FileList && window.Blob)
var importDropTarget = $('#import-drop-target')
function showError(msg, err) {
$('<div id="bsCustomizerAlert" class="bs-customizer-alert">' +
'<div class="container">' +
@@ -46,6 +49,11 @@ window.onload = function () { // wait for load in a dumb way because B-0
}
}
function showAlert(type, msg, insertAfter) {
$('<div class="alert alert-' + type + '">' + msg + '<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button></div>')
.insertAfter(insertAfter)
}
function getQueryParam(key) {
key = key.replace(/[*+?^$.\[\]{}()|\\\/]/g, '\\$&') // escape RegEx meta chars
var match = location.search.match(new RegExp('[?&]' + key + '=([^&]+)(&|$)'))
@@ -65,6 +73,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
$.ajax({
url: 'https://api.github.com/gists',
type: 'POST',
contentType: 'application/json; charset=UTF-8',
dataType: 'json',
data: JSON.stringify(data)
})
@@ -106,6 +115,24 @@ window.onload = function () { // wait for load in a dumb way because B-0
return data
}
function updateCustomizerFromJson(data) {
if (data.js) {
$('#plugin-section input').each(function () {
$(this).prop('checked', ~$.inArray(this.value, data.js))
})
}
if (data.css) {
$('#less-section input').each(function () {
$(this).prop('checked', ~$.inArray(this.value, data.css))
})
}
if (data.vars) {
for (var i in data.vars) {
$('input[data-var="' + i + '"]').val(data.vars[i])
}
}
}
function parseUrl() {
var id = getQueryParam('id')
@@ -118,21 +145,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
})
.success(function (result) {
var data = JSON.parse(result.files['config.json'].content)
if (data.js) {
$('#plugin-section input').each(function () {
$(this).prop('checked', ~$.inArray(this.value, data.js))
})
}
if (data.css) {
$('#less-section input').each(function () {
$(this).prop('checked', ~$.inArray(this.value, data.css))
})
}
if (data.vars) {
for (var i in data.vars) {
$('input[data-var="' + i + '"]').val(data.vars[i])
}
}
updateCustomizerFromJson(data)
})
.error(function (err) {
showError('Error fetching bootstrap config file', err)
@@ -306,7 +319,19 @@ window.onload = function () { // wait for load in a dumb way because B-0
function generateJS(preamble) {
var $checked = $('#plugin-section input:checked')
var jqueryCheck = 'if (typeof jQuery === "undefined") { throw new Error("Bootstrap\'s JavaScript requires jQuery") }\n\n'
var jqueryCheck = [
'if (typeof jQuery === \'undefined\') {',
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery\')',
'}\n'
].join('\n')
var jqueryVersionCheck = [
'+function ($) {',
' var version = $.fn.jquery.split(\' \')[0].split(\'.\')',
' if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {',
' throw new Error(\'Bootstrap\\\'s JavaScript requires jQuery version 1.9.1 or higher\')',
' }',
'}(jQuery);\n\n'
].join('\n')
if (!$checked.length) return false
@@ -316,7 +341,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
.join('\n')
preamble = cw + preamble
js = jqueryCheck + js
js = jqueryCheck + jqueryVersionCheck + js
return {
'bootstrap.js': preamble + js,
@@ -324,6 +349,61 @@ window.onload = function () { // wait for load in a dumb way because B-0
}
}
function removeImportAlerts() {
importDropTarget.nextAll('.alert').remove()
}
function handleConfigFileSelect(e) {
e.stopPropagation()
e.preventDefault()
var file = (e.originalEvent.hasOwnProperty('dataTransfer')) ? e.originalEvent.dataTransfer.files[0] : e.originalEvent.target.files[0]
if (!file.type.match('application/json')) {
return showAlert('danger', '<strong>Ruh roh.</strong> We can only read <code>.json</code> files. Please try again.', importDropTarget)
}
var reader = new FileReader()
reader.onload = (function () {
return function (e) {
var text = e.target.result
try {
var json = JSON.parse(text)
if (typeof json != 'object') {
throw new Error('JSON data from config file is not an object.')
}
updateCustomizerFromJson(json)
showAlert('success', '<strong>Woohoo!</strong> Your configuration was successfully uploaded. Tweak your settings, then hit Download.', importDropTarget)
} catch (err) {
return showAlert('danger', '<strong>Shucks.</strong> We can only read valid <code>.json</code> files. Please try again.', importDropTarget)
}
}
})(file)
reader.readAsText(file)
}
function handleConfigDragOver(e) {
e.stopPropagation()
e.preventDefault()
e.originalEvent.dataTransfer.dropEffect = 'copy'
removeImportAlerts()
}
if (supportsFile) {
importDropTarget
.on('dragover', handleConfigDragOver)
.on('drop', handleConfigFileSelect)
}
$('#import-file-select').on('select', handleConfigFileSelect)
$('#import-manual-trigger').on('click', removeImportAlerts)
var inputsComponent = $('#less-section input')
var inputsPlugin = $('#plugin-section input')
var inputsVariables = $('#less-variables-section input')
@@ -386,7 +466,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
generateZip(generateCSS(preamble), generateJS(preamble), generateFonts(), configJson, function (blob) {
$compileBtn.removeAttr('disabled')
saveAs(blob, 'bootstrap.zip')
setTimeout(function () { saveAs(blob, 'bootstrap.zip') }, 0)
})
})
});
@@ -410,7 +490,8 @@ window.onload = function () { // wait for load in a dumb way because B-0
{ type: 'image/svg+xml;charset=utf-8' }
)
var objectUrl = url.createObjectURL(svg);
if (/^blob:/.exec(objectUrl) === null) {
if (/^blob:/.exec(objectUrl) === null || !supportsFile) {
// `URL.createObjectURL` created a URL that started with something other
// than "blob:", which means it has been polyfilled and is not supported by
// this browser.
@@ -1,9 +1,9 @@
/* Blob.js
* A Blob implementation.
* 2014-05-31
*
* 2014-07-24
*
* By Eli Grey, http://eligrey.com
* By Devin Samarin, https://github.com/eboyjr
* By Devin Samarin, https://github.com/dsamarin
* License: X11/MIT
* See https://github.com/eligrey/Blob.js/blob/master/LICENSE.md
*/
@@ -59,16 +59,34 @@
, URL = real_URL
, btoa = view.btoa
, atob = view.atob
, ArrayBuffer = view.ArrayBuffer
, Uint8Array = view.Uint8Array
, origin = /^[\w-]+:\/*\[?[\w\.:-]+\]?(?::[0-9]+)?/
;
FakeBlob.fake = FB_proto.fake = true;
while (file_ex_code--) {
FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1;
}
// Polyfill URL
if (!real_URL.createObjectURL) {
URL = view.URL = {};
URL = view.URL = function(uri) {
var
uri_info = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
, uri_origin
;
uri_info.href = uri;
if (!("origin" in uri_info)) {
if (uri_info.protocol.toLowerCase() === "data:") {
uri_info.origin = null;
} else {
uri_origin = uri.match(origin);
uri_info.origin = uri_origin && uri_origin[1];
}
}
return uri_info;
};
}
URL.createObjectURL = function(blob) {
var
@@ -166,7 +184,7 @@
return FakeBlobBuilder;
}(view));
view.Blob = function Blob(blobParts, options) {
view.Blob = function(blobParts, options) {
var type = options ? (options.type || "") : "";
var builder = new BlobBuilder();
if (blobParts) {
@@ -1,10 +1,10 @@
/* FileSaver.js
* A saveAs() FileSaver implementation.
* 2014-05-27
* A saveAs() FileSaver implementation.
* 2014-08-29
*
* By Eli Grey, http://eligrey.com
* License: X11/MIT
* See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
* By Eli Grey, http://eligrey.com
* License: X11/MIT
* See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md
*/
/*global self */
@@ -31,7 +31,7 @@ var saveAs = saveAs
return view.URL || view.webkitURL || view;
}
, save_link = doc.createElementNS("http://www.w3.org/1999/xhtml", "a")
, can_use_save_link = !view.externalHost && "download" in save_link
, can_use_save_link = "download" in save_link
, click = function(node) {
var event = doc.createEvent("MouseEvents");
event.initMouseEvent(
@@ -49,18 +49,22 @@ var saveAs = saveAs
}
, force_saveable_type = "application/octet-stream"
, fs_min_size = 0
, deletion_queue = []
, process_deletion_queue = function() {
var i = deletion_queue.length;
while (i--) {
var file = deletion_queue[i];
// 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
, revoke = function(file) {
var revoker = function() {
if (typeof file === "string") { // file is an object URL
get_URL().revokeObjectURL(file);
} else { // file is a File
file.remove();
}
};
if (view.chrome) {
revoker();
} else {
setTimeout(revoker, arbitrary_revoke_timeout);
}
deletion_queue.length = 0; // clear queue
}
, dispatch = function(filesaver, event_types, event) {
event_types = [].concat(event_types);
@@ -84,11 +88,6 @@ var saveAs = saveAs
, blob_changed = false
, object_url
, target_view
, get_object_url = function() {
var object_url = get_URL().createObjectURL(blob);
deletion_queue.push(object_url);
return object_url;
}
, dispatch_all = function() {
dispatch(filesaver, "writestart progress write writeend".split(" "));
}
@@ -96,15 +95,20 @@ var saveAs = saveAs
, fs_error = function() {
// don't create more object URLs than needed
if (blob_changed || !object_url) {
object_url = get_object_url(blob);
object_url = get_URL().createObjectURL(blob);
}
if (target_view) {
target_view.location.href = object_url;
} else {
window.open(object_url, "_blank");
var new_tab = view.open(object_url, "_blank");
if (new_tab == undefined && typeof safari !== "undefined") {
//Apple do not allow window.open, see http://bit.ly/1kZffRI
view.location.href = object_url
}
}
filesaver.readyState = filesaver.DONE;
dispatch_all();
revoke(object_url);
}
, abortable = function(func) {
return function() {
@@ -121,17 +125,20 @@ var saveAs = saveAs
name = "download";
}
if (can_use_save_link) {
object_url = get_object_url(blob);
object_url = get_URL().createObjectURL(blob);
save_link.href = object_url;
save_link.download = name;
click(save_link);
filesaver.readyState = filesaver.DONE;
dispatch_all();
revoke(object_url);
return;
}
// Object and web filesystem URLs have a problem saving in Google Chrome when
// viewed in a tab, so I force save with application/octet-stream
// http://code.google.com/p/chromium/issues/detail?id=91158
// Update: Google errantly closed 91158, I submitted it again:
// https://code.google.com/p/chromium/issues/detail?id=389642
if (view.chrome && type && type !== force_saveable_type) {
slice = blob.slice || blob.webkitSlice;
blob = slice.call(blob, 0, blob.size, force_saveable_type);
@@ -158,9 +165,9 @@ var saveAs = saveAs
file.createWriter(abortable(function(writer) {
writer.onwriteend = function(event) {
target_view.location.href = file.toURL();
deletion_queue.push(file);
filesaver.readyState = filesaver.DONE;
dispatch(filesaver, "writeend", event);
revoke(file);
};
writer.onerror = function() {
var error = writer.error;
@@ -217,11 +224,6 @@ var saveAs = saveAs
FS_proto.onwriteend =
null;
view.addEventListener("unload", process_deletion_queue, false);
saveAs.unload = function() {
process_deletion_queue();
view.removeEventListener("unload", process_deletion_queue, false);
};
return saveAs;
}(
typeof self !== "undefined" && self
+12
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+49 -38
View File
@@ -23,18 +23,24 @@ lead: "A list of the browser bugs that Bootstrap is currently grappling with."
</tr>
</thead>
<tbody>
<tr>
<td>Internet Explorer 11</td>
<td>Hovered element still remains in <code>:hover</code> state after scrolling away</td>
<td><a href="https://connect.microsoft.com/IE/feedback/details/926665/ie-11-hovering-over-an-element-and-then-scrolling-without-moving-the-mouse-pointer-leaves-the-element-in-hover-state">IE bug #926665</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/14211">#14211</a></td>
</tr>
<tr>
<td>Internet Explorer 11</td>
<td>When hovering over a <code>&lt;select&gt;</code> menu item, the cursor for the element underneath the menu is displayed</td>
<td><a href="https://connect.microsoft.com/IE/feedbackdetail/view/963961">IE bug #963961</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/14528">#14528</a></td>
</tr>
<tr>
<td>Firefox</td>
<td><code>.table-bordered</code> with an empty <code>&lt;tbody&gt;</code> is missing borders</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023761">Mozilla bug #1023761</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/13453">#13453</a></td>
</tr>
<tr>
<td>Firefox</td>
<td>Unusual default form control styles on Android</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=900871">Closed Mozilla bug #900871</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=763671">Open Mozilla bug #763671</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/8702">#8702</a></td>
</tr>
<tr>
<td>Firefox</td>
<td><code>max-width: 100%;</code> doesn't work inside tables</td>
@@ -42,22 +48,28 @@ lead: "A list of the browser bugs that Bootstrap is currently grappling with."
<td><a href="https://github.com/twbs/bootstrap/issues/10690">#10690</a></td>
</tr>
<tr>
<td>Firefox <strong>&lt;31</strong></td>
<td><code>position: relative;</code> doesn't work inside tables</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=63895">Mozilla bug #63895</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/12467">#12467</a></td>
<td>Firefox</td>
<td>Java applets that are descendants of elements with forced hardware acceleration using <code>translate3d(0,0,0)</code> are invisible on Windows</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1048279">Mozilla bug #1048279</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/14124">#14124</a></td>
</tr>
<tr>
<td>Firefox</td>
<td>Button elements with <code>width: 100%</code> become cropped in long tables.</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1060131">Mozilla bug #1060131</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/14320">#14320</a></td>
</tr>
<tr>
<td>Firefox</td>
<td>If the disabled state of a form control is changed via JavaScript, the normal state doesn't return after refreshing the page.</td>
<td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=654072">Mozilla bug #654072</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/793">#793</a></td>
</tr>
<tr>
<td>Chrome</td>
<td>Weird button behavior with some number <code>&lt;input&gt;</code>s</td>
<td><a href="https://code.google.com/p/chromium/issues/detail?id=337668">Chromium issue #337668</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/8350">#8350</a>, <a href="https://github.com/necolas/normalize.css/issues/283">Normalize #283</a></td>
</tr>
<tr>
<td>Chrome</td>
<td>Navbar rendering problem on Windows after several clicks</td>
<td><a href="https://code.google.com/p/chromium/issues/detail?id=272750">Chromium issue #272750</a>, <a href="https://bugs.webkit.org/show_bug.cgi?id=119793">WebKit bug #119793</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/9226">#9226</a></td>
<td>Clicking above <code>&lt;input type="number"&gt;</code> increment button flashes the decrement button</td>
<td><a href="https://code.google.com/p/chromium/issues/detail?id=419108"></a></td>
<td>Offshoot of <a href="https://github.com/twbs/bootstrap/issues/8350">#8350</a> &amp; <a href="https://code.google.com/p/chromium/issues/detail?id=337668">Chromium issue #337668</a></td>
</tr>
<tr>
<td>Chrome</td>
@@ -65,18 +77,6 @@ lead: "A list of the browser bugs that Bootstrap is currently grappling with."
<td><a href="https://code.google.com/p/chromium/issues/detail?id=309483">Chromium issue #309483</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/9950">#9950</a></td>
</tr>
<tr>
<td>Chrome</td>
<td>Unwanted vertical lines when printing styled <code>&lt;select&gt;</code> on OS X</td>
<td><a href="https://code.google.com/p/chromium/issues/detail?id=282918">Chromium issue #282918</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/11245">#11245</a></td>
</tr>
<tr>
<td>Chrome</td>
<td>inline-block element collapses white-space on Windows</td>
<td><a href="https://code.google.com/p/chromium/issues/detail?id=329574">Chromium issue #329574</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/11885">#11885</a></td>
</tr>
<tr>
<td>Chrome</td>
<td>Incorrect viewport size used for media queries when printing</td>
@@ -96,19 +96,30 @@ lead: "A list of the browser bugs that Bootstrap is currently grappling with."
<td><a href="https://github.com/twbs/bootstrap/issues/12548">#12548</a></td>
</tr>
<tr>
<td>Safari</td>
<td>Insufficient CSS percentage precision</td>
<td>(No public bug tracker)</td>
<td><a href="https://github.com/twbs/bootstrap/issues/9282">#9282</a></td>
<td>Chrome</td>
<td><code>&lt;input type="password"&gt;</code> sporadically causes bad widths on floated elements</td>
<td><a href="https://code.google.com/p/chromium/issues/detail?id=377346">Chrome issue #377346</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/13892">#13892</a></td>
</tr>
<tr>
<td>Safari</td>
<td>Justified nav rendering bug</td>
<td>(No public bug tracker)</td>
<td>Weird button behavior with some number <code>&lt;input&gt;</code>s</td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=137269">WebKit bug #137269</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/8350">#8350</a>, <a href="https://github.com/necolas/normalize.css/issues/283">Normalize #283</a>, <a href="https://code.google.com/p/chromium/issues/detail?id=337668">Chromium issue #337668</a></td>
</tr>
<tr>
<td>Safari</td>
<td><code>display: table-cell;</code> within media query renders incorrectly when resizing the window</td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=138167">WebKit bug #138167</a></td>
<td><a href="https://github.com/twbs/bootstrap/issues/9774">#9774</a></td>
</tr>
<tr>
<td>Safari</td>
<td><code>transform: translate3d(0, 0, 0);</code> iOS bug</td>
<td><a href="https://bugs.webkit.org/show_bug.cgi?id=138162">WebKit bug #138162</a>, <a href="http://openradar.appspot.com/18804973">Apple Safari Radar #18804973</a></td>
<td><a href="https://github.com/twbs/bootstrap/pull/14603">#14603</a></td>
</tr>
</tbody>
</table>
</div>
</div>
+1
View File
@@ -5,6 +5,7 @@ slug: components
lead: "Over a dozen reusable components built to provide iconography, dropdowns, input groups, navigation, alerts, and much more."
---
{% include components/glyphicons.html %}
{% include components/dropdowns.html %}
{% include components/button-groups.html %}
+1
View File
@@ -5,6 +5,7 @@ slug: css
lead: "Global CSS settings, fundamental HTML elements styled and enhanced with extensible classes, and an advanced grid system."
---
{% include css/overview.html %}
{% include css/grid.html %}
{% include css/type.html %}
+14 -8
View File
@@ -5,24 +5,36 @@ slug: customize
lead: Customize Bootstrap's components, Less variables, and jQuery plugins to get your very own version.
---
<!-- less.js isn't IE8-compatible and throws an exception during initialization, so our Blob compatibility check and error messaging code never get called in that case.
So we use a conditional comment instead to inform folks about the lack of IE8 support.
The alert covers up the entire customizer UI.
-->
<!--[if lt IE 9]>
<style>
.bs-customizer,
.bs-customizer-import,
.bs-docs-sidebar {
display: none;
}
</style>
<div class="alert alert-danger bs-customizer-alert-ie">
<div class="alert alert-danger">
<strong>The Bootstrap Customizer does not support IE9 and below.</strong><br>
Please take a second to <a href="http://browsehappy.com/">upgrade to a more modern browser</a>.
</div>
<![endif]-->
<!-- Customizer form -->
<div class="bs-docs-section bs-customizer-import">
<div id="import-drop-target" class="bs-dropzone">
<h2></h2>
<p class="lead">Have an existing configuration? Upload your <code>config.json</code> to import it.</p>
<p>Drag and drop here, or <label id="import-manual-trigger" class="btn-link">manually upload<input type="file" id="import-file-select" class="hidden"></label>.</p>
<hr>
<p><strong>Don't have one?</strong> That's okay—just start customizing the fields below.</p>
</div>
</div><!-- /import -->
<form class="bs-customizer" role="form">
<div class="bs-docs-section" id="less-section">
<button class="btn btn-default toggle" type="button">Toggle all</button>
@@ -249,8 +261,6 @@ lead: Customize Bootstrap's components, Less variables, and jQuery plugins to ge
</div><!-- /.row -->
</div>
<div class="bs-docs-section" id="plugin-section">
<button class="btn btn-default toggle" type="button">Toggle all</button>
<h1 id="plugins" class="page-header">jQuery plugins</h1>
@@ -348,8 +358,6 @@ lead: Customize Bootstrap's components, Less variables, and jQuery plugins to ge
</div>
</div>
<div class="bs-docs-section" id="less-variables-section">
<button class="btn btn-default toggle" type="button">Reset to defaults</button>
<h1 id="less-variables" class="page-header">Less variables</h1>
@@ -358,8 +366,6 @@ lead: Customize Bootstrap's components, Less variables, and jQuery plugins to ge
{% include customizer-variables.html %}
</div>
<div class="bs-docs-section">
<h1 id="download" class="page-header">Download</h1>
+457
View File
@@ -0,0 +1,457 @@
/*!
* Bootstrap v3.3.0 (http://getbootstrap.com)
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
.btn-default,
.btn-primary,
.btn-success,
.btn-info,
.btn-warning,
.btn-danger {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
}
.btn-default:active,
.btn-primary:active,
.btn-success:active,
.btn-info:active,
.btn-warning:active,
.btn-danger:active,
.btn-default.active,
.btn-primary.active,
.btn-success.active,
.btn-info.active,
.btn-warning.active,
.btn-danger.active {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-default .badge,
.btn-primary .badge,
.btn-success .badge,
.btn-info .badge,
.btn-warning .badge,
.btn-danger .badge {
text-shadow: none;
}
.btn:active,
.btn.active {
background-image: none;
}
.btn-default {
text-shadow: 0 1px 0 #fff;
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #dbdbdb;
border-color: #ccc;
}
.btn-default:hover,
.btn-default:focus {
background-color: #e0e0e0;
background-position: 0 -15px;
}
.btn-default:active,
.btn-default.active {
background-color: #e0e0e0;
border-color: #dbdbdb;
}
.btn-default:disabled,
.btn-default[disabled] {
background-color: #e0e0e0;
background-image: none;
}
.btn-primary {
background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#2d6ca2));
background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #2b669a;
}
.btn-primary:hover,
.btn-primary:focus {
background-color: #2d6ca2;
background-position: 0 -15px;
}
.btn-primary:active,
.btn-primary.active {
background-color: #2d6ca2;
border-color: #2b669a;
}
.btn-primary:disabled,
.btn-primary[disabled] {
background-color: #2d6ca2;
background-image: none;
}
.btn-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #3e8f3e;
}
.btn-success:hover,
.btn-success:focus {
background-color: #419641;
background-position: 0 -15px;
}
.btn-success:active,
.btn-success.active {
background-color: #419641;
border-color: #3e8f3e;
}
.btn-success:disabled,
.btn-success[disabled] {
background-color: #419641;
background-image: none;
}
.btn-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #28a4c9;
}
.btn-info:hover,
.btn-info:focus {
background-color: #2aabd2;
background-position: 0 -15px;
}
.btn-info:active,
.btn-info.active {
background-color: #2aabd2;
border-color: #28a4c9;
}
.btn-info:disabled,
.btn-info[disabled] {
background-color: #2aabd2;
background-image: none;
}
.btn-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #e38d13;
}
.btn-warning:hover,
.btn-warning:focus {
background-color: #eb9316;
background-position: 0 -15px;
}
.btn-warning:active,
.btn-warning.active {
background-color: #eb9316;
border-color: #e38d13;
}
.btn-warning:disabled,
.btn-warning[disabled] {
background-color: #eb9316;
background-image: none;
}
.btn-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-color: #b92c28;
}
.btn-danger:hover,
.btn-danger:focus {
background-color: #c12e2a;
background-position: 0 -15px;
}
.btn-danger:active,
.btn-danger.active {
background-color: #c12e2a;
border-color: #b92c28;
}
.btn-danger:disabled,
.btn-danger[disabled] {
background-color: #c12e2a;
background-image: none;
}
.thumbnail,
.img-thumbnail {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
background-color: #e8e8e8;
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
background-color: #357ebd;
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.navbar-default {
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8));
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
}
.navbar-brand,
.navbar-nav > li > a {
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
}
.navbar-inverse {
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
background-repeat: repeat-x;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .active > a {
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
background-repeat: repeat-x;
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
}
.navbar-inverse .navbar-brand,
.navbar-inverse .navbar-nav > li > a {
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
}
.navbar-static-top,
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
.alert {
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
}
.alert-success {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
background-repeat: repeat-x;
border-color: #b2dba1;
}
.alert-info {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
background-repeat: repeat-x;
border-color: #9acfea;
}
.alert-warning {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
background-repeat: repeat-x;
border-color: #f5e79e;
}
.alert-danger {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
background-repeat: repeat-x;
border-color: #dca7a7;
}
.progress {
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar {
background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #3071a9 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3071a9));
background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-success {
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-info {
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-warning {
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-danger {
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
background-repeat: repeat-x;
}
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.list-group {
border-radius: 4px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
text-shadow: 0 -1px 0 #3071a9;
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #3278b3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#3278b3));
background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
background-repeat: repeat-x;
border-color: #3278b3;
}
.list-group-item.active .badge,
.list-group-item.active:hover .badge,
.list-group-item.active:focus .badge {
text-shadow: none;
}
.panel {
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
}
.panel-default > .panel-heading {
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
background-repeat: repeat-x;
}
.panel-primary > .panel-heading {
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -o-linear-gradient(top, #428bca 0%, #357ebd 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#428bca), to(#357ebd));
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
background-repeat: repeat-x;
}
.panel-success > .panel-heading {
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
background-repeat: repeat-x;
}
.panel-info > .panel-heading {
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
background-repeat: repeat-x;
}
.panel-warning > .panel-heading {
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
background-repeat: repeat-x;
}
.panel-danger > .panel-heading {
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
background-repeat: repeat-x;
}
.well {
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
background-repeat: repeat-x;
border-color: #dcdcdc;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
}
/*# sourceMappingURL=bootstrap-theme.css.map */
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+6358
View File
File diff suppressed because it is too large Load Diff

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