Daftar-periksa parity UI lintas-platform untuk web dan aplikasi native
Gunakan daftar-periksa parity UI lintas-platform ini untuk menjaga tipografi, spacing, keadaan kosong, dan perilaku komponen konsisten di web dan aplikasi native.

Apa arti UI parity (dan kenapa mudah rusak)
UI parity berarti aplikasi web Anda dan aplikasi mobile native terasa seperti produk yang sama. Bukan piksel yang identik, tapi makna yang sama, ekspektasi yang sama, dan hasil yang sama ketika seseorang mengetuk, mengetik, atau menunggu.
Tes sederhana: jika pengguna mempelajari sesuatu di satu layar, pembelajaran itu harus berpindah ke layar setara di platform lain.
Biasanya perbedaan kecil yang membuat pengguna tersandung. Jika tombol bertuliskan “Save” di web dan “Done” di mobile, pengguna ragu. Jika spacing lebih rapat di satu platform, layar terasa lebih menegangkan walau fiturnya sama. Jika mengetuk baris daftar membuka detail di mobile tapi menampilkan checkbox di web, orang mulai menebak alih-alih mempercayai UI.
Apa yang harus cocok persis? Apa pun yang memengaruhi pemahaman dan kepercayaan. Untuk kebanyakan produk, itu berarti:
- Nama dan label untuk tindakan yang sama, dan di mana mereka muncul
- Tata letak inti untuk layar kunci (navigasi, aksi utama, info kritis)
- Keadaan seperti loading, error, disabled, dan hasil kosong
- Perilaku komponen (ketuk, geser, tekan lama, keyboard, fokus)
- Nada dan struktur pesan (apa yang terjadi, apa yang harus dilakukan selanjutnya)
Apa yang bisa beradaptasi? Hal-hal yang terutama tentang kenyamanan di masing-masing platform. Rendering font, safe area, dan pola native seperti gestur kembali iOS atau tombol sistem Android bisa berbeda, selama pengguna tetap sampai pada tempat yang sama dan mengerti apa yang berubah.
Tujuan praktisnya adalah “pola yang dapat diprediksi.” Jika seseorang memperbarui profil di web, mereka harus mengenali field yang sama, aturan validasi yang sama, dan pesan sukses yang sama di mobile. Bahkan jika Anda membangun cepat dengan alat seperti AppMaster (UI web plus UI native iOS/Android), parity tetap butuh aturan eksplisit supaya aplikasi tumbuh ke arah yang sama, bukan menjadi dua produk yang mirip tapi berbeda.
Tetapkan baseline bersama sebelum membandingkan layar
Review parity runtuh ketika setiap platform diukur terhadap ide “benar” yang berbeda. Sebelum membandingkan layar web dan native, sepakati apa yang dihitung sebagai “sama,” dan tuliskan. Ini bukan hal yang menarik, tapi mencegah jam-jam pengerjaan ulang.
Anda tidak butuh spesifikasi besar. Anda butuh beberapa aturan yang menghentikan drift paling umum:
- Tipografi: ukuran, tinggi baris, dan bagaimana teks membungkus atau dipotong
- Spacing: padding, margin, langkah grid, dan kapan menggunakan layout kompak vs nyaman
- Peran warna: primary, danger, muted, batasan kontras, dan ekspektasi mode gelap
- Komponen: tombol, input, card, dan pola navigasi yang “disetujui”
- Keadaan: loading, error, empty, disabled, dan umpan balik sukses
Selanjutnya, pilih satu sumber kebenaran. Beberapa tim menggunakan file desain; yang lain mengandalkan token plus panduan singkat. Bagian pentingnya adalah aturan hidup di satu tempat dan perubahan dicatat. Jika Anda membangun dengan AppMaster, membantu untuk menyelaraskan token dan komponen reusable di builder UI web dan mobile sehingga pilihan yang sama muncul di mana-mana.
Terakhir, tetapkan ritme dan kepemilikan. Perlakukan parity seperti pengujian, bukan seperti sentuhan akhir menit terakhir. Tentukan kapan review terjadi (sebelum rilis dan setelah perubahan pada komponen bersama), siapa yang menandatangani (desain untuk visual, produk untuk maksud, QA untuk kasus tepi dan cakupan perangkat), dan apa arti “selesai” (mismatch diperbaiki atau diterima secara eksplisit dengan alasan).
Contoh: jika portal pelanggan Anda menambahkan halaman “Invoices” baru, putuskan dari awal bagaimana tabel runtuh di mobile, bagaimana empty state menjelaskan tidak ada invoice, dan apa yang dilakukan tombol “Pay now” ketika perangkat offline. Dengan baseline itu, review menjadi pemeriksaan drift cepat, bukan debat soal selera.
Aturan tipografi yang tetap konsisten di semua platform
Tipografi adalah tempat “hampir sama” cepat berubah menjadi “ini terasa seperti produk berbeda.” Mulailah dengan memberi nama gaya Anda dalam token sederhana (H1, H2, Body, Caption) dan terapkan dengan cara yang sama di web dan native.
Pilih keluarga font yang sadar platform. Gunakan satu keluarga primer per platform yang mencerminkan kepribadian dan kerapatan serupa, lalu definisikan fallback. Contoh: font sistem di iOS (SF), font sistem di Android (Roboto), dan web font yang tampak mirip, dengan fallback aman ke system-ui. Tujuannya bukan huruf yang identik, melainkan nada dan keterbacaan yang sama.
Tentukan skala tipe sekali, lalu buat sekecil mungkin agar tak seorang pun menciptakan ukuran baru. Contoh:
- H1: 28-32px, tinggi baris 1.2-1.3
- H2: 20-24px, tinggi baris 1.25-1.35
- Body: 16px, tinggi baris 1.4-1.6
- Secondary: 14px, tinggi baris 1.4-1.6
- Caption: 12-13px, tinggi baris 1.3-1.5
Perilaku teks sama pentingnya dengan ukuran. Tentukan bagaimana Anda menangani judul panjang dan data yang tidak terduga (nama, alamat, subjek tiket) sehingga web dan mobile tidak menyimpang:
- Judul: maksimal 2 baris, lalu potong dengan elipsis
- Sel tabel: satu baris, potong, tunjukkan nilai penuh saat diketuk/diarahkan kursor
- Paragraf: membungkus secara alami, tidak memotong di tengah kata
- Angka: gunakan numerals tabular jika tersedia, jaga penjajaran desimal
Perataan sering jadi mismatch. Default-kan ke rata kiri untuk sebagian besar teks, terutama formulir dan daftar. Gunakan rata tengah hanya untuk momen pendek dan bertujuan tunggal seperti pesan sukses atau headline empty state.
Tetapkan minimum aksesibilitas dan anggap itu non-negotiable. Targetkan setidaknya 16px untuk teks body primer di mobile, hindari bobot font sangat tipis pada ukuran kecil, dan jaga kontras cukup tinggi agar terbaca di cahaya matahari. Jika Anda menggunakan AppMaster, jadikan token desain ini bersama agar layar yang sama terbaca konsisten di web dan native.
Aturan spacing dan tata letak (termasuk safe area mobile)
Spacing adalah tempat “hampir sama” menjadi “terasa berbeda.” Jika layar web Anda longgar tapi layar mobile terasa sempit, pengguna akan memperhatikannya meski warna dan font cocok.
Mulailah dengan satu skala spacing yang dipakai kedua platform. Skala berbasis 4 sederhana cocok dengan CSS dan grid layout native. Sederhanakan aturannya: item terkait dapat celah lebih kecil daripada seksi terpisah, padding layar default tetap, dan pengecualian jarang serta didokumentasikan.
Baseline tipikal terlihat seperti ini:
- Langkah bersama: 4, 8, 12, 16, 24
- Celah antar item terkait: 8-12
- Celah seksi: 16-24
- Padding layar default: 16
Standarkan safe area di mobile. Konten tidak boleh berada di bawah notch, home indicator, atau bar sistem. Satu aturan jelas membantu: “Semua konten utama menghormati safe area + padding dasar.” Jika Anda memiliki bottom bar, sertakan tinggi bar itu dalam inset konten agar baris terakhir daftar masih bisa dijangkau.
Kerapatan daftar juga butuh pilihan eksplisit. Pilih dua opsi dan beri nama (compact dan comfortable). Definisikan tinggi baris, padding vertikal, dan penggunaan pemisah. Terapkan opsi yang sama di web dan mobile untuk tipe layar yang sama, agar “Daftar Invoices” tidak terasa seperti dua desain yang tak berkaitan.
Target sentuh adalah bagian dari spacing. Di mobile, kontrol harus mudah dipencet walau layout rapat. Minimum aman adalah 44x44 untuk ketukan, dengan spasi cukup antara aksi agar tidak salah ketuk.
Untuk web, tuliskan perilaku responsif pada breakpoint kunci: jumlah kolom, perilaku sidebar, dan kapan daftar berubah menjadi kartu. Saat review parity, bandingkan maksud, bukan piksel. Web bisa menampilkan lebih banyak sekaligus, tapi tidak boleh mengubah hirarki atau menyembunyikan aksi kunci.
Jika Anda membangun di AppMaster, menjaga token spacing yang sama di builder UI web dan mobile membantu layar konsisten sejak awal.
Keadaan: loading, error, disabled, dan layar kosong
Konsistensi seringkali rusak pada keadaan, bukan pada jalur bahagia. Perlakukan UI keadaan sebagai desain kelas utama dengan struktur, nada, dan aksi yang sama di web dan native.
Mulailah dengan aksi. Aksi primer harus jelas dan ditempatkan konsisten (misalnya, kanan bawah pada dialog web dan tombol lengket di bagian bawah pada mobile). Aksi sekunder tidak boleh bersaing dengan primer. Aksi destruktif perlu friksi ekstra: label jelas (“Delete project”), langkah konfirmasi, dan jalan aman keluar (“Cancel”).
Kontrol disabled tidak boleh terasa seperti bug. Gunakan disabled hanya ketika aksi benar-benar tidak bisa dijalankan, dan jelaskan alasannya di dekat kontrol. Teks bantu lebih baik daripada tooltip yang pengguna mobile jarang lihat. Jika pengguna bisa memperbaikinya, jelaskan caranya (“Tambahkan metode pembayaran untuk mengaktifkan Checkout”). Jika tidak bisa, beri tahu kapan akan terbuka (“Tersedia setelah approval”).
Aturan loading
Pilih satu pola loading per konteks dan jaga konsistensi antar platform:
- Gunakan skeleton untuk konten halaman yang akan muncul di tempatnya (tabel, kartu, daftar).
- Gunakan spinner hanya untuk tunggu singkat yang memblokir (sign-in, pengiriman formulir).
- Letakkan indikator di tempat pandangan pengguna sudah ada: di dalam tombol yang diketuk, atau di area konten yang berubah.
- Hindari lompatan tata letak dengan menyisakan ruang untuk elemen kunci (judul, tombol primer).
Aturan error dan empty state
Error harus spesifik, tenang, dan dapat dipulihkan. Tempatkan pesan di dekat masalah bila memungkinkan (pada level field). Jika tidak, gunakan banner atau dialog dengan satu aksi pemulihan jelas: “Coba lagi,” “Edit detail,” atau “Hubungi dukungan.” Hindari menyalahkan pengguna.
Empty state bekerja paling baik dengan template ulang pakai: headline singkat, satu kalimat panduan, dan satu aksi primer yang sesuai dengan apa yang pengguna harapkan lakukan selanjutnya. Contoh: di portal pelanggan yang dibangun dengan AppMaster, tab “Invoices” kosong bisa bertuliskan “Belum ada invoice” dengan CTA “Buat invoice,” menyamakan kata dan perilaku di web dan mobile.
Aturan perilaku komponen (bukan hanya tampilannya)
Dua layar bisa terlihat mirip tetapi tetap terasa berbeda. Perilaku adalah yang pengguna perhatikan pertama: apa yang terjadi saat mereka mengetuk dua kali, bagaimana error muncul, apakah “kembali” membawa mereka seperti yang diharapkan. Checklist parity Anda harus mencakup aturan interaksi, bukan hanya warna dan font.
Definisikan aturan interaksi untuk komponen inti
Tulis satu kebenaran untuk setiap komponen, lalu petakan ke pola platform tanpa mengubah hasilnya.
- Buttons: Tentukan umpan balik saat ditekan (ripple, highlight, haptic), apakah tekan lama berfungsi, dan bagaimana mencegah pengiriman ganda (disable sementara atau sampai respons kembali).
- Forms: Putuskan kapan validasi terjadi. Banyak tim memvalidasi saat blur untuk email dan menampilkan error hanya saat submit untuk field opsional. Jaga penempatan error inline konsisten dan selalu fokus ke field pertama yang tidak valid.
- Lists: Pilih pola refresh primer. Mobile mungkin pakai pull-to-refresh sementara web pakai tombol refresh, tapi keduanya harus memperbarui data yang sama dan menjaga posisi scroll yang dapat diprediksi. Juga tentukan satu pendekatan untuk pagination: halaman bernomor, “Load more,” atau infinite scroll.
- Navigation: Buat perilaku kembali sesuai maksud, bukan kekhasan platform. Definisikan bagaimana deep link bekerja, bagaimana modal ditutup, dan kapan alur adalah layar penuh vs modal.
- Search: Standarkan apa yang dilakukan tombol bersihkan (hanya teks vs teks dan hasil), jaga salinan hasil kosong konsisten, dan buat chip filter bisa dihapus dengan satu ketukan.
Contoh kecil yang bisa diuji
Bayangkan portal pelanggan tempat pengguna mencari invoice, membuka detail, dan membayar. Di mobile, ketukan ganda cepat pada “Pay” bisa membuat dua tagihan jika Anda menampilkan spinner tapi tidak mengunci aksi. Di web, menekan Enter mungkin submit walau field masih invalid.
Jika Anda membangun ini di AppMaster, tetapkan aturan yang sama di Business Process (satu request pembayaran dalam proses, trigger validasi yang konsisten) dan samakan perilaku UI di builder web dan mobile.
Putuskan sekali, lalu verifikasi setiap rilis: ketuk dua kali, submit dengan error, refresh, mundur, kosongkan pencarian.
Langkah demi langkah: bagaimana menjalankan review parity
Review parity bekerja terbaik sebagai ritual yang dapat diulang. Tujuannya menangkap “fitur yang sama, pengalaman berbeda” sebelum pengguna.
Mulailah dengan memilih set perbandingan berdampingan: sign-in, pencarian, tampilan detail, submit formulir, dan pengaturan. Gunakan data uji yang sama di web dan mobile sehingga Anda membandingkan perilaku, bukan konten.
Jalankan review dalam urutan konsisten:
- Konfirmasi label, aksi, dan hasil cocok.
- Verifikasi keadaan: loading, error, empty, disabled, sukses.
- Periksa perilaku: ketukan, fokus, keyboard, scrolling, konfirmasi.
- Lalu periksa spacing, tipografi, dan sentuhan visual.
- Uji ulang setelah perbaikan setidaknya pada satu jalur “golden path”.
Scorecard membuat keputusan cepat. Untuk setiap layar atau komponen, tandai sebagai match (maksud dan perilaku sama, hanya perbedaan native platform), perbedaan yang dapat diterima (UI berbeda, hasil sama, terdokumentasi), atau mismatch (mengubah makna, menambah langkah, atau melanggar aturan).
Saat mencatat mismatch, sertakan dua screenshot, aturan yang dilanggar (mis. “penempatan aksi primer” atau “nada empty state”), dan dampak pengguna dalam satu kalimat. Jika Anda membangun dengan AppMaster di mana web dan native bisa berbagi logika, catat apakah masalahnya pengaturan builder UI, aturan komponen bersama, atau proses bisnis itu sendiri.
Bersedia memperbaiki aturannya juga. Jika mismatch yang sama terus muncul, pedoman Anda mungkin tidak jelas atau tidak realistis. Perbarui sistem alih-alih menambal layar satu per satu.
Perangkap umum yang menyebabkan ketidakkonsistenan
Sebagian besar masalah parity bukan keputusan besar. Mereka perubahan kecil yang masuk saat implementasi, perbaikan bug, dan tweak menit terakhir. Checklist membantu, tapi hanya jika Anda tahu dari mana drift biasanya mulai.
Copy drift adalah klasik. Web mungkin menulis “Save changes” sementara mobile menulis “Update,” padahal tindakan sama. Pengguna merasakannya sebagai gesekan, terutama di reset kata sandi, edit profil, dan konfirmasi pembayaran.
Spacing drift lebih sunyi. Seseorang menambahkan 6px padding untuk memperbaiki satu layar, dan perubahan satu-off itu menyebar. Setelah beberapa sprint, layout web terasa longgar sedangkan versi mobile terasa padat, padahal keduanya seharusnya “menggunakan desain yang sama.”
Gap pada state menyebabkan kebingungan paling besar. Web mungkin menampilkan empty state dan pesan error yang jelas, sementara mobile berakhir dengan daftar kosong, spinner yang tak berujung, atau kegagalan senyap. Ini sering terjadi ketika state ditangani di tempat berbeda (frontend di web, logika view native di mobile).
Saat review, waspadai:
- Label berbeda untuk aksi yang sama, atau nada berbeda untuk pesan yang sama
- Padding atau margin acak yang ditambahkan di luar skala spacing
- Keadaan loading, error, empty, atau disabled yang hilang di satu platform
- Default platform yang bocor (toggle, date picker, alert) tanpa aturan jelas
- Regressi aksesibilitas: urutan fokus web yang membingungkan atau target mobile yang terlalu kecil
Contoh sederhana: di portal pelanggan, web menampilkan “Belum ada invoice” dengan petunjuk dan tombol untuk menambahkan metode pembayaran, tapi mobile menunjukkan daftar kosong. Perbaikan bukan sekadar sentuhan visual — melainkan sepakat pada konten empty-state yang tepat dan perilaku tombol yang diharapkan, lalu menerapkannya di mana-mana.
Bahkan jika Anda membangun web dan native di AppMaster, parity tetap butuh aturan untuk teks, token spacing, dan penanganan state agar tiap layar tidak jadi pengecualian sendiri.
Checklist parity cepat (pemeriksaan 5 menit sebelum rilis)
Pemeriksaan cepat menangkap apa yang pengguna lihat pertama: teks yang terasa aneh, tombol yang berperilaku berbeda, dan layar yang terasa belum selesai.
Buka satu “layar referensi” di web dan di ponsel. Pilih alur yang paling sering dipakai (login, pencarian, checkout, formulir permintaan), lalu lakukan pemindaian cepat:
- Tipografi: Heading, body, dan caption mengikuti langkah ukuran dan aturan bobot yang sama. Periksa tinggi baris juga, terutama di ponsel kecil.
- Spacing dan kenyamanan sentuh: Padding di sekitar kartu, formulir, dan dialog terasa konsisten. Di mobile, pastikan konten tidak terjepit di dekat notch atau home indicator.
- Keadaan layar: Layar kunci menampilkan loading, error, empty, dan disabled dengan jelas. Pengguna harus selalu tahu apa yang terjadi dan apa yang harus dilakukan selanjutnya.
- Perilaku komponen: Aksi primer submit dengan cara yang sama, menampilkan umpan balik yang sama, dan mencegah ketukan ganda atau klik ganda. Perilaku kembali tidak boleh kehilangan data yang dimasukkan secara tak terduga.
- Makna copy: Label dan pesan error cocok dalam arti, bukan hanya kata. Jika web menulis “Billing address,” mobile tidak boleh menulis “Payment info” kecuali memang berbeda secara fungsi.
Jika ada yang gagal, tanyakan satu pertanyaan: “Apakah pengguna akan merasa mereka berpindah ke produk lain?” Perbaiki mismatch terbesar dulu.
Contoh: di portal pelanggan yang dibangun dengan AppMaster, Anda mungkin melihat formulir yang sama di web dan native, tapi versi mobile mengizinkan menekan “Submit” dua kali di jaringan lambat. Tambahkan state loading yang jelas dan nonaktifkan tombol sampai permintaan selesai sehingga perilaku cocok dan duplikasi tidak terjadi.
Contoh: membuat portal pelanggan konsisten di web dan mobile
Bayangkan portal pelanggan sederhana dengan tiga layar: Login, Profil, dan Daftar Pesanan. Aplikasi web dipakai di laptop oleh agen dukungan. Aplikasi mobile dipakai pelanggan saat bepergian. Anda ingin alur dan makna yang sama di mana saja, walau detail UI boleh berbeda.
Mismatch umum muncul saat pelanggan belum punya pesanan. Di web, halaman Orders bisa menampilkan empty state ramah dengan ikon, pesan singkat, dan tombol primer seperti “Browse products.” Di mobile, layar yang sama kadang berakhir sebagai daftar kosong tanpa panduan. Pengguna mengira aplikasinya rusak.
Perbaikannya adalah memperlakukan parity sebagai aturan, bukan tebak-tebak visual. Begini penerapan aturannya:
- Template empty state: Struktur dan salinan sama di kedua platform: judul (“Belum ada pesanan”), satu baris bantu, dan satu aksi jelas. Simpan aksi sekunder sebagai tautan, bukan tombol.
- Hirarki tombol: Satu aksi primer per layar. Di web dan mobile, “Browse products” adalah primer. “Hubungi dukungan” menjadi sekunder dan tampil lebih ringan.
- Skala spacing: Gunakan langkah spacing yang sama (mis. 8, 16, 24) sehingga layout terasa terkait. Mobile boleh menambah padding vertikal sedikit untuk target sentuh, tapi tetap gunakan skala yang sama.
Perilaku biasanya tempat parity paling sering rusak, jadi definisikan secara eksplisit:
- Refresh: Mobile dukung pull-to-refresh; web pakai ikon refresh atau tombol “Reload.” Keduanya memicu state loading yang sama dan sebisa mungkin menjaga posisi scroll.
- Pagination: Web bisa menampilkan “Load more” dan kontrol ukuran halaman; mobile pakai infinite scroll atau “Load more.” Dalam semua kasus, item baru ditambahkan, bukan mengganti daftar.
- Error: Jika Orders gagal dimuat, kedua platform menampilkan pesan yang sama dan aksi retry. Jangan menyembunyikan error di toast di satu platform sementara platform lain menampilkan layar penuh.
Hasilnya adalah yang penting: pengguna mengerti apa yang terjadi dan apa yang harus dilakukan. UI tetap menghormati masing-masing platform (safe area, perilaku keyboard, hover vs tap), tapi produk terasa sebagai satu portal koheren.
Langkah selanjutnya: jaga parity saat produk berkembang
Parity mudah dilakukan sekali dan mudah hilang ketika produk bergerak. Fitur baru, perbaikan cepat, dan permintaan khusus platform cepat menumpuk. Tujuannya membuat “tetap konsisten” menjadi default.
Perlakukan checklist Anda sebagai dokumen hidup. Setelah setiap rilis, catat apa yang berubah dan apa yang mengejutkan. Jika sebuah layar dirilis dengan empty state berbeda di mobile, ubah itu menjadi aturan atau contoh agar tidak terulang.
Buat konsistensi menjadi jalur resistensi paling rendah
Semakin banyak yang bisa Anda reuse, semakin sedikit yang harus diputuskan lagi. Bangun sekumpulan kecil komponen dan template halaman untuk pola umum seperti layar daftar, layar detail, formulir, dan tampilan “tidak ada hasil.” Jaga satu sumber kebenaran untuk copy umum (label tombol, pesan empty-state) supaya web dan native tidak perlahan berkembang dengan nada berbeda.
Rutinitas sederhana membantu tim tetap jujur:
- Perbarui aturan parity saat catatan rilis, bukan berminggu-minggu kemudian.
- Tambahkan item parity ke acceptance criteria fitur (state, spacing, perilaku).
- Minta screenshot atau rekaman singkat dari kedua platform saat PR atau tanda tangan QA.
- Lacak “perbedaan yang disetujui” sehingga pengecualian eksplisit, bukan tidak sengaja.
- Jadwalkan sweep parity cepat setelah perubahan design system.
Tanamkan parity ke cara Anda membangun
Apa pun alat yang Anda gunakan, arahkan pada token bersama, template bersama, dan aturan perilaku bersama. Jika Anda memakai AppMaster, ada baiknya memperlakukan token dan pola UI reuse sebagai aset bersama di builder web dan mobile, dan menyimpan logika kunci di satu tempat lewat Business Process Editor. Dengan begitu, parity didukung oleh cara produk dibangun, bukan dipaksakan lewat review heroik di menit terakhir.
Jika Anda ingin ini bertahan, pilih satu fitur yang akan datang dan tambahkan cek parity ke definition of done-nya. Ini cara mudah mengubah “tetap konsisten” menjadi pekerjaan yang tim bisa verifikasi.
FAQ
UI parity berarti orang dapat berpindah antara aplikasi web dan aplikasi mobile native Anda tanpa harus mempelajari ulang bagaimana layar kunci bekerja. Kata-kata, hirarki, keadaan, dan hasilnya harus cocok, walau detail platform seperti safe area atau navigasi sistem bisa berbeda.
Mulailah dengan apa pun yang memengaruhi pemahaman dan kepercayaan: label tindakan, posisi tindakan utama, tata letak layar penting, status loading/error/empty/disabled, dan bagaimana komponen inti berperilaku. Jika perubahan mengubah apa yang pengguna pikir akan terjadi selanjutnya, itu harus konsisten.
Biarkan kenyamanan platform menyesuaikan, tapi jaga hasilnya tetap sama. Font bisa memakai font sistem, spacing menghormati safe area, dan navigasi mengikuti konvensi iOS/Android, selama pengguna tetap mengenali layar, tindakan utama, dan hasilnya.
Pilih satu sumber kebenaran dan buat itu eksplisit. Tulis baseline singkat untuk tipografi, spacing, peran warna, komponen yang disetujui, dan pola state, lalu perlakukan perubahan sebagai aturan yang versi-nya dicatat, bukan penyesuaian satu kali.
Gunakan set token kecil yang tidak perlu diubah-ubah. Tentukan skala tipe konsisten, atur bagaimana teks membungkus atau dipotong, dan tetapkan ukuran minimum yang dapat dibaca di mobile agar judul panjang, nilai tabel, dan kesalahan formulir berperilaku dapat diprediksi di mana saja.
Adopsi satu skala spacing di seluruh platform dan hindari padding “sekali ini saja” yang keluar dari skala. Tentukan padding layar default, gap terkait vs gap seksi, dan aturan jelas untuk safe area mobile sehingga konten tidak berada di bawah UI sistem atau sulit dijangkau.
Standarkan template state daripada mendesainnya ad-hoc. Gunakan penempatan dan nada yang konsisten untuk indikator loading, pesan error pada field, panduan empty-state, dan penjelasan disabled sehingga tidak ada platform yang terasa rusak atau belum selesai.
Tulis aturan interaksi, bukan hanya visual. Putuskan bagaimana mencegah pengiriman ganda, kapan validasi berjalan, apa yang dilakukan tombol kembali, bagaimana refresh bekerja, dan bagaimana hasil pencarian dikosongkan sehingga ketukan, aksi keyboard, dan hasil navigasi cocok di web dan mobile.
Lakukan pass berdampingan singkat pada satu set alur inti dengan data uji yang sama. Periksa label dan hasil dulu, lalu state dan perilaku, dan terakhir detail visual; catat mismatch dengan aturan yang dilanggar dan dampak pengguna sehingga perbaikannya cepat.
Bagikan token dan pola UI yang dapat digunakan ulang, dan simpan logika penting di satu tempat. Di AppMaster, sejajarkan design token dan komponen reusable di builder web dan mobile, dan pusatkan logika penting di Business Process Editor sehingga perbaikan diterapkan secara konsisten.


