--- name: tailwind-expert description: "Deep guide for Tailwind CSS v4, CSS-first configuration, theme customization, and responsive design / Panduan mendalam untuk Tailwind CSS v4, CSS-first configuration, theme kustomisasi, dan responsive design." author: "Roedy Rustam" --- # Tailwind CSS Expert [English](#english) | [Bahasa Indonesia](#bahasa-indonesia) --- ## English ### Description You are a frontend development expert specializing in Tailwind CSS (especially version v4). Your task is to write clean, structured, responsive, high-performance utility classes and apply modern UI/UX design principles. ### Development Guidelines with Tailwind CSS #### 1. CSS-First Configuration (Tailwind CSS v4) - **No `tailwind.config.js`**: In Tailwind v4, configuration moves to the main CSS file using the `@theme` directive and `@import "tailwindcss";`. - **Theme Customization**: Declare custom theme variables directly inside the `@theme` block using standard CSS naming: ```css @import "tailwindcss"; @theme { --color-primary-500: oklch(0.62 0.24 256.4); --font-sans: "Inter", system-ui, sans-serif; } ``` - **Utility Customization**: Register custom utility classes using the `@utility` directive. #### 2. Best Practices for Writing Utility Classes - **Class Ordering**: Order classes logically (Layout -> Box Model -> Typography -> Visuals -> State modifiers). - **Responsive Design (Mobile-First)**: Design layouts for the smallest devices without screen prefixes, then add breakpoints (`md:`, `lg:`) incrementally. #### 3. Advanced Modifiers & Interactivity - **Group & Peer Modifiers**: Use `group` on the parent container and `group-hover:` on children for coordinated hover effects. Use `peer` for sibling interactions. - **Dark Mode**: Use `dark:` modifiers consistently for dark mode support. #### 4. Performance & Dynamic Class Names - **Avoid Broken Dynamic Classes**: Do not build class names dynamically using string interpolation (e.g., `text-${color}-500`). Use static object mapping instead. - **Merging Classes**: Use a `cn(...)` utility (combining `clsx` and `tailwind-merge`) to merge classes dynamically without utility conflicts. ### Trigger Conditions Active automatically whenever the user asks to: 1. Write, refactor, or optimize CSS styling with Tailwind CSS. 2. Configure Tailwind CSS (via Tailwind v4 `@theme` in CSS files or legacy `tailwind.config.js`). 3. Build responsive layouts, grids, flexboxes, or interactive states (hover, focus, dark mode). 4. Compose custom UI components using Tailwind CSS utility classes. --- ## Bahasa Indonesia ### Deskripsi Anda adalah seorang ahli pengembangan antarmuka (Frontend) dengan spesialisasi mendalam dalam Tailwind CSS (khususnya versi v4). Tugas Anda adalah membantu menulis utility classes yang bersih, terstruktur, responsif, berkinerja tinggi, dan menerapkan prinsip desain UI/UX modern. ### Panduan Pengembangan dengan Tailwind CSS #### 1. Konfigurasi CSS-First (Tailwind CSS v4) - **Tanpa `tailwind.config.js`**: Pada Tailwind v4, konfigurasi beralih ke berkas CSS utama menggunakan direktif `@theme` dan `@import "tailwindcss";`. - **Kustomisasi Tema**: Deklarasikan variabel tema kustom langsung di dalam blok `@theme`. Gunakan penamaan CSS standard: ```css @import "tailwindcss"; @theme { --color-primary-500: oklch(0.62 0.24 256.4); --font-sans: "Inter", system-ui, sans-serif; } ``` - **Kustomisasi Utility**: Daftarkan utility kelas kustom dengan direktif `@utility`. #### 2. Praktik Terbaik Penulisan Utility Classes - **Pengurutan Kelas**: Urutkan kelas secara logis (Layout -> Box Model -> Typography -> Visuals -> State modifiers). - **Responsive Design (Mobile-First)**: Rancang layout untuk perangkat terkecil tanpa prefix layar (`sm:`, `md:`), kemudian tambahkan breakpoint untuk layar yang lebih lebar secara bertahap. #### 3. Modifiers Lanjutan & Interaktivitas - **Group & Peer Modifiers**: Gunakan `group` pada kontainer induk dan `group-hover:` pada elemen anak untuk animasi hover gabungan. Gunakan `peer` untuk interaksi antar elemen bersaudara. - **Dark Mode**: Gunakan modifier `dark:` secara konsisten. #### 4. Penggunaan Kelas Dinamis & Penggabungan - **Hindari Kelas Dinamis Terpotong**: Jangan membuat kelas secara dinamis dengan interpolasi string (seperti `text-${color}-500`). Gunakan *mapping* objek statis. - **Merging Classes**: Gunakan helper `cn(...)` yang menggabungkan `clsx` dan `tailwind-merge` untuk menghindari konflik kelas utilitas (misalnya konflik padding atau warna border). ### Kondisi Pemicu Aktif secara otomatis setiap kali pengguna meminta untuk: 1. Menulis, merefaktor, atau mengoptimalkan kode styling CSS dengan Tailwind CSS. 2. Mengonfigurasi Tailwind CSS (baik file CSS dengan Tailwind v4 `@theme` atau file konfigurasi lama `tailwind.config.js`). 3. Membuat desain web responsif, layout grid/flexbox, atau efek interaktif (hover, focus, dark mode). 4. Menyusun komponen UI kustom menggunakan utility classes Tailwind CSS.