Changeset - ecd9ba4a37ca
[Not reviewed]
! ! !
Joar Wandborg - 10 years ago 2013-10-23 14:17:17
joar@wandborg.se
Initial templating
34 files changed:
Changeset was too big and was cut off... Show full diff anyway
0 comments (0 inline, 0 general)
bootstrap-3.0.0/.editorconfig
Show inline comments
 
new file 100644
 
# editorconfig.org
 

	
 
root = true
 

	
 
[*]
 
indent_style = space
 
indent_size = 2
 
end_of_line = lf
 
charset = utf-8
 
trim_trailing_whitespace = true
 
insert_final_newline = true
bootstrap-3.0.0/.gitignore
Show inline comments
 
new file 100644
 
# Ignore compiled docs
 
_gh_pages
 
_site
 

	
 
# Numerous always-ignore extensions
 
*.diff
 
*.err
 
*.orig
 
*.log
 
*.rej
 
*.swo
 
*.swp
 
*.zip
 
*.vi
 
*~
 
*.sass-cache
 
*.ruby-version
 

	
 
# OS or Editor folders
 
.DS_Store
 
._*
 
Thumbs.db
 
.cache
 
.project
 
.settings
 
.tmproj
 
*.esproj
 
nbproject
 
*.sublime-project
 
*.sublime-workspace
 

	
 
# Komodo
 
*.komodoproject
 
.komodotools
 

	
 
# grunt-html-validation
 
validation-staus.json
 

	
 
# Folders to ignore
 
.hg
 
.svn
 
.CVS
 
.idea
 
node_modules
bootstrap-3.0.0/.travis.yml
Show inline comments
 
new file 100644
 
language: node_js
 
node_js:
 
  - 0.8
 
before_script:
 
  - gem install jekyll
 
  - npm install -g grunt-cli
 
env:
 
  global:
 
  - secure: Besg41eyU+2mfxrywQ4ydOShMdc34ImaO0S0ENP+aCOBuyNBIgP59wy5tBMmyai2/8eInYeVps4Td96mWInMMxzTe3Bar7eTLG5tWVKRSr/wc4NBPZ/ppoPAmCEsz9Y+VptRH9/FO8n7hsL9EFZ+xBKbG+C0SccGoyBDpA5j7/w=
 
  - secure: Ptiv7phCImFP3ALIz+sMQzrZg8k7C1gLZbFBhWxjnQr3g06wIfX3Ls5y9OHvxid+lOZZjISui3wzBVgpVHqwHUYf96+r0mo6/mJ+F4ffUmShZANVaIMD/JRTnXhUQJbvntGLvxn1EYWPdNM+2IHJrMipnjHxU9tkgAnlel4Zdew=
 
  - TWBS_HAVE_OWN_BROWSERSTACK_KEY: ""
bootstrap-3.0.0/CNAME
Show inline comments
 
new file 100644
 
getbootstrap.com
bootstrap-3.0.0/CONTRIBUTING.md
Show inline comments
 
new file 100644
 
# Contributing to Bootstrap
 

	
 
Looking to contribute something to Bootstrap? **Here's how you can help.**
 

	
 

	
 

	
 
## Reporting issues
 

	
 
We only accept issues that are bug reports or feature requests. Bugs must be isolated and reproducible problems that we can fix within the Bootstrap core. Please read the following guidelines before opening any issue.
 

	
 
1. **Search for existing issues.** We get a lot of duplicate issues, and you'd help us out a lot by first checking if someone else has reported the same issue. Moreover, the issue may have already been resolved with a fix available.
 
2. **Create an isolated and reproducible test case.** Be sure the problem exists in Bootstrap's code with a [reduced test case](http://css-tricks.com/reduced-test-cases/) that should be included in each bug report.
 
3. **Include a live example.** Make use of jsFiddle or jsBin to share your isolated test cases.
 
4. **Share as much information as possible.** Include operating system and version, browser and version, version of Bootstrap, customized or vanilla build, etc. where appropriate. Also include steps to reproduce the bug.
 

	
 

	
 

	
 
## Key branches
 

	
 
- `master` is the latest, deployed version.
 
- `gh-pages` is the hosted docs (not to be used for pull requests).
 
- `*-wip` is the official work in progress branch for the next release.
 

	
 

	
 

	
 
## Pull requests
 

	
 
- Try to submit pull requests against the latest `*-wip` branch for easier merging
 
- CSS changes must be done in .less files first, never just the compiled files
 
- If modifying the .less files, always recompile and commit the compiled files bootstrap.css and bootstrap.min.css
 
- Try not to pollute your pull request with unintended changes--keep them simple and small
 
- Try to share which browsers your code has been tested in before submitting a pull request
 

	
 

	
 

	
 
## Coding standards
 

	
 
### HTML
 

	
 
- Two spaces for indentation, never tabs
 
- Double quotes only, never single quotes
 
- Always use proper indentation
 
- Use tags and elements appropriate for an HTML5 doctype (e.g., self-closing tags)
 

	
 
### CSS
 

	
 
- Adhere to the [Recess 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
 
- 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).
 

	
 
### JS
 

	
 
- No semicolons
 
- Comma first
 
- 2 spaces (no tabs)
 
- strict mode
 
- "Attractive"
 

	
 

	
 

	
 
## License
 

	
 
By contributing your code, you agree to license your contribution under the terms of the APLv2: https://github.com/twbs/bootstrap/blob/master/LICENSE
bootstrap-3.0.0/Gruntfile.js
Show inline comments
 
new file 100644
 
/* jshint node: true */
 

	
 
module.exports = function(grunt) {
 
  "use strict";
 

	
 
  // Project configuration.
 
  grunt.initConfig({
 

	
 
    // Metadata.
 
    pkg: grunt.file.readJSON('package.json'),
 
    banner: '/**\n' +
 
              '* <%= pkg.name %>.js v<%= pkg.version %> by @fat and @mdo\n' +
 
              '* Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
 
              '* <%= _.pluck(pkg.licenses, "url").join(", ") %>\n' +
 
              '*/\n',
 
    jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n',
 

	
 
    // Task configuration.
 
    clean: {
 
      dist: ['dist']
 
    },
 

	
 
    jshint: {
 
      options: {
 
        jshintrc: 'js/.jshintrc'
 
      },
 
      gruntfile: {
 
        src: 'Gruntfile.js'
 
      },
 
      src: {
 
        src: ['js/*.js']
 
      },
 
      test: {
 
        src: ['js/tests/unit/*.js']
 
      }
 
    },
 

	
 
    concat: {
 
      options: {
 
        banner: '<%= banner %><%= jqueryCheck %>',
 
        stripBanners: false
 
      },
 
      bootstrap: {
 
        src: [
 
          'js/transition.js',
 
          'js/alert.js',
 
          'js/button.js',
 
          'js/carousel.js',
 
          'js/collapse.js',
 
          'js/dropdown.js',
 
          'js/modal.js',
 
          'js/tooltip.js',
 
          'js/popover.js',
 
          'js/scrollspy.js',
 
          'js/tab.js',
 
          'js/affix.js'
 
        ],
 
        dest: 'dist/js/<%= pkg.name %>.js'
 
      }
 
    },
 

	
 
    uglify: {
 
      options: {
 
        banner: '<%= banner %>'
 
      },
 
      bootstrap: {
 
        src: ['<%= concat.bootstrap.dest %>'],
 
        dest: 'dist/js/<%= pkg.name %>.min.js'
 
      }
 
    },
 

	
 
    recess: {
 
      options: {
 
        compile: true
 
      },
 
      bootstrap: {
 
        src: ['less/bootstrap.less'],
 
        dest: 'dist/css/<%= pkg.name %>.css'
 
      },
 
      min: {
 
        options: {
 
          compress: true
 
        },
 
        src: ['less/bootstrap.less'],
 
        dest: 'dist/css/<%= pkg.name %>.min.css'
 
      },
 
      theme: {
 
        src: ['less/theme.less'],
 
        dest: 'dist/css/<%= pkg.name %>-theme.css'
 
      },
 
      theme_min: {
 
        options: {
 
          compress: true
 
        },
 
        src: ['less/theme.less'],
 
        dest: 'dist/css/<%= pkg.name %>-theme.min.css'
 
      }
 
    },
 

	
 
    copy: {
 
      fonts: {
 
        expand: true,
 
        src: ["fonts/*"],
 
        dest: 'dist/'
 
      }
 
    },
 

	
 
    qunit: {
 
      options: {
 
        inject: 'js/tests/unit/phantom.js'
 
      },
 
      files: ['js/tests/*.html']
 
    },
 

	
 
    connect: {
 
      server: {
 
        options: {
 
          port: 3000,
 
          base: '.'
 
        }
 
      }
 
    },
 

	
 
    jekyll: {
 
      docs: {}
 
    },
 

	
 
    validation: {
 
      options: {
 
        reset: true
 
      },
 
      files: {
 
        src: ["_gh_pages/**/*.html"]
 
      }
 
    },
 

	
 
    watch: {
 
      src: {
 
        files: '<%= jshint.src.src %>',
 
        tasks: ['jshint:src', 'qunit']
 
      },
 
      test: {
 
        files: '<%= jshint.test.src %>',
 
        tasks: ['jshint:test', 'qunit']
 
      },
 
      recess: {
 
        files: 'less/*.less',
 
        tasks: ['recess']
 
      }
 
    }
 
  });
 

	
 

	
 
  // These plugins provide necessary tasks.
 
  grunt.loadNpmTasks('grunt-contrib-clean');
 
  grunt.loadNpmTasks('grunt-contrib-concat');
 
  grunt.loadNpmTasks('grunt-contrib-connect');
 
  grunt.loadNpmTasks('grunt-contrib-copy');
 
  grunt.loadNpmTasks('grunt-contrib-jshint');
 
  grunt.loadNpmTasks('grunt-contrib-qunit');
 
  grunt.loadNpmTasks('grunt-contrib-uglify');
 
  grunt.loadNpmTasks('grunt-contrib-watch');
 
  grunt.loadNpmTasks('grunt-html-validation');
 
  grunt.loadNpmTasks('grunt-jekyll');
 
  grunt.loadNpmTasks('grunt-recess');
 
  grunt.loadNpmTasks('browserstack-runner');
 

	
 
  // Docs HTML validation task
 
  grunt.registerTask('validate-html', ['jekyll', 'validation']);
 

	
 
  // Test task.
 
  var testSubtasks = ['dist-css', 'jshint', 'qunit', 'validate-html'];
 
  // Only run BrowserStack tests under Travis
 
  if (process.env.TRAVIS) {
 
    // Only run BrowserStack tests if this is a mainline commit in twbs/bootstrap, or you have your own BrowserStack key
 
    if ((process.env.TRAVIS_REPO_SLUG === 'twbs/bootstrap' && process.env.TRAVIS_PULL_REQUEST === 'false') || process.env.TWBS_HAVE_OWN_BROWSERSTACK_KEY) {
 
      testSubtasks.push('browserstack_runner');
 
    }
 
  }
 
  grunt.registerTask('test', testSubtasks);
 

	
 
  // JS distribution task.
 
  grunt.registerTask('dist-js', ['concat', 'uglify']);
 

	
 
  // CSS distribution task.
 
  grunt.registerTask('dist-css', ['recess']);
 

	
 
  // Fonts distribution task.
 
  grunt.registerTask('dist-fonts', ['copy']);
 

	
 
  // Full distribution task.
 
  grunt.registerTask('dist', ['clean', 'dist-css', 'dist-fonts', 'dist-js']);
 

	
 
  // Default task.
 
  grunt.registerTask('default', ['test', 'dist', 'build-customizer']);
 

	
 
  // task for building customizer
 
  grunt.registerTask('build-customizer', 'Add scripts/less files to customizer.', function () {
 
    var fs = require('fs')
 

	
 
    function getFiles(type) {
 
      var files = {}
 
      fs.readdirSync(type)
 
        .filter(function (path) {
 
          return type == 'fonts' ? true : new RegExp('\\.' + type + '$').test(path)
 
        })
 
        .forEach(function (path) {
 
          return files[path] = fs.readFileSync(type + '/' + path, 'utf8')
 
        })
 
      return 'var __' + type + ' = ' + JSON.stringify(files) + '\n'
 
    }
 

	
 
    var customize = fs.readFileSync('customize.html', 'utf-8')
 
    var files = getFiles('js') + getFiles('less') + getFiles('fonts')
 
    fs.writeFileSync('assets/js/raw-files.js', files)
 
  });
 
};
...
 
\ No newline at end of file
bootstrap-3.0.0/LICENSE
Show inline comments
 
