Skip to content

Conversation

@ComputelessComputer
Copy link
Collaborator

No description provided.

@coderabbitai
Copy link

coderabbitai bot commented Oct 25, 2025

📝 Walkthrough

Walkthrough

The PR extracts five reusable UI components (DownloadButton, GithubStars, LogoCloud, SocialCard, TestimonialCard) into standalone files and refactors the landing page to import and use them. Landing page styling transitions from blue to stone color scheme with restructured layout sections and updated header branding.

Changes

Cohort / File(s) Summary
New component exports
apps/web/src/components/download-button.tsx, apps/web/src/components/github-stars.tsx, apps/web/src/components/logo-cloud.tsx, apps/web/src/components/social-card.tsx, apps/web/src/components/testimonial-card.tsx
Five new presentational React components: DownloadButton (link to downloads with icon), GithubStars (fetches and displays GitHub stars count via react-query), LogoCloud (responsive logo gallery grid), SocialCard (platform-specific social testimonials with reddit/linkedin/twitter variants), TestimonialCard (quote display card).
Landing page refactor
apps/web/src/routes/_view/index.tsx
Removes old component definitions and unused imports; imports new extracted components. Restructures hero section, replaces blue gradient with stone palette, adds feature cards, introduces Social Proof section with LogoCloud and SocialCard grid (with responsive mobile scroll vs desktop grid), updates typography and layout spacing.
Header styling update
apps/web/src/routes/_view/route.tsx
Reduces header vertical padding (py-6 → py-3), replaces logo element with plain text "Hyprnote", updates branding link typography (font-semibold, text-2xl, font-serif), changes downloads button gradient from blue to stone tones.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • GithubStars component: Review external API integration (GitHub fetch via react-query with queryKey ["github-stars"]), fallback logic (LAST_SEEN constant), and number formatting logic (render function for x.xk display).
  • Landing page refactor (_view/index.tsx): Verify responsive behavior changes (mobile horizontal scroll for SocialCard vs desktop grid), grid layout updates, color scheme transitions, and proper import/export of new components.
  • SocialCard component: Review platform-specific configuration logic (reddit/linkedin/twitter variants) and conditional subtitle/username/role/company rendering.

Possibly related PRs

  • landing wip #1597: Modifies the /_view landing flow and introduces/uses the same UI pieces (DownloadButton and GithubStars), representing parallel or complementary landing page refactoring work.

Suggested reviewers

  • yujonglee
  • duckduckhero

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Description Check ⚠️ Warning No pull request description was provided by the author. The pass criterion requires that the description be related in some way to the changeset, but an empty description cannot satisfy this requirement. While the check is intentionally lenient to accommodate descriptions with varying levels of detail, there must be at least some description present to establish a relationship to the changes made in the pull request.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title Check ❓ Inconclusive The title "landing-2" is vague and generic, using a non-descriptive term that doesn't convey meaningful information about the changeset. While the title does relate to the landing page updates present in the pull request, it fails to communicate what specifically changed—whether it's a redesign, refactor, new features, or styling updates. A teammate scanning the repository history would not understand the primary purpose of these changes from this title alone. Better titles would specify the main change, such as "Redesign landing page with new components and hero section" or "Add social proof and testimonial sections to landing page."
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch jj-branch-27

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: 6

🧹 Nitpick comments (1)
apps/web/src/components/github-stars.tsx (1)

9-16: Consider adding error handling for the GitHub API fetch.

The query fallback to LAST_SEEN works for unavailable data, but users won't know if the fetch failed. Consider adding error state handling or logging to improve observability.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e8f459f and 093cb6c.

⛔ Files ignored due to path filters (10)
  • apps/web/public/icons/adobe.svg is excluded by !**/*.svg
  • apps/web/public/icons/amazon.svg is excluded by !**/*.svg
  • apps/web/public/icons/apple.svg is excluded by !**/*.svg
  • apps/web/public/icons/bain.svg is excluded by !**/*.svg
  • apps/web/public/icons/databricks.svg is excluded by !**/*.svg
  • apps/web/public/icons/disney.svg is excluded by !**/*.svg
  • apps/web/public/icons/meta.svg is excluded by !**/*.svg
  • apps/web/public/icons/palantir.svg is excluded by !**/*.svg
  • apps/web/public/icons/richmond_american.svg is excluded by !**/*.svg
  • apps/web/public/icons/wayfair.svg is excluded by !**/*.svg
