mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-04 16:24:22 +01:00
174 lines
8.4 KiB
Plaintext
174 lines
8.4 KiB
Plaintext
<!-- Subhead
|
|
================================================== -->
|
|
<header class="jumbotron subhead" id="overview">
|
|
<div class="container">
|
|
<h1>{{_i}}Extending Bootstrap{{/i}}</h1>
|
|
<p class="lead">{{_i}}Extend Bootstrap to take advantage of included styles and components, as well as LESS variables and mixins.{{/i}}</p>
|
|
<div>
|
|
</header>
|
|
|
|
<div class="bs-docs-canvas">
|
|
|
|
<div class="container">
|
|
|
|
<!-- Docs nav
|
|
================================================== -->
|
|
<div class="row">
|
|
<div class="span3 bs-docs-sidebar">
|
|
<ul class="nav nav-list bs-docs-sidenav" data-spy="affix" data-offset-y="80">
|
|
<li><a href="#built-with-less">{{_i}}Built with LESS{{/i}} <i class="icon-chevron-right"></i></a></li>
|
|
<li><a href="#compiling">{{_i}}Compiling Bootstrap{{/i}} <i class="icon-chevron-right"></i></a></li>
|
|
<li><a href="#static-assets">{{_i}}Use as static assets{{/i}} <i class="icon-chevron-right"></i></a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="span9">
|
|
|
|
|
|
|
|
<!-- BUILT WITH LESS
|
|
================================================== -->
|
|
<section id="built-with-less">
|
|
<div class="page-header">
|
|
<h1>{{_i}}Built with LESS{{/i}}</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">{{_i}}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.{{/i}}</p>
|
|
|
|
<h3>{{_i}}Why LESS?{{/i}}</h3>
|
|
<p>{{_i}}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:{{/i}}</p>
|
|
<ul>
|
|
<li>{{_i}}Bootstrap compiles faster ~6x faster with Less compared to Sass{{/i}}</li>
|
|
<li>{{_i}}Less is written in JavaScript, making it easier to us to dive in and patch compared to Ruby with Sass.{{/i}}</li>
|
|
<li>{{_i}}Less is more; we want to feel like we're writing CSS and making Bootstrap approachable to all.{{/i}}</li>
|
|
</ul>
|
|
|
|
<h3>{{_i}}What's included?{{/i}}</h3>
|
|
<p>{{_i}}As an extension of CSS, LESS includes variables, mixins for reusable snippets of code, operations for simple math, nesting, and even color functions.{{/i}}</p>
|
|
|
|
<h3>{{_i}}Learn more{{/i}}</h3>
|
|
<p>{{_i}}Visit the official website at <a href="http://lesscss.org">http://lesscss.org</a> to learn more.{{/i}}</p>
|
|
</section>
|
|
|
|
|
|
|
|
<!-- COMPILING LESS AND BOOTSTRAP
|
|
================================================== -->
|
|
<section id="compiling">
|
|
<div class="page-header">
|
|
<h1>{{_i}}Compiling Bootstrap with Less{{/i}}</h1>
|
|
</div>
|
|
|
|
<p class="lead">{{_i}}Since our CSS is written with Less and utilizes variables and mixins, it needs to be compiled for final production implementation. Here's how.{{/i}}</p>
|
|
|
|
<div class="alert alert-info">
|
|
{{_i}}<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.{{/i}}
|
|
</div>
|
|
|
|
<h2>{{_i}}Tools for compiling{{/i}}</h2>
|
|
|
|
<h3>{{_i}}Node with makefile{{/i}}</h3>
|
|
<p>{{_i}}Install the LESS command line compiler, JSHint, Recess, and uglify-js globally with npm by running the following command:{{/i}}</p>
|
|
<pre>$ npm install -g less jshint recess uglify-js</pre>
|
|
<p>{{_i}}Once installed just run <code>make</code> from the root of your bootstrap directory and you're all set.{{/i}}</p>
|
|
<p>{{_i}}Additionally, if you have <a href="https://github.com/mynyml/watchr">watchr</a> installed, you may run <code>make watch</code> to have bootstrap automatically rebuilt every time you edit a file in the bootstrap lib (this isn't required, just a convenience method).{{/i}}</p>
|
|
|
|
<h3>{{_i}}Command line{{/i}}</h3>
|
|
<p>{{_i}}Install the LESS command line tool via Node and run the following command:{{/i}}</p>
|
|
<pre>$ lessc ./less/bootstrap.less > bootstrap.css</pre>
|
|
<p>{{_i}}Be sure to include <code>--compress</code> in that command if you're trying to save some bytes!{{/i}}</p>
|
|
|
|
<h3>{{_i}}Javascript{{/i}}</h3>
|
|
<p>{{_i}}<a href="http://lesscss.org/">Download the latest Less.js</a> and include the path to it (and Bootstrap) in the <code><head></code>.{{/i}}</p>
|
|
<pre class="prettyprint">
|
|
<link rel="stylesheet/less" href="/path/to/bootstrap.less">
|
|
<script src="/path/to/less.js"></script>
|
|
</pre>
|
|
<p>{{_i}}To recompile the .less files, just save them and reload your page. Less.js compiles them and stores them in local storage.{{/i}}</p>
|
|
|
|
<h3>{{_i}}Unofficial Mac app{{/i}}</h3>
|
|
<p>{{_i}}<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.{{/i}}</p>
|
|
|
|
<h3>{{_i}}More apps{{/i}}</h3>
|
|
<h4><a href="http://crunchapp.net/" target="_blank">Crunch</a></h4>
|
|
<p>{{_i}}Crunch is a great looking LESS editor and compiler built on Adobe Air.{{/i}}</p>
|
|
<h4><a href="http://incident57.com/codekit/" target="_blank">CodeKit</a></h4>
|
|
<p>{{_i}}Created by the same guy as the unofficial Mac app, CodeKit is a Mac app that compiles LESS, SASS, Stylus, and CoffeeScript.{{/i}}</p>
|
|
<h4><a href="http://wearekiss.com/simpless" target="_blank">Simpless</a></h4>
|
|
<p>{{_i}}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>.{{/i}}</p>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
<!-- Static assets
|
|
================================================== -->
|
|
<section id="static-assets">
|
|
<div class="page-header">
|
|
<h1>{{_i}}Use as static assets{{/i}}</h1>
|
|
</div>
|
|
<p class="lead">{{_i}}<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.{{/i}}</p>
|
|
|
|
<h3>{{_i}}Setup file structure{{/i}}</h3>
|
|
<p>{{_i}}Download the latest compiled Bootstrap and place into your project. For example, you might have something like this:{{/i}}</p>
|
|
<pre class="prettyprint">
|
|
app/
|
|
├── layouts/
|
|
└── templates/
|
|
public/
|
|
├── css/
|
|
│ ├── bootstrap.min.css
|
|
├── js/
|
|
│ ├── bootstrap.min.js
|
|
└── img/
|
|
├── glyphicons-halflings.png
|
|
└── glyphicons-halflings-white.png
|
|
</pre>
|
|
|
|
<h3>{{_i}}Utilize starter template{{/i}}</h3>
|
|
<p>{{_i}}Copy the following base HTML to get started.{{/i}}</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>{{_i}}Layer on custom code{{/i}}</h3>
|
|
<p>{{_i}}Work in your custom CSS, JS, and more as necessary to make Bootstrap your own with your own separate CSS and JS files.{{/i}}</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>{{! /span9 }}
|
|
</div>{{! row}}
|
|
|
|
</div>{{! /.container }}
|
|
|
|
{{! /.bs-docs-canvas closes in footer }}
|