- Bab 6 dari 11
- 30 menit
- 1 latihan kode
- 4 soal kuis
Komponen, Instance, dan Variants
Di bab ini (7 bagian)
Tujuan bab ini
- Membuat main component dan memakai instance-nya dengan override.
- Memahami reset, detach, dan library untuk berbagi komponen.
- Menyusun variants dalam component set dan memakai component properties.
- Menerjemahkan komponen dan variants menjadi markup serta class CSS yang dipakai ulang.
Masalah yang diselesaikan komponen
Sebuah aplikasi bisa punya tombol yang sama di puluhan layar: Masuk, Daftar, Lanjutkan, Simpan. Kalau setiap tombol dibuat terpisah, lalu tim memutuskan sudut tombol diubah dari 8 menjadi 12, kamu harus mengedit puluhan tombol satu per satu. Hampir pasti ada yang terlewat, dan aplikasi terlihat tidak konsisten.
Komponen menyelesaikan masalah ini dengan prinsip sederhana: ubah main component sekali, semua instance di seluruh file ikut berubah.
Main component dan instance
- Main component adalah sumber desain. Misalnya komponen "Button".
- Instance adalah salinan yang terhubung ke main component. Tombol Masuk, Daftar, dan Lanjutkan adalah tiga instance dari Button dengan teks yang di-override.
Kalau kamu pernah memakai fungsi di pemrograman, analoginya pas. Main component seperti definisi fungsi, instance seperti pemanggilan fungsi dengan argumen berbeda. Kalau isi fungsi diperbaiki, semua pemanggilan ikut mendapat perbaikannya.
Empat operasi penting
| Operasi | Cara dan kegunaan |
|---|---|
| Buat | Tekan Ctrl + Alt + K pada frame terpilih |
| Override | Ubah teks, warna, atau ikon pada instance tanpa memutus hubungan |
| Reset dan Detach | Reset mengembalikan override, Detach melepas instance menjadi frame biasa |
| Library | Publikasikan komponen agar dipakai di file lain |
Hati-hati dengan Detach. Setelah di-detach, instance menjadi frame biasa dan tidak lagi menerima perubahan dari main component. Pakai Detach hanya kalau kamu memang ingin elemen itu berbeda selamanya. Untuk perbedaan kecil seperti teks, cukup override.
Contoh kerja
- Buat frame tombol dengan Auto Layout, beri teks "Tombol".
- Tekan Ctrl + Alt + K. Frame berubah menjadi main component bernama Button.
- Seret tiga instance dari panel Assets, lalu override teksnya menjadi Masuk, Daftar, dan Lanjutkan.
- Ubah warna main component dari ungu ke biru. Ketiga instance ikut berubah, tetapi teks hasil override tetap.
Langkah keempat menunjukkan hal penting: override disimpan di instance, sedangkan properti yang tidak di-override terus mengikuti main component.
Variants dan component properties
Satu tombol biasanya punya beberapa versi. Ada tipe Primary dan Secondary, dan ada state Default, Hover, dan Disabled. Daripada membuat enam komponen terpisah, kamu mengelompokkannya dalam satu component set dengan dua properti: Type dan State. Kombinasinya Type × State menghasilkan 2 × 3 = 6 variant.
| Default | Hover | Disabled | |
|---|---|---|---|
| Primary | Tombol | Tombol | Tombol |
| Secondary | Tombol | Tombol | Tombol |
Jenis component properties
| Properti | Kegunaan |
|---|---|
| Variant | Memilih versi, misalnya Type = Primary, State = Hover |
| Boolean | Menampilkan atau menyembunyikan layer, misalnya ikon |
| Instance swap | Mengganti komponen di dalamnya, misalnya ikon lain |
| Text | Mengedit label langsung dari panel kanan |
Dengan component properties, orang yang memakai komponenmu tidak perlu membongkar layer. Mereka cukup memilih Type, menyalakan atau mematikan ikon, dan mengetik label di panel kanan.
Dari komponen ke kode
Developer membangun hal yang sama dengan cara yang mirip. Main component menjadi satu class dasar, variant menjadi class tambahan atau atribut, dan instance adalah setiap elemen yang memakai class itu.
Teks di dalam setiap button adalah override. Mengubah border-radius di .tombol sekali akan mengubah semua tombol, persis seperti mengubah main component.
Di framework seperti React, kemiripannya lebih terasa lagi. Komponen React menerima props seperti type dan label, sama seperti component properties di Figma. Itu sebabnya file Figma yang komponennya rapi sangat disukai developer.
Kapan sesuatu layak dijadikan komponen
Tidak semua elemen perlu menjadi komponen. Pertanyaan sederhana yang bisa kamu pakai: apakah elemen ini muncul lebih dari sekali, dan apakah semua kemunculannya harus berubah bersama? Tombol, input, kartu produk, item navigasi, dan avatar hampir selalu lolos pertanyaan ini. Ilustrasi besar di layar sambutan yang hanya muncul sekali biasanya tidak perlu dijadikan komponen.
Mulailah dari elemen terkecil yang paling sering dipakai, seperti tombol dan input. Setelah itu, komponen yang lebih besar seperti kartu bisa dibangun dari instance komponen kecil. Kartu produk, misalnya, berisi instance Button di dalamnya. Saat main component Button diperbaiki, tombol di dalam semua kartu ikut terbaru.
Kesalahan umum
- Menyalin-tempel tombol tanpa membuat komponen. Hasilnya tampak sama hari ini, tetapi akan menyimpang begitu ada perubahan.
- Detach untuk mengganti teks. Cukup override. Detach memutus hubungan secara permanen.
- Membuat komponen terpisah untuk setiap state. Gabungkan dalam component set dengan variants agar mudah dipilih.
- Mengedit instance padahal yang ingin diubah adalah semua tombol. Perubahan yang berlaku umum harus dilakukan di main component.
Rangkuman
- Main component adalah sumber desain, instance adalah salinan yang terhubung dan ikut berubah saat main component diubah.
- Ctrl + Alt + K membuat komponen, override mengubah instance tanpa memutus hubungan, Reset mengembalikan override, Detach melepas hubungan.
- Library membuat komponen bisa dipakai di file lain.
- Variants mengelompokkan versi komponen dalam component set, misalnya Type × State.
- Component properties terdiri dari Variant, Boolean, Instance swap, dan Text.
- Di kode, main component menjadi class dasar dan variant menjadi class tambahan atau state seperti
:disabled.
Slide 22 sampai 23 dari deck Menguasai Figma: Desain UI/UX dari Dasar hingga Handoff. Penjelasan lengkapnya ada di mode Baca.

Selesaikan bab ini
- 1. Baca materi
- 2. Latihan kode (1)
- 3. Kuis (4 soal)
Latihan kode: Komponen tombol dengan variants
Tiga tombol di HTML adalah instance dari satu komponen. Tulis CSS-nya.
- Main component
.tombol: padding 12px 24px, border-radius 12px, latar#7C5CFF, teks#FFFFFF, border 2px solid#7C5CFF. - Variant Type = Secondary (
.tombol--secondary): latar#FFFFFF, teks#7C5CFF. - Variant State = Disabled (
.tombol:disabled): opacity 0.5.
Jangan mengubah HTML. Teks tiap tombol adalah override.
Cek pemahaman
1Apa yang terjadi pada instance saat warna main component diubah?
2Kamu hanya ingin mengganti teks pada satu instance. Apa yang sebaiknya dilakukan?
3Component property bertipe Boolean dipakai untuk menampilkan atau menyembunyikan layer, misalnya ikon.
4Component set dengan properti Type (Primary, Secondary) dan State (Default, Hover, Disabled) punya berapa variant?