arriba
esquerda
certo
abaixo

Bootstrap, de Twitter

Bootstrap é un conxunto de ferramentas de Twitter deseñado para iniciar o desenvolvemento de aplicacións web e sitios.
Inclúe CSS e HTML base para tipografía, formularios, botóns, táboas, cuadrículas, navegación e moito máis.

Alerta de nerd: Bootstrap está construído con Less e foi deseñado para funcionar desde o primeiro momento tendo en conta os navegadores modernos.

Ligazón directa ao CSS

Para o inicio máis rápido e sinxelo, só tes que copiar este fragmento na túa páxina web.

Úsao con Less

Un fan de usar Less? Non hai problema, só clona o repositorio e engade estas liñas:

Fork en GitHub

Descarga, fork, tira, problemas de ficheiros e moito máis co repositorio oficial de Bootstrap en Github.

Bootstrap en GitHub »

Actualmente v1.3.0

Historia

Os enxeñeiros de Twitter usaron historicamente case todas as bibliotecas coas que estaban familiarizados para cumprir os requisitos do front-end. Bootstrap comezou como unha resposta aos retos que se presentaban. Coa axuda de moitas persoas fantásticas, Bootstrap creceu significativamente.

Ler máis en dev.twitter.com ›

Soporte de navegador

Bootstrap está probado e admitido nos principais navegadores modernos como Chrome, Safari, Internet Explorer e Firefox.

Probado e compatible con Chrome, Safari, Internet Explorer e Firefox
  • Último Safari
  • Último Google Chrome
  • Firefox 4+
  • Internet Explorer 7+
  • Ópera 11

Que está incluído

Bootstrap vén completo con CSS compilado, non compilado e modelos de exemplo.

Exemplos de inicio rápido

Necesitas uns modelos rápidos? Consulte estes exemplos básicos que reunimos:

  • Disposición sinxela de tres columnas con unidade de heroe
  • Disposición fluída con barra lateral estática
  • Contedor colgante sinxelo para aplicacións

Grella predeterminada

O sistema de grade predeterminado que se proporciona como parte de Bootstrap é unha grade de 16 columnas de 940 píxeles de ancho. É un sabor do popular sistema de reixa 960, pero sen a marxe/recheo adicional nos lados esquerdo e dereito.

Exemplo de marcado de grella

Como se mostra aquí, pódese crear un deseño básico con dúas "columnas", cada unha abarcando un número das 16 columnas fundamentais que definimos como parte do noso sistema de cuadrícula. Vexa os exemplos a continuación para obter máis variacións.

  1. <div class = "fila" >
  2. <div class = "span6" >
  3. ...
  4. </div>
  5. <div class = "span10" >
  6. ...
  7. </div>
  8. </div>
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
3
1
4
4
4
4
1/3
1/3
1/3
1/3
2/3
4
6
6
8
8
5
11
16

Columnas de compensación

4
8 compensación 4
1/3 de compensación 2/3 s
4 compensación 4
4 compensación 4
5 compensación 3
5 compensación 3
10 compensación 6

Columnas aniñadas

Aniña o teu contido se é necesario creando un .rowdentro dunha columna existente.

Exemplo de columnas aniñadas

Nivel 1 da columna
Nivel 2
Nivel 2
  1. <div class = "fila" >
  2. <div class = "span12" >
  3. Nivel 1 da columna
  4. <div class = "fila" >
  5. <div class = "span6" >
  6. Nivel 2
  7. </div>
  8. <div class = "span6" >
  9. Nivel 2
  10. </div>
  11. </div>
  12. </div>
  13. </div>

Rode a súa propia grella

En Bootstrap hai un puñado de variables para personalizar o sistema de grade predeterminado de 940px. Cun pouco de personalización, pode modificar o tamaño das columnas, as súas cunetas e o recipiente no que residen.

Dentro da grella

As variables necesarias para modificar o sistema de reixa residen actualmente en variables.less.

