Project HTML CSS JavaScript Responsive Card Slider dengan SwiperJS

Project HTML CSS JavaScript Responsive Card Slider dengan SwiperJS

Project: Membuat Responsive Card Slider dengan HTML, CSS & JavaScript (SwiperJS)

Apa Itu SwiperJS?

SwiperJS adalah library JavaScript untuk membuat slider/carousel yang:
✅ Responsif di semua perangkat
✅ Support touch gesture (geser di mobile)
✅ Punya fitur autoplay, loop, pagination
✅ Ringan dan mudah dikustomisasi

Langkah 1: Struktur Project

Buat folder dengan file berikut:

📂 card-slider/
├── 📄 index.html
├── 📄 style.css
└── 📄 script.js

Langkah 2: Kode HTML Lengkap

Gunakan gambar dari Unsplash (online) agar tidak perlu download:

html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Card Slider dengan SwiperJS - Azroi</title>
  <!-- SwiperJS CSS -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css">
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="container swiper">
    <div class="wrapper">
      <div class="card-list swiper-wrapper">
        <!-- Card 1 -->
        <div class="card swiper-slide">
          <div class="card-image">
            <img src="https://images.unsplash.com/photo-1541462608143-67571c6738dd?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=800&q=80" alt="UI Design">
            <div class="card-tag">Design</div>
          </div>
          <div class="card-content">
            <h3 class="card-title">Trend UI Modern 2025</h3>
            <p class="card-text">Pelajari tren desain terbaru seperti neumorphism dan glassmorphism.</p>
            <div class="card-footer">
              <div class="card-profile">
                <img src="https://images.unsplash.com/photo-1534528741775-53994a69daeb?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=800&q=80" alt="Author">
                <div class="card-profile-info">
                  <span class="card-profile-name">Jane Doe</span>
                  <span class="card-profile-role">UI Designer</span>
                </div>
              </div>
              <a href="#" class="card-button">Read More</a>
            </div>
          </div>
        </div>

        <!-- Card 2 -->
        <div class="card swiper-slide">
          <div class="card-image">
            <img src="https://images.unsplash.com/photo-1555066931-4365d14bab8c?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=800&q=80" alt="Programming">
            <div class="card-tag">Coding</div>
          </div>
          <div class="card-content">
            <h3 class="card-title">Belajar JavaScript 2025</h3>
            <p class="card-text">Panduan lengkap belajar JavaScript dari dasar hingga mahir.</p>
            <div class="card-footer">
              <div class="card-profile">
                <img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=800&q=80" alt="Author">
                <div class="card-profile-info">
                  <span class="card-profile-name">John Smith</span>
                  <span class="card-profile-role">Web Developer</span>
                </div>
              </div>
              <a href="#" class="card-button">Read More</a>
            </div>
          </div>
        </div>

        <!-- Card 3 -->
        <div class="card swiper-slide">
          <div class="card-image">
            <img src="https://images.unsplash.com/photo-1517694712202-14dd9538aa97?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=800&q=80" alt="AI">
            <div class="card-tag">AI</div>
          </div>
          <div class="card-content">
            <h3 class="card-title">Kecerdasan Buatan</h3>
            <p class="card-text">Bagaimana AI mengubah dunia teknologi di tahun 2025.</p>
            <div class="card-footer">
              <div class="card-profile">
                <img src="https://images.unsplash.com/photo-1438761681033-6461ffad8d80?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=800&q=80" alt="Author">
                <div class="card-profile-info">
                  <span class="card-profile-name">Maria Garcia</span>
                  <span class="card-profile-role">AI Researcher</span>
                </div>
              </div>
              <a href="#" class="card-button">Read More</a>
            </div>
          </div>
        </div>
      </div>

      <!-- Pagination & Navigation -->
      <div class="swiper-pagination"></div>
      <div class="swiper-button-next"></div>
      <div class="swiper-button-prev"></div>
    </div>
  </div>

  <!-- SwiperJS Script -->
  <script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
  <script src="script.js"></script>
</body>
</html>

Langkah 3: Kode CSS Lengkap

css
/* style.css */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&display=swap');

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Inter', sans-serif;
}

body {
  background: linear-gradient(#f5f7fa, #e4e8f0);
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.wrapper {
  overflow: hidden;
  position: relative;
}

.card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  transition: transform 0.3s ease;
  margin: 10px;
}

.card:hover {
  transform: translateY(-10px);
}

.card-image {
  position: relative;
}

.card-image img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
}

.card-tag {
  position: absolute;
  top: 15px;
  left: 15px;
  background: rgba(255, 255, 255, 0.9);
  padding: 5px 15px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  color: #6366f1;
}

.card-content {
  padding: 20px;
}

.card-title {
  font-size: 18px;
  margin-bottom: 10px;
  color: #333;
}

.card-text {
  font-size: 14px;
  color: #666;
  margin-bottom: 15px;
}

.card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 15px;
  border-top: 1px solid #eee;
}

.card-profile {
  display: flex;
  align-items: center;
}

.card-profile img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  margin-right: 10px;
  object-fit: cover;
}

.card-profile-name {
  font-size: 14px;
  font-weight: 600;
}

.card-profile-role {
  font-size: 12px;
  color: #888;
}

.card-button {
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  color: white;
  padding: 8px 16px;
  border-radius: 20px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  transition: all 0.3s;
}

.card-button:hover {
  opacity: 0.9;
  transform: translateY(-2px);
}

/* Swiper Navigation */
.swiper-button-next,
.swiper-button-prev {
  color: #6366f1 !important;
  background: rgba(255, 255, 255, 0.8);
  width: 40px !important;
  height: 40px !important;
  border-radius: 50%;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.swiper-button-next::after,
.swiper-button-prev::after {
  font-size: 18px !important;
}

.swiper-pagination-bullet {
  background: #ccc !important;
  opacity: 1 !important;
}

.swiper-pagination-bullet-active {
  background: #6366f1 !important;
}

/* Responsive */
@media (max-width: 768px) {
  .swiper-button-next,
  .swiper-button-prev {
    display: none !important;
  }
}

Langkah 4: Kode JavaScript Lengkap

javascript
// script.js
document.addEventListener('DOMContentLoaded', function() {
  const swiper = new Swiper('.wrapper', {
    // Optional parameters
    loop: true,
    slidesPerView: 1,
    spaceBetween: 20,

    // Autoplay
    autoplay: {
      delay: 5000,
      disableOnInteraction: false,
    },

    // Pagination
    pagination: {
      el: '.swiper-pagination',
      clickable: true,
    },

    // Navigation arrows
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },

    // Responsive breakpoints
    breakpoints: {
      640: {
        slidesPerView: 2,
      },
      1024: {
        slidesPerView: 3,
      },
    }
  });
});

 

Fitur yang didapat:
✔️ Responsif (mobile, tablet, desktop)
✔️ Autoplay & loop
✔️ Navigation arrows dan pagination
✔️ Efek hover card


Kesimpulan

Anda telah berhasil membuat card slider modern dengan:

  1. HTML untuk struktur
  2. CSS untuk styling
  3. JavaScript (SwiperJS) untuk interaksi

Tips Lanjutan:

  • Gunakan SwiperJS Documentation untuk eksplorasi fitur lain.
  • Implementasikan di proyek React/Vue jika perlu.
 

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

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