WEDDING INVITATION

We invited you to celebrate our wedding

Dhini & Jaya

Minggu, 24 Agustus 2025

Kepada yth: Bpk/Ibu/Saudara/i

Tamu Undangan

Assalamu'alaikum Warahmatullahi Wabarakatuh

Tanpa mengurangi rasa hormat, perkenankan kami mengundang Bapak/Ibu/Saudara/i Tamu Undangan
serta kerabat sekalian, untuk menghadiri acara resepsi pernikahan kami:

Dhini Asa Anggraini

Putri ke 2 dari
Bapak Alm. AIPTU Suwarno & Ibu Atik Hartawani

&

Jayadi

Putra ke 2 dari
Bapak Alm. Boih & Ibu Nasih

Our Moment

Wedding Gallery

" Dan di antara tanda-tanda kekuasaan-Nya diciptakan-Nya untukmu pasangan hidup dari jenismu sendiri supaya kamu dapat ketenangan hati dan dijadikannya kasih sayang di antara kamu. Sesungguhnya yang demikian menjadi tanda-tanda kebesaran-Nya bagi orang-orang yang berpikir. "

- Q.S. Ar-Rum: 21 -

Our Special

Wedding Event

Sunday, 12 December 20xx

  • 00Hari
  • 00Jam
  • 00Menit
  • 00Detik

Akad Nikah

Minggu,
24 Agustus 2025

09.00 WIB
s/d selesai

Bertempat Di
GRAHA QUEENSYATILLA

Acara Resepsi

Minggu,
24 Agustus 2025

11.00 WIB
s/d 16.00 WIB

Bertempat Di
GRAHA QUEENSYATILLA

Wedding Gift

Doa Restu Anda merupakan karunia yang sangat berarti bagi kami.
Dan jika memberi adalah ungkapan tanda kasih Anda, Anda dapat memberi kado secara cashless.

bca-1-2.png
Dhini Asa Anggraini

Beri Doa & Ucapan Terbaikmu

Untuk Kedua Mempelai

Tinggalkan kami doa terbaik anda untuk momen bahagia kami

Hope to see you soon, Stay safe and healthy!

TERIMA KASIH

Atas Kehadiran & Doa Restunya

Merupakan suatu kehormatan dan kebahagiaan bagi kami sekeluarga apabila Bapak/Ibu/Saudara/i Tamu Undangan berkenan hadir untuk memberikan doa restu kepada kedua mempelai. Atas kehadiran serta doa restu, kami ucapkan terima kasih.

Sampai Jumpa di Hari Bahagia Kami,

Dhini & Jaya

