Panduan
30 Agustus 2026

Kenapa Auto Layout rusak saat halaman web diimpor ke Figma

Impor selesai, semuanya di tempatnya. Lalu Anda tarik tepi frame-nya, dan semuanya berantakan.

Anda mengimpor sebuah halaman web ke Figma, panel layer terisi, dan ada yang terasa janggal. Sederet kartu yang tadinya rata di browser sekarang punya satu kartu yang turun empat piksel. Navigasi yang tadinya di tengah jadi hampir di tengah. Tidak ada yang rusak sampai bisa ditunjuk, tapi file itu sudah tidak sama dengan tangkapan layar yang Anda taruh di sebelahnya.

Hampir selalu penyebabnya Auto Layout, dipasang di tempat yang seharusnya tidak. Ini layak dipahami, karena jalan keluarnya bukan mematikan Auto Layout, melainkan tahu kapan kedua sistem tata letak itu benar-benar sepakat dan kapan sebuah alat cuma menebak.

Dua mesin tata letak yang memang tidak dirancang untuk cocok

Browser menata halaman dengan CSS. Flexbox, grid, float, aliran inline, margin yang saling melebur, line-height yang mendorong teks keluar dari kotaknya sendiri, pembulatan sub-piksel yang berbeda di tiap platform. Puluhan tahun aturan, sebagian besar berupa kasus pinggiran yang cuma penting sekali seumur hidup.

Figma menata frame dengan Auto Layout. Sistemnya jauh lebih kecil, dan itu memang disengaja. Ada arah, jarak antaranak, empat nilai padding, perataan pada dua sumbu, lalu grow dan stretch per anak. Kurang lebih hanya itu.

Auto Layout bukan implementasi ulang flexbox. Kemiripannya seperti sepeda dengan sepeda motor. Jadi ketika sebuah konverter membaca display: flex lalu menetapkan layoutMode: "HORIZONTAL", dia sedang mengklaim sesuatu, yaitu bahwa kedua sistem itu akan menaruh setiap anak di titik yang sama. Kadang klaim itu benar. Lebih sering klaim itu hampir benar, dan justru itulah yang repot.

Di mana keduanya diam-diam berbeda

Beberapa kasus nyata. Semuanya terlihat seperti flexbox, dan tidak satu pun bisa ditiru Auto Layout.

Yang terakhir itu sebabnya masalah sering baru muncul setelah Anda memasang font yang tadinya hilang, atau baru muncul di komputer orang lain.

Kenapa konverter tetap memasangnya

Karena file yang penuh frame Auto Layout terlihat seperti produk yang lebih baik dibanding file yang isinya kotak berposisi absolut. Enak didemokan. Bagus jadi poin di daftar fitur. Dan pada kasus umum berupa baris sederhana atau grid kartu dengan jarak seragam, hasilnya memang betul lebih baik, karena setelah itu frame bisa Anda ubah ukurannya dan perilakunya masuk akal.

Masalahnya, alat tidak bisa membedakan kasus umum dari kasus yang meleset tipis tanpa memeriksa, dan memeriksa itu lebih repot daripada tidak memeriksa.

Apa yang bisa dilakukan

Kalau sudah terlanjur diimpor

Pilih frame yang terlihat salah, lalu setel mode tata letaknya jadi none. Di Figma pengaturannya ada di bagian layout pada panel kanan. Anak-anaknya tetap di posisi sekarang, jadi kalau pergeseran sudah terjadi, langkah ini membekukannya dan bukan mengembalikannya. Karena itu biasanya lebih masuk akal mengimpor ulang daripada memperbaiki satu per satu.

Sebelum itu, periksa satu hal. Apakah font yang dipakai halaman tadi memang terpasang di komputer Anda? Font pengganti akan mengukur ulang setiap layer teks, dan sebanyak apa pun Anda mengutak-atik tata letak, file yang lebar teksnya salah tidak akan jadi benar. Figma memberi tahu font apa saja yang hilang begitu file dibuka.

Kalau sedang memilih alat

