Filter Cards using HTML, CSS JavaScript & Bootstrap with free source code

filter cards,power bi filter cards,bootstrap filter cards,bootstrap 5 filter cards,domo filter cards,cytospin filter cards,twilight filter cards,react filter cards,no filter cards,react search filter cards,miro filter cards by tag,how to filter anki cards by tag,angular filter cards,filter rules,do you need a paper filter with a permanent filter,can i use a paper filter in a permanent filter,angular material filter cards,cards against humanity filter,anki filter unsuspended cards,anki filter new cards,anki filter mature cards,cards against humanity tiktok filter,cards against humanity online filter,what are filter cards in power bi,filter cards bootstrap,filter cards power bi,trello filter cards by date,jquery filter bootstrap cards,joint filter business cards,filter tip business cards,pool filter business cards,filter selection cards power bi,filter cartridge color codes,bootstrap 4 filter cards,boom cards social filter,filter cards cytospin,filter credit cards,hearthstone filter craftable cards,hearthstone filter changed cards,cartridge filter function,pancake filter vs cartridge,cartridge filter near me,cartridge filter capacity,cartridge filter material,hearthstone changed cards filter,coffee filter flowers cards,ez single cytofunnel with white filter cards,what is c filter,what is a ccv filter,hearthstone filter disenchantable cards,how do you filter cards in trello,is a cartridge filter better than a de filter,list filter in dart,epredia filter cards,paper filter vs reusable filter,can i use an index card as a filter,excel filter wildcards,excel filter function wildcards,e cards reviews,e card rules,filter cartridge near me,filter cards for cytospin,filter for cards,search filter for cards,hearthstone filter for nerfed cards,jira print cards from filter,fir filter types,f. vs ff,what is a flow filter,hearthstone filter golden cards,no filter greeting cards,filter element vs filter cartridge,red filter vs yellow filter,g series filter price,gobe filters review,go filter list,g series carbon filter price,filter cards hearthstone,filter for nerfed cards hearthstone,html filter cards,how to filter cards on trello,how to filter cards,hearthstone filter nerfed cards,how to filter unsuspended cards anki,filter cards in power bi,filter cards in javascript,filter cards in trello,filter cards in hearthstone,what is filter cards in power bi,how can you filter the list of transactions,filter cards javascript,filter cards using javascript,jquery filter cards,js filter cards,jira filter cards,javascript filter cards,k@n filter,k&n filter carb sticker,leaf filter car,filt-a-carb cartridge,leaf filter ct,filter mature cards,mtg filter cards,tiktok tarot cards filter meaning,filter messages meaning,mtg cards that filter mana,ef150 filter instructions,what is mcuv filter,what is m derived filter,new circuit filter list,filter on cards power bi,filter out vs filter in,filter paper cards,playing cards filter photoshop,what is cp filter,pi filter vs rc filter,q-filter,q filter guitar,filter cards react,r filter is in list,filtered spend cards,shandon filter cards,shandon filter cards thermo,search filter cards,shandon cytospin filter cards,social filter task cards,filter card tableau,filter table by list of values,trello filter cards,thermo scientific shandon filter cards,how to filter nerfed cards hearthstone,filter cards ui,web filter list,what is an all pass filter,ublock filter list,vue filter cards,vuetify filter cards,filter vs non filter pipette tips,flow filter vs normal filter,pre filter vs bag filter,filter cards with javascript,x files cards,x files cards collection,x files cards value,x ray filter,z-card,z flip 3 carbon fiber case,0 filter,no filter card game,0.5 filter,1 filter,1/f filter,2 filters,2 filters excel,3 filters,3m filter/cartridge guide,3 stage water filter cartridges,4 filter vs 1,4 types of fir filters,four types of filters,6 filter,6 filter wrench,series 6 filters,6 filter box,6 in carbon filter,7 filter media cup,code 7 filter connection,7 filter sock,8-bit filter,8 in carbon filter,filter 8,82-0 filter,9 3 4 water filter cartridge,9-line card

Social Links

HTML
<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
  <meta charset="utf-8" />
  <title>Filterable Image Gallery Bootstrap - By CodingAyush</title>
  <link rel="stylesheet" href="style.css" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" />
  <script src="script.js" defer></script>
</head>