AYA_8021 (1) - Salin
Kpd Bpk/Ibu/Saudara/i
Tamu Undangan
Tanpa Mengurangi Rasa Hormat, Kami Mengundang Anda Untuk Berhadir Di Acara Pernikahan Kami.
Mohon maaf apabila ada kesalahan penulisan nama/gelar
window.onbeforeunload = function() { window.scrollTo(0, 0); }; var isSectionLocked = true; // Menyimpan status kunci tampilan section // Mengunci tampilan section pertama saat halaman dimuat window.addEventListener('DOMContentLoaded', function() { lockSection(); }); // Fungsi untuk mengunci tampilan section function lockSection() { if (isSectionLocked) { disableScrolling(); document.body.style.position = "fixed"; document.body.style.overflowY = "scroll"; document.body.style.height = "100vh"; document.getElementById("section-cover").style.width = "100vw"; // Menambahkan gaya untuk membuat cover full width } } // Fungsi untuk membuka tampilan section function unlockSection() { enableScrolling(); document.body.style.position = ""; document.body.style.overflowY = ""; document.getElementById("section-cover").style.width = ""; // Menghapus gaya untuk mengembalikan lebar cover ke nilai aslinya document.getElementById("tombol-buka").style.display = "none"; // Menyembunyikan tombol "tombol-buka" } document.getElementById("tombol-buka").onclick = function() { unlockSection(); playAudio(); }; function disableScrolling() { var x = window.scrollX; var y = window.scrollY; window.onscroll = function() { window.scrollTo(x, y); }; } function enableScrolling() { window.onscroll = null; } function playAudio(){ var isYT = false; if(document.body.contains(document.getElementById("song"))) { document.getElementById("song").play(); isYT = false; } else { isYT = true; player.playVideo(); } }
/*! WeddingPress Custom Nama Tamu (WDPCNT) ============================================ Description: WeddingPress Custom Nama Tamu (WDPCNT) adalah script JavaScript yang digunakan untuk mengganti teks "Tamu Undangan" pada elemen dengan class `namatamu` berdasarkan parameter yang ada di URL. Script ini mendukung beberapa parameter seperti `to`, `dear`, dan `kepada` untuk menyesuaikan nama penerima undangan. Author: Andy dari WeddingPress Website: https://weddingpress.net Version: 1.1 (2025/03/01) License: Anda diizinkan menggunakan script ini pada website Anda dan proyek klien. Tidak diperbolehkan menjual, membagikan, menempatkan codenya ditemplate yang dijual atau mendistribusikan ulang tanpa izin. Copyright: © 2025 WeddingPress. All rights reserved. Note: Pastikan untuk teks 'Tamu Undangan' css classesnya sudah terisi: 'namatamu' */ (function () { 'use strict'; // ================================================================= // KONFIGURASI ⚙️ // ================================================================= const config = { selector: '.namatamu', urlParams: ['to', 'dear', 'kepada'], defaultText: 'Tamu Undangan' }; // ================================================================= /** * Mengambil nama tamu dari URL. * Dibuat tetap simpel untuk keamanan & keandalan, karena URLSearchParams * sudah menangani semua decoding (+, %20, dll) sesuai standar. */ function getRecipientName(params, keys) { for (const key of keys) { const value = params.get(key); if (value && value.trim()) { return value.trim(); } } return ''; } /** * "Membersihkan" string agar aman digunakan di dalam Regular Expression. * Mencegah error jika placeholder berisi karakter spesial Regex. */ function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string } /** * Fungsi rekursif untuk mencari dan mengganti konten teks * tanpa merusak elemen HTML di sekitarnya. */ function replaceTextInNode(node, searchValue, replaceValue) { if (node.nodeType === 1 || node.nodeType === 11) { // Element or Document Fragment node.childNodes.forEach(child => { if (child.nodeType === 3) { // Text node // Gunakan escapeRegExp untuk memastikan searchValue aman. const safeSearchValue = escapeRegExp(searchValue); const regex = new RegExp(safeSearchValue, 'gi'); child.textContent = child.textContent.replace(regex, replaceValue); } else { replaceTextInNode(child, searchValue, replaceValue); } }); } } window.addEventListener('DOMContentLoaded', () => { const params = new URLSearchParams(window.location.search); const recipient = getRecipientName(params, config.urlParams); const targets = document.querySelectorAll(config.selector); if (targets.length === 0) { console.warn(`WDPCNT: Tidak ditemukan elemen dengan selector '${config.selector}'.`); return; } targets.forEach(element => { if (recipient) { replaceTextInNode(element, config.defaultText, recipient); } else { if (!element.textContent.trim()) { element.textContent = config.defaultText; } } }); }); })();
function revealElements(selector) { var elements = document.querySelectorAll(selector); var windowHeight = window.innerHeight; var elementVisible = 150; elements.forEach(function(element) { var elementTop = element.getBoundingClientRect().top; if (elementTop < windowHeight - elementVisible) { element.classList.add("active"); } else { element.classList.remove("active"); } }); } window.addEventListener("scroll", function() { revealElements(".wdpal-fade-in, .wdpal-muncul-atas, .wdpal-muncul-bawah, .wdpal-muncul-kiri, .wdpal-muncul-kanan, .wdpal-rotate-in, .wdpal-flip-x, .wdpal-flip-y, .wdpal-zoom-in, .wdpal-zoom-out"); }); /* Fade In */ .wdpal-fade-in { opacity: 0; transition: opacity 1s ease-in-out; } .wdpal-fade-in.active { opacity: 1; } /* Muncul Atas */ .wdpal-muncul-atas { transform: translateY(100%); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-muncul-atas.active { transform: translateY(0); opacity: 1; } /* Muncul Bawah */ .wdpal-muncul-bawah { transform: translateY(-100%); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-muncul-bawah.active { transform: translateY(0); opacity: 1; } /* Muncul Kiri */ .wdpal-muncul-kiri { position: relative; transform: translateX(-100%) scale(0.93); opacity: 0; transition: opacity 0.5s ease, transform 1s ease; } .wdpal-muncul-kiri.active { transform: translateX(0); opacity: 1; } /* Muncul Kanan */ .wdpal-muncul-kanan { position: relative; transform: translateX(100%) scale(0.93); opacity: 0; transition: opacity 0.5s ease, transform 1s ease; } .wdpal-muncul-kanan.active { transform: translateX(0); opacity: 1; } /* Rotate In */ .wdpal-rotate-in { transform: rotate(-180deg); opacity: 0; transition: transform 1s ease-out, opacity 1s ease-out; } .wdpal-rotate-in.active { transform: rotate(0deg); opacity: 1; } /* Flip X */ .wdpal-flip-x { transform: rotateX(90deg); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-flip-x.active { transform: rotateX(0deg); opacity: 1; } /* Flip Y */ .wdpal-flip-y { transform: rotateY(90deg); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-flip-y.active { transform: rotateY(0deg); opacity: 1; } /* Zoom In */ .wdpal-zoom-in { transform: scale(0.5); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-zoom-in.active { transform: scale(1); opacity: 1; } /* Zoom Out */ .wdpal-zoom-out { transform: scale(1.5); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-zoom-out.active { transform: scale(1); opacity: 1; }
//* script show-hide by andy dari weddingpress *// document.addEventListener("DOMContentLoaded", function () { var btnAmplop = document.getElementById("btnAmplop"); var btnHide = document.getElementById("btn-hide"); var amplop = document.getElementById("amplop"); // Sembunyikan btn-hide dan amplop saat halaman dimuat btnHide.style.display = "none"; amplop.style.display = "none"; // Fungsi untuk menampilkan btn-hide dan amplop saat btnAmplop diklik btnAmplop.onclick = function () { // Menampilkan btn-hide sebagai flex btnHide.style.display = "flex"; // Menyembunyikan btnAmplop btnAmplop.style.display = "none"; // Menampilkan section amplop sebagai flex amplop.style.display = "flex"; }; // Fungsi untuk menampilkan btnAmplop kembali dan menyembunyikan btn-hide saat btn-hide diklik btnHide.onclick = function () { // Menyembunyikan btn-hide btnHide.style.display = "none"; // Menampilkan btnAmplop kembali sebagai block (atau flex) btnAmplop.style.display = "block"; // atau flex, tergantung tata letak yang diinginkan // Menyembunyikan section amplop amplop.style.display = "none"; }; });