blob: 94e2c613755f65e8b91dde9c01a9ab1e1f621cec [file] [log] [blame] [edit]
<!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 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="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
<![endif]-->
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="assets/ico/favicon.ico">
<link rel="apple-touch-icon" href="assets/ico/bootstrap-apple-57x57.png">
<link rel="apple-touch-icon" sizes="72x72" href="assets/ico/bootstrap-apple-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="assets/ico/bootstrap-apple-114x114.png">
<script defer src="https://cdn.usefathom.com/script.js" data-site="ITUSEYJG"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-146052-10', 'getbootstrap.com');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
</script>
</head>
<body data-spy="scroll" data-target=".subnav" data-offset="50">
<!-- Navbar
================================================== -->
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a 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>
</a>
<a class="brand" href="./index.html">Bootstrap</a>
<div class="nav-collapse">
<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="divider-vertical"></li>
<li class="">
<a href="./download.html">Customize</a>
</li>
<li class="">
<a href="./examples.html">Examples</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<!-- 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/" rel="noopener" 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 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 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>
</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. Multiply, 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>LESS variables, their values, and usage guidelines</small></h1>
</div>
<div class="row">
<div class="span6">
<h3>Hyperlinks</h3>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="span2"><code>@linkColor</code></td>
<td>#08c</td>
<td>Default link text color</td>
<td class="swatch-col"><span class="swatch" style="background-color: #08c;"></span></td>
</tr>
<tr>
<td><code>@linkColorHover</code></td>
<td><code>darken(@linkColor, 15%)</code></td>
<td>Default link text hover color</td>
<td><span class="swatch" style="background-color: #005580;"></span></td>
</tr>
</tbody>
</table>
<h3>Grid system</h3>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="span2"><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>@fluidGridColumnWidth</code></td>
<td>6.382978723%</td>
</tr>
<tr>
<td><code>@fluidGridGutterWidth</code></td>
<td>2.127659574%</td>
</tr>
</tbody>
</table>
<h3>Typography</h3>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="span2"><code>@baseFontSize</code></td>
<td>13px</td>
</tr>
<tr>
<td><code>@baseFontFamily</code></td>
<td><code>"Helvetica Neue", Helvetica, Arial, sans-serif</code></td>
</tr>
<tr>
<td><code>@baseLineHeight</code></td>
<td>18px</td>
</tr>
</tbody>
</table>
</div>
<div class="span6">
<h3>Grayscale colors</h3>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="span2"><code>@black</code></td>
<td>#000</td>
<td class="swatch-col"><span class="swatch" style="background-color: #000;"></span></td>
</tr>
<tr>
<td><code>@grayDarker</code></td>
<td>#222</td>
<td><span class="swatch" style="background-color: #222;"></span></td>
</tr>
<tr>
<td><code>@grayDark</code></td>
<td>#333</td>
<td><span class="swatch" style="background-color: #333;"></span></td>
</tr>
<tr>
<td><code>@gray</code></td>
<td>#555</td>
<td><span class="swatch" style="background-color: #555;"></span></td>
</tr>
<tr>
<td><code>@grayLight</code></td>
<td>#999</td>
<td><span class="swatch" style="background-color: #999;"></span></td>
</tr>
<tr>
<td><code>@grayLighter</code></td>
<td>#eee</td>
<td><span class="swatch" style="background-color: #eee;"></span></td>
</tr>
<tr>
<td><code>@white</code></td>
<td>#fff</td>
<td><span class="swatch swatch-bordered" style="background-color: #fff;"></span></td>
</tr>
</tbody>
</table>
<h3>Accent colors</h3>
<table class="table table-bordered table-striped">
<tbody>
<tr>
<td class="span2"><code>@blue</code></td>
<td>#049cdb</td>
<td class="swatch-col"><span class="swatch" style="background-color: #049cdb;"></span></td>
</tr>
<tr>
<td><code>@green</code></td>
<td>#46a546</td>
<td><span class="swatch" style="background-color: #46a546;"></span></td>
</tr>
<tr>
<td><code>@red</code></td>
<td>#9d261d</td>
<td><span class="swatch" style="background-color: #9d261d;"></span></td>
</tr>
<tr>
<td><code>@yellow</code></td>
<td>#ffc40d</td>
<td><span class="swatch" style="background-color: #ffc40d;"></span></td>
</tr>
<tr>
<td><code>@orange</code></td>
<td>#f89406</td>
<td><span class="swatch" style="background-color: #f89406;"></span></td>
</tr>
<tr>
<td><code>@pink</code></td>
<td>#c3325f</td>
<td><span class="swatch" style="background-color: #c3325f;"></span></td>
</tr>
<tr>
<td><code>@purple</code></td>
<td>#7a43b6</td>
<td><span class="swatch" style="background-color: #7a43b6;"></span></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>@primaryButtonBackground</code></td>
<td><code>@linkColor</code></td>
<td class="swatch-col"><span class="swatch" style="background-color: #08c;"></span></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>
<td class="swatch-col"><span class="swatch" style="background-color: #999;"></span></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>
<td class="swatch-col"></td>
</tr>
<tr>
<td><code>@navbarBackground</code></td>
<td><code>@grayDarker</code></td>
<td><span class="swatch" style="background-color: #222;"></span></td>
</tr>
<tr>
<td><code>@navbarBackgroundHighlight</code></td>
<td><code>@grayDark</code></td>
<td><span class="swatch" style="background-color: #333;"></span></td>
</tr>
<tr>
<td><code>@navbarText</code></td>
<td><code>@grayLight</code></td>
<td><span class="swatch" style="background-color: #999;"></span></td>
</tr>
<tr>
<td><code>@navbarLinkColor</code></td>
<td><code>@grayLight</code></td>
<td><span class="swatch" style="background-color: #999;"></span></td>
</tr>
<tr>
<td><code>@navbarLinkColorHover</code></td>
<td><code>@white</code></td>
<td><span class="swatch swatch-bordered" style="background-color: #fff;"></span></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>#c09853</td>
<td><span class="swatch" style="background-color: #c09853;"></span></td>
</tr>
<tr>
<td><code>@warningBackground</code></td>
<td>#f3edd2</td>
<td class="swatch-col"><span class="swatch" style="background-color: #f3edd2;"></span></td>
</tr>
<tr>
<td><code>@errorText</code></td>
<td>#b94a48</td>
<td><span class="swatch" style="background-color: #b94a48;"></span></td>
</tr>
<tr>
<td><code>@errorBackground</code></td>
<td>#f2dede</td>
<td><span class="swatch" style="background-color: #f2dede;"></span></td>
</tr>
<tr>
<td><code>@successText</code></td>
<td>#468847</td>
<td><span class="swatch" style="background-color: #468847;"></span></td>
</tr>
<tr>
<td><code>@successBackground</code></td>
<td>#dff0d8</td>
<td><span class="swatch" style="background-color: #dff0d8;"></span></td>
</tr>
<tr>
<td><code>@infoText</code></td>
<td>#3a87ad</td>
<td><span class="swatch" style="background-color: #3a87ad;"></span></td>
</tr>
<tr>
<td><code>@infoBackground</code></td>
<td>#d9edf7</td>
<td><span class="swatch" style="background-color: #d9edf7;"></span></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">
.element {
.clearfix();
}
</pre>
</div><!-- /span4 -->
<div class="span4">
<h3>Parametric mixins</h3>
<p>A parametric mixin is just like a basic mixin, but it also accepts parameters (hence the name) with optional default values.</p>
<pre class="prettyprint linenums">
.element {
.border-radius(4px);
}
</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>Parameters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.clearfix()</code></td>
<td><em class="muted">none</em></td>
<td>Add to any parent to clear floats within</td>
</tr>
<tr>
<td><code>.tab-focus()</code></td>
<td><em class="muted">none</em></td>
<td>Apply the Webkit focus style and round Firefox outline</td>
</tr>
<tr>
<td><code>.center-block()</code></td>
<td><em class="muted">none</em></td>
<td>Auto center a block-level element using <code>margin: auto</code></td>
</tr>
<tr>
<td><code>.ie7-inline-block()</code></td>
<td><em class="muted">none</em></td>
<td>Use in addition to regular <code>display: inline-block</code> to get IE7 support</td>
</tr>
<tr>
<td><code>.size()</code></td>
<td><code>@height: 5px, @width: 5px</code></td>
<td>Quickly set the height and width on one line</td>
</tr>
<tr>
<td><code>.square()</code></td>
<td><code>@size: 5px</code></td>
<td>Builds on <code>.size()</code> to set the width and height as same value</td>
</tr>
<tr>
<td><code>.opacity()</code></td>
<td><code>@opacity: 100</code></td>
<td>Set, in whole numbers, the opacity percentage (e.g., "50" or "75")</td>
</tr>
</tbody>
</table>
<h3>Forms</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Parameters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.placeholder()</code></td>
<td><code>@color: @placeholderText</code></td>
<td>Set the <code>placeholder</code> text color for inputs</td>
</tr>
</tbody>
</table>
<h3>Typography</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Parameters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>#font > #family > .serif()</code></td>
<td><em class="muted">none</em></td>
<td>Make an element use a serif font stack</td>
</tr>
<tr>
<td><code>#font > #family > .sans-serif()</code></td>
<td><em class="muted">none</em></td>
<td>Make an element use a sans-serif font stack</td>
</tr>
<tr>
<td><code>#font > #family > .monospace()</code></td>
<td><em class="muted">none</em></td>
<td>Make an element use a monospace font stack</td>
</tr>
<tr>
<td><code>#font > .shorthand()</code></td>
<td><code>@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight</code></td>
<td>Easily set font size, weight, and leading</td>
</tr>
<tr>
<td><code>#font > .serif()</code></td>
<td><code>@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight</code></td>
<td>Set font family to serif, and control size, weight, and leading</td>
</tr>
<tr>
<td><code>#font > .sans-serif()</code></td>
<td><code>@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight</code></td>
<td>Set font family to sans-serif, and control size, weight, and leading</td>
</tr>
<tr>
<td><code>#font > .monospace()</code></td>
<td><code>@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight</code></td>
<td>Set font family to monospace, and control size, weight, and leading</td>
</tr>
</tbody>
</table>
<h3>Grid system</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Parameters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.container-fixed()</code></td>
<td><em class="muted">none</em></td>
<td>Provide a fixed-width (set with <code>@siteWidth</code>) container for holding your content</td>
</tr>
<tr>
<td><code>.columns()</code></td>
<td><code>@columns: 1</code></td>
<td>Build a grid column that spans any number of columns (defaults to 1 column)</td>
</tr>
<tr>
<td><code>.offset()</code></td>
<td><code>@columns: 1</code></td>
<td>Offset a grid column with left margin that spans any number of columns</td>
</tr>
<tr>
<td><code>.gridColumn()</code></td>
<td><em class="muted">none</em></td>
<td>Make an element float like a grid column</td>
</tr>
</tbody>
</table>
<h3>CSS3 properties</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span3">Mixin</th>
<th>Parameters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.border-radius()</code></td>
<td><code>@radius: 5px</code></td>
<td>Round the corners of an element. Can be a single value or four space-separated values</td>
</tr>
<tr>
<td><code>.box-shadow()</code></td>
<td><code>@shadow: 0 1px 3px rgba(0,0,0,.25)</code></td>
<td>Add a drop shadow to an element</td>
</tr>
<tr>
<td><code>.transition()</code></td>
<td><code>@transition</code></td>
<td>Add CSS3 transition effect (e.g., <code>all .2s linear</code>)</td>
</tr>
<tr>
<td><code>.rotate()</code></td>
<td><code>@degrees</code></td>
<td>Rotate an element <em>n</em> degrees</td>
</tr>
<tr>
<td><code>.scale()</code></td>
<td><code>@ratio</code></td>
<td>Scale an element to <em>n</em> times its original size</td>
</tr>
<tr>
<td><code>.translate()</code></td>
<td><code>@x: 0, @y: 0</code></td>
<td>Move an element on the x and y planes</td>
</tr>
<tr>
<td><code>.background-clip()</code></td>
<td><code>@clip</code></td>
<td>Crop the background of an element (useful for <code>border-radius</code>)</td>
</tr>
<tr>
<td><code>.background-size()</code></td>
<td><code>@size</code></td>
<td>Control the size of background images via CSS3</td>
</tr>
<tr>
<td><code>.box-sizing()</code></td>
<td><code>@boxmodel</code></td>
<td>Change the box model for an element (e.g., <code>border-box</code> for a full-width <code>input</code>)</td>
</tr>
<tr>
<td><code>.user-select()</code></td>
<td><code>@select</code></td>
<td>Control cursor selection of text on a page</td>
</tr>
<tr>
<td><code>.resizable()</code></td>
<td><code>@direction: both</code></td>
<td>Make any element resizable on the right and bottom</td>
</tr>
<tr>
<td><code>.content-columns()</code></td>
<td><code>@columnCount, @columnGap: @gridColumnGutter</code></td>
<td>Make the content of any element use CSS3 columns</td>
</tr>
</tbody>
</table>
<h3>Backgrounds and gradients</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th class="span4">Mixin</th>
<th>Parameters</th>
<th>Usage</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>.#translucent > .background()</code></td>
<td><code>@color: @white, @alpha: 1</code></td>
<td>Give an element a translucent background color</td>
</tr>
<tr>
<td><code>.#translucent > .border()</code></td>
<td><code>@color: @white, @alpha: 1</code></td>
<td>Give an element a translucent border color</td>
</tr>
<tr>
<td><code>.#gradient > .vertical()</code></td>
<td><code>@startColor, @endColor</code></td>
<td>Create a cross-browser vertical background gradient</td>
</tr>
<tr>
<td><code>.#gradient > .horizontal()</code></td>
<td><code>@startColor, @endColor</code></td>
<td>Create a cross-browser horizontal background gradient</td>
</tr>
<tr>
<td><code>.#gradient > .directional()</code></td>
<td><code>@startColor, @endColor, @deg</code></td>
<td>Create a cross-browser directional background gradient</td>
</tr>
<tr>
<td><code>.#gradient > .vertical-three-colors()</code></td>
<td><code>@startColor, @midColor, @colorStop, @endColor</code></td>
<td>Create a cross-browser three-color background gradient</td>
</tr>
<tr>
<td><code>.#gradient > .radial()</code></td>
<td><code>@innerColor, @outerColor</code></td>
<td>Create a cross-browser radial background gradient</td>
</tr>
<tr>
<td><code>.#gradient > .striped()</code></td>
<td><code>@color, @angle</code></td>
<td>Create a cross-browser striped background gradient</td>
</tr>
<tr>
<td><code>.#gradientBar()</code></td>
<td><code>@primaryColor, @secondaryColor</code></td>
<td>Used for buttons to assign a gradient and slightly darker border</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 globally with npm by running the following command:</p>
<pre>$ npm install -g 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/" rel="noopener" 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/" rel="noopener" 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="https://wearekiss.com/simpless" rel="noopener" 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" rel="noopener" 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="https://twitter.com/twitter" rel="noopener" target="_blank">@twitter</a> by <a href="https://twitter.com/mdo" rel="noopener" target="_blank">@mdo</a> and <a href="https://twitter.com/fat" rel="noopener" target="_blank">@fat</a>.</p>
<p>Code licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0" rel="noopener" target="_blank">Apache License v2.0</a>. Documentation licensed under <a href="https://creativecommons.org/licenses/by/3.0/">CC BY 3.0</a>.</p>
<p>Icons from <a href="https://www.glyphicons.com/">Glyphicons Free</a>, licensed under <a href="https://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 type="text/javascript" src="https://platform.twitter.com/widgets.js"></script>
<script src="assets/js/jquery.js"></script>
<script src="assets/js/google-code-prettify/prettify.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/application.js"></script>
</body>
</html>