Skip to content

Add hackathon resources page and home teaser#154

Merged
Jose-Gael-Cruz-Lopez merged 6 commits into
mainfrom
feat/resources-page
Jul 22, 2026
Merged

Add hackathon resources page and home teaser#154
Jose-Gael-Cruz-Lopez merged 6 commits into
mainfrom
feat/resources-page

Conversation

@akeight

@akeight akeight commented Jul 18, 2026

Copy link
Copy Markdown
Collaborator

Closes #153

Summary

Add a /resources field guide with stage-based tips (getting started → advanced), curated links, and a tools/templates strip
Add a home-page 2×2 resources teaser with brand colors (ink / coral / paper), scroll parallax, and deep links into each stage
Wire navigation via footer “Resources” link (Site column)

Test plan

Visit /resources — hero, stage jump nav, all five stages, tools strip, and globe/deck CTAs render

Jump links (#getting-started, #finding-people, #leveling-up, #tools) scroll to the right sections

Home page shows the 2×2 teaser between the theme marquee and submit section

Each teaser tile links to the matching /resources#… section

Scroll through the teaser — entrance animation + background parallax (respects reduced motion)

Footer → Resources goes to /resources

Spot-check mobile: teaser stacks to one column; resources page jump nav scrolls horizontally

@akeight akeight self-assigned this Jul 18, 2026
Jose-Gael-Cruz-Lopez and others added 4 commits July 22, 2026 01:22
…tile

Review follow-ups on the resources page and home teaser.

The teaser's stage numbers were written by hand and had drifted from the
guide they link to: the tile reading "Stage 03 · Leveling up" opened the
section the page numbers 04, and "Stage 04 · Tools and templates" opened a
strip that is not a stage at all. Stage numbers now come from a stage's
position in RESOURCE_STAGES, so the two cannot disagree, and the toolkit
tile is labelled "Toolkit" to match the strip it opens. The teaser's copy
is derived from the same data; only the gradients still live in the
component.

The parallax plane overhangs its tile by `inset-[-18%]` — an overhang that
scales with the tile, which is sized in vh — but travelled a fixed number
of pixels. Past ~18% of tile height the plane slid further than it
overhung and left a bare strip along the tile's edge: measured 6.4px at a
962px viewport, and worse as the viewport shortens, since the overhang
shrinks while the travel does not. Travel is now a percentage of the
plane's own height, capped below the 13.2% that the overhang can absorb,
so every tile stays covered at any viewport size.

Also: drop the never-set `image` field and its dead <img> branch, drop the
duplicate MLH organizer-guide link, and normalise guide.mlh.io to the
guide.mlh.com it redirects to.

Adds lib/resources.test.ts, which fails on the original numbering drift.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The footer link was the only way in. NAV_LINKS feeds both the nav pill and
the mobile menu, so off the home page — and on mobile everywhere — /resources
was reachable only by scrolling to the footer, the same dead end the mobile
menu was added to fix (#113).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two follow-ups on the pinned rail.

It pinned for the whole page, because a sticky element's containing block is
its parent and the rail's parent was <main>. It stayed stuck over the toolkit
and the closing CTA, long after the last section it links to. Wrapping the
rail with the sections it targets scopes the pin to that range, so it now
releases after the toolkit.

Its clearance was `scroll-mt-36` — 144px, a literal standing in for "the nav
pill plus the rail". That is the guess that broke the mobile menu (#113): the
rail is sized by px-based text, so a browser minimum-font-size setting grows
it past any literal and a jumped-to section lands underneath. The rail now
measures itself and publishes --stage-scroll-offset; sections offset by that,
keeping a 9rem fallback for the server render and for JS-off, which is what
the rail measures at default text size.

Verified by inflating the rail's link text to 24px: the rail grows 62px->81px,
the published offset follows 142px->161px, and a jump still lands flush. With
the 144px literal the same section would land 17.5px behind the rail.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Jose-Gael-Cruz-Lopez
Jose-Gael-Cruz-Lopez marked this pull request as ready for review July 22, 2026 05:57
Adding RESOURCES to NAV_LINKS grew the inline row by 110px, so the pill
needs 674px of viewport. The row switched on at `sm` (640px), which left a
640-673px band where the pill was squeezed narrower than its content and
wrapped to a second line — measured 74.2px tall against its natural 61.2px.

The row now switches on at `md` (768px), giving 744px of gutter-adjusted
space against the 649.6px the pill wants. Below that the mobile menu carries
the same links, as it already did below 640px. The menu's own breakpoint
moves with it: `md:hidden` plus the matchMedia that closes the panel when the
breakpoint is crossed, which has to agree with the CSS or the panel outlives
its own visibility (the rotate-to-landscape bug the comment there describes).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Jose-Gael-Cruz-Lopez
Jose-Gael-Cruz-Lopez merged commit 29815f7 into main Jul 22, 2026
2 checks passed
@Jose-Gael-Cruz-Lopez
Jose-Gael-Cruz-Lopez deleted the feat/resources-page branch July 22, 2026 06:14
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.

Build a resources page and link from home page

2 participants