alpinejs-twmerge
Version:
Minimal AlpineJS wrapper for twMerge and clsx. magic and directive for Alpine.js
33 lines (32 loc) • 1.27 kB
HTML
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Autoanimate Test</title>
<script src="https://cdn.tailwindcss.com"></script>
<script defer src="../dist/alpinejs-twmerge.cdn.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
</head>
<body>
<script>
const test = () => {
return {
something: false,
};
};
</script>
<div class="space-y-5">
<div x-data="{ highlight: false }" class="text-gray-800">
<!-- Original class "text-gray-800" is always included -->
<div class="w-10 h-10 bg-gray-200" x-twmerge="{'bg-yellow-200': highlight}"></div>
<button @click="highlight = !highlight">Toggle Highlight</button>
</div>
<div x-data="{ active: false }" class="text-gray-800">
<!-- When using :class with $twmerge to dynamically merge classes you need to provide the base classes as well -->
<div class="w-10 h-10" :class="$twMerge(['bg-gray-200', {'bg-yellow-200': active}])"></div>
<button @click="active = !active">Toggle Active</button>
</div>
</div>
</body>
</html>