new file 100644
 
                                 Apache License
 
                           Version 2.0, January 2004
 
                        http://www.apache.org/licenses/
 

	
 
   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
 

	
 
   1. Definitions.
 

	
 
      "License" shall mean the terms and conditions for use, reproduction,
 
      and distribution as defined by Sections 1 through 9 of this document.
 

	
 
      "Licensor" shall mean the copyright owner or entity authorized by
 
      the copyright owner that is granting the License.
 

	
 
      "Legal Entity" shall mean the union of the acting entity and all
 
      other entities that control, are controlled by, or are under common
 
      control with that entity. For the purposes of this definition,
 
      "control" means (i) the power, direct or indirect, to cause the
 
      direction or management of such entity, whether by contract or
 
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
 
      outstanding shares, or (iii) beneficial ownership of such entity.
 

	
 
      "You" (or "Your") shall mean an individual or Legal Entity
 
      exercising permissions granted by this License.
 

	
 
      "Source" form shall mean the preferred form for making modifications,
 
      including but not limited to software source code, documentation
 
      source, and configuration files.
 

	
 
      "Object" form shall mean any form resulting from mechanical
 
      transformation or translation of a Source form, including but
 
      not limited to compiled object code, generated documentation,
 
      and conversions to other media types.
 

	
 
      "Work" shall mean the work of authorship, whether in Source or
 
      Object form, made available under the License, as indicated by a
 
      copyright notice that is included in or attached to the work
 
      (an example is provided in the Appendix below).
 

	
 
      "Derivative Works" shall mean any work, whether in Source or Object
 
      form, that is based on (or derived from) the Work and for which the
 
      editorial revisions, annotations, elaborations, or other modifications
 
      represent, as a whole, an original work of authorship. For the purposes
 
      of this License, Derivative Works shall not include works that remain
 
      separable from, or merely link (or bind by name) to the interfaces of,
 
      the Work and Derivative Works thereof.
 

	
 
      "Contribution" shall mean any work of authorship, including
 
      the original version of the Work and any modifications or additions
 
      to that Work or Derivative Works thereof, that is intentionally
 
      submitted to Licensor for inclusion in the Work by the copyright owner
 
      or by an individual or Legal Entity authorized to submit on behalf of
 
      the copyright owner. For the purposes of this definition, "submitted"
 
      means any form of electronic, verbal, or written communication sent
 
      to the Licensor or its representatives, including but not limited to
 
      communication on electronic mailing lists, source code control systems,
 
      and issue tracking systems that are managed by, or on behalf of, the
 
      Licensor for the purpose of discussing and improving the Work, but
 
      excluding communication that is conspicuously marked or otherwise
 
      designated in writing by the copyright owner as "Not a Contribution."
 

	
 
      "Contributor" shall mean Licensor and any individual or Legal Entity
 
      on behalf of whom a Contribution has been received by Licensor and
 
      subsequently incorporated within the Work.
 

	
 
   2. Grant of Copyright License. Subject to the terms and conditions of
 
      this License, each Contributor hereby grants to You a perpetual,
 
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
 
      copyright license to reproduce, prepare Derivative Works of,
 
      publicly display, publicly perform, sublicense, and distribute the
 
      Work and such Derivative Works in Source or Object form.
 

	
 
   3. Grant of Patent License. Subject to the terms and conditions of
 
      this License, each Contributor hereby grants to You a perpetual,
 
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
 
      (except as stated in this section) patent license to make, have made,
 
      use, offer to sell, sell, import, and otherwise transfer the Work,
 
      where such license applies only to those patent claims licensable
 
      by such Contributor that are necessarily infringed by their
 
      Contribution(s) alone or by combination of their Contribution(s)
 
      with the Work to which such Contribution(s) was submitted. If You
 
      institute patent litigation against any entity (including a
 
      cross-claim or counterclaim in a lawsuit) alleging that the Work
 
      or a Contribution incorporated within the Work constitutes direct
 
      or contributory patent infringement, then any patent licenses
 
      granted to You under this License for that Work shall terminate
 
      as of the date such litigation is filed.
 

	
 
   4. Redistribution. You may reproduce and distribute copies of the
 
      Work or Derivative Works thereof in any medium, with or without
 
      modifications, and in Source or Object form, provided that You
 
      meet the following conditions:
 

	
 
      (a) You must give any other recipients of the Work or
 
          Derivative Works a copy of this License; and
 

	
 
      (b) You must cause any modified files to carry prominent notices
 
          stating that You changed the files; and
 

	
 
      (c) You must retain, in the Source form of any Derivative Works
 
          that You distribute, all copyright, patent, trademark, and
 
          attribution notices from the Source form of the Work,
 
          excluding those notices that do not pertain to any part of
 
          the Derivative Works; and
 

	
 
      (d) If the Work includes a "NOTICE" text file as part of its
 
          distribution, then any Derivative Works that You distribute must
 
          include a readable copy of the attribution notices contained
 
          within such NOTICE file, excluding those notices that do not
 
          pertain to any part of the Derivative Works, in at least one
 
          of the following places: within a NOTICE text file distributed
 
          as part of the Derivative Works; within the Source form or
 
          documentation, if provided along with the Derivative Works; or,
 
          within a display generated by the Derivative Works, if and
 
          wherever such third-party notices normally appear. The contents
 
          of the NOTICE file are for informational purposes only and
 
          do not modify the License. You may add Your own attribution
 
          notices within Derivative Works that You distribute, alongside
 
          or as an addendum to the NOTICE text from the Work, provided
 
          that such additional attribution notices cannot be construed
 
          as modifying the License.
 

	
 
      You may add Your own copyright statement to Your modifications and
 
      may provide additional or different license terms and conditions
 
      for use, reproduction, or distribution of Your modifications, or
 
      for any such Derivative Works as a whole, provided Your use,
 
      reproduction, and distribution of the Work otherwise complies with
 
      the conditions stated in this License.
 

	
 
   5. Submission of Contributions. Unless You explicitly state otherwise,
 
      any Contribution intentionally submitted for inclusion in the Work
 
      by You to the Licensor shall be under the terms and conditions of
 
      this License, without any additional terms or conditions.
 
      Notwithstanding the above, nothing herein shall supersede or modify
 
      the terms of any separate license agreement you may have executed
 
      with Licensor regarding such Contributions.
 

	
 
   6. Trademarks. This License does not grant permission to use the trade
 
      names, trademarks, service marks, or product names of the Licensor,
 
      except as required for reasonable and customary use in describing the
 
      origin of the Work and reproducing the content of the NOTICE file.
 

	
 
   7. Disclaimer of Warranty. Unless required by applicable law or
 
      agreed to in writing, Licensor provides the Work (and each
 
      Contributor provides its Contributions) on an "AS IS" BASIS,
 
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 
      implied, including, without limitation, any warranties or conditions
 
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
 
      PARTICULAR PURPOSE. You are solely responsible for determining the
 
      appropriateness of using or redistributing the Work and assume any
 
      risks associated with Your exercise of permissions under this License.
 

	
 
   8. Limitation of Liability. In no event and under no legal theory,
 
      whether in tort (including negligence), contract, or otherwise,
 
      unless required by applicable law (such as deliberate and grossly
 
      negligent acts) or agreed to in writing, shall any Contributor be
 
      liable to You for damages, including any direct, indirect, special,
 
      incidental, or consequential damages of any character arising as a
 
      result of this License or out of the use or inability to use the
 
      Work (including but not limited to damages for loss of goodwill,
 
      work stoppage, computer failure or malfunction, or any and all
 
      other commercial damages or losses), even if such Contributor
 
      has been advised of the possibility of such damages.
 

	
 
   9. Accepting Warranty or Additional Liability. While redistributing
 
      the Work or Derivative Works thereof, You may choose to offer,
 
      and charge a fee for, acceptance of support, warranty, indemnity,
 
      or other liability obligations and/or rights consistent with this
 
      License. However, in accepting such obligations, You may act only
 
      on Your own behalf and on Your sole responsibility, not on behalf
 
      of any other Contributor, and only if You agree to indemnify,
 
      defend, and hold each Contributor harmless for any liability
 
      incurred by, or claims asserted against, such Contributor by reason
 
      of your accepting any such warranty or additional liability.
 

	
 
   END OF TERMS AND CONDITIONS
bootstrap-3.0.0/README.md
Show inline comments
 
new file 100644
 
