bootstrap/docs/less.html
2012-01-25 11:25:35 -08:00

791 lines
23 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bootstrap, from Twitter</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le styles -->
<link href="../bootstrap.css" rel="stylesheet">
<link href="../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 fav and touch icons -->
<link rel="shortcut icon" href="assets/ico/favicon.ico">
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
</head>
<body data-spy="scroll" data-target=".subnav" data-offset="50">
<!-- Navbar
================================================== -->
<div class="navbar navbar-fixed">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="./index.html">Bootstrap</a>
<ul class="nav">
<li class="">
<a href="./index.html">Overview</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 plugins</a>
</li>
<li class="active">
<a href="./less.html">Using LESS</a>
</li>
<li class="">
<a href="./download.html">Download</a>
</li>
</ul>
</div>
</div>
</div>
<div class="container">
<div class="alert">
<strong>Heads up!</strong> This page is still under construction and is missing plenty of documentation. Hang tight!
</div>
<!-- Masthead
================================================== -->
<header class="jumbotron subhead" id="overview">
<h1>Using LESS with Bootstrap</h1>
<p class="lead">Customize and extend Bootstrap with <a href="http://lesscss.org" target="_blank">LESS</a>, a CSS preprocessor, to take advantage of the variables, mixins, and more used to build Bootstrap's CSS.</p>
<div class="subnav">
<ul class="nav pills">
<li><a href="#builtWith">Built with Less</a></li>
<li><a href="#variables">Variables</a></li>
<li><a href="#mixins">Mixins</a></li>
<li><a href="#compiling">Compiling Bootstrap</a></li>
</ul>
</div>
</header>
<!-- BUILT WITH LESS
================================================== -->
<section id="builtWith">
<div class="page-header">
<h1>Built with LESS</h1>
</div>
<div class="row">
<div class="span4">
<h3>Why LESS?</h3>
<p>Bootstrap is made with LESS at it's 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>
</div>
<div class="span4">
<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>
</div>
<div class="span4">
<h3>Learn more</h3>
<img style="float: right; height: 36px;" src="assets/img/less-logo-large.png" alt="LESS CSS">
<p>Visit the official website at <a href="http://lesscss.org">http://lesscss.org</a> to learn more.</p>
</div>
</div>
<div class="row">
<div class="span4">
<h3><a href="#variables">Variables</a></h3>
<p>Managing colors and pixel values in CSS can be a bit of a pain, usually full of copy and paste. Not with LESS though&mdash;assign colors or pixel values as variables and change them once.</p>
</div>
<div class="span4">
<h3><a href="#mixins">Mixins</a></h3>
<p>Those three border-radius declarations you need to make in regular ol' CSS? Now they're down to one line with the help of mixins, snippets of code you can reuse anywhere.</p>
</div>
<div class="span4">
<h3>Operations</h3>
<p>Make your grid, leading, and more super flexible by doing the math on the fly with operations. Multiple, divide, add, and subtract your way to CSS sanity.</p>
</div>
</div>
</section>
<!-- VARIABLES
================================================== -->
<section id="variables">
<div class="page-header">
<h1>Bootstrap variables <small></small></h1>
</div>
<h3>Hyperlinks</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span2">Variable</th>
<th>Value</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>@linkColor</code></td>
<td>#08c</td>
<td>Default link text color</td>
</tr>
<tr>
<td><code>@linkColorHover</code></td>
<td><code>darken(@linkColor, 15%)</code></td>
<td>Default link text hover color</td>
</tr>
</tbody>
</table>
<div class="row">
<div class="span6">
<h3>Grayscale colors</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span2">Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>@black</code></td>
<td>#000</td>
</tr>
<tr>
<td><code>@grayDarker</code></td>
<td>#222</td>
</tr>
<tr>
<td><code>@grayDark</code></td>
<td>#333</td>
</tr>
<tr>
<td><code>@gray</code></td>
<td>#555</td>
</tr>
<tr>
<td><code>@grayLight</code></td>
<td>#999</td>
</tr>
<tr>
<td><code>@grayLighter</code></td>
<td>#eee</td>
</tr>
<tr>
<td><code>@white</code></td>
<td>#fff</td>
</tr>
</tbody>
</table>
</div>
<div class="span6">
<h3>Accent colors</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span2">Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>@blue</code></td>
<td>#049cdb</td>
</tr>
<tr>
<td><code>@green</code></td>
<td>#46a546</td>
</tr>
<tr>
<td><code>@red</code></td>
<td>#9d261d</td>
</tr>
<tr>
<td><code>@yellow</code></td>
<td>#ffc40d</td>
</tr>
<tr>
<td><code>@orange</code></td>
<td>#f89406</td>
</tr>
<tr>
<td><code>@pink</code></td>
<td>#c3325f</td>
</tr>
<tr>
<td><code>@purple</code></td>
<td>#7a43b6</td>
</tr>
</tbody>
</table>
</div>
</div> <!-- /row -->
<div class="row">
<div class="span6">
<h3>Grid system</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span2">Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>@gridColumns</code></td>
<td>12</td>
</tr>
<tr>
<td><code>@gridColumnWidth</code></td>
<td>60px</td>
</tr>
<tr>
<td><code>@gridGutterWidth</code></td>
<td>20px</td>
</tr>
<tr>
<td><code>@siteWidth</code></td>
<td><code>(@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1))</code></td>
</tr>
</tbody>
</table>
</div>
<div class="span6">
<h3>Typography</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span2">Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>@baseFontSize</code></td>
<td>13px</td>
</tr>
<tr>
<td><code>@baseFontFamily</code></td>
<td><code>"Helvetica Neue", Helvetica, Arial, sans-serif</code></td>
<td></td>
</tr>
<tr>
<td><code>@baseLineHeight</code></td>
<td>18px</td>
</tr>
</tbody>
</table>
</div>
</div> <!-- /row -->
<h3>Components</h3>
<div class="row">
<div class="span6">
<h4>Buttons</h4>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="span3"><code>@primaryButtonColor</code></td>
<td><code>@blue</code></td>
</tr>
</tbody>
</table>
<h4>Forms</h4>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="span3"><code>@placeholderText</code></td>
<td><code>@grayLight</code></td>
</tr>
</tbody>
</table>
<h4>Navbar</h4>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="span3"><code>@navbarHeight</code></td>
<td>40px</td>
</tr>
<tr>
<td><code>@navbarBackground</code></td>
<td><code>@grayDarker</code></td>
</tr>
<tr>
<td><code>@navbarBackgroundHighlight</code></td>
<td><code>@grayDark</code></td>
</tr>
</tbody>
</table>
</div>
<div class="span6">
<h4>Form states and alerts</h4>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="span3"><code>@warningText</code></td>
<td>#f3edd2</td>
</tr>
<tr>
<td><code>@warningBackground</code></td>
<td>#c09853</td>
</tr>
<tr>
<td><code>@warningBorder</code></td>
<td>#f3edd2</td>
</tr>
<tr>
<td><code>@errorText</code></td>
<td>#b94a48</td>
</tr>
<tr>
<td><code>@errorBackground</code></td>
<td>#f2dede</td>
</tr>
<tr>
<td><code>@errorBorder</code></td>
<td>#e9c7c7</td>
</tr>
<tr>
<td><code>@successText</code></td>
<td>#468847</td>
</tr>
<tr>
<td><code>@successBackground</code></td>
<td>#dff0d8</td>
</tr>
<tr>
<td><code>@successBorder</code></td>
<td>#cfe8c4</td>
</tr>
<tr>
<td><code>@infoText</code></td>
<td>#3a87ad</td>
</tr>
<tr>
<td><code>@infoBackground</code></td>
<td>#d9edf7</td>
</tr>
<tr>
<td><code>@infoBorder</code></td>
<td>#bfe1f2</td>
</tr>
</tbody>
</table>
</div>
</div><!-- /row -->
</section>
<!-- MIXINS
================================================== -->
<section id="mixins">
<div class="page-header">
<h1>Bootstrap mixins <small></small></h1>
</div>
<h2>About mixins</h2>
<div class="row">
<div class="span4">
<h3>Basic mixins</h3>
<p>A basic mixin is essentially an include or a partial for a snippet of CSS. They're written just like a CSS class and can be called anywhere.</p>
<pre class="prettyprint linenums">
Coming soon!
</pre>
</div><!-- /span4 -->
<div class="span4">
<h3>Parametric mixins</h3>
<p>A parametric mixin is just like a basic mixin, but it also accepts optional paramaters (hence the name).</p>
<pre class="prettyprint linenums">
Coming soon!
</pre>
</div><!-- /span4 -->
<div class="span4">
<h3>Easily add your own</h3>
<p>Nearly all of Bootstrap's mixins are stored in mixins.less, a wonderful utility .less file that enables you to use a mixin in any of the .less files in the toolkit.</p>
<p>So, go ahead and use the existing ones or feel free to add your own as you need.</p>
</div><!-- /span4 -->
</div><!-- /row -->
<h2>Included mixins</h2>
<h3>Utilities</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Paramaters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.clearfix()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.center-block()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.ie7-inline-block()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.size()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.square()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.opacity()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.reset-filter()</code></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3>Forms</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Paramaters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.placeholder()</code></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3>Typography</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Paramaters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>#font > #family > .serif()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>#font > #family > .sans-serif()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>#font > #family > .monospace()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>#font > .shorthand()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>#font > .serif()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>#font > .sans-serif()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>#font > .monospace()</code></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3>Grid system</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Paramaters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.fixed-container()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.columns()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.offset()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.gridColumn()</code></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3>CSS3 properties</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Paramaters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.border-radius()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.border-radius-custom()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.box-shadow()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.transition()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.rotate()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.scale()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.translate()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.background-clip()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.background-size()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.box-sizing()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.user-select()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.resizable()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.content-columns()</code></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<h3>Backgrounds and gradients</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Paramaters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.#translucent > .background()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.#translucent > .border()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.#gradient > .vertical()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.#gradient > .horizontal()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.#gradient > .directional()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.#gradient > .vertical-three-colors()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.#gradient > .radial()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.#gradient > .striped()</code></td>
<td></td>
<td></td>
</tr>
<tr>
<td><code>.#gradientBar()</code></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</section>
<!-- COMPILING LESS AND BOOTSTRAP
================================================== -->
<section id="compiling">
<div class="page-header">
<h1>Compiling Bootstrap with LESS</h1>
</div>
<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>
<div class="row">
<div class="span4">
<h3>Node with makefile</h3>
<p>Install the LESS command line compiler with npm by running the following command:</p>
<pre>$ npm install less</pre>
<p>Once installed just run <code>make</code> from the root of your bootstrap directory and you're all set.</p>
<p>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).</p>
</div><!-- /span4 -->
<div class="span4">
<h3>Command line</h3>
<p>Install the LESS command line tool via Node and run the following command:</p>
<pre>$ lessc ./lib/bootstrap.less > bootstrap.css</pre>
<p>Be sure to include <code>--compress</code> in that command if you're trying to save some bytes!</p>
</div><!-- /span4 -->
<div class="span4">
<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>&lt;head&gt;</code>.</p>
<pre class="prettyprint">
&lt;link rel="stylesheet/less" href="/path/to/bootstrap.less"&gt;
&lt;script src="/path/to/less.js"&gt;&lt;/script&gt;
</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>
</div><!-- /span4 -->
</div><!-- /row -->
<div class="row">
<div class="span4">
<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.</p>
<p>If you like, you can toggle preferences in the app for automatic minifying and which directory the compiled files end up in.</p>
</div><!-- /span4 -->
<div class="span4">
<h3>More Mac 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 PC 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>
</div><!-- /span4 -->
</div><!-- /row -->
</section>
<!-- Footer
================================================== -->
<footer class="footer">
<p class="pull-right"><a href="#">Back to top</a></p>
<p>Designed and built with all the love in the world <a href="http://twitter.com/twitter" target="_blank">@twitter</a> 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 the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="_blank">Apache License v2.0</a>. Documentation licensed under <a href="http://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p>
<p>Icons from <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>
</footer>
</div><!-- /container -->
<!-- Le javascript -->
<!-- Placed at the end of the document so the pages load faster -->
<!-- <script src="http://code.jquery.com/jquery-1.7.min.js"></script> -->
<script src="../js/tests/vendor/jquery.js"></script>
<script src="assets/js/google-code-prettify/prettify.js"></script>
<script src="../js/bootstrap-transition.js"></script>
<script src="../js/bootstrap-alert.js"></script>
<script src="../js/bootstrap-modal.js"></script>
<script src="../js/bootstrap-dropdown.js"></script>
<script src="../js/bootstrap-scrollspy.js"></script>
<script src="../js/bootstrap-tab.js"></script>
<script src="../js/bootstrap-tooltip.js"></script>
<script src="../js/bootstrap-popover.js"></script>
<script src="../js/bootstrap-button.js"></script>
<script src="../js/bootstrap-collapse.js"></script>
<script src="../js/bootstrap-carousel.js"></script>
<script src="../js/bootstrap-typeahead.js"></script>
<script src="assets/js/application.js"></script>
</body>
</html>