From e861b804ba1da123ab7f9045161fadca2da46bf1 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 05:59:56 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20Improve=20"Random=20i?= =?UTF-8?q?dea"=20button=20with=20loading=20state?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 💡 What: Replaced the raw "Random idea" button with a `Button` component that includes a loading spinner and disabled state during async generation. 🎯 Why: Users could click the button multiple times without feedback, and the button style was inconsistent with the design system. ♿ Accessibility: Added proper disabled state and focus management via `Button` component. Co-authored-by: Krosebrook <214532761+Krosebrook@users.noreply.github.com> --- .jules/palette.md | 4 ++++ client/src/pages/Generate.tsx | 23 ++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.jules/palette.md b/.jules/palette.md index 6be80c3..00583fb 100644 --- a/.jules/palette.md +++ b/.jules/palette.md @@ -1,3 +1,7 @@ ## 2026-02-09 - Invisible Focus Trap **Learning:** Using `opacity-0 group-hover:opacity-100` on interactive elements (like buttons) creates a severe accessibility issue where keyboard users can focus an element but cannot see it. **Action:** Always pair `group-hover:opacity-100` with `focus:opacity-100` (or `focus-visible:opacity-100`) to ensure keyboard navigability. + +## 2026-05-21 - Async Button Feedback +**Learning:** Raw ` +