Desenvolvedores
src_
lib_
utils.js

Explicação do Código 🔍

1. Importação das Dependências 📦

import { clsx } from "clsx";
import { twMerge } from "tailwind-merge";

Aqui estamos importando duas bibliotecas externas:

  • clsx: Biblioteca para condicionalmente adicionar ou remover classes CSS. Ela ajuda a construir dinamicamente strings de classes.
  • tailwind-merge: Biblioteca para resolver conflitos entre classes do Tailwind CSS. Ela é útil para garantir que as classes do Tailwind sejam aplicadas corretamente, evitando duplicação e conflitos entre regras de estilo.

2. Definição da Função cn 🔧

export function cn(...inputs) {
  return twMerge(clsx(inputs));
}
  • cn: Esta é a nossa função exportada que combina as funcionalidades do clsx e tailwind-merge.
  • ...inputs: Usamos o operador rest (...) para capturar um número indefinido de argumentos passados para a função. Esses argumentos serão os nomes das classes que queremos combinar.
  • clsx(inputs): Passa os argumentos capturados para a função clsx. Essa função vai combinar as classes, levando em conta condições, como se uma classe deve ser aplicada ou não.
  • twMerge(clsx(inputs)): Em seguida, passamos o resultado da função clsx para o twMerge. Isso irá garantir que as classes do Tailwind sejam mescladas corretamente, resolvendo possíveis conflitos e evitando duplicação de regras CSS.

3. Retorno da Função 🔙

A função retorna o resultado da combinação das classes, que agora estão sem conflitos e podem ser usadas em qualquer componente React, por exemplo, sem se preocupar com classes conflitantes do Tailwind.

4. Exportação da Função 📤

export function cn(...inputs) {
  return twMerge(clsx(inputs));
}

Por fim, a função é exportada, o que permite que seja utilizada em outros arquivos onde seja necessário combinar classes de maneira eficiente e sem conflitos.

Código Completo 📜

import { clsx } from "clsx";
import { twMerge } from "tailwind-merge";
 
export function cn(...inputs) {
  return twMerge(clsx(inputs));
}