From: Mark Otto Date: Sun, 1 Mar 2015 21:44:10 +0000 (-0800) Subject: Merge branch 'master' into v4 X-Git-Tag: v4.0.0-alpha~361 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c16fee5efd5620197ab1213ca3699830d590ee39;p=thirdparty%2Fbootstrap.git Merge branch 'master' into v4 Conflicts: .travis.yml Gruntfile.js bower.json dist/css/bootstrap.css dist/css/bootstrap.css.map dist/css/bootstrap.min.css dist/js/bootstrap.js dist/js/bootstrap.min.js docs/_data/glyphicons.yml docs/_includes/components/breadcrumbs.html docs/_includes/components/button-dropdowns.html docs/_includes/components/button-groups.html docs/_includes/components/dropdowns.html docs/_includes/components/glyphicons.html docs/_includes/components/labels.html docs/_includes/components/list-group.html docs/_includes/components/media.html docs/_includes/components/navs.html docs/_includes/components/panels.html docs/_includes/components/progress-bars.html docs/_includes/components/thumbnails.html docs/_includes/components/wells.html docs/_includes/css/buttons.html docs/_includes/css/forms.html docs/_includes/css/helpers.html docs/_includes/css/images.html docs/_includes/css/less.html docs/_includes/customizer-variables.html docs/_includes/getting-started/accessibility.html docs/_includes/getting-started/browser-device-support.html docs/_includes/getting-started/community.html docs/_includes/getting-started/examples.html docs/_includes/getting-started/grunt.html docs/_includes/getting-started/license.html docs/_includes/getting-started/template.html docs/_includes/header.html docs/_includes/js/affix.html docs/_includes/js/alerts.html docs/_includes/js/carousel.html docs/_includes/js/collapse.html docs/_includes/js/dropdowns.html docs/_includes/js/modal.html docs/_includes/js/overview.html docs/_includes/js/popovers.html docs/_includes/js/scrollspy.html docs/_includes/js/tabs.html docs/_includes/js/tooltips.html docs/_includes/js/transitions.html docs/_includes/nav/javascript.html docs/_layouts/default.html docs/assets/css/docs.min.css docs/assets/css/src/docs.css docs/assets/js/customize.min.js docs/assets/js/docs.min.js docs/assets/js/raw-files.min.js docs/assets/js/vendor/FileSaver.js docs/assets/js/vendor/autoprefixer.js docs/assets/js/vendor/uglify.min.js docs/dist/css/bootstrap.css docs/dist/css/bootstrap.css.map docs/dist/css/bootstrap.min.css docs/dist/js/bootstrap.min.js docs/examples/blog/index.html docs/examples/carousel/index.html docs/examples/cover/index.html docs/examples/dashboard/index.html docs/examples/narrow-jumbotron/narrow-jumbotron.css docs/examples/navbar-fixed-top/index.html docs/examples/navbar-static-top/index.html docs/examples/non-responsive/index.html docs/examples/non-responsive/non-responsive.css docs/examples/theme/index.html grunt/configBridge.json js/affix.js js/carousel.js js/collapse.js js/dropdown.js js/modal.js js/popover.js js/scrollspy.js js/tab.js js/tests/unit/affix.js js/tests/unit/button.js js/tests/unit/carousel.js js/tests/unit/modal.js js/tests/unit/tooltip.js js/tooltip.js less/badges.less less/glyphicons.less less/type.less less/variables.less package.json scss/_dropdown.scss scss/_forms.scss test-infra/npm-shrinkwrap.json --- c16fee5efd5620197ab1213ca3699830d590ee39 diff --cc CONTRIBUTING.md index c654e33729,40ffec448c..95a003ecf4 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@@ -33,9 -33,10 +33,9 @@@ restrictions Our bug tracker utilizes several labels to help organize and identify issues. Here's what they represent and how we use them: - - `browser bug` - Issues that are reported to us, but actually are the result of a browser-specific bug. These are diagnosed with reduced test cases and result in a issue opened on that browser's own bug tracker. + - `browser bug` - Issues that are reported to us, but actually are the result of a browser-specific bug. These are diagnosed with reduced test cases and result in an issue opened on that browser's own bug tracker. - `confirmed` - Issues that have been confirmed with a reduced test case and identify a bug in Bootstrap. - `css` - Issues stemming from our compiled CSS or source Less files. -- `customizer` - Issues with our web-based Customizer. - `docs` - Issues for improving or updating our documentation. - `examples` - Issues involving the example templates included in our docs. - `feature` - Issues asking for a new feature to be added, or an existing one to be extended or modified. New features require a minor version bump (e.g., `v3.0.0` to `v3.1.0`). diff --cc Gruntfile.js index 37d0b708bb,c5f252684d..a934eec88c --- a/Gruntfile.js +++ b/Gruntfile.js @@@ -293,9 -279,18 +293,13 @@@ module.exports = function (grunt) }, copy: { - fonts: { - expand: true, - src: 'fonts/*', - dest: 'dist/' - }, docs: { - src: 'dist/*/*', - dest: 'docs/' + expand: true, + cwd: 'dist/', + src: [ + '**/*' + ], + dest: 'docs/dist/' } }, @@@ -368,10 -371,10 +372,10 @@@ all: { options: { build: process.env.TRAVIS_JOB_ID, - throttled: 10, + concurrency: 10, maxRetries: 3, maxPollRetries: 4, - urls: ['http://127.0.0.1:3000/js/tests/index.html'], + urls: ['http://127.0.0.1:3000/js/tests/index.html?hidepassed'], browsers: grunt.file.readYAML('grunt/sauce_browsers.yml') } } diff --cc docs/about/license.md index 4026241639,0000000000..24746dbca0 mode 100644,000000..100644 --- a/docs/about/license.md +++ b/docs/about/license.md @@@ -1,32 -1,0 +1,32 @@@ +--- +layout: page +title: License FAQs +--- + +Bootstrap is released under the MIT license and is copyright {{ site.time | date: "%Y" }} Twitter. Boiled down to smaller chunks, it can be described with the following conditions. + +#### It requires you to: + - * Include the license and copyright notice in your works ++* Keep the license and copyright notice included in Bootstrap's CSS and JavaScript files when you use them in your works + +#### It permits you to: + +- Freely download and use Bootstrap, in whole or in part, for personal, private, company internal, or commercial purposes +- Use Bootstrap in packages or distributions that you create +- Modify the source code +- Grant a sublicense to modify and distribute Bootstrap to third parties not included in the license + +#### It forbids you to: + +- Hold the authors and license owners liable for damages as Bootstrap is provided without warranty +- Hold the creators or copyright holders of Bootstrap liable +- Redistribute any piece of Bootstrap without proper attribution +- Use any marks owned by Twitter in any way that might state or imply that Twitter endorses your distribution +- Use any marks owned by Twitter in any way that might state or imply that you created the Twitter software in question + +#### It does not require you to: + +- Include the source of Bootstrap itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it +- Submit changes that you make to Bootstrap back to the Bootstrap project (though such feedback is encouraged) + +The full Bootstrap license is located [in the project repository]({{ site.repo }}/blob/master/LICENSE) for more information. diff --cc docs/assets/scss/docs.scss index 8d22110eb7,0000000000..f17b1ad22a mode 100644,000000..100644 --- a/docs/assets/scss/docs.scss +++ b/docs/assets/scss/docs.scss @@@ -1,1442 -1,0 +1,1443 @@@ +/*! + * Bootstrap Docs (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under the Creative Commons Attribution 3.0 Unported License. For + * details, see http://creativecommons.org/licenses/by/3.0/. + */ + +// Import Bootstrap variables and mixins +@import "../../../scss/variables"; +@import "../../../scss/mixins"; + +// Import the syntax highlighting +@import "syntax"; ++// @import "anchor"; // TODO: move anchor from src to scss directory + +// Local docs variables +$bs-purple: #563d7c; +$bs-purple-light: #cdbfe3; +$bs-yellow: #ffe484; +$bs-danger: #d9534f; +$bs-warning: #f0ad4e; +$bs-info: #5bc0de; + + +// Scaffolding +// +// Update the basics of our documents to prep for docs content. + +body { + position: relative; // For scrollspy? +} + + +// +// Buttons +// + +.btn-outline { + color: $bs-purple; + background-color: transparent; + border-color: $bs-purple; + + &:hover, + &:focus, + &:active { + color: #fff; + background-color:$bs-purple; + border-color: $bs-purple; + } +} + +.btn-outline-inverse { + color: #fff; + background-color: transparent; + border-color: $bs-purple-light; + + &:hover, + &:focus, + &:active { + color: $bs-purple; + text-shadow: none; + background-color: #fff; + border-color: #fff; + } +} + + +// +// Bootstrap "B" icon +// + +.bs-docs-booticon { + display: block; + width: 9rem; + height: 9rem; + font-size: 6.5rem; + font-weight: 500; + line-height: 8.8rem; + color: #fff; + text-align: center; + cursor: default; + background-color: $bs-purple; + border-radius: 15%; + + &.inverse { + color: $bs-purple; + background-color: #fff; + } + &.outline { + background-color: transparent; + border: 1px solid $bs-purple-light; + } +} + + +// +// Main navigation +// + +.bs-nav-home { + margin-bottom: 0; + background-color: #563d7c; + border-bottom: 0; + + .navbar-brand > a { + font-weight: 500; + color: #fff; + } + + .nav-link { + font-weight: 500; + color: #cdbfe3; + + &:hover, + &:focus { + color: #fff; + background-color: rgba(0,0,0,.5); + } + } +} + +// .bs-nav-home .navbar-toggle .icon-bar { +// background-color: #fff; +// } +// .bs-nav-home .navbar-header .navbar-toggle { +// border-color: #322f38; +// } +// .bs-nav-home .navbar-header .navbar-toggle:hover, +// .bs-nav-home .navbar-header .navbar-toggle:focus { +// background-color: #29262f; +// border-color: #29262f; +// } + + +// +// Footer +// + +.bs-docs-footer { + margin-top: 6rem; + font-size: 85%; + color: #777; + text-align: center; + border-top: 1px solid #e5e5e5; +} +.bs-docs-footer-links { + padding-left: 0; + margin-top: 20px; + color: #999; +} +.bs-docs-footer-links li { + display: inline; + padding: 0 2px; +} +.bs-docs-footer-links li:first-child { + padding-left: 0; +} + +@media (min-width: 768px) { + .bs-docs-footer p { + margin-bottom: 0; + } + .bs-docs .bs-docs-footer { + text-align: left; + } +} + + +// +// Social buttons +// + +.bs-docs-social { + margin-bottom: 1.5rem; + text-align: center; +} +.bs-docs-social-buttons { + display: inline-block; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.bs-docs-social-buttons li { + display: inline-block; + padding: .25rem .5rem; + line-height: 1; +} +.bs-docs-social-buttons .twitter-follow-button { + width: 225px !important; +} +.bs-docs-social-buttons .twitter-share-button { + width: 98px !important; +} + +// Style the GitHub buttons via CSS instead of inline attributes +.github-btn { + overflow: hidden; + border: 0; +} + +@media (min-width: 768px) { + .bs-docs .bs-docs-social { + margin-left: -.5rem; + text-align: left; + } +} + + +// +// Homepage +// + +// Masthead (headings and download button) +.bs-docs-masthead { + position: relative; + padding: 2rem 1rem; + color: #cdbfe3; + text-align: center; + text-shadow: 0 1px 0 rgba(0,0,0,.1); + background-color: #6f5499; + @include gradient-vertical($bs-purple, #6f5499); +} + +.bs-docs-masthead .bs-docs-booticon { + margin: 0 auto 2rem; +} +.bs-docs-masthead h1 { + font-weight: 300; + line-height: 1; + color: #fff; +} +.bs-docs-masthead .lead { + margin: 0 auto 2rem; + font-size: 1.25rem; + color: #fff; +} +.bs-docs-masthead .version { + margin-top: -1rem; + margin-bottom: 2rem; + color: #9783b9; +} +.bs-docs-masthead .btn { + width: 100%; + padding: 1rem 2rem; + font-size: 1.25rem; +} + +@media (min-width: 480px) { + .bs-docs-masthead .btn { + width: auto; + } +} + +@media (min-width: 768px) { + .bs-docs-masthead { + padding: 5rem 0; + } + .bs-docs-masthead h1 { + font-size: 4rem; + } + .bs-docs-masthead .lead { + font-size: 1.5rem; + } +} + +@media (min-width: 992px) { + .bs-docs-masthead .lead { + width: 80%; + font-size: 2rem; + } +} + + +// +// Page headers +// + +.bs-docs-header { + padding-top: 2rem; + padding-bottom: 2rem; + margin-bottom: 2rem; + text-align: center; + background-color: $bs-purple; + + .container { + position: relative; + } + + h1 { + margin-top: 0; + color: #fff; + } + + p { + margin-bottom: 0; + font-weight: 300; + color: rgba(255,255,255,.65); + } + + @media (min-width: 768px) { + text-align: left; + + h1 { + font-size: 4rem; + line-height: 1; + } + } + + @media (min-width: 992px) { + padding-top: 4rem; + padding-bottom: 4rem; + + h1, + p { + margin-right: 380px; + } + } +} + + +// +// Carbon ads +// + +.carbonad { + width: auto !important; + height: auto !important; + padding: 1.25rem !important; + margin: 0 -1rem 2rem !important; + overflow: hidden; /* clearfix */ + font-size: .8rem !important; + line-height: 1rem !important; + color: $gray !important; + text-align: left; + background: #f5f5f5 !important; + border: 0 !important; + // border: solid #e5e5e5 !important; + // border-width: 1px 0 !important; +} +.carbonad-img { + margin: 0 !important; +} +.carbonad-text, +.carbonad-tag { + display: block !important; + float: none !important; + width: auto !important; + height: auto !important; + margin-left: 145px !important; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important; +} +.carbonad-text { + padding-top: 0 !important; +} +.carbonad-tag { + color: inherit !important; + text-align: left !important; +} +.carbonad-text a, +.carbonad-tag a { + color: $gray !important; + + &:hover { + color: $brand-primary !important; + } +} +.carbonad #azcarbon > img { + display: none; // hide what I assume are tracking images +} + +// In the lighter page headers +// .bs-docs-header .carbonad { +// color: #777; +// background-color: #fff !important; +// border-color: #eee !important; +// } +// .bs-docs-header .carbonad-text a, +// .bs-docs-header .carbonad-tag a { +// color: $bs-purple !important; +// } + +@include media-breakpoint-up(sm) { + .carbonad { + width: 330px !important; + margin: 1.5rem auto !important; + border-width: 1px !important; + border-radius: .25rem; + } + .bs-docs-masthead .carbonad { + margin: 3rem auto 0 !important; + } +} + +@include media-breakpoint-up(md) { + .carbonad { + margin-right: 0 !important; + margin-left: 0 !important; + } +} + +@include media-breakpoint-up(lg) { + .carbonad { + float: right; + width: 330px !important; + padding: 1rem !important; + margin: .5rem 0 1rem 2rem !important; + } + .bs-docs-masthead { + .carbonad { + float: none; + margin: 0 auto !important; + color: $bs-purple-light !important; + background: transparent !important; + border: 1px solid #866ab3 !important; + } + .carbonad-text a, + .carbonad-tag a { + color: #fff !important; + } + } +} + + +// +// Homepage featurettes +// + +.bs-docs-featurette { + padding-top: 3rem; + padding-bottom: 3rem; + font-size: 1rem; + line-height: 1.5; + color: #555; + text-align: center; + background-color: #fff; + border-bottom: 1px solid #e5e5e5; +} +.bs-docs-featurette + .bs-docs-footer { + margin-top: 0; + border-top: 0; +} + +.bs-docs-featurette-title { + margin-bottom: .5rem; + font-size: 2rem; + font-weight: normal; + color: #333; +} +.half-rule { + width: 6rem; + margin: 2.5rem auto; +} +.bs-docs-featurette h3 { + margin-bottom: .5rem; + font-weight: normal; + color: #333; +} +.bs-docs-featurette-img { + display: block; + margin-bottom: 1.25rem; + color: #333; +} +.bs-docs-featurette-img:hover { + color: $brand-primary; + text-decoration: none; +} +.bs-docs-featurette-img img { + display: block; + margin-bottom: 1rem; +} + +@media (min-width: 480px) { + .bs-docs-featurette .img-responsive { + margin-top: 2rem; + } +} +@media (min-width: 768px) { + .bs-docs-featurette { + padding-top: 6rem; + padding-bottom: 6rem; + } + .bs-docs-featurette-title { + font-size: 2.5rem; + } + .bs-docs-featurette .lead { + max-width: 80%; + margin-right: auto; + margin-left: auto; + } + .bs-docs-featurette .img-responsive { + margin-top: 0; + } +} + + +// +// Featured Expo sites +// + +.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: .25rem; + border-bottom-left-radius: .25rem; + } + .bs-docs-featured-sites .col-sm-3:last-child img { + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; + } +} + + +// +// Examples +// + +.bs-examples .img-thumbnail { + margin-bottom: .75rem; +} +.bs-examples h4 { + margin-bottom: .25rem; +} +.bs-examples p { + margin-bottom: 1.25rem; +} + +@media (max-width: 480px) { + .bs-examples { + margin-right: -.75rem; + margin-left: -.75rem; + } + .bs-examples > [class^="col-"] { + padding-right: .75rem; + padding-left: .75rem; + } +} + + +// +// Custom container +// + +.bs-docs-container { + position: relative; + max-width: 62rem; + padding: 0 1rem 1rem; + margin-right: auto; + margin-left: auto; + + @media (min-width: 768px) { + padding: 2rem; + } + + @media (min-width: 992px) { + padding: 4rem; + } + + > table { + display: block; + width: 100%; + max-width: 100%; + overflow-y: auto; + margin-bottom: $spacer; + // border: 1px solid $table-border-color; + + // Cells + > thead, + > tbody, + > tfoot { + > tr { + > th, + > td { + padding: $table-cell-padding; + line-height: $line-height-base; + vertical-align: top; + // border-top: 1px solid $table-border-color; + border: 1px solid $table-border-color; + } + } + } + } +} + + +// +// Side navigation +// + +.bs-docs-sidebar { + padding: 0; + margin-bottom: 0; + background-color: #322f38; +} + +.bs-docs-sidebar .navbar-toggle { + position: absolute; + top: 5px; + right: 0; + z-index: 5; +} +.bs-docs-sidebar .navbar-toggle .icon-bar { + background-color: #fff; +} + +.bs-docs-sidebar .navbar-header { + float: none; + margin-right: -15px; +} + +.bs-docs-sidebar .navbar-collapse { + padding: 0; + border: 0; +} + +@media (min-width: 992px) { + .bs-docs { + padding-left: 240px; + } + .bs-docs-sidebar { + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 100; // Ensure scrolling always works in Safari + width: 240px; + overflow-x: hidden; + overflow-y: auto; + @include gradient-vertical(#29262f, #322f38); + } +} + +.bs-docs-sidebar .navbar-brand { + display: block; + float: none; + height: auto; + padding: 1.75rem 1.25rem; + font-size: 20px; + font-weight: 500; + line-height: 1; + color: #fff; +} +.bs-docs-sidebar-brand:hover, +.bs-docs-sidebar-brand:focus { + color: #fff; + text-decoration: none; +} + +.bs-docs-search { + position: relative; + margin-right: 1.25rem; + margin-bottom: 1.5rem; + margin-left: 1.25rem; + + .form-control { + height: 2.45rem; + padding-top: .4rem; + padding-bottom: .4rem; + color: rgba(255,255,255,.5); + background-color: lighten(#29262f, 10%); + border-color: lighten(#29262f, 15%); + + &:focus { + border-color: rgba(255,255,255,.25); + box-shadow: 0 0 .5rem rgba(255,255,255,.25); + } + } +} + +.bs-docs-search-results { + top: 108%; + right: 0; + display: block; + padding: 0; + overflow: hidden; + font-size: .9rem; + border: 0; + + > li > a { + padding-left: .75rem; + padding-right: .75rem; + } + + > li:first-child { margin-top: .25rem; } + > li:last-child { margin-bottom: .25rem; } + + > .no-results { + padding: .75rem 1rem; + color: #7a7a7a; + text-align: center; + } +} + + +.bs-docs-toc-link { + display: block; + padding: 4px 20px; + font-size: 16px; + color: #fff; +} +.bs-docs-toc-link:hover, +.bs-docs-toc-link:focus { + color: $bs-yellow; + text-decoration: none; +} +.active > .bs-docs-toc-link { + font-weight: 500; + color: $bs-yellow; +} +.active > .bs-docs-sidenav { + display: block; +} + +.bs-docs-toc-item.active { + margin-top: 15px; + margin-bottom: 15px; +} +.bs-docs-toc-item:first-child { + margin-top: 0; +} +.bs-docs-toc-item:last-child { + margin-bottom: 30px; +} + +// All levels of nav +.bs-docs-sidebar .nav > li > a { + display: block; + padding: 4px 20px; + font-size: 14px; + color: #99979c; +} +.bs-docs-sidebar .nav > li > a:hover, +.bs-docs-sidebar .nav > li > a:focus { + color: $bs-yellow; + text-decoration: none; + background-color: transparent; +} +.bs-docs-sidebar .nav > .active > a, +.bs-docs-sidebar .nav > .active:hover > a, +.bs-docs-sidebar .nav > .active:focus > a { + font-weight: 500; + color: $bs-yellow; + background-color: transparent; +} + +// Nav: second level (shown on .active) +.bs-docs-sidebar .nav .nav { + display: none; // Hide by default, but at >768px, show it + padding-bottom: 10px; +} +.bs-docs-sidebar .nav .nav > li > a { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 30px; + font-size: 12px; + font-weight: normal; +} +.bs-docs-sidebar .nav .nav > .active > a, +.bs-docs-sidebar .nav .nav > .active:hover > a, +.bs-docs-sidebar .nav .nav > .active:focus > a { + font-weight: 500; +} + +.bs-docs-sidebar .nav > .active > .nav { + display: block; +} +.bs-docs-sidebar .nav .nav > li > a { + padding-top: 2px; + padding-bottom: 2px; + padding-left: 30px; + font-size: 13px; +} + + +// +// Docs sections +// + +.bs-docs-content { + > h2 { + margin-top: 3rem; + font-weight: normal; + } + + > h3 { + margin-top: 1.5rem; + } +} + +.bs-docs-title { + + p { + font-size: 1.25rem; + font-weight: 300; + } + + @include media-breakpoint-up(sm) { + margin-right: 23rem; + font-size: 4rem; + + + p { + margin-right: 23rem; + } + } +} + + +// +// Callouts +// + +.bs-callout { + padding: 1.25rem; + margin-top: 1.25rem; + margin-bottom: 1.25rem; + border: 1px solid #eee; + border-left-width: .25rem; + border-radius: .25rem; +} +.bs-callout h4 { + margin-top: 0; + margin-bottom: .25rem; +} +.bs-callout p:last-child { + margin-bottom: 0; +} +.bs-callout code { + border-radius: .25rem; +} + +.bs-callout + .bs-callout { + margin-top: -.25rem; +} + +// Variations +@mixin bs-callout-variant($color) { + border-left-color: $color; + + h4 { color: $color; } +} +.bs-callout-danger { @include bs-callout-variant($bs-danger); } +.bs-callout-warning { @include bs-callout-variant($bs-warning); } +.bs-callout-info { @include bs-callout-variant($bs-info); } + + +// +// Color swatches +// + +.color-swatches { + margin: 0 -5px; + overflow: hidden; // clearfix +} + +.color-swatch { + float: left; + width: 4rem; + height: 4rem; + margin-right: .25rem; + margin-left: .25rem; + border-radius: .25rem; + + @media (min-width: 768px) { + width: 6rem; + height: 6rem; + } +} + +// Docs colors +.color-swatches { + .bs-purple { + background-color: $bs-purple; + } + .bs-purple-light { + background-color: $bs-purple-light; + } + .bs-purple-lighter { + background-color: #e5e1ea; + } + .bs-gray { + background-color: #f9f9f9; + } +} + + +// +// Team members +// + +.bs-team { + .team-member { + line-height: 2rem; + color: #555; + } + .team-member:hover { + color: #333; + text-decoration: none; + } + .github-btn { + float: right; + width: 180px; + height: 1.25rem; + margin-top: .25rem; + } + img { + float: left; + width: 2rem; + margin-right: .5rem; + border-radius: .25rem; + } +} + + +// Wall of Browser Bugs +// +// Better display for the responsive table on the Wall of Browser Bugs. + +.bs-docs-browser-bugs { + td p { + margin-bottom: 0; + } + th:first-child { + width: 18%; + } +} + +// +// Grid examples +// + +.bs-example > .row { + margin-bottom: 1rem; +} +.bs-example > .row > [class^="col-"] { + padding-top: .75rem; + padding-bottom: .75rem; + background-color: rgba(86,61,124,.15); + border: 1px solid rgba(86,61,124,.2); +} + + +// +// Docs examples +// + +.bs-example { + position: relative; + padding: 1rem; + margin: 1rem -1rem; + border: solid #f7f7f9; + border-width: .2rem 0 0; + @include clearfix(); + + @include media-breakpoint-up(sm) { + margin-bottom: -1rem; + padding: 1.5rem; + border-width: .2rem; + } + + + p { + margin-top: 2rem; + } + + // Undo width of container + .container { + width: auto; + } + + // Card examples should be horizontal + > .card { + float: left; + max-width: 15rem; + margin: .25rem; + } + + > .nav + .nav { + margin-top: 1rem; + } +} + + +// Tweak content of examples for optimum awesome +.bs-example > *:last-child, +.bs-example > .table-responsive:last-child > .table { + margin-bottom: 0 !important; +} +.bs-example > .close { + float: none; +} + +// Typography +.bs-example-type .table .type-info { + color: #999; + vertical-align: middle; +} +.bs-example-type .table td { + padding: 1rem 0; + border-color: #eee; +} +.bs-example-type .table tr:first-child td { + border-top: 0; +} +.bs-example-type h1, +.bs-example-type h2, +.bs-example-type h3, +.bs-example-type h4, +.bs-example-type h5, +.bs-example-type h6 { + margin: 0; +} + +// Contextual background colors +.bs-example-bg-classes p { + padding: 1rem; +} + +// Images +.bs-example > .img-circle, +.bs-example > .img-rounded, +.bs-example > .img-thumbnail { + margin: .25rem; +} + +// Tables +// .bs-example > .table-responsive > .table { +// background-color: #fff; +// } + +// Buttons +.bs-example > .btn-group { + margin-top: .25rem; + margin-bottom: .25rem; +} +.bs-example > .btn-toolbar + .btn-toolbar { + margin-top: .5rem; +} + +// Forms +.bs-example-control-sizing select, +.bs-example-control-sizing input[type="text"] + input[type="text"] { + margin-top: .5rem; +} +.bs-example-form .input-group { + margin-bottom: .5rem; +} +.bs-example > textarea.form-control { + resize: vertical; +} + +// List groups +.bs-example > .list-group { + max-width: 400px; +} + +// Navbars +.bs-example .navbar:last-child { + margin-bottom: 0; +} +.bs-navbar-top-example, +.bs-navbar-bottom-example { + z-index: 1; + padding: 0; + overflow: hidden; // cut the drop shadows off +} +.bs-navbar-top-example .navbar-header, +.bs-navbar-bottom-example .navbar-header { + margin-left: 0; +} +.bs-navbar-top-example .navbar-fixed-top, +.bs-navbar-bottom-example .navbar-fixed-bottom { + position: relative; + margin-right: 0; + margin-left: 0; +} +.bs-navbar-top-example { + padding-bottom: 45px; +} +.bs-navbar-top-example .navbar-fixed-top { + top: -1px; +} +.bs-navbar-bottom-example { + padding-top: 45px; +} +.bs-navbar-bottom-example .navbar-fixed-bottom { + bottom: -1px; +} +.bs-navbar-bottom-example .navbar { + margin-bottom: 0; +} +@media (min-width: 768px) { + .bs-navbar-top-example .navbar-fixed-top, + .bs-navbar-bottom-example .navbar-fixed-bottom { + position: absolute; + } +} + +// Pagination +.bs-example .pagination { + margin-top: .5rem; + margin-bottom: .5rem; +} + +// Pager +.bs-example > .pager { + margin-top: 0; +} + +// Example modals +.bs-example-modal { + background-color: #f5f5f5; +} +.bs-example-modal .modal { + position: relative; + top: auto; + right: auto; + bottom: auto; + left: auto; + z-index: 1; + display: block; +} +.bs-example-modal .modal-dialog { + left: auto; + margin-right: auto; + margin-left: auto; +} + +// Example dropdowns +.bs-example > .dropdown > .dropdown-toggle { + float: left; +} +.bs-example > .dropdown > .dropdown-menu { + position: static; + display: block; + margin-bottom: .25rem; + clear: left; +} + +// Example tabbable tabs +.bs-example-tabs .nav-tabs { + margin-bottom: 1rem; +} + +// Tooltips +.bs-example-tooltips { + text-align: center; +} +.bs-example-tooltips > .btn { + margin-top: .25rem; + margin-bottom: .25rem; +} + +// Popovers +.bs-example-popover { + padding-bottom: 1.5rem; + background-color: #f9f9f9; +} +.bs-example-popover .popover { + position: relative; + display: block; + float: left; + width: 260px; + margin: 1.25rem; +} + +// Tooltips +.bs-example-tooltip .tooltip { + position: relative; + display: inline-block; + margin: 10px 20px; + opacity: 1; +} + +// Scrollspy demo on fixed height div +.scrollspy-example { + position: relative; + height: 200px; + margin-top: .5rem; + overflow: auto; +} + +// Helpers +.bs-example > { + .center-block { + max-width: 200px; + padding: .5rem; + background-color: #eee; + } + + .bg-primary, + .bg-success, + .bg-info, + .bg-warning, + .bg-danger { + padding: .5rem; + margin-top: .5rem; + margin-bottom: .5rem; + } +} + + +// +// Code snippets +// + +.highlight { + padding: 1rem; + margin: -1rem -1rem 1rem; + background-color: #f7f7f9; + + @include media-breakpoint-up(sm) { + padding: 1.5rem; + margin: 1rem 0; + } +} +.highlight pre { + padding: 0; + margin-top: 0; + margin-bottom: 0; + background-color: transparent; + border: 0; +} +.highlight pre code { + font-size: inherit; + color: $gray-dark; // Effectively the base text color +} + + +// +// Responsive tests +// + +// Responsive (scrollable) doc tables +.table-responsive .highlight pre { + white-space: normal; +} + +// Utility classes table +.bs-table th small, +.responsive-utilities th small { + display: block; + font-weight: normal; + color: #999; +} +.responsive-utilities tbody th { + font-weight: normal; +} +.responsive-utilities td { + text-align: center; +} +.responsive-utilities td.is-visible { + color: #468847; + background-color: #dff0d8 !important; +} +.responsive-utilities td.is-hidden { + color: #ccc; + background-color: #f9f9f9 !important; +} + +// Responsive tests +.responsive-utilities-test { + margin-top: .25rem; +} +.responsive-utilities-test .col-xs-6 { + margin-bottom: .5rem; +} +.responsive-utilities-test span { + display: block; + padding: 1rem .5rem; + font-size: 1rem; + font-weight: bold; + line-height: 1.1; + text-align: center; + border-radius: .25rem; +} +.visible-on, +.hidden-on { + .col-xs-6 { + > .not-visible { + color: #999; + border: 1px solid #ddd; + } + } +} +.visible-on, +.hidden-on { + .col-xs-6 { + .visible { + color: #468847; + background-color: #dff0d8; + border: 1px solid #d6e9c6; + } + } +} + +@include media-breakpoint-only(xs) { + .hidden-xs-only { + display: none !important; + } +} +@include media-breakpoint-only(sm) { + .hidden-sm-only { + display: none !important; + } +} +@include media-breakpoint-only(md) { + .hidden-md-only { + display: none !important; + } +} +@include media-breakpoint-only(lg) { + .hidden-lg-only { + display: none !important; + } +} +@include media-breakpoint-only(xl) { + .hidden-xl-only { + display: none !important; + } +} + +// +// Brand guidelines +// + +// Logo series wrapper +.bs-brand-logos { + display: table; + width: 100%; + margin-bottom: 1rem; + overflow: hidden; + color: #563d7c; + background-color: #f9f9f9; + border-radius: .25rem; +} + +// Individual items +.bs-brand-item { + padding: 4rem 0; + text-align: center; +} +.bs-brand-item + .bs-brand-item { + border-top: 1px solid #fff; +} +.bs-brand-logos .inverse { + color: #fff; + background-color: #563d7c; +} + +// Heading content within +.bs-brand-item h1, +.bs-brand-item h3 { + margin-top: 0; + margin-bottom: 0; +} +.bs-brand-item .bs-docs-booticon { + margin-right: auto; + margin-left: auto; +} + +// Make the icons stand out on what is/isn't okay +// .bs-brand-item .glyphicon { +// width: 30px; +// height: 30px; +// margin: 10px auto -10px; +// line-height: 30px; +// color: #fff; +// border-radius: 50%; +// } +// .bs-brand-item .glyphicon-ok { +// background-color: #5cb85c; +// } +// .bs-brand-item .glyphicon-remove { +// background-color: #d9534f; +// } + +@media (min-width: 768px) { + .bs-brand-item { + display: table-cell; + width: 1%; + } + .bs-brand-item + .bs-brand-item { + border-top: 0; + border-left: 1px solid #fff; + } + .bs-brand-item h1 { + font-size: 4rem; + } +} + + +// +// ZeroClipboard styles +// + +.zero-clipboard { + position: relative; + display: none; + float: right; +} +.btn-clipboard { + position: absolute; + top: 0; + right: 0; + z-index: 10; + display: block; + padding: .25rem .5rem; + font-size: 75%; + color: #818a91; + cursor: pointer; + background-color: #eceeef; + border-radius: 0 .2rem 0 .2rem; +} +.btn-clipboard-hover { + color: #fff; + background-color: #027de7; +} + +@media (min-width: 768px) { + .zero-clipboard { + display: block; + } +} + + +// +// Miscellaneous +// + +// Pseudo :focus state for showing how it looks in the docs +#focusedInput { + border-color: $input-border-focus; + outline: 0; + outline: thin dotted \9; // IE9 + box-shadow: 0 0 .5rem $input-box-shadow-focus; +} diff --cc docs/components/helpers.md index 6e5bac3185,0000000000..844db2d9f7 mode 100644,000000..100644 --- a/docs/components/helpers.md +++ b/docs/components/helpers.md @@@ -1,194 -1,0 +1,194 @@@ +--- +layout: page +title: Helper classes +--- + +### Contextual colors + +Convey meaning through color with a handful of emphasis utility classes. These may also be applied to links and will darken on hover just like our default link styles. + +{% example html %} +

Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.

