<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Extend ยท Bootstrap</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content=""> <meta name="author" content=""> <!-- Le styles --> <link href="assets/css/bootstrap.css" rel="stylesheet"> <link href="assets/css/bootstrap-responsive.css" rel="stylesheet"> <link href="assets/css/docs.css" rel="stylesheet"> <link href="assets/js/google-code-prettify/prettify.css" rel="stylesheet"> <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements --> <!--[if lt IE 9]> <script src="assets/js/html5shiv.js"></script> <![endif]--> <!-- Le fav and touch icons --> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="assets/ico/apple-touch-icon-144-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="assets/ico/apple-touch-icon-114-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="assets/ico/apple-touch-icon-72-precomposed.png"> <link rel="apple-touch-icon-precomposed" href="assets/ico/apple-touch-icon-57-precomposed.png"> <link rel="shortcut icon" href="assets/ico/favicon.png"> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-146052-10']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; 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> </head> <body data-spy="scroll" data-target=".bs-docs-sidebar"> <!-- Navbar ================================================== --> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="brand" href="./index.html">Bootstrap</a> <div class="nav-collapse collapse"> <ul class="nav"> <li class=""> <a href="./index.html">Home</a> </li> <li class=""> <a href="./getting-started.html">Get started</a> </li> <li class=""> <a href="./scaffolding.html">Scaffolding</a> </li> <li class=""> <a href="./base-css.html">Base CSS</a> </li> <li class=""> <a href="./components.html">Components</a> </li> <li class=""> <a href="./javascript.html">JavaScript</a> </li> <li class=""> <a href="./customize.html">Customize</a> </li> </ul> </div> </div> </div> </div> <!-- Subhead ================================================== --> <header class="jumbotron subhead" id="overview"> <div class="container"> <h1>Extending Bootstrap</h1> <p class="lead">Extend Bootstrap to take advantage of included styles and components, as well as LESS variables and mixins.</p> <div> </header> <div class="container"> <!-- Docs nav ================================================== --> <div class="row"> <div class="span3 bs-docs-sidebar"> <ul class="nav nav-list bs-docs-sidenav"> <li><a href="#built-with-less"><i class="icon-chevron-right"></i> Built with LESS</a></li> <li><a href="#compiling"><i class="icon-chevron-right"></i> Compiling Bootstrap</a></li> <li><a href="#static-assets"><i class="icon-chevron-right"></i> Use as static assets</a></li> </ul> </div> <div class="span9"> <!-- BUILT WITH LESS ================================================== --> <section id="built-with-less"> <div class="page-header"> <h1>Built with LESS</h1> </div> <img style="float: right; height: 36px; margin: 10px 20px 20px" src="assets/img/less-logo-large.png" alt="LESS CSS"> <p class="lead">Bootstrap is made with LESS at its core, a dynamic stylesheet language created by our good friend, <a href="http://cloudhead.io">Alexis Sellier</a>. It makes developing systems-based CSS faster, easier, and more fun.</p> <h3>Why LESS?</h3> <p>One of Bootstrap's creators wrote a quick <a href="http://www.wordsbyf.at/2012/03/08/why-less/">blog post about this</a>, summarized here:</p> <ul> <li>Bootstrap compiles faster ~6x faster with Less compared to Sass</li> <li>Less is written in JavaScript, making it easier to us to dive in and patch compared to Ruby with Sass.</li> <li>Less is more; we want to feel like we're writing CSS and making Bootstrap approachable to all.</li> </ul> <h3>What's included?</h3> <p>As an extension of CSS, LESS includes variables, mixins for reusable snippets of code, operations for simple math, nesting, and even color functions.</p> <h3>Learn more</h3> <p>Visit the official website at <a href="http://lesscss.org">http://lesscss.org</a> to learn more.</p> </section> <!-- COMPILING LESS AND BOOTSTRAP ================================================== --> <section id="compiling"> <div class="page-header"> <h1>Compiling Bootstrap with Less</h1> </div> <p class="lead">Since our CSS is written with Less and utilizes variables and mixins, it needs to be compiled for final production implementation. Here's how.</p> <div class="alert alert-info"> <strong>Note:</strong> If you're submitting a pull request to GitHub with modified CSS, you <strong>must</strong> recompile the CSS via any of these methods. </div> <h2>Tools for compiling</h2> <h3>Command line</h3> <p>Follow <a href="https://github.com/twbs/bootstrap#developers">the instructions in the project readme</a> on GitHub for compiling via command line.</p> <h3>JavaScript</h3> <p><a href="http://lesscss.org/">Download the latest Less.js</a> and include the path to it (and Bootstrap) in the <code><head></code>.</p> <pre class="prettyprint"> <link rel="stylesheet/less" href="/path/to/bootstrap.less"> <script src="/path/to/less.js"></script> </pre> <p>To recompile the .less files, just save them and reload your page. Less.js compiles them and stores them in local storage.</p> <h3>Unofficial Mac app</h3> <p><a href="http://incident57.com/less/">The unofficial Mac app</a> watches directories of .less files and compiles the code to local files after every save of a watched .less file. If you like, you can toggle preferences in the app for automatic minifying and which directory the compiled files end up in.</p> <h3>More apps</h3> <h4><a href="http://crunchapp.net/" target="_blank">Crunch</a></h4> <p>Crunch is a great looking LESS editor and compiler built on Adobe Air.</p> <h4><a href="http://incident57.com/codekit/" target="_blank">CodeKit</a></h4> <p>Created by the same guy as the unofficial Mac app, CodeKit is a Mac app that compiles LESS, SASS, Stylus, and CoffeeScript.</p> <h4><a href="http://wearekiss.com/simpless" target="_blank">Simpless</a></h4> <p>Mac, Linux, and Windows app for drag and drop compiling of LESS files. Plus, the <a href="https://github.com/Paratron/SimpLESS" target="_blank">source code is on GitHub</a>.</p> </section> <!-- Static assets ================================================== --> <section id="static-assets"> <div class="page-header"> <h1>Use as static assets</h1> </div> <p class="lead"><a href="./getting-started.html">Quickly start</a> any web project by dropping in the compiled or minified CSS and JS. Layer on custom styles separately for easy upgrades and maintenance moving forward.</p> <h3>Setup file structure</h3> <p>Download the latest compiled Bootstrap and place into your project. For example, you might have something like this:</p> <pre> <span class="icon-folder-open"></span> app/ <span class="icon-folder-open"></span> layouts/ <span class="icon-folder-open"></span> templates/ <span class="icon-folder-open"></span> public/ <span class="icon-folder-open"></span> css/ <span class="icon-file"></span> bootstrap.min.css <span class="icon-folder-open"></span> js/ <span class="icon-file"></span> bootstrap.min.js <span class="icon-folder-open"></span> img/ <span class="icon-file"></span> glyphicons-halflings.png <span class="icon-file"></span> glyphicons-halflings-white.png </pre> <h3>Utilize starter template</h3> <p>Copy the following base HTML to get started.</p> <pre class="prettyprint linenums"> <html> <head> <title>Bootstrap 101 Template</title> <!-- Bootstrap --> <link href="public/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <h1>Hello, world!</h1> <!-- Bootstrap --> <script src="public/js/bootstrap.min.js"></script> </body> </html> </pre> <h3>Layer on custom code</h3> <p>Work in your custom CSS, JS, and more as necessary to make Bootstrap your own with your own separate CSS and JS files.</p> <pre class="prettyprint linenums"> <html> <head> <title>Bootstrap 101 Template</title> <!-- Bootstrap --> <link href="public/css/bootstrap.min.css" rel="stylesheet"> <!-- Project --> <link href="public/css/application.css" rel="stylesheet"> </head> <body> <h1>Hello, world!</h1> <!-- Bootstrap --> <script src="public/js/bootstrap.min.js"></script> <!-- Project --> <script src="public/js/application.js"></script> </body> </html> </pre> </section> </div> </div> </div> <!-- Footer ================================================== --> <footer class="footer"> <div class="container"> <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> <p><a href="http://glyphicons.com">Glyphicons Free</a> licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p> <ul class="footer-links"> <li><a href="http://blog.getbootstrap.com">Blog</a></li> <li class="muted">·</li> <li><a href="https://github.com/twbs/bootstrap/issues?state=open">Issues</a></li> <li class="muted">·</li> <li><a href="https://github.com/twbs/bootstrap/releases">Changelog</a></li> </ul> </div> </footer> <!-- Le javascript ================================================== --> <!-- Placed at the end of the document so the pages load faster --> <script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> <script src="assets/js/jquery.js"></script> <script src="assets/js/bootstrap-transition.js"></script> <script src="assets/js/bootstrap-alert.js"></script> <script src="assets/js/bootstrap-modal.js"></script> <script src="assets/js/bootstrap-dropdown.js"></script> <script src="assets/js/bootstrap-scrollspy.js"></script> <script src="assets/js/bootstrap-tab.js"></script> <script src="assets/js/bootstrap-tooltip.js"></script> <script src="assets/js/bootstrap-popover.js"></script> <script src="assets/js/bootstrap-button.js"></script> <script src="assets/js/bootstrap-collapse.js"></script> <script src="assets/js/bootstrap-carousel.js"></script> <script src="assets/js/bootstrap-typeahead.js"></script> <script src="assets/js/bootstrap-affix.js"></script> <script src="assets/js/holder/holder.js"></script> <script src="assets/js/google-code-prettify/prettify.js"></script> <script src="assets/js/application.js"></script> <!-- Analytics ================================================== --> <script> var _gauges = _gauges || []; (function() { var t = document.createElement('script'); t.type = 'text/javascript'; 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> </body> </html>