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/OfflineBanner.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/client/components/OfflineBanner.test.tsx') diff --git a/src/client/components/OfflineBanner.test.tsx b/src/client/components/OfflineBanner.test.tsx index 41679d9..53ba815 100644 --- a/src/client/components/OfflineBanner.test.tsx +++ b/src/client/components/OfflineBanner.test.tsx @@ -79,7 +79,8 @@ describe("OfflineBanner", () => { render(); const banner = screen.getByTestId("offline-banner"); - expect(banner.getAttribute("role")).toBe("status"); + // element has implicit role="status", so we check it's an output element + expect(banner.tagName.toLowerCase()).toBe("output"); expect(banner.getAttribute("aria-live")).toBe("polite"); }); }); -- cgit v1.2.3-70-g09d2