Variable Valor predeterminado Descrición
@gridColumns 16 O número de columnas dentro da grade
@gridColumnWidth 40 píxeles O ancho de cada columna dentro da grella
@gridGutterWidth 20 píxeles O espazo negativo entre cada columna
@siteWidth Suma calculada de todas as columnas e canlóns Usamos unha coincidencia básica para contar o número de columnas e cunetas e establecer o ancho da .fixed-container()mestura.

Agora a personalizar

Modificar a grade significa cambiar as tres @grid-*variables e recompilar os ficheiros Less.

Bootstrap vén equipado para manexar un sistema de reixa con ata 24 columnas; o valor predeterminado é só 16. Así é como se verían as súas variables de grade personalizadas nunha grade de 24 columnas.

  1. @gridColumns : 24 ;
  2. @gridColumnWidth : 20px ;
  3. @gridGutterWidth : 20px ;

Unha vez recompilado, estarás listo!

Disposición fixa

O deseño predeterminado e sinxelo de 940 píxeles de ancho e centrado para case calquera sitio web ou páxina proporcionado por un único ficheiro <div.container>.

  1. <corpo>
  2. <div class = "contedor" >
  3. ...
  4. </div>
  5. </corpo>

Disposición de fluídos

Unha estrutura de páxina fluída alternativa e flexible con anchos mínimos e máximos e unha barra lateral esquerda. Ideal para aplicacións e documentos.

  1. <corpo>
  2. <div class = "container-fluid" >
  3. <div class = "barra lateral" >
  4. ...
  5. </div>
  6. <div class = "contido" >
  7. ...
  8. </div>
  9. </div>
  10. </corpo>

Títulos e copia

Unha xerarquía tipográfica estándar para estruturar as túas páxinas web.

Toda a grella tipográfica baséase en dúas variables Menos do noso ficheiro variables.less: @basefonte @baseline. O primeiro é o tamaño da fonte base empregado en todo e o segundo é a altura da liña base.

Usamos esas variables, e algunhas matemáticas, para crear as marxes, recheos e alturas de liña de todo o noso tipo e moito máis.

h1. Título 1

h2. Título 2

h3. Título 3

h4. Título 4

h5. Título 5
h6. Título 6

Parágrafo de exemplo

Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula ut id elit.

Exemplo de título Ten un subtítulo...

Varios elementos

Usando énfases, enderezos e abreviaturas

<strong> <em> <address> <abbr>

Cando usar

As etiquetas de énfase ( <strong>e <em>) deben usarse para indicar importancia ou énfase adicional dunha palabra ou frase en relación coa súa copia circundante. Utilízao <strong>para a importancia e <em>para a énfase .

Énfase nun parágrafo

Fusce dapibus , tellus ac cursus commodo , tortor mauris condimentum nibh , ut fermentum massa justo sit amet risus. Maecenas faucibus mollis interdum. Nulla vitae elit libero, a pharetra augue.

Nota: aínda está ben usar <b>e <i>etiquetas en HTML5 e non teñen que ter estilos en negra e cursiva, respectivamente (aínda que se hai un elemento máis semántico, utilízao). <b>está destinado a resaltar palabras ou frases sen transmitir importancia adicional, mentres que <i>é principalmente para voz, termos técnicos, etc.

Enderezos

O <address>elemento úsase para a información de contacto do seu antepasado máis próximo ou de todo o traballo. Aquí tes dous exemplos de como se pode usar:

Twitter, Inc.
795 Folsom Ave, Suite 600
San Francisco, CA 94107
P: (123) 456-7890
Nome completo
[email protected]

Nota: cada liña <address>debe rematar cun salto de liña ( <br />) ou estar envolta nunha etiqueta de nivel de bloque (por exemplo, <p>) para estruturar correctamente o contido.

Abreviaturas

Para abreviaturas e acrónimos, use a <abbr>etiqueta ( <acronym>está obsoleto en HTML5 ). Coloque o formulario abreviado dentro da etiqueta e estableza un título para o nome completo.

Citas de bloque

<blockquote> <p> <small>

Como citar

<blockquote>Para incluír unha cita en bloque, envolve <p>e <small>etiqueta. Usa o <small>elemento para citar a túa fonte e terás un guión em &mdash;antes.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.

