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 (