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
As páginas estão nos Passos Comuns no primeiro artigo da série.
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 estilizando usando um framework css classless sem CDN 🤩
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.
Repositório
Acesse aqui o repositório com o código do tutorial
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
Top comments (0)