8 Contoh Script HTML Bucin 2025, Cocok untuk Pasangan

10 min read

Bucin alias budak cinta tidak selalu harus lewat chat atau gift mahal. Di tahun 2025 ini, banyak pasangan kreatif yang justru memilih menyatakan perasaan lewat teknologi sederhana, yaitu dari script HTML bucin.

Dengan sedikit kode HTML, CSS, dan JavaScript, Sahabat Qwords bisa bikin halaman romantis interaktif yang siap dikirim ke pasangan.

Cara Membuat Script HTML Bucin 2025

Meskipun terdengar teknis, sebenarnya langkah membuat script HTML bucin sangat sederhana. Berikut panduan singkat:

1. Tentukan Tema & Pesan

Mulai dari ide dasar: mau bikin halaman ucapan ulang tahun, pernyataan cinta, permintaan maaf, atau sekadar gombalan lucu?

Contoh pesan:

  • “Aku sayang kamu sampai pelangi 🌈”
  • “Selamat ulang tahun, cahaya hidupku 🎂”

2. Buat Struktur HTML

Bikin file index.html atau cintaku.html. Gunakan elemen <h1> untuk judul, <p> untuk pesan, dan <button> untuk interaksi.

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>HTML Bucin 2025</title>
  <link rel="stylesheet" href="styles.css" />
</head>
<body>
  <h1 class="judul">Aku Sayang Kamu ❤️</h1>
  <button id="btnSayang">Klik Aku</button>
  <script src="script.js"></script>
</body>
</html>

3. Tambahkan Gaya dengan CSS

Buat file styles.css agar tampilan lebih manis.

body {
  background-color: #ffeef8;
  text-align: center;
  font-family: sans-serif;
}
.judul {
  color: #e91e63;
  font-size: 2.5em;
}
#btnSayang {
  background: #f06292;
  color: #fff;
  padding: 10px 20px;
  border: none;
  border-radius: 50px;
  cursor: pointer;
}

4. Tambahkan Interaksi dengan JavaScript

Gunakan file script.js untuk memberi efek klik.

document.getElementById('btnSayang').onclick = function() {
  alert('Kamu bikin hariku lebih indah! 🌸');
};

5. Uji Coba

Buka file di browser. Kalau sudah oke, Sahabat Qwords bisa upload ke GitHub Pages, Replit, atau cukup kirim file ke pasangan.

8 Contoh Script HTML Bucin 2025

1) Menyatakan Perasaan

