5 Frameworks Incríveis (e Leves!) Que Superam o Bootstrap

Foto do autor

By luis

O Bootstrap é onipresente, mas nem sempre a opção mais adequada. Exploraremos algumas alternativas excelentes!

Ao analisar o código-fonte de front-end de muitos sites atualmente, é provável que encontre o Bootstrap. Conceitos como container-fluid, row, col-sm-6 tornaram-se tão comuns que é difícil imaginar outras abordagens de desenvolvimento front-end. Assim, ao iniciar um novo projeto, a nossa primeira escolha é muitas vezes o Bootstrap. No entanto, a sua popularidade não significa que seja a melhor solução para todos os projetos.

Para interfaces de utilizador mais simples, o carregamento de todo o CSS e JavaScript do Bootstrap pode gerar um grande inchaço no código.

Este artigo tem como objetivos:

  • Apresentar alternativas viáveis ao Bootstrap.
  • Explicar as razões pelas quais poderá preferir estas alternativas em relação ao Bootstrap.

Acredito que a explicação é fundamental, pois muitas vezes as pessoas não percebem que o Bootstrap pode estar a limitar o seu trabalho. Importa salientar que este artigo não é uma crítica ao Bootstrap. Sou fã do Bootstrap 4 e uso-o sempre que possível. No entanto, como desenvolvedor individual, preciso ponderar qual a solução mais adequada e, como não sou um especialista em design de interface de utilizador, não me preocupo com alguns aspetos na construção dos meus front-ends.

Dito isto, vamos explorar algumas alternativas.

Flexbox Grid

Reflita um pouco: a principal razão pela qual começou a usar o Bootstrap, e continua a usá-lo, é o seu sistema de grelha. É certo que levou algum tempo para se habituar às classes row, col-md-6, etc., mas agora é natural pensar em layouts em termos de linhas, colunas e deslocamentos.

Se for honesto consigo próprio, perceberá que o resto do Bootstrap é um pouco pesado de usar. Existem inúmeras classes para memorizar, quer esteja a criar formulários, navegação, botões, tabelas ou qualquer outro elemento. Se for como eu, provavelmente ainda não se habituou a todas as classes e as suas funções, e utiliza o Bootstrap apenas pela grelha, escrevendo o resto do CSS manualmente.

Nesse caso, o Flexbox Grid pode ser uma solução muito melhor.

O Flexbox Grid, como o próprio nome indica, é um sistema de grelha baseado nas propriedades Flexbox do CSS. A complexidade é abstraída, permitindo que se concentre em posicionar os elementos como pretende. A melhor parte é que os nomes de classes imitam os do Bootstrap 4, facilitando a transição entre as duas ferramentas. Por exemplo, observe o código para o “espaço ao redor” no Flexbox Grid:

 <div class="row around-xs">
  <div class="col-xs-2">
    <div class="box">
      around
    </div>
  </div>
  <div class="col-xs-2">
    <div class="box">
      around
    </div>
  </div>
  <div class="col-xs-2">
    <div class="box">
      around
    </div>
  </div>
</div>

O arquivo CSS reduzido deste sistema de grelha tem apenas 10,7 KB, economizando várias centenas de KB no tamanho final do download. Atualmente, o Flexbox Grid é o meu favorito, pois permite personalizar o layout sem os obstáculos do Bootstrap. Prefiro começar com elementos básicos e estilizar usando o Flexbox Grid quando necessário.

Aprenda mais sobre Flexbox online.

PureCSS

Não seria ótimo se o Bootstrap fosse modular, permitindo importar apenas o necessário?

O PureCSS fez exatamente isso: é um conjunto de módulos que abrangem diferentes áreas funcionais de um site. Pode baixar apenas um módulo ou todos eles, e o tamanho do download não ultrapassará os 3,7 KB!

Sim, leu bem.

Todos os módulos juntos e comprimidos têm apenas 3,7 KB, embora individualmente sejam maiores. O módulo de grelha tem apenas 0,8 KB, enquanto o módulo Base tem 1,0 KB. A equipa por trás do PureCSS afirma que foi construído a pensar nos dispositivos móveis, pelo que cada linha de CSS foi cuidadosamente analisada quanto à sua eficiência.

Suponha que precise apenas dos módulos de grelha e formulários. Basta baixar estes dois (juntamente com o módulo Base), e terá menos de 3,4 KB! Não precisa de incluir o CSS dos módulos de botões, tabelas e menus, se não os utilizar.

O PureCSS utiliza as suas próprias classes, e o código resultante não imita o Bootstrap, com o qual pode estar habituado:

 <div class="pure-g">
  <div class="pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
    <div class="l-box">
      <h3>Lorem Ipsum</h3>
    </div>
  </div>
  
  <div class="pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
    <div class="l-box">
      <h3>Dolor Sit Amet</h3>
    </div>
  </div>
  
  <div class="pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
    <div class="l-box">
      <h3>Proident laborum</h3>
    </div>
  </div>
  
  <div class="pure-u-1 pure-u-md-1-2 pure-u-lg-1-4">
    <div class="l-box">
      <h3>Praesent consectetur</h3>
    </div>
  </div>
</div>

Como pode ver, não existe mais uma grelha de 12 colunas. O PureCSS tem um sistema próprio que especifica a largura que uma coluna deve ter. Assim, pure-u-lg-1-4 significa que este elemento deve ocupar 1/4 ou 25% da largura disponível em ecrãs grandes. Também estão disponíveis larguras como múltiplos de 1/5.