+

Nullam id dolor id nibh ultricies vehicula ut id elit.

+

Duis mollis, est non commodo luctus, nisi erat porttitor ligula.

+

Maecenas sed diam eget risus varius blandit sit amet non magna.

+

Etiam porta sem malesuada magna mollis euismod.

+

Donec ullamcorper nulla non metus auctor fringilla.

+{% endexample %} + +
+

Dealing with specificity

+

Sometimes emphasis classes cannot be applied due to the specificity of another selector. In most cases, a sufficient workaround is to wrap your text in a <span> with the class.

+
+
+

Conveying meaning to assistive technologies

+

Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (the contextual colors are only used to reinforce meaning that is already present in the text/markup), or is included through alternative means, such as additional text hidden with the .sr-only class.

+
+ +### Contextual backgrounds + +Similar to the contextual text color classes, easily set the background of an element to any contextual class. Anchor components will darken on hover, just like the text classes. + +{% example html %} +
Nullam id dolor id nibh ultricies vehicula ut id elit.
+
Duis mollis, est non commodo luctus, nisi erat porttitor ligula.
+
Maecenas sed diam eget risus varius blandit sit amet non magna.
+
Etiam porta sem malesuada magna mollis euismod.
+
Donec ullamcorper nulla non metus auctor fringilla.
+{% endexample %} + +
+

