From 07cd3bde3bedc3d3c29092fc038dc77294160424 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Mon, 15 Sep 2025 11:49:54 +0200 Subject: [PATCH] feat: implement theme system and UI updates - Added theme context and provider for light/dark mode support. - Integrated theme toggle button in the Header component. - Updated UI components to utilize CSS variables for consistent theming. - Enhanced Kanban components and forms with new theme styles for better visual coherence. - Adjusted global styles to define color variables for both themes, improving maintainability. --- TODO.md | 14 +++- components/HomePageClient.tsx | 2 +- components/forms/CreateTaskForm.tsx | 20 +++--- components/forms/EditTaskForm.tsx | 16 ++--- components/kanban/Board.tsx | 6 +- components/kanban/Column.tsx | 10 +-- components/kanban/ColumnVisibilityToggle.tsx | 6 +- components/kanban/KanbanFilters.tsx | 46 ++++++------- components/kanban/ObjectivesBoard.tsx | 10 +-- components/kanban/QuickAddTask.tsx | 16 ++--- components/kanban/SwimlanesBase.tsx | 20 +++--- components/kanban/TaskCard.tsx | 22 +++--- components/ui/Badge.tsx | 12 ++-- components/ui/Button.tsx | 10 +-- components/ui/Card.tsx | 15 +++-- components/ui/Header.tsx | 40 ++++++++--- components/ui/Input.tsx | 16 ++--- components/ui/Modal.tsx | 10 +-- components/ui/TagInput.tsx | 18 ++--- src/app/globals.css | 41 +++++++++-- src/app/layout.tsx | 5 +- src/app/tags/TagsPageClient.tsx | 32 ++++----- src/contexts/ThemeContext.tsx | 71 ++++++++++++++++++++ 23 files changed, 298 insertions(+), 160 deletions(-) create mode 100644 src/contexts/ThemeContext.tsx diff --git a/TODO.md b/TODO.md index 15e787a..4a4d80f 100644 --- a/TODO.md +++ b/TODO.md @@ -83,7 +83,18 @@ - [x] Interface de filtrage complète (KanbanFilters.tsx) - [x] Logique de filtrage dans TasksContext - [x] Tri des tâches (date, priorité, alphabétique) -- [ ] Actions en lot (sélection multiple) + +### 2.7 Système de thèmes (clair/sombre) +- [x] Créer le contexte de thème (ThemeContext + ThemeProvider) +- [x] Ajouter toggle de thème dans le Header (bouton avec icône soleil/lune) +- [x] Définir les variables CSS pour le thème clair +- [x] Adapter tous les composants UI pour supporter les deux thèmes +- [x] Modifier la palette de couleurs pour le mode clair +- [x] Adapter les composants Kanban (Board, TaskCard, Column) +- [x] Adapter les formulaires et modales +- [x] Adapter la page de gestion des tags +- [x] Sauvegarder la préférence de thème (localStorage) +- [x] Configuration par défaut selon préférence système (prefers-color-scheme) ## 📊 Phase 3: Dashboard et analytics (Priorité 3) @@ -102,6 +113,7 @@ ## 🔧 Phase 4: Fonctionnalités avancées (Priorité 4) ### 4.1 Gestion avancée des tâches +- [ ] Actions en lot (sélection multiple) - [ ] Sous-tâches et hiérarchie - [ ] Dates d'échéance et rappels - [ ] Assignation et collaboration diff --git a/components/HomePageClient.tsx b/components/HomePageClient.tsx index 8db3acf..dfbbf9a 100644 --- a/components/HomePageClient.tsx +++ b/components/HomePageClient.tsx @@ -15,7 +15,7 @@ function HomePageContent() { const { stats, syncing } = useTasksContext(); return ( -
+
-