Konvensi Tim dan Panduan Gaya
Tentukan panduan gaya tim untuk pengurutan kelas, penamaan komponen, kapan menggunakan @apply, dan cara menangani nilai arbitrer sekali pakai secara konsisten.
Konvensi Tim dan Panduan Gaya adalah pelajaran Tailwind CSS Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Tailwind CSS Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Tailwind CSS Academy mencakup 4 pelajaran total.
Mengapa Tim Memerlukan Panduan Gaya Tailwind
Tanpa konvensi yang disepakati, proyek Tailwind akan menjadi tidak konsisten. Seorang pengembang menulis p-4 di mana-mana, sementara yang lain menggunakan px-4 py-4. Seseorang menggunakan @apply secara bebas, sementara yang lain sepenuhnya menghindarinya. Panduan gaya tim mendokumentasikan keputusan yang telah dibuat tim Anda agar semua orang menulis Tailwind dengan cara yang sama, sehingga peninjauan kode menjadi lebih cepat dan basis kode lebih mudah dipelihara.
Menetapkan Konvensi Pengurutan Class
Meskipun plugin Prettier menegakkan pengurutan secara otomatis, panduan gaya Anda harus mendokumentasikan alasan penggunaan urutan kanonis dan seperti apa urutan tersebut agar pengembang memahaminya, bukan sekadar mengikutinya secara membabi buta. Sertakan urutan kelompok — tata letak, ukuran, jarak, tipografi, visual, interaktif — agar anggota tim dapat memperkirakan posisi suatu class.
<!-- Canonical order groups -->
<div class="
flex items-center gap-4 /* Layout */
w-full max-w-md /* Sizing */
p-6 mx-auto /* Spacing */
text-sm font-medium /* Typography */
bg-white rounded-lg shadow /* Visual */
hover:shadow-md transition /* Interactive */
">Kapan Menggunakan @apply
Salah satu sumber perbedaan pendapat yang umum adalah kapan harus mengekstrak utilitas dengan @apply. Tetapkan aturan yang jelas: misalnya, gunakan @apply hanya ketika suatu pola berulang lebih dari tiga kali di berbagai komponen DAN tidak dapat diselesaikan dengan komponen JSX atau templat bersama. Hal ini mencegah abstraksi yang terlalu dini sekaligus menangani duplikasi yang benar-benar ada.
/* ALLOWED: repeated button pattern with no JSX component possible */
.btn-primary {
@apply rounded-lg bg-blue-600 px-4 py-2 text-sm font-semibold text-white hover:bg-blue-700;
}
/* DISCOURAGED: abstracting a one-off layout that appears only once */
.hero-section {
@apply flex min-h-screen flex-col items-center justify-center bg-gray-50;
}Konvensi Nilai Arbitrer
Notasi kurung siku Tailwind seperti w-[347px] memang sangat kuat, tetapi dapat menyebabkan bertambahnya angka ajaib yang sulit dipelihara. Panduan gaya Anda harus mewajibkan agar nilai arbitrer diberi alasan dalam komentar, dan agar nilai yang muncul lebih dari sekali ditambahkan ke blok extend tema sebagai token bernama.
<!-- DISCOURAGED: unexplained magic number -->
<div class="h-[347px]">
<!-- BETTER: explain the constraint with a comment -->
<!-- Height matches the sidebar for visual alignment -->
<div class="h-[347px]">
<!-- BEST: promote to a named token in the config -->
<!-- tailwind.config.js: extend.height: { sidebar: '347px' } -->
<div class="h-sidebar">Tata Kelola Safelist
Setiap entri dalam safelist menambah biaya pada setiap build. Panduan gaya Anda harus mewajibkan agar classes yang masuk safelist menyertakan komentar yang menjelaskan alasan classes tersebut tidak dapat dideteksi secara statis. Buat jadwal audit safelist — misalnya setiap tiga bulan — untuk menghapus entri bagi fitur yang telah dihapus atau direstrukturisasi.
// tailwind.config.js
module.exports = {
safelist: [
// REASON: color comes from CMS content, cannot be statically detected
// REVIEW DATE: 2026-Q3
{ pattern: /bg-(red|green|blue|yellow)-(100|500)/ },
// REASON: toast severity classes set by JS at runtime
'border-red-500',
'border-green-500',
],
};Konvensi Penamaan Komponen
Jika proyek Anda menggunakan @apply untuk membuat class komponen, tetapkan konvensi penamaan. Nama yang terinspirasi BEM seperti .btn-primary dan .card-body merupakan pilihan umum. Dokumentasikan pola penamaan yang digunakan tim Anda dan pastikan class komponen kustom tidak pernah bertentangan dengan nama utilitas milik Tailwind.
/* Naming convention: {component}-{variant} */
.btn { @apply rounded-lg px-4 py-2 font-semibold; }
.btn-primary { @apply btn bg-blue-600 text-white hover:bg-blue-700; }
.btn-outline { @apply btn border border-blue-600 text-blue-600 hover:bg-blue-50; }
.card { @apply rounded-xl bg-white shadow; }
.card-header { @apply border-b border-gray-100 p-4 font-semibold; }
.card-body { @apply p-4; }Konvensi Awalan Responsif
Dokumentasikan cara tim Anda menangani desain responsif. Konvensi yang umum meliputi selalu mengutamakan seluler (gaya dasar untuk seluler, awalan menambahkan perilaku untuk layar yang lebih besar), hanya menggunakan sebagian titik henti (misalnya, hanya md dan lg), serta tidak pernah menerapkan awalan tanpa mendefinisikan kasus dasarnya agar gaya dapat mengalir dengan benar.
<!-- GOOD: mobile-first base, then larger breakpoints -->
<div class="flex-col gap-4 md:flex-row md:gap-6 lg:gap-8">
<!-- CONFUSING: responsive prefix without a base style -->
<div class="md:flex-row">
<!-- What displays on mobile? The browser's UA default — unpredictable -->Konvensi Mode Gelap
Pilih dan dokumentasikan satu strategi mode gelap untuk seluruh proyek — yaitu strategi class atau strategi media — dan jangan mencampurnya. Tentukan elemen mana yang selalu memerlukan varian gelap (latar belakang, teks, border) dan mana yang dapat mewarisinya. Sertakan daftar periksa untuk meninjau kelengkapan mode gelap pada komponen baru sebelum penggabungan.
/* Documented decision: we use class strategy */
/* tailwind.config.js: darkMode: 'class' */
/* Component dark mode checklist:
[ ] bg-* has a dark:bg-* variant
[ ] text-* has a dark:text-* variant
[ ] border-* has a dark:border-* variant
[ ] ring-* has a dark:ring-* variant if used as focus indicator
*/
<div class="bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100">Daftar Periksa Peninjauan Pull Request
Masukkan konvensi Tailwind ke dalam proses peninjauan PR Anda. Daftar periksa singkat dalam templat PR mengingatkan penulis dan peninjau untuk memverifikasi konvensi penting. Itemnya dapat mencakup: classes sudah diurutkan, tidak ada pembuatan class dinamis yang tidak masuk safelist, nilai arbitrer memiliki komentar, varian mode gelap lengkap, dan tidak ada utilitas yang saling bertentangan.
## Tailwind Checklist
- [ ] Classes sorted (Prettier ran)
- [ ] No typos (ESLint passed)
- [ ] Arbitrary values explained with comments
- [ ] Dark mode variants added for new surfaces
- [ ] No dynamic class concatenation without safelist
- [ ] Responsive base styles defined before breakpoint prefixesMendokumentasikan Panduan Gaya
Tulis panduan gaya dalam file STYLE_GUIDE.md yang di-commit ke repositori. Simpan panduan tersebut dekat dengan kode, bukan di wiki terpisah yang dapat menjadi usang. Setiap konvensi harus menyertakan alasan singkat agar anggota tim baru memahami mengapa konvensi tersebut ada, sehingga mereka lebih mudah menerima dan mengikutinya. Tinjau panduan setiap tiga bulan dan perbarui seiring perkembangan proyek.
# Tailwind CSS Style Guide
## 1. Class Ordering
Use Prettier plugin — no manual sorting required.
## 2. @apply Usage
Only for patterns repeated 3+ times with no component solution.
## 3. Arbitrary Values
Add a comment. If used 2+ times, promote to theme.extend.
## 4. Dark Mode
Class strategy. Every new background and text color needs dark variant.Orientasi Pengembang Baru
Panduan gaya hanya efektif jika dibaca oleh pengembang baru. Sertakan tautan ke panduan gaya Tailwind dalam README proyek dan daftar periksa orientasi anggota tim baru. Pertimbangkan untuk menambahkan kuis atau latihan singkat yang memungkinkan pengembang baru menerapkan konvensi pada komponen latihan sebelum menyentuh kode produksi.
# README.md
## Getting Started
1. `npm install`
2. Read [STYLE_GUIDE.md](./STYLE_GUIDE.md) before writing any Tailwind classes
3. Enable the recommended VS Code extensions from `.vscode/extensions.json`
4. Run `npm run lint && npm run format:check` before every commitPemeriksaan Singkat
Uji pemahaman Anda tentang konsep Tailwind CSS Mastery dari pelajaran ini.
Rangkuman Pelajaran
Dalam pelajaran ini, Anda telah mempelajari: mendefinisikan konvensi nilai arbitrer dan @apply untuk mencegah penyalahgunaan, menyertakan konvensi dalam daftar periksa PR agar peninjauan konsisten, dan mendokumentasikan panduan gaya di repositori agar tetap diperbarui. Selanjutnya, kita akan membuat bagian hero dan navigasi halaman arahan yang lengkap.
Belajar HTML dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Konvensi Tim dan Panduan Gaya” gratis?
Ya — teks lengkap “Konvensi Tim dan Panduan Gaya” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Tailwind CSS Academy, upgrade ke CoddyKit PRO. Kursus Tailwind CSS Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Konvensi Tim dan Panduan Gaya”?
Tentukan panduan gaya tim untuk pengurutan kelas, penamaan komponen, kapan menggunakan @apply, dan cara menangani nilai arbitrer sekali pakai secara konsisten. Kamu berlatih Tailwind CSS Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Tailwind CSS Academy?
Tidak diperlukan pengalaman sebelumnya. Tailwind CSS Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Konvensi Tim dan Panduan Gaya” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Tailwind CSS Academy ini?
Ya. Setiap pelajaran Tailwind CSS Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengaudit Keluaran CSS Anda
- Pengurutan Kelas dan Plugin Prettier
- Lint Tailwind dengan ESLint
- Konvensi Tim dan Panduan Gaya