diff --git a/apps/backoffice/app/books/[id]/page.tsx b/apps/backoffice/app/books/[id]/page.tsx index 0d95739..0233ec2 100644 --- a/apps/backoffice/app/books/[id]/page.tsx +++ b/apps/backoffice/app/books/[id]/page.tsx @@ -45,6 +45,7 @@ export default async function BookDetailPage({ height={440} className="detail-cover-image" unoptimized + loading="lazy" /> diff --git a/apps/backoffice/app/components/BookCard.tsx b/apps/backoffice/app/components/BookCard.tsx index 0664fd8..60f1aa9 100644 --- a/apps/backoffice/app/components/BookCard.tsx +++ b/apps/backoffice/app/components/BookCard.tsx @@ -18,6 +18,7 @@ export function BookCard({ book, getBookCoverUrl }: BookCardProps) { height={220} className="cover-image" unoptimized + loading="lazy" />
diff --git a/apps/backoffice/app/globals.css b/apps/backoffice/app/globals.css index b6f06f8..76bbf17 100644 --- a/apps/backoffice/app/globals.css +++ b/apps/backoffice/app/globals.css @@ -234,10 +234,10 @@ button:hover { border-color: hsl(280 60% 45% / 0.5); } -.status-pending { color: hsl(45 93% 47%); } -.status-running { color: hsl(192 85% 55%); } -.status-completed { color: hsl(142 60% 45%); } -.status-failed { color: hsl(2 72% 48%); } +.status-pending { color: hsl(45 93% 35%); } +.status-running { color: hsl(198 78% 37%); font-weight: 700; } +.status-completed { color: hsl(142 60% 35%); } +.status-failed { color: hsl(2 72% 45%); } .status-cancelled { color: hsl(220 13% 40%); } .error-hint { @@ -1111,6 +1111,32 @@ button:hover { color: hsl(198 78% 75%); } +/* Dark mode status colors for job list - couleurs plus soutenues */ +.dark .status-running { + color: hsl(192 85% 55%); + font-weight: 700; + text-shadow: 0 0 10px hsl(192 85% 55% / 0.3); +} + +.dark .status-pending { + color: hsl(45 100% 55%); + font-weight: 600; +} + +.dark .status-completed { + color: hsl(142 70% 55%); + font-weight: 600; +} + +.dark .status-failed { + color: hsl(2 80% 60%); + font-weight: 600; +} + +.dark .status-cancelled { + color: hsl(220 20% 65%); +} + /* Progress bar visibility fix */ .job-progress { background: var(--card); @@ -1172,6 +1198,21 @@ tr.job-highlighted td { 50% { box-shadow: inset 0 0 0 2px hsl(198 78% 37% / 0.6); } } +/* Dark mode for highlighted job row */ +.dark tr.job-highlighted { + background: hsl(198 52% 20%); + box-shadow: inset 0 0 0 2px hsl(198 78% 50%); +} + +.dark tr.job-highlighted td { + animation: pulse-border-dark 2s ease-in-out infinite; +} + +@keyframes pulse-border-dark { + 0%, 100% { box-shadow: inset 0 0 0 1px hsl(198 78% 50% / 0.3); } + 50% { box-shadow: inset 0 0 0 2px hsl(198 78% 50% / 0.6); } +} + /* Monitoring styles */ .monitoring-cell { display: flex;