-
Notifications
You must be signed in to change notification settings - Fork 1
Copilot/update homepage dashboard #61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -80,7 +80,7 @@ | |||||
| <div className="inline-flex items-center space-x-2 bg-white rounded-full px-4 py-1.5 shadow-sm border border-emerald-100 mb-6"> | ||||||
| <span className="flex h-2 w-2 rounded-full bg-emerald-500"></span> | ||||||
| <span className="text-sm font-semibold text-emerald-800 tracking-wide uppercase"> | ||||||
| Free forever for the basics | ||||||
| Made for runners by a runner | ||||||
| </span> | ||||||
| </div> | ||||||
| <h1 className="text-4xl lg:text-6xl font-extrabold text-slate-900 tracking-tight leading-[1.1] mb-6"> | ||||||
|
|
@@ -100,7 +100,7 @@ | |||||
| icon={ArrowRight} | ||||||
| onClick={() => navigate("/calculator")} | ||||||
| > | ||||||
| Get Started Free | ||||||
| Get Started | ||||||
| </Button> | ||||||
| <Button variant="secondary" size="lg" onClick={scrollToFeatures}> | ||||||
| See How It Works | ||||||
|
|
@@ -121,29 +121,36 @@ | |||||
|
|
||||||
| {/* Visual / Dashboard Mockup */} | ||||||
| <div className="relative mx-auto w-full max-w-lg lg:max-w-none"> | ||||||
| <div className="relative rounded-2xl bg-white shadow-2xl border border-slate-200 overflow-hidden"> | ||||||
| <div | ||||||
| className="relative rounded-2xl bg-white shadow-2xl border border-slate-200 overflow-hidden cursor-pointer hover:shadow-emerald-200 hover:border-emerald-300 transition-all duration-200 group" | ||||||
| onClick={() => navigate("/race")} | ||||||
|
Check warning on line 126 in vite-project/src/components/layout/Landing.tsx
|
||||||
| onKeyDown={(e) => (e.key === "Enter" || e.key === " ") && navigate("/race")} | ||||||
|
Check warning on line 127 in vite-project/src/components/layout/Landing.tsx
|
||||||
| role="link" | ||||||
|
Comment on lines
+124
to
+128
|
||||||
| tabIndex={0} | ||||||
| aria-label="Browse race courses" | ||||||
| > | ||||||
| <div className="bg-slate-50 px-4 py-3 border-b border-slate-200 flex items-center space-x-2"> | ||||||
| <div className="w-3 h-3 rounded-full bg-red-400"></div> | ||||||
| <div className="w-3 h-3 rounded-full bg-yellow-400"></div> | ||||||
| <div className="w-3 h-3 rounded-full bg-green-400"></div> | ||||||
| <div className="ml-4 text-xs text-slate-400 font-mono"> | ||||||
| trainpace.com/dashboard | ||||||
| <div className="ml-4 text-xs text-slate-400 font-mono group-hover:text-emerald-600 transition-colors"> | ||||||
| trainpace.com/race | ||||||
| </div> | ||||||
| </div> | ||||||
| <div className="p-6 grid gap-6"> | ||||||
| {/* Mock UI Elements */} | ||||||
| {/* Mock UI Elements - Race page preview */} | ||||||
| <div className="flex items-center justify-between border-b border-slate-100 pb-4"> | ||||||
| <div> | ||||||
| <div className="text-sm text-slate-500 font-medium uppercase"> | ||||||
| Next Long Run | ||||||
| Race Courses | ||||||
| </div> | ||||||
| <div className="text-2xl font-bold text-slate-900"> | ||||||
| 18 Miles{" "} | ||||||
| <span className="text-emerald-600">@ 8:45/mi</span> | ||||||
| Boston Marathon{" "} | ||||||
| <span className="text-orange-500">Rolling Hills</span> | ||||||
| </div> | ||||||
| </div> | ||||||
| <div className="h-10 w-10 bg-emerald-100 rounded-full flex items-center justify-center text-emerald-600"> | ||||||
| <Activity size={20} /> | ||||||
| <Map size={20} /> | ||||||
| </div> | ||||||
| </div> | ||||||
|
|
||||||
|
|
@@ -261,8 +268,8 @@ | |||||
| solution: "Personalized gel timing and carb calculations.", | ||||||
| }, | ||||||
| { | ||||||
| problem: "Coaches are expensive ($150+/mo).", | ||||||
| solution: "TrainPace is 100% free, forever.", | ||||||
| problem: "I want to know what pace I should be going per km.", | ||||||
| solution: "Get your exact per-km pace zones from any recent race time.", | ||||||
|
||||||
| solution: "Get your exact per-km pace zones from any recent race time.", | |
| solution: "Get your exact per km pace zones from any recent race time.", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
onKeyDowntriggers navigation on Space but doesn’t callpreventDefault(), so Space can also scroll the page while the element is focused. Also, Space activation is expected forrole="button"rather thanrole="link"(links generally activate on Enter). Align the role/keyboard interaction and prevent the default Space behavior when handling it.