Menguasai Figma: Desain UI/UX dari Dasar hingga Handoff

Belum masuk. Progresmu tidak tersimpan.

Masuk
  • Bab 5 dari 11
  • 35 menit
  • 1 latihan kode
  • 4 soal kuis

Auto Layout dan Resizing

Di bab ini (7 bagian)
  1. Tujuan
  2. Masalah yang diselesaikan Auto Layout
  3. Menambahkan Auto Layout
  4. Resizing: Hug, Fixed, dan Fill
  5. Auto Layout adalah flexbox
  6. Kesalahan umum
  7. Rangkuman

Tujuan bab ini

  • Menjelaskan kenapa Auto Layout menjadi fitur terpenting untuk desain UI modern.
  • Mengatur arah, gap, padding, dan alignment pada Auto Layout, termasuk Auto Layout bersarang.
  • Memilih mode resizing Hug, Fixed, atau Fill container sesuai jenis elemen.
  • Menerjemahkan Auto Layout ke CSS flexbox.

Masalah yang diselesaikan Auto Layout

Bayangkan kamu membuat tombol bertuliskan "Simpan" secara manual: sebuah rectangle, lalu teks di atasnya, diposisikan di tengah dengan tangan. Kemudian tim memutuskan teksnya diganti menjadi "Simpan perubahan". Teks memanjang dan keluar dari rectangle. Kamu harus melebarkan rectangle, menengahkan teks lagi, lalu mengulanginya di setiap layar yang memakai tombol itu.

Auto Layout menghapus pekerjaan berulang itu. Dengan Auto Layout, frame tahu cara menyusun isinya sendiri. Isi bertambah, container ikut menyesuaikan, dan jarak tetap konsisten. Karena itulah Auto Layout disebut fitur paling penting untuk desain UI modern.

Menambahkan Auto Layout

Pilih sebuah frame atau beberapa objek, lalu tekan Shift + A. Figma membungkus atau mengubah frame itu menjadi frame Auto Layout. Setelah itu, empat pengaturan utama muncul di panel kanan.

PengaturanArti
ArahHorizontal, vertikal, wrap, atau grid
Gap dan paddingGap adalah jarak antaritem, padding adalah ruang dalam container
AlignmentPosisi item: atas, tengah, bawah, kiri, kanan
NestedAuto Layout di dalam Auto Layout untuk layout kompleks

Contoh dari deck: sebuah frame dengan arah horizontal, padding 16, dan gap 12. Setiap item berjarak 12 dari item berikutnya, dan semua item berjarak 16 dari tepi frame.

Auto Layout bersarang

Layout yang kompleks hampir selalu dibangun dari Auto Layout bersarang. Contohnya sebuah kartu produk:

  • Kartu: Auto Layout vertikal, padding 16, gap 12.
    • Gambar produk.
    • Baris judul dan harga: Auto Layout horizontal, gap 8.
    • Baris tombol: Auto Layout horizontal, gap 8.

Setiap tingkat hanya mengurus satu arah. Cara berpikir ini sama persis dengan cara developer menyusun halaman dengan flexbox.

Resizing: Hug, Fixed, dan Fill

Setiap elemen di dalam Auto Layout punya mode resizing yang menentukan bagaimana ukurannya bereaksi.

ModePerilakuCocok untuk
Hug contentsUkuran mengikuti isiTombol, chip, badge
FixedUkuran tetap, isi tidak memengaruhiIkon dan avatar, misalnya 48 × 48
Fill containerMengisi ruang yang tersisa di parentInput dan kartu

Kombinasi yang paling sering kamu temui adalah tombol dengan Hug dan kartu dengan Fill container. Tombol "Simpan" yang memakai Hug akan melebar sendiri saat teksnya menjadi "Simpan perubahan". Kartu yang memakai Fill container akan melebar mengikuti layar.

Auto Layout adalah flexbox

Bagi developer web, Auto Layout hampir satu lawan satu dengan CSS flexbox. Tabel berikut adalah kamus penerjemahnya.

FigmaCSS
Auto Layoutdisplay: flex
Arah horizontalflex-direction: row
Arah vertikalflex-direction: column
Wrapflex-wrap: wrap
Gap 12gap: 12px
Padding 16padding: 16px
Alignment tengahalign-items: center
Hug contentsLebar mengikuti isi, misalnya display: inline-flex
Fixed 48 × 48width: 48px; height: 48px; flex-shrink: 0
Fill containerflex: 1