<body>
  <div class="container">
    <!-- Images Filter Buttons Section -->
    <div class="row mt-5" id="filter-buttons">
      <div class="col-12 text-center">
        <button class="btn mb-2 me-1 active" data-filter="all">Show all</button>
        <button class="btn mb-2 mx-1" data-filter="nature">Nature</button>
        <button class="btn mb-2 mx-1" data-filter="cars">Cars</button>
        <button class="btn mb-2 mx-1" data-filter="people">People</button>
      </div>
    </div>

    <!-- Filterable Images / Cards Section -->
    <div class="row px-2 mt-4 gap-3 d-flex align-items-center justify-content-center" id="filterable-cards">
      <div class="card p-0" data-name="nature">
        <img src="images/nature-1.jpg" alt="img" />
        <div class="card-body">
          <h6 class="card-title">Mountains</h6>
          <p class="card-text">Lorem ipsum dolor..</p>
        </div>
      </div>
      <div class="card p-0" data-name="nature">
        <img src="images/nature-2.jpg" alt="img" />
        <div class="card-body">
          <h6 class="card-title">Lights</h6>
          <p class="card-text">Lorem ipsum dolor..</p>
        </div>
      </div>
      <div class="card p-0" data-name="nature">
        <img src="images/nature-3.jpg" alt="img" />
        <div class="card-body">
          <h6 class="card-title">Nature</h6>
          <p class="card-text">Lorem ipsum dolor..</p>
        </div>
      </div>
      <div class="card p-0" data-name="cars">
        <img src="images/car-1.jpg" alt="img" />
        <div class="card-body">
          <h6 class="card-title">Retro</h6>
          <p class="card-text">Lorem ipsum dolor..</p>
        </div>
      </div>
      <div class="card p-0" data-name="cars">
        <img src="images/car-2.jpg" alt="img" />
        <div class="card-body">
          <h6 class="card-title">Fast</h6>
          <p class="card-text">Lorem ipsum dolor..</p>
        </div>
      </div>
      <div class="card p-0" data-name="cars">
        <img src="images/car-3.jpg" alt="img" />
        <div class="card-body">
          <h6 class="card-title">Classic</h6>
          <p class="card-text">Lorem ipsum dolor..</p>
        </div>
      </div>
      <div class="card p-0" data-name="people">
        <img src="images/people-1.jpg" alt="img" />
        <div class="card-body">
          <h6 class="card-title">Men</h6>
          <p class="card-text">Lorem ipsum dolor..</p>
        </div>
      </div>
      <div class="card p-0" data-name="people">
        <img src="images/people-2.jpg" alt="img" />
        <div class="card-body">
          <h6 class="card-title">Girl</h6>
          <p class="card-text">Lorem ipsum dolor..</p>
        </div>
      </div>
    </div>
  </div>
</body>

</html>
CSS
/* Import Google font - Poppins */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap');

* {
  font-family: "Poppins", sans-serif;
}

body {
  background: #11131e !important;
}

body .container {
  max-width: 1100px;
}

#filter-buttons button {
  border-radius: 3px;
  background: #fff;
  border-color: transparent;
}

#filter-buttons button:hover {
  background: #ddd;
}

#filter-buttons button.active {
  color: #fff;
  background: #6c757d;
}

#filterable-cards .card {
  width: 15rem;
  border: 2px solid transparent;
  overflow: hidden;
transition: all 0.3s ease;
}

#filterable-cards .card.hide {
  filter:blur(5px);
  opacity:0.5;
}

@media (max-width: 600px) {
  #filterable-cards {
    justify-content: center;
  }

  #filterable-cards .card {
    width: calc(100% / 2 - 10px);
  }
}
JS
// Select relevant HTML elements
const filterButtons = document.querySelectorAll("#filter-buttons button");
const filterableCards = document.querySelectorAll("#filterable-cards .card");

// Function to filter cards based on filter buttons
const filterCards = (e) => {
    document.querySelector("#filter-buttons .active").classList.remove("active");
    e.target.classList.add("active");
    filterableCards.forEach(card => {
        // show the card if it matches the clicked filter or show all cards if "all" filter is clicked
        if (card.dataset.name === e.target.dataset.filter || e.target.dataset.filter === "all") {
            return card.classList.replace("hide", "show");
        }
        card.classList.add("hide");
    });
}

filterButtons.forEach(button => button.addEventListener("click", filterCards));

Post a Comment

Previous Post Next Post