Considerações Finais

A abordagem apresentada até este ponto não é a única possível, mas o meu intuito não é te apresentar tudo que está disponível no Sass, mas sim te mostrar os primeiros passos para que você consiga desenvolver os seus estudos. Nesse site há mais alguns exemplos básicos sobre a utilização do Sass, em especial, veja com atenção sobre @extend e operadores.

Todo esse conhecimento passado até aqui foi bem básico, mas se você quiser conhecer o Sass pra valer, vá até a documentação.

Antes de finalizarmos, devemos remover as referencias aos arquivos .map.

Removendo o sourceMap de produção

Lembra que eu falei que não devemos colocar em produção os arquivos .map e que devemos remover as referências à estes arquivos? Pois então, para fazer isso, basta incluir uma opção nas configurações do Sass em nosso Gruntfile.js. Veja:


sass: {
    options: {
        sourceMap: false
    },          
    dist: {
       files: {
              'deploy/css/main.css': 'source/sass/main.scss',
       },
    },
}

automatização da automatização

Para compilar seus arquivos, você pode digitar no terminal o nome da sua tarefa ou fazer com que, toda vez que um arquivo .scss seja alterado e salvo, o GruntJS rode automaticamente e tarefa necessária. Para isso você precisará instalar o watch do grunt. Este wrapper é responsável por monitorar alterações nos seus arquivos (.scss, por exemplo) e rodar determinadas tarefas quando estes arquivos forem salvos. Dessa forma, configurando corretamente, você consegue fazer com que o grunt rode a sua tarefa sass toda vez que um arquivo .scss for salvo, sem que você tenha digitar o tempo todo comandos no terminal para esta tarefa.

Fallback com o Modernizr

No componente buttonsContainer, você pode utilizar o sinal de & para criar um fallback de css para quando o browser não tiver suporte à todas as features utilizadas em nossa folha de estilo.

Uma palavra sobre o BEM.

Nesse ponto nosso arquivo está funcionando perfeitamente. Vimos como trabalhar com variáveis, @mixins/@include,seletor & e aninhamento de seletores. Dei uma rápida passada sobre as @function/@return e pedi para que você visse por conta própria sobre @extend e os operadores. Isso cobre uma parte de qualquer pré-processador, mas fique ciente que ainda há muito que não foi discutido.

Para encerrar, gostaria de sugerir que você use com cautela o aninhamento de seletores. O meu exemplo foi para uso didático, mas creio que possa ser melhorado.

Se olharmos com atenção para a metodologia BEM, vemos que não faz muito sentido termos seletores desse tipos:

.buttonsContainer .buttonsContainer__button

O seletor acima poderia ser facilmente substituído por:

.buttonsContainer__button

Concorda?

Se achar válido, altere seus arquivos .scss para deixar os seletores do arquivo compilado mais simples, quando possível.

results matching ""

    No results matching ""