Lewati ke konten
Aturan komponen
Dokumentasi Pratinjau

Aturan komponen

Penamaan, susunan berkas, struktur wajib, perilaku JavaScript, dan yang dilarang.

Penamaan

Pola blok__elemen--varian. Empat bentuk saja, tidak ada yang lain.

BentukContohArti
ck-blokck-cardKomponen mandiri
ck-blok__elemenck-card__headerBagian yang tidak hidup tanpa bloknya
ck-blok--varianck-btn--outlineBentuk lain dari blok yang sama
ck-blok__elemen--varianck-list__item--linkBentuk lain dari elemen

Tidak ada singkatan yang tidak jelas (ck-btn-2, ck-x), tidak ada nama berdasarkan warna (ck-blue-box), tidak ada huruf besar.

Susunan berkas gaya

Satu berkas CSS, urutan bagian yang tetap. Nomor bagian dipertahankan supaya mudah dirujuk.

UrutanBagianIsi
1ImporFont dan token
2ResetNormalisasi dan dasar elemen
3DasarJudul, teks, tautan, kode, kisi
4Tata letakShell, sidebar, topbar, konten
5–30KomponenSatu bagian per komponen
31Aksesibilitas & utilitasSkala jarak, penyaring, cetak
32CetakAturan @media print

Struktur komponen

Sebuah komponen baru boleh dianggap selesai kalau punya semua bagian ini.

BagianWajibKeterangan
Aturan blok dasarYaUkuran, bantalan, radius dari token
VarianYaMinimal satu varian selain bentuk dasar bila ada peran berbeda
Keadaan hover/fokusYaFokus wajib terlihat
Keadaan nonaktifYaUntuk semua yang bisa diklik atau diisi
Penyesuaian mode gelapYaOtomatis bila memakai token; periksa tetap terbaca
Halaman galeri di components/YaTanpa itu komponen tidak terdaftar dan ditolak penjaga
Aturan @media printBila perluHanya untuk komponen yang relevan dicetak

Perilaku JavaScript

Tidak ada JavaScript yang ditulis di halaman. Semua perilaku dipasang lewat atribut data-ck-* dan ditangani satu berkas, classroom.js.

AtributFungsi
data-ck-theme-toggleTombol ganti tema terang/gelap
data-ck-toggle="id"Membuka menu dropdown
data-ck-open="id" / data-ck-closeMembuka dan menutup modal
data-ck-drawer-open="id" / data-ck-close-drawerLaci untuk layar kecil
data-ck-accordion="id"Buka-tutup akordeon
data-ck-toast="success"Menampilkan notifikasi; judul lewat data-ck-toast-title
data-ck-sortableTabel bisa diurutkan per kolom
data-ck-check-allKotak centang pilih-semua di kepala tabel
data-ck-copy="#id"Tombol salin isi elemen
data-ck-nav-filterPenyaring navigasi sidebar
data-ck-yearMengisi tahun berjalan
Tanpa <script> sebaris di halaman
Halaman komponen tidak boleh memuat skrip sendiri. Kalau butuh perilaku baru, tambahkan di classroom.js dengan atribut data-ck-*. Aturan ini dijaga otomatis — dulu satu halaman memanggil fungsi sebelum skripnya dimuat dan seluruh galeri gagal diam-diam.

Aksesibilitas minimum per komponen

KomponenSyarat wajib
Tombol ikonaria-label yang menjelaskan aksinya
InputTerhubung ke label; pesan galat lewat aria-describedby
Modalrole="dialog", aria-modal, fokus terjebak di dalam, Esc menutup
Dropdownaria-expanded, aria-haspopup, bisa ditutup dengan Esc
Tabrole="tablist"/tab/tabpanel, panah kiri-kanan berpindah
Tabelth scope, aria-sort saat kolom diurutkan
Lencana statusTeks di dalamnya bermakna; warna bukan satu-satunya penanda
Akordeonaria-expanded pada pemicu

Yang dilarang

DilarangAlasan
Warna, ukuran, atau bayangan mentahMode gelap tidak ikut berubah; check.py menolaknya
!importantMenandakan konflik yang belum diselesaikan
Selektor id atau kedalaman lebih dari tiga tingkatRapuh terhadap perubahan markup
Menghapus cincin fokusMembuat halaman tidak bisa dipakai dengan papan ketik
Menyalin gaya komponen ke halaman alih-alih memakai kelasnyaItulah cara sistem desain terpecah
Lanjutan
Cara menambah komponen baru dan menjalankan penjaganya ada di Menambah komponen.
classroom-themekitdokumentasi