Oluwa.io
Semua tulisan
·7 menit bacasistem desainminimalismeaksesibilitastoken desain

Hitam dan Putih: Sistem Desain yang Dibangun untuk Fokus

Mengapa kami membangun setiap produk di atas sistem desain hitam-putih minimalis: ramp abu-abu tertutup, hierarki skala tipe, dan aksesibilitas secara bawaan.

Oleh Vitor Lima

Kami membangun setiap produk OLUWA dalam hitam dan putih yang ketat. Tidak ada biru merek, tidak ada aksen teal, tidak ada "hijau sukses" yang menyelinap ke dalam notifikasi toast. Sistem desain hitam-putih minimalis bukanlah nostalgia terhadap terminal dan bukan pula moodboard yang membuat kami jatuh hati. Ia adalah kendala kerja yang membuat keputusan kami lebih cepat, antarmuka kami lebih terbaca, dan baseline aksesibilitas kami lebih tinggi secara bawaan. Inilah mengapa kami memilih monokrom, apa yang kami relakan, serta token dan aturan yang bisa Anda adopsi besok.

Mengapa kami menghapus warna dengan sengaja

Warna adalah variabel yang paling disalahgunakan dalam desain antarmuka. Ia murah untuk ditambahkan dan mahal untuk dikelola. Begitu Anda punya sebuah palet, setiap elemen bersaing memperebutkan salah satu warna Anda, dan "warna apa seharusnya ini" menjadi pertanyaan yang Anda jawab ratusan kali seminggu, biasanya secara tidak konsisten.

Sebuah tombol destruktif berwarna merah. Tetapi begitu juga keadaan error, dan penanda field wajib diisi, dan lencana notifikasi, dan seri grafik untuk pengguna yang churn. Merah kini berarti lima hal, yang artinya ia tidak berarti apa-apa.

Menghapus warna menghilangkan seluruh kelas keputusan itu. Ketika Anda tidak bisa meraih sebuah warna untuk menandakan kepentingan, Anda menandakannya dengan alat yang benar-benar membawa makna: posisi, ukuran, ketebalan, dan ruang kosong. Alat-alat itu lebih jujur. Sebuah judul terbaca penting karena ia besar dan duduk di atas dengan ruang di sekelilingnya, bukan karena seseorang mengecatnya ungu.

Intinya: jika Anda menggunakan warna untuk memperbaiki masalah hierarki, Anda punya masalah hierarki, bukan masalah warna. Monokrom menolak membiarkan Anda menutupinya.

Hierarki tanpa warna: tiga tuas

Dengan warna disingkirkan dari meja, tiga tuas melakukan semua pekerjaan.

Skala tipe. Kami menjalankan skala modular dengan lompatan yang jelas, bukan gradien ukuran yang kontinu. Langkah yang duduk terlalu berdekatan terbaca sebagai kebisingan; mata membutuhkan peringkat yang tak ambigu. Skala kerja kami kira-kira 12 / 14 / 16 / 20 / 28 / 40 / 64px. Teks isi berada di 16, metadata sekunder di 14, dan segala yang di atas 20 bersifat struktural. Jika dua hal perlu terasa berbeda dalam kepentingan, keduanya mendapat langkah berbeda, tidak pernah langkah yang sama dalam dua rona abu-abu.

Ketebalan dan huruf besar. Dengan satu typeface dan tanpa warna, ketebalan menjadi sinyal utama. Kami menggunakan paling banyak tiga ketebalan: regular, medium, dan satu bold yang dicadangkan untuk penekanan yang sungguh-sungguh. Huruf kapital dengan spasi antar-huruf yang direnggangkan melakukan pekerjaan sebuah "warna label," menandai sebuah string sebagai kategori atau eyebrow tanpa rona.

Ruang. Ruang kosong adalah dinding penopang beban dari sebuah tata letak monokrom. Kedekatan mengelompokkan hal-hal yang berkaitan; jarak memisahkannya. Di MadaiOps, aplikasi order kripto kami, tiket order sepenuhnya mengandalkan ini: harga, ukuran, dan sisi duduk rapat berkelompok, sementara aksi konfirmasi didorong menjauh dengan ruang yang disengaja sehingga tidak akan pernah tertekan jari secara tidak sengaja di sebelah sebuah input. Tidak diperlukan gaya "bahaya" merah. Penataan ruang itulah yang menjaga.

Kontras adalah sebuah sistem, bukan sekadar nuansa

Jebakan dengan hitam dan putih adalah berpikir Anda hanya punya dua nilai. Anda punya ramp grayscale penuh, dan disiplinnya ada pada pengendaliannya. Kami mendefinisikan satu set langkah yang kecil dan tetap serta melarang abu-abu di luar ramp. Inilah ramp yang benar-benar kami hadirkan:

--ink-000: #000000   /* primary text, headings */
--ink-700: #3d3d3d   /* body on light, secondary headings */
--ink-500: #6b6b6b   /* metadata, captions, disabled-adjacent */
--ink-300: #b0b0b0   /* borders, dividers, placeholder */
--ink-100: #e6e6e6   /* subtle fills, hover backgrounds */
--paper:   #ffffff   /* base surface */

Enam nilai. Itulah keseluruhan sistemnya, ditambah kebalikannya untuk mode gelap. Aturan yang kami tegakkan dalam review: tidak boleh ada abu-abu yang tidak berada di ramp. Pada detik seseorang mengambil warna #8a8a8a karena "border-nya terasa sedikit berat," sistem mulai membusuk. Set nilai yang tertutup itulah yang menjaga UI monokrom agar tidak melenceng ke dalam keseragaman yang keruh.

Teks melampaui 4,5:1, struktur melampaui 3:1