Doutor Julius Hibbert
  1. <cota de bloque>
  2. <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. </p>
  3. <small> Dr. Julius Hibbert </small>
  4. </blockquote>

Listas

Sen orde<ul>

  • Lorem ipsum dolor sit amet
  • Consectetur adipiscing elit
  • Integer molestie Lorem at Massa
  • Facilisis in pretium nisl aliquet
  • Nulla volutpat aliquam velit
    • Phasellus iaculis neque
    • Purus sodales ultricies
    • Vestibulum laoreet porttitor sem
    • Ac tristique libero volutpat at
  • Faucibus porta lacus fringilla vel
  • Aenean sit amet erat nunc
  • Eget portttitor Lorem

Sen estilo<ul.unstyled>

  • Lorem ipsum dolor sit amet
  • Consectetur adipiscing elit
  • Integer molestie Lorem at Massa
  • Facilisis in pretium nisl aliquet
  • Nulla volutpat aliquam velit
    • Phasellus iaculis neque
    • Purus sodales ultricies
    • Vestibulum laoreet porttitor sem
    • Ac tristique libero volutpat at
  • Faucibus porta lacus fringilla vel
  • Aenean sit amet erat nunc
  • Eget portttitor Lorem

Ordenado<ol>

  1. Lorem ipsum dolor sit amet
  2. Consectetur adipiscing elit
  3. Integer molestie Lorem at Massa
  4. Facilisis in pretium nisl aliquet
  5. Nulla volutpat aliquam velit
  6. Faucibus porta lacus fringilla vel
  7. Aenean sit amet erat nunc
  8. Eget portttitor Lorem

Descricióndl

Listas de descricións
Unha lista de descricións é perfecta para definir termos.
Euismod
Vestibulum id ligula porta felis euismod sempre eget lacinia odio sem nec elit.
Donec id elit non mi porta gravida at eget metus.
Malesuada porta
Etiam porta sem malesuada magna mollis euismod.

Código

<code> <pre>

Proxeneta o teu código con estilo con dúas etiquetas sinxelas. Para obter aínda máis fantásticos a través de javascript, introduza a biblioteca de código de Google prettify e xa está.

Presentando código

O código, os bloques ou só fragmentos en liña pódense mostrar con estilo só envolvendo a etiqueta correcta. Para bloques de código que abranguen varias liñas, use o <pre>elemento. Para o código en liña, use o <code>elemento.

Elemento Resultado
<code> Nunha liña de texto como esta, o teu código envolto parecerase a este <html>elemento.
<pre>
<div>
  <h1>Título</h1>
  <p>Algo aquí mesmo...</p>
</div>

Nota: Asegúrese de manter o código dentro das <pre>etiquetas o máis preto posible da esquerda; renderizará todas as pestanas.

<pre class="prettyprint">

Usando a biblioteca google-code-prettify, os teus bloques de código obteñen un estilo visual lixeiramente diferente e un resaltado de sintaxe automático.

<div> <h1> Título </h1> <p> Algo aquí mesmo... </p> </div>
  
  

Descarga google-code-prettify e consulta o readme para saber como usalo.

Etiquetas en liña

<span class="label">

Chama a atención ou marca calquera frase do teu texto corporal.

Etiqueta calquera cousa

Algunha vez necesitou un deses novos novos! ou Bandeiras importantes ao escribir código? Pois agora tes. Aquí tes o que se inclúe por defecto:

Etiqueta Resultado
<span class="label">Default</span> Por defecto
<span class="label success">New</span> Novo
<span class="label warning">Warning</span> Aviso
<span class="label important">Important</span> Importante
<span class="label notice">Notice</span> Aviso

Grella multimedia

Mostra miniaturas de diferentes tamaños en páxinas cunha pegada HTML baixa e estilos mínimos.

Miniaturas de exemplo

As miniaturas .media-gridpoden ser de calquera tamaño, pero funcionan mellor cando se asignan directamente ao sistema de grade Bootstrap integrado. Os anchos das imaxes como 90, 210 e 330 combínanse cuns poucos píxeles de recheo para igualar os tamaños das columnas .span2, .span4, e ..span6

