diff --git a/components/GameScreen.tsx b/components/GameScreen.tsx index dff3178..111e7d8 100644 --- a/components/GameScreen.tsx +++ b/components/GameScreen.tsx @@ -31,7 +31,7 @@ export const GameScreen: React.FC = ({ // Timer styling logic const isUrgent = timeLeft < 5 && timeLeft > 0; const timerBorderColor = isUrgent ? 'border-red-500' : 'border-white'; - const timerTextColor = isUrgent ? 'text-red-500' : 'text-[#46178f]'; + const timerTextColor = isUrgent ? 'text-red-500' : 'text-theme-primary'; const timerAnimation = isUrgent ? 'animate-ping' : ''; return ( @@ -123,7 +123,7 @@ export const GameScreen: React.FC = ({ {isClient && hasAnswered && ( = ({ onGenerate, onCreateManual, on className="bg-white text-gray-900 p-8 rounded-[2rem] shadow-[0_10px_0_rgba(0,0,0,0.1)] max-w-md w-full border-4 border-white/50" >
-
+
-

Kaboot

+

Kaboot

The AI Quiz Party

@@ -65,7 +65,7 @@ export const Landing: React.FC = ({ onGenerate, onCreateManual, on placeholder="Topic (e.g. 'Space')" value={topic} onChange={(e) => setTopic(e.target.value)} - className="w-full p-4 text-xl font-bold border-2 border-gray-200 rounded-2xl focus:border-[#46178f] focus:ring-4 focus:ring-[#46178f]/20 outline-none transition-all placeholder:font-medium text-center" + className="w-full p-4 text-xl font-bold border-2 border-gray-200 rounded-2xl focus:border-theme-primary focus:ring-4 focus:ring-theme-primary/20 outline-none transition-all placeholder:font-medium text-center" disabled={isLoading} /> @@ -97,14 +97,14 @@ export const Landing: React.FC = ({ onGenerate, onCreateManual, on placeholder="Game PIN" value={pin} onChange={(e) => setPin(e.target.value)} - className="w-full p-4 text-xl font-bold border-2 border-gray-200 rounded-2xl focus:border-[#46178f] focus:ring-4 focus:ring-[#46178f]/20 outline-none text-center" + className="w-full p-4 text-xl font-bold border-2 border-gray-200 rounded-2xl focus:border-theme-primary focus:ring-4 focus:ring-theme-primary/20 outline-none text-center" /> setName(e.target.value)} - className="w-full p-4 text-xl font-bold border-2 border-gray-200 rounded-2xl focus:border-[#46178f] focus:ring-4 focus:ring-[#46178f]/20 outline-none text-center" + className="w-full p-4 text-xl font-bold border-2 border-gray-200 rounded-2xl focus:border-theme-primary focus:ring-4 focus:ring-theme-primary/20 outline-none text-center" /> @@ -89,7 +89,7 @@ export const Lobby: React.FC = ({ quizTitle, players, gamePin, role, initial={{ scale: 0.5 }} animate={{ scale: 1 }} transition={{ type: 'spring', bounce: 0.6 }} - className="bg-white text-[#46178f] p-8 rounded-[2rem] shadow-[0_10px_0_rgba(0,0,0,0.1)] mb-8" + className="bg-white text-theme-primary p-8 rounded-[2rem] shadow-[0_10px_0_rgba(0,0,0,0.1)] mb-8" > diff --git a/components/Podium.tsx b/components/Podium.tsx index 3f661f2..e1d4bd1 100644 --- a/components/Podium.tsx +++ b/components/Podium.tsx @@ -88,7 +88,7 @@ export const Podium: React.FC = ({ players, onRestart }) => { diff --git a/components/QuizCreator.tsx b/components/QuizCreator.tsx index 3018663..b9fb968 100644 --- a/components/QuizCreator.tsx +++ b/components/QuizCreator.tsx @@ -59,7 +59,7 @@ export const QuizCreator: React.FC = ({ onFinalize, onCancel } return (
-
+

Create Quiz

Build your masterpiece

@@ -83,7 +83,7 @@ export const QuizCreator: React.FC = ({ onFinalize, onCancel } type="text" value={title} onChange={(e) => setTitle(e.target.value)} - className="w-full p-4 border-4 border-gray-200 rounded-2xl text-2xl font-bold focus:border-[#46178f] outline-none transition-colors" + className="w-full p-4 border-4 border-gray-200 rounded-2xl text-2xl font-bold focus:border-theme-primary outline-none transition-colors" placeholder="e.g., The Ultimate Trivia" />
@@ -92,7 +92,7 @@ export const QuizCreator: React.FC = ({ onFinalize, onCancel } {questions.map((q, idx) => (
- + {idx + 1} {q.text} diff --git a/components/Scoreboard.tsx b/components/Scoreboard.tsx index 037bca9..3833449 100644 --- a/components/Scoreboard.tsx +++ b/components/Scoreboard.tsx @@ -52,7 +52,7 @@ export const Scoreboard: React.FC = ({ players, onNext, isHost, dataKey="score" position="right" offset={15} - style={{ fontSize: '24px', fontWeight: '900', fill: '#46178f', fontFamily: 'Fredoka' }} + style={{ fontSize: '24px', fontWeight: '900', fill: 'var(--theme-primary)', fontFamily: 'Fredoka' }} /> @@ -63,7 +63,7 @@ export const Scoreboard: React.FC = ({ players, onNext, isHost, {isHost ? ( diff --git a/constants.ts b/constants.ts index d0606dc..ea4f964 100644 --- a/constants.ts +++ b/constants.ts @@ -5,8 +5,8 @@ export const COLORS = { blue: 'bg-blue-600', yellow: 'bg-yellow-600', green: 'bg-green-600', - purple: 'bg-[#46178f]', - purpleLight: 'bg-[#864cbf]', + purple: 'bg-theme-primary', + purpleLight: 'bg-theme-primary/70', }; export const SHAPES = { @@ -25,9 +25,8 @@ export const QUESTION_TIME = 20; // seconds export const POINTS_PER_QUESTION = 1000; export const PLAYER_COLORS = [ - '#46178f', + '#2563eb', '#e21b3c', - '#1368ce', '#26890c', '#ffa602', '#d89e00', @@ -37,4 +36,5 @@ export const PLAYER_COLORS = [ '#ff6b6b', '#4ecdc4', '#45b7d1', + '#8b5cf6', ]; diff --git a/index.html b/index.html index a7ab8b0..eba06a2 100644 --- a/index.html +++ b/index.html @@ -5,12 +5,33 @@ Kaboot +