Lewati ke konten
Migrasi dari Tailwind
Dokumentasi Pratinjau

Migrasi dari Tailwind

Memindahkan halaman lama dari Tailwind dan React ke kelas kit, satu halaman sekali waktu.

Aplikasi aslinya memakai Next.js, React, Tailwind, dan class-variance-authority. Halaman ini memetakan gaya lama ke kelas kit. Yang dipindahkan hanya tampilannya; logika tetap di tempatnya.

Strategi: satu halaman sekali waktu

  1. 1
    Pasang kit
    Lihat Pemasangan. Tailwind tetap jalan berdampingan.
  2. 2
    Pindahkan satu halaman
    Ganti kelas Tailwind dengan kelas ck-. Jangan mengubah logika sekaligus.
  3. 3
    Bandingkan berdampingan
    Buka halaman lama dan baru di dua jendela; cari jarak dan warna yang berbeda.
  4. 4
    Hapus gaya lama halaman itu
    Setelah yakin, buang kelas Tailwind sisa supaya tidak ada dua sistem di satu halaman.
Jangan mencampur di satu elemen
Satu elemen memakai Tailwind atau kelas kit, tidak keduanya. Mencampur membuat nilai jarak saling menimpa dan hasilnya berbeda di tiap halaman.

Peta kelas

Tailwind lamaKit
bg-background— (bawaan halaman)
bg-cardck-card
text-foreground— (bawaan)
text-muted-foregroundck-muted
text-smck-text-sm
text-xsck-text-xs
text-2xl font-boldck-h3
rounded-mdck-radius-md
rounded-lg borderck-card
p-6ck-p-6
p-4ck-p-4
mt-4 / mb-4ck-mt-4 / ck-mb-4
flex items-center gap-2ck-row ck-row-2
grid grid-cols-3 gap-4ck-grid ck-grid-3 ck-gap-4
flex flex-colck-stack
space-y-3ck-stack-3
truncateck-truncate
sr-onlyck-sr-only

Kelas tata letak Tailwind yang murni posisi (flex, absolute, w-full) boleh tetap dipakai — kit tidak menyeragamkan semua hal, hanya yang membentuk identitas visual.

Peta komponen React

Komponen lama memakai CVA untuk varian. Di kit, varian menjadi kelas modifier.

// lama — components/ui/button.tsx
<Button variant="destructive" size="sm">Hapus</Button>

<!-- kit -->
<button class="ck-btn ck-btn--destructive ck-btn--sm" type="button">Hapus</button>
Komponen lamaBentuk di kit
Button (8 varian, 7 ukuran)ck-btn ck-btn--{varian} ck-btn--{ukuran}
Card / CardHeader / CardTitleck-card / __header / __title
Badgeck-badge ck-badge--{nada}
Input + Labelck-field > ck-label + ck-input
Avatarck-avatar ck-avatar--c0…c7
Progressck-progress > ck-progress__track > __bar
Skeletonck-skeleton ck-skeleton--text
Modal / ToasterSidebar / Topbarck-sidebar / ck-topbar di dalam ck-shell

Yang TIDAK dipindahkan

HalAlasan
Logika dan hook React (useState, useEffect)Kit hanya lapisan tampilan
Toko status (zustand)Bukan urusan gaya
Panggilan API dan otentikasiDi luar lingkup
Halaman pemasaran dan halaman hukumBukan area dalam aplikasi
Animasi khas ReactDiganti transisi CSS pada token durasi

Tailwind masih dipakai?

Kalau proyek lama masih memakai Tailwind, pakai tokens/tailwind.preset.js supaya keduanya berbicara dengan nilai yang sama:

// tailwind.config.ts
import preset from './public/tokens/tailwind.preset.js';

export default {
  darkMode: 'class',
  presets: [preset],
  content: ['./app/**/*.{ts,tsx}', './components/**/*.{ts,tsx}'],
};

Dengan preset ini, bg-primary di Tailwind dan --ck-primary di kit menunjuk nilai yang sama. Tidak ada lagi dua definisi biru yang berbeda.

classroom-themekitdokumentasi