dev-resources.site
for different kinds of informations.
Ruby on Rails 8 - Frontend Rápido com Frameworks CSS Classless ou Class-Light sem CDN
Este artigo é intencionalmente muito semelhante ao anterior que trata do mesmo assunto, mas usou CDN para os frameworks CSS, entretanto, neste artigo passaremos a usar os arquivos CSS localmente, copiados para a pasta do projeto.
Inicie um novo aplicativo Rails
- O
time
antes do comandorails
serve para exibir no final da execução do comando o seu tempo de execução. No exemplo abaixo, levou 47 segundos.
$ rails -v
Rails 8.0.0
$ time rails new classless-css-local
...
real 0m47.500s
user 0m33.052s
sys 0m4.249s
O Rails 8, dentro de sua filosofia No Build, utilizará por padrão o Propshaft como biblioteca de pipeline de assets e o Importmap como biblioteca para JavaScript. O Importmap não realiza nenhum tipo de processamento do JavaScript.
Abra o projeto com o VSCode ou seu editor preferido
$ cd classless-css-local && code .
Criando algumas páginas para visualizar a estilização dos elementos HTML
Execute os passos do início desta série para incluir as páginas de teste, no link Passos Comuns
Copie seus arquivos CSS para seu projeto colando em app/assets/stylesheets/
Vamos criar uma subpasta Bamboo CSS: https://github.com/rilwis/bamboo/blob/master/dist/bamboo.min.css O Bamboo CSS só possui o arquivo minificado. Você pode formatá-los para que seja mais fácil de entendê-lo usando serviços como o CSS Beautifier & Minifie. Cole o código a esquerda e pegue o arquivo formatado a direita. Renomeie o arquivo para Convertendo o Vanilla SCSS em Vanilla CSS:Exibir mais …
Consultando a documentação do Rails sobre os arquivos CSS, podemos constatar que precisamos seguir poucos passos para estilizar nossa aplicação web copiando os arquivos CSS:
app/assets/stylesheets/
, ou para uma subpasta dentro dela, por exemplo, app/assets/stylesheets/classless
application.html.css
com a tag correta, por exemplo:
app/assets/stylesheets/meuestilo.css
, você deve adicionar ao seu application.html.css
a tag <%= stylesheet_link_tag "meuestilo" %>
sem a extenção .css;app/assets/stylesheets/classless/meuestilo.css
, você deve adicionar ao seu application.html.css
a tag <%= stylesheet_link_tag "classless/meuestilo" %>
sem a extenção .css;classless
dentro de app/assets/stylesheets
para copiar os arquivos css baixados nos links abaixo:
bamboo.css
.
# Acessa a pasta que criamos para os arquivos CSS
$ cd app/assets/stylesheets/classless/
# Clonar o repositório
$ git clone https://github.com/canonical/vanilla-framework.git
$ cd vanilla-framework
# Instalar dependências
$ yarn install
# Compilar SCSS para CSS
$ yarn build
app/assets/stylesheets/classless/vanilla-framework/build/css/build.css
e para deixar o código mais legível use o serviço do site CSS Beautifier & Minifie. Cole o código a esquerda e pegue o arquivo formatado a direita. Renomeie o arquivo para vanilla.css
e recorte para a pasta app/assets/stylesheets/classless
app/assets/stylesheets/classless/vanilla-framework/
Abra novamente a página app/views/layouts/application.html.erb
para referenciar os estilos CSS sem classe copiados para o projeto
PARAExibir mais …
<%= stylesheet_link_tag :app, "data-turbo-track": "reload" %>
inserindo um #
após o <%
para que o Rails não carregue todos os estilos de uma só vez. Para descomentar, remova o #
. Caso use os atalhos do VSCode Ctrl + K + C
para comentar, a linha não ficará corretamente comentada.
ALTERE DE:
<%= stylesheet_link_tag :app, "data-turbo-track": "reload" %>
<%#= stylesheet_link_tag :app, "data-turbo-track": "reload" %>
<%# Includes all stylesheet files in app/assets/stylesheets %>
<%#= stylesheet_link_tag :app, "data-turbo-track": "reload" %>
<%= javascript_importmap_tags %>
</head>
, cole o conteúdo a seguir. Você não precisa de todos esses estilos, eles foram inseridos para que você possa testar várias opções.
<%# ---[ Normalize CSS: https://github.com/necolas/normalize.css/ ]--- %>
<%# Normaliza alguns estilos, preserva padrões importantes, corrige bugs de alguns navegadores, etc ... %>
<%# Por exemplo, o o <h1> pode ter margens ou fontes diferentes entre navegadores %>
<%# Mantenha este descomentado junto com um dos frameworks CSS abaixo %>
<%= stylesheet_link_tag "classless/normalize" %>
<%# ---[ Pico CSS: https://picocss.com/ ]--- %>
<%= stylesheet_link_tag "classless/pico" %>
<%# ---[ MVP CSS: https://andybrewer.github.io/mvp ]--- %>
<%# Para usar a configuração do SO para o modo escuro/claro, configure na tag HTML assim: <html color-mode="user"> %>
<%#= stylesheet_link_tag "classless/mvp" %>
<%# ---[ Chota CSS: https://jenil.github.io/chota/ ]--- %>
<%#= stylesheet_link_tag "classless/chota" %>
<%# ---[ Simple CSS: https://simplecss.org/ ]--- %>
<%#= stylesheet_link_tag "classless/simple" %>
<%# ---[ Classless CSS: https://classless.de/ ]--- %>
<%#= stylesheet_link_tag "classless/classless" %>
<%# ---[ Concrete CSS: https://concrete.style/ ]--- %>
<%#= stylesheet_link_tag "classless/concrete" %>
<%# ---[ Almond CSS: https://alvaromontoro.github.io/almond.css/demo/ ]--- %>
<%#= stylesheet_link_tag "classless/almond" %>
<%# ---[ Vanilla CSS: https://vanillaframework.io/ ]--- %>
<%#= stylesheet_link_tag "classless/vanilla" %>
<%# ---[ Picnic CSS: https://picnicss.com/ ]--- %>
<%#= stylesheet_link_tag "classless/picnic" %>
<%# ---[ YACCK - Yet Another Classless CSS Kit: https://sphars.github.io/yacck/ ]--- %>
<%#= stylesheet_link_tag "classless/yacck" %>
<%# ---[ Sakura CSS: https://oxal.org/projects/sakura/ ]--- %>
<%#= stylesheet_link_tag "classless/sakura" %>
<%# ---[ Bamboo CSS: https://rilwis.github.io/bamboo/demo/ ]--- %>
<%#= stylesheet_link_tag "classless/bamboo" %>
Normalize CSS
e o Pico CSS
<%= stylesheet_link_tag "classless/pico" %>
e descomente a linha de outro estilo, por exemplo, a linha do Simple CSS
.#
após o <%
. Para descomentar, remova o #
. Caso use os atalhos do VSCode Ctrl + K + C
para comentar, a linha não ficará corretamente comentada.
Agora sim, um HTML com estilo 🤩
Após salvar as folhas de estilo acima e iniciar o servior do Rails você verá seu HTML estilizado com o frameworks css escolhido.
Modo dark
Alguns estilos possuem a opção para modo escuro (dark mode). Para confirmar, altere o tema do seu computador nas opções de personalização de cores. Procure no Windows por Ativar modo escuro para apps
e alterne entre modo escuro ou claro. A página HTML deverá automaticamente muda após a alteração no sistema operacional, indicando que possui suporte para o modo light e dark.
Passos seguintes
[x] Organizar os estilos de acordo com sua preferência;
[x] Usar estilização a partir de arquivos CSS do projeto, sem usar CDN;
[-] Atualizar dinamicamente no navegador as alterações feitas no projeto usando Rails Live Reload
;
[-] Se quiser gastar um pouco mais de tempo com o frontend, verifique as opções de customização do seu estilo favorito;
[-] Replicar a capacidade de um framework classless CSS usando Tailwind;
Referências
- https://guides.rubyonrails.org/layouts_and_rendering.html
- https://dev.to/leonardorafael/the-classless-and-class-light-css-aproaches-2b98
- https://prismic.io/blog/best-css-frameworks
- https://saeedesmaili.com/notes/classless-css-libraries/
- https://dev.to/logrocket/comparing-classless-css-frameworks-3267
- https://github.com/dbohdan/classless-css
- https://github.com/troxler/awesome-css-frameworks
Featured ones: