From 34b9aff6e7fad38d29031ac3edcc2526d89f9e80 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Tue, 23 Sep 2025 21:36:50 +0200 Subject: [PATCH] fix: light mode : review some styles --- src/app/globals.css | 86 +++++++++++++++++++ .../dashboard/ManagerWeeklySummary.tsx | 70 +++++++-------- .../dashboard/charts/MetricsOverview.tsx | 30 +++---- .../dashboard/charts/ProductivityInsights.tsx | 26 +++--- .../deadline/CriticalDeadlinesCard.tsx | 12 ++- 5 files changed, 160 insertions(+), 64 deletions(-) diff --git a/src/app/globals.css b/src/app/globals.css index cfc143e..7ea8ed2 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -69,6 +69,92 @@ body { background: var(--primary); } +/* Outline card styles pour meilleure lisibilité */ +.outline-card-blue { + @apply p-2.5 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: var(--primary); + background-color: color-mix(in srgb, var(--primary) 8%, transparent); + border-color: color-mix(in srgb, var(--primary) 25%, var(--border)); +} + +.outline-card-green { + @apply p-2.5 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: var(--success); + background-color: color-mix(in srgb, var(--success) 8%, transparent); + border-color: color-mix(in srgb, var(--success) 25%, var(--border)); +} + +.outline-card-orange { + @apply p-2.5 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: var(--accent); + background-color: color-mix(in srgb, var(--accent) 8%, transparent); + border-color: color-mix(in srgb, var(--accent) 25%, var(--border)); +} + +.outline-card-red { + @apply p-2.5 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: var(--destructive); + background-color: color-mix(in srgb, var(--destructive) 8%, transparent); + border-color: color-mix(in srgb, var(--destructive) 25%, var(--border)); +} + +.outline-card-purple { + @apply p-2.5 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: #8b5cf6; /* purple-500 */ + background-color: color-mix(in srgb, #8b5cf6 8%, transparent); + border-color: color-mix(in srgb, #8b5cf6 25%, var(--border)); +} + +.outline-card-yellow { + @apply p-2.5 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: #eab308; /* yellow-500 */ + background-color: color-mix(in srgb, #eab308 8%, transparent); + border-color: color-mix(in srgb, #eab308 25%, var(--border)); +} + +.outline-card-gray { + @apply p-2.5 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: var(--muted-foreground); + background-color: color-mix(in srgb, var(--muted) 8%, transparent); + border-color: color-mix(in srgb, var(--muted) 25%, var(--border)); +} + +/* Variantes pour les métriques (padding plus large) */ +.outline-metric-blue { + @apply text-center p-4 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: var(--primary); + background-color: color-mix(in srgb, var(--primary) 8%, transparent); + border-color: color-mix(in srgb, var(--primary) 25%, var(--border)); +} + +.outline-metric-green { + @apply text-center p-4 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: var(--success); + background-color: color-mix(in srgb, var(--success) 8%, transparent); + border-color: color-mix(in srgb, var(--success) 25%, var(--border)); +} + +.outline-metric-orange { + @apply text-center p-4 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: var(--accent); + background-color: color-mix(in srgb, var(--accent) 8%, transparent); + border-color: color-mix(in srgb, var(--accent) 25%, var(--border)); +} + +.outline-metric-purple { + @apply text-center p-4 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: #8b5cf6; /* purple-500 */ + background-color: color-mix(in srgb, #8b5cf6 8%, transparent); + border-color: color-mix(in srgb, #8b5cf6 25%, var(--border)); +} + +.outline-metric-gray { + @apply text-center p-4 rounded-lg border transition-all hover:shadow-sm hover:scale-[1.01]; + color: var(--muted-foreground); + background-color: color-mix(in srgb, var(--muted) 8%, transparent); + border-color: color-mix(in srgb, var(--muted) 25%, var(--border)); +} + /* Animations tech */ @keyframes glow { 0%, 100% { box-shadow: 0 0 5px rgba(6, 182, 212, 0.3); } diff --git a/src/components/dashboard/ManagerWeeklySummary.tsx b/src/components/dashboard/ManagerWeeklySummary.tsx index 2d96033..7d72d4a 100644 --- a/src/components/dashboard/ManagerWeeklySummary.tsx +++ b/src/components/dashboard/ManagerWeeklySummary.tsx @@ -32,19 +32,19 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu const getPriorityBadgeStyle = (priority: 'low' | 'medium' | 'high') => { const config = getPriorityConfig(priority); - const baseClasses = 'text-xs px-2 py-0.5 rounded font-medium'; + const baseClasses = 'text-xs px-2 py-0.5 rounded font-medium border'; switch (config.color) { case 'blue': - return `${baseClasses} bg-blue-100 dark:bg-blue-900/20 text-blue-600 dark:text-blue-400`; + return `${baseClasses} text-[var(--primary)] bg-[var(--primary)]/10 border-[var(--primary)]/20`; case 'yellow': - return `${baseClasses} bg-yellow-100 dark:bg-yellow-900/20 text-yellow-600 dark:text-yellow-400`; + return `${baseClasses} text-[var(--accent)] bg-[var(--accent)]/10 border-[var(--accent)]/20`; case 'purple': - return `${baseClasses} bg-purple-100 dark:bg-purple-900/20 text-purple-600 dark:text-purple-400`; + return `${baseClasses} text-[#8b5cf6] bg-[#8b5cf6]/10 border-[#8b5cf6]/20`; case 'red': - return `${baseClasses} bg-red-100 dark:bg-red-900/20 text-red-600 dark:text-red-400`; + return `${baseClasses} text-[var(--destructive)] bg-[var(--destructive)]/10 border-[var(--destructive)]/20`; default: - return `${baseClasses} bg-gray-100 dark:bg-gray-900/20 text-gray-600 dark:text-gray-400`; + return `${baseClasses} text-[var(--muted-foreground)] bg-[var(--muted)]/10 border-[var(--muted)]/20`; } }; @@ -123,19 +123,19 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu -
-

🎯 Points clés accomplis

-

{summary.narrative.weekHighlight}

+
+

🎯 Points clés accomplis

+

{summary.narrative.weekHighlight}

-
-

⚡ Défis traités

-

{summary.narrative.mainChallenges}

+
+

⚡ Défis traités

+

{summary.narrative.mainChallenges}

-
-

🔮 Focus 7 prochains jours

-

{summary.narrative.nextWeekFocus}

+
+

🔮 Focus 7 prochains jours

+

{summary.narrative.nextWeekFocus}

@@ -147,42 +147,42 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu
-
-
+
+
{summary.metrics.totalTasksCompleted}
-
Tâches complétées
-
+
Tâches complétées
+
dont {summary.metrics.highPriorityTasksCompleted} priorité haute
-
-
+
+
{summary.metrics.totalCheckboxesCompleted}
-
Todos complétés
-
+
Todos complétés
+
dont {summary.metrics.meetingCheckboxesCompleted} meetings
-
-
+
+
{summary.keyAccomplishments.filter(a => a.impact === 'high').length}
-
Items à fort impact
-
+
Items à fort impact
+
/ {summary.keyAccomplishments.length} accomplissements
-
-
+
+
{summary.upcomingChallenges.filter(c => c.priority === 'high').length}
-
Priorités critiques
-
+
Priorités critiques
+
/ {summary.upcomingChallenges.length} enjeux
@@ -214,7 +214,7 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu {/* Header compact */}
- + #{index + 1} @@ -288,7 +288,7 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu {/* Header compact */}
- + #{index + 1} @@ -364,7 +364,7 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu {/* Header compact */}
- + #{index + 1} @@ -436,7 +436,7 @@ export default function ManagerWeeklySummary({ initialSummary }: ManagerWeeklySu {/* Header compact */}
- + #{index + 1} diff --git a/src/components/dashboard/charts/MetricsOverview.tsx b/src/components/dashboard/charts/MetricsOverview.tsx index c06358d..16c5142 100644 --- a/src/components/dashboard/charts/MetricsOverview.tsx +++ b/src/components/dashboard/charts/MetricsOverview.tsx @@ -33,41 +33,41 @@ export function MetricsOverview({ metrics }: MetricsOverviewProps) {
-
-
+
+
{metrics.summary.totalTasksCompleted}
-
Terminées
+
Terminées
-
-
+
+
{metrics.summary.totalTasksCreated}
-
Créées
+
Créées
-
-
+
+
{metrics.summary.averageCompletionRate.toFixed(1)}%
-
Taux moyen
+
Taux moyen
-
-
+
+
{getTrendIcon(metrics.summary.trendsAnalysis.completionTrend)}
-
+
{metrics.summary.trendsAnalysis.completionTrend}
-
-
+
+
{getPatternIcon(metrics.summary.trendsAnalysis.productivityPattern)}
-
+
{metrics.summary.trendsAnalysis.productivityPattern === 'consistent' ? 'Régulier' : metrics.summary.trendsAnalysis.productivityPattern === 'variable' ? 'Variable' : 'Weekend+'}
diff --git a/src/components/dashboard/charts/ProductivityInsights.tsx b/src/components/dashboard/charts/ProductivityInsights.tsx index 159cd66..0e0196b 100644 --- a/src/components/dashboard/charts/ProductivityInsights.tsx +++ b/src/components/dashboard/charts/ProductivityInsights.tsx @@ -76,37 +76,37 @@ export function ProductivityInsights({ data, className }: ProductivityInsightsPr {/* Insights principaux */}
{/* Jour le plus productif */} -
+
-

+

🏆 Jour champion

- + {mostProductiveDay.completed}
-

+

{mostProductiveDay.dayName} - {mostProductiveDay.completed} tâches terminées

-

+

Taux: {mostProductiveDay.completionRate.toFixed(1)}%

{/* Jour le plus créatif */} -
+
-

+

💡 Jour créatif

- + {mostCreativeDay.newTasks}
-

+

{mostCreativeDay.dayName} - {mostCreativeDay.newTasks} nouvelles tâches

-

+

{mostCreativeDay.dayName === mostProductiveDay.dayName ? 'Également jour le plus productif!' : 'Journée de planification'} @@ -162,11 +162,11 @@ export function ProductivityInsights({ data, className }: ProductivityInsightsPr

{/* Recommandations */} -
-

+
+

💡 Recommandations

-
+
{trend === 'down' && (

• Essayez de retrouver votre rythme du début de semaine

)} diff --git a/src/components/deadline/CriticalDeadlinesCard.tsx b/src/components/deadline/CriticalDeadlinesCard.tsx index 9f91405..7d8a948 100644 --- a/src/components/deadline/CriticalDeadlinesCard.tsx +++ b/src/components/deadline/CriticalDeadlinesCard.tsx @@ -93,10 +93,20 @@ export function CriticalDeadlinesCard({ overdue, critical, warning }: CriticalDe {urgentTasks.map((task) => { const urgencyStyle = getUrgencyStyle(task); + const getStyleClass = (urgencyLevel: string) => { + if (urgencyLevel === 'overdue') { + return 'outline-card-red'; + } else if (urgencyLevel === 'critical') { + return 'outline-card-orange'; + } else { + return 'outline-card-yellow'; + } + }; + return (