🧱 Π‘ΡƒΡ‚ΡŒ

tailwind-merge – ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для объСдинСния Tailwind-классов с устранСниСм ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².

Если нСсколько классов ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ CSS-свойство, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° оставляСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдний.

πŸ“¦ ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

1. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠ΅ классы

className="px-2 px-4"

НС всСгда ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ класс Π² ΠΈΡ‚ΠΎΠ³Π΅ примСнится.

βœ… РСшСниС

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ tailwind-merge для автоматичСского удалСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΡ… классов.

πŸ’» Код

Установка:

npm install tailwind-merge

ИспользованиС

import { twMerge } from 'tailwind-merge';
 
twMerge('px-2 px-4');

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

px-4

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

const buttonClass = twMerge(
	'px-4 py-2 bg-blue-500',
	isActive && 'bg-red-500'
);

БовмСстноС использованиС с clsx

import clsx from 'clsx';
import { twMerge } from 'tailwind-merge';
 
const cn = (...args: Parameters<typeof clsx>) =>
	twMerge(clsx(args));
className={cn('btn', isActive && 'bg-red-500')}

🎯 Π’Ρ‹Π²ΠΎΠ΄

  • tailwind-merge устраняСт ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Tailwind-классов
  • часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с clsx
  • ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнный helper cn()

πŸ”— Бвязано