# [Bootstrap v3.0.0](http://getbootstrap.com) [![Build Status](https://secure.travis-ci.org/twbs/bootstrap.png)](http://travis-ci.org/twbs/bootstrap)
 

	
 
Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created and maintained by [Mark Otto](http://twitter.com/mdo) and [Jacob Thornton](http://twitter.com/fat).
 

	
 
To get started, check out [http://getbootstrap.com](http://getbootstrap.com)!
 

	
 

	
 

	
 
## Quick start
 

	
 
Three quick start options are available:
 

	
 
* [Download the latest release](https://github.com/twbs/bootstrap/zipball/3.0.0-wip).
 
* Clone the repo: `git clone git://github.com/twbs/bootstrap.git`.
 
* Install with [Bower](http://bower.io): `bower install bootstrap`.
 

	
 
Read the [Getting Started page](http://getbootstrap.com/getting-started/) for information on the framework contents, templates and examples, and more.
 

	
 

	
 

	
 
## Bugs and feature requests
 

	
 
Have a bug or a feature request? [Please open a new issue](https://github.com/twbs/bootstrap/issues). Before opening any issue, please search for existing issues and read the [Issue Guidelines](https://github.com/necolas/issue-guidelines), written by [Nicolas Gallagher](https://github.com/necolas/).
 

	
 
You may use [this JS Bin](http://jsbin.com/aKiCIDO/1/edit) as a template for your bug reports.
 

	
 

	
 

	
 
## Documentation
 

	
 
Bootstrap's documentation, included in this repo in the root directory, is built with [Jekyll](http://jekyllrb.com) and publicly hosted on GitHub Pages at [http://getbootstrap.com](http://getbootstrap.com). The docs may also be run locally.
 

	
 
### Running documentation locally
 

	
 
1. If necessary, [install Jekyll](http://jekyllrb.com/docs/installation) (requires v1.x).
 
2. From the root `/bootstrap` directory, run `jekyll serve` in the command line.
 
  - **Windows users:** run `chcp 65001` first to change the command prompt's character encoding ([code page](http://en.wikipedia.org/wiki/Windows_code_page)) to UTF-8 so Jekyll runs without errors.
 
3. Open [http://localhost:9001](http://localhost:9001) in your browser, and voilà.
 

	
 
Learn more about using Jekyll by reading their [documentation](http://jekyllrb.com/docs/home/).
 

	
 
### Documentation for previous releases
 

	
 
Documentation for v2.3.2 has been made available for the time being at [http://getbootstrap.com/2.3.2/](http://getbootstrap.com/2.3.2/) while folks transition to Bootstrap 3.
 

	
 
[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download.
 

	
 

	
 

	
 
## Compiling CSS and JavaScript
 

	
 
Bootstrap uses [Grunt](http://gruntjs.com/) with convenient methods for working with the framework. It's how we compile our code, run tests, and more. To use it, install the required dependencies as directed and then run some Grunt commands.
 

	
 
### Install Grunt
 

	
 
From the command line:
 

	
 
1. Install `grunt-cli` globally with `npm install -g grunt-cli`.
 
2. Install the [necessary local dependencies](package.json) via `npm install`
 

	
 
When completed, you'll be able to run the various Grunt commands provided from the command line.
 

	
 
**Unfamiliar with `npm`? Don't have node installed?** That's a-okay. npm stands for [node packaged modules](http://npmjs.org/) and is a way to manage development dependencies through node.js. [Download and install node.js](http://nodejs.org/download/) before proceeding.
 

	
 
### Available Grunt commands
 

	
 
#### Build - `grunt`
 
Run `grunt` to run tests locally and compile the CSS and JavaScript into `/dist`. **Requires [recess](https://github.com/twitter/recess) and [uglify-js](https://github.com/mishoo/UglifyJS).**
 

	
 
#### Only compile CSS and JavaScript - `grunt dist`
 
`grunt dist` creates the `/dist` directory with compiled files. **Requires [recess](https://github.com/twitter/recess) and [uglify-js](https://github.com/mishoo/UglifyJS).**
 

	
 
#### Tests - `grunt test`
 
Runs jshint and qunit tests headlessly in [phantomjs](https://github.com/ariya/phantomjs/) (used for CI). **Requires [phantomjs](https://github.com/ariya/phantomjs/).**
 

	
 
#### Watch - `grunt watch`
 
This is a convenience method for watching just Less files and automatically building them whenever you save.
 

	
 
### Troubleshooting dependencies
 

	
 
Should you encounter problems with installing dependencies or running Grunt commands, uninstall all previous dependency versions (global and local). Then, rerun `npm install`.
 

	
 

	
 

	
 
## Contributing
 

	
 
Please read through our guidelines for contributing to Bootstrap. Included are directions for opening issues, coding standards, and notes on development.
 

	
 
More over, 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).
 

	
 
Editor preferences are available in the [editor config](.editorconfig) for easy use in common text editors. Read more and download plugins at [http://editorconfig.org](http://editorconfig.org).
 

	
 

	
 

	
 
## Community
 

	
 
Keep track of development and community news.
 

	
 
* Follow [@twbootstrap on Twitter](http://twitter.com/twbootstrap).
 
* Read and subscribe to the [The Official Bootstrap Blog](http://blog.getbootstrap.com).
 
* Have a question that's not a feature request or bug report? [Ask on the mailing list.](http://groups.google.com/group/twitter-bootstrap)
 
* Chat with fellow Bootstrappers in IRC. On the `irc.freenode.net` server, in the `##twitter-bootstrap` channel.
 

	
 

	
 

	
 

	
 
## Versioning
 

	
 
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, Bootstrap will be maintained under the Semantic Versioning guidelines as much as possible.
 

	
 
Releases will be numbered with the following format:
 

	
 
`<major>.<minor>.<patch>`
 

	
 
And constructed with the following guidelines:
 

	
 
* Breaking backward compatibility bumps the major (and resets the minor and patch)
 
* New additions without breaking backward compatibility bumps the minor (and resets the patch)
 
* Bug fixes and misc changes bumps the patch
 

	
 
For more information on SemVer, please visit [http://semver.org/](http://semver.org/).
 

	
 

	
 

	
 
## Authors
 

	
 
**Mark Otto**
 

	
 
+ [http://twitter.com/mdo](http://twitter.com/mdo)
 
+ [http://github.com/mdo](http://github.com/mdo)
 

	
 
**Jacob Thornton**
 

	
 
+ [http://twitter.com/fat](http://twitter.com/fat)
 
+ [http://github.com/fat](http://github.com/fat)
 

	
 

	
 

	
 
## Copyright and license
 

	
 
Copyright 2012 Twitter, Inc under [the Apache 2.0 license](LICENSE).
bootstrap-3.0.0/_config.yml
Show inline comments
 
new file 100644
 
# Dependencies
 
markdown:         rdiscount
 
pygments:         true
 

	
 
# Permalinks
 
permalink:        pretty
 

	
 
# Server
 
destination:      ./_gh_pages
 
exclude:          [".editorconfig", ".gitignore", ".ruby-version", "bower.json", "composer.json", "CONTRIBUTING.md", "CNAME", "LICENSE", "Gruntfile.js", "package.json", "node_modules", "README.md", "less"]
 
port:             9001
 

	
 
# Custom vars
 
repo:             https://github.com/twbs/bootstrap
 
download:         https://github.com/twbs/bootstrap/archive/v3.0.0.zip
 
download_dist:    https://github.com/twbs/bootstrap/releases/download/v3.0.0/bootstrap-3.0.0-dist.zip
 

	
 
blog:             http://blog.getbootstrap.com
 
expo:             http://expo.getbootstrap.com
 

	
 
cdn_css:          //netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css
 
cdn_theme_css:    //netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css
 
cdn_js:           //netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js
bootstrap-3.0.0/_includes/ads.html
Show inline comments
 
new file 100644
 
<div id="carbonads-container"><div class="carbonad"><div id="azcarbon"></div><script>var z = document.createElement("script"); z.async = true; z.src = "http://engine.carbonads.com/z/32341/azcarbon_2_1_0_HORIZ"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(z, s);</script></div></div>
bootstrap-3.0.0/_includes/footer.html
Show inline comments
 
new file 100644
 
<!-- Bootstrap core JavaScript
 
================================================== -->
 
<!-- Placed at the end of the document so the pages load faster -->
 
<script src="{{ page.base_url }}assets/js/jquery.js"></script>
 
<script src="{{ page.base_url }}dist/js/bootstrap.js"></script>
 

	
 
<script src="http://platform.twitter.com/widgets.js"></script>
 
<script src="{{ page.base_url }}assets/js/holder.js"></script>
 

	
 
<script src="{{ page.base_url }}assets/js/application.js"></script>
 

	
 
{% if page.slug == "customize" %}
 
<script src="{{ page.base_url }}assets/js/less.js"></script>
 
<script src="{{ page.base_url }}assets/js/jszip.js"></script>
 
<script src="{{ page.base_url }}assets/js/uglify.js"></script>
 
<script src="{{ page.base_url }}assets/js/filesaver.js"></script>
 
<script src="{{ page.base_url }}assets/js/raw-files.js"></script>
 
<script src="{{ page.base_url }}assets/js/customizer.js"></script>
 
{% endif %}
 

	
 
<!-- Analytics
 
================================================== -->
 
<script>
 
  var _gauges = _gauges || [];
 
  (function() {
 
    var t   = document.createElement('script');
 
    t.async = true;
 
    t.id    = 'gauges-tracker';
 
    t.setAttribute('data-site-id', '4f0dc9fef5a1f55508000013');
 
    t.src = '//secure.gaug.es/track.js';
 
    var s = document.getElementsByTagName('script')[0];
 
    s.parentNode.insertBefore(t, s);
 
  })();
 
</script>
bootstrap-3.0.0/_includes/header.html
Show inline comments
 
new file 100644
 
<meta charset="utf-8">
 
<meta name="viewport" content="width=device-width, initial-scale=1.0">
 
<meta name="description" content="">
 
<meta name="author" content="">
 

	
 
<title>
 
  {% if page.title == "Bootstrap" %}
 
    {{ page.title }}
 
  {% else if %}
 
    {{ page.title }} &middot; Bootstrap
 
  {% endif %}
 
</title>
 

	
 
<!-- Bootstrap core CSS -->
 
<link href="{{ page.base_url }}dist/css/bootstrap.css" rel="stylesheet">
 

	
 
<!-- Documentation extras -->
 
<link href="{{ page.base_url }}assets/css/docs.css" rel="stylesheet">
 
<link href="{{ page.base_url }}assets/css/pygments-manni.css" rel="stylesheet">
 

	
 
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
 
<!--[if lt IE 9]>
 
  <script src="{{ page.base_url }}assets/js/html5shiv.js"></script>
 
  <script src="{{ page.base_url }}assets/js/respond.min.js"></script>
 
<![endif]-->
 

	
 
<!-- Favicons -->
 
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ page.base_url }}assets/ico/apple-touch-icon-144-precomposed.png">
 
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="{{ page.base_url }}assets/ico/apple-touch-icon-114-precomposed.png">
 
  <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ page.base_url }}assets/ico/apple-touch-icon-72-precomposed.png">
 
                <link rel="apple-touch-icon-precomposed" href="{{ page.base_url }}assets/ico/apple-touch-icon-57-precomposed.png">
 
                               <link rel="shortcut icon" href="{{ page.base_url }}assets/ico/favicon.png">
 

	
 
<script>
 
  var _gaq = _gaq || [];
 
  _gaq.push(['_setAccount', 'UA-146052-10']);
 
  _gaq.push(['_trackPageview']);
 
  (function() {
 
    var ga = document.createElement('script'); ga.async = true;
 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
 
  })();
 
</script>
bootstrap-3.0.0/_includes/nav-components.html
Show inline comments
 
new file 100644
 
<li>
 
  <a href="#glyphicons">Glyphicons</a>
 
  <ul class="nav">
 
    <li><a href="#glyphicons-glyphs">Available glyphs</a></li>
 
    <li><a href="#glyphicons-how-to-use">How to use</a></li>
 
    <li><a href="#glyphicons-examples">Examples</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#dropdowns">Dropdowns</a>
 
  <ul class="nav">
 
    <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-disabled">Disabled menu items</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#btn-groups">Button groups</a>
 
  <ul class="nav">
 
    <li><a href="#btn-groups-single">Basic example</a></li>
 
    <li><a href="#btn-groups-toolbar">Button toolbar</a></li>
 
    <li><a href="#btn-groups-sizing">Sizing</a></li>
 
    <li><a href="#btn-groups-nested">Nesting</a></li>
 
    <li><a href="#btn-groups-vertical">Vertical variation</a></li>
 
    <li><a href="#btn-groups-justified">Justified link variation</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#btn-dropdowns">Button dropdowns</a>
 
  <ul class="nav">
 
    <li><a href="#btn-dropdowns-single">Single button dropdowns</a></li>
 
    <li><a href="#btn-dropdowns-split">Split button dropdowns</a></li>
 
    <li><a href="#btn-dropdowns-sizing">Sizing</a></li>
 
    <li><a href="#btn-dropdowns-dropup">Dropup variation</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#input-groups">Input groups</a>
 
  <ul class="nav">
 
    <li><a href="#input-groups-basic">Basic example</a></li>
 
    <li><a href="#input-groups-sizing">Sizing</a></li>
 
    <li><a href="#input-groups-checkboxes-radios">Checkbox and radios addons</a></li>
 
    <li><a href="#input-groups-buttons">Button addons</a></li>
 
    <li><a href="#input-groups-buttons-dropdowns">Buttons with dropdowns</a></li>
 
    <li><a href="#input-groups-buttons-segmented">Segmented buttons</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#nav">Navs</a>
 
  <ul class="nav">
 
    <li><a href="#nav-tabs">Tabs</a></li>
 
    <li><a href="#nav-pills">Pills</a></li>
 
    <li><a href="#nav-justified">Justified nav</a></li>
 
    <li><a href="#nav-disabled-links">Disabled links</a></li>
 
    <li><a href="#nav-alignment">Alignment options</a></li>
 
    <li><a href="#nav-dropdowns">Using dropdowns</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#navbar">Navbar</a>
 
  <ul class="nav">
 
    <li><a href="#navbar-default">Default navbar</a></li>
 
    <li><a href="#navbar-buttons">Buttons</a></li>
 
    <li><a href="#navbar-text">Text</a></li>
 
    <li><a href="#navbar-links">Non-nav links</a></li>
 
    <li><a href="#navbar-component-alignment">Component alignment</a></li>
 
    <li><a href="#navbar-fixed-top">Fixed to top</a></li>
 
    <li><a href="#navbar-fixed-bottom">Fixed to bottom</a></li>
 
    <li><a href="#navbar-static-top">Static top</a></li>
 
    <li><a href="#navbar-inverted">Inverted navbar</a></li>
 
  </ul>
 
</li>
 
<li><a href="#breadcrumbs">Breadcrumbs</a></li>
 
<li>
 
  <a href="#pagination">Pagination</a>
 
  <ul class="nav">
 
    <li><a href="#pagination-default">Default pagination</a></li>
 
    <li><a href="#pagination-pager">Pager</a></li>
 
  </ul>
 
</li>
 
<li><a href="#labels">Labels</a></li>
 
<li><a href="#badges">Badges</a></li>
 
<li><a href="#jumbotron">Jumbotron</a></li>
 
<li><a href="#page-header">Page header</a></li>
 
<li>
 
  <a href="#thumbnails">Thumbnails</a>
 
  <ul class="nav">
 
    <li><a href="#thumbnails-default">Default example</a></li>
 
    <li><a href="#thumbnails-custom-content">Custom content</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#alerts">Alerts</a>
 
  <ul class="nav">
 
    <li><a href="#alerts-examples">Examples</a></li>
 
    <li><a href="#alerts-dismissable">Dismissable alerts</a></li>
 
    <li><a href="#alerts-links">Links in alerts</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#progress">Progress bars</a>
 
  <ul class="nav">
 
    <li><a href="#progress-basic">Basic example</a></li>
 
    <li><a href="#progress-alternatives">Contextual alternatives</a></li>
 
    <li><a href="#progress-striped">Striped</a></li>
 
    <li><a href="#progress-animated">Animated</a></li>
 
    <li><a href="#progress-stacked">Stacked</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#media">Media object</a>
 
  <ul class="nav">
 
    <li><a href="#media-default">Default media</a></li>
 
    <li><a href="#media-list">Media list</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#list-group">List group</a>
 
  <ul class="nav">
 
    <li><a href="#list-group-basic">Basic example</a></li>
 
    <li><a href="#list-group-badges">Badges</a></li>
 
    <li><a href="#list-group-linked">Linked items</a></li>
 
    <li><a href="#list-group-custom-content">Custom content</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#panels">Panels</a>
 
  <ul class="nav">
 
    <li><a href="#panels-basic">Basic example</a></li>
 
    <li><a href="#panels-heading">Panel with heading</a></li>
 
    <li><a href="#panels-alternatives">Contextual alternatives</a></li>
 
    <li><a href="#panels-tables">With tables</a>
 
    <li><a href="#panels-list-group">With list groups</a>
 
  </ul>
 
</li>
 
<li><a href="#wells">Wells</a></li>
bootstrap-3.0.0/_includes/nav-css.html
Show inline comments
 
new file 100644
 
<li>
 
  <a href="#overview">Overview</a>
 
  <ul class="nav">
 
    <li><a href="#overview-doctype">HTML5 doctype</a></li>
 
    <li><a href="#overview-mobile">Mobile first</a></li>
 
    <li><a href="#overview-responsive-images">Responsive images</a></li>
 
    <li><a href="#overview-type-links">Typography and links</a></li>
 
    <li><a href="#overview-normalize">Normalize</a></li>
 
    <li><a href="#overview-container">Containers</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#grid">Grid system</a>
 
  <ul class="nav">
 
    <li><a href="#grid-media-queries">Media queries</a></li>
 
    <li><a href="#grid-options">Grid options</a></li>
 
    <li><a href="#grid-example-basic">Ex: Stacked-to-horizonal</a></li>
 
    <li><a href="#grid-example-mixed">Ex: Mobile and desktops</a></li>
 
    <li><a href="#grid-example-mixed-complete">Ex: Mobile, tablet, desktops</a></li>
 
    <li><a href="#grid-responsive-resets">Responsive column resets</a></li>
 
    <li><a href="#grid-offsetting">Offsetting columns</a></li>
 
    <li><a href="#grid-nesting">Nesting columns</a></li>
 
    <li><a href="#grid-column-ordering">Column ordering</a></li>
 
    <li><a href="#grid-less">LESS mixins and variables</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#type">Typography</a>
 
  <ul class="nav">
 
    <li><a href="#type-headings">Headings</a></li>
 
    <li><a href="#type-body-copy">Body copy</a></li>
 
    <li><a href="#type-emphasis">Emphasis</a></li>
 
    <li><a href="#type-abbreviations">Abbreviations</a></li>
 
    <li><a href="#type-addresses">Addresses</a></li>
 
    <li><a href="#type-blockquotes">Blockquotes</a></li>
 
    <li><a href="#type-lists">Lists</a></li>
 
  </ul>
 
</li>
 
<li><a href="#code">Code</a></li>
 
<li>
 
  <a href="#tables">Tables</a>
 
  <ul class="nav">
 
    <li><a href="#tables-example">Basic example</a></li>
 
    <li><a href="#tables-striped">Striped rows</a></li>
 
    <li><a href="#tables-bordered">Bordered table</a></li>
 
    <li><a href="#tables-hover-rows">Hover rows</a></li>
 
    <li><a href="#tables-condensed">Condensed table</a></li>
 
    <li><a href="#tables-contextual-classes">Contextual classes</a></li>
 
    <li><a href="#tables-responsive">Responsive tables</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#forms">Forms</a>
 
  <ul class="nav">
 
    <li><a href="#forms-example">Basic example</a></li>
 
    <li><a href="#forms-inline">Inline form</a></li>
 
    <li><a href="#forms-horizontal">Horizontal form</a></li>
 
    <li><a href="#forms-controls">Supported controls</a></li>
 
    <li><a href="#forms-controls-static">Static control</a></li>
 
    <li><a href="#forms-control-states">Control states</a></li>
 
    <li><a href="#forms-control-sizes">Control sizing</a></li>
 
    <li><a href="#forms-help-text">Help text</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#buttons">Buttons</a>
 
  <ul class="nav">
 
    <li><a href="#buttons-options">Options</a></li>
 
    <li><a href="#buttons-sizes">Sizes</a></li>
 
    <li><a href="#buttons-disabled">Disabled state</a></li>
 
    <li><a href="#buttons-tags">Button tags</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#images">Images</a>
 
</li>
 
<li>
 
  <a href="#helper-classes">Helper classes</a>
 
</li>
 
<li>
 
  <a href="#responsive-utilities">Responsive utilities</a>
 
  <ul class="nav">
 
    <li><a href="#responsive-utilities-classes">Available classes</a></li>
 
    <li><a href="#responsive-utilities-print">Print classes</a></li>
 
    <li><a href="#responsive-utilities-tests">Test cases</a></li>
 
  </ul>
 
</li>
bootstrap-3.0.0/_includes/nav-customize.html
Show inline comments
 
new file 100644
 
<li>
 
  <a href="#less">LESS components</a>
 
</li>
 
<li>
 
  <a href="#plugins">jQuery plugins</a>
 
</li>
 
<li>
 
  <a href="#less-variables">LESS variables</a>
 
  <ul class="nav">
 
    <li><a href="#variables-basics">Basics</a></li>
 
    <li><a href="#variables-buttons">Buttons</a></li>
 
    <li><a href="#variables-form-states">Form states</a></li>
 
    <li><a href="#variables-alerts">Alerts</a></li>
 
    <li><a href="#variables-navbar">Navbar</a></li>
 
    <li><a href="#variables-nav">Nav</a></li>
 
    <li><a href="#variables-tables">Tables</a></li>
 
    <li><a href="#variables-forms">Forms</a></li>
 
    <li><a href="#variables-dropdowns">Dropdowns</a></li>
 
    <li><a href="#variables-panels-wells">Panels and wells</a></li>
 
    <li><a href="#variables-accordion">Accordion</a></li>
 
    <li><a href="#variables-badges">Badges</a></li>
 
    <li><a href="#variables-breadcrumbs">Breadcrumbs</a></li>
 
    <li><a href="#variables-jumbotron">Jumbotron</a></li>
 
    <li><a href="#variables-modals">Modals</a></li>
 
    <li><a href="#variables-carousel">Carousel</a></li>
 
    <li><a href="#variables-list-group">List group</a></li>
 
    <li><a href="#variables-thumbnails">Thumbnails</a></li>
 
    <li><a href="#variables-progress">Progress bars</a></li>
 
    <li><a href="#variables-pagination">Pagination</a></li>
 
    <li><a href="#variables-pager">Pager</a></li>
 
    <li><a href="#variables-labels">Labels</a></li>
 
    <li><a href="#variables-tooltips-popovers">Tooltips and popovers</a></li>
 
    <li><a href="#variables-close">Close button</a></li>
 
    <li><a href="#variables-type">Type</a></li>
 
    <li><a href="#variables-other">Other</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#download">Download</a>
 
</li>
bootstrap-3.0.0/_includes/nav-getting-started.html
Show inline comments
 
new file 100644
 
<li>
 
  <a href="#download">Download Bootstrap</a>
 
  <ul class="nav">
 
    <li><a href="#download-compiled">Compiled CSS, JS, and fonts</a></li>
 
    <li><a href="#download-additional">Additional downloads</a></li>
 
    <li><a href="#download-cdn">Bootstrap CDN</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#whats-included">What's included</a>
 
</li>
 
<li>
 
  <a href="#template">Basic template</a>
 
</li>
 
<li>
 
  <a href="#examples">Examples</a>
 
</li>
 
<li>
 
  <a href="#disable-responsive">Disabling responsiveness</a>
 
</li>
 
<li>
 
  <a href="#migration">Migrating from 2.x to 3.0</a>
 
  <ul class="nav">
 
    <li><a href="#migration-classes">Major class changes</a></li>
 
    <li><a href="#migration-new">What's new</a></li>
 
    <li><a href="#migration-dropped">What's removed</a></li>
 
    <li><a href="#migration-notes">Additional notes</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#browsers">Browser support</a>
 
</li>
 
<li>
 
  <a href="#third-parties">Third party support</a>
 
</li>
 
<li>
 
  <a href="#accessibility">Accessibility</a>
 
</li>
 
<li>
 
  <a href="#license-faqs">License FAQs</a>
 
</li>
 
<li>
 
  <a href="#customizing">Customizing Bootstrap</a>
 
</li>
bootstrap-3.0.0/_includes/nav-javascript.html
Show inline comments
 
new file 100644
 
<li>
 
  <a href="#js-overview">Overview</a>
 
  <ul class="nav">
 
    <li><a href="#js-individual-compiled">Individual or compiled</a></li>
 
    <li><a href="#js-data-attrs">Data attributes</a></li>
 
    <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>
 
  </ul>
 
</li>
 
<li><a href="#transitions">Transitions</a></li>
 
<li>
 
  <a href="#modals">Modal</a>
 
  <ul class="nav">
 
    <li><a href="#modals-examples">Examples</a></li>
 
    <li><a href="#modals-usage">Usage</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#dropdowns">Dropdown</a>
 
  <ul class="nav">
 
    <li><a href="#dropdowns-examples">Examples</a></li>
 
    <li><a href="#dropdowns-usage">Usage</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#scrollspy">Scrollspy</a>
 
  <ul class="nav">
 
    <li><a href="#scrollspy-examples">Examples</a></li>
 
    <li><a href="#scrollspy-usage">Usage</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#tabs">Tab</a>
 
  <ul class="nav">
 
    <li><a href="#tabs-examples">Examples</a></li>
 
    <li><a href="#tabs-usage">Usage</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#tooltips">Tooltip</a>
 
  <ul class="nav">
 
    <li><a href="#tooltips-examples">Examples</a></li>
 
    <li><a href="#tooltips-usage">Usage</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#popovers">Popover</a>
 
  <ul class="nav">
 
    <li><a href="#popovers-examples">Examples</a></li>
 
    <li><a href="#popovers-usage">Usage</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#alerts">Alert</a>
 
  <ul class="nav">
 
    <li><a href="#alerts-examples">Examples</a></li>
 
    <li><a href="#alerts-usage">Usage</a></li>
 
  </ul>
 
</li>
 
<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>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#collapse">Collapse</a>
 
  <ul class="nav">
 
    <li><a href="#collapse-examples">Examples</a></li>
 
    <li><a href="#collapse-usage">Usage</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#carousel">Carousel</a>
 
  <ul class="nav">
 
    <li><a href="#carousel-examples">Examples</a></li>
 
    <li><a href="#carousel-usage">Usage</a></li>
 
  </ul>
 
</li>
 
<li>
 
  <a href="#affix">Affix</a>
 
  <ul class="nav">
 
    <li><a href="#affix-examples">Examples</a></li>
 
    <li><a href="#affix-usage">Usage</a></li>
 
  </ul>
 
</li>
bootstrap-3.0.0/_includes/nav-main.html
Show inline comments
 
new file 100644
 
<header class="navbar navbar-inverse navbar-fixed-top bs-docs-nav" role="banner">
 
  <div class="container">
 
    <div class="navbar-header">
 
      <button class="navbar-toggle" 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>
 
        <span class="icon-bar"></span>
 
      </button>
 
      <a href="{{ page.base_url }}" class="navbar-brand">Bootstrap</a>
 
    </div>
 
    <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="{{ page.base_url }}getting-started">Getting started</a>
 
        </li>
 
        <li{% if page.slug == "css" %} class="active"{% endif %}>
 
          <a href="{{ page.base_url }}css">CSS</a>
 
        </li>
 
        <li{% if page.slug == "components" %} class="active"{% endif %}>
 
          <a href="{{ page.base_url }}components">Components</a>
 
        </li>
 
        <li{% if page.slug == "js" %} class="active"{% endif %}>
 
          <a href="{{ page.base_url }}javascript">JavaScript</a>
 
        </li>
 
        <li{% if page.slug == "customize" %} class="active"{% endif %}>
 
          <a href="{{ page.base_url }}customize">Customize</a>
 
        </li>
 
      </ul>
 
    </nav>
 
  </div>
 
</header>
bootstrap-3.0.0/_includes/old-bs-docs.html
Show inline comments
 
new file 100644
 
<div class="bs-old-docs">
 
  <div class="container">
 
    <strong>
 
      <a href="{{ page.base_url }}2.3.2/">Looking for Bootstrap 2.3.2 docs?</a>
 
    </strong>
 
    We've moved it to a new home while we push forward with Bootstrap 3. <a href="http://blog.getbootstrap.com/">Read the blog</a> for details.
 
  </div>
 
</div>
bootstrap-3.0.0/_includes/social-buttons.html
Show inline comments
 
new file 100644
 
<div class="bs-social">
 
  <ul class="bs-social-buttons">
 
    <li>
 
      <iframe class="github-btn" src="http://ghbtns.com/github-btn.html?user=twbs&amp;repo=bootstrap&amp;type=watch&amp;count=true" width="100" height="20" title="Star on GitHub"></iframe>
 
    </li>
 
    <li>
 
      <iframe class="github-btn" src="http://ghbtns.com/github-btn.html?user=twbs&amp;repo=bootstrap&amp;type=fork&amp;count=true" width="102" height="20" title="Fork on GitHub"></iframe>
 
    </li>
 
    <li class="follow-btn">
 
      <a href="https://twitter.com/twbootstrap" class="twitter-follow-button" data-link-color="#0069D6" data-show-count="true">Follow @twbootstrap</a>
 
    </li>
 
    <li class="tweet-btn">
 
      <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://getbootstrap.com/" data-count="horizontal" data-via="twbootstrap" data-related="mdo:Creator of Twitter Bootstrap">Tweet</a>
 
    </li>
 
  </ul>
 
</div>
bootstrap-3.0.0/_layouts/default.html
Show inline comments
 
new file 100644
 
<!DOCTYPE html>
 
<html lang="en">
 
  <head>
 
    <!-- Meta, title, CSS, favicons, etc. -->
 
    {% include header.html %}
 
    <!-- Place anything custom after this. -->
 
  </head>
 
  <body>
 
    <a class="sr-only" href="#content">Skip navigation</a>
 

	
 
    <!-- Docs master nav -->
 
    {% include nav-main.html %}
 

	
 
    <!-- Docs page layout -->
 
    <div class="bs-header" id="content">
 
      <div class="container">
 
        <h1>{{ page.title }}</h1>
 
        <p>{{ page.lead }}</p>
 
        {% include ads.html %}
 
      </div>
 
    </div>
 

	
 
    <!-- Callout for the old docs link -->
 
    {% include old-bs-docs.html %}
 

	
 
    <div class="container bs-docs-container">
 
      <div class="row">
 
        <div class="col-md-3">
 
          <div class="bs-sidebar hidden-print" role="complementary">
 
            <ul class="nav bs-sidenav">
 
              {% if page.slug == "getting-started" %}
 
                {% include nav-getting-started.html %}
 
              {% elsif page.slug == "css" %}
 
                {% include nav-css.html %}
 
              {% elsif page.slug == "components" %}
 
                {% include nav-components.html %}
 
              {% elsif page.slug == "js" %}
 
                {% include nav-javascript.html %}
 
              {% elsif page.slug == "customize" %}
 
                {% include nav-customize.html %}
 
              {% endif %}
 
            </ul>
 
          </div>
 
        </div>
 
        <div class="col-md-9" role="main">
 
          {{ content }}
 
        </div>
 
      </div>
 

	
 
    </div>
 

	
 
    <!-- Footer
 
    ================================================== -->
 
    <footer class="bs-footer" role="contentinfo">
 
      <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>Code licensed under <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License v2.0</a>, documentation under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p>
 
        <ul class="footer-links">
 
          <li><a href="{{ page.base_url }}2.3.2/">Bootstrap 2.3.2 docs</a></li>
 
          <li class="muted">&middot;</li>
 
          <li><a href="{{ site.blog }}">Blog</a></li>
 
          <li class="muted">&middot;</li>
 
          <li><a href="{{ site.repo }}/issues?state=open">Issues</a></li>
 
          <li class="muted">&middot;</li>
 
          <li><a href="{{ site.repo }}/releases">Releases</a></li>
 
        </ul>
 
      </div>
 
    </footer>
 

	
 
    <!-- JS and analytics only. -->
 
    {% include footer.html %}
 

	
 
  </body>
 
</html>
bootstrap-3.0.0/_layouts/home.html
Show inline comments
 
new file 100644
 
<!DOCTYPE html>
 
<html lang="en">
 
  <head>
 
    <!-- Meta, title, CSS, favicons, etc. -->
 
    {% include header.html %}
 
    <!-- Place anything custom after this. -->
 
  </head>
 
  <body class="bs-docs-home">
 
    <a class="sr-only" href="#content">Skip navigation</a>
 

	
 
    <!-- Docs master nav -->
 
    {% include nav-main.html %}
 

	
 
    <!-- Page content of course! -->
 
    {{ content }}
 

	
 
    <footer class="container" role="contentinfo">
 
      {% include social-buttons.html %}
 

	
 
      <ul class="bs-masthead-links">
 
        <li class="current-version">
 
          Currently v3.0.0
 
        </li>
 
        <li>
 
          <a href="{{ page.base_url }}2.3.2/">Bootstrap 2.3.2 docs</a>
 
        </li>
 
        <li>
 
          <a href="{{ site.repo }}" onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Jumbotron links', 'GitHub project']);">GitHub project</a>
 
        </li>
 
        <li>
 
          <a href="{{ page.base_url }}getting-started/#examples" onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Jumbotron links', 'Examples']);">Examples</a>
 
        </li>
 
        <li>
 
          <a href="{{ page.base_url }}components/#glyphicons" onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Jumbotron links', 'Glyphicons']);">Glyphicons</a>
 
        </li>
 
        <li>
 
          <a href="{{ site.expo }}" onclick="_gaq.push(['_trackEvent', 'Jumbotron actions', 'Jumbotron links', 'Expo']);">Expo</a>
 
        </li>
 
      </ul>
 
    </footer>
 

	
 
    <!-- JS and analytics only. -->
 
    {% include footer.html %}
 

	
 
  </body>
 
</html>
bootstrap-3.0.0/assets/css/docs.css
Show inline comments
 
new file 100644
 
/*
 
 * 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
 
 */
 

	
 

	
 
/*
 
 * Scaffolding
 
 *
 
 * Update the basics of our documents to prep for docs content.
 
 */
 

	
 
body {
 
  position: relative; /* For scrollyspy */
 
  padding-top: 50px; /* Account for fixed navbar */
 
}
 

	
 
/* Keep code small in tables on account of limited space */
 
.table code {
 
  font-size: 13px;
 
  font-weight: normal;
 
}
 

	
 
/* Outline button for use within the docs */
 
.btn-outline {
 
  color: #563d7c;
 
  background-color: #fff;
 
  border-color: #e5e5e5;
 
}
 
.btn-outline:hover,
 
.btn-outline:focus,
 
.btn-outline:active {
 
  color: #fff;
 
  background-color: #563d7c;
 
  border-color: #563d7c;
 
}
 

	
 
/* Inverted outline button (white on dark) */
 
.btn-outline-inverse {
 
  color: #fff;
 
  background-color: transparent;
 
  border-color: #cdbfe3;
 
}
 
.btn-outline-inverse:hover,
 
.btn-outline-inverse:focus,
 
.btn-outline-inverse:active {
 
  color: #563d7c;
 
  text-shadow: none;
 
  background-color: #fff;
 
  border-color: #fff;
 
}
 

	
 

	
 
/*
 
 * Main navigation
 
 *
 
 * Turn the `.navbar` at the top of the docs purple.
 
 */
 

	
 
.bs-docs-nav {
 
  text-shadow: 0 -1px 0 rgba(0,0,0,.15);
 
  background-color: #563d7c;
 
  border-color: #463265;
 
  box-shadow: 0 1px 0 rgba(255,255,255,.1);
 
}
 
.bs-docs-nav .navbar-collapse {
 
  border-color: #463265;
 
}
 
.bs-docs-nav .navbar-brand {
 
  color: #fff;
 
}
 
.bs-docs-nav .navbar-nav > li > a {
 
  color: #cdbfe3;
 
}
 
.bs-docs-nav .navbar-nav > li > a:hover {
 
  color: #fff;
 
}
 
.bs-docs-nav .navbar-nav > .active > a,
 
.bs-docs-nav .navbar-nav > .active > a:hover {
 
  color: #fff;
 
  background-color: #463265;
 
}
 
.bs-docs-nav .navbar-toggle {
 
  border-color: #563d7c;
 
}
 
.bs-docs-nav .navbar-toggle:hover {
 
  background-color: #463265;
 
  border-color: #463265;
 
}
 

	
 

	
 
/*
 
 * Footer
 
 *
 
 * Separated section of content at the bottom of all pages, save the homepage.
 
 */
 

	
 
.bs-footer {
 
  padding-top: 40px;
 
  padding-bottom: 30px;
 
  margin-top: 100px;
 
  color: #777;
 
  text-align: center;
 
  border-top: 1px solid #e5e5e5;
 
}
 
.footer-links {
 
  margin: 10px 0;
 
  padding-left: 0;
 
}
 
.footer-links li {
 
  display: inline;
 
  padding: 0 2px;
 
}
 
.footer-links li:first-child {
 
  padding-left: 0;
 
}
 

	
 
@media (min-width: 768px) {
 
  .bs-footer {
 
    text-align: left;
 
  }
 
  .bs-footer p {
 
    margin-bottom: 0;
 
  }
 
}
 

	
 

	
 
/*
 
 * Social buttons
 
 *
 
 * Twitter and GitHub social action buttons (for homepage and footer).
 
 */
 

	
 
.bs-social {
 
  margin-top: 20px;
 
  margin-bottom: 20px;
 
  text-align: center;
 
}
 
.bs-social-buttons {
 
  display: inline-block;
 
  margin-bottom: 0;
 
  padding-left: 0;
 
  list-style: none;
 
}
 
.bs-social-buttons li {
 
  display: inline-block;
 
  line-height: 1;
 
  padding: 5px 8px;
 
}
 
.bs-social-buttons .twitter-follow-button {
 
  width: 225px !important;
 
}
 
.bs-social-buttons .twitter-share-button {
 
  width: 98px !important;
 
}
 
/* Style the GitHub buttons via CSS instead of inline attributes */
 
.github-btn {
 
  border: 0;
 
  overflow: hidden;
 
}
 

	
 
@media screen and (min-width: 768px) {
 
  .bs-social {
 
    text-align: left;
 
  }
 
  .bs-social-buttons li:first-child {
 
    padding-left: 0;
 
  }
 
}
 

	
 

	
 
/*
 
 * Topography, yo!
 
 *
 
 * Apply the map background via base64 and relevant colors where we need 'em.
 
 */
 

	
 
.bs-docs-home,
 
.bs-header {
 
  color: #cdbfe3;
 
  background-color: #563d7c;
 
  background-image: url(data:image/png;base64,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);
 
}
 

	
 

	
 
/*
 
 * Homepage
 
 *
 
 * Tweaks to the custom homepage and the masthead (main jumbotron).
 
 */
 

	
 
 /* Masthead (headings and download button) */
 
 .bs-masthead {
 
  position: relative;
 
  padding: 30px 15px;
 
  text-align: center;
 
  text-shadow: 0 1px 0 rgba(0,0,0,.15);
 
}
 
.bs-masthead h1 {
 
  font-size: 50px;
 
  line-height: 1;
 
  color: #fff;
 
}
 
.bs-masthead .btn-outline {
 
  margin-top: 20px;
 
  margin-bottom: 20px;
 
  padding: 18px 24px;
 
  font-size: 21px;
 
}
 

	
 
/* Links to project-level content like the repo, Expo, etc */
 
.bs-masthead-links {
 
  margin-top: 20px;
 
  margin-bottom: 20px;
 
  padding: 0 15px;
 
  list-style: none;
 
  text-align: center;
 
}
 
.bs-masthead-links li {
 
  display: inline;
 
}
 
.bs-masthead-links li + li {
 
  margin-left: 20px;
 
}
 
.bs-masthead-links a {
 
  color: #fff;
 
}
 

	
 
@media screen and (min-width: 768px) {
 
  .bs-masthead {
 
    text-align: left;
 
    padding-top:    140px;
 
    padding-bottom: 140px;
 
  }
 
  .bs-masthead h1 {
 
    font-size: 100px;
 
  }
 
  .bs-masthead .lead {
 
    margin-right: 25%;
 
    font-size: 30px;
 
  }
 
  .bs-masthead-links {
 
    padding: 0;
 
    text-align: left;
 
  }
 
}
 

	
 

	
 
/*
 
 * Page headers
 
 *
 
 * Jumbotron-esque headers at the top of every page that's not the homepage.
 
 */
 

	
 

	
 
/* Page headers */
 
.bs-header {
 
  padding: 30px 15px 40px; /* side padding builds on .container 15px, so 30px */
 
  font-size: 16px;
 
  text-align: center;
 
  text-shadow: 0 1px 0 rgba(0,0,0,.15);
 
}
 
.bs-header h1 {
 
  color: #fff;
 
}
 
.bs-header p {
 
  font-weight: 300;
 
  line-height: 1.5;
 
}
 
.bs-header .container {
 
  position: relative;
 
}
 

	
 
@media screen and (min-width: 768px) {
 
  .bs-header {
 
    font-size: 21px;
 
    text-align: left;
 
  }
 
  .bs-header h1 {
 
    font-size: 60px;
 
    line-height: 1;
 
  }
 
}
 

	
 
@media screen and (min-width: 992px) {
 
  .bs-header h1,
 
  .bs-header p {
 
    margin-right: 380px;
 
  }
 
}
 

	
 

	
 
/*
 
 * Carbon ads
 
 *
 
 * Single display ad that shows on all pages (except homepage) in page headers.
 
 * The hella `!important` is required for any pre-set property.
 
 */
 

	
 
.carbonad {
 
  width: auto !important;
 
  margin: 50px -30px -40px !important;
 
  padding: 20px !important;
 
  overflow: hidden; /* clearfix */
 
  height: auto !important;
 
  font-size: 13px !important;
 
  line-height: 16px !important;
 
  text-align: left;
 
  background: #463265 !important;
 
  border: 0 !important;
 
  box-shadow: inset 0 3px 5px rgba(0,0,0,.075);
 
}
 
.carbonad-img {
 
  margin: 0 !important;
 
}
 
.carbonad-text,
 
.carbonad-tag {
 
  float: none !important;
 
  display: block !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: #cdbfe3 !important;
 
  text-align: left !important;
 
}
 
.carbonad-text a,
 
.carbonad-tag a {
 
  color: #fff !important;
 
}
 
.carbonad #azcarbon > img {
 
  display: none; /* hide what I assume are tracking images */
 
}
 

	
 
@media screen and (min-width: 768px) {
 
  .carbonad {
 
    margin: 0 !important;
 
    border-radius: 4px;
 
    box-shadow: inset 0 3px 5px rgba(0,0,0,.075), 0 1px 0 rgba(255,255,255,.1);
 
  }
 
}
 

	
 
@media screen and (min-width: 992px) {
 
  .carbonad {
 
    position: absolute;
 
    top: 20px;
 
    right: 0;
 
    padding: 15px !important;
 
    width: 330px !important;
 
    min-height: 132px;
 
  }
 
}
 

	
 

	
 
/*
 
 * Callout for 2.3.2 docs
 
 *
 
 * Only appears below page headers (not on the homepage). The homepage gets its
 
 * own link with the masthead links.
 
 */
 

	
 
.bs-old-docs {
 
  padding: 15px 20px;
 
  color: #777;
 
  background-color: #fafafa;
 
  border-top: 1px solid #fff;
 
  border-bottom: 1px solid #e5e5e5;
 
}
 
.bs-old-docs strong {
 
  color: #555;
 
}
 

	
 

	
 
/*
 
 * Side navigation
 
 *
 
 * Scrollspy and affixed enhanced navigation to highlight sections and secondary
 
 * sections of docs content.
 
 */
 

	
 
/* By default it's not affixed in mobile views, so undo that */
 
.bs-sidebar.affix {
 
  position: static;
 
}
 

	
 
/* First level of nav */
 
.bs-sidenav {
 
  margin-top: 30px;
 
  margin-bottom: 30px;
 
  padding-top:    10px;
 
  padding-bottom: 10px;
 
  text-shadow: 0 1px 0 #fff;
 
  background-color: #f7f5fa;
 
  border-radius: 5px;
 
}
 

	
 
/* All levels of nav */
 
.bs-sidebar .nav > li > a {
 
  display: block;
 
  color: #716b7a;
 
  padding: 5px 20px;
 
}
 
.bs-sidebar .nav > li > a:hover,
 
.bs-sidebar .nav > li > a:focus {
 
  text-decoration: none;
 
  background-color: #e5e3e9;
 
  border-right: 1px solid #dbd8e0;
 
}
 
.bs-sidebar .nav > .active > a,
 
.bs-sidebar .nav > .active:hover > a,
 
.bs-sidebar .nav > .active:focus > a {
 
  font-weight: bold;
 
  color: #563d7c;
 
  background-color: transparent;
 
  border-right: 1px solid #563d7c;
 
}
 

	
 
/* Nav: second level (shown on .active) */
 
.bs-sidebar .nav .nav {
 
  display: none; /* Hide by default, but at >768px, show it */
 
  margin-bottom: 8px;
 
}
 
.bs-sidebar .nav .nav > li > a {
 
  padding-top:    3px;
 
  padding-bottom: 3px;
 
  padding-left: 30px;
 
  font-size: 90%;
 
}
 

	
 
/* Show and affix the side nav when space allows it */
 
@media screen and (min-width: 992px) {
 
  .bs-sidebar .nav > .active > ul {
 
    display: block;
 
  }
 
  /* Widen the fixed sidebar */
 
  .bs-sidebar.affix,
 
  .bs-sidebar.affix-bottom {
 
    width: 213px;
 
  }
 
  .bs-sidebar.affix {
 
    position: fixed; /* Undo the static from mobile first approach */
 
    top: 80px;
 
  }
 
  .bs-sidebar.affix-bottom {
 
    position: absolute; /* Undo the static from mobile first approach */
 
  }
 
  .bs-sidebar.affix-bottom .bs-sidenav,
 
  .bs-sidebar.affix .bs-sidenav {
 
    margin-top: 0;
 
    margin-bottom: 0;
 
  }
 
}
 
@media screen and (min-width: 1200px) {
 
  /* Widen the fixed sidebar again */
 
  .bs-sidebar.affix-bottom,
 
  .bs-sidebar.affix {
 
    width: 263px;
 
  }
 
}
 

	
 

	
 
/*
 
 * Docs sections
 
 *
 
 * Content blocks for each component or feature.
 
 */
 

	
 
/* Space things out */
 
.bs-docs-section + .bs-docs-section {
 
  padding-top: 40px;
 
}
 

	
 
/* Janky fix for preventing navbar from overlapping */
 
h1[id] {
 
  padding-top: 80px;
 
  margin-top: -45px;
 
}
 

	
 

	
 
/*
 
 * Callouts
 
 *
 
 * Not quite alerts, but custom and helpful notes for folks reading the docs.
 
 * Requires a base and modifier class.
 
 */
 

	
 
/* Common styles for all types */
 
.bs-callout {
 
  margin: 20px 0;
 
  padding: 15px 30px 15px 15px;
 
  border-left: 5px solid #eee;
 
}
 
.bs-callout h4 {
 
  margin-top: 0;
 
}
 
.bs-callout p:last-child {
 
  margin-bottom: 0;
 
}
 
.bs-callout code,
 
.bs-callout .highlight {
 
  background-color: #fff;
 
}
 

	
 
/* Variations */
 
.bs-callout-danger {
 
  background-color: #fcf2f2;
 
  border-color: #dFb5b4;
 
}
 
.bs-callout-warning {
 
  background-color: #fefbed;
 
  border-color: #f1e7bc;
 
}
 
.bs-callout-info {
 
  background-color: #f0f7fd;
 
  border-color: #d0e3f0;
 
}
 

	
 

	
 
/*
 
 * Grid examples
 
 *
 
 * Highlight the grid columns within the docs so folks can see their padding,
 
 * alignment, sizing, etc.
 
 */
 

	
 
.show-grid {
 
  margin-bottom: 15px;
 
}
 
.show-grid [class^="col-"] {
 
  padding-top: 10px;
 
  padding-bottom: 10px;
 
  background-color: #eee;
 
  border: 1px solid #ddd;
 
  background-color: rgba(86,61,124,.15);
 
  border: 1px solid rgba(86,61,124,.2);
 
}
 

	
 

	
 
/*
 
 * Examples
 
 *
 
 * Isolated sections of example content for each component or feature. Usually
 
 * followed by a code snippet.
 
 */
 

	
 
.bs-example {
 
  position: relative;
 
  padding: 45px 15px 15px;
 
  margin: 0 -15px 15px;
 
  background-color: #fafafa;
 
  box-shadow: inset 0 3px 6px rgba(0,0,0,.05);
 
  border-color: #e5e5e5 #eee #eee;
 
  border-style: solid;
 
  border-width: 1px 0;
 
}
 
/* Echo out a label for the example */
 
.bs-example:after {
 
  content: "Example";
 
  position: absolute;
 
  top:  15px;
 
  left: 15px;
 
  font-size: 12px;
 
  font-weight: bold;
 
  color: #bbb;
 
  text-transform: uppercase;
 
  letter-spacing: 1px;
 
}
 

	
 
/* Tweak display of the code snippets when following an example */
 
.bs-example + .highlight {
 
  margin: -15px -15px 15px;
 
  border-radius: 0;
 
  border-width: 0 0 1px;
 
}
 

	
 
/* Make the examples and snippets not full-width */
 
@media screen and (min-width: 768px) {
 
  .bs-example {
 
    margin-left: 0;
 
    margin-right: 0;
 
    background-color: #fff;
 
    border-width: 1px;
 
    border-color: #ddd;
 
    border-radius: 4px 4px 0 0;
 
    box-shadow: none;
 
  }
 
  .bs-example + .highlight {
 
    margin-top: -16px;
 
    margin-left: 0;
 
    margin-right: 0;
 
    border-width: 1px;
 
    border-bottom-left-radius: 4px;
 
    border-bottom-right-radius: 4px;
 
  }
 
}
 

	
 
/* Tweak content of examples for optimum awesome */
 
.bs-example > p:last-child,
 
.bs-example > ul:last-child,
 
.bs-example > ol:last-child,
 
.bs-example > blockquote:last-child,
 
.bs-example > .form-control:last-child,
 
.bs-example > .table:last-child,
 
.bs-example > .navbar:last-child,
 
.bs-example > .jumbotron:last-child,
 
.bs-example > .alert:last-child,
 
.bs-example > .panel:last-child,
 
.bs-example > .list-group:last-child,
 
.bs-example > .well:last-child,
 
.bs-example > .progress:last-child,
 
.bs-example > .table-responsive:last-child > .table {
 
  margin-bottom: 0;
 
}
 
.bs-example > p > .close {
 
  float: none;
 
}
 

	
 
/* Typography */
 
.bs-example-type .table td:last-child {
 
  color: #999;
 
  vertical-align: middle;
 
}
 
.bs-example-type .table td {
 
  padding: 15px 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;
 
}
 

	
 
/* Images */
 
.bs-example > .img-circle,
 
.bs-example > .img-rounded,
 
.bs-example > .img-thumbnail {
 
  margin: 5px;
 
}
 

	
 
/* Buttons */
 
.bs-example > .btn,
 
.bs-example > .btn-group {
 
  margin-top: 5px;
 
  margin-bottom: 5px;
 
}
 
.bs-example > .btn-toolbar + .btn-toolbar {
 
  margin-top: 10px;
 
}
 

	
 
/* Forms */
 
.bs-example-control-sizing select,
 
.bs-example-control-sizing input[type="text"] + input[type="text"] {
 
  margin-top: 10px;
 
}
 
.bs-example-form .input-group {
 
  margin-bottom: 10px;
 
}
 
.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-left: 0;
 
  margin-right: 0;
 
}
 
.bs-navbar-top-example {
 
  padding-bottom: 45px;
 
}
 
.bs-navbar-top-example:after {
 
  top: auto;
 
  bottom: 15px;
 
}
 
.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;
 
  }
 
  .bs-navbar-top-example {
 
    border-radius: 0 0 4px 4px;
 
  }
 
  .bs-navbar-bottom-example {
 
    border-radius: 4px 4px 0 0;
 
  }
 
}
 

	
 
/* Pagination */
 
.bs-example .pagination {
 
  margin-top: 10px;
 
  margin-bottom: 10px;
 
}
 

	
 
/* 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;
 
  left: auto;
 
  bottom: auto;
 
  z-index: 1;
 
  display: block;
 
}
 
.bs-example-modal .modal-dialog {
 
  left: auto;
 
  margin-left: auto;
 
  margin-right: auto;
 
}
 

	
 
/* Example dropdowns */
 
.bs-example > .dropdown > .dropdown-menu {
 
  position: static;
 
  display: block;
 
  margin-bottom: 5px;
 
}
 

	
 
/* Example tabbable tabs */
 
.bs-example-tabs .nav-tabs {
 
  margin-bottom: 15px;
 
}
 

	
 
/* Tooltips */
 
.bs-example-tooltips {
 
  text-align: center;
 
}
 
.bs-example-tooltips > .btn {
 
  margin-top: 5px;
 
  margin-bottom: 5px;
 
}
 

	
 
/* Popovers */
 
.bs-example-popover {
 
  padding-bottom: 24px;
 
  background-color: #f9f9f9;
 
}
 
.bs-example-popover .popover {
 
  position: relative;
 
  display: block;
 
  float: left;
 
  width: 260px;
 
  margin: 20px;
 
}
 

	
 
/* Scrollspy demo on fixed height div */
 
.scrollspy-example {
 
  position: relative;
 
  height: 200px;
 
  margin-top: 10px;
 
  overflow: auto;
 
}
 

	
 

	
 
/*
 
 * Code snippets
 
 *
 
 * Generated via Pygments and Jekyll, these are snippets of HTML, CSS, and JS.
 
 */
 

	
 
.highlight {
 
  display: none; /* hidden by default, until >480px */
 
  padding: 9px 14px;
 
  margin-bottom: 14px;
 
  background-color: #f7f7f9;
 
  border: 1px solid #e1e1e8;
 
  border-radius: 4px;
 
}
 
.highlight pre {
 
  padding: 0;
 
  margin-top: 0;
 
  margin-bottom: 0;
 
  background-color: transparent;
 
  border: 0;
 
  white-space: nowrap;
 
}
 
.highlight pre code {
 
  font-size: inherit;
 
  color: #333; /* Effectively the base text color */
 
}
 
.highlight pre .lineno {
 
  display: inline-block;
 
  width: 22px;
 
  padding-right: 5px;
 
  margin-right: 10px;
 
  text-align: right;
 
  color: #bebec5;
 
}
 

	
 
/* Show code snippets when we have the space */
 
@media screen and (min-width: 481px) {
 
  .highlight {
 
    display: block;
 
  }
 
}
 

	
 

	
 
/*
 
 * Responsive tests
 
 *
 
 * Generate a set of tests to show the responsive utilities in action.
 
 */
 

	
 
/* 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: 5px;
 
}
 
.responsive-utilities-test .col-xs-6 {
 
  margin-bottom: 10px;
 
}
 
.responsive-utilities-test span {
 
  padding: 15px 10px;
 
  font-size: 14px;
 
  font-weight: bold;
 
  line-height: 1.1;
 
  text-align: center;
 
  border-radius: 4px;
 
}
 
.visible-on .col-xs-6 .hidden-xs,
 
.visible-on .col-xs-6 .hidden-sm,
 
.visible-on .col-xs-6 .hidden-md,
 
.visible-on .col-xs-6 .hidden-lg,
 
.hidden-on .col-xs-6 .visible-xs,
 
.hidden-on .col-xs-6 .visible-sm,
 
.hidden-on .col-xs-6 .visible-md,
 
.hidden-on .col-xs-6 .visible-lg {
 
  color: #999;
 
  border: 1px solid #ddd;
 
}
 
.visible-on .col-xs-6 .visible-xs,
 
.visible-on .col-xs-6 .visible-sm,
 
.visible-on .col-xs-6 .visible-md,
 
.visible-on .col-xs-6 .visible-lg,
 
.hidden-on .col-xs-6 .hidden-xs,
 
.hidden-on .col-xs-6 .hidden-sm,
 
.hidden-on .col-xs-6 .hidden-md,
 
.hidden-on .col-xs-6 .hidden-lg {
 
  color: #468847;
 
  background-color: #dff0d8;
 
  border: 1px solid #d6e9c6;
 
}
 

	
 

	
 
/*
 
 * Glyphicons
 
 *
 
 * Special styles for displaying the icons and their classes in the docs.
 
 */
 

	
 
.bs-glyphicons {
 
  padding-left: 0;
 
  padding-bottom: 1px;
 
  margin-bottom: 20px;
 
  list-style: none;
 
  overflow: hidden;
 
}
 
.bs-glyphicons li {
 
  float: left;
 
  width: 25%;
 
  height: 115px;
 
  padding: 10px;
 
  margin: 0 -1px -1px 0;
 
  font-size: 12px;
 
  line-height: 1.4;
 
  text-align: center;
 
  border: 1px solid #ddd;
 
}
 
.bs-glyphicons .glyphicon {
 
  display: block;
 
  margin: 5px auto 10px;
 
  font-size: 24px;
 
}
 
.bs-glyphicons li:hover {
 
  background-color: rgba(86,61,124,.1);
 
}
 

	
 
@media (min-width: 768px) {
 
  .bs-glyphicons li {
 
    width: 12.5%;
 
  }
 
}
 

	
 

	
 
/*
 
 * Customizer
 
 *
 
 * Since this is so form control heavy, we have quite a few styles to customize
 
 * the display of inputs, headings, and more. Also included are all the download
 
 * buttons and actions.
 
 */
 

	
 
.bs-customizer .toggle {
 
  float: right;
 
  margin-top: 85px; /* On account of ghetto navbar fix */
 
}
 

	
 
/* Headings and form contrls */
 
.bs-customizer label {
 
  margin-top: 10px;
 
  font-weight: 500;
 
  color: #444;
 
}
 
.bs-customizer h2 {
 
  margin-top: 0;
 
  margin-bottom: 5px;
 
  padding-top: 30px;
 
}
 
.bs-customizer h4 {
 
  margin-top: 15px;
 
}
 
.bs-customizer input[type="text"] {
 
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
 
  background-color: #fafafa;
 
}
 
.bs-customizer .help-block {
 
  font-size: 12px;
 
}
 

	
 
/* For the variables, use regular weight */
 
#less-section label {
 
  font-weight: normal;
 
}
 

	
 
/* Downloads */
 
.bs-customize-download .btn-outline {
 
  padding: 20px;
 
}
 

	
 
/* Error handling */
 
.bs-customizer-alert {
 
  position: fixed;
 
  top: 51px;
 
  left: 0;
 
  right: 0;
 
  z-index: 1030;
 
  padding: 15px 0;
 
  color: #fff;
 
  background-color: #d9534f;
 
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
 
  border-bottom: 1px solid #b94441;
 
}
 
.bs-customizer-alert .close {
 
  margin-top: -4px;
 
  font-size: 24px;
 
}
 
.bs-customizer-alert p {
 
  margin-bottom: 0;
 
}
 
.bs-customizer-alert .glyphicon {
 
  margin-right: 5px;
 
}
 
.bs-customizer-alert pre {
 
  margin: 10px 0 0;
 
  color: #fff;
 
  background-color: #a83c3a;
 
  border-color: #973634;
 
  box-shadow: inset 0 2px 4px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
 
}
 

	
 

	
 
/*
 
 * Miscellaneous
 
 *
 
 * Odds and ends for optimum docs display.
 
 */
 

	
 
/* Examples gallery: space out content better */
 
.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: rgba(82,168,236,.8);
 
  outline: 0;
 
  outline: thin dotted \9; /* IE6-9 */
 
  -moz-box-shadow: 0 0 8px rgba(82,168,236,.6);
 
       box-shadow: 0 0 8px rgba(82,168,236,.6);
 
}
 

	
 
/* Better spacing on download options in getting started */
 
.bs-docs-dl-options h4 {
 
  margin-top: 15px;
 
  margin-bottom: 5px;
 
}
bootstrap-3.0.0/assets/css/pygments-manni.css
Show inline comments
 
new file 100644
 
.hll { background-color: #ffffcc }
 
 /*{ background: #f0f3f3; }*/
 
.c { color: #999; } /* Comment */
 
.err { color: #AA0000; background-color: #FFAAAA } /* Error */
 
.k { color: #006699; } /* Keyword */
 
.o { color: #555555 } /* Operator */
 
.cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
 
.cp { color: #009999 } /* Comment.Preproc */
 
.c1 { color: #999; } /* Comment.Single */
 
.cs { color: #999; } /* Comment.Special */
 
.gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
 
.ge { font-style: italic } /* Generic.Emph */
 
.gr { color: #FF0000 } /* Generic.Error */
 
.gh { color: #003300; } /* Generic.Heading */
 
.gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
 
.go { color: #AAAAAA } /* Generic.Output */
 
.gp { color: #000099; } /* Generic.Prompt */
 
.gs { } /* Generic.Strong */
 
.gu { color: #003300; } /* Generic.Subheading */
 
.gt { color: #99CC66 } /* Generic.Traceback */
 
.kc { color: #006699; } /* Keyword.Constant */
 
.kd { color: #006699; } /* Keyword.Declaration */
 
.kn { color: #006699; } /* Keyword.Namespace */
 
.kp { color: #006699 } /* Keyword.Pseudo */
 
.kr { color: #006699; } /* Keyword.Reserved */
 
.kt { color: #007788; } /* Keyword.Type */
 
.m { color: #FF6600 } /* Literal.Number */
 
.s { color: #d44950 } /* Literal.String */
 
.na { color: #4f9fcf } /* Name.Attribute */
 
.nb { color: #336666 } /* Name.Builtin */
 
.nc { color: #00AA88; } /* Name.Class */
 
.no { color: #336600 } /* Name.Constant */
 
.nd { color: #9999FF } /* Name.Decorator */
 
.ni { color: #999999; } /* Name.Entity */
 
.ne { color: #CC0000; } /* Name.Exception */
 
.nf { color: #CC00FF } /* Name.Function */
 
.nl { color: #9999FF } /* Name.Label */
 
.nn { color: #00CCFF; } /* Name.Namespace */
 
.nt { color: #2f6f9f; } /* Name.Tag */
 
.nv { color: #003333 } /* Name.Variable */
 
.ow { color: #000000; } /* Operator.Word */
 
.w { color: #bbbbbb } /* Text.Whitespace */
 
.mf { color: #FF6600 } /* Literal.Number.Float */
 
.mh { color: #FF6600 } /* Literal.Number.Hex */
 
.mi { color: #FF6600 } /* Literal.Number.Integer */
 
.mo { color: #FF6600 } /* Literal.Number.Oct */
 
.sb { color: #CC3300 } /* Literal.String.Backtick */
 
.sc { color: #CC3300 } /* Literal.String.Char */
 
.sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
 
.s2 { color: #CC3300 } /* Literal.String.Double */
 
.se { color: #CC3300; } /* Literal.String.Escape */
 
.sh { color: #CC3300 } /* Literal.String.Heredoc */
 
.si { color: #AA0000 } /* Literal.String.Interpol */
 
.sx { color: #CC3300 } /* Literal.String.Other */
 
.sr { color: #33AAAA } /* Literal.String.Regex */
 
.s1 { color: #CC3300 } /* Literal.String.Single */
 
.ss { color: #FFCC33 } /* Literal.String.Symbol */
 
.bp { color: #336666 } /* Name.Builtin.Pseudo */
 
.vc { color: #003333 } /* Name.Variable.Class */
 
.vg { color: #003333 } /* Name.Variable.Global */
 
.vi { color: #003333 } /* Name.Variable.Instance */
 
.il { color: #FF6600 } /* Literal.Number.Integer.Long */
 

	
 
.css .o,
 
.css .o + .nt,
 
.css .nt + .nt { color: #999; }
bootstrap-3.0.0/assets/ico/apple-touch-icon-114-precomposed.png
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
bootstrap-3.0.0/assets/ico/apple-touch-icon-144-precomposed.png
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
bootstrap-3.0.0/assets/ico/apple-touch-icon-57-precomposed.png
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
bootstrap-3.0.0/assets/ico/apple-touch-icon-72-precomposed.png
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
bootstrap-3.0.0/assets/ico/favicon.png
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
bootstrap-3.0.0/assets/js/application.js
Show inline comments
 
new file 100644
 
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
 
// IT'S ALL JUST JUNK FOR OUR DOCS!
 
// ++++++++++++++++++++++++++++++++++++++++++
 

	
 
!function ($) {
 

	
 
  $(function(){
 

	
 
    var $window = $(window)
 
    var $body   = $(document.body)
 

	
 
    var navHeight = $('.navbar').outerHeight(true) + 10
 

	
 
    $body.scrollspy({
 
      target: '.bs-sidebar',
 
      offset: navHeight
 
    })
 

	
 
    $window.on('load', function () {
 
      $body.scrollspy('refresh')
 
    })
 

	
 
    $('.bs-docs-container [href=#]').click(function (e) {
 
      e.preventDefault()
 
    })
 

	
 
    // back to top
 
    setTimeout(function () {
 
      var $sideBar = $('.bs-sidebar')
 

	
 
      $sideBar.affix({
 
        offset: {
 
          top: function () {
 
            var offsetTop      = $sideBar.offset().top
 
            var sideBarMargin  = parseInt($sideBar.children(0).css('margin-top'), 10)
 
            var navOuterHeight = $('.bs-docs-nav').height()
 

	
 
            return (this.top = offsetTop - navOuterHeight - sideBarMargin)
 
          }
 
        , bottom: function () {
 
            return (this.bottom = $('.bs-footer').outerHeight(true))
 
          }
 
        }
 
      })
 
    }, 100)
 

	
 
    setTimeout(function () {
 
      $('.bs-top').affix()
 
    }, 100)
 

	
 
    // tooltip demo
 
    $('.tooltip-demo').tooltip({
 
      selector: "[data-toggle=tooltip]",
 
      container: "body"
 
    })
 

	
 
    $('.tooltip-test').tooltip()
 
    $('.popover-test').popover()
 

	
 
    $('.bs-docs-navbar').tooltip({
 
      selector: "a[data-toggle=tooltip]",
 
      container: ".bs-docs-navbar .nav"
 
    })
 

	
 
    // popover demo
 
    $("[data-toggle=popover]")
 
      .popover()
 

	
 
    // button state demo
 
    $('#fat-btn')
 
      .click(function () {
 
        var btn = $(this)
 
        btn.button('loading')
 
        setTimeout(function () {
 
          btn.button('reset')
 
        }, 3000)
 
      })
 

	
 
    // carousel demo
 
    $('.bs-docs-carousel-example').carousel()
 
})
 

	
 
}(window.jQuery)
bootstrap-3.0.0/assets/js/customizer.js
Show inline comments
 
new file 100644
 
window.onload = function () { // wait for load in a dumb way because B-0
 
  var cw = '/*!\n * Bootstrap v3.0.0\n *\n * Copyright 2013 Twitter, Inc\n * Licensed under the Apache License v2.0\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Designed and built with all the love in the world @twitter by @mdo and @fat.\n */\n\n'
 

	
 
  function showError(msg, err) {
 
    $('<div id="bsCustomizerAlert" class="bs-customizer-alert">\
 
        <div class="container">\
 
          <a href="#bsCustomizerAlert" data-dismiss="alert" class="close pull-right">&times;</a>\
 
          <p class="bs-customizer-alert-text"><span class="glyphicon glyphicon-warning-sign"></span>' + msg + '</p>' +
 
          (err.extract ? '<pre class="bs-customizer-alert-extract">' + err.extract.join('\n') + '</pre>' : '') + '\
 
        </div>\
 
      </div>').appendTo('body').alert()
 
    throw err
 
  }
 

	
 
  function showCallout(msg, showUpTop) {
 
    var callout = $('<div class="bs-callout bs-callout-danger">\
 
       <h4>Attention!</h4>\
 
      <p>' + msg + '</p>\
 
    </div>')
 

	
 
    if (showUpTop) {
 
      callout.appendTo('.bs-docs-container')
 
    } else {
 
      callout.insertAfter('.bs-customize-download')
 
    }
 
  }
 

	
 
  function getQueryParam(key) {
 
    key = key.replace(/[*+?^$.\[\]{}()|\\\/]/g, "\\$&"); // escape RegEx meta chars
 
    var match = location.search.match(new RegExp("[?&]"+key+"=([^&]+)(&|$)"));
 
    return match && decodeURIComponent(match[1].replace(/\+/g, " "));
 
  }
 

	
 
  function createGist(configData) {
 
    var data = {
 
      "description": "Bootstrap Customizer Config",
 
      "public": true,
 
      "files": {
 
        "config.json": {
 
          "content": JSON.stringify(configData, null, 2)
 
        }
 
      }
 
    }
 
    $.ajax({
 
      url: 'https://api.github.com/gists',
 
      type: 'POST',
 
      dataType: 'json',
 
      data: JSON.stringify(data)
 
    })
 
    .success(function(result) {
 
      history.replaceState(false, document.title, window.location.origin + window.location.pathname + '?id=' + result.id)
 
    })
 
    .error(function(err) {
 
      showError('<strong>Ruh roh!</strong> Could not save gist file, configuration not saved.', err)
 
    })
 
  }
 

	
 
  function getCustomizerData() {
 
    var vars = {}
 

	
 
    $('#less-variables-section input')
 
        .each(function () {
 
          $(this).val() && (vars[ $(this).prev().text() ] = $(this).val())
 
        })
 

	
 
    var data = {
 
      vars: vars,
 
      css: $('#less-section input:checked')  .map(function () { return this.value }).toArray(),
 
      js:  $('#plugin-section input:checked').map(function () { return this.value }).toArray()
 
    }
 

	
 
    if ($.isEmptyObject(data.vars) && !data.css.length && !data.js.length) return
 

	
 
    return data
 
  }
 

	
 
  function parseUrl() {
 
    var id = getQueryParam('id')
 

	
 
    if (!id) return
 

	
 
    $.ajax({
 
      url: 'https://api.github.com/gists/' + id,
 
      type: 'GET',
 
      dataType: 'json'
 
    })
 
    .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])
 
        }
 
      }
 
    })
 
    .error(function(err) {
 
      showError('Error fetching bootstrap config file', err)
 
    })
 
  }
 

	
 
  function generateZip(css, js, fonts, complete) {
 
    if (!css && !js) return showError('<strong>Ruh roh!</strong> No Bootstrap files selected.', new Error('no Bootstrap'))
 

	
 
    var zip = new JSZip()
 

	
 
    if (css) {
 
      var cssFolder = zip.folder('css')
 
      for (var fileName in css) {
 
        cssFolder.file(fileName, css[fileName])
 
      }
 
    }
 

	
 
    if (js) {
 
      var jsFolder = zip.folder('js')
 
      for (var fileName in js) {
 
        jsFolder.file(fileName, js[fileName])
 
      }
 
    }
 

	
 
    if (fonts) {
 
      var fontsFolder = zip.folder('fonts')
 
      for (var fileName in fonts) {
 
        fontsFolder.file(fileName, fonts[fileName])
 
      }
 
    }
 

	
 
    var content = zip.generate({type:"blob"})
 

	
 
    complete(content)
 
  }
 

	
 
  function generateCustomCSS(vars) {
 
    var result = ''
 

	
 
    for (var key in vars) {
 
      result += key + ': ' + vars[key] + ';\n'
 
    }
 

	
 
    return result + '\n\n'
 
  }
 

	
 
  function generateFonts() {
 
    var glyphicons = $('#less-section [value="glyphicons.less"]:checked')
 
    if (glyphicons.length) {
 
      return __fonts
 
    }
 
  }
 

	
 
  function generateCSS() {
 
    var $checked = $('#less-section input:checked')
 

	
 
    if (!$checked.length) return false
 

	
 
    var result = {}
 
    var vars = {}
 
    var css = ''
 

	
 
    $('#less-variables-section input')
 
        .each(function () {
 
          $(this).val() && (vars[ $(this).prev().text() ] = $(this).val())
 
        })
 

	
 
    css += __less['variables.less']
 
    if (vars) css += generateCustomCSS(vars)
 
    css += __less['mixins.less']
 
    css += __less['normalize.less']
 
    css += __less['scaffolding.less']
 
    css += $checked
 
      .map(function () { return __less[this.value] })
 
      .toArray()
 
      .join('\n')
 

	
 
    css = css.replace(/@import[^\n]*/gi, '') //strip any imports
 

	
 
    try {
 
      var parser = new less.Parser({
 
          paths: ['variables.less', 'mixins.less']
 
        , optimization: 0
 
        , filename: 'bootstrap.css'
 
      }).parse(css, function (err, tree) {
 
        if (err) {
 
          return showError('<strong>Ruh roh!</strong> Could not parse less files.', err)
 
        }
 
        result = {
 
          'bootstrap.css'     : cw + tree.toCSS(),
 
          'bootstrap.min.css' : cw + tree.toCSS({ compress: true })
 
        }
 
      })
 
    } catch (err) {
 
      return showError('<strong>Ruh roh!</strong> Could not parse less files.', err)
 
    }
 

	
 
    return result
 
  }
 

	
 
  function generateJavascript() {
 
    var $checked = $('#plugin-section input:checked')
 
    if (!$checked.length) return false
 

	
 
    var js = $checked
 
      .map(function () { return __js[this.value] })
 
      .toArray()
 
      .join('\n')
 

	
 
    return {
 
      'bootstrap.js': js,
 
      'bootstrap.min.js': cw + uglify(js)
 
    }
 
  }
 

	
 
  var inputsComponent = $('#less-section input')
 
  var inputsPlugin    = $('#plugin-section input')
 
  var inputsVariables = $('#less-variables-section input')
 

	
 
  $('#less-section .toggle').on('click', function (e) {
 
    e.preventDefault()
 
    inputsComponent.prop('checked', !inputsComponent.is(':checked'))
 
  })
 

	
 
  $('#plugin-section .toggle').on('click', function (e) {
 
    e.preventDefault()
 
    inputsPlugin.prop('checked', !inputsPlugin.is(':checked'))
 
  })
 

	
 
  $('#less-variables-section .toggle').on('click', function (e) {
 
    e.preventDefault()
 
    inputsVariables.val('')
 
  })
 

	
 
  $('[data-dependencies]').on('click', function () {
 
    if (!$(this).is(':checked')) return
 
    var dependencies = this.getAttribute('data-dependencies')
 
    if (!dependencies) return
 
    dependencies = dependencies.split(',')
 
    for (var i = 0; i < dependencies.length; i++) {
 
      var dependency = $('[value="' + dependencies[i] + '"]')
 
      dependency && dependency.prop('checked', true)
 
    }
 
  })
 

	
 
  $('[data-dependents]').on('click', function () {
 
    if ($(this).is(':checked')) return
 
    var dependents = this.getAttribute('data-dependents')
 
    if (!dependents) return
 
    dependents = dependents.split(',')
 
    for (var i = 0; i < dependents.length; i++) {
 
      var dependent = $('[value="' + dependents[i] + '"]')
 
      dependent && dependent.prop('checked', false)
 
    }
 
  })
 

	
 
  var $compileBtn = $('#btn-compile')
 
  var $downloadBtn = $('#btn-download')
 

	
 
  $compileBtn.on('click', function (e) {
 
    e.preventDefault()
 

	
 
    $compileBtn.attr('disabled', 'disabled')
 

	
 
    generateZip(generateCSS(), generateJavascript(), generateFonts(), function (blob) {
 
      $compileBtn.removeAttr('disabled')
 
      saveAs(blob, "bootstrap.zip")
 
      createGist(getCustomizerData())
 
    })
 
  })
 

	
 
  // browser support alerts
 
  if (!window.URL && navigator.userAgent.toLowerCase().indexOf('safari') != -1) {
 
    showCallout("Looks like you're using safari, which sadly doesn't have the best support\
 
                 for HTML5 blobs. Because of this your file will be downloaded with the name <code>\"untitled\"</code>.\
 
                 However, if you check your downloads folder, just rename this <code>\"untitled\"</code> file\
 
                 to <code>\"bootstrap.zip\"</code> and you should be good to go!")
 
  } else if (!window.URL && !window.webkitURL) {
 
    $('.bs-docs-section, .bs-sidebar').css('display', 'none')
 

	
 
    showCallout("Looks like your current browser doesn't support the Bootstrap Customizer. Please take a second\
 
                to <a href=\"https://www.google.com/intl/en/chrome/browser/\"> upgrade to a more modern browser</a>.", true)
 
  }
 

	
 
  parseUrl()
 
}
bootstrap-3.0.0/assets/js/filesaver.js
Show inline comments
 
new file 100644
 
/* Blob.js
 
 * A Blob implementation.
 
 * 2013-06-20
 
 *
 
 * By Eli Grey, http://eligrey.com
 
 * By Devin Samarin, https://github.com/eboyjr
 
 * License: X11/MIT
 
 *   See LICENSE.md
 
 */
 

	
 
/*global self, unescape */
 
/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true,
 
  plusplus: true */
 

	
 
/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */
 

	
 
if (typeof Blob !== "function" || typeof URL === "undefined")
 
if (typeof Blob === "function" && typeof webkitURL !== "undefined") self.URL = webkitURL;
 
else var Blob = (function (view) {
 
  "use strict";
 

	
 
  var BlobBuilder = view.BlobBuilder || view.WebKitBlobBuilder || view.MozBlobBuilder || view.MSBlobBuilder || (function(view) {
 
    var
 
        get_class = function(object) {
 
        return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1];
 
      }
 
      , FakeBlobBuilder = function BlobBuilder() {
 
        this.data = [];
 
      }
 
      , FakeBlob = function Blob(data, type, encoding) {
 
        this.data = data;
 
        this.size = data.length;
 
        this.type = type;
 
        this.encoding = encoding;
 
      }
 
      , FBB_proto = FakeBlobBuilder.prototype
 
      , FB_proto = FakeBlob.prototype
 
      , FileReaderSync = view.FileReaderSync
 
      , FileException = function(type) {
 
        this.code = this[this.name = type];
 
      }
 
      , file_ex_codes = (
 
          "NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR "
 
        + "NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR"
 
      ).split(" ")
 
      , file_ex_code = file_ex_codes.length
 
      , real_URL = view.URL || view.webkitURL || view
 
      , real_create_object_URL = real_URL.createObjectURL
 
      , real_revoke_object_URL = real_URL.revokeObjectURL
 
      , URL = real_URL
 
      , btoa = view.btoa
 
      , atob = view.atob
 

	
 
      , ArrayBuffer = view.ArrayBuffer
 
      , Uint8Array = view.Uint8Array
 
    ;
 
    FakeBlob.fake = FB_proto.fake = true;
 
    while (file_ex_code--) {
 
      FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1;
 
    }
 
    if (!real_URL.createObjectURL) {
 
      URL = view.URL = {};
 
    }
 
    URL.createObjectURL = function(blob) {
 
      var
 
          type = blob.type
 
        , data_URI_header
 
      ;
 
      if (type === null) {
 
        type = "application/octet-stream";
 
      }
 
      if (blob instanceof FakeBlob) {
 
        data_URI_header = "data:" + type;
 
        if (blob.encoding === "base64") {
 
          return data_URI_header + ";base64," + blob.data;
 
        } else if (blob.encoding === "URI") {
 
          return data_URI_header + "," + decodeURIComponent(blob.data);
 
        } if (btoa) {
 
          return data_URI_header + ";base64," + btoa(blob.data);
 
        } else {
 
          return data_URI_header + "," + encodeURIComponent(blob.data);
 
        }
 
      } else if (real_create_object_URL) {
 
        return real_create_object_URL.call(real_URL, blob);
 
      }
 
    };
 
    URL.revokeObjectURL = function(object_URL) {
 
      if (object_URL.substring(0, 5) !== "data:" && real_revoke_object_URL) {
 
        real_revoke_object_URL.call(real_URL, object_URL);
 
      }
 
    };
 
    FBB_proto.append = function(data/*, endings*/) {
 
      var bb = this.data;
 
      // decode data to a binary string
 
      if (Uint8Array && (data instanceof ArrayBuffer || data instanceof Uint8Array)) {
 
        var
 
            str = ""
 
          , buf = new Uint8Array(data)
 
          , i = 0
 
          , buf_len = buf.length
 
        ;
 
        for (; i < buf_len; i++) {
 
          str += String.fromCharCode(buf[i]);
 
        }
 
        bb.push(str);
 
      } else if (get_class(data) === "Blob" || get_class(data) === "File") {
 
        if (FileReaderSync) {
 
          var fr = new FileReaderSync;
 
          bb.push(fr.readAsBinaryString(data));
 
        } else {
 
          // async FileReader won't work as BlobBuilder is sync
 
          throw new FileException("NOT_READABLE_ERR");
 
        }
 
      } else if (data instanceof FakeBlob) {
 
        if (data.encoding === "base64" && atob) {
 
          bb.push(atob(data.data));
 
        } else if (data.encoding === "URI") {
 
          bb.push(decodeURIComponent(data.data));
 
        } else if (data.encoding === "raw") {
 
          bb.push(data.data);
 
        }
 
      } else {
 
        if (typeof data !== "string") {
 
          data += ""; // convert unsupported types to strings
 
        }
 
        // decode UTF-16 to binary string
 
        bb.push(unescape(encodeURIComponent(data)));
 
      }
 
    };
 
    FBB_proto.getBlob = function(type) {
 
      if (!arguments.length) {
 
        type = null;
 
      }
 
      return new FakeBlob(this.data.join(""), type, "raw");
 
    };
 
    FBB_proto.toString = function() {
 
      return "[object BlobBuilder]";
 
    };
 
    FB_proto.slice = function(start, end, type) {
 
      var args = arguments.length;
 
      if (args < 3) {
 
        type = null;
 
      }
 
      return new FakeBlob(
 
          this.data.slice(start, args > 1 ? end : this.data.length)
 
        , type
 
        , this.encoding
 
      );
 
    };
 
    FB_proto.toString = function() {
 
      return "[object Blob]";
 
    };
 
    return FakeBlobBuilder;
 
  }(view));
 

	
 
  return function Blob(blobParts, options) {
 
    var type = options ? (options.type || "") : "";
 
    var builder = new BlobBuilder();
 
    if (blobParts) {
 
      for (var i = 0, len = blobParts.length; i < len; i++) {
 
        builder.append(blobParts[i]);
 
      }
 
    }
 
    return builder.getBlob(type);
 
  };
 
}(self));
 

	
 
/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */
 
var saveAs=saveAs||(navigator.msSaveOrOpenBlob&&navigator.msSaveOrOpenBlob.bind(navigator))||(function(h){"use strict";var r=h.document,l=function(){return h.URL||h.webkitURL||h},e=h.URL||h.webkitURL||h,n=r.createElementNS("http://www.w3.org/1999/xhtml","a"),g=!h.externalHost&&"download" in n,j=function(t){var s=r.createEvent("MouseEvents");s.initMouseEvent("click",true,false,h,0,0,0,0,0,false,false,false,false,0,null);t.dispatchEvent(s)},o=h.webkitRequestFileSystem,p=h.requestFileSystem||o||h.mozRequestFileSystem,m=function(s){(h.setImmediate||h.setTimeout)(function(){throw s},0)},c="application/octet-stream",k=0,b=[],i=function(){var t=b.length;while(t--){var s=b[t];if(typeof s==="string"){e.revokeObjectURL(s)}else{s.remove()}}b.length=0},q=function(t,s,w){s=[].concat(s);var v=s.length;while(v--){var x=t["on"+s[v]];if(typeof x==="function"){try{x.call(t,w||t)}catch(u){m(u)}}}},f=function(t,u){var v=this,B=t.type,E=false,x,w,s=function(){var F=l().createObjectURL(t);b.push(F);return F},A=function(){q(v,"writestart progress write writeend".split(" "))},D=function(){if(E||!x){x=s(t)}if(w){w.location.href=x}else{window.open(x,"_blank")}v.readyState=v.DONE;A()},z=function(F){return function(){if(v.readyState!==v.DONE){return F.apply(this,arguments)}}},y={create:true,exclusive:false},C;v.readyState=v.INIT;if(!u){u="download"}if(g){x=s(t);n.href=x;n.download=u;j(n);v.readyState=v.DONE;A();return}if(h.chrome&&B&&B!==c){C=t.slice||t.webkitSlice;t=C.call(t,0,t.size,c);E=true}if(o&&u!=="download"){u+=".download"}if(B===c||o){w=h}if(!p){D();return}k+=t.size;p(h.TEMPORARY,k,z(function(F){F.root.getDirectory("saved",y,z(function(G){var H=function(){G.getFile(u,y,z(function(I){I.createWriter(z(function(J){J.onwriteend=function(K){w.location.href=I.toURL();b.push(I);v.readyState=v.DONE;q(v,"writeend",K)};J.onerror=function(){var K=J.error;if(K.code!==K.ABORT_ERR){D()}};"writestart progress write abort".split(" ").forEach(function(K){J["on"+K]=v["on"+K]});J.write(t);v.abort=function(){J.abort();v.readyState=v.DONE};v.readyState=v.WRITING}),D)}),D)};G.getFile(u,{create:false},z(function(I){I.remove();H()}),z(function(I){if(I.code===I.NOT_FOUND_ERR){H()}else{D()}}))}),D)}),D)},d=f.prototype,a=function(s,t){return new f(s,t)};d.abort=function(){var s=this;s.readyState=s.DONE;q(s,"abort")};d.readyState=d.INIT=0;d.WRITING=1;d.DONE=2;d.error=d.onwritestart=d.onprogress=d.onwrite=d.onabort=d.onerror=d.onwriteend=null;h.addEventListener("unload",i,false);return a}(self));
...
 
\ No newline at end of file
bootstrap-3.0.0/assets/js/holder.js
Show inline comments
 
new file 100755
 
/*
 

	
 
Holder - 2.0 - client side image placeholders
 
(c) 2012-2013 Ivan Malopinsky / http://imsky.co
 

	
 
Provided under the Apache 2.0 License: http://www.apache.org/licenses/LICENSE-2.0
 
Commercial use requires attribution.
 

	
 
*/
 

	
 
var Holder = Holder || {};
 
(function (app, win) {
 

	
 
var preempted = false,
 
fallback = false,
 
canvas = document.createElement('canvas');
 

	
 
//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,t){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){
 
	a=a.match(/^(\W)?(.*)/);var b=document["getElement"+(a[1]?a[1]=="#"?"ById":"sByClassName":"sByTagName")](a[2]);
 
	var ret=[];	b!=null&&(b.length?ret=b:b.length==0?ret=b:ret=[b]);	return ret;
 
}
 

	
 
//shallow object property extend
 
function extend(a,b){var c={};for(var d in a)c[d]=a[d];for(var e in b)c[e]=b[e];return c}
 

	
 
//hasOwnProperty polyfill
 
if (!Object.prototype.hasOwnProperty)
 
	Object.prototype.hasOwnProperty = function(prop) {
 
		var proto = this.__proto__ || this.constructor.prototype;
 
		return (prop in this) && (!(prop in proto) || proto[prop] !== this[prop]);
 
	}
 

	
 
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))
 
	}
 
}
 

	
 
function draw(ctx, dimensions, template, ratio) {
 
	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 : "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));
 
	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 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);
 
	if (mode == "image") {
 
		el.setAttribute("data-src", src);
 
		el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption);
 
		if (fallback || !holder.auto) {
 
			el.style.width = dimensions.width + "px";
 
			el.style.height = dimensions.height + "px";
 
		}
 
		if (fallback) {
 
			el.style.backgroundColor = theme.background;
 
		} else {
 
			el.setAttribute("src", draw(ctx, dimensions, theme, ratio));
 
		}
 
	} else if (mode == "background") {
 
		if (!fallback) {
 
			el.style.backgroundImage = "url(" + draw(ctx, dimensions, theme, ratio) + ")";
 
			el.style.backgroundSize = dimensions.width + "px " + dimensions.height + "px";
 
		}
 
	} else if (mode == "fluid") {
 
		el.setAttribute("data-src", src);
 
		el.setAttribute("alt", text ? text : theme.text ? theme.text + " [" + dimensions_caption + "]" : dimensions_caption);
 
		if (dimensions.height.substr(-1) == "%") {
 
			el.style.height = dimensions.height
 
		} else {
 
			el.style.height = dimensions.height + "px"
 
		}
 
		if (dimensions.width.substr(-1) == "%") {
 
			el.style.width = dimensions.width
 
		} else {
 
			el.style.width = dimensions.width + "px"
 
		}
 
		if (el.style.display == "inline" || el.style.display == "") {
 
			el.style.display = "block";
 
		}
 
		if (fallback) {
 
			el.style.backgroundColor = theme.background;
 
		} else {
 
			el.holderData = holder;
 
			fluid_images.push(el);
 
			fluid_update(el);
 
		}
 
	}
 
};
 

	
 
function fluid_update(element) {
 
	var images;
 
	if (element.nodeType == null) {
 
		images = fluid_images;
 
	} else {
 
		images = [element]
 
	}
 
	for (i in images) {
 
		var el = images[i]
 
		if (el.holderData) {
 
			var holder = el.holderData;
 
			el.setAttribute("src", draw(ctx, {
 
				height: el.clientHeight,
 
				width: el.clientWidth
 
			}, holder.theme, ratio));
 
		}
 
	}
 
}
 

	
 
function parse_flags(flags, options) {
 

	
 
	var ret = {
 
		theme: settings.themes.gray
 
	}, render = false;
 

	
 
	for (sl = flags.length, j = 0; j < sl; 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.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
 
			ret.theme = options.themes[flag];
 
		} else if (app.flags.text.match(flag)) {
 
			ret.text = app.flags.text.output(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;
 
		}
 
	}
 

	
 
	return render ? ret : false;
 

	
 
};
 

	
 

	
 

	
 
if (!canvas.getContext) {
 
	fallback = true;
 
} else {
 
	if (canvas.toDataURL("image/png")
 
		.indexOf("data:image/png") < 0) {
 
		//Android doesn't support data URI
 
		fallback = true;
 
	} else {
 
		var ctx = canvas.getContext("2d");
 
	}
 
}
 

	
 
var dpr = 1, bsr = 1;
 
	
 
if(!fallback){
 
    dpr = window.devicePixelRatio || 1,
 
    bsr = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
 
}
 

	
 
var ratio = dpr / bsr;
 

	
 
var fluid_images = [];
 

	
 
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
 
		}
 
	},
 
	stylesheet: ".holderjs-fluid {font-size:16px;font-weight:bold;text-align:center;font-family:sans-serif;margin:0}"
 
};
 

	
 

	
 
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$/
 
	}
 
}
 

	
 
for (var flag in app.flags) {
 
	if (!app.flags.hasOwnProperty(flag)) continue;
 
	app.flags[flag].match = function (val) {
 
		return val.match(this.regex)
 
	}
 
}
 

	
 
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) {
 
	var options = extend(settings, o),
 
	    images = [], imageNodes = [], bgnodes = [];
 
	    
 
	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];
 
	}
 

	
 
	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];
 
	}
 

	
 
	preempted = true;
 

	
 
	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 {
 
		    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_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", fluid_update, false);
 
		window.addEventListener("orientationchange", fluid_update, false);
 
	} else {
 
		window.attachEvent("onresize", fluid_update)
 
	}
 
	preempted || app.run();
 
});
 

	
 
if (typeof define === "function" && define.amd) {
 
	define("Holder", [], function () {
 
		return app;
 
	});
 
}
 

	
 
})(Holder, window);
bootstrap-3.0.0/assets/js/html5shiv.js
Show inline comments
 
new file 100644
 
/*
 
 HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
 
*/
 
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
 
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
 
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
 
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
 
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);

Changeset was too big and was cut off... Show full diff anyway

0 comments (0 inline, 0 general)