Grande

Medio

Pequena

Codificándoos

As cuadrículas multimedia son fáciles de usar e bastante sinxelas no lado das marcas. As súas dimensións baséanse exclusivamente no tamaño das imaxes incluídas.

  1. <ul class = "media-grid" >
  2. <li>
  3. <a href = "#" >
  4. <img class = "miniatura" src = "https://placehold.it/330x230" alt = "" >
  5. </a>
  6. </li>
  7. <li>
  8. <a href = "#" >
  9. <img class = "miniatura" src = "https://placehold.it/330x230" alt = "" >
  10. </a>
  11. </li>
  12. </ul>

Construíndo táboas

<table> <thead> <tbody> <tr> <th> <td> <colspan> <caption>

As táboas son xeniais, para moitas cousas. As táboas xeniais, porén, necesitan un pouco de amor para as marcas para ser útiles, escalables e lexibles (a nivel de código). Aquí tes algúns consellos para axudar.

Engade sempre as cabeceiras das túas columnas de <thead>forma que a xerarquía sexa <thead>> <tr>> <th>.

Do mesmo xeito que as cabeceiras das columnas, todo o contido do corpo da túa táboa debería estar envolto nun formato <tbody>para que a túa xerarquía sexa <tbody>> <tr>> <td>.

Exemplo: estilos de táboa predeterminados

Todas as táboas terán un estilo automaticamente só cos bordos esenciais para garantir a lexibilidade e manter a estrutura. Non é necesario engadir clases ou atributos adicionais.

# Nome Apelido Lingua
1 Algunhas Un inglés
2 Joe Sixpack inglés
3 Stu Dent Código
  1. <táboa>
  2. ...
  3. </táboa>

Exemplo: táboa condensada

Para as táboas que requiren máis datos en espazos máis reducidos, usa o sabor condensado que reduce o recheo á metade. Tamén se pode usar xunto con bordos e raias de cebra, igual que os estilos de táboa predeterminados.

# Nome Apelido Lingua
1 Algunhas Un inglés
2 Joe Sixpack inglés
3 Stu Dent Código

Exemplo: táboa con bordes

Fai que as túas mesas se vexan un pouco máis elegantes redondeando as súas esquinas e engadindo bordos por todos os lados.

# Nome Apelido Lingua
1 Algunhas Un inglés
2 Joe Sixpack inglés
3 Stu Dent Código
  1. <table class = "bordered-table" >
  2. ...
  3. </táboa>

Exemplo: raias de cebra

Déixate un pouco coas túas táboas engadindo raias de cebra; só tes que engadir a .zebra-stripedclase.

# Nome Apelido Lingua
1 Algunhas Un inglés
2 Joe Sixpack inglés
3 Stu Dent Código
abrangue 4 columnas
abrangue 2 columnas abrangue 2 columnas

Nota: o Zebra-striping é unha mellora progresiva que non está dispoñible para navegadores máis antigos como IE8 e anteriores.

  1. <table class = "raias de cebra" >
  2. ...
  3. </táboa>

Exemplo: raias de cebra con TableSorter.js

Tomando o exemplo anterior, melloramos a utilidade das nosas táboas proporcionando funcionalidades de ordenación mediante jQuery e o complemento Tablesorter . Fai clic na cabeceira de calquera columna para cambiar a ordenación.

# Nome Apelido Lingua
2 Joe Sixpack inglés
3 Stu Dent Código
1 O teu Un inglés
  1. <script src = "js/jquery/jquery.tablesorter.min.js" ></script>
  2. <script >
  3. $ ( función () {
  4. $ ( "táboa#sortTableExample" ). clasificador de táboas ({ sortList : [[ 1 , 0 ]] });
  5. });
  6. </script>
  7. <table class = "raias de cebra" >
  8. ...
  9. </táboa>

Estilos predeterminados

Todos os formularios reciben estilos predeterminados para presentalos dun xeito lexible e escalable. Ofrécense estilos para entradas de texto, listas de selección, áreas de texto, botóns de opción e caixas de verificación e botóns.

