From c017b22bead31f9afeaac6cd980920d41c2eac12 Mon Sep 17 00:00:00 2001
From: water <672684719@qq.com>
Date: Wed, 5 Aug 2026 20:13:22 +0800
Subject: [PATCH 1/8] =?UTF-8?q?fix:=20mobile=20responsive=20polish=20for?=
=?UTF-8?q?=20landing=20page=20=E2=80=94=20full-screen=20nav=20drawer,=203?=
=?UTF-8?q?75px=20breakpoints,=20responsive=20CTA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
index.html | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 79 insertions(+), 6 deletions(-)
diff --git a/index.html b/index.html
index e1bac3d05..4dda14384 100644
--- a/index.html
+++ b/index.html
@@ -17,6 +17,12 @@
line-height: 1.6;
color: #333;
overflow-x: hidden;
+ -webkit-overflow-scrolling: touch;
+ }
+
+ img {
+ max-width: 100%;
+ height: auto;
}
.container {
@@ -319,19 +325,27 @@
@media (max-width: 768px) {
.nav-links {
+ display: none;
position: fixed;
- top: 100%;
+ top: 0;
left: 0;
width: 100%;
- background: white;
+ height: 100vh;
+ background: rgba(255, 255, 255, 0.98);
flex-direction: column;
- padding: 2rem;
- transform: translateX(-100%);
- transition: transform 0.3s ease;
+ justify-content: center;
+ align-items: center;
+ padding: 5rem 2rem;
+ gap: 2rem;
+ z-index: 999;
}
.nav-links.active {
- transform: translateX(0);
+ display: flex;
+ }
+
+ .nav-links a {
+ font-size: 1.3rem;
}
.mobile-menu {
@@ -340,6 +354,8 @@
border: none;
font-size: 1.5rem;
cursor: pointer;
+ z-index: 1000;
+ position: relative;
}
.hero-buttons {
@@ -352,6 +368,45 @@
}
}
+ @media (max-width: 375px) {
+ .hero h1 {
+ font-size: 1.8rem;
+ line-height: 1.2;
+ }
+
+ .hero p {
+ font-size: 1rem;
+ }
+
+ .stat-number {
+ font-size: 2rem;
+ }
+
+ .section-title {
+ font-size: 1.6rem;
+ }
+
+ .token-feature[style*="span 2"] {
+ grid-column: span 1 !important;
+ }
+
+ .cta-content h2 {
+ font-size: 1.5rem;
+ }
+
+ .cta-content p {
+ font-size: 1rem;
+ }
+
+ .step {
+ padding: 1.5rem;
+ }
+
+ .token-feature {
+ padding: 1.5rem;
+ }
+ }
+
/* Animations */
.fade-in {
opacity: 0;
@@ -565,9 +620,27 @@
Ready to Ship Code and Earn?
// Mobile menu toggle
function toggleMenu() {
const navLinks = document.querySelector('.nav-links');
+ const menuIcon = document.getElementById('menu-icon');
navLinks.classList.toggle('active');
+ if (menuIcon) {
+ menuIcon.classList.toggle('fa-bars');
+ menuIcon.classList.toggle('fa-times');
+ }
}
+ // Close mobile menu when clicking a link
+ document.querySelectorAll('.nav-links a').forEach(link => {
+ link.addEventListener('click', () => {
+ const navLinks = document.querySelector('.nav-links');
+ const menuIcon = document.getElementById('menu-icon');
+ navLinks.classList.remove('active');
+ if (menuIcon) {
+ menuIcon.classList.add('fa-bars');
+ menuIcon.classList.remove('fa-times');
+ }
+ });
+ });
+
// Smooth scrolling
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
From 0df91cc4677d3c312c4cc42c06ab0826921a70d4 Mon Sep 17 00:00:00 2001
From: water <672684719@qq.com>
Date: Wed, 5 Aug 2026 20:13:44 +0800
Subject: [PATCH 2/8] fix: responsive padding and font size on mobile for
BountyCard
---
frontend/src/components/bounty/BountyCard.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/frontend/src/components/bounty/BountyCard.tsx b/frontend/src/components/bounty/BountyCard.tsx
index aa974a474..b5891dcda 100644
--- a/frontend/src/components/bounty/BountyCard.tsx
+++ b/frontend/src/components/bounty/BountyCard.tsx
@@ -61,7 +61,7 @@ export function BountyCard({ bounty }: BountyCardProps) {
initial="rest"
whileHover="hover"
onClick={() => navigate(`/bounties/${bounty.id}`)}
- className="relative rounded-xl border border-border bg-forge-900 p-5 cursor-pointer transition-colors duration-200 overflow-hidden group"
+ className="relative rounded-xl border border-border bg-forge-900 p-4 sm:p-5 cursor-pointer transition-colors duration-200 overflow-hidden group"
>
{/* Row 1: Repo + Tier */}
@@ -102,7 +102,7 @@ export function BountyCard({ bounty }: BountyCardProps) {
{/* Row 4: Reward + Meta */}
-
+
{formatCurrency(bounty.reward_amount, bounty.reward_token)}
From 74d2b88343a0402f47c0e678b9d924d756508d55 Mon Sep 17 00:00:00 2001
From: water <672684719@qq.com>
Date: Wed, 5 Aug 2026 20:13:47 +0800
Subject: [PATCH 3/8] fix: responsive terminal card, headline, and stats on
mobile for HeroSection
---
frontend/src/components/home/HeroSection.tsx | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/frontend/src/components/home/HeroSection.tsx b/frontend/src/components/home/HeroSection.tsx
index e37307166..ca448e77e 100644
--- a/frontend/src/components/home/HeroSection.tsx
+++ b/frontend/src/components/home/HeroSection.tsx
@@ -98,7 +98,7 @@ export function HeroSection() {
variants={fadeIn}
initial="initial"
animate="animate"
- className="w-full max-w-xl rounded-xl border border-border bg-forge-900/90 backdrop-blur-sm overflow-hidden shadow-2xl shadow-black/50"
+ className="w-full max-w-xl rounded-xl border border-border bg-forge-900/90 backdrop-blur-sm overflow-hidden shadow-2xl shadow-black/50 mx-2 sm:mx-0"
>
{/* Title bar */}
@@ -111,7 +111,7 @@ export function HeroSection() {
{/* Terminal body */}
-
+
$
@@ -154,7 +154,7 @@ export function HeroSection() {
initial={{ opacity: 0, y: 16 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.3, duration: 0.5 }}
- className="font-display text-4xl md:text-5xl font-bold text-text-primary tracking-wider text-center mt-10"
+ className="font-display text-2xl sm:text-3xl md:text-5xl font-bold text-text-primary tracking-wider text-center mt-10 px-2"
>
THE AI-POWERED BOUNTY{' '}
FORGE
@@ -164,7 +164,7 @@ export function HeroSection() {
initial={{ opacity: 0, y: 12 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: 0.45, duration: 0.5 }}
- className="font-sans text-lg text-text-secondary text-center mt-4 max-w-lg"
+ className="font-sans text-base sm:text-lg text-text-secondary text-center mt-4 max-w-lg px-4"
>
Fund bounties. Ship code. Earn rewards.
@@ -211,7 +211,7 @@ export function HeroSection() {
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ delay: 0.8, duration: 0.5 }}
- className="flex items-center justify-center gap-6 mt-8 font-mono text-sm text-text-muted"
+ className="flex flex-wrap items-center justify-center gap-3 sm:gap-6 mt-8 font-mono text-xs sm:text-sm text-text-muted px-2"
>
From 1b850640e05dd4146d05ebb036679613bfa3f52f Mon Sep 17 00:00:00 2001
From: water <672684719@qq.com>
Date: Wed, 5 Aug 2026 20:13:50 +0800
Subject: [PATCH 4/8] fix: responsive grid layout, filter pills scroll, and
section title on mobile
---
frontend/src/components/bounty/BountyGrid.tsx | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/frontend/src/components/bounty/BountyGrid.tsx b/frontend/src/components/bounty/BountyGrid.tsx
index 7709ab94c..5e0758cf5 100644
--- a/frontend/src/components/bounty/BountyGrid.tsx
+++ b/frontend/src/components/bounty/BountyGrid.tsx
@@ -26,8 +26,8 @@ export function BountyGrid() {
{/* Header row */}
-
-
Open Bounties
+
+
Open Bounties
{/* Filter pills */}
-
+
{FILTER_SKILLS.map((skill) => (