Skip to content

feat: Redesign the live event display card with animations, improved …#560

Open
PaulicStudios wants to merge 1 commit intodevfrom
508-make-the-live-event-popup-prettier
Open

feat: Redesign the live event display card with animations, improved …#560
PaulicStudios wants to merge 1 commit intodevfrom
508-make-the-live-event-popup-prettier

Conversation

@PaulicStudios
Copy link
Member

@PaulicStudios PaulicStudios commented Feb 21, 2026

…styling, and enhanced interactivity.

Summary by CodeRabbit

  • Style
    • Redesigned the live event display on the home page with enhanced animations and increased visual prominence. The event card now features a dedicated "Live" indicator and end-time information positioned to the right for better clarity. Improved interactive elements include hover effects and smooth entrance animations for a more engaging user experience.

@PaulicStudios PaulicStudios requested a review from Peu77 February 21, 2026 19:56
@PaulicStudios PaulicStudios self-assigned this Feb 21, 2026
@PaulicStudios PaulicStudios linked an issue Feb 21, 2026 that may be closed by this pull request
@coderabbitai
Copy link

coderabbitai bot commented Feb 21, 2026

📝 Walkthrough

Walkthrough

The live-event block in the homepage client component has been refactored from a static Card-based structure to an animated, Link-wrapped Card. The new implementation simplifies subcomponent usage, adds motion animations, reorganizes live-status information into a right-aligned section, and enhances visual hierarchy while maintaining existing conditional rendering logic.

Changes

Cohort / File(s) Summary
Live-Event Block Refactor
frontend/components/HomePageClient.tsx
Replaced static Card structure with animated motion.div-wrapped Card, converted entire Card to Link element, moved live/ends-in metadata to right-aligned section with dedicated "Live" indicator, removed Badge and CardContent/CardDescription subcomponent usage, added group hover and focus ring interactions.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 A card that once stood still and plain,
Now dances with a motion refrain!
The Link wraps 'round with style so bright,
Live events glow on the right,
Animation brings the magic spring,
Making cards do their little thing!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main change: redesigning the live event display card with animations and improved styling, matching the changeset modifications to the live-event block in HomePageClient.tsx.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 508-make-the-live-event-popup-prettier

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@frontend/components/HomePageClient.tsx`:
- Around line 129-142: The inline SVG used as the arrow icon in
HomePageClient.tsx should be replaced with the lucide-react ArrowRight component
and marked decorative for accessibility; add an import for ArrowRight from
'lucide-react' at the top of the file, then replace the <svg>...</svg> block
inside the rounded icon container with a usage of ArrowRight preserving the
existing className ("h-5 w-5") and adding aria-hidden="true" so screen readers
ignore it.
- Line 105: In HomePageClient's Card element (the Card with the long className
string), replace the invalid rgba(var(--primary),0.3) used in the hover shadow
with an OKLch-aware color expression such as color-mix(in oklch, var(--primary)
30%, transparent) so the shadow is rendered using the project's OKLch token, and
replace the hardcoded border-white/10 token with a semantic border token (e.g.,
border-border/10 or border-muted/10) so the border respects light/dark
foreground semantics; update the className on the Card element accordingly.

transition={{ duration: 0.5, ease: "easeOut" }}
>
<Link href={`/events/${props.currentLiveEvent.id}`} className="group mx-auto mt-6 block w-full max-w-lg rounded-xl focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background focus-visible:outline-none md:mt-8">
<Card className="relative h-full w-full overflow-hidden border-white/10 bg-background/60 shadow-2xl backdrop-blur-xl transition-all duration-300 group-hover:-translate-y-1 group-hover:border-primary/50 group-hover:bg-background/80 group-hover:shadow-[0_20px_40px_-15px_rgba(var(--primary),0.3)] group-active:translate-y-0 group-active:scale-[0.98]">
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# Find globals.css and check --primary definition
fd -e css globals.css -x cat {}

Repository: 42core-team/website

Length of output: 6617


🏁 Script executed:

# Check Tailwind version and config
fd -e json package.json -x head -50 {} && fd -e js tailwind.config.js -x cat {} && fd -e ts tailwind.config.ts -x cat {}

Repository: 42core-team/website

Length of output: 5719


🏁 Script executed:

# Check if the project supports light mode
fd -e tsx -e ts frontend/components/HomePageClient.tsx -x cat {}

Repository: 42core-team/website

Length of output: 45


rgba(var(--primary),0.3) is invalid CSS — the hover shadow is silently broken.

The --primary variable is defined in OKLch color space (oklch(0.205 0 0) in light mode, oklch(0.922 0 0) in dark mode), not as RGB channels or HSL values. This means rgba(var(--primary), 0.3) produces invalid CSS and the shadow renders as none.

Replace with the OKLch form to work with the project's color system:

🐛 Proposed fix
- group-hover:shadow-[0_20px_40px_-15px_rgba(var(--primary),0.3)]
+ group-hover:shadow-[0_20px_40px_-15px_oklch(var(--primary)/0.3)]

Also, border-white/10 is hardcoded and invisible in light mode, which uses a dark foreground color. Use a semantic token instead:

🐛 Proposed fix
- border-white/10
+ border-border/30
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<Card className="relative h-full w-full overflow-hidden border-white/10 bg-background/60 shadow-2xl backdrop-blur-xl transition-all duration-300 group-hover:-translate-y-1 group-hover:border-primary/50 group-hover:bg-background/80 group-hover:shadow-[0_20px_40px_-15px_rgba(var(--primary),0.3)] group-active:translate-y-0 group-active:scale-[0.98]">
<Card className="relative h-full w-full overflow-hidden border-border/30 bg-background/60 shadow-2xl backdrop-blur-xl transition-all duration-300 group-hover:-translate-y-1 group-hover:border-primary/50 group-hover:bg-background/80 group-hover:shadow-[0_20px_40px_-15px_oklch(var(--primary)/0.3)] group-active:translate-y-0 group-active:scale-[0.98]">
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@frontend/components/HomePageClient.tsx` at line 105, In HomePageClient's Card
element (the Card with the long className string), replace the invalid
rgba(var(--primary),0.3) used in the hover shadow with an OKLch-aware color
expression such as color-mix(in oklch, var(--primary) 30%, transparent) so the
shadow is rendered using the project's OKLch token, and replace the hardcoded
border-white/10 token with a semantic border token (e.g., border-border/10 or
border-muted/10) so the border respects light/dark foreground semantics; update
the className on the Card element accordingly.