📒 Files selected for processing (7)
  • apps/web/src/components/download-button.tsx (1 hunks)
  • apps/web/src/components/github-stars.tsx (1 hunks)
  • apps/web/src/components/logo-cloud.tsx (1 hunks)
  • apps/web/src/components/social-card.tsx (1 hunks)
  • apps/web/src/components/testimonial-card.tsx (1 hunks)
  • apps/web/src/routes/_view/index.tsx (4 hunks)
  • apps/web/src/routes/_view/route.tsx (1 hunks)
🧰 Additional context used
🧬 Code graph analysis (5)
apps/web/src/components/download-button.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/components/github-stars.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/components/logo-cloud.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/components/social-card.tsx (1)
packages/utils/src/cn.ts (1)
  • cn (20-22)
apps/web/src/routes/_view/index.tsx (3)
apps/web/src/components/download-button.tsx (1)
  • DownloadButton (4-32)
apps/web/src/components/logo-cloud.tsx (1)
  • LogoCloud (35-123)
apps/web/src/components/social-card.tsx (1)
  • SocialCard (18-82)
🪛 Biome (2.1.2)
apps/web/src/routes/_view/index.tsx

[error] 39-39: Avoid using target="_blank" without rel="noopener" or rel="noreferrer".

Opening external links in new tabs without rel="noopener" is a security risk. See the explanation for more details.
Safe fix: Add the rel="noopener" attribute.

(lint/security/noBlankTarget)

🔇 Additional comments (4)
apps/web/src/components/testimonial-card.tsx (1)

1-22: LGTM!

Clean, well-structured presentational component with appropriate TypeScript types. The implementation is straightforward and follows React best practices.

apps/web/src/components/logo-cloud.tsx (1)

1-123: LGTM!

Well-structured component with clean separation of concerns. The responsive grid layout and border styling create a polished logo showcase. TypeScript types are properly defined and used.

apps/web/src/components/social-card.tsx (1)

1-82: LGTM! Security attributes properly included.

Clean implementation with proper external link security (rel="noopener noreferrer" on line 59). The platform-specific configuration approach is maintainable and extensible.

Note: Line 78 uses line-clamp-15, which is quite high. This appears intentional for displaying longer testimonial content, but verify this matches the design intent.

apps/web/src/routes/_view/index.tsx (1)

4-7: Good refactoring: extracted components improve maintainability.

The refactor to import reusable components (DownloadButton, GithubStars, LogoCloud, SocialCard) instead of inline definitions improves code organization and reusability.

