Lädt...


🔧 Dicas para escrever Tailwind CSS de forma limpa


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Tailwind é uma ótima opção de escolha de estilização para seu projeto se você deseja ter uma ótima produtividade no desenvolvimento e um design flexível em suas aplicações, no entanto, conforme você vai trabalhando em seu projeto vai aumentando de complexidade você pode notar alguns pontos negativos na experiência de desenvolvimento. Sobre isso, resolvi escrever esse artigo para informar dicas para escrever seu código tailwind de forma de "clean".

1. Use o plugin prettier

Para garantir a padronização de código em nossos projetos frontend geralmente utilizamos o conjunto de ferramento eslint + prettier para definir os padrões desejados em nosso código.

Usando tailwind existe um pacote chamado prettier-plugin-tailwindcss ele basicamente vai pegar as classes do tailwind adicionadas no HTML e vai setar um padrão automático e recomendado para manter a consistência em toda a parte do código.

2. Composition Pattern

O design pattern composition é um pattern que basicamente serve para criar estruturas complexas a partir de estruturas mais simples. Em projetos frontend seria criar pequenos componentes que juntos possam formar um componente maior, com isso, é possível criar componentes altamente customizáveis evitando “prop drilling” deixando seu código tailwind mais simples de se ler com essa divisão em pequenos arquivos.

3. TwMerge

O twMerge é uma biblioteca que aumenta o poder do Tailwind, ela serve para mesclar e compor classes do Tailwind e consegue lidar com conflitos de classes que possam gerar em sua aplicação. É bastante útil para aplicações frontend onde podemos ter muitos estilos, funções e interações dinâmicas baseadas em estados.

4. clsx

clsx é uma biblioteca de manipulação de classes CSS que permite combinar, condicionar e de duplicar nomes de classes de forma simples e eficiente.

5. Combinando TwMerge + clsx

Você pode combinar as duas bibliotecas também para criar wrapper e utilizar as duas funcionalidades em conjunto.

import { type ClassValue, clsx } from 'clsx'
import { twMerge } from 'tailwind-merge'

export const cn = (...inputs: ClassValue[]) => {
  return twMerge(clsx(inputs))
}

6. CVA

Outra biblioteca fantástica para você que sente saudade de utilizar CSS-in-JS é o CVA com ela você consegue criar variantes para seus componentes. E você também pode combinar e utilizar o wrapper cn que criamos anteriormente. Exemplo abaixo de um componente de botão simples:

// components/button.tsx
import { cva, VariantProps } from 'class-variance-authority'
import { ComponentProps } from 'react'
import { cn } from '@/lib/utils'

const buttonStyles = cva('font-semibold border rounded ', {
  variants: {
    variant: {
      primary: [
        'bg-blue-500',
        'text-white',
        'border-transparent',
        'hover:bg-blue-600',
      ],
      secondary: [
        'bg-white',
        'text-gray-800',
        'border-gray-400',
        'hover:bg-gray-100',
      ],
    },
    size: {
      small: ['text-sm', 'py-1', 'px-2'],
      medium: ['text-base', 'py-2', 'px-4'],
    },
  },
  defaultVariants: {
    variant: 'primary',
    size: 'medium',
  },
})

type buttonProps = VariantProps<typeof buttonStyles> & ComponentProps<'button'>

export const Button = ({ variant, size, className, ...props }: buttonProps) => {
  return (
    <button
      {...props}
      className={cn(buttonStyles({ variant, size }), className)}
    />
  )
}

//App.tsx

import { Button } from './button'

export const App = () => {
  <>
    <Button variant={'primary'} size={'medium'}>Primary</Button>
    <Button variant={'secondary'} size={'small'}>Secondary</Button> 
  </>
} 


7. Outros

Existem outras bibliotecas semelhantes ao CVA como windstitch e Tawild variants entre outras. Eu tenho pessoalmente gostado de utilizar Tawild variants e creio que vale a pena você testar também.

Conclusão

Utilizando essas dicas em seu projeto frontend com Tailwind CSS você pode aumentar a flexibilidade, legibilidade, reutilização e trazer mais facilidade ao gerenciar suas classes no Tailwind CSS. Facilitando seus possíveis testes end two end trazendo mais facilidade na integração de novas pessoas nos projetos. Com isso, o processo de criação de interfaces modernas, responsivas e interativas fica melhor, aumentando a qualidade do seu código e do seu produto final.

...

🔧 Dicas para escrever Tailwind CSS de forma limpa


📈 132.84 Punkte
🔧 Programmierung