Tanyakan apa yang dia lakukan ketika kedua sistem itu tidak sepakat. Jawabannya ada tiga kemungkinan dan cuma satu yang bagus.

  1. Memasang Auto Layout di setiap tempat yang terlihat flexbox. Cepat, enak didemokan, dan menyerahkan file yang diam-diam sudah bergeser kepada Anda.
  2. Tidak pernah memasangnya. Selalu benar, tidak pernah berguna. Anda dapat tumpukan layer berposisi absolut yang persis tapi menyiksa untuk disunting.
  3. Memasangnya hanya di tempat yang hasilnya sama dengan aslinya. Benar sekaligus berguna, tapi menuntut alat itu sungguh-sungguh memperkirakan apa yang akan dilakukan Figma lalu membandingkannya.

Cara Snapture memutuskan

Snapture memilih yang ketiga, dan mekanismenya cukup sederhana untuk dijelaskan dalam satu paragraf.

Saat menangkap halaman, dia sudah tahu posisi setiap elemen, karena yang dibaca adalah halaman yang sudah dirender, lengkap dengan persegi panjang hasil hitungan browser untuk tiap anak. Sebelum memasang tata letak, dia mensimulasikan apa yang akan dilakukan mesin Figma pada frame yang sama, mulai dari padding, jarak, perataan, sampai pembagian grow, lalu menghasilkan perkiraan persegi panjang untuk tiap anak. Setelah itu kedua kumpulan itu dibandingkan. Kalau setiap anak mendarat dalam jarak setengah piksel dari tempat browser menaruhnya, tata letaknya dipasang. Kalau ada satu saja yang meleset, seluruh frame itu memakai koordinat absolut yang persis.

Ada pemeriksaan kedua di sisi seberang. Setelah plugin Figma memasang tata letak, anak-anaknya diukur lagi, kali ini terhadap mesin yang sebenarnya dan bukan terhadap perkiraan, dan kalau ada yang bergeser melewati setengah piksel tadi, frame itu dikembalikan ke koordinat hasil tangkapan. Pemeriksaan itu ada karena layer teks bisa terukur ulang saat impor dengan cara yang tidak bisa diramalkan simulasi mana pun.

Gerbang ini lebih sering menolak daripada menerima, dan memang begitu maksudnya. Alat yang memasang Auto Layout di setiap kontainer flex akan terlihat lebih unggul di daftar fitur. Dia juga menyerahkan file yang salah satu item navigasinya turun empat piksel, dan Anda habis dua puluh menit mencari tahu kenapa.

Seperti apa hasilnya di lapangan

Menjalankan konverter pada halaman sungguhan memberi gambaran seberapa pemilih dia. Angka-angka ini berasal dari pengukuran yang sama yang diterbitkan di halaman bukti.

HalamanTotal nodeFrame Auto Layout
linear.app2.082261
stripe.com1.59299
tailwindcss.com1.54089
github.com78542
developer.mozilla.org2535

Baris MDN yang paling menarik. Lima frame Auto Layout dari 253 node terlihat seperti alatnya gagal. Padahal justru di situ dia bekerja. Tata letak artikel MDN sebagian besar berupa aliran dokumen dan float, yang sama sekali tidak dimodelkan Auto Layout, jadi gerbangnya menolak nyaris semuanya dan mempertahankan posisi persis. Hasil impornya akurat sampai piksel dan sebagian besar tanpa Auto Layout, dan untuk halaman itu pertukaran tersebut yang benar.

Linear kebalikannya. Halamannya hampir seluruhnya tersusun dari baris flex dengan jarak seragam. 261 frame miliknya betul-betul lolos perbandingan, dan frame itu berperilaku benar ketika Anda ubah ukurannya di Figma.

Ringkasnya

Auto Layout sesudah impor baru layak dipercaya kalau ada yang memverifikasinya. Flexbox dan Auto Layout cukup mirip untuk mengelabui konverter dan cukup berbeda untuk menggeser file Anda, dan selisihnya biasanya muncul sebagai beberapa piksel, bukan sebagai kerusakan yang kentara. Kesalahan jenis itulah yang paling mahal waktunya untuk ditemukan.

Kalau sebuah alat tidak bisa menjelaskan apa yang dia lakukan saat keduanya berbeda, anggap saja dia tidak memeriksa.

Coba di halamanmu sendiri Lima tangkapan gratis, fitur lengkap. Tanpa kartu, tanpa akun.

English · 한국어 · 日本語 · 简体中文 · 繁體中文 · Español · Português · Français · Deutsch · Русский · Italiano · Bahasa Indonesia

Baca juga

Memindahkan ikon ke Figma: sprite SVG, font ikon, dan mask CSS
Beranda Panduan Hasil nyatanya Bantuan