From 5818f1388b8167b4867942d1ab5e940854dc721d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 28 Jan 2026 18:33:41 +0000 Subject: [PATCH 1/5] Initial plan From e53e4daa203db0d6ec43770788760a01fc974eae Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 28 Jan 2026 18:37:15 +0000 Subject: [PATCH 2/5] Fix accessibility, functionality and CSS issues from PR review - Add aria-labels to TopicChip buttons for screen reader support - Add consistent hover:bg-[position:100%_0] to Button danger/success variants - Fix SuggestedPrompts to open YouTube search in new tab - Add "Example Preview" label to video preview card and remove cursor-pointer - Fix navigation Link group-hover by adding inline-flex items-center gap-2 - Rename duplicate shimmer animation to skeleton-shimmer - Remove unused CSS utility classes (.input-glow, .chip, .text-shadow-*) - Add prefers-reduced-motion support with motion-reduce classes - Use CSS custom properties (--animation-delay) for animation delays Co-authored-by: groupthinking <154503486+groupthinking@users.noreply.github.com> --- apps/web/src/app/globals.css | 82 +++---------------- apps/web/src/app/page.tsx | 18 ++-- apps/web/src/components/ui/Button.tsx | 2 + .../src/components/ui/SuggestedPrompts.tsx | 26 ++++-- 4 files changed, 44 insertions(+), 84 deletions(-) diff --git a/apps/web/src/app/globals.css b/apps/web/src/app/globals.css index ea4c2b23d..b6e191e6c 100644 --- a/apps/web/src/app/globals.css +++ b/apps/web/src/app/globals.css @@ -557,76 +557,7 @@ pre { } /* ============================================ - Enhanced Input Styling - ============================================ */ - -.input-glow { - position: relative; -} - -.input-glow::before { - content: ""; - position: absolute; - inset: -2px; - background: linear-gradient( - 135deg, - rgba(139, 92, 246, 0.3) 0%, - rgba(34, 211, 238, 0.3) 100% - ); - border-radius: inherit; - opacity: 0; - transition: opacity var(--transition-base); - z-index: -1; - filter: blur(8px); -} - -.input-glow:focus-within::before { - opacity: 1; -} - -/* ============================================ - Topic Chip Styles - ============================================ */ - -.chip { - display: inline-flex; - align-items: center; - gap: 0.5rem; - padding: 0.625rem 1rem; - font-size: 0.875rem; - font-weight: 500; - border-radius: 0.75rem; - background: rgba(255, 255, 255, 0.03); - border: 1px solid rgba(255, 255, 255, 0.08); - color: rgba(255, 255, 255, 0.8); - transition: background var(--transition-base), border-color var(--transition-base), transform var(--transition-base); - cursor: pointer; -} - -.chip:hover { - background: rgba(255, 255, 255, 0.06); - border-color: rgba(255, 255, 255, 0.15); - transform: translateY(-2px); -} - -.chip:active { - transform: translateY(0); -} - -/* ============================================ - Text Utilities - ============================================ */ - -.text-shadow-lg { - text-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); -} - -.text-shadow-glow { - text-shadow: 0 0 40px rgba(139, 92, 246, 0.5); -} - -/* ============================================ - Skeleton Loading + Skeleton Loading (Used by loading states) ============================================ */ .skeleton { @@ -637,6 +568,15 @@ pre { rgba(255, 255, 255, 0.03) 100% ); background-size: 200% 100%; - animation: shimmer 1.5s ease-in-out infinite; + animation: skeleton-shimmer 1.5s ease-in-out infinite; border-radius: 0.5rem; } + +@keyframes skeleton-shimmer { + 0% { + background-position: -200% 0; + } + 100% { + background-position: 200% 0; + } +} diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index 6d86e1ff7..c5d28f2a7 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -502,10 +502,10 @@ export default function HomePage() { Get Started - + @@ -613,14 +613,22 @@ export default function HomePage() {
{ - setVideoUrl(`https://www.youtube.com/results?search_query=${encodeURIComponent(query)}`); + const searchUrl = `https://www.youtube.com/results?search_query=${encodeURIComponent(query)}`; + if (typeof window !== 'undefined') { + window.open(searchUrl, '_blank', 'noopener,noreferrer'); + } }} />
- {/* Video Preview Card */} + {/* Video Preview Card - Visual Example Only */}
+ {/* Example label */} +
+ Example Preview +
+ {/* Glow effect */}
@@ -632,7 +640,7 @@ export default function HomePage() { {/* Play button overlay */}
-
+
diff --git a/apps/web/src/components/ui/Button.tsx b/apps/web/src/components/ui/Button.tsx index 9bc0ca9d1..1c3a60174 100644 --- a/apps/web/src/components/ui/Button.tsx +++ b/apps/web/src/components/ui/Button.tsx @@ -64,6 +64,7 @@ const Button = forwardRef( 'bg-gradient-to-r from-red-500 via-red-600 to-red-500 bg-[length:200%_100%]', 'text-white shadow-lg shadow-red-500/30', 'hover:shadow-xl hover:shadow-red-500/40 hover:-translate-y-0.5', + 'hover:bg-[position:100%_0]', 'active:translate-y-0', 'transition-all duration-300' ), @@ -71,6 +72,7 @@ const Button = forwardRef( 'bg-gradient-to-r from-green-500 via-green-600 to-green-500 bg-[length:200%_100%]', 'text-white shadow-lg shadow-green-500/30', 'hover:shadow-xl hover:shadow-green-500/40 hover:-translate-y-0.5', + 'hover:bg-[position:100%_0]', 'active:translate-y-0', 'transition-all duration-300' ), diff --git a/apps/web/src/components/ui/SuggestedPrompts.tsx b/apps/web/src/components/ui/SuggestedPrompts.tsx index e20d3c606..41c3dc644 100644 --- a/apps/web/src/components/ui/SuggestedPrompts.tsx +++ b/apps/web/src/components/ui/SuggestedPrompts.tsx @@ -58,11 +58,12 @@ export interface TopicChipProps extends HTMLAttributes { } const TopicChip = forwardRef( - ({ topic, onSelect, className, ...props }, ref) => { + ({ topic, onSelect, className, style, ...props }, ref) => { return (