Com a alta demanda e prazos cada vez menores somos obrigados a trabalhar cada vez mais rápido e isso serve de incentivo para que novos frameworks sejam feitos buscando melhorar a qualidade no desenvolvimento. Um desses frameworks é o Susy e nesse artigo vamos conhecer e dar os primeiros passos com ele.
O que é Susy?
Susy é um framework que permite criar grids de acordo com as necessidades do seu site. Diferente de outros como Bootstrap e Foundation, você não vai precisar importar um arquivo cheio de classes em que vai usar apenas algumas delas. O Susy trabalha direto no estilo das classes que você definiu e personalizou.
Para começar a usá-lo você precisa ter o Sass instalado e o mínimo de conhecimento sobre ele. Não vou me aprofundar em Sass, pois não é o foco desse artigo, mas para quem tiver alguma dúvida a respeito pode ver uma série de artigos aqui mesmo no Tableless.
Agora que já sabemos do que se trata vamos começar a desenvolver nosso layout com Susy.
Criando seu primeiro layout com Susy
Assumindo que você já tem o Sass instalado, vamos instalar o Susy. Abra o prompt de comando e digite:
gem install susy
Após concluir a instalação vamos criar uma pasta para o projeto e dentro dela um arquivo index.html, uma pasta css e uma pasta scss com um arquivo style.scss dentro dela.
Iniciando o desenvolvimento
Vamos construir o seguinte layout:
Primeiramente vamos iniciar o Sass para que nosso código possa ser compilado. Abra a pasta do projeto na linha de comando e digite:
sass --watch scss:css -r susy
Feito isso um arquivo style.css foi criado dentro da pasta css. Vamos adiciona-lo no head no html:
<link rel="stylesheet" href="css/style.css">
Vamos adicionar o normalize ao nosso projeto
Para usar o Susy no projeto temos apenas que adicionar a seguinte linha no style.scss:
@import "susy";
Susy Map
Susy Map é um conjunto de instruções que são declaradas no início do projeto. O grid é gerado de acordo com as informações declaradas nele. Abaixo temos o Map do nosso projeto, vamos adiciona-lo no style.scss, mais informações podem ser adicionadas , mas para nosso projeto é o suficiente. As linhas estão comentadas informando o que cada uma faz.
$susy:( columns: 8, // número de colunas do grid container: 1140px, // largura do container debug: (image: show), // exibe as colunas do grid );
Vou adicionar o código completo, mas somente as funções do Susy serão explicadas. Então vamos começar! No HTML, vamos adicionar o header da página:
<header class="site-header"> <div class="container"> <div class="logo"><a href="#">Logo</a></div> <nav class="menu"> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li><a href="#">Photos</a></li> <li><a href="#">Contact</a></li> </ul> </nav> </div> </header>
Vamos adicionar o estilo dele:
.container { @include container(); // inclui na classe o container definido no Susy Map } .logo { float: left; padding: 0.9375rem; line-height: 2rem; font-size: 1.5rem; } nav { float: right; li { list-style: none; float: left; margin-left: 2rem; line-height: 2rem; } }
Depois do header vamos inserir o banner no html:
<div class="container"> <img src="img/banner.jpg" class="banner"> </div>
Agora o estilo do banner:
img { width:100%; } .banner { @include span(8 of 8); margin: gutter() 0; height: 100%; }
O “@include span (8 of 8)” é uma função do Susy que diz que o banner irar ocupar 8 colunas das 8 declaradas no Susy Map, mas não é só isso, reparem que no margin adicionamos um valor “gutter()”, isso é outra função do Susy que adiciona o valor que existe entre os grids, pode ver como o espaço que está entre o header e o banner é o mesmo que está entre as 8 colunas que definimos no grids.
Agora vamos adicionar o conteúdo do layout:
<div class="container"> <div class="sidebar"> <ul> <li><a href="#">Fortaleza</a></li> <li><a href="#">Natal</a></li> <li><a href="#">Recife</a></li> <li><a href="#">Salvador</a></li> </ul> </div> <div class="content"> <div class="content-item"><img src="img/001.jpg"></div> <div class="content-item"><img src="img/002.jpg"></div> <div class="content-item"><img src="img/003.jpg"></div> <div class="content-item"><img src="img/004.jpg"></div> <div class="content-item"><img src="img/005.jpg"></div> <div class="content-item"><img src="img/006.jpg"></div> </div> </div>
E o estilo delas:
.sidebar { @include span (2 of 8); ul { margin: 0; padding: 1.2rem; } li { list-style: none; font-size: 1.1rem; border-bottom: 2px dotted #c6c6c6; &:last-child { border:none; } } a { display: block; padding: 1rem .5rem; color: #333; line-height: 2; text-decoration: none; } } .content { @include span (6 of 8 last); } .content-item { @include gallery(2 of 6); margin-bottom: gutter(); }
Repare nos includes que acabamos de usar. Na mesma linha usamos 2 colunas para o sidebar e as 6 para o content, veja que adicionamos um last no final do include na classe content, esse last serve para dizer que são as ultimas colunas da linha. O espaço entre os grids é feito com um margin-right e o last serve parar remover esse margin-right do ultimo item do grid. Olha lá o aquivo style.css para entender melhor o que está sendo feito.
O footer não tem muito o que falar, então vamos apenas adicionar o código:
<footer class="site-footer"> <div class="container"> <p>Copyright © 2015 - Desenvolvido por Felipe César para o Tableless</p> </div> </footer>
E o estilo:
.site-footer { margin-top: 2rem; padding: 0.6rem 0; color: #fff; }
Por fim vamos apenas remover do Susy Map a linha que exibe os grids:
debug: (image: show),
Pronto, finalizamos o nosso layout, fácil não é?! Esse projeto foi bem simples apenas para apresentar o framework e mostrar como funciona, mas não pare por aí, faça o download do código, brinque com ele, acesse a documentação do Susy e conheça outros recursos que podem te ajudar bastante no desenvolvimento.
Espero que tenham gostado do artigo, bons estudos!