Timer
Le cercle autour est bizarre, mais vous voyez l'idée !
Il faudrait donc que le créateur puisse personnaliser la couleur du cercle (qui sera la même que les chiffres)
Et je sais pas si ce code peut vous aider, mais c'est celui qui a permis de générer le timer (Merci chatgpt)

import React, { useState, useEffect } from 'react';
export default function QuizTimer() {
const [time, setTime] = useState(10);
const [isActive, setIsActive] = useState(false);
const [isComplete, setIsComplete] = useState(false);
useEffect(() => {
let interval = null;
if (isActive && time > 0) {
interval = setInterval(() => {
setTime(prevTime => {
if (prevTime <= 1) {
setIsActive(false);
setIsComplete(true);
return 0;
}
return prevTime - 1;
});
}, 1000);
}
return () => {
if (interval) clearInterval(interval);
};
}, [isActive, time]);
const startTimer = () => {
setIsActive(true);
setIsComplete(false);
};
const resetTimer = () => {
setTime(10);
setIsActive(false);
setIsComplete(false);
};
const getColorClass = () => {
if (isComplete) return 'text-red-600';
if (time <= 3) return 'text-red-500';
if (time <= 5) return 'text-orange-500';
return 'text-blue-600';
};
const getFillColor = () => {
if (isComplete) return '#dc2626';
if (time <= 3) return '#ef4444';
if (time <= 5) return '#f97316';
return '#2563eb';
};
// Calculer l'angle pour le camembert (360° = 10 secondes)
const angle = (time / 10) * 360;
// Créer le chemin SVG pour le camembert
const createPieSlice = (angle) => {
const radius = 100;
const centerX = 120;
const centerY = 120;
// Commencer du haut (12 heures)
const startAngle = -90;
const endAngle = startAngle + angle;
const startRad = (startAngle * Math.PI) / 180;
const endRad = (endAngle * Math.PI) / 180;
const x1 = centerX + radius * Math.cos(startRad);
const y1 = centerY + radius * Math.sin(startRad);
const x2 = centerX + radius * Math.cos(endRad);
const y2 = centerY + radius * Math.sin(endRad);
const largeArc = angle > 180 ? 1 : 0;
return `M ${centerX} ${centerY} L ${x1} ${y1} A ${radius} ${radius} 0 ${largeArc} 1 ${x2} ${y2} Z`;
};
return (
<div className="flex flex-col items-center justify-center min-h-screen bg-gradient-to-br from-purple-100 to-blue-100 p-8">
<div className="bg-white rounded-3xl shadow-2xl p-12 max-w-md w-full">
<h1 className="text-3xl font-bold text-center mb-8 text-gray-800">
Timer de Quiz
</h1>
<div className="relative w-64 h-64 mx-auto mb-8 flex items-center justify-center">
<svg className="absolute top-0 left-0 w-full h-full" viewBox="0 0 240 240">
{/* Cercle de fond */}
<circle
cx="120"
cy="120"
r="100"
fill="#e5e7eb"
/>
{/* Camembert qui se réduit */}
<path
d={createPieSlice(angle)}
fill={getFillColor()}
className="transition-all duration-1000 ease-linear"
/>
{/* Cercle intérieur blanc */}
<circle
cx="120"
cy="120"
r="70"
fill="white"
/>
</svg>
<div className={`text-7xl font-bold ${getColorClass()} transition-all duration-300 z-10`}>
{time}
</div>
</div>
{isComplete && (
<div className="text-center mb-6 animate-bounce">
<p className="text-2xl font-bold text-red-600">Temps écoulé !</p>
</div>
)}
<div className="flex gap-4 justify-center">
{!isActive && !isComplete && (
<button
onClick={startTimer}
className="bg-green-500 hover:bg-green-600 text-white font-bold py-3 px-8 rounded-xl transition-all duration-200 transform hover:scale-105 shadow-lg"
>
Démarrer
</button>
)}
{(isActive || isComplete) && (
<button
onClick={resetTimer}
className="bg-gray-500 hover:bg-gray-600 text-white font-bold py-3 px-8 rounded-xl transition-all duration-200 transform hover:scale-105 shadow-lg"
>
Réinitialiser
</button>
)}
</div>
<div className="mt-8 text-center text-sm text-gray-600">
<p>Le timer compte de 10 à 0 secondes</p>
</div>
</div>
</div>
);
}
pastel




select

Blocs formation
Fond
#f4fee3
Fond
#c3edef
Fond
#caf2ff
Couverture
75D7CB
Texte
#dafff6
Fond
90F4E7
Fond
#f1fcfe
Fond
#effdf4
Fond
DEF5EA
Fond
#cdeddf
Fond
#ccffe5
Fond
FFDCC7
Fond
FDE3E1
Fond
FDF3EB
Fond
#ffebde
Fond
#ffdfcb
Fond
#fcd9ba
Fond
FFB787
Fond
FF9184
Fond
FFDCC7

Fond
#d9d4ff
Fond
#ecf0ff
Fond
#f9f2ff
Fond
#ebedff
Fond
#f9f0ff
Fond
EAEAFF
Fond
#ede7fd
Fond
#baa1fa
Fond
#fdffd0
Fond
#ffff99
🎨 Couleurs quiz mandareen
Couverture
75D7CB
Texte
006A62
Fond
90F4E7
Couverture
FFB787
Texte
8E4E1B
Fond
FFDCC7
Couverture
FFB1C0
Texte
924759
Fond
FFD9DF
Couverture
B51458
Texte
312512
Fond
F0C1BF
Couverture
Texte
Fond
Couverture
Texte
Fond
Couverture
Texte
Fond
Couverture
Texte
Fond
Couverture
Texte
Fond
Couverture
Texte
Fond
🤩 Les sites que j'aime bien
Je trouvais que le bleu (des boutons) était un peu froid, je préfère les tons violets
Bzh tandemRien de fou, mais je trouve ça propre, avec les animations qui rajoutent un côté fun, j'aime leurs dégradés


Le gris en fond, le noir/bleu pour l'écriture Tenir compte du screen ci dessous, pas de leur landing page

Minimaliste, clean, j'aime
AlanJ'aime bien ce qui se passe quand on clique sur les champs, j'aime bien l'aspect des filtres, le bouton retour, c'est fin


C'est frais et dynamique
J'aime bien l'émoji animé (bon, le leur est dégueulasse), mais c'est une idée pour gamifier Kweez
C'est épuré, propre, fluide
Pas mal d'inspirations qui peuvent vous servir
🧩 Exemples de quiz
👀 Inspi pages de vente
Ajouter un élément / Drag and drop









Backgrounds

Bas de page

Cancel, delete, etc








Création du compte


Dashboards

Didacticiels
Dropdowns


Emojis / icones PNG








Etiquettes









































































































































Facturation

Hover



Icone profil

Inputs





Login






Menus
Notifications


Pages



Upgrade

Scroll

Tooltips



Couleurs blocs formation
Couleurs notion

















COULEURS









































Rouge



















Violet









































Jaune orange














Vert

















































Bleu



















































Gris






























Noir
TEST
TEST

























Dégradés
















GIF

Popup
Dropdown
Coupons


Notifications


Valider


La couleur du tick change en fonction du fond -->



Icones SAAS
Flèches




Supprimer
Party - Magic
Étoiles


Preuve sociale




Notification

Toggle buttons





Entrepreneurs

DIVERS








Entrepreneurs

Pages