Comment on lines +129 to +142
<div className="flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-primary/10 text-primary shadow-sm transition-all group-hover:scale-105 group-hover:bg-primary/20 group-hover:text-primary">
<svg
className="h-5 w-5"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2.5"
strokeLinecap="round"
strokeLinejoin="round"
>
<path d="M5 12h14M12 5l7 7-7 7" />
</svg>
</div>
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Replace the inline SVG with lucide-react's ArrowRight icon.

The project's components.json sets "iconLibrary": "lucide", meaning lucide-react is the designated icon library for this shadcn/ui setup. As per coding guidelines, custom components should not be created when a shadcn equivalent exists. ArrowRight from lucide-react is a direct equivalent.

Additionally, the decorative icon is missing aria-hidden="true", meaning screen readers will attempt to announce an empty label for the SVG.

♻️ Proposed fix

Add to imports at the top:

+ import { ArrowRight } from "lucide-react";

Replace the icon container content:

  <div className="flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-primary/10 text-primary shadow-sm transition-all group-hover:scale-105 group-hover:bg-primary/20 group-hover:text-primary">
-   <svg
-     className="h-5 w-5"
-     xmlns="http://www.w3.org/2000/svg"
-     viewBox="0 0 24 24"
-     fill="none"
-     stroke="currentColor"
-     strokeWidth="2.5"
-     strokeLinecap="round"
-     strokeLinejoin="round"
-   >
-     <path d="M5 12h14M12 5l7 7-7 7" />
-   </svg>
+   <ArrowRight className="h-5 w-5" aria-hidden="true" />
  </div>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<div className="flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-primary/10 text-primary shadow-sm transition-all group-hover:scale-105 group-hover:bg-primary/20 group-hover:text-primary">
<svg
className="h-5 w-5"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="2.5"
strokeLinecap="round"
strokeLinejoin="round"
>
<path d="M5 12h14M12 5l7 7-7 7" />
</svg>
</div>
<div className="flex h-10 w-10 shrink-0 items-center justify-center rounded-full bg-primary/10 text-primary shadow-sm transition-all group-hover:scale-105 group-hover:bg-primary/20 group-hover:text-primary">
<ArrowRight className="h-5 w-5" aria-hidden="true" />
</div>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@frontend/components/HomePageClient.tsx` around lines 129 - 142, The inline
SVG used as the arrow icon in HomePageClient.tsx should be replaced with the
lucide-react ArrowRight component and marked decorative for accessibility; add
an import for ArrowRight from 'lucide-react' at the top of the file, then
replace the <svg>...</svg> block inside the rounded icon container with a usage
of ArrowRight preserving the existing className ("h-5 w-5") and adding
aria-hidden="true" so screen readers ignore it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

make the live event popup prettier

1 participant