Comment on lines +4 to +32
export function DownloadButton() {
return (
<Link
to="/downloads"
className={cn([
"group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
"bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full",
"shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
"transition-all",
])}
>
Download now
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
strokeWidth="1.5"
stroke="currentColor"
className="h-5 w-5 ml-2 group-hover:translate-x-1 transition-transform"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="m12.75 15 3-3m0 0-3-3m3 3h-7.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
/>
</svg>
</Link>
);
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix invalid Tailwind CSS class name.

Line 10 uses bg-linear-to-t which is not a valid Tailwind CSS class. The correct class for top-directed gradients is bg-gradient-to-t.

Apply this diff:

       className={cn([
         "group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
-        "bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full",
+        "bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full",
         "shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
         "transition-all",
       ])}
📝 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
export function DownloadButton() {
return (
<Link
to="/downloads"
className={cn([
"group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
"bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full",
"shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
"transition-all",
])}
>
Download now
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
strokeWidth="1.5"
stroke="currentColor"
className="h-5 w-5 ml-2 group-hover:translate-x-1 transition-transform"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="m12.75 15 3-3m0 0-3-3m3 3h-7.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
/>
</svg>
</Link>
);
}
export function DownloadButton() {
return (
<Link
to="/downloads"
className={cn([
"group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
"bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full",
"shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
"transition-all",
])}
>
Download now
<svg
xmlns="http://www.w3.org/2000/svg"
fill="none"
viewBox="0 0 24 24"
strokeWidth="1.5"
stroke="currentColor"
className="h-5 w-5 ml-2 group-hover:translate-x-1 transition-transform"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
d="m12.75 15 3-3m0 0-3-3m3 3h-7.5M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
/>
</svg>
</Link>
);
}
🤖 Prompt for AI Agents
In apps/web/src/components/download-button.tsx around lines 4 to 32, the
Tailwind class "bg-linear-to-t" is invalid; update the class list to use the
correct gradient utility "bg-gradient-to-t" (replace "bg-linear-to-t" with
"bg-gradient-to-t" in the className array) so the top-directed background
gradient renders correctly.

Comment on lines +20 to +34
return (
<a href={`https://github.com/${ORG_REPO}`} target="_blank">
<button
className={cn([
"group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
"bg-linear-to-t from-neutral-800 to-neutral-700 text-white rounded-full",
"shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
"transition-all cursor-pointer",
])}
>
<Icon icon="mdi:github" className="text-xl" />
<span className="ml-2">{star.data ? render(star.data) : render(LAST_SEEN)} stars</span>
</button>
</a>
);
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Add security attributes to external link.

Line 21 opens an external link with target="_blank" but is missing rel="noopener noreferrer", which creates a security vulnerability. The opened page can access the window.opener object and potentially redirect the original page.

Apply this diff:

-    <a href={`https://github.com/${ORG_REPO}`} target="_blank">
+    <a href={`https://github.com/${ORG_REPO}`} target="_blank" rel="noopener noreferrer">
📝 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
return (
<a href={`https://github.com/${ORG_REPO}`} target="_blank">
<button
className={cn([
"group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
"bg-linear-to-t from-neutral-800 to-neutral-700 text-white rounded-full",
"shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
"transition-all cursor-pointer",
])}
>
<Icon icon="mdi:github" className="text-xl" />
<span className="ml-2">{star.data ? render(star.data) : render(LAST_SEEN)} stars</span>
</button>
</a>
);
return (
<a href={`https://github.com/${ORG_REPO}`} target="_blank" rel="noopener noreferrer">
<button
className={cn([
"group px-6 h-12 flex items-center justify-center text-base sm:text-lg",
"bg-linear-to-t from-neutral-800 to-neutral-700 text-white rounded-full",
"shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%]",
"transition-all cursor-pointer",
])}
>
<Icon icon="mdi:github" className="text-xl" />
<span className="ml-2">{star.data ? render(star.data) : render(LAST_SEEN)} stars</span>
</button>
</a>
);
🤖 Prompt for AI Agents
In apps/web/src/components/github-stars.tsx around lines 20 to 34, the anchor
uses target="_blank" without rel attributes, which allows the opened page to
access window.opener; add rel="noopener noreferrer" to the <a> tag to prevent
the new page from obtaining a reference to the opener and mitigate the security
vulnerability while keeping target="_blank".

Comment on lines +16 to +18
<main className="flex-1 bg-linear-to-b from-white via-stone-50/20 to-white min-h-screen">
<div className="max-w-6xl mx-auto py-12 border-x border-neutral-100">
<section className="py-16 sm:py-24">
<div className="grid grid-cols-1 lg:grid-cols-8 gap-12 items-center">
<div className="space-y-6 lg:col-span-3">
<h1 className="text-4xl sm:text-5xl font-serif tracking-tight whitespace-pre-wrap">
The AI notepad for{" "}
<Typewriter
text={["your meetings", "your lectures", "your thoughts"]}
className="text-blue-600 text-4xl sm:text-5xl font-serif tracking-tight"
speed={100}
deleteSpeed={50}
waitTime={2000}
/>
</h1>
<p className="text-lg sm:text-xl text-neutral-600 max-w-xl">
Hyprnote is a notetaking app that listens and summarizes the world around you
</p>
<div className="flex flex-col sm:flex-row gap-4 pt-2">
<div className="bg-linear-to-b from-stone-50/30 to-stone-100/30">
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix invalid Tailwind CSS class names.

Lines 16 and 18 use bg-linear-to-b and bg-linear-to-b, which are not valid Tailwind CSS classes. The correct classes for gradients are bg-gradient-to-b and similar.

Apply this diff:

-      <main className="flex-1 bg-linear-to-b from-white via-stone-50/20 to-white min-h-screen">
+      <main className="flex-1 bg-gradient-to-b from-white via-stone-50/20 to-white min-h-screen">
         <div className="max-w-6xl mx-auto py-12 border-x border-neutral-100">
-          <div className="bg-linear-to-b from-stone-50/30 to-stone-100/30">
+          <div className="bg-gradient-to-b from-stone-50/30 to-stone-100/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
<main className="flex-1 bg-linear-to-b from-white via-stone-50/20 to-white min-h-screen">
<div className="max-w-6xl mx-auto py-12 border-x border-neutral-100">
<section className="py-16 sm:py-24">
<div className="grid grid-cols-1 lg:grid-cols-8 gap-12 items-center">
<div className="space-y-6 lg:col-span-3">
<h1 className="text-4xl sm:text-5xl font-serif tracking-tight whitespace-pre-wrap">
The AI notepad for{" "}
<Typewriter
text={["your meetings", "your lectures", "your thoughts"]}
className="text-blue-600 text-4xl sm:text-5xl font-serif tracking-tight"
speed={100}
deleteSpeed={50}
waitTime={2000}
/>
</h1>
<p className="text-lg sm:text-xl text-neutral-600 max-w-xl">
Hyprnote is a notetaking app that listens and summarizes the world around you
</p>
<div className="flex flex-col sm:flex-row gap-4 pt-2">
<div className="bg-linear-to-b from-stone-50/30 to-stone-100/30">
<main className="flex-1 bg-gradient-to-b from-white via-stone-50/20 to-white min-h-screen">
<div className="max-w-6xl mx-auto py-12 border-x border-neutral-100">
<div className="bg-gradient-to-b from-stone-50/30 to-stone-100/30">
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/index.tsx around lines 16 to 18, the Tailwind
classes "bg-linear-to-b" are invalid; replace them with the correct gradient
class names such as "bg-gradient-to-b" (e.g., change both occurrences of
"bg-linear-to-b" to "bg-gradient-to-b") and verify any related gradient
direction/version is consistent with Tailwind docs.

Comment on lines 36 to 43
<a
className="decoration-dotted underline hover:text-blue-600 transition-all"
className="decoration-dotted underline hover:text-stone-600 transition-all"
href="https://github.com/fastrepl/hyprnote"
target="_blank"
>
open source
</a>
</p>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Add security attributes to external link.

Line 39 opens an external link with target="_blank" but is missing rel="noopener noreferrer". This creates a security vulnerability where the opened page can access the window.opener object.

Apply this diff (as suggested by static analysis):

                   <a
-                    className="decoration-dotted underline hover:text-stone-600 transition-all"
+                    className="decoration-dotted underline hover:text-stone-600 transition-all"
+                    rel="noopener noreferrer"
                     href="https://github.com/fastrepl/hyprnote"
                     target="_blank"
                   >
📝 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
<a
className="decoration-dotted underline hover:text-blue-600 transition-all"
className="decoration-dotted underline hover:text-stone-600 transition-all"
href="https://github.com/fastrepl/hyprnote"
target="_blank"
>
open source
</a>
</p>
<a
className="decoration-dotted underline hover:text-stone-600 transition-all"
rel="noopener noreferrer"
href="https://github.com/fastrepl/hyprnote"
target="_blank"
>
open source
</a>
🧰 Tools
🪛 Biome (2.1.2)

[error] 39-39: Avoid using target="_blank" without rel="noopener" or rel="noreferrer".

Opening external links in new tabs without rel="noopener" is a security risk. See the explanation for more details.
Safe fix: Add the rel="noopener" attribute.

(lint/security/noBlankTarget)

🤖 Prompt for AI Agents
In apps/web/src/routes/_view/index.tsx around lines 36 to 43, the external
anchor uses target="_blank" without rel attributes which allows the opened page
to access window.opener; update the <a> tag to include rel="noopener noreferrer"
(i.e., add rel="noopener noreferrer" alongside the existing target attribute) to
prevent the new page from gaining access to the opener and mitigate the security
risk.

Comment on lines +47 to 55
{/* Video - Mobile First */}
<div className="relative aspect-video w-full max-w-4xl bg-linear-to-br from-stone-50 to-neutral-50 border-t border-neutral-100 md:hidden">
<div className="absolute inset-0 flex items-center justify-center">
<div className="text-center space-y-4">
<Icon icon="mdi:play-circle-outline" className="text-6xl text-neutral-400 mx-auto" />
<p className="text-neutral-500 font-medium">Demo video coming soon</p>
</div>
</div>
</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 | 🔴 Critical

Fix invalid Tailwind CSS class name.

Line 48 uses bg-linear-to-br which is not a valid Tailwind CSS class. The correct class for bottom-right gradients is bg-gradient-to-br.

Apply this diff:

-              <div className="relative aspect-video w-full max-w-4xl bg-linear-to-br from-stone-50 to-neutral-50 border-t border-neutral-100 md:hidden">
+              <div className="relative aspect-video w-full max-w-4xl bg-gradient-to-br from-stone-50 to-neutral-50 border-t border-neutral-100 md:hidden">
📝 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
{/* Video - Mobile First */}
<div className="relative aspect-video w-full max-w-4xl bg-linear-to-br from-stone-50 to-neutral-50 border-t border-neutral-100 md:hidden">
<div className="absolute inset-0 flex items-center justify-center">
<div className="text-center space-y-4">
<Icon icon="mdi:play-circle-outline" className="text-6xl text-neutral-400 mx-auto" />
<p className="text-neutral-500 font-medium">Demo video coming soon</p>
</div>
</div>
</div>
{/* Video - Mobile First */}
<div className="relative aspect-video w-full max-w-4xl bg-gradient-to-br from-stone-50 to-neutral-50 border-t border-neutral-100 md:hidden">
<div className="absolute inset-0 flex items-center justify-center">
<div className="text-center space-y-4">
<Icon icon="mdi:play-circle-outline" className="text-6xl text-neutral-400 mx-auto" />
<p className="text-neutral-500 font-medium">Demo video coming soon</p>
</div>
</div>
</div>
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/index.tsx around lines 47 to 55, the Tailwind class
name used for the background gradient is invalid (`bg-linear-to-br`); replace it
with the correct Tailwind utility `bg-gradient-to-br` on the div so the
bottom-right gradient renders properly.

Comment on lines 37 to 42
<Link
to="/downloads"
className="px-4 h-8 flex items-center text-sm bg-linear-to-t from-blue-600 to-blue-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all"
className="px-4 h-8 flex items-center text-sm bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all"
>
Download
</Link>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Fix invalid Tailwind CSS class name.

Line 39 uses bg-linear-to-t which is not a valid Tailwind CSS class. The correct class for top-directed gradients is bg-gradient-to-t.

Apply this diff:

               <Link
                 to="/downloads"
-                className="px-4 h-8 flex items-center text-sm bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all"
+                className="px-4 h-8 flex items-center text-sm bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all"
               >
📝 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
<Link
to="/downloads"
className="px-4 h-8 flex items-center text-sm bg-linear-to-t from-blue-600 to-blue-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all"
className="px-4 h-8 flex items-center text-sm bg-linear-to-t from-stone-600 to-stone-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all"
>
Download
</Link>
<Link
to="/downloads"
className="px-4 h-8 flex items-center text-sm bg-gradient-to-t from-stone-600 to-stone-500 text-white rounded-full shadow-md hover:shadow-lg hover:scale-[102%] active:scale-[98%] transition-all"
>
Download
</Link>
🤖 Prompt for AI Agents
In apps/web/src/routes/_view/route.tsx around lines 37 to 42, the Tailwind class
"bg-linear-to-t" is invalid; replace it with the correct gradient utility
"bg-gradient-to-t" so the element uses a top-directed gradient (ensure only the
class name is changed and spacing/order of classes remains valid).

@yujonglee yujonglee merged commit fc7ce63 into main Oct 26, 2025
18 checks passed
@yujonglee yujonglee deleted the jj-branch-27 branch October 26, 2025 00:27
This was referenced Oct 26, 2025
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.

3 participants