393 lines
31 KiB
Markdown
393 lines
31 KiB
Markdown
# Design System Inspired by Airbnb
|
||||
|
|
|
|||
|
|
> Category: E-Commerce & Ritel
|
|||
|
|
> Marketplace perjalanan. Aksen koral hangat, berbasis fotografi, antarmuka membulat.
|
|||
|
|
|
|||
|
|
## 1. Tema Visual & Atmosfer
|
|||
|
|
|
|||
|
|
Desain Airbnb tahun 2026 terasa seperti majalah perjalanan yang kebetulan menjadi aplikasi — kanvas putih bersih memberi jalan pada fotografi penuh layar, dan antarmuka itu sendiri menghilang agar listing dapat bernapas. Koral-merah muda Rausch yang khas (`#ff385c`) digunakan dengan hemat namun tak salah kenal: CTA pencarian, indikator tab aktif, tombol aksi utama, dan sesekali harga atau ikon hati wishlist. Semua yang lain adalah skala abu-abu yang disiplin, dengan `#222222` membawa hampir setiap baris teks.
|
|||
|
|
|
|||
|
|
Yang membuat sistem ini tak terbantahkan sebagai Airbnb adalah betapa besar *kepercayaan* yang ditempatkan pada konten. Foto properti ditampilkan dalam skala hero, 4:3 dengan perlakuan radius tepi-ke-tepi. Pergantian kategori terjadi melalui pemilih tri-tab (Rumah / Pengalaman / Layanan) yang menggunakan ikon bergambar render 3D (rumah dengan atap miring, balon udara panas, bel layanan) — fisik, taktil, hampir seperti mainan — dipasangkan dengan label `Airbnb Cereal VF` yang tajam. Ini adalah produk konsumen langka di mana render 3D dan antarmuka tipografi murni hadir berdampingan tanpa ketegangan.
|
|||
|
|
|
|||
|
|
Permukaan terbaru adalah lini produk **Pengalaman** — krom yang sama, namun kepadatan kartu yang lebih kaya, lebih banyak fotografi, dan panel pemesanan yang ditambatkan di tengah dengan harga rel-kanan yang menempel. Halaman detail listing (baik kamar maupun pengalaman) mengikuti template yang ketat: kisi gambar hero penuh layar → kartu pemesanan membulat yang tumpang tindih (menempel saat digulir) → fasilitas → ulasan (penghargaan Favorit Tamu menggunakan peringkat `4.81` besar di tengah dengan lockup lingkaran karangan bunga) → peta → profil tuan rumah → pengungkapan. Ritme ini konsisten baik saat memesan kamar maupun tur yacht.
|
|||
|
|
|
|||
|
|
**Karakteristik Utama:**
|
|||
|
|
- Koral-merah muda Rausch (`#ff385c`) sebagai warna merek aksen tunggal, hanya digunakan untuk CTA utama dan tombol pencarian
|
|||
|
|
- Fotografi penuh layar dalam format 4:3 / 16:9 dengan pembulatan sudut halus (14–20 px) sebagai kosakata visual utama
|
|||
|
|
- Ikon kategori render 3D dipasangkan dengan tab tipografi — satu-satunya tempat sistem ini memperbolehkan ilustrasi
|
|||
|
|
- Tombol ikon bulat `50%` (panah kembali, bagikan, favorit, panah karusel) tersebar di seluruh antarmuka
|
|||
|
|
- `Airbnb Cereal VF` membawa setiap label, dari catatan hukum 8 px hingga heading seksi 28 px — sistem satu keluarga
|
|||
|
|
- Pengkodean warna tingkat produk: Airbnb Plus (magenta `#92174d`), Airbnb Luxe (ungu gelap `#460479`), Airbnb (koral Rausch)
|
|||
|
|
- Lockup penghargaan Favorit Tamu — angka peringkat raksasa terpusat di antara dua karangan bunga laurel, salah satu momen paling dikenali dalam sistem
|
|||
|
|
- Panel pemesanan menempel dengan tumpukan harga → tanggal → tamu, disematkan di rel kanan pada desktop, berubah menjadi bilah "Pesan" yang ditambatkan di bawah pada mobile
|
|||
|
|
- Navigasi bawah mobile yang menempel (Jelajahi / Daftar Keinginan / Masuk) dengan tint Rausch status aktif
|
|||
|
|
|
|||
|
|
## 2. Palet Warna & Peran
|
|||
|
|
|
|||
|
|
### Primer
|
|||
|
|
- **Rausch** (`#ff385c`): Koral-merah muda khas merek. Variabel CSS `--palette-bg-primary-core`. Digunakan untuk: tombol utama "Pesan", tombol kirim pencarian, garis bawah tab aktif, isian hati wishlist, penekanan harga. Warna dengan visibilitas tertinggi tunggal di setiap halaman.
|
|||
|
|
|
|||
|
|
### Sekunder & Aksen
|
|||
|
|
- **Deep Rausch** (`#e00b41`): Varian yang lebih jenuh. Variabel CSS `--palette-bg-tertiary-core`. Digunakan untuk status tombol ditekan/aktif dan titik akhir gradien.
|
|||
|
|
- **Plus Magenta** (`#92174d`): Variabel CSS `--palette-bg-primary-plus`. Warna merek untuk tingkat produk Airbnb Plus — penawaran listing yang dikurasi kelas atas.
|
|||
|
|
- **Luxe Purple** (`#460479`): Variabel CSS `--palette-bg-primary-luxe`. Warna merek untuk tingkat produk Airbnb Luxe — sewa villa/perkebunan.
|
|||
|
|
- **Info Blue** (`#428bff`): Variabel CSS `--palette-text-legal`. Digunakan untuk tautan hukum/informatif (syarat, privasi, pengungkapan) — satu-satunya warna tautan non-monokrom dalam sistem.
|
|||
|
|
|
|||
|
|
### Permukaan & Latar Belakang
|
|||
|
|
- **Canvas White** (`#ffffff`): Latar belakang halaman default. Setiap kartu, setiap kontainer, setiap halaman detail dimulai di sini.
|
|||
|
|
- **Soft Cloud** (`#f7f7f7`): Tint sub-permukaan halus yang digunakan pada latar belakang footer, pembungkus tampilan peta, dan bagian "segalanya" yang ingin mundur dari putih primer.
|
|||
|
|
- **Hairline Gray** (`#dddddd`): Warna border 1 px yang ada di mana-mana — memisahkan kartu, baris fasilitas, panel ulasan, kolom footer. Kuda pekerja sistem tata letak.
|
|||
|
|
|
|||
|
|
### Netral & Teks
|
|||
|
|
- **Ink Black** (`#222222`): Variabel CSS `--palette-text-primary`. Hampir-hitam sistem. Setiap heading, setiap paragraf teks, setiap label navigasi, setiap harga. Digunakan untuk ~90% dari semua teks di halaman.
|
|||
|
|
- **Charcoal** (`#3f3f3f`): Variabel CSS `--palette-text-focused`. Digunakan dalam teks input yang difokuskan dan salinan penekanan satu langkah di bawah.
|
|||
|
|
- **Ash Gray** (`#6a6a6a`): Variabel CSS `--palette-bg-tertiary-hover`. Label sekunder, salinan gaya subtitle "Sewa cottage" di bawah nama kota, tautan footer yang diredam.
|
|||
|
|
- **Mute Gray** (`#929292`): Variabel CSS `--palette-text-link-disabled`. Tombol dinonaktifkan dan metadata prioritas rendah.
|
|||
|
|
- **Stone Gray** (`#c1c1c1`): Pembagi tersier, goresan ikon, avatar placeholder.
|
|||
|
|
|
|||
|
|
### Semantik & Aksen
|
|||
|
|
- **Error Red** (`#c13515`): Variabel CSS `--palette-text-primary-error`. Kesalahan validasi formulir, peringatan aksi destruktif.
|
|||
|
|
- **Deep Error** (`#b32505`): Variabel CSS `--palette-text-secondary-error-hover`. Varian ditekan/aktif dari status kesalahan.
|
|||
|
|
- **Translucent Black** (`rgba(0, 0, 0, 0.24)`): Variabel CSS `--palette-text-material-disabled`. Label bergaya material yang dinonaktifkan.
|
|||
|
|
|
|||
|
|
### Sistem Gradien
|
|||
|
|
Gradien merek Airbnb muncul dengan hemat, biasanya hanya pada wordmark dan momen tombol pencarian bermerek:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
linear-gradient(90deg, #ff385c 0%, #e00b41 50%, #92174d 100%)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Sapuan koral → magenta ini adalah "momen bermerek" — tidak pernah digunakan sebagai permukaan penuh, hanya sebagai isian pil sempit atau perlakuan logo.
|
|||
|
|
|
|||
|
|
## 3. Aturan Tipografi
|
|||
|
|
|
|||
|
|
### Keluarga Font
|
|||
|
|
- **Airbnb Cereal VF** (primer dan satu-satunya): Sans-serif berbobot variabel yang membawa seluruh sistem. Fallback (secara berurutan): `Circular, -apple-system, system-ui, Roboto, Helvetica Neue, sans-serif`.
|
|||
|
|
|
|||
|
|
Bobot yang diamati dalam token yang diekstrak: 500, 600, 700. Tidak ada 400-reguler — bobot "tubuh" sistem adalah 500, yang memberikan setiap blok teks kepadatan ekstra halus yang terbaca sebagai percaya diri dan disengaja.
|
|||
|
|
|
|||
|
|
Fitur OpenType: `salt` (alternatif stilistik) digunakan pada label 11 px dan 14 px berbobot 600 yang kompak — kemungkinan untuk angka yang lebih ketat dan pembentukan karakter khusus. Tidak ada fitur ligatur atau angka pecahan yang diamati.
|
|||
|
|
|
|||
|
|
### Hierarki
|
|||
|
|
|
|||
|
|
| Peran | Ukuran | Bobot | Tinggi Baris | Spasi Huruf | Catatan |
|
|||
|
|
|------|------|--------|-------------|----------------|-------|
|
|||
|
|
| Heading Seksi | 28 px / 1,75 rem | 700 | 1,43 | 0 | "Inspirasi untuk perjalanan masa depan" — heading tingkat halaman |
|
|||
|
|
| Heading Sub-seksi | 22 px / 1,38 rem | 500 | 1,18 | -0,44 px | "Yang ditawarkan tempat ini", "Temui tuan rumah" — pembagi konten |
|
|||
|
|
| Judul Kartu | 21 px / 1,31 rem | 700 | 1,43 | 0 | Heading panel ulasan, judul utama kartu |
|
|||
|
|
| Judul Listing | 20 px / 1,25 rem | 600 | 1,20 | -0,18 px | "Tur Yacht Kelompok Kecil, Anggur & Buah Tak Terbatas" — headline listing di halaman detail |
|
|||
|
|
| Subjudul Tebal | 16 px / 1,00 rem | 600 | 1,25 | 0 | Nama tuan rumah, nama kota |
|
|||
|
|
| Teks Medium | 16 px / 1,00 rem | 500 | 1,25 | 0 | Teks tubuh utama di halaman detail |
|
|||
|
|
| Tombol Besar | 16 px / 1,00 rem | 500 | 1,25 | 0 | "Pesan", "Jadi tuan rumah" |
|
|||
|
|
| Tombol Default | 14 px / 0,88 rem | 500 | 1,29 | 0 | Label tombol standar |
|
|||
|
|
| Tautan | 14 px / 0,88 rem | 500 | 1,43 | 0 | Tautan nav, tautan footer |
|
|||
|
|
| Keterangan Medium | 14 px / 0,88 rem | 500 | 1,29 | 0 | Metadata, baris subtitle ("Sewa cottage", "Sewa villa") |
|
|||
|
|
| Keterangan Tebal | 14 px / 0,88 rem | 600 | 1,43 | 0 | Fitur `salt` diaktifkan — statistik numerik, penekanan teks kecil |
|
|||
|
|
| Keterangan Kecil | 13 px / 0,81 rem | 400 | 1,23 | 0 | Tanggal ulasan, micro-metadata |
|
|||
|
|
| Mikro Default | 12 px / 0,75 rem | 400 | 1,33 | 0 | Disclaimer footer, micro-copy hukum |
|
|||
|
|
| Mikro Tebal | 12 px / 0,75 rem | 700 | 1,33 | 0 | Label pil "BARU" |
|
|||
|
|
| Badge Huruf Kapital | 11 px / 0,69 rem | 600 | 1,18 | 0 | Fitur `salt` — badge kategori/status kompak |
|
|||
|
|
| Superskrip | 8 px / 0,50 rem | 700 | 1,25 | 0,32 px | Huruf kapital — catatan kaki harga, ekor desimal |
|
|||
|
|
|
|||
|
|
### Prinsip
|
|||
|
|
- **Satu keluarga, banyak bobot.** Airbnb Cereal VF menangani segalanya dari teks hukum 8 px hingga heading halaman 28 px — identitas visual berasal dari keluarga itu sendiri, bukan dari pencampuran tipografi.
|
|||
|
|
- **500 adalah 400 yang baru.** Bobot "reguler" sistem adalah 500, memberikan setiap paragraf tekstur yang sedikit lebih percaya diri dari default web.
|
|||
|
|
- **Tracking negatif hanya pada tipe display.** Heading 20 px ke atas mengompresi tracking sebesar -0,18 hingga -0,44 px untuk terasa terpahat; ukuran tubuh tetap pada 0 tracking untuk keterbacaan.
|
|||
|
|
- **Tinggi baris ketat untuk headline, longgar untuk tubuh.** Tipe display berjalan pada 1,18–1,25 (ketat); tubuh dan keterangan membuka diri ke 1,43 untuk kenyamanan bentuk panjang.
|
|||
|
|
- **Tidak ada huruf kapital semua kecuali pada 8 px.** Satu-satunya transformasi huruf kapital dalam sistem adalah superskrip 8 px — di tempat lain, huruf kalimat dengan pergeseran bobot halus melakukan pekerjaan.
|
|||
|
|
|
|||
|
|
### Catatan tentang Pengganti Font
|
|||
|
|
Airbnb Cereal VF adalah milik perusahaan. Pengganti open-source terdekat adalah **Circular Std** (masih komersial) atau **Inter** (gratis, Google Fonts) dengan spasi huruf dikurangi sebesar -0,01 em pada ukuran display. Untuk kesetiaan merek yang ketat, rantai fallback yang didokumentasikan (`Circular, -apple-system, system-ui`) merender dengan layak pada macOS/iOS di mana `system-ui` diselesaikan ke San Francisco, yang memiliki proporsi serupa.
|
|||
|
|
|
|||
|
|
## 4. Penataan Gaya Komponen
|
|||
|
|
|
|||
|
|
### Tombol
|
|||
|
|
|
|||
|
|
**CTA Utama** ("Pesan", "Cari", "Tambah tanggal")
|
|||
|
|
- Latar belakang: Rausch `#ff385c`
|
|||
|
|
- Teks: Canvas White `#ffffff`, Airbnb Cereal 500, 16 px
|
|||
|
|
- Padding: ~14 px vertikal, 24 px horizontal
|
|||
|
|
- Radius: 8 px (persegi panjang) atau 50% (varian ikon bulat)
|
|||
|
|
- Border: tidak ada
|
|||
|
|
- Aktif/ditekan: `transform: scale(0.92)` ditambah cincin fokus 2 px `#222222` pada `0 0 0 2px`
|
|||
|
|
|
|||
|
|
**Tombol Sekunder** ("Jadi tuan rumah", aksi tersier dengan garis tepi)
|
|||
|
|
- Latar belakang: `#ffffff`
|
|||
|
|
- Teks: Ink Black `#222222`, Airbnb Cereal 500, 14–16 px
|
|||
|
|
- Padding: 10 px 16 px
|
|||
|
|
- Radius: 20 px (pil) atau 8 px (persegi panjang)
|
|||
|
|
- Border: 1 px solid Hairline Gray `#dddddd`
|
|||
|
|
|
|||
|
|
**Tombol Hanya Ikon Bulat** (panah kembali, bagikan, favorit, kontrol karusel)
|
|||
|
|
- Latar belakang: `#f2f2f2` (putih sedikit mati) atau putih dengan border hitam transparan 1 px
|
|||
|
|
- Ikon: goresan garis `#222222`, 16–20 px
|
|||
|
|
- Ukuran: diameter 32–44 px
|
|||
|
|
- Radius: 50%
|
|||
|
|
- Aktif/ditekan: `transform: scale(0.92)`; cincin putih halus 4 px `0 0 0 4px rgb(255,255,255)` untuk memisahkan dari latar belakang fotografi berwarna
|
|||
|
|
|
|||
|
|
**Tombol Dinonaktifkan**
|
|||
|
|
- Latar belakang: `#f2f2f2`
|
|||
|
|
- Teks: Stone Gray `#c1c1c1`
|
|||
|
|
- Opasitas: 0,5
|
|||
|
|
|
|||
|
|
**Tombol Tab Pil** (pemilih kategori "Rumah / Pengalaman / Layanan")
|
|||
|
|
- Latar belakang: transparan
|
|||
|
|
- Teks: Ink Black `#222222`, Airbnb Cereal 500, 16 px
|
|||
|
|
- Padding: 8 px 14 px
|
|||
|
|
- Status aktif: garis bawah Ink Black 2 px di bawah label
|
|||
|
|
- Dipasangkan dengan ikon bergambar render 3D 36–48 px di atas label
|
|||
|
|
|
|||
|
|
### Kartu & Kontainer
|
|||
|
|
|
|||
|
|
**Kartu Listing** (kisi beranda, hasil pencarian)
|
|||
|
|
- Latar belakang: `#ffffff`
|
|||
|
|
- Radius: 14 px pada gambar, teks duduk langsung di bawah pada latar belakang transparan
|
|||
|
|
- Gambar: rasio 4:3, penuh layar, dibulatkan dengan radius 14 px yang sama
|
|||
|
|
- Padding: tidak ada pada kontainer luar; 12 px jarak antara gambar dan baris metadata
|
|||
|
|
- Bayangan: tidak ada — pemisahan berasal dari ruang putih dan radius intrinsik foto
|
|||
|
|
- Pola metadata: Kota/wilayah di baris 1 (16 px 600), jarak/durasi di baris 2 (14 px 500 Ash Gray), rentang tanggal di baris 3, baris harga dengan "per malam" di bagian bawah
|
|||
|
|
|
|||
|
|
**Panel Pemesanan Halaman Detail** (rel kanan yang menempel di halaman kamar/pengalaman)
|
|||
|
|
- Latar belakang: `#ffffff`
|
|||
|
|
- Radius: 14–20 px
|
|||
|
|
- Border: 1 px solid Hairline Gray `#dddddd`
|
|||
|
|
- Bayangan: `rgba(0, 0, 0, 0.02) 0 0 0 1px, rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0` — elevasi halus tiga lapis yang ditumpuk
|
|||
|
|
- Padding: 24 px
|
|||
|
|
- Lebar: ~370 px, disematkan 120–140 px di bawah bagian atas viewport
|
|||
|
|
- Konten: headline harga → pemilih tanggal → dropdown tamu → CTA utama → catatan kaki "Anda belum akan ditagih"
|
|||
|
|
|
|||
|
|
**Kartu Kisi Fasilitas** (di halaman detail listing)
|
|||
|
|
- Latar belakang: `#ffffff`
|
|||
|
|
- Border: 1 px solid Hairline Gray `#dddddd` pada tingkat baris (bukan per item)
|
|||
|
|
- Padding: 16 px vertikal per baris fasilitas
|
|||
|
|
- Pola ikon + label: ikon garis 24 px di sebelah kiri, label berbobot 500 16 px di sebelah kanan
|
|||
|
|
|
|||
|
|
**Kartu Ulasan** (ulasan individual di halaman detail)
|
|||
|
|
- Latar belakang: `#ffffff`, tidak ada border
|
|||
|
|
- Padding: 0 (mengandalkan celah kisi)
|
|||
|
|
- Konten: avatar bulat 40 px + nama berbobot 600 16 px + tanggal Ash Gray 400 14 px dalam satu baris, kemudian paragraf tubuh berbobot 500 14 px di bawah
|
|||
|
|
|
|||
|
|
### Input & Formulir
|
|||
|
|
|
|||
|
|
**Bilah Pencarian** (beranda utama)
|
|||
|
|
- Latar belakang: `#ffffff`
|
|||
|
|
- Border: 1 px solid Hairline Gray `#dddddd` membungkus ketiga segmen (Di mana / Kapan / Siapa)
|
|||
|
|
- Radius: 32 px (pil penuh)
|
|||
|
|
- Bayangan: `rgba(0, 0, 0, 0.04) 0 2px 6px 0` — rasa mengambang yang halus
|
|||
|
|
- Struktur: tiga segmen dibagi oleh pembagi vertikal tipis, setiap segmen memiliki label berbobot 500 12 px di atas placeholder berbobot 500 14 px
|
|||
|
|
- Kirim: tombol ikon bulat Rausch di tepi kanan, diameter 48 px
|
|||
|
|
|
|||
|
|
**Input Teks** (formulir generik)
|
|||
|
|
- Latar belakang: `#ffffff`
|
|||
|
|
- Border: 1 px solid Hairline Gray `#dddddd`
|
|||
|
|
- Radius: 8 px
|
|||
|
|
- Padding: 14 px 16 px
|
|||
|
|
- Fokus: border beralih ke Ink Black, menambahkan cincin luar hitam `0 0 0 2px`
|
|||
|
|
- Kesalahan: border beralih ke `#c13515` (Error Red), teks pembantu menggunakan warna yang sama
|
|||
|
|
|
|||
|
|
**Pemilih Tanggal**
|
|||
|
|
- Kisi kalender: tata letak 7 kolom, sel hari bulat `50%` lebar 40–44 px
|
|||
|
|
- Rentang yang dipilih: latar belakang Ink Black `#222222` dengan angka putih
|
|||
|
|
- Jangkar awal/akhir: lingkaran terisi yang lebih besar; tanggal tengah menggunakan tint Soft Cloud `#f7f7f7`
|
|||
|
|
|
|||
|
|
### Navigasi
|
|||
|
|
|
|||
|
|
**Nav Atas (Desktop)**
|
|||
|
|
- Tinggi: ~80 px
|
|||
|
|
- Latar belakang: `#ffffff`
|
|||
|
|
- Kiri: lockup wordmark+logo Airbnb dalam Rausch (102×32 px)
|
|||
|
|
- Tengah: pemilih kategori tri-tab (Rumah / Pengalaman / Layanan) dengan ikon 3D 36–48 px ditumpuk di atas label berbobot 500 16 px; tab aktif memiliki garis bawah Ink Black 2 px
|
|||
|
|
- Kanan: tautan teks "Jadi tuan rumah", kemudian globe bulat 32 px (bahasa), kemudian menu avatar hamburger 36 px
|
|||
|
|
- Border bawah: 1 px solid Hairline Gray `#dddddd`
|
|||
|
|
|
|||
|
|
**Nav Atas (Mobile)**
|
|||
|
|
- Pil pencarian satu baris menempati lebar penuh: placeholder "Mulai pencarian Anda" dengan ikon kaca pembesar kecil
|
|||
|
|
- Di bawah: pemilih kategori tri-tab bertahan (Rumah / Pengalaman / Layanan) — ikon bergambar menyusut ke ~28 px
|
|||
|
|
- Bilah tab yang disematkan di bawah: Jelajahi (status aktif Rausch) / Daftar Keinginan / Masuk — ikon 24 px di atas label 12 px
|
|||
|
|
|
|||
|
|
**Nav Sekunder Halaman Detail Listing**
|
|||
|
|
- Guliran horizontal yang menempel dari tautan jangkar (Foto · Fasilitas · Ulasan · Lokasi · Tuan Rumah) muncul saat menggulir melewati gambar hero
|
|||
|
|
- Tinggi: 56 px
|
|||
|
|
- Border bawah: 1 px solid Hairline Gray
|
|||
|
|
|
|||
|
|
### Perlakuan Gambar
|
|||
|
|
|
|||
|
|
- **Rasio aspek utama**: 4:3 untuk kisi listing beranda, 16:9 untuk fotografi hero pengalaman, 1:1 untuk avatar
|
|||
|
|
- **Radius**: 14 px pada gambar kisi listing, 20 px pada bingkai foto hero halaman detail, `50%` pada avatar
|
|||
|
|
- **Kisi gambar di halaman detail**: kisi lima foto dengan satu gambar besar di sebelah kiri (lebar 50%) dan empat foto lebih kecil dalam kisi 2×2 di sebelah kanan, semua berbagi kontainer membulat luar 20 px
|
|||
|
|
- **Lazy loading**: penggunaan intensif `loading="lazy"` dengan pratinjau placeholder yang dikaburkan
|
|||
|
|
- **Karusel**: tombol panah bulat 32 px melapisi gambar, dipusatkan secara vertikal; indikator titik duduk 12 px di atas tepi bawah
|
|||
|
|
|
|||
|
|
### Komponen Khas
|
|||
|
|
|
|||
|
|
**Lockup Penghargaan Favorit Tamu** (ditampilkan secara menonjol di halaman detail listing dengan peringkat tinggi)
|
|||
|
|
- Angka peringkat terpusat dirender pada 44–56 px berbobot 700
|
|||
|
|
- Dua ilustrasi SVG karangan bunga laurel yang digambar tangan mengapit kiri dan kanan pada ~48 px tinggi
|
|||
|
|
- Di bawah: label "Favorit Tamu" pada 12 px 700 huruf kapital dengan tracking `0,32 px`, dan sub-label pendek pada 14 px 500 Ash Gray
|
|||
|
|
- Blok lebar penuh, tidak ada border kontainer — duduk langsung di atas kanvas putih
|
|||
|
|
|
|||
|
|
**Pemilih Kategori Tri-Tab** (muncul di bagian atas setiap permukaan penelusuran)
|
|||
|
|
- Tiga tab: Rumah / Pengalaman / Layanan
|
|||
|
|
- Setiap tab: ikon bergambar render 3D (~48 px tinggi) di atas label berbobot 500 16 px
|
|||
|
|
- Pengalaman dan Layanan saat ini membawa pil "BARU" biru navy kecil (teks putih 12 px 700 pada latar belakang biru gelap) yang mengambang di kanan atas ikon
|
|||
|
|
- Tab aktif: garis bawah Ink Black 2 px di bawah label
|
|||
|
|
|
|||
|
|
**Kisi Kota Inspirasi** (beranda "Inspirasi untuk perjalanan masa depan")
|
|||
|
|
- Kisi 6 kolom tautan destinasi di desktop, 2 kolom di mobile
|
|||
|
|
- Setiap sel: nama kota 16 px 600 di baris 1, subtitle tipe sewa Ash Gray 500 14 px di baris 2 ("Sewa cottage", "Sewa villa")
|
|||
|
|
- Tidak ada gambar — kisi hanya teks
|
|||
|
|
- Dengan tab di atas berdasarkan kategori (Populer / Seni & budaya / Pantai / Pegunungan / Alam terbuka / Hal yang bisa dilakukan / Tips perjalanan & inspirasi / Apartemen ramah Airbnb) — tab aktif memiliki garis bawah 2 px dan pergeseran bobot
|
|||
|
|
|
|||
|
|
**Kartu Pesan Tetap** (halaman detail listing)
|
|||
|
|
- Tetap tersemat 120 px di bawah bagian atas viewport di desktop saat pengguna menggulir melewati hero
|
|||
|
|
- Mengempis menjadi bilah bawah lebar penuh di mobile dengan label "Dari $X / malam" dan pil Rausch "Pesan"
|
|||
|
|
- Selalu menampilkan: headline harga → tampilan tanggal → pemilih tamu → CTA Rausch → disclaimer "Anda belum akan ditagih"
|
|||
|
|
|
|||
|
|
**Kartu Tuan Rumah Pengalaman** (halaman detail pengalaman)
|
|||
|
|
- Kontainer membulat lebar penuh dengan foto sampul 3:2 di atas
|
|||
|
|
- Avatar tuan rumah (bulat, 56 px) tumpang tindih tepi bawah sampul sebesar 50%
|
|||
|
|
- Di bawah tumpang tindih: nama tuan rumah pada 16 px 700, lama tuan rumah pada 14 px 500 Ash Gray, tombol pil Rausch kecil "Hubungi tuan rumah"
|
|||
|
|
- Digunakan sebagai transisi antara ulasan dan blok fasilitas/lokasi
|
|||
|
|
|
|||
|
|
**Strip "Hal yang perlu diketahui"** (halaman detail listing)
|
|||
|
|
- Kisi 3 kolom blok aturan/kebijakan (Aturan rumah, Keamanan & properti, Kebijakan pembatalan)
|
|||
|
|
- Setiap kolom: ikon di atas, heading 16 px 600, tubuh Ash Gray 14 px 500, tautan "Tampilkan lebih banyak" dalam garis bawah Ink Black
|
|||
|
|
- Pemisah: border atas dan bawah Hairline Gray 1 px pada seluruh strip
|
|||
|
|
|
|||
|
|
## 5. Prinsip Tata Letak
|
|||
|
|
|
|||
|
|
### Sistem Spasi
|
|||
|
|
- **Unit dasar**: 8 px
|
|||
|
|
- **Skala yang diekstrak**: 2, 3, 4, 5,5, 6, 8, 10, 11, 12, 15, 16, 18,5, 22, 24, 32 px — granular dengan segelintir nilai di luar kisi yang digunakan untuk penyelarasan ikon yang sempurna piksel
|
|||
|
|
- **Padding seksi**: ~48–64 px atas/bawah di desktop, 24–32 px di mobile
|
|||
|
|
- **Padding internal kartu**: 24 px pada panel pemesanan dan kartu besar, 16 px pada baris fasilitas, 12 px pada metadata kartu listing
|
|||
|
|
- **Celah antar kartu listing**: 24 px desktop, 16 px mobile
|
|||
|
|
- **Antara baris teks bertumpuk**: 4–8 px (sangat ketat — memperkuat rasa "informasi padat" dari listing perjalanan)
|
|||
|
|
|
|||
|
|
### Kisi & Kontainer
|
|||
|
|
- **Lebar konten maksimum**: 1760–1920 px pada ultra-wide (Airbnb membiarkan kisi bernafas lebih jauh dari kebanyakan situs); 1280 px di sebagian besar halaman detail
|
|||
|
|
- **Kisi listing beranda**: 6 kolom pada ≥1760 px, 5 pada ≥1440 px, 4 pada ≥1128 px, 3 pada ≥800 px, 2 pada ≥550 px, 1 di bawahnya
|
|||
|
|
- **Halaman detail**: 2 kolom asimetris — konten utama ~58%, panel pemesanan tetap ~36% di sebelah kanan, ~6% celah
|
|||
|
|
- **Footer**: 3 kolom Dukungan / Hosting / Airbnb
|
|||
|
|
|
|||
|
|
### Filosofi Ruang Putih
|
|||
|
|
Airbnb sangat informatif namun tidak pernah sempit. Ruang putih digunakan untuk *mengelompokkan* — kartu listing memiliki 24 px celah sehingga setiap foto terbaca sebagai objek yang berbeda, tetapi metadata di bawah setiap kartu menggunakan celah 4–8 px sehingga harga/kota/tanggal terasa seperti satu unit. Panel pemesanan halaman detail memiliki padding internal 24 px, tetapi baris di dalamnya (pemilih tanggal, pemilih tamu, CTA) ditumpuk pada 12 px — batas antara kartu dan halaman melakukan lebih banyak pekerjaan pemisahan daripada konten di dalamnya.
|
|||
|
|
|
|||
|
|
### Skala Radius Border
|
|||
|
|
| Radius | Penggunaan |
|
|||
|
|
|--------|-----|
|
|||
|
|
| 4 px | Tag jangkar inline, chip tag |
|
|||
|
|
| 8 px | Tombol teks, dropdown, tombol utilitas kecil |
|
|||
|
|
| 14 px | Fotografi kartu listing, kontainer konten generik, badge |
|
|||
|
|
| 20 px | Tombol membulat utama (bentuk pil), gambar besar, panel pemesanan |
|
|||
|
|
| 32 px | Pil bilah pencarian, kontainer ekstra besar |
|
|||
|
|
| 50% | Semua tombol ikon bulat, semua avatar, hati wishlist — geometri bulat khas sistem |
|
|||
|
|
|
|||
|
|
## 6. Kedalaman & Elevasi
|
|||
|
|
|
|||
|
|
| Level | Perlakuan | Penggunaan |
|
|||
|
|
|-------|-----------|-----|
|
|||
|
|
| 0 | Tanpa bayangan | Kartu listing, konten tubuh, bagian hanya teks |
|
|||
|
|
| 1 | `rgba(0, 0, 0, 0.08) 0 4px 12px` | Tombol ikon aktif/ditekan (mis. kembali, bagikan, favorit) — angkatan halus untuk menunjukkan interaksi |
|
|||
|
|
| 2 | `rgba(0, 0, 0, 0.02) 0 0 0 1px, rgba(0, 0, 0, 0.04) 0 2px 6px 0, rgba(0, 0, 0, 0.1) 0 4px 8px 0` | Kartu panel pemesanan tetap, modal, menu dropdown — elevasi tiga lapis khas sistem |
|
|||
|
|
| Cincin Fokus | `0 0 0 2px #222222` | Tombol status aktif, input pencarian yang difokuskan |
|
|||
|
|
| Cincin Pemisah Putih | `rgb(255, 255, 255) 0 0 0 4px` | Tombol bulat yang dilapisi pada foto — cincin putih 4 px dengan bersih memisahkan tombol dari latar belakang gambar berwarna |
|
|||
|
|
|
|||
|
|
Filosofi bayangan: Airbnb menggunakan **bayangan berlapis bertumpuk** daripada satu bayangan tunggal. Bayangan tiga lapis panel pemesanan terbaca sebagai satu angkatan yang kohesif tetapi sebenarnya adalah tiga bayangan terpisah pada nilai opasitas/keburaman yang berbeda — menciptakan anti-aliasing halus di perimeter bayangan yang terasa premium tanpa menjadi berat.
|
|||
|
|
|
|||
|
|
### Kedalaman Dekoratif
|
|||
|
|
- **Fotografi sebagai kedalaman**: sistem sangat mengandalkan fotografi penuh layar untuk menciptakan kedalaman visual; bayangan dan gradien digunakan dengan hemat sehingga foto melakukan pekerjaan berat
|
|||
|
|
- **Lockup karangan bunga laurel**: penghargaan Favorit Tamu menggunakan dua ilustrasi SVG laurel yang memberikan angka peringkat yang sebaliknya datar sebuah kehadiran seremonial, seperti piala
|
|||
|
|
- **Ikon kategori render 3D**: ikon Rumah/Pengalaman/Layanan memiliki pencahayaan internal lembut mereka sendiri dan bayangan lempar halus yang dipanggang dalam karya seni — satu-satunya tempat merek memperbolehkan ilustrasi "dimensional"
|
|||
|
|
|
|||
|
|
## 7. Yang Boleh dan Tidak Boleh
|
|||
|
|
|
|||
|
|
### Yang Boleh
|
|||
|
|
- Cadangkan Rausch `#ff385c` untuk aksi utama dan indikator tab aktif — jangan pernah mengencerkannya dengan penggunaan dekoratif.
|
|||
|
|
- Biarkan fotografi bernafas — potongan 4:3 dengan sudut membulat 14–20 px, tidak ada teks yang dilapisi, tidak ada penutup gradien.
|
|||
|
|
- Gunakan Ink Black `#222222` untuk setiap lapisan teks di bawah Rausch — ini adalah hampir-hitam sistem, tidak pernah `#000000` yang sesungguhnya.
|
|||
|
|
- Pasangkan ikon bergambar 3D pemilih kategori tri-tab dengan tipografi datar — jangan mencampur gaya ilustrasi dalam satu permukaan.
|
|||
|
|
- Tumpuk tiga bayangan buram rendah (~2%, 4%, 10%) untuk menciptakan elevasi panel pemesanan yang khas.
|
|||
|
|
- Gunakan border Hairline Gray `#dddddd` 1 px untuk setiap pembagi kartu-ke-kartu dan baris-ke-baris.
|
|||
|
|
- Perlakukan panel pemesanan sebagai tetap di desktop, mengempis menjadi bilah pesan yang ditambatkan di bawah di mobile.
|
|||
|
|
- Gunakan spasi 4–8 px dalam grup metadata dan 24 px antar kartu — kepadatan informasi adalah disengaja.
|
|||
|
|
|
|||
|
|
### Yang Tidak Boleh
|
|||
|
|
- Jangan memperkenalkan warna aksen sekunder di luar palet tingkat produk Rausch / Plus Magenta / Luxe Purple.
|
|||
|
|
- Jangan menempatkan teks di dalam foto — keterangan selalu duduk di bawah gambar, tidak pernah dilapisi.
|
|||
|
|
- Jangan menggunakan label huruf kapital semua kecuali untuk peran superskrip 8 px tunggal.
|
|||
|
|
- Jangan membulatkan tombol ikon ke apapun selain 50% — bulat adalah geometri khas sistem.
|
|||
|
|
- Jangan menambahkan bayangan ke kartu listing — mereka duduk di atas kanvas putih tanpa elevasi.
|
|||
|
|
- Jangan menggunakan latar belakang gradien — satu-satunya gradien dalam sistem adalah sapuan Rausch → magenta yang sempit pada wordmark.
|
|||
|
|
- Jangan menggunakan bobot font 400-regular — bobot tubuh Airbnb Cereal adalah 500.
|
|||
|
|
- Jangan mengganti Airbnb Cereal VF dengan typeface display yang berbeda — sistem ini sengaja satu keluarga.
|
|||
|
|
|
|||
|
|
## 8. Perilaku Responsif
|
|||
|
|
|
|||
|
|
### Breakpoint
|
|||
|
|
|
|||
|
|
Airbnb mendeklarasikan ~60 breakpoint (artefak waktu desain dari pustaka komponen mereka), tetapi pergeseran tata letak yang berarti terjadi pada kumpulan yang jauh lebih kecil:
|
|||
|
|
|
|||
|
|
| Nama | Lebar | Perubahan Utama |
|
|||
|
|
|------|-------|-------------|
|
|||
|
|
| Ultra-wide | ≥1760 px | Kisi listing 6 kolom, lebar konten maksimum 1760–1920 px |
|
|||
|
|
| Desktop XL | 1440–1759 px | Kisi 5 kolom, nav penuh terlihat, panel pemesanan tetap di rel kanan |
|
|||
|
|
| Desktop | 1128–1439 px | Kisi 4 kolom, panel pemesanan tetap bertahan |
|
|||
|
|
| Laptop | 1024–1127 px | Kisi 3–4 kolom, nav kategori tetap horizontal |
|
|||
|
|
| Tablet | 800–1023 px | Kisi 3 kolom, pencarian global dapat mengempis menjadi pil satu baris |
|
|||
|
|
| Tablet kecil | 550–799 px | Kisi 2 kolom, panel pemesanan turun ke blok inline lebar penuh |
|
|||
|
|
| Mobile | 375–549 px | Tata letak bertumpuk 1 kolom, bilah tab yang disematkan di bawah muncul (Jelajahi / Daftar Keinginan / Masuk) |
|
|||
|
|
| Mobile kecil | <375 px | Padding tepi mengencang ke 16 px; ikon pemilih kategori menyusut ke ~28 px |
|
|||
|
|
|
|||
|
|
### Target Sentuh
|
|||
|
|
Semua elemen interaktif memenuhi atau melebihi 44×44 px. Keluarga tombol ikon bulat secara khusus berukuran 32–44 px dengan padding area hit yang diperluas 8–12 px. Tombol Pesan Rausch utama adalah ~48 px tinggi. Area hit pemilih kategori tri-tab adalah seluruh persegi panjang label-plus-ikon (biasanya ~64×80 px per tab).
|
|||
|
|
|
|||
|
|
### Strategi Mengempis
|
|||
|
|
- **Nav**: Nav atas mempertahankan wordmark Airbnb + pemilih tri-tab di tablet dan lebih besar; di mobile pemilih meluncur tepat di bawah pil pencarian, dan kontrol globe/avatar berpindah ke bilah tab yang ditambatkan di bawah.
|
|||
|
|
- **Bilah pencarian**: Pil tiga segmen (Di mana / Kapan / Siapa) dengan tombol kirim bulat Rausch di desktop; mengempis menjadi pil "Mulai pencarian Anda" satu baris di mobile, mengetuknya membuka lembar pencarian layar penuh.
|
|||
|
|
- **Panel pemesanan**: Rel kanan tetap pada ≥1128 px; inline dalam kolom konten utama antara 800–1127 px; pil "Pesan" yang disematkan di bawah pada <800 px.
|
|||
|
|
- **Kisi listing**: Mengalir 6 → 5 → 4 → 3 → 2 → 1 kolom di seluruh breakpoint.
|
|||
|
|
- **Kisi gambar halaman detail**: Tata letak lima gambar (1 besar + 4 kecil) di desktop; menjadi karusel penuh layar yang dapat digesek di mobile dengan indikator titik halaman.
|
|||
|
|
- **Footer**: Tata letak 3 kolom mengempis menjadi satu kolom bertumpuk pada <800 px.
|
|||
|
|
|
|||
|
|
### Perilaku Gambar
|
|||
|
|
- `loading="lazy"` universal, dengan thumbnail pratinjau `im_w=` yang diparameter URL yang dikaburkan disajikan terlebih dahulu
|
|||
|
|
- Gambar responsif menggunakan CDN `muscache.com` Airbnb dengan parameter kueri `im_w` untuk pengiriman berbasis lebar (`im_w=240`, `im_w=720`, `im_w=1200`, `im_w=2400`)
|
|||
|
|
- Tidak ada pemotongan art-direction — gambar yang sama diskalakan naik/turun di seluruh breakpoint
|
|||
|
|
- Karusel secara otomatis menyesuaikan tinggi foto untuk mempertahankan rasio 4:3 yang konsisten terlepas dari aspek sumber
|
|||
|
|
|
|||
|
|
## 9. Panduan Prompt untuk Agen
|
|||
|
|
|
|||
|
|
### Referensi Warna Cepat
|
|||
|
|
- CTA utama: "Rausch (#ff385c)"
|
|||
|
|
- Latar belakang halaman: "Canvas White (#ffffff)"
|
|||
|
|
- Sub-permukaan: "Soft Cloud (#f7f7f7)"
|
|||
|
|
- Teks heading/tubuh: "Ink Black (#222222)"
|
|||
|
|
- Teks sekunder: "Ash Gray (#6a6a6a)"
|
|||
|
|
- Border/pembagi: "Hairline Gray (#dddddd)"
|
|||
|
|
- Kesalahan: "Error Red (#c13515)"
|
|||
|
|
- Tautan info: "Info Blue (#428bff)"
|
|||
|
|
- Aksen tingkat Luxe: "Luxe Purple (#460479)"
|
|||
|
|
- Aksen tingkat Plus: "Plus Magenta (#92174d)"
|
|||
|
|
|
|||
|
|
### Contoh Prompt Komponen
|
|||
|
|
- "Buat tombol Pesan utama: latar belakang Rausch (`#ff385c`), label putih Airbnb Cereal berbobot 500 pada 16 px, padding 14 px × 24 px, border-radius 8 px, tanpa bayangan. Pada aktif/ditekan tambahkan `transform: scale(0.92)` dengan cincin fokus Ink Black 2 px (`0 0 0 2px #222222`)."
|
|||
|
|
- "Buat kartu listing dengan foto penuh layar 4:3 pada border-radius 14 px, tanpa bayangan kontainer; di bawah gambar tumpuk tiga baris teks dengan celah 4 px: nama kota pada 16 px 600 Ink Black, tipe sewa pada 14 px 500 Ash Gray (`#6a6a6a`), dan rentang harga dalam 16 px 500 Ink Black dengan sufiks `per malam` 14 px."
|
|||
|
|
- "Rancang panel pemesanan tetap: latar belakang putih, border-radius 14 px, border Hairline Gray (`#dddddd`) 1 px, bayangan elevasi 3 lapis (`rgba(0,0,0,0.02) 0 0 0 1px, rgba(0,0,0,0.04) 0 2px 6px 0, rgba(0,0,0,0.1) 0 4px 8px 0`), padding 24 px, lebar 370 px, disematkan 120 px di bawah bagian atas viewport di desktop. Konten: headline harga, pemilih tanggal, dropdown tamu, CTA utama Rausch, dan disclaimer Ash Gray 12 px `Anda belum akan ditagih`."
|
|||
|
|
- "Buat pemilih kategori tri-tab: tiga tab dengan lebar yang sama berlabel Rumah, Pengalaman, Layanan; setiap tab memiliki ikon bergambar render 3D ~48 px (rumah, balon, bel) di atas label Ink Black berbobot 500 16 px; tab aktif mendapat garis bawah Ink Black 2 px; tambahkan pil `BARU` putih kecil 12 px 700 pada latar belakang biru navy gelap di kanan atas ikon Pengalaman dan Layanan."
|
|||
|
|
- "Render lockup penghargaan Favorit Tamu: angka peringkat terpusat pada 52 px berbobot 700 Ink Black, diapit kiri dan kanan oleh karangan bunga SVG laurel yang digambar tangan pada ~48 px tinggi; di bawah, label huruf kapital `FAVORIT TAMU` 12 px 700 dengan tracking 0,32 px; sub-label pada 14 px 500 Ash Gray; blok lebar penuh duduk langsung di atas kanvas putih tanpa border kontainer."
|
|||
|
|
|
|||
|
|
### Panduan Iterasi
|
|||
|
|
Saat menyempurnakan layar yang ada yang dibuat dengan sistem desain ini:
|
|||
|
|
1. Fokus pada SATU komponen sekaligus.
|
|||
|
|
2. Rujuk nama warna spesifik dan kode hex dari dokumen ini (mis. "Ink Black #222222", bukan "abu-abu gelap").
|
|||
|
|
3. Gunakan deskripsi bahasa alami di samping pengukuran ("elevasi tiga lapis halus" daripada string bayangan panjang).
|
|||
|
|
4. Deskripsikan "rasa" yang diinginkan ("seperti majalah, fotografi-pertama" vs "utilitas padat").
|
|||
|
|
5. Selalu default ke Airbnb Cereal VF berbobot 500 untuk tubuh dan 600–700 untuk penekanan — tidak pernah 400.
|
|||
|
|
6. Jaga merah muda Rausch tetap langka — jika lebih dari satu elemen berwarna Rausch muncul per viewport, pertimbangkan apakah salah satunya harus dinetralisasi.
|
|||
|
|
|
|||
|
|
### Celah yang Diketahui
|
|||
|
|
- **Kartu kisi listing beranda**: kisi kartu properti utama (permukaan visual utama airbnb.com) tidak sepenuhnya ditangkap dalam screenshot beranda yang diekstrak — konten hanya dimuat sebagian. Spesifikasi Kartu Listing di atas disimpulkan dari struktur kisi Inspirasi dan konvensi Airbnb yang lebih luas; konfirmasikan rasio aspek yang tepat dan hierarki metadata terhadap situs langsung sebelum digunakan dalam produksi.
|
|||
|
|
- **Ikon kategori Pengalaman**: ikon bergambar 3D untuk Rumah / Pengalaman / Layanan disajikan sebagai aset raster; spesifikasi file sumber yang tepat (SVG vs PNG, dimensi piksel yang dirender) tidak didokumentasikan di sini.
|
|||
|
|
- **Timing animasi dan transisi**: tidak ditangkap — ruang lingkup ekstraksi statis.
|
|||
|
|
- **Mode gelap**: Airbnb tidak mengirimkan mode gelap asli dalam permukaan produk yang diekstrak; dokumen ini hanya mendeskripsikan tema mode terang tunggal.
|