Halaman pernyataan cinta manis + animasi detak jantung dan bintang berkilau.

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Menyatakan Perasaan | Sayang Tak Bertepi</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    :root{
      --pink:#ff66b2; --pink-dark:#ff4081; --bg:#ffccf2; --heart:#ff1744;
    }
    *{box-sizing:border-box}
    body{
      margin:0; min-height:100vh; display:flex; flex-direction:column;
      align-items:center; justify-content:center;
      background: radial-gradient(circle at 30% 30%, #fff 0%, var(--bg) 60%);
      color:var(--pink-dark); font-family: 'Arial', sans-serif; text-align:center;
      overflow:hidden; padding:24px;
    }
    h1{ font-size:48px; margin:10px 0 6px }
    p.lead{ font-size:20px; color:#a4005f; margin:0 0 12px }
    .heart{
      font-size:100px; color:var(--heart); animation:beat 1.1s infinite ease-in-out;
      filter: drop-shadow(0 8px 16px rgba(255,0,64,.25));
      margin:18px 0 12px;
    }
    @keyframes beat{
      0%,20%,50%,80%,100%{ transform:scale(1) }
      40%{ transform:scale(1.18) }
      60%{ transform:scale(.92) }
    }
    .btn{
      background:var(--pink); color:#fff; border:0; border-radius:48px;
      padding:12px 24px; cursor:pointer; font-size:16px; transition:.25s;
      margin-top:14px
    }
    .btn:hover{ background:var(--pink-dark); transform:translateY(-2px) }
    .stars span{
      position:absolute; top:-10vh; font-size:12px; color:#fff; opacity:.75;
      animation:fall linear infinite;
    }
    @keyframes fall{
      to{ transform: translateY(120vh) translateX(-10vw); opacity:.1 }
    }
    footer{ position:fixed; bottom:10px; left:0; right:0; font-size:12px; color:#7a0a58 }
  </style>
</head>
<body>
  <h1>Aku Cinta Kamu! 💖</h1>
  <p class="lead">Setiap detik bersamamu adalah bahagia yang tak terhitung.</p>
  <div class="heart">💖</div>
  <button class="btn" id="btnRahasia">Klik untuk rahasia</button>

  <footer>© 2025 Bucin Tech — Halaman cinta sederhana untuk kamu</footer>

  <div class="stars" id="stars"></div>

  <script>
    // Bintang jatuh
    const stars = document.getElementById('stars');
    for(let i=0;i<40;i++){
      const s=document.createElement('span');
      s.textContent='✦';
      s.style.left=Math.random()*100+'vw';
      s.style.animationDuration=(6+Math.random()*6)+'s';
      s.style.animationDelay=(Math.random()*4)+'s';
      s.style.fontSize=(8+Math.random()*14)+'px';
      stars.appendChild(s);
    }
    // Rahasia manis
    document.getElementById('btnRahasia').addEventListener('click', ()=>{
      alert('Rahasiaku: aku pengin menua bareng kamu. ❤️');
    });
  </script>
</body>
</html>

2) Ucapan Terima Kasih

Ucapan apresiasi + animasi denyut dan gradient lembut.

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Terima Kasih Sayang</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    :root{ --bg:#f0f8ff; --text:#ff3399 }
    body{
      margin:0; min-height:100vh; display:flex; align-items:center; justify-content:center;
      background:linear-gradient(135deg, var(--bg), #fff);
      font-family:'Georgia', serif; color:var(--text); text-align:center; padding:24px;
    }
    h1{ font-size:40px; margin:0 0 8px }
    p{ font-size:18px; margin:0 0 16px }
    .heart{ font-size:84px; animation:pulse 1.4s infinite }
    @keyframes pulse{
      0%{ transform:scale(1) } 50%{ transform:scale(1.25) } 100%{ transform:scale(1) }
    }
    .tag{
      margin-top:14px; font-size:12px; color:#b20c67
    }
  </style>
</head>
<body>
  <main>
    <h1>Terima Kasih, Sayang! 💕</h1>
    <p>Karena ada kamu, dunia ini terasa lebih lembut dan hangat.</p>
    <div class="heart">💖</div>
    <p class="tag">“Setiap perhatianmu adalah alasan senyumku hari ini.”</p>
  </main>
</body>
</html>

3) Ucapan Ulang Tahun

Ucapan ultah + animasi balon mengapung dan confetti sederhana via JS.

Promo
<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Selamat Ulang Tahun, Cinta!</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    :root{ --bg:#fff0f5; --accent:#ff6699 }
    body{
      margin:0; padding:24px; min-height:100vh; text-align:center;
      background: radial-gradient(circle at 70% 20%, #fff, var(--bg) 65%);
      color:var(--accent); font-family:'Verdana', sans-serif; overflow:hidden;
    }
    h1{ font-size:50px; margin-top:32px; }
    p{ font-size:20px }
    .balloons{ font-size:100px; animation:float 3s ease-in-out infinite; margin:12px 0 }
    @keyframes float{ 0%{transform:translateY(0)} 50%{transform:translateY(-26px)} 100%{transform:translateY(0)} }
    .confetti span{
      position:absolute; top:-10vh; font-size:14px; animation:drop linear infinite;
    }
    @keyframes drop{ to{ transform:translateY(120vh) rotate(360deg); opacity:.2 } }
    .btn{
      border:0; background:var(--accent); color:#fff; padding:10px 18px; border-radius:36px; cursor:pointer;
      box-shadow:0 8px 20px rgba(255,102,153,.35); transition:.25s; margin-top:12px
    }
    .btn:hover{ transform:translateY(-2px) }
  </style>
</head>
<body>
  <h1>Selamat Ulang Tahun, Cinta! 🎂</h1>
  <p>Semoga harimu penuh kebahagiaan—seperti kamu memenuhi hatiku. 🎉</p>
  <div class="balloons">🎈🎈🎈</div>
  <button class="btn" id="btnKado">Buka Kado</button>

  <div class="confetti" id="confetti"></div>

  <script>
    // Confetti
    const confetti = document.getElementById('confetti');
    const icons = ['★','✿','✦','❀','♦','●'];
    for(let i=0;i<80;i++){
      const s = document.createElement('span');
      s.textContent = icons[Math.floor(Math.random()*icons.length)];
      s.style.left = Math.random()*100+'vw';
      s.style.color = ['#ff6699','#ff8ea8','#ffc0cb','#ffd1dc','#ff99cc'][Math.floor(Math.random()*5)];
      s.style.animationDuration = (5 + Math.random()*6)+'s';
      s.style.animationDelay = (Math.random()*3)+'s';
      confetti.appendChild(s);
    }
    // Kado
    document.getElementById('btnKado').addEventListener('click', ()=>{
      alert('Hadiah kecil: Doa-doaku untukmu sepanjang tahun ini 💝');
    });
  </script>
</body>
</html>

4) Permintaan Maaf

Permintaan maaf tulus + animasi goyangan dan tombol komitmen.

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Permintaan Maaf | Dari Hati</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    :root{ --bg:#eef7ff; --text:#ff69b4; --accent:#ff6347 }
    body{
      margin:0; min-height:100vh; display:grid; place-content:center;
      background:linear-gradient(180deg, var(--bg), #fff);
      font-family:'Tahoma', sans-serif; color:var(--text); text-align:center; padding:24px;
    }
    h1{ font-size:44px; margin:0 0 12px }
    p{ font-size:18px; margin:0 0 16px }
    .sorry{ font-size:86px; color:var(--accent); animation:wiggle 1s infinite }
    @keyframes wiggle{
      0%,100%{ transform:rotate(0) } 25%{ transform:rotate(10deg) } 50%{ transform:rotate(0) } 75%{ transform:rotate(-10deg) }
    }
    .btn{
      border:0; background:var(--text); color:#fff; padding:10px 18px; border-radius:12px; cursor:pointer;
      box-shadow:0 8px 18px rgba(255,105,180,.25); transition:.25s;
    }
    .btn:hover{ transform:translateY(-2px) }
    small{ color:#a10063 }
  </style>
</head>
<body>
  <main>
    <h1>Maafkan Aku, Sayang…</h1>
    <p>Aku menyesal. Boleh beri aku kesempatan untuk memperbaiki semuanya?</p>
    <div class="sorry">😢</div>
    <button class="btn" id="btnJanji">Aku Janji Berubah</button>
    <p><small>Janji ini kutulis supaya selalu kuingat.</small></p>
  </main>

  <script>
    document.getElementById('btnJanji').addEventListener('click', ()=>{
      alert('Aku janji lebih sabar, lebih peka, dan lebih mengutamakan kamu. 💖');
    });
  </script>
</body>
</html>

5) Tembak Gebetan

Interaktif lucu: tombol “Gamau” lari-lari kalau mau diklik.

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Mau Jadi Pacarku?</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    :root{ --bg:#fff7fb; --pink:#e91e63; --ok:#43a047; --no:#f4511e }
    body{
      margin:0; min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
      background:var(--bg); font-family:system-ui, -apple-system, Segoe UI, Roboto, sans-serif; color:#7a0040; text-align:center; overflow:hidden; padding:24px;
    }
    h1{ font-size:36px; margin:0 0 10px }
    p{ margin:0 0 18px }
    .board{ position:relative; width:min(560px, 92vw); height:260px; border-radius:20px; background:#fff; box-shadow:0 12px 28px rgba(233,30,99,.15); display:flex; align-items:center; justify-content:center; gap:16px; margin-top:8px }
    button{ border:0; padding:10px 16px; border-radius:12px; cursor:pointer; font-weight:600; transition:.2s }
    #mau{ background:var(--ok); color:#fff }
    #gamau{ background:var(--no); color:#fff; position:absolute; }
    #mau:hover{ transform:translateY(-2px) }
  </style>
</head>
<body>
  <h1>Mau nggak jadi pacarku? 😁✨</h1>
  <p>Pilih jujur ya… hati-hati tombolnya nakal 😜</p>

  <div class="board" id="board">
    <button id="mau">Mau! 💚</button>
    <button id="gamau">Gamau 🙅‍♀️</button>
  </div>

  <script>
    const board = document.getElementById('board');
    const gamau = document.getElementById('gamau');
    const mau = document.getElementById('mau');

    // Posisi awal "Gamau"
    const setRandom = () => {
      const pad = 8;
      const rect = board.getBoundingClientRect();
      const x = Math.random() * (rect.width - 100 - pad*2) + pad;
      const y = Math.random() * (rect.height - 44 - pad*2) + pad;
      gamau.style.left = x + 'px';
      gamau.style.top  = y + 'px';
    };
    setRandom();

    gamau.addEventListener('mouseenter', setRandom);
    gamau.addEventListener('click', setRandom);

    mau.addEventListener('click', ()=>alert('Yeay! Kamu resmi jadi kebahagiaanku! 💖'));
  </script>
</body>
</html>

6) Anniversary

Hitung mundur ke tanggal anniversary + kembang api ASCII sederhana.

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Happy Anniversary Kita!</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    :root{ --bg:#fffaf0; --accent:#d81b60 }
    body{
      margin:0; min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
      background:linear-gradient(180deg, #fff, var(--bg)); color:#7a0037; text-align:center; font-family:'Poppins',system-ui; padding:24px;
    }
    h1{ margin:4px 0 8px; font-size:42px; color:var(--accent) }
    .tgt{ font-weight:600; color:#b2004a }
    .count{ font-size:32px; margin:8px 0 18px }
    pre{
      background:#fff; padding:14px; border-radius:12px; box-shadow:0 10px 26px rgba(216,27,96,.12);
      margin:0; width:min(520px, 92vw); overflow:auto; text-align:left; color:#b2004a
    }
    small{ color:#9c0d56 }
  </style>
</head>
<body>
  <h1>Happy Anniversary 💍</h1>
  <p>Kita rayakan momen spesial ini bareng-bareng!</p>
  <p>Menuju tanggal <span class="tgt" id="targetStr">14-10-2025</span>:</p>
  <div class="count" id="count">-- hari -- jam -- menit -- detik</div>
  <pre id="fx">
(•‿•)  ✨
</pre>
  <small>PS: Setelah hitung mundur selesai, ada “kembang api” mini. 🎆</small>

  <script>
    // Set target anniversary (DD-MM-YYYY)
    const target = new Date(2025, 9, 14, 0, 0, 0); // 14 Oct 2025
    const countEl = document.getElementById('count');
    const fx = document.getElementById('fx');

    const fireFrames = [
`             *
      *               *
   *       *    *
 *   *    ✨   *     *
   *     *   *    *   `,
`     *         *      *
   *     ✨   *     *
 *    *    *     *     *
   *        *      *    `,
`  *    *        *
     *     *     ✨
 *       *    *       * `
    ];

    let i=0;
    setInterval(()=>{
      const now = new Date();
      const diff = target - now;
      if (diff <= 0){
        countEl.textContent = 'Selamat Anniversary! 💖';
        fx.textContent = fireFrames[i%fireFrames.length];
        i++;
        return;
      }
      const s = Math.floor(diff/1000);
      const d = Math.floor(s/86400);
      const h = Math.floor((s%86400)/3600);
      const m = Math.floor((s%3600)/60);
      const ss = s%60;
      countEl.textContent = `${d} hari ${h} jam ${m} menit ${ss} detik`;
      fx.textContent = fireFrames[i%fireFrames.length];
      i++;
    }, 1000);
  </script>
</body>
</html>

7) Valentine

Hujan hati turun dari atas layar, vibe Valentine yang lembut.

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Happy Valentine’s Day</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    :root{ --bg:#ffeef8; --text:#c2185b }
    body{
      margin:0; min-height:100vh; background:var(--bg); color:var(--text);
      font-family:'Segoe UI', Roboto, sans-serif; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; overflow:hidden; padding:24px;
    }
    h1{ font-size:44px; margin:0 0 8px }
    p{ margin:0 0 14px }
    .rain span{
      position:absolute; top:-5vh; font-size:18px; animation:fall linear infinite;
      opacity:.9;
    }
    @keyframes fall{ to{ transform:translateY(115vh); opacity:.1 } }
    .btn{
      border:0; background:#e91e63; color:#fff; padding:10px 18px; border-radius:40px; cursor:pointer; box-shadow:0 8px 20px rgba(233,30,99,.25);
    }
  </style>
</head>
<body>
  <h1>Happy Valentine’s Day 🌹</h1>
  <p>Kamu adalah paragraf terindah dalam cerita hidupku.</p>
  <button class="btn" id="btnLove">Peluk Virtual</button>
  <div class="rain" id="rain"></div>

  <script>
    const rain = document.getElementById('rain');
    const em = ['💖','💘','💕','💓','💗'];
    for(let i=0;i<60;i++){
      const s=document.createElement('span');
      s.textContent=em[Math.floor(Math.random()*em.length)];
      s.style.left=Math.random()*100+'vw';
      s.style.animationDuration=(4+Math.random()*6)+'s';
      s.style.animationDelay=(Math.random()*3)+'s';
      s.style.fontSize=(14+Math.random()*18)+'px';
      rain.appendChild(s);
    }
    document.getElementById('btnLove').addEventListener('click', ()=>alert('Peluk balik… erat banget! 🤗💞'));
  </script>
</body>
</html>

8) Pesan Rahasia

Tombol buka rahasia memunculkan modal (popup) berisi pengakuan manis.

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Pesan Rahasia untuk Kamu</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <style>
    :root{ --bg:#fdf7ff; --primary:#7b1fa2; --overlay:rgba(0,0,0,.5) }
    body{
      margin:0; min-height:100vh; display:grid; place-content:center;
      background: radial-gradient(circle at 50% 50%, #fff, var(--bg) 70%);
      color:#4a155f; font-family:'Inter',system-ui; text-align:center; padding:24px;
    }
    h1{ margin:0 0 6px }
    p{ margin:0 0 16px }
    .btn{
      border:0; background:var(--primary); color:#fff; padding:10px 18px; border-radius:12px; cursor:pointer;
      box-shadow:0 12px 24px rgba(123,31,162,.2);
    }
    .overlay{
      position:fixed; inset:0; background:var(--overlay); display:none; align-items:center; justify-content:center; padding:16px;
    }
    .modal{
      width:min(520px, 92vw); background:#fff; border-radius:16px; padding:20px; text-align:left;
      box-shadow:0 20px 40px rgba(0,0,0,.25); animation:pop .25s ease-out;
    }
    @keyframes pop{ from{ transform:scale(.92); opacity:0 } to{ transform:scale(1); opacity:1 } }
    .modal h2{ margin:0 0 8px; color:var(--primary) }
    .modal p{ color:#5b2c6f }
    .modal .actions{ display:flex; gap:8px; margin-top:14px; justify-content:flex-end }
    .ghost{ background:transparent; color:var(--primary); border:1px solid #e0c8f1 }
  </style>
</head>
<body>
  <main>
    <h1>Pesan Rahasia 💌</h1>
    <p>Ada sesuatu yang ingin kusampaikan, dari hati paling dalam.</p>
    <button class="btn" id="open">Buka Rahasia</button>
  </main>

  <div class="overlay" id="overlay" aria-hidden="true">
    <div class="modal" role="dialog" aria-modal="true">
      <h2>Untuk Kamu</h2>
      <p>Aku jatuh cinta pada cara kamu melihat dunia—dan caramu melihat aku di dalamnya. 💜</p>
      <div class="actions">
        <button class="ghost" id="later">Nanti aja</button>
        <button class="btn" id="ok">Peluk Aku</button>
      </div>
    </div>
  </div>

  <script>
    const overlay = document.getElementById('overlay');
    document.getElementById('open').onclick = ()=> overlay.style.display='flex';
    document.getElementById('later').onclick = ()=> overlay.style.display='none';
    document.getElementById('ok').onclick = ()=>{
      alert('Peluk hangat terkirim… 🤍'); overlay.style.display='none';
    };
    // Tutup dengan ESC
    document.addEventListener('keydown', e=>{ if(e.key==='Escape') overlay.style.display='none' });
  </script>
</body>
</html>

Bikin HTML Bucin di Website Sendiri, dong!

Membuat script HTML bucin 2025 itu mudah dan menyenangkan. Dengan HTML, CSS, dan sedikit JavaScript, pesan sederhanamu bisa jadi interaktif dan romantis. Cukup pilih tema, ubah warna atau animasi, lalu bagikan ke si Dia.

Contoh-contoh di atas bisa jadi inspirasi untuk ulang tahun, anniversary, hingga sekadar ucapan manis sehari-hari. Biarkan kode sederhana jadi bahasa cinta yang unik dan personal, dan bikin doi kamu tersenyum seharian.

Supaya lebih spesial, pastikan halaman HTML bucin-mu aman untuk diakses sama dia dengan menggunakan layanan cloud dan hosting dari Qwords. Layanan hosting Qwords memastikan halaman kamu aman, cepat, dan mudah diakses kapan saja.

Jadi, tunggu apa lagi?

 

Promo
Almer Ulul Al Bab
Almer Ulul Al Bab Almer is an experienced content writer with a strong understanding of servers, websites, SEO, email systems, and related technologies.
Almer Ulul Al Bab Almer is an experienced content writer with a strong understanding of servers, websites, SEO, email systems, and related technologies.
Untuk Sahabat Qwords yang terbiasa menggunakan bahasa pemograman, mungkin sudah tidak asing dengan JavaScript. Tetapi, untuk kamu yang belum familiar dan paham tentang apa...
Zulfa Naurah Nadzifah Zulfa Naurah Nadzifah
3 min read
Apakah Sahabat Qwords pernah penasaran dengan apa itu Google AI Overview yang kini banyak diperbincangkan dan beberapa kali disebut-sebut sebagai musuh para writer? Nah,...
Zulfa Naurah Nadzifah Zulfa Naurah Nadzifah
4 min read
Apakah saat ini Sahabat Qwords sedang mencari domain yang cocok untuk membuat portofoliomu sendiri, khususnya portofolio fotografi? Nah, kamu sedang membaca artikel yang tepat....
Zulfa Naurah Nadzifah Zulfa Naurah Nadzifah
3 min read

2 Replies to “8 Contoh Script HTML Bucin 2025,…”

    1. Halo Kak Rosana,

      yuk coba praktikkan cara di atas! Share gimana tanggapan pacarnya juga ya 😉

Leave a Reply

Your email address will not be published. Required fields are marked *

//