+
Recherche...
) : (
@@ -165,8 +165,8 @@ export function TagInput({
onClick={() => handleSuggestionClick(tag)}
className={`flex items-center gap-2 px-2 py-1.5 text-xs rounded-md transition-colors ${
index === selectedIndex
- ? 'bg-slate-700 text-cyan-300 ring-1 ring-cyan-400'
- : 'text-slate-200 hover:bg-slate-700'
+ ? 'bg-[var(--card-hover)] text-[var(--primary)] ring-1 ring-[var(--primary)]'
+ : 'text-[var(--foreground)] hover:bg-[var(--card-hover)]'
} ${tags.includes(tag.name) ? 'opacity-50 cursor-not-allowed' : ''}`}
disabled={tags.includes(tag.name)}
title={tags.includes(tag.name) ? 'Déjà ajouté' : `Ajouter ${tag.name}`}
@@ -177,7 +177,7 @@ export function TagInput({
/>
{tag.name}
{tags.includes(tag.name) && (
-
✓
+
✓
)}
))}
@@ -188,7 +188,7 @@ export function TagInput({
{/* Indicateur de limite */}
{tags.length >= maxTags && (
-
+
Limite de {maxTags} tags atteinte
)}
diff --git a/src/app/globals.css b/src/app/globals.css
index dd6e888..10731dd 100644
--- a/src/app/globals.css
+++ b/src/app/globals.css
@@ -1,8 +1,39 @@
@import "tailwindcss";
:root {
+ /* Dark theme (default) */
--background: #020617; /* slate-950 */
--foreground: #f1f5f9; /* slate-100 */
+ --card: #0f172a; /* slate-900 */
+ --card-hover: #1e293b; /* slate-800 */
+ --card-column: #0f172a; /* slate-900 - same as card in dark */
+ --border: #334155; /* slate-700 */
+ --input: #1e293b; /* slate-800 */
+ --primary: #06b6d4; /* cyan-500 */
+ --primary-foreground: #f1f5f9; /* slate-100 */
+ --muted: #475569; /* slate-600 */
+ --muted-foreground: #94a3b8; /* slate-400 */
+ --accent: #f59e0b; /* amber-500 */
+ --destructive: #ef4444; /* red-500 */
+ --success: #10b981; /* emerald-500 */
+}
+
+.light {
+ /* Light theme */
+ --background: #f1f5f9; /* slate-100 */
+ --foreground: #0f172a; /* slate-900 */
+ --card: #ffffff; /* white */
+ --card-hover: #f8fafc; /* slate-50 */
+ --card-column: #f8fafc; /* slate-50 - colonnes plus foncées que les cartes */
+ --border: #cbd5e1; /* slate-300 */
+ --input: #ffffff; /* white */
+ --primary: #0891b2; /* cyan-600 */
+ --primary-foreground: #ffffff; /* white */
+ --muted: #94a3b8; /* slate-400 - plus clair pour scrollbar */
+ --muted-foreground: #64748b; /* slate-500 */
+ --accent: #d97706; /* amber-600 */
+ --destructive: #dc2626; /* red-600 */
+ --success: #059669; /* emerald-600 */
}
@theme inline {
@@ -21,21 +52,21 @@ body {
/* Scrollbar tech style */
::-webkit-scrollbar {
- width: 8px;
- height: 8px;
+ width: 6px;
+ height: 6px;
}
::-webkit-scrollbar-track {
- background: #1e293b; /* slate-800 */
+ background: var(--card);
}
::-webkit-scrollbar-thumb {
- background: #475569; /* slate-600 */
+ background: var(--muted);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
- background: #06b6d4; /* cyan-500 */
+ background: var(--primary);
}
/* Animations tech */
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index f7fa87e..077144b 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -1,6 +1,7 @@
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";
+import { ThemeProvider } from "@/contexts/ThemeContext";
const geistSans = Geist({
variable: "--font-geist-sans",
@@ -27,7 +28,9 @@ export default function RootLayout({
- {children}
+
+ {children}
+