Contoh kerja: baris profil

Kita terjemahkan sebuah baris profil: avatar 48 × 48 (Fixed), nama yang mengisi sisa ruang (Fill container), dan tombol "Ikuti" (Hug). Baris memakai Auto Layout horizontal, padding 16, gap 12, alignment tengah.

<div class="baris">
  <img class="avatar" src="avatar.png" alt="Foto Rina">
  <span class="nama">Rina</span>
  <button class="tombol">Ikuti</button>
</div>
.baris {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding: 16px;
}

.avatar {
  width: 48px;
  height: 48px;
  flex-shrink: 0; /* Fixed: tidak boleh mengecil */
}

.nama {
  flex: 1; /* Fill container */
}

.tombol {
  display: inline-flex; /* Hug contents */
  padding: 12px 24px;
}

Perhatikan flex-shrink: 0 pada avatar. Tanpa itu, saat ruang sempit browser bisa mengecilkan avatar, padahal di Figma avatar itu Fixed. Detail kecil seperti ini adalah contoh kenapa designer dan developer perlu memakai istilah yang sama.

Demo yang patut dicoba di Figma

Buat tombol dengan Auto Layout horizontal, lalu ketik teks yang lebih panjang di dalamnya. Frame tombol akan ikut melebar karena mode resizing-nya Hug. Lalu ubah mode menjadi Fixed dan ketik lagi. Sekarang teks bisa terpotong atau membungkus, karena ukuran frame tidak lagi mengikuti isi. Eksperimen kecil ini membuat perbedaan ketiga mode langsung terasa.

Wrap dan grid

Selain horizontal dan vertikal, arah Auto Layout bisa diatur menjadi wrap atau grid. Wrap membuat item turun ke baris berikutnya saat ruang habis, cocok untuk deretan chip kategori atau tag. Di CSS, perilaku ini setara dengan flex-wrap: wrap. Arah grid menyusun item dalam baris dan kolom sekaligus, mirip CSS Grid yang kamu lihat di bab layout grid.

Kesalahan umum

  • Menggeser item manual di dalam Auto Layout. Posisi diatur oleh arah, gap, dan alignment. Kalau kamu ingin jarak berbeda, ubah gap atau padding, bukan menyeret item.
  • Memberi jarak dengan rectangle kosong. Pakai gap. Rectangle pengganjal membuat layout sulit dirawat.
  • Memakai Fixed untuk tombol. Tombol yang Fixed tidak menyesuaikan saat teksnya berubah atau diterjemahkan ke bahasa lain.
  • Satu Auto Layout untuk semuanya. Layout kompleks lebih mudah dibangun dari beberapa Auto Layout bersarang yang masing-masing mengurus satu arah.

Rangkuman

  • Auto Layout (Shift + A) membuat frame menyusun isinya sendiri sehingga container menyesuaikan saat isi bertambah.
  • Pengaturan utamanya adalah arah, gap, padding, alignment, dan Auto Layout bisa bersarang.
  • Hug contents mengikuti isi, Fixed berukuran tetap, Fill container mengisi sisa ruang di parent.
  • Kombinasi paling umum adalah tombol Hug dan kartu Fill container.
  • Auto Layout setara dengan CSS flexbox: gap menjadi gap, padding menjadi padding, Fill menjadi flex: 1.

Selesaikan bab ini

  1. 1. Baca materi
  2. 2. Latihan kode (1)
  3. 3. Kuis (4 soal)

Latihan kode: Baris profil: Auto Layout menjadi flexbox

Terjemahkan spesifikasi Auto Layout berikut ke CSS.

  • .baris: Auto Layout horizontal, alignment tengah, gap 12, padding 16.
  • .avatar: Fixed 48 × 48, tidak boleh mengecil (flex-shrink: 0).
  • .nama: Fill container (flex: 1).
  • .tombol: Hug contents dengan padding 12 atas bawah dan 24 kiri kanan.

Cek pemahaman

  1. 1Shortcut untuk menambahkan Auto Layout adalah

  2. 2Mode resizing yang cocok untuk tombol agar ukurannya mengikuti teks adalah

  3. 3Fill container membuat elemen mengisi ruang yang tersisa di parent.

  4. 4Pengaturan Auto Layout apa yang ditulis CSS ini?

    .baris {
      display: flex;
      flex-direction: column;
      gap: 12px;
      padding: 16px;
    }