Exemplo de lenda do formulario
Algún valor aquí
Pequeno fragmento de texto de axuda
Éxito!
Ruh roh!
Exemplo de lenda do formulario
@
Aquí tes un texto de axuda
Exemplo de lenda do formulario
Nota: As etiquetas rodean todas as opcións para áreas de clic moito máis grandes e un formulario máis utilizable.
a Todas as horas móstranse como a hora estándar do Pacífico (GMT -08:00).
Bloque de texto de axuda para describir o campo anterior se é necesario.
 

Formularios apilados

Engade .form-stackedao HTML do teu formulario e terás etiquetas enriba dos seus campos en lugar de á esquerda. Isto funciona moi ben se os teus formularios son curtos ou tes dúas columnas de entradas para os formularios máis pesados.

Exemplo de lenda do formulario
Exemplo de lenda do formulario
Pequeno fragmento de texto de axuda
Nota: As etiquetas rodean todas as opcións para áreas de clic moito máis grandes e un formulario máis utilizable.
 

Tamaños dos campos do formulario

Personaliza calquera formulario input, select, ou textareaancho engadindo só algunhas clases ao teu marcado.

A partir da versión 1.3.0, engadimos as clases de tamaño baseadas en grade para os elementos do formulario. Use estes sobre as clases existentes .mini, .small, etc.

Botóns

Como convención, os botóns úsanse para accións mentres que as ligazóns úsanse para os obxectos. Por exemplo, "Descargar" pode ser un botón e "actividade recente" pode ser unha ligazón.

Todos os botóns teñen por defecto un estilo gris claro, pero pódense aplicar unha serie de clases funcionais para diferentes estilos de cores. Estas clases inclúen unha .primaryclase azul, unha .infoclase celeste, unha clase verde .successe unha clase vermella .danger.

Botóns de exemplo

Os estilos de botón pódense aplicar a calquera cousa que teña .btnaplicada. Normalmente quererá aplicalos só a elementos <a>, <button>, e seleccionados <input>. Así é como se ve:

       

Tamaños alternativos

Queres botóns máis grandes ou pequenos? ¡Así!

Estado desactivado

Para os botóns que non están activos ou están desactivados pola aplicación por un motivo ou outro, usa o estado desactivado. Iso é .disabledpara ligazóns e :disabledpara <button>elementos.

Ligazóns

Botóns

 

Basic alerts

.alert-message

One-line messages for highlighting the failure, possible failure, or success of an action. Particularly useful for forms.

Get the javascript »

×

Holy guacamole! Best check yo self, you’re not looking too good.

×

Oh snap! Change this and that and try again.

×

Well done! You successfully read this alert message.

×

Heads up! This is an alert that needs your attention, but it’s not a huge priority just yet.

Example code

  1. <div class="alert-message warning">
  2. <a class="close" href="#">×</a>
  3. <p><strong>Holy guacamole!</strong> Best check yo self, you’re not looking too good.</p>
  4. </div>

Block messages

.alert-message.block-message

For messages that require a bit of explanation, we have paragraph style alerts. These are perfect for bubbling up longer error messages, warning a user of a pending action, or just presenting information for more emphasis on the page.

Get the javascript »

×

Holy guacamole! This is a warning! Best check yo self, you’re not looking too good. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

×

Oh snap! You got an error! Change this and that and try again.

  • Duis mollis est non commodo luctus
  • Nisi erat porttitor ligula
  • Eget lacinia odio sem nec elit
×

Well done! You successfully read this alert message. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Maecenas faucibus mollis interdum.

×

Heads up! This is an alert that needs your attention, but it’s not a huge priority just yet.

Example code

  1. <div class="alert-message block-message warning">
  2. <a class="close" href="#">×</a>
  3. <p><strong>Holy guacamole! This is a warning!</strong> Best check yo self, you’re not looking too good. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.</p>
  4. <div class="alert-actions">
  5. <a class="btn small" href="#">Take this action</a> <a class="btn small" href="#">Or do this</a>
  6. </div>
  7. </div>