🔧 Dicas e truques: Ferramentas para produtividade para dev no Sistema operacional 🪟 Windows 11


📈 48.53 Punkte
🔧 Programmierung

🔧 Para te ajudar nesse caminho, preparei um guia completo com dicas valiosas para iniciantes na área:


📈 48.53 Punkte
🔧 Programmierung

🔧 Redefinindo horizontes: Minha transição para a tecnologia e dicas para novos navegantes


📈 48.53 Punkte
🔧 Programmierung

🔧 3 dicas para criar uma estratégia moderna de Testes para Microsserviços Spring Boot


📈 48.53 Punkte
🔧 Programmierung

🔧 Configurare Tailwind CSS: Guida all'Inizializzazione | Setting Up Tailwind CSS: Initialization Guide


📈 40.75 Punkte
🔧 Programmierung

🔧 Como tem sido o meu processo criativo para escrever um livro infantil sobre programação


📈 39.66 Punkte
🔧 Programmierung

🔧 Estratégias para escrever código com maior testabilidade - uma análise imperativa


📈 39.66 Punkte
🔧 Programmierung

🔧 Refatoração de Código: Melhores Práticas para Escrever Código Limpo e Eficiente


📈 39.66 Punkte
🔧 Programmierung

🔧 Choosing the Right CSS Approach: Tailwind CSS vs Bootstrap vs Vanilla CSS


📈 36.77 Punkte
🔧 Programmierung

🔧 Dicas para ir bem em entrevistas de live coding


📈 35.97 Punkte
🔧 Programmierung

🔧 10 Dicas para Pesquisar no Google como um Desenvolvedor Profissional


📈 35.97 Punkte
🔧 Programmierung

🔧 Acessibilidade digital - Dicas de NVDA para desenvolvedores web


📈 35.97 Punkte
🔧 Programmierung

🔧 Vue 3 para Iniciantes: Dicas que Gostaria de Ter Sabido ao Começar com a Composition API e TypeScript


📈 35.97 Punkte
🔧 Programmierung

🔧 18 dicas para se destacar como engenheiro de software


📈 35.97 Punkte
🔧 Programmierung

🔧 Dominando o Next.js: Dicas para Renderização do Lado do Servidor


📈 35.97 Punkte
🔧 Programmierung

🔧 Dicas e configurações para seu sistema linux


📈 35.97 Punkte
🔧 Programmierung

🔧 Rápido e Devagar: Dicas para Estimativas que Quase Dão Certo


📈 35.97 Punkte
🔧 Programmierung

🔧 Como Cultivar Empatia com os Colegas da Squad: Dicas para um Ambiente de Trabalho Saudável


📈 35.97 Punkte
🔧 Programmierung

🔧 Dicas para iniciantes na programação:


📈 35.97 Punkte
🔧 Programmierung

🔧 Tentando Conquistar o Mundo da Programação: Dicas para Resolver Problemas


📈 35.97 Punkte
🔧 Programmierung

🔧 Dicas para usar o Github como Portfólio


📈 35.97 Punkte
🔧 Programmierung

🔧 Desenvolva suas habilidades de programação de forma divertida: 10 jogos para aprender programação


📈 33.01 Punkte
🔧 Programmierung

🔧 Introduction of CSS, What is CSS, Why we use CSS and How CSS describe the HTML elements


📈 32.79 Punkte
🔧 Programmierung

🔧 Mastering Tailwind CSS: Overcome Styling Conflicts With Tailwind Merge and clsx


📈 32.56 Punkte
🔧 Programmierung

🔧 Mastering Tailwind CSS: Overcome Styling Conflicts with Tailwind Merge and clsx


📈 32.56 Punkte
🔧 Programmierung

🔧 Material TailWind - combining Material Design and Tailwind CSS


📈 32.56 Punkte
🔧 Programmierung

🔧 Descomplicando Arquitetura Limpa (clean architecture) com Spring boot


📈 28.96 Punkte
🔧 Programmierung

🔧 Leitura comentada - Arquitetura Limpa - Princípios de Design - Capítulos 7


📈 28.96 Punkte
🔧 Programmierung

🔧 Leitura comentada - Arquitetura Limpa - Capítulo 3 - Panorama do Paradigma


📈 28.96 Punkte
🔧 Programmierung

🔧 Leitura comentada - Arquitetura Limpa - Capítulo 2 - Um conto de dois valores


📈 28.96 Punkte
🔧 Programmierung

🔧 Leitura comentada - Arquitetura Limpa - Capítulo 1


📈 28.96 Punkte
🔧 Programmierung

matomo