Senin, 22 April 2024

Multi Adalah Tailwind Plugin yang Kita Inginkan

Dalam artikel kali ini kita akan membuat plugin css untuk multi class yang bisa di kelompokkan pada satu selector.

Tailwind CSS

Dalam artikel ini, kita akan belajar cara membuat beberapa plugin di dalam Tailwind CSS. Hal ini sangat berguna ketika Anda memiliki banyak kasus penggunaan untuk satu selektor. Anda dapat melihat perbandingan sebelum dan sesudah di bawah ini:

<!-- Sebelum -->
<input type="text" class="border h-10 px-4 focus:outline-none focus:ring focus:ring-blue-500/20 focus:border-blue-500 transition">


<!-- Sesudah -->
<input type="text" class="border h-10 px-4 focus:multi-['outline-none;ring;ring-blue-500/20;border-blue-500'] transition">

Dapat dilihat bahwa versi "sesudah" lebih hemat dalam penggunaan kelas, yang pada akhirnya akan mengurangi ukuran file.

Langkah pertama adalah membuat plugin di dalam konfigurasi Tailwind. Berikut saya tunjukkan contoh dalam dua versi: JavaScript dan TypeScript. Anda dapat memilih sesuai dengan kebutuhan:

/** @type {import('tailwindcss').Config} */

module.exports = {
  plugins: [
    function ({ matchUtilities }) {
      matchUtilities({
        multi: (value) => {
          const escape = (str) => str.replace(/_/g, '\\_').replace(/ /g, '_')
          const delimiter = /;(?![^[]*\])/
          const utilities = value.slice(1, -1).split(delimiter).map(escape).join(' ')
          return !utilities.trim()
            ? {}
            : {
                [`@apply ${utilities}`]: {},
              }
        },
      })
    },
  ],
}
/** @type {import('tailwindcss').Config} */

module.exports = {
  plugins: [
    function ({ matchUtilities }: any) {
      matchUtilities({
        multi: (value: string) => {
          const escape = (str: string) => str.replace(/_/g, '\\_').replace(/ /g, '_')
          const delimiter = /;(?![^[]*\])/
          const utilities = value.slice(1, -1).split(delimiter).map(escape).join(' ')
          return !utilities.trim()
            ? {}
            : {
              [`@apply ${utilities}`]: {}
            }
        }
      })
    }
  ]
}

Dengan ini, Anda dapat menggunakan teknik yang telah dijelaskan di atas. Semoga ini membantu, dan sampai jumpa pada artikel berikutnya.

Karteil
Destinasi Utama Belajar Online dengan Format Tulisan yang Elegan
Kunjungi Sekarang

Irsyad A. Panjaitan

Let's start living like no one can help us in any event, so that when we are helped in certain times, it becomes a plus in itself.

Irsyad A. PanjaitanGo to Irsyad A. Panjaitan profile

Artikel yang Terkait

Membuat Button Design System dengan React Aria Component
IAPIrsyad A. Panjaitan
Mendesain PDF dengan Tailwind CSS di Laravel
IAPIrsyad A. Panjaitan
Tutorial Mudah Membuat Border Gradient di CSS
IAPIrsyad A. Panjaitan
Tailwind CSS vs Bootstrap: Membuat Web yang Responsif
JSJenriko Sinaga
Membuat Tampilan Modern dengan Tailwind CSS
JSJenriko Sinaga
Tailwind CSS Versi 3.3 Makin Mantap
IAPIrsyad A. Panjaitan
Mockup Browser Dengan Tailwind CSS
IAPIrsyad A. Panjaitan