O que aconteceu?
Por dentro do app
Neste capítulo, só a aparência mudou. Você mexeu em três arquivos, todos de view:
- O layout,
app/views/layouts/application.html.erb, que é a moldura de todas as páginas: ele passou a trazer o Bulma. - As views do app: a do mural de recados,
index.html.erb, e as dos formulários,new.html.erbeedit.html.erb. Elas ganharam classes, que dizem ao Bulma o que é cada parte da página.
Você está aqui: este é o caminho que uma requisição percorre dentro do app.
flowchart LR
Navegador --> Rota --> Controller
Controller <--> Model
Model <--> Banco[(Banco de dados)]
Controller --> View --> Navegador
classDef aqui fill:#73121b,stroke:#f2b8be,stroke-width:2px,color:#fff
classDef visto fill:#fbe3e5,stroke:#c98b91,color:#490606
class View aqui
class Rota,Controller,Model,Banco visto
Em vermelho escuro, as peças deste capítulo; em rosa claro, as que você já conhece dos capítulos anteriores.
Estilos prontos
O Bulma é uma biblioteca de CSS: um conjunto de estilos que outra pessoa já escreveu e deixou pronto para usar. Você não escreveu nenhum estilo: só deu nomes às partes da página, com as classes, e o Bulma já sabia como mostrar um button, um card ou uma box.
O layout, a moldura de todas as páginas
Cada view monta só o miolo da página. O resto, como o título da aba e os estilos, vem do layout, que envolve todas as views. Por isso bastou uma linha no layout para o Bulma valer no app inteiro.
A separação valeu a pena
No capítulo 03, você viu que a view e o model ficam separados. Neste capítulo, você trocou toda a aparência dos recados sem mexer no model, no controller nem em nenhum recado guardado.
Não existem perguntas bobas
Preciso decorar as classes do Bulma?
Não. Ninguém decora: quem programa consulta a documentação do Bulma, em inglês, sempre que precisa. Lá tem exemplos de cada parte, como botões, cartões e formulários, prontos para copiar.
Todo app busca o CSS na internet, como o Bulma aqui? Para ir além
Não. Buscar o CSS em outro site, pela linha do <link>, é o jeito mais rápido de começar: uma linha só, sem instalar nada. Por isso o guia usa. Mas esse jeito depende da internet e de outro site estar no ar. É também por isso que o endereço tem a versão do Bulma (bulma@1.0.4): assim, o visual do app não muda sozinho quando sair uma versão nova.
Em apps de verdade, o mais comum é o CSS ficar dentro do próprio app, junto com o resto do código, na pasta app/assets/stylesheets. O Rails já criou um arquivo lá, o application.css, que você vai usar no desafio Cores nos recados. Esse CSS pode ser escrito à mão, vir de uma biblioteca guardada no projeto ou ser montado por uma ferramenta, como o Tailwind. Assim, o app funciona igual em qualquer lugar, e quem programa decide quando atualizar.
Usar uma biblioteca pronta não é trapaça?
Não. Quase todo app usa código que outras pessoas escreveram, e o próprio Rails é um exemplo disso. Escolher uma boa ferramenta e saber usar é parte do trabalho de quem programa. Aprender a escrever CSS do zero continua útil, e você pode fazer isso com calma depois do workshop.
Dá para mudar as cores e o jeito dos botões? Para ir além
Dá. Troque o is-primary do botão Postar recado por is-link, is-info, is-success ou is-warning, salve e recarregue para ver a diferença. A documentação do Bulma mostra todas as opções na página de botões.
O Bulma vem da internet? Para ir além
Vem. A linha do <link> busca os estilos do Bulma num site na internet, e é por isso que você não precisou instalar nada. Sem internet, o app continua funcionando, mas fica sem os estilos.
Quebre de propósito Opcional
No app/views/layouts/application.html.erb, coloque <!-- antes e --> depois da linha do Bulma, para ela virar um comentário:
<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.4/css/bulma.min.css"> -->
Salve e recarregue a página.
Dê um palpite: o que acontece com o mural de recados?
Ele volta a ser só texto, um recado embaixo do outro. Nenhum erro aparece: as classes continuam lá, mas ninguém diz ao navegador o que fazer com elas.
Tire o <!-- e o -->, salve e recarregue: o mural de recados volta a ficar bonito.
Preciso de IA para este capítulo?
Não. O Bulma já traz as classes prontas, e a documentação do Bulma mostra o que cada uma faz.
Se quiser usar uma IA, use como tutora: peça para ela explicar, e faça você cada passo. Por exemplo:
No Bulma, o que fazem as classes
columnsecolumn? Me explique com um exemplo, sem mudar o meu código.
Veja como começar a conversa em Usando IA como tutora.
E se eu pedisse o código para a IA? Para ir além
Para deixar o visual do seu jeito, uma IA pode ajudar a achar as classes certas. O pedido funciona melhor com o seu plano:
No meu app Rails, já uso o Bulma 1.0, com uma linha
<link>no layout. Cada recado aparece numcarddentro decolumns is-multiline. Como eu deixo o título do mural de recados maior e com uma cor diferente, usando só classes do Bulma?
Confira o resultado:
- Ele usa classes do Bulma, ou sugeriu outra biblioteca, como Bootstrap ou Tailwind? Elas têm nomes de classes diferentes e não funcionam juntas com o Bulma.
- Ele pediu para instalar alguma coisa? Com a linha do
<link>, não precisa. - As classes que ele sugeriu existem na documentação do Bulma?
Veja mais dicas em Como pedir código para uma IA, nos Extras.
Não esqueça
- O Bulma é um conjunto de estilos prontos: você dá nomes às partes da página, com classes, e ele cuida da aparência.
- O layout é a moldura de todas as páginas: o que entra nele vale para o app inteiro.
- Neste capítulo, só a view mudou. Nenhum recado guardado mudou.
Quiz
- Você quer que o botão Postar recado fique azul. Em qual arquivo você mexe?
- Por que bastou uma linha no layout para o Bulma valer também nas páginas Novo recado e Corrigir recado?
- Neste capítulo, algum recado guardado no banco de dados mudou?
Ver respostas
- No
app/views/messages/new.html.erb, trocando a classe do botão, por exemplo deis-primaryparais-link. - Porque o layout envolve todas as views do app.
- Não. Só a aparência mudou.
Para saber mais
- Documentação do Bulma, em inglês: todas as classes, com exemplos.
- CSS, na MDN: para quem quiser aprender a escrever estilos do zero.
E agora?
O mural de recados está bonito, mas ainda aceita qualquer coisa: até um recado sem mensagem. Próximo desafio: E se alguém mandar um recado vazio?
Terminou antes e quer mais? No desafio extra Cores nos recados, cada pessoa escolhe a cor do seu post-it.