Desain · Pasal DSN-12
Tombol lahir dari UiButton, bukan ditulis tangan
Tombol dan tautan-berbentuk-tombol memakai UiButton dari
src/features/projects/shared/ui/. Elemen <button> telanjang hanya sah di
dalam berkas yang mendefinisikan primitif itu sendiri.
Kenapa: sebelum primitif ini ada, tombol ditulis tangan dengan delapan
tinggi berbeda — h-6 sampai h-20. Tak ada yang pernah memutuskan itu; ia
hanya terjadi, satu halaman satu kali. Sementara hal-hal yang benar-benar perlu
diputuskan justru sudah menyatu sendiri tanpa dibantu: rounded-full dipakai 46
dari 51 tombol, dan variannya cuma dua — latar gelap 33 kali, latar terang 33
kali.
Cara menerapkan: variant (primary/secondary/ghost/danger) dan size
(sm/md/lg, terikat --ctl-*). Beri href dan ia merender <a>; tanpa href ia
<button>. Perbedaan itu bukan gaya: sesuatu yang memindahkan halaman harus
bisa dibuka di tab baru dan terbaca sebagai tautan.
Utang saat ini: 202. Ambang ini adalah alat migrasi, bukan toleransi: kode lama dibiarkan jalan, tapi tombol tangan ke-203 menggagalkan build. Agen yang menulisnya tidak perlu pernah membaca pasal ini untuk dihentikan.