O que é Tailwind?
CSS de vento de cauda é uma estrutura CSS de “utilitário primeiro” que fornece um catálogo profundo de classes e ferramentas CSS que permitem que você comece a estilizar facilmente seu site ou aplicativo.
O objetivo subjacente é que, enquanto você cria seu projeto, não precisa lidar com estilos em cascata e se preocupar em como substituir o acúmulo de 10 seletores que assombra seu aplicativo nos últimos 2 anos.
Então, o que torna o Tailwind ótimo?
A solução do Taildwind é fornecer uma ampla variedade de classes CSS, cada uma com seu uso específico. Em vez de uma classe chamada .btn que é criado com vários atributos de CSS diretamente, no Tailwind, você pode aplicar várias classes como bg-blue-500 py-2 px-4 rounded para o elemento button ou crie um .btn classificar por aplicando classe de utilidade para esse seletor.
Enquanto o Tailwind tem muito mais a oferecer, vamos nos concentrar nesses princípios para este tutorial, então vamos nos aprofundar!
Parte 1: Adicionando CSS Tailwind a uma página HTML estática
Vamos começar aplicando o CSS Tailwind diretamente a uma página HTML estática. A esperança é que, concentrando-se no Tailwind e não no aplicativo, possamos entender melhor o que realmente está acontecendo com o framework.
Etapa 1: Criando uma nova página
Você pode começar criando um novo arquivo HTML. Para o conteúdo, você pode usar o que quiser, mas eu vou usar fillerama.io então o conteúdo do preenchimento é um pouco mais divertido.
Se você deseja simplificar esta etapa, basta copie o arquivo que eu criei para começar.
Etapa 2: Adicionando CSS de vento de cauda via CDN
O vento de cauda normalmente recomenda que você instale npm para obter a funcionalidade completa, mas, novamente, estamos apenas tentando entender como isso funciona primeiro.
Então, vamos adicionar um link ao arquivo CDN no diretório do nosso documento:
Depois de salvar e recarregar a página, a primeira coisa que você notará é que todos os estilos foram removidos!
Isso é esperado. O vento de cauda inclui um conjunto de estilos de comprovação para corrigir inconsistências entre navegadores. Por um lado, eles incluem o popular normalize.css sobre os quais eles constroem com seus próprios estilos.
Mas vamos aprender como usar o Tailwind para adicionar de volta nossos estilos e configurar as coisas como queremos!
Etapa 3: Usando o CSS Tailwind para adicionar estilos à sua página
Agora que instalamos o Tailwind, adicionamos a capacidade de usar sua enorme biblioteca de classes de utilitários que agora usaremos para adicionar estilos à nossa página.
Vamos começar adicionando margem a todos os parágrafos (
) e nossos elementos da lista (
- ,
text-2xl: defina o tamanho do texto (tamanho da fonte) para 2xl. Em Tailwind, esse 2xl será igual a 1,5remfont-bold: defina o peso do texto (peso da fonte) para negritomt-8: Igual amy-5, isso definirá a margem superior
Aqui está o que estamos adicionando:
list-disc: defina o tipo de estilo de lista como disco (os marcadores em cada item de linha)list-inside: define a posição dos marcadores da lista em relação aos itens da lista e a própria lista com posição no estilo da lista como dentromy-5: defina a margem do eixo y como 5rempl-2: defina o preenchimento esquerdo para 2rem
Em seguida, podemos aplicar exatamente as mesmas classes à nossa lista ordenada (
- ), exceto em vez de
text-white: estamos definindo a cor do texto em brancofont-bold: defina o peso do texto para negrito (peso da fonte)bg-purple-700: defina a cor de fundo do botão como roxo com um tom de 700. O 700 é relativo às outras cores definidas como roxo, você pode encontrar esses valores em suas página de documentação da paletahover:bg-purple-800: quando alguém passa o mouse sobre o botão, defina a cor do plano de fundo como tom roxo 800. Tailwind fornece essas classes auxiliares que permitem definir facilmente estilos interativos com coisas como pairar, foco e modificadores ativospy-2: defina o preenchimento do eixo y como 2rempx-4: defina o preenchimento do eixo x como 4remrounded: arredonda os cantos do elemento definindo o raio da borda. Com vento de cauda, ele define o valor do raio da borda como 0,25rem- tailwindcss: o pacote principal do Tailwind
- postcss-cli: O Create React App já usa o postcss, mas precisamos configurar o Tailwind para fazer parte desse processo de compilação e executar seu próprio processamento
- autoprefixer: Tailwind não inclui prefixos de fornecedores, portanto, queremos adicionar o autoprefixer para lidar com isso para nós. Isso é executado como parte da nossa configuração do postcss
- simultaneamente: um pacote que nos permite configurar a capacidade de executar vários comandos ao mesmo tempo. Isso é útil, pois precisamos assistir aos estilos e ao aplicativo React.
- chokidar-cli: vamos assistir arquivos e executar um comando quando alterado. Usaremos isso para assistir nosso arquivo CSS e executar o processo de construção do CSS no cahnge
list-disc, queremos mudar nosso tipo de estilo paralist-decimal, para que possamos ver os números, pois é uma lista ordenada.E nós temos nossas listas!
Página HTML com listas estilizadas Finalmente, vamos tornar nosso conteúdo um pouco mais fácil de ler, definindo uma largura máxima e centralizando o conteúdo. No
, adicione o seguinte:/ Nota: Normalmente você não gostaria de aplicar essas classes ao método
Em vez disso, você pode agrupar todo o seu conteúdo com um, mas como estamos apenas tentando ter uma idéia de como isso funciona, seguiremos com isso. Sinta-se livre para adicionar omarque essas classes, se preferir! /E com isso, temos nossa página!
Página HTML com conteúdo centralizado Etapa 4: Adicionando um botão e outros componentes
Para a última parte do nosso exemplo estático, vamos adicionar um botão.
O truque do Tailwind é que eles intencionalmente não fornecem classes de componentes pré-definidas, com a idéia de que provavelmente as pessoas precisariam substituir esses componentes de qualquer maneira para fazê-las parecer como queriam.
Então isso significa que teremos que criar nossos próprios usando as classes de utilitário!
Primeiro, vamos adicionar um novo botão. Em algum lugar da página, adicione o seguinte snippet. Vou adicioná-lo logo abaixo do primeiro parágrafo (
) tag:
Página HTML com botão sem estilo Você notará, assim como todos os outros elementos, que não tem estilo; no entanto, se tentar clicar nele, perceberá que ainda possui as ações de clique. Então, vamos fazer parecer um botão.
Vamos adicionar as seguintes classes:
Aqui está um detalhamento do que está acontecendo:
E com tudo isso, temos o nosso botão!
Página HTML com um botão estilizado Você pode aplicar essa metodologia a qualquer outro componente que queira criar. Embora seja um processo manual, descobriremos como podemos facilitar esse processo ao criar projetos mais dinâmicos como os baseados no React.
Parte 2: Adicionando CSS de vento de cauda a um aplicativo React
Para mais casos de uso do mundo real, adicionaremos o Tailwind CSS a um aplicativo criado com Criar aplicativo React.
Primeiro, percorreremos as etapas necessárias para adicionar vento de popa ao seu projeto usando uma nova instalação do Create React App. Em seguida, usaremos o conteúdo do nosso último exemplo para recriá-lo no React.
Etapa 1: ativar um novo aplicativo React
Não vou detalhar muito esse passo. A essência é que vamos iniciar um novo aplicativo React usando o Create React App.
Para começar, você pode acompanhar com as instruções da documentação oficial do React:
https://reactjs.org/docs/create-a-new-react-app.html
E uma vez iniciado o servidor de desenvolvimento, você deverá ver um aplicativo!
Criar página inicial do React App Por fim, vamos migrar todo o nosso conteúdo antigo para o nosso aplicativo. Para fazer isso, copie tudo dentro do
tag do nosso exemplo estático e cole-o dentro do wrapperno novo projeto React.Migrando código para o aplicativo React Em seguida, mude tudo
class="atributos do conteúdo em que colamosclassName="para usar os atributos React adequados:Corrigindo o atributo da classe no conteúdo E, por fim, substitua o className
Appno nosso invólucropara as classes que usamos em nossa estática.Adicionando estilos de wrapper ao aplicativo Depois de salvar as alterações e fazer o backup do servidor, ele parecerá enganosamente aceitável.
Reagir aplicativo com conteúdo básico O React inclui alguns estilos básicos, portanto, embora pareça bom, ainda não estamos usando o Tailwind. Então, vamos começar instalando-o!
Etapa 2: instalando o Tailwind no seu aplicativo React
É necessário seguir algumas etapas para que o Tailwind funcione em nosso aplicativo. Siga estas etapas com cuidado para garantir que esteja configurado corretamente.
Primeiro, vamos adicionar nossas dependências:
yarn add tailwindcss postcss-cli autoprefixer # or npm install tailwindcss postcss-cli autoprefixerPor documentação do Tailwind, precisamos processar nossos estilos para que possam ser adicionados corretamente ao nosso pipeline. Então, acima, estamos adicionando:
Também vamos adicionar duas dependências de desenvolvimento que facilitam o trabalho com nosso código:
yarn add concurrently chokidar-cli -D # or npm install concurrently chokidar-cli --save-devEm seguida, vamos configurar o postcss, então crie um novo arquivo na raiz do seu projeto chamado
postcss.config.jse inclua o seguinte:// Inside postcss.config.js module.exports = { plugins: [ require('tailwindcss'), require('autoprefixer') ], };Isso adicionará os plugins Tailwindcss e Autoprefixer à nossa configuração do postcss.
Com nossa configuração, precisamos incluí-la como parte dos processos de compilação e observação. Dentro
package.json, adicione o seguinte às definições no seuscriptspropriedade:"build:css": "tailwind build src/App.css -o src/index.css", "watch:css": "chokidar 'src/App.css' -c 'npm run build:css'",Ademais, modifique o
startebuildscripts para incluir agora esses comandos:"start": "concurrently -n Tailwind,React 'npm run watch:css' 'react-scripts start'", "build": "npm run build:css && react-scripts build",Com nossa configuração pronta, vamos tentar nossos estilos de volta para onde estavam quando paramos do exemplo estático.
Dentro de
App.css, substitua todo o conteúdo por:@tailwind base; @tailwind components; @tailwind utilities;Isso vai importar os estilos base, componentes e classes de utilitários do Tailwind que permitem que o Tailwind funcione conforme o esperado.
Também podemos remover o
App.cssimportar do nossoApp.jsarquivo porque agora está sendo injetado diretamente em nossoindex.cssArquivo. Então remova esta linha:import './App.css';Quando terminar, você poderá iniciar o backup do servidor de desenvolvimento! Se já foi iniciado, reinicie-o para que todas as alterações na configuração entrem em vigor.
E agora a página deve ser exatamente igual ao nosso exemplo estático!
Reagir aplicativo com conteúdo estilizado Etapa 3: Criando uma nova classe de componente de botão com Tailwind
O Tailwind não é fornecido com classes de componentes pré-preparadas, mas facilita a criação delas!
Vamos usar nosso botão que já criamos como um exemplo de criação de um novo componente. Vamos criar uma nova classe
btnbem como um modificador de coresbtn-purplepara conseguir isso.A primeira coisa que queremos fazer é abrir nosso arquivo App.css, onde criaremos nossa nova classe. Dentro desse arquivo, vamos adicionar:
.btn { @apply font-bold py-2 px-4 rounded; }Se você se lembra do nosso HTML, já estamos incluindo essas mesmas classes no nosso
elemento. Tailwind, vamos “aplicar” ou incluir os estilos que compõem essas classes de utilitários para outra classe; nesse caso, o.btnclasse.E agora que estamos criando essa classe, vamos aplicá-la ao nosso botão:
E se abrirmos nossa página, podemos ver que nosso botão ainda parece o mesmo. Se inspecionarmos o elemento, podemos ver nosso novo
.btnclasse gerada com esses estilos.classe .btn em um aplicativo React com Tailwind Em seguida, vamos criar um modificador de cores. Semelhante ao que acabamos de fazer, adicionaremos as seguintes regras:
.btn-purple { @apply bg-purple-700 text-white; } .btn-purple:hover { @apply bg-purple-800; }Aqui, estamos adicionando nossa cor de plano de fundo e cor de texto à nossa classe de botão. Também aplicamos uma cor mais escura ao botão quando alguém passa o mouse sobre o botão.
Também queremos atualizar nosso botão HTML para incluir nossa nova classe e remover as que acabamos de aplicar:
E com essa mudança, ainda podemos ver que nada mudou e temos nossa nova classe de botões!
Botão estilizado em React with Tailwind Aplicando esses conceitos a mais componentes
Com essa explicação, aprendemos como criar uma nova classe de componente usando a diretiva de aplicação Tailwind. Isso nos permitiu criar classes reutilizáveis que representam um componente como um botão.
Podemos aplicar isso a qualquer número de componentes em nosso sistema de design. Por exemplo, se quiséssemos sempre mostrar nossas listas da maneira como as configuramos aqui, poderíamos criar um
.list-ulclasse que representava uma lista não ordenada com os utilitários Tailwindlist-disc list-inside my-5 pl-2aplicado.Quais dicas e truques você gosta de usar com Tailwind?
Compartilhe comigo no Twitter!
) Podemos fazer isso adicionando o .my-5 classe para cada elemento da seguinte forma:
Bender, quit destroying the universe! Yeah, I do that with my stupidness. I never loved you. Moving along…
Belligerent and numerous.
O nome da classe segue um padrão que você notará com o restante das classes utilitárias – .my-5 representa a margem (m) aplicada ao eixo y (y) com um valor de 5 que, no caso de Tailwind, utiliza rem, então o valor é 5rem.
Em seguida, vamos fazer com que nossos cabeçalhos pareçam com cabeçalhos reais. Começando com o nosso h1 tag, vamos adicionar:
Aqui está o que está acontecendo:
