Até agora, nossa aplicação Spring Boot já responde a requisições HTML, mas a aparência dela ainda deixa a desejar. Para transformar essa página simples em algo mais agradável, vamos aprender como incorporar CSS à aplicação. O foco aqui não é dominar o CSS, mas sim entender como integrá-lo corretamente ao nosso projeto Spring Boot.
Os arquivos CSS são responsáveis por definir as regras de estilo que serão aplicadas ao seu HTML. Eles ajudam a transformar uma página sem graça em uma interface visualmente mais atraente e organizada. Além disso, recursos como imagens e ícones também fazem parte dos arquivos estáticos, que não sofrem alteração em tempo de execução. Em projetos Spring Boot, esses arquivos devem ser colocados dentro da pasta resources/static
. Para manter o projeto organizado e seguir as convenções, crie uma pasta chamada css
dentro da pasta static
. Assim, a estrutura do projeto ficará parecida com:
1src2└── main3 └── resources4 └── static5 └── css6 └── style.css
Como exemplo, vamos criar um arquivo CSS simples que altera apenas a cor de fundo da nossa página. No arquivo style.css
, adicione o seguinte código:
1body {2 background-color: #f0f8ff; /* Um tom de azul claro */3}
Essa regra define que todo o conteúdo da página terá um fundo com a cor azul claro, deixando o visual mais suave e agradável.
Após criar o arquivo CSS e colocá-lo na pasta correta, precisamos informar ao HTML que ele deve utilizar esse arquivo de estilos. Para isso, usamos a tag <link>
dentro do <head>
do nosso HTML. Essa tag possui dois atributos importantes:
stylesheet
.Como estamos utilizando o Thymeleaf, podemos usar a link expression para criar links relativos. Essa expressão utiliza a sintaxe @{}
, que automaticamente ajusta o caminho relativo à pasta static
. Assim, a inclusão do nosso arquivo style.css
fica assim:
1<link rel="stylesheet" th:href="@{/css/style.css}">
Com essa simples linha de código, o Spring Boot sabe onde encontrar o nosso CSS e aplica os estilos à página. Depois de realizar essas alterações no arquivo index.html
, abra a aplicação e acesse http://localhost:8080
. Você verá que o fundo da página agora possui um tom azul claro, demonstrando que o CSS foi incorporado com sucesso.
class
do HTMLO Thymeleaf oferece diretivas específicas para manipulação de classes CSS em elementos HTML, sendo elas: th:class
e th:classappend
.
th:class
O atributo th:class
é utilizado para definir ou substituir completamente as classes CSS de um elemento HTML com base em expressões Thymeleaf. Ele é particularmente útil quando você precisa aplicar classes condicionalmente, dependendo do estado da aplicação ou de dados dinâmicos.
Exemplo de uso:
1<div th:class="${usuario.ativo ? 'ativo' : 'inativo'}">2 Conteúdo do div3</div>
Neste exemplo, a classe CSS do div
será ativo
se a propriedade usuario.ativo
for verdadeira, e inativo
caso contrário. O th:class
substitui qualquer classe existente no elemento, então, se o div
já tivesse uma classe definida, ela seria substituída pela nova classe.
th:classappend
Diferente do th:class
, o atributo th:classappend
não substitui as classes existentes, mas sim adiciona novas classes ao elemento, preservando as que já estão presentes. Isso é especialmente útil quando você deseja adicionar classes condicionalmente sem perder as classes padrão ou outras classes dinâmicas que já foram aplicadas.
Exemplo de uso:
1<div class="base" th:classappend="${usuario.ativo ? 'ativo' : 'inativo'}">2 Conteúdo do div3</div>
Neste caso, se usuario.ativo
for verdadeiro, a classe ativo
será adicionada ao div
, resultando em class="base ativo"
. Se usuario.ativo
for falso, a classe inativo
será adicionada, resultando em class="base inativo"
. A classe base
é preservada em ambos os cenários.