Modals

Modals—dialogs or lightboxes—are great for contextual actions in situations where it’s important that the background context be maintained.

Get the javascript »

Tooltips

Twipsies are super useful for aiding a confused user and pointing them in the right direction.

Get the javascript »

Lorem ipsum dolar sit amet illo error ipsum veritatis aut iste perspiciatis iste voluptas natus illo quasi odit aut natus consequuntur consequuntur, aut natus illo voluptatem odit perspiciatis laudantium rem doloremque totam voluptas. Voluptasdicta eaque beatae aperiam ut enim voluptatem explicabo explicabo, voluptas quia odit fugit accusantium totam totam architecto explicabo sit quasi fugit fugit, totam doloremque unde sunt sed dicta quae accusantium fugit voluptas nemo voluptas voluptatem rem quae aut veritatis quasi quae.

Popovers

Use popovers to provide subtextual information to a page without affecting layout.

Get the javascript »

Popover Title

Etiam porta sem malesuada magna mollis euismod. Maecenas faucibus mollis interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

Getting started

Integrating javascript with the Bootstrap library is super easy. Below we go over the basics and provide you with some awesome plugins to get you started!

View javascript docs »

What's included

Bring some of Bootstrap's primary components to life with new custom plugins that work with jQuery and Ender. We encourage you to extend and modify them to fit your specific development needs.

File Description
bootstrap-modal.js Our Modal plugin is a super slim take on the traditional modal js plugin! We took special care to include only the bare functionality that we require at twitter.
bootstrap-alerts.js The alert plugin is a super tiny class for adding close functionality to alerts.
bootstrap-dropdown.js This plugin is for adding dropdown interaction to the bootstrap topbar or tabbed navigations.
bootstrap-scrollspy.js The ScrollSpy plugin is for adding an auto updating nav based on scroll position to the bootstrap topbar.
bootstrap-buttons.js The ScrollSpy plugin is for adding an auto updating nav based on scroll position to the bootstrap topbar.
bootstrap-tabs.js This plugin adds quick, dynamic tab and pill functionality for cycling through local content.
bootstrap-twipsy.js Based on the excellent jQuery.tipsy plugin written by Jason Frame; twipsy is an updated version, which doesn't rely on images, uses css3 for animations, and data-attributes for local title storage!
bootstrap-popover.js The popover plugin provides a simple interface for adding popovers to your application. It extends the boostrap-twipsy.js plugin, so be sure to grab that file as well when including popovers in your project!

Is javascript necessary?

Nope! Bootstrap is designed first and foremost to be a CSS library. This javascript provides a basic interactive layer on top of the included styles.

However, for those who do need javascript, we've provided the plugins above to help you understand how to integrate Bootstrap with javascript and to give you a quick, lightweight option for the basic functionality right away.

For more information and to see some live demos, please refer to our plugin documentation page.

Bootstrap was built from Preboot, an open-source pack of mixins and variables to be used in conjunction with Less, a CSS preprocessor for faster and easier web development.

Check out how we used Preboot in Bootstrap and how you can make use of it should you choose to run Less on your next project.

How to use it

Use this option to make full use of Bootstrap’s Less variables, mixins, and nesting in CSS via javascript in your browser.

  1. <link rel="stylesheet/less" href="less/bootstrap.less" media="all" />
  2. <script src="js/less-1.1.3.min.js"></script>

Not feeling the .js solution? Try the Less Mac app or use Node.js to compile when you deploy your code.

What’s included

Here are some of the highlights of what’s included in Twitter Bootstrap as part of Bootstrap. Head over to the Bootstrap website or Github project page to download and learn more.

Variables