Em suma, o PureCSS é uma ferramenta de CSS flexível e poderosa que pode usar quando necessário. No entanto, requer um investimento de tempo e alguma curva de aprendizagem, pois terá de aprender uma nova forma de fazer as coisas. Além disso, o PureCSS tem as suas próprias classes e estilo padrão, pelo que não é muito diferente do Bootstrap.

Zimit

O framework Zimit é um pouco peculiar nesta lista. Sim, é um framework para construir interfaces de utilizador, mas focado em tipos específicos: protótipos.

Há momentos em que precisa de desenvolver o front-end para mostrar como um produto funciona. A melhor forma de o fazer seria envolver um designer/desenvolvedor de interface de utilizador e criar os protótipos numa das ferramentas avançadas de wireframing (Moqups, Balsamiq, etc.). As páginas seriam perfeitas em termos de pixels, com esquemas de cores elegantes e bem escolhidos, e estariam abertas a comentários e críticas.

No entanto, a vida real não é perfeita, e muitas vezes é o único responsável por todas as tarefas. Nesses momentos, precisa de um framework que:

  • Permita codificar em HTML/CSS
  • Seja leve
  • Possua uma vasta coleção de componentes básicos
  • Tenha uma linguagem de estilo consistente
  • Se possível, assemelhe-se ao tom “cinzento” do design de wireframe
  • Seja fácil de aprender
  • Tenha um pré-processador CSS integrado

O Zimit preenche todos esses requisitos. Tem apenas 84 KB e uma ampla variedade de componentes. Aqui estão alguns exemplos que achei muito úteis, pois codificá-los manualmente levaria muito tempo.

Vista em árvore

Migalhas de pão

Separadores

Há muito mais para explorar. Veja-os aqui.

Vamos ver o código. Eis como usaria o sistema de grelha no Zimit:

 <div class="row">
  <div class="c12">
    <div class="row">
      <div class="c4">4 colunas</div>
      <div class="c4">4 colunas</div>
    </div>
    <div class="row">
      <div class="c4">4 colunas</div>
      <div class="c4">4 colunas</div>
    </div>
  </div>
</div>

O “c” significa “coluna”, então “c4” significa uma coluna que abrange quatro unidades (a grelha é de tamanho 12, tal como a do Bootstrap). Muito semelhante ao Bootstrap, e bastante intuitivo, na minha opinião.

Em resumo, o Zimit é um framework completo e fácil de usar para desenvolver rapidamente protótipos de interface de utilizador responsivos e com bom aspeto. É melhor do que o Bootstrap (quando se trata de prototipagem) porque o Bootstrap é um download muito maior e o design resultante é, bem, pouco elegante.

HTML KickStart

Na maioria dos projetos, a velocidade é fundamental. O maior obstáculo para acelerar o desenvolvimento web é o front-end, e o maior “atraso” no desenvolvimento de front-end é a necessidade de codificar componentes interativos e com bom aspeto. Como existem várias formas de um componente se comportar e muitos tamanhos de ecrã para gerir, codificar e gerir componentes pode tornar-se um pesadelo para o desenvolvedor.

O HTML KickStart oferece uma alternativa.

É uma coleção de componentes realmente elegantes que pode simplesmente adicionar aos seus projetos e reduzir drasticamente o tempo de desenvolvimento. Aqui estão alguns componentes interessantes que encontrei:

Listas suspensas

Botões

Separadores (centralizados e com ícones)

Materialize

Se aprecia o Bootstrap por ter uma solução pronta para todos os problemas comuns de design web, mas é fã do estilo Material Design, deve experimentar o Materialize.

O Materialize é semelhante ao Bootstrap: sistema de grelha de 12 pontos, deslocamentos e componentes familiares como formulários, cartões, etc. No entanto, possui algumas vantagens que podem ser atraentes para muitos.

Empurrar e puxar

O recurso push/pull do Materialize CSS permite reordenar as colunas. Isto é semelhante ao novo padrão CSS Grid, onde o layout é diferente da ordem dos elementos.

 <div class="row">
    <div class="col s7 push-s5"><span class="flow-text">Este div tem 7 colunas de largura e foi empurrado para a direita por 5 colunas.</span></div>
    <div class="col s5 pull-s7"><span class="flow-text">5 colunas de largura e foi puxado para a esquerda por 7 colunas.</span></div>
  </div>

Isto resulta no seguinte:

As colunas trocam de lugar, algo que talvez seja impossível no CSS tradicional baseado no Bootstrap.

Extras em JavaScript

Existem alguns recursos e efeitos em JavaScript que fazem parte do Materialize. Dicas de ferramentas, brindes (notificações efémeras semelhantes ao Android), Paralaxe, Pushpin, etc., são alguns deles. Um efeito realmente interessante é o FeatureDiscovery, que permite destacar um elemento na página num determinado evento (por exemplo, pressionar um botão) para chamar a atenção do utilizador para esse elemento. É difícil descrevê-lo completamente, por isso visite https://materializecss.com/feature-discovery.html para ver o que quero dizer.

Em suma, o Materialize é uma excelente alternativa ao Bootstrap para quem pretende adotar um framework Material CSS completo.

Conclusão

O Bootstrap é sinónimo de design responsivo. Foi o Bootstrap que popularizou o termo “design mobile-first” e mostrou como isso poderia ser feito. Mas, embora o Bootstrap funcione na maioria das vezes, apenas funcionar nem sempre é suficiente. Se sentir que o Bootstrap o está a limitar e que as suas necessidades são especiais, uma das opções aqui listadas pode ser útil. 🙂