Setiap pasangan teks-di-atas-permukaan diperiksa terhadap rasio kontras WCAG sebelum dihadirkan. --ink-500 di atas --paper mendarat sekitar 5,7:1, nyaman melewati ambang 4,5:1 untuk teks isi. --ink-300 gagal sebagai teks dan karena itu hanya diizinkan untuk border dan pembagi, di mana ambang non-teks 3:1 berlaku. Mengodekan aturan ke dalam penggunaan yang diizinkan bagi token, bukan hanya nilainya, itulah yang membuatnya melekat.

Dividen aksesibilitas

Di sinilah monokrom diam-diam menang. Kira-kira satu dari dua belas pria memiliki suatu bentuk defisiensi penglihatan warna, dan antarmuka apa pun yang bersandar pada merah-versus-hijau untuk membawa makna tidak terbaca bagi sebagian pengguna yang berarti. Kami tidak pernah menabrak tembok itu, karena kami tidak pernah mengodekan makna ke dalam rona sejak awal. Keadaan-keadaan kami dibedakan berdasarkan bentuk, label, ketebalan, dan posisi.

Disiplin itu memaksa pola yang lebih sehat di mana-mana: jangan pernah biarkan satu kanal tunggal membawa makna sendirian. Sebuah tombol yang dinonaktifkan dalam sistem kami tidak hanya lebih terang. Ia kehilangan border-nya dan label-nya turun ke --ink-300, sehingga keadaannya bertahan pada layar grayscale, di bawah sinar matahari terang, dan bagi pengguna buta warna secara identik. Youp, aplikasi jurnal kami, menandai entri suasana hati dengan ikonografi dan teks label alih-alih gradien sentimen merah-ke-hijau yang biasa, sehingga riwayat emosional terbaca tanpa mengandalkan spektrum yang tidak bisa dilihat banyak orang.

Anda mendapatkan dukungan kontras-tinggi dan forced-colors nyaris gratis juga, karena Anda tidak pernah melawan override aksesibilitas milik browser dengan palet merek yang rapuh.

Bagaimana kendala mempercepat keputusan

Manfaat yang kurang dihargai adalah kecepatan. Sebuah palet adalah ledakan kombinatorial: setiap komponen baru dikalikan terhadap setiap rona dan setiap keadaan. Monokrom meruntuhkan itu. Tanpa keputusan warna yang harus dibuat, desain sebuah komponen menyusut menjadi langkah tipe, ketebalan, penataan ruang, dan token grayscale mana untuk border. Itu adalah keputusan yang bisa Anda buat dalam hitungan detik dan pertahankan dalam review dengan sebuah aturan alih-alih perdebatan selera.

Ia juga berlipat ganda. Karena set token kecil dan tertutup, komponen tersusun secara dapat diprediksi: sebuah kartu, sebuah baris tabel, dan sebuah modal semuanya menarik dari enam abu-abu yang sama dan tujuh langkah tipe yang sama, sehingga mereka terlihat berkaitan tanpa koordinasi apa pun. Permukaan baru mewarisi konsistensi alih-alih menegosiasikannya. Untuk studio kecil yang menghadirkan beberapa produk, substrat bersama itu adalah perbedaan antara empat aplikasi yang terasa seperti satu keluarga dan empat aplikasi yang terasa seperti empat vendor.

Trade-off-nya nyata dan layak disebut. Monokrom memiliki jangkauan ekspresif mentah yang lebih sedikit, dan beberapa kategori benar-benar membutuhkan warna: visualisasi data dengan banyak seri, apa pun yang memetakan ke warna fisik, momen merek yang berdagang dengan kehangatan. Kami tidak berpura-pura sebaliknya. Sikap kami adalah bahwa warna harus diperoleh dan langka, diperkenalkan dengan sengaja untuk pekerjaan tertentu, tidak pernah sebagai tuas bawaan untuk hierarki. Ketika kami memang meraihnya, ia mendarat dengan keras justru karena segala hal di sekelilingnya tenang.

Aturan yang bisa Anda adopsi besok

Jika Anda ingin mencoba ini tanpa membangun ulang segalanya:

  • Tutup ramp abu-abu Anda. Pilih lima atau enam nilai, beri nama, dan larang segala hal di luar ramp dalam review kode. Aturan tunggal ini melakukan sebagian besar pekerjaan.
  • Buat satu skala tipe dan gunakan hanya langkah-langkahnya. Tidak ada ukuran font sembarangan. Jika Anda terus membutuhkan ukuran baru, skalanya salah; perbaiki skalanya, jangan menambah satu ukuran sekali pakai.
  • Kodekan penggunaan yang diizinkan ke dalam token. --ink-300 adalah "hanya border," bukan sekadar sebuah nilai heksa. Dokumentasikan di tempat yang akan dibaca para insinyur.
  • Audit setiap sinyal pembawa makna untuk kanal kedua. Jika menghapus warna akan membuat sebuah keadaan menjadi ambigu, tambahkan bentuk, label, atau posisi sampai tidak lagi ambigu.
  • Perlakukan ruang kosong sebagai sebuah komponen. Beri token bernama pada penataan ruang dan pertahankan dalam review sebagaimana Anda mempertahankan warna di tempat lain.

Pikiran penutup

Bekerja dalam hitam dan putih bukanlah keterbatasan yang kami toleransi; ia adalah lensa yang menjernihkan. Buang variabel termudah dan yang struktural — ritme, proporsi, kontras, ruang — tidak punya tempat untuk bersembunyi. Antarmuka entah punya hierarki yang nyata atau tidak, dan Anda mengetahuinya seketika. Kejujuran itu lebih berharga bagi kami daripada palet mana pun.