Katalog produk undangan dengan nested categories, flipbook effect, dan dashboard admin. Deploy ke Vercel atau GitHub Pages tanpa backend.
katalog-undangan/
├── index.html → Halaman katalog (publik)
├── dashboard.html → Dashboard admin (untuk upload produk)
├── style.css → Styling katalog
├── dashboard.css → Styling dashboard
├── app.js → Logic katalog (navigasi, flipbook, search)
├── dashboard.js → Logic dashboard (CRUD, upload, export)
├── data.json → Data produk default (fallback)
└── vercel.json → Config deploy Vercel
- Upload semua file ke GitHub repository
- Buka vercel.com → Import repository
- Pilih repo → Deploy (otomatis)
- Done! Katalog live di
https://nama-repo.vercel.app
- Upload semua file ke repo GitHub
- Settings → Pages → Source:
main branch / root - Done! Live di
https://username.github.io/nama-repo
- Buka
dashboard.html - Klik + Produk Baru untuk tambah produk utama (contoh: FADHIL)
- Di dalam produk, klik Tambah Sub-Produk untuk nested (contoh: Classic, Modern)
- Nested bisa terus ke bawah (Classic → Softcover, Hardcover, dst)
- Upload foto via drag & drop atau URL
- Klik Simpan Perubahan
- Klik Export JSON untuk backup data ke file
⚠️ Data disimpan dilocalStoragebrowser. Gunakan Export JSON untuk backup, dan simpan filedata.jsondi repository untuk data default.
- Setiap produk bisa punya banyak foto
- Saat mouse hover di kartu produk → foto otomatis berganti (flipbook)
- Di mobile → swipe kiri/kanan untuk ganti foto
- Urutan foto = urutan saat upload
Set nomor WA di Dashboard → Pengaturan.
Format: 628123456789 (tanpa + atau spasi).
Saat user klik "Pesan", otomatis buka WA dengan pesan:
Halo, saya tertarik dengan produk:
*FADHIL › Classic › Softcover*
Harga: Rp 150.000
Mohon info lebih lanjut 🙏
Karena ini static site, data di-reset kalau localStorage kosong. Untuk data permanen di production:
- Setelah selesai atur di dashboard, klik Export JSON
- Ganti isi file
data.jsondengan file hasil export - Push ke GitHub / redeploy ke Vercel
Edit variabel warna di style.css:
:root {
--gold: #C9A84C; /* Warna emas utama */
--cream: #FAF6EF; /* Background utama */
--charcoal: #1A1A1A; /* Warna gelap/teks */
}