<div class="container my-5">
  <h2 class="text-center mb-4 fw-bold">🌟 Jugadores Destacados</h2>
  <div class="row" id="players-container"></div>
</div>
body {
  font-family: 'Segoe UI', sans-serif;
  background: #f8f9fa;
}

.card {
  border: none;
  transition: transform 0.2s;
   background-color: #f8f9fa;
}

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

.player-img {
  object-fit: cover;
   -webkit-mask-image: linear-gradient(black 90%, transparent);
}

.card-body {
  background: #f8f9fa;
}
const getPlayers = async () => {
  try {
    const res = await fetch("https://devsapihub.com/api-players");
    const data = await res.json();

    const container = document.getElementById("players-container");

    data.forEach(player => {
      const card = document.createElement("div");
      card.className = "col-12 col-sm-6 col-md-4 col-lg-3 mb-4";
      card.innerHTML = `
        <div class="card h-100">
          <img src="${player.imgSrc}" class="card-img-top player-img" alt="${player.name}">
          <div class="card-body d-flex flex-column mt-4">
            <h5 class="card-title">${player.name}</h5>
            <small class="text-muted">${player.number}</small>
            <p class="mb-1"><strong>Posición:</strong> ${player.position}</p>
            <p class="mb-1"><strong>Estadísticas:</strong> ${player.stats}</p>
            <p class="mb-1"><strong>Equipo:</strong> ${player.teamName}</p>
            <p class="text-muted mt-auto">${player.info}</p>
          </div>
        </div>
      `;
      container.appendChild(card);
    });

  } catch (error) {
    console.error("Error al obtener los jugadores:", error);
  }
};

getPlayers();
Run Pen

External CSS

  1. https://cdn.jsdelivr.net/npm/bootstrap@5.3.5/dist/css/bootstrap.min.css

External JavaScript

This Pen doesn't use any external JavaScript resources.