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/pages/HomePage.tsx | 252 +++++++++++++++++++++++++++++------------- 1 file changed, 178 insertions(+), 74 deletions(-) (limited to 'src/client/pages/HomePage.tsx') diff --git a/src/client/pages/HomePage.tsx b/src/client/pages/HomePage.tsx index 783e623..fcae971 100644 --- a/src/client/pages/HomePage.tsx +++ b/src/client/pages/HomePage.tsx @@ -62,122 +62,226 @@ export function HomePage() { }, [fetchDecks]); return ( -
-
-

Kioku

-
- - - +
+ {/* Header */} +
+
+

+ Kioku +

+
+ + + +
-
-
-

Your Decks

-
- {isLoading &&

Loading decks...

} + {/* Loading State */} + {isLoading && ( +
+ +
+ )} + {/* Error State */} {error && ( -
- {error} +
+ {error}
)} + {/* Empty State */} {!isLoading && !error && decks.length === 0 && ( -
-

You don't have any decks yet.

-

Create your first deck to start learning!

+
+
+ +
+

+ No decks yet +

+

+ Create your first deck to start learning +

+
)} + {/* Deck List */} {!isLoading && !error && decks.length > 0 && ( -
    - {decks.map((deck) => ( -
  • + {decks.map((deck, index) => ( +
    -
    -
    -

    - +
    +
    + +

    {deck.name} - -

    +

    + {deck.description && ( -

    +

    {deck.description}

    )}
    -
    -
    -
  • +
))} - +
)}
+ {/* Modals */} setIsCreateModalOpen(false)} -- cgit v1.2.3-70-g09d2