Template Bootstrap de carte statistiques avec barre de progression horizontale et métriques clés.
<!doctype html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<meta name="copyright" content="MEZGANI Said" />
<meta name="author" content="AngularForAll" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" />
<title>Carte Count bootstrap 4 | AngularForAll</title>
<style>
body {
background-color: #f8f9fc;
padding: 40px;
font-family: 'Segoe UI', sans-serif;
}
.quota-card {
border: none;
border-radius: 12px;
background: #fff;
box-shadow: 0 0.15rem 1.75rem 0 rgba(58, 59, 69, 0.1);
transition: all 0.3s ease;
}
.quota-card:hover {
transform: translateY(-5px);
}
.quota-card .card-header-quota {
padding: 1.25rem;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #f2f4f9;
}
.quota-card .quota-title {
font-size: 0.9rem;
font-weight: 800;
text-transform: uppercase;
color: #4e73df;
margin: 0;
}
/* Style de la Progress Bar */
.quota-card .progress-container {
padding: 1.5rem;
}
.quota-card .progress {
height: 12px;
border-radius: 10px;
background-color: #eaecf4;
overflow: visible; /* Pour permettre aux tooltips ou labels de dépasser si besoin */
margin-bottom: 10px;
}
.quota-card .progress-bar-animated-slow {
animation: progress-bar-stripes 2s linear infinite;
}
.quota-card .quota-info {
display: flex;
justify-content: space-between;
font-size: 0.85rem;
font-weight: 600;
margin-bottom: 5px;
}
.quota-card .text-limit {
color: #858796;
}
.quota-card .text-current {
font-weight: 700;
}
/* Couleurs personnalisées directes */
.quota-card .bg-success-custom {
background-color: #1cc88a !important;
}
.quota-card .bg-warning-custom {
background-color: #f6c23e !important;
}
.quota-card .bg-danger-custom {
background-color: #e74a3b !important;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<!-- CARD USERS (Proche de la limite) -->
<div class="col-md-6 mb-4">
<div class="quota-card">
<div class="card-header-quota">
<h3 class="quota-title">
<i class="fas fa-users mr-2"></i>
Quota Utilisateurs
</h3>
<span class="badge badge-warning text-white">Attention</span>
</div>
<div class="progress-container">
<div class="quota-info">
<span class="text-current text-dark">850 / 1,000 Utilisateurs</span>
<span class="text-limit">85% utilisé</span>
</div>
<div class="progress">
<div
class="progress-bar progress-bar-striped progress-bar-animated bg-warning-custom"
role="progressbar"
style="width: 85%"
aria-valuenow="85"
aria-valuemin="0"
aria-valuemax="100"
title="850 Utilisateurs sur 1,000"
></div>
</div>
<p class="small text-muted mt-2 mb-0">
Vous approchez de la limite de votre forfait (1,000 max).
</p>
</div>
</div>
</div>
<!-- CARD MODULES (Dépassé) -->
<div class="col-md-6 mb-4">
<div class="quota-card">
<div class="card-header-quota">
<h3 class="quota-title" style="color: #e74a3b">
<i class="fas fa-cubes mr-2"></i>
Quota Modules
</h3>
<span class="badge badge-danger">Quotas Dépassés</span>
</div>
<div class="progress-container">
<div class="quota-info">
<span class="text-current text-danger">12 / 10 Modules</span>
<span class="text-limit">120% utilisé</span>
</div>
<div class="progress">
<div
class="progress-bar progress-bar-striped progress-bar-animated bg-danger-custom"
role="progressbar"
style="width: 100%"
aria-valuenow="100"
aria-valuemin="0"
aria-valuemax="100"
title="10 Modules maximum autorisés"
></div>
</div>
<p class="small text-danger mt-2 mb-0">
<strong>Action requise :</strong>
Veuillez supprimer des modules ou mettre à jour votre offre.
</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>