Variables in Less are perfect for maintaining and updating your CSS headache free. When you want to change a color value or a frequently used value, update it in one spot and you’re set.

  1. // Links
  2. @linkColor: #8b59c2;
  3. @linkColorHover: darken(@linkColor, 10);
  4.  
  5. // Grays
  6. @black: #000;
  7. @grayDark: lighten(@black, 25%);
  8. @gray: lighten(@black, 50%);
  9. @grayLight: lighten(@black, 70%);
  10. @grayLighter: lighten(@black, 90%);
  11. @white: #fff;
  12.  
  13. // Accent Colors
  14. @blue: #08b5fb;
  15. @green: #46a546;
  16. @red: #9d261d;
  17. @yellow: #ffc40d;
  18. @orange: #f89406;
  19. @pink: #c3325f;
  20. @purple: #7a43b6;
  21.  
  22. // Baseline grid
  23. @basefont: 13px;
  24. @baseline: 18px;

Commenting

Less also provides another style of commenting in addition to CSS’s normal /* ... */ syntax.

  1. // This is a comment
  2. /* This is also a comment */

Mixins up the wazoo

Mixins are basically includes or partials for CSS, allowing you to combine a block of code into one. They’re great for vendor prefixed properties like box-shadow, cross-browser gradients, font stacks, and more. Below is a sample of the mixins that are included with Bootstrap.

Font stacks

  1. #font {
  2. .shorthand(@weight: normal, @size: 14px, @lineHeight: 20px) {
  3. font-size: @size;
  4. font-weight: @weight;
  5. line-height: @lineHeight;
  6. }
  7. .sans-serif(@weight: normal, @size: 14px, @lineHeight: 20px) {
  8. font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  9. font-size: @size;
  10. font-weight: @weight;
  11. line-height: @lineHeight;
  12. }
  13. ...
  14. }

Gradients

  1. #gradient {
  2. ...
  3. .vertical (@startColor: #555, @endColor: #333) {
  4. background-color: @endColor;
  5. background-repeat: repeat-x;
  6. background-image: -khtml-gradient(linear, left top, left bottom, from(@startColor), to(@endColor)); // Konqueror
  7. background-image: -moz-linear-gradient(@startColor, @endColor); // FF 3.6+
  8. background-image: -ms-linear-gradient(@startColor, @endColor); // IE10
  9. background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+
  10. background-image: -webkit-linear-gradient(@startColor, @endColor); // Safari 5.1+, Chrome 10+
  11. background-image: -o-linear-gradient(@startColor, @endColor); // Opera 11.10
  12. background-image: linear-gradient(@startColor, @endColor); // The standard
  13. }
  14. ...
  15. }

Operations

Get fancy and perform some math to generate flexible and powerful mixins like the one below.

  1. // Griditude
  2. @gridColumns: 16;
  3. @gridColumnWidth: 40px;
  4. @gridGutterWidth: 20px;
  5. @siteWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
  6.  
  7. // Make some columns
  8. .columns(@columnSpan: 1) {
  9. width: (@gridColumnWidth * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1));
  10. }

Compiling Less

After modifying the .less files in /lib/, you'll need to recompile them in order to regenerate the bootstrap-*.*.*.css and bootstrap-*.*.*.min.css files. If you're submitting a pull request to GitHub, you must always recompile.

Ways to compile

Method Steps
Node with makefile

Install the less command line compiler with npm by running the following command:

$ npm install lessc

Once installed just run make from the root of your bootstrap directory and you're all set.

Additionally, if you have watchr installed, you may run make watch to have bootstrap automatically rebuilt every time you edit a file in the bootstrap lib (this isn't required, just a convenience method).

Javascript

Download the latest Less.js and include the path to it (and Bootstrap) in the head.

  1. <link rel="stylesheet/less" href="/path/to/bootstrap.less">
  2. <script src="/path/to/less.js"></script>

To recompile the .less files, just save them and reload your page. Less.js compiles them and stores them in local storage.

Command line

If you already have the less command line tool installed, simply run the following command:

$ lessc ./lib/bootstrap.less > bootstrap.css

Be sure to include --compress in that command if you're trying to save some bytes!

Less Mac app

A aplicación non oficial para Mac mira directorios de ficheiros .less e compila o código en ficheiros locais despois de cada gardado dun ficheiro .less observado.

Se queres, podes cambiar as preferencias na aplicación para a minificación automática e en que directorio acaban os ficheiros compilados.