Dealing with specificity

+

Sometimes contextual background classes cannot be applied due to the specificity of another selector. In some cases, a sufficient workaround is to wrap your element's content in a <div> with the class.

+
+ +
+

Conveying meaning to assistive technologies

+

As with contextual colors, ensure that any meaning conveyed through color is also conveyed in a format that is not purely presentational.

+
+ +### Close icon + +Use a generic close icon for dismissing content like modals and alerts. **Be sure to include screen reader text when you can** as we've done with `.sr-only`. + +{% example html %} + +{% endexample %} + +### Quick floats + +Float an element to the left or right with a class. `!important` is included to avoid specificity issues. Classes can also be used as mixins. + +{% example html %} +
Float left
+
Float right
+{% endexample %} + +{% highlight scss %} +// Classes +.pull-left { + float: left !important; +} +.pull-right { + float: right !important; +} + +// Usage as mixins +.element { + @include pull-left; +} +.another-element { + @include pull-right; +} +{% endhighlight %} + +### Center content blocks + +Set an element to `display: block;` and center via `margin`. Available as a mixin and class. + +{% example html %} +
Centered block
+{% endexample %} + +{% highlight scss %} - // Classes ++// Class +.center-block { + display: block; + margin-left: auto; + margin-right: auto; +} + - // Usage as mixins ++// Usage as a mixin +.element { + @include center-block; +} +{% endhighlight %} + +Easily clear `float`s by adding `.clearfix` **to the parent element**. Utilizes [the micro clearfix](http://nicolasgallagher.com/micro-clearfix-hack/) as popularized by Nicolas Gallagher. Can also be used as a mixin. + +{% highlight html %} +
...
+{% endhighlight %} + +{% highlight scss %} +// Mixin itself +.clearfix() { + &:before, + &:after { + content: " "; + display: table; + } + &:after { + clear: both; + } +} + - // Usage as a Mixin ++// Usage as a mixin +.element { + @include clearfix; +} +{% endhighlight %} + +### Hidden content + +Hide any HTML element with the `[hidden]` attribute. Previously, v3.x included a `.hidden` class that forced toggled content. However, we removed it due to conflicts with jQuery's `hide()` function. It's taken from [PureCSS](http://purecss.io). + +Furthermore, `.invisible` can be used to toggle the visibility of an element, meaning its `display` is not modified and the element can still affect the flow of the document. + +{% highlight html %} + +{% endhighlight %} + +### Invisible content + +The `.invisible` class can be used to toggle only the visibility of an element, meaning its `display` is not modified and the element can still affect the flow of the document. + +{% highlight html %} + +{% endhighlight %} + +{% highlight scss %} - // Classes ++// Class +.invisible { + visibility: hidden; +} + - // Usage as mixin ++// Usage as a mixin +.element { + .invisible(); +} +{% endhighlight %} + +### Screen readers and keyboard navigation + +Hide an element to all devices **except screen readers** with `.sr-only`. Combine `.sr-only` with `.sr-only-focusable` to show the element again when it's focused (e.g. by a keyboard-only user). Necessary for following [accessibility best practices](../getting-started/#accessibility). Can also be used as mixins. + +{% highlight html %} +Skip to main content +{% endhighlight %} + +{% highlight scss %} - // Usage as a Mixin ++// Usage as a mixin +.skip-navigation { + @include sr-only; + @include sr-only-focusable; +} +{% endhighlight %} + +### Image replacement + +Utilize the `.text-hide` class or mixin to help replace an element's text content with a background image. + +{% highlight html %} +

Custom heading

+{% endhighlight %} + +{% highlight scss %} - // Usage as a Mixin ++// Usage as a mixin +.heading { + @include text-hide; +} +{% endhighlight %} diff --cc docs/content/forms.md index f1068a01bb,0000000000..ac056a8b91 mode 100644,000000..100644 --- a/docs/content/forms.md +++ b/docs/content/forms.md @@@ -1,581 -1,0 +1,587 @@@ +--- +layout: page +title: Forms +--- + +Bootstrap normalizes common HTML5 form elements and adds a number of layout options for building forms of all sizes. + +## Example form + +Individual form controls automatically receive some global styling. All textual ``, ` +{% endexample %} + +### Checkboxes and radios + +Checkboxes are for selecting one or several options in a list, while radios are for selecting one option from many. + +A checkbox or radio with the `disabled` attribute will be styled appropriately. To have the `