Cox Farms
Cox FarmsA homepage redesigned for momentum

Cox Farms

Redesigning Cox Farms' homepage around a single, overlooked principle: scroll depth is a cue problem, not a content problem.

Role
Senior Product Designer, Motion, Client facilitation
Client
Cox Farms
Timeline
April – June 2026 (~8 weeks)

The data looked damning: most visitors to the Cox Farms homepage never scrolled past the first content block. Scroll depth sat at 43%. The obvious move was to blow up the content.

I didn't — because the same data told on itself. The About page hit 86%, Our Brands 73%. Same content team, same audience; only the homepage stalled. So it wasn't a content problem. Something at the very top was stopping people before they got to the rest.

The redesigned homepage — where this ended up. It started somewhere very different.
“Arduous to scroll down. Like, it's, like, effortful.”
A Cox Farms stakeholder, on the old homepage

The stall was a symptom

Before anything hit Figma, we ran a design alignment workshop with the Cox team, co-led with their design director. What came out wasn't a punch list — it was a shared vocabulary for what felt off.

The old homepage — 43% of visitors never made it past the first block.
The old homepage — 43% of visitors never made it past the first block.
The design alignment workshop, where we reframed the problem as momentum, not content.

The brand had started feeling “a little too templated.” Someone called it “financial conglomerate,” and it landed: a gap between what Cox actually is — greenhouse innovation, a food-security mission — and how the homepage made you feel. Hierarchy and copy were fine. What was missing was momentum — the motion and reveals that tell you there's something worth finding below.

Three sections, rebuilt not refined

Cox arrived with a round of comps already reviewed and rejected. Three sections needed real redesigns, not touch-ups — and they weren't wrong.

The same hero on mobile, where most of the traffic actually lives.
The same hero on mobile, where most of the traffic actually lives.
“Future focused, people inspired” — a stats band rebuilt to lead with the numbers.

Each had drifted the same way: reaching for visual interest, landing on decoration. So each got the same fix — cut the effect performing for attention, replace it with motion that earns the scroll. One rule, three times.

One Simple Promise

Fanning cards that looked interactive but weren't — a false affordance, and a fast way to lose trust. I swapped them for a scroll-triggered typographic reveal: copy-driven, warm, no heavy assets competing for attention.

One Simple Promise — the fanning cards, replaced by a scroll-triggered typographic reveal.

Brand Pillars

Two variants chased visual interest and undercut it — too busy, too playful for content that needed to read as commanding. I put all four up at once, with a word-image-copy reveal and click-to-deepen. Architectural, not editorial.

Brand Pillars — all four visible at once, each opening on click to go deeper.

The Stats module

Engineering's critical path. An image was hogging the space the numbers should own, and each of the four needed its own link deeper into the site. I rebuilt the hierarchy around the numbers — four clear entry points — and got PM sign-off on the deep-links before building, not after.

The Stats module — hierarchy rebuilt around the numbers, each one a distinct way deeper into the site.

Earned Motion

The brief was “make it feel alive,” and the easy read of that is spectacle. I went the other way. If motion was the fix, it couldn't be decoration bolted onto seven sections one at a time — it had to be a system.

So I wrote the rules down as tokens, not one-off animations — each named, each fixed, every section drawing from the same set:

  • Reveal on entry, never on load — motion fires as a section scrolls in, rewarding the scroll instead of front-loading the page.
  • Parallax at 0.2–0.3 — enough for depth, quiet enough to never pull focus from the copy.
  • ~100ms stagger — one cadence, so a reveal in the Pillars reads like one in the Stats module.
  • Reduced-motion fallback throughout — every token degrades to something static and legible. Non-negotiable.

Tokenizing the motion did the quiet work a design system is supposed to: it made the handoff unambiguous. A stagger meant the same thing in code as in Figma, and no section could invent its own timing.

Motion that shows off competes with the content it's supposed to move you toward.
The full redesign, top to bottom — every section drawing on the same motion and the same system.
The full redesign, top to bottom — every section drawing on the same motion and the same system.
Product photography carrying the brand's warmth.
Product photography carrying the brand's warmth.
Two brands, one family — Bright Farms and Mucci under a single visual language.
Two brands, one family — Bright Farms and Mucci under a single visual language.

The system beneath

Motion was only the top layer. Underneath sat the part that made the whole redesign repeatable: a color foundation, semantic tokens, and a component library — so every section spoke the same language, and engineering never had to guess at a value.

The color foundation — Forest Green, Leaf Green, Warm Grey and the secondary set, with print values carried through for handoff.
The color foundation — Forest Green, Leaf Green, Warm Grey and the secondary set, with print values carried through for handoff.
Semantic tokens mapped onto a live component — color.brand.primary, color.text.primary, shadow.card.sm — so nothing on the page was a magic value.
Semantic tokens mapped onto a live component — color.brand.primary, color.text.primary, shadow.card.sm — so nothing on the page was a magic value.
The component library — every section built as a reusable, documented piece.
The component library — every section built as a reusable, documented piece.

Impact

The homepage went live June 4, 2026 — pushed at 5 AM, live by 8. The full scroll-depth read lands after 30 days of tracking, so the final number is still in the air. But the early signal is good: scroll depth is already lifting, and more people are making it past the block that used to stop them.

What's already clear: the sections that took the most iteration — Pillars, Stats, Promise — are the exact ones the client pushed back on hardest in round one. Where the feedback was sharpest, the brief was still being written. Treating that friction as signal, not noise, was the right call.

What I'd do differently

Set the scroll-depth target before the first client presentation. A number like “65%+” would have anchored every decision and protected scope up front.

Get PM sign-off on interactive scope before designing it. The stats deep-links and the reusable carousel were scope questions as much as design ones.

Say the insight out loud, in the room. A few times I facilitated the client toward a conclusion instead of just naming the design read — “here's what I think the problem actually is” is the stronger move.

The content was never the variable

Our field loves to treat scroll depth as a content problem — too many words up top, wrong hierarchy. Sometimes it is. Not here. The same team ran the interior pages to 73–86% while the homepage stalled at 43%. The variable was never the content; it was the experience of moving through the page. Every brief that opens with “users aren't scrolling” deserves one question first: did we give them a reason to?

Deliverables
UI comps across 7 homepage sections
Motion token spec + interaction documentation
Color, token, and component foundations
Engineering-ready Figma handoff
Client workshop facilitation
Team
Fernando MejiaProduct
Nicolas KnightUX
Rachael CortellessaUX / wireframes
Barney JeffriesFront-end
Oscar SanchezBack-end
Stephanie CampbellDesign director

Cox Farms case study