From 65c0adfd769b9ef11b897c96a3634c61120055b8 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 8 Dec 2025 00:18:03 +0900 Subject: feat(client): redesign frontend with TailwindCSS v4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace inline styles with TailwindCSS, implementing a cohesive Japanese-inspired design system with custom colors (cream, teal primary), typography (Fraunces, DM Sans), and animations. Update all pages and components with consistent styling, improve accessibility by adding aria-hidden to decorative SVGs, and configure Biome for Tailwind CSS syntax support. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/client/components/SyncStatusIndicator.tsx | 116 +++++++++++++++++++------- 1 file changed, 84 insertions(+), 32 deletions(-) (limited to 'src/client/components/SyncStatusIndicator.tsx') diff --git a/src/client/components/SyncStatusIndicator.tsx b/src/client/components/SyncStatusIndicator.tsx index 23e3ec6..0f555ca 100644 --- a/src/client/components/SyncStatusIndicator.tsx +++ b/src/client/components/SyncStatusIndicator.tsx @@ -20,63 +20,115 @@ export function SyncStatusIndicator() { return "Synced"; }; - const getStatusColor = (): string => { + const getStatusStyles = (): string => { if (!isOnline) { - return "#6c757d"; // gray + return "bg-muted/10 text-muted"; } if (isSyncing) { - return "#007bff"; // blue + return "bg-info/10 text-info"; } if (status === SyncStatus.Error) { - return "#dc3545"; // red + return "bg-error/10 text-error"; } if (pendingCount > 0) { - return "#ffc107"; // yellow + return "bg-warning/10 text-warning"; } - return "#28a745"; // green + return "bg-success/10 text-success"; }; - const getStatusIcon = (): string => { + const getStatusIcon = () => { if (!isOnline) { - return "\u25CB"; // hollow circle + return ( + + ); } if (isSyncing) { - return "\u21BB"; // rotating arrows + return ( + + ); } if (status === SyncStatus.Error) { - return "\u2717"; // cross mark + return ( + + ); } if (pendingCount > 0) { - return "\u25D4"; // partial circle + return ( + + ); } - return "\u2713"; // check mark + return ( + + ); }; return (
- - {getStatusText()} + {getStatusIcon()} + {getStatusText()}
); } -- cgit v1.2.3-70-g09d2