Customize e extenda o Bootstra com o LESS, um pré-processador CSS, que tira vantagens de variáveis, mixins, e amplamente usado para gerar o CSS do Bootstrap.
O Bootstrap foi feito com o LESS desde seu início, uma linguagem de estilos dinâmica criada pelo nosso bom amigo Alexis Sellier. Foi desenvolvido para deixar o CSS mais rápido, mais fácil e mais divertido
Como uma extensão do CSS, LESS inclui variáveis, mixins para pedaços reusáveis de código, operações para simples matemática, aninhamento, ou até mesmo função de cores
Visite o website oficial em http://lesscss.org para saber mais
Gerenciar valores de cores e pixel no CSS pode ser um pouco doloroso, geralmente fazendo copiar e colar. Não com o LESS que você pode—determinar cores ou pixels como variáveis e mudá-las somente uma vez
Aquelas três declarações de border-radius que você precisa para fazer um ol regular no CSS? Agora você pode fazer isto em uma linha com a ajuda de mixins, pedaços de códigos para serem reutilizados em qualquer lugar.
Faça seu grid, liderando, e super flexível fazendo a matemática em tempo real com operações. Multiplique, divida, adicione, e subtraia da sua maneira que a sanidade do CSS permite
@bodyBackground |
@white |
Cor de fundo da página | |
@textColor |
@grayDark |
Cor de texto padrão para o corpo completo, cabeçalho e mais | |
@linkColor |
#08c |
Cor padrão de link de texto | |
@linkColorHover |
darken(@linkColor, 15%) |
Cor padrão de link de texto no estado hover |
@gridColumns |
12 |
@gridColumnWidth |
60px |
@gridGutterWidth |
20px |
@fluidGridColumnWidth |
6.382978723% |
@fluidGridGutterWidth |
2.127659574% |
@sansFontFamily |
"Helvetica Neue", Helvetica, Arial, sans-serif | |
@serifFontFamily |
Georgia, "Times New Roman", Times, serif |
|
@monoFontFamily |
Menlo, Monaco, "Courier New", monospace | |
@baseFontSize |
13px | Must be pixels |
@baseFontFamily |
@sansFontFamily |
|
@baseLineHeight |
18px | Must be pixels |
@altFontFamily |
@serifFontFamily |
|
@headingsFontFamily |
inherit |
|
@headingsFontWeight |
bold |
|
@headingsColor |
inherit |
@tableBackground |
transparent |
@tableBackgroundAccent |
#f9f9f9 |
@tableBackgroundHover |
#f5f5f5 |
@tableBorder |
ddd |
@black |
#000 | |
@grayDarker |
#222 | |
@grayDark |
#333 | |
@gray |
#555 | |
@grayLight |
#999 | |
@grayLighter |
#eee | |
@white |
#fff |
@blue |
#049cdb | |
@green |
#46a546 | |
@red |
#9d261d | |
@yellow |
#ffc40d | |
@orange |
#f89406 | |
@pink |
#c3325f | |
@purple |
#7a43b6 |
@btnBackground |
@white |
|
@btnBackgroundHighlight |
darken(@white, 10%) |
|
@btnBorder |
darken(@white, 20%) |
|
@btnPrimaryBackground |
@linkColor |
|
@btnPrimaryBackgroundHighlight |
spin(@btnPrimaryBackground, 15%) |
|
@btnInfoBackground |
#5bc0de |
|
@btnInfoBackgroundHighlight |
#2f96b4 |
|
@btnSuccessBackground |
#62c462 |
|
@btnSuccessBackgroundHighlight |
51a351 |
|
@btnWarningBackground |
lighten(@orange, 15%) |
|
@btnWarningBackgroundHighlight |
@orange |
|
@btnDangerBackground |
#ee5f5b |
|
@btnDangerBackgroundHighlight |
#bd362f |
|
@btnInverseBackground |
@gray |
|
@btnInverseBackgroundHighlight |
@grayDarker |
@placeholderText |
@grayLight |
@inputBackground |
@white |
@inputBorder |
#ccc |
@inputBorderRadius |
3px |
@inputDisabledBackground |
@grayLighter |
@formActionsBackground |
#f5f5f5 |
@warningText |
#c09853 | |
@warningBackground |
#f3edd2 | |
@errorText |
#b94a48 | |
@errorBackground |
#f2dede | |
@successText |
#468847 | |
@successBackground |
#dff0d8 | |
@infoText |
#3a87ad | |
@infoBackground |
#d9edf7 |
@navbarHeight |
40px | |
@navbarBackground |
@grayDarker |
|
@navbarBackgroundHighlight |
@grayDark |
|
@navbarText |
@grayLight |
|
@navbarLinkColor |
@grayLight |
|
@navbarLinkColorHover |
@white |
|
@navbarLinkColorActive |
@navbarLinkColorHover |
|
@navbarLinkBackgroundHover |
transparent |
|
@navbarLinkBackgroundActive |
@navbarBackground |
|
@navbarSearchBackground |
lighten(@navbarBackground, 25%) |
|
@navbarSearchBackgroundFocus |
@white |
|
@navbarSearchBorder |
darken(@navbarSearchBackground, 30%) |
|
@navbarSearchPlaceholderColor |
#ccc |
|
@navbarBrandColor |
@navbarLinkColor |
@dropdownBackground |
@white |
@dropdownBorder |
rgba(0,0,0,.2) |
@dropdownLinkColor |
@grayDark |
@dropdownLinkColorHover |
@white |
@dropdownLinkBackgroundHover |
@linkColor |
@@dropdownDividerTop |
#e5e5e5 |
@@dropdownDividerBottom |
@white |
@heroUnitBackground |
@grayLighter |
|
@heroUnitHeadingColor |
inherit |
|
@heroUnitLeadColor |
inhereit |
Um mixin básico é essencialmente uma inclusão de um código parcial de CSS. Eles são escritos simplesmente como uma classe CSS pode ser chamada de qualquer lugar
.element { .clearfix(); }
Um mixin parametrizado é simplesmente como um mixin básico, mas também aceita parâmetros com valores padrão opcionais
.element { .border-radius(4px); }
Todos mixins do Bootstrap estão guardados em mixins.less, um arquivo de utilizade .less que permite que você use um mixin em qualquer arquivo .less na ferramenta
Então, vá em frente e use mixings existentes ou sinta-se a vontade para adicionar quando necessário
Mixin | Parâmetros | Uso |
---|---|---|
.clearfix() |
none | Adicione qualquer pai para limpar os floats juntos |
.tab-focus() |
none | Aplique o focus no estilo webkit e arredonde o outline do firefox |
.center-block() |
none | Auto centralize um elemento block-level usando margin:auto |
.ie7-inline-block() |
none | Adicione o regular display: inline-block para dar suporte ao IE7 |
.size() |
@height @width |
Escolha o tamanho da alutra e largura em uma linha |
.square() |
@size |
Construa um .size() para escolher largura e altura de mesmos valores |
.opacity() |
@opacity |
Escolha, em números inteiros, a percentagem do opacity (e.g., "50" or "75") |
Mixin | Parâmetros | Uso |
---|---|---|
.placeholder() |
@color: @placeholderText |
Escolha a cor do texto de placeholder para inputs |
Mixin | Parâmetros | Uso |
---|---|---|
#font > #family > .serif() |
none | Faça um elemento usar uma fonte serifada |
#font > #family > .sans-serif() |
none | Faça um elemento usar uma fonte sans-serif |
#font > #family > .monospace() |
none | Faça um elemento usar uma fonte monoespaçada |
#font > .shorthand() |
@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight |
Facilmente escolha tamanho e peso |
#font > .serif() |
@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight |
Escolha font family para serif, e controle tamanho e peso |
#font > .sans-serif() |
@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight |
Escolha font family para sans-serif, e controle tamanho e peso |
#font > .monospace() |
@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight |
Escolha font family para monospace, e controle tamanho e peso |
Mixin | Parâmetros | Uso |
---|---|---|
.container-fixed() |
none | Cria um container horizontalmente centralizar para abrigar teu conteúdo |
#grid > .core() |
@gridColumnWidth, @gridGutterWidth |
Gera um pixel grid system (container, row e columns) com n colunas e x pixels de gutter |
#grid > .fluid() |
@fluidGridColumnWidth, @fluidGridGutterWidth |
Gera um sistema de grid em percentagens com n colunas e x % de espaçamento entre colunas |
#grid > .input() |
@gridColumnWidth, @gridGutterWidth |
Gera um sistema de grid em pixal para elementos input , contando com padding e bordas |
.makeColumn |
@columns: 1, @offset: 0 |
Transforme qualquer div em um grid de coluna sem uma .span* classes |
Mixin | Parâmetros | Uso |
---|---|---|
.border-radius() |
@radius |
Arredonde as bordas de um elmento. Isto pode ser feito comum único valor ou um valor separado em quatro valores únicos |
.box-shadow() |
@shadow |
Adicione uma sombra num elmento |
.transition() |
@transition |
Adicione uma transição de efeito CSS3 (e.g., all .2s linear ) |
.rotate() |
@degrees |
Rotacione um elemento em n graus |
.scale() |
@ratio |
Escale um elemento em n vezes seu tamanho original |
.translate() |
@x, @y |
Move um elemento nas cordenadas x e y |
.background-clip() |
@clip |
Corte o background de um elemento (útil para border-radius ) |
.background-size() |
@size |
Controle o tamanho de imagens de background via CSS3 |
.box-sizing() |
@boxmodel |
Muda o box model de um elemento ((e.g., border-box ara um input ) de largura completa) |
.user-select() |
@select |
Controla a seleção do cursor de um texto na página |
.backface-visibility() |
@visibility: visible |
Prever um tremido no conteúdo usando transformações CSS em 3D |
.resizable() |
@direction: both |
Torna qualquer elemento redimensionável da direita para a parte inferior |
.content-columns() |
@columnCount, @columnGap: @gridGutterWidth |
Faz o conteúdo virar coluna de qualquer elemento usando CSS3 |
.hyphens() |
@mode: auto |
Hifenização com CSS3 quando você quer (inclui word-wrap: break-word ) |
Mixin | Parâmetros | Uso |
---|---|---|
#translucent > .background() |
@color: @white, @alpha: 1 |
Dá ao elemento uma cor de fundo translúcida |
#translucent > .border() |
@color: @white, @alpha: 1 |
Dá ao elemento uma cor de borda translúcida |
#gradient > .vertical() |
@startColor, @endColor |
Cria um gradiente vertical cross-browser |
#gradient > .horizontal() |
@startColor, @endColor |
Cria um gradiente horizontal cross-browser |
#gradient > .directional() |
@startColor, @endColor, @deg |
Cria um gradiente direcional cross-browser |
#gradient > .vertical-three-colors() |
@startColor, @midColor, @colorStop, @endColor |
Cria um gradiente de três cores cross-browser |
#gradient > .radial() |
@innerColor, @outerColor |
Cria um gradiente radial cross-browser |
#gradient > .striped() |
@color, @angle |
Cria um gradiente zebrado cross-browser |
#gradientBar() |
@primaryColor, @secondaryColor |
Usado para botões para um gradiente levemente com borda mais escura |
Instala uma linha de comando LESS ao compilador, JSHint, Recess, e uglify-js globalmente com npm executando o seguinte comando
$ npm install -g less jshint recess uglify-js
Uma vez instalado execute make
da origem do seu diretório bootstrap e você está configurado.
Adicionalemnte, se você tiver um watchr instalado, você pode executar make watch
para o bootstrap automaticamente reconstruir cada vez que você edita um arquivo na biblioteca do bootstrap(isto não é obrigatório, é só um método auxiliar)
Instale a linha de comando LESS via Node e execute o seguinte comando:
$ lessc ./less/bootstrap.less > bootstrap.css
Tenha certeza de incluir --compress
no comando para você economizar alguns bytes!
Faça download do último Less.js e inclua o caminho (e o Bootstrap) no <head>
.
<link rel="stylesheet/less" href="/path/to/bootstrap.less"> <script src="/path/to/less.js"></script>
Para recompilar os arquivos .less, simplesmente salve-os e recarregue sua página. Less.js compila e os armazena com armazenamento local
O aplicativo não oficial para Mac detecta diretórios de arquivos .less e compila a cada vez que os arquivos .less são modificados.
Se você quiser, você pode alternar configurações do aplicativo para automaticamente minificar em qual diretório para os arquivos compilados
Crunch é um editor ótimo de CSS e um compilador construído sob o Adobe Air
Criado pelos mesmos criados do aplicativo não oficial para Mac, CodeKit é um aplicativo que compila LESS, SASS, Stylus, e CoffeeScript
Mac, Linux, e PC tem drag n drop arquivos less para compilarem. além disto, o código fonte está no Github.