Deskripsi: Halaman pembuka yang muncul sebelum undangan utama, mirip dengan contoh afunagara.com
Fitur:
- Background gradient dengan animated blobs
- Icon love di tengah dengan backdrop blur
- Nama pengantin
- Tanggal acara
- Personalized greeting: "Dear Special Guest"
- Tombol "OPEN INVITATION" dengan hover effect
- Smooth transition animation saat dibuka
Cara Menggunakan:
- Pengunjung akan melihat opening cover saat pertama kali membuka website
- Klik tombol "OPEN INVITATION" untuk membuka undangan lengkap
- Animasi smooth slide down akan menampilkan konten utama
Deskripsi: Navigasi sticky di bagian bawah layar untuk akses cepat ke setiap section
Menu:
- Opening - Halaman hero dengan nama pengantin
- Salam - Section greeting & profil pengantin
- Event - Detail waktu & tempat acara
- Maps - Lokasi acara dengan Google Maps
- RSVP - Form konfirmasi kehadiran
Fitur:
- Fixed position di bottom screen
- Active state indicator dengan garis biru di atas menu
- Smooth scroll ke section yang dipilih
- Auto-update active state saat scroll
- Icon SVG untuk setiap menu
- Responsive design
Deskripsi: Tombol floating untuk play/pause background music
Fitur:
- Fixed position di bottom-right (di atas bottom nav)
- Gradient background (gold)
- Icon music yang berubah saat play/pause
- Hover scale effect
- Smooth transition animation
- Ready untuk integrasi audio player
Cara Menambahkan Audio:
<!-- Tambahkan di layouts/app.blade.php sebelum </body> -->
<audio id="background-music" loop>
<source src="{{ asset('music/wedding-song.mp3') }}" type="audio/mpeg">
</audio>// Update script di invitation/index.blade.php
const audio = document.getElementById('background-music');
musicToggle.addEventListener('click', function() {
isPlaying = !isPlaying;
if (isPlaying) {
audio.play();
musicIconPlay.classList.add('hidden');
musicIconPause.classList.remove('hidden');
} else {
audio.pause();
musicIconPlay.classList.remove('hidden');
musicIconPause.classList.add('hidden');
}
});-
Opening Cover
- Gradient:
from-primary-800 via-primary-700 to-primary-600 - Animated background blobs untuk efek dinamis
- Glassmorphism effect pada icon container
- Gradient:
-
Bottom Navigation
- White background dengan shadow
- Blue gradient indicator untuk active menu
- Icon size: 24x24px (w-6 h-6)
- Text size: text-xs
-
Music Button
- Gradient:
from-gold-400 to-gold-500 - Size: 56x56px (w-14 h-14)
- Shadow: shadow-lg
- Icon size: 24x24px
- Gradient:
-
Opening Transition
- Duration: 1000ms
- Effect:
translate-y-full+opacity-0 - Delay untuk bottom nav: 300ms
-
Bottom Nav Appearance
- Duration: 500ms
- Effect: Slide up from bottom
- Opacity fade in
-
Music Button Appearance
- Duration: 500ms
- Effect: Slide up from bottom
- Hover: Scale 110%
- resources/views/invitation/index.blade.php
- Added opening cover section
- Added bottom navigation
- Added music toggle button
- Updated JavaScript for interactions
- Added CSS animations
openInvitationBtn.addEventListener('click', function() {
// Hide opening cover
// Show main content
// Show bottom nav & music button
});window.addEventListener('scroll', () => {
// Detect current section
// Update active menu item
});musicToggle.addEventListener('click', function() {
// Toggle play/pause state
// Switch icon
// Control audio playback
});// Smooth scroll to section when nav clicked
document.querySelectorAll('a[href^="#"]').forEach(...)Edit di resources/views/invitation/index.blade.php:
<h1 class="text-2xl sm:text-3xl md:text-4xl font-serif text-white mb-4">
The Wedding Of <!-- Ganti teks ini -->
</h1>
<h2 class="font-script text-4xl sm:text-5xl md:text-6xl text-white mb-4">
Nama Pria & Nama Wanita <!-- Ganti nama pengantin -->
</h2>
<p class="text-white/90 text-lg mb-2">Minggu, 31 Desember 2025</p> <!-- Ganti tanggal -->
<p class="text-white text-xl font-medium mb-8">Dear Special Guest</p> <!-- Ganti guest name -->Edit CSS di bagian @push('scripts'):
#bottom-nav a.active::before {
background: linear-gradient(to right, #0ea5e9, #38bdf8); /* Ganti gradient */
}Edit icon SVG di setiap menu item (line 394-423)
Tambah/hapus item di bottom nav:
<a href="#section-id" class="nav-item flex flex-col items-center text-gray-600 transition-colors hover:text-primary-700">
<!-- Icon SVG -->
<span class="text-xs font-medium">Label</span>
</a>- Opening cover: Full screen
- Bottom nav: Full width, 5 items per row
- Music button: Fixed bottom-right
- Font sizes adjusted dengan sm: variants
- Same as mobile dengan sedikit spacing adjustment
- Opening cover: Centered with max-width
- Bottom nav: Full width
- Optimal spacing dan font sizes
-
First Visit
Opening Cover → Click "Open Invitation" → Main Content -
Navigation
Click Bottom Nav → Smooth Scroll to Section → Auto-update Active State -
Music Control
Click Music Button → Toggle Play/Pause → Icon Changes -
RSVP
Navigate to RSVP Section → Fill Form → Submit → Success Alert
- CSS animations menggunakan transform (GPU accelerated)
- Smooth scroll menggunakan native
scrollIntoView - Event listeners optimized
- Conditional rendering untuk better performance
- CSS (compressed): ~11.45 KB
- JS (compressed): ~14.71 KB
- Total assets: ~26 KB (very lightweight!)
Tested and working on:
- ✅ Chrome 90+
- ✅ Firefox 88+
- ✅ Safari 14+
- ✅ Edge 90+
- ✅ Mobile browsers (iOS Safari, Chrome Mobile)
- Tailwind CSS v4
- JavaScript (Vanilla - No framework required)
- Google Fonts (Inter, Playfair Display, Dancing Script)
None at the moment! 🎉
Beberapa ide untuk pengembangan selanjutnya:
- Gallery Section - Photo gallery untuk foto pre-wedding
- Love Story Timeline - Timeline perjalanan cinta
- Guest Book - Buku tamu digital
- Gift Registry - Info hadiah/rekening
- Instagram Feed - Live Instagram feed
- Photo Booth - Upload foto dari acara
- Live Streaming - Link untuk live streaming acara
- QR Code - QR code untuk fast RSVP
Happy Wedding! 💍
Updated: December 29, 2025