Huron Valley started as a fictional landscaping site, not a campaign for a real contractor. I wanted the page to answer two practical questions: what kind of work does this business do, and where do I go next?

That led to a gallery-first layout and a mobile bar with two persistent actions. The interesting part is how those pieces work together. The gallery gives someone a reason to stay; the bar means they do not have to retrace the page to find contact details.

01 / FIELD NOTESLet the examples do the opening work

The original page leads with four paired before-and-after examples. Six services, review-style content, and the service-area list follow. Instead of opening with a long introduction, the layout introduces the work and then adds context.

Those are choices made for a fictional demo. The images and review-style entries are not documented client evidence, and the source does not contain a conversion experiment. “Proof first” describes the intended hierarchy; it is not a claim that this demo proved a business result.

In a real project, the same layout would only be as useful as the material placed in it: permitted photos, accurate descriptions, and genuine customer feedback.

02 / FIELD NOTESGive the two mobile actions different jobs

The fixed bottom bar has a quote button and a phone link. The quote button calls handleScrollToQuote; the phone link uses a tel: destination built from the shared contact record. The md:hidden class expresses the source's larger-screen visibility rule.

The inspector below separates those responsibilities. It does not execute the original handler or initiate a call.

SOURCE INSPECTOR

Two actions. Different responsibilities.

Inspect the named handler, link, and visibility rule without executing them.

SOURCE CONNECTIONonClick={handleScrollToQuote}Quote section

SCOPE OF THIS EXCERPT

A handler is connected.

The button references handleScrollToQuote. The function body is not included in the supplied excerpt.

Reaching a form is not the same as delivering it.

Source-derived connections, not a live phone link or executed component. The unusual original shadow class is preserved in the code block below.
Quote: named handler. Phone: tel: link from shared contact data. Visibility: md:hidden. The excerpt does not show the surrounding layout or form backend.

A scroll action helps someone reach a form. It does not submit that form. A phone link offers a calling path, not a guarantee that someone answers. Naming each step precisely keeps a small interface from promising more than it does.

03 / FIELD NOTESThe implementation is small, but worth reading carefully

The application uses React 19, TypeScript, Vite, and Tailwind CSS v4, deployed as static assets on a Cloudflare Worker. Services, gallery pairs, reviews, and contact information are typed data in data.ts.

Here is the supplied StickyCallButton.tsx excerpt. Its unusual shadow class remains exactly as published. The live article still displayed the same string when checked on September 29, 2026. Without the original repository, I cannot establish whether it is a source typo or a publication error. This is an excerpt to inspect, not a verified drop-in component.

src/components/StickyCallButton.tsx · unusual original class retained / TSX
<div id="mobile-sticky-bar"
  className="fixed bottom-0 left-0 right-0 z-40 bg-white/95 backdrop-blur-md border-t border-gray-200 px-4 py-3 shadow-[_-px_16px_rgba(0,0,0,0.06)] flex items-center gap-3 md:hidden">
  <button onClick={handleScrollToQuote}
    className="flex-1 flex items-center justify-center gap-2 py-2.5 px-3 bg-emerald-50 hover:bg-emerald-100 text-emerald-800 font-semibold text-sm rounded-lg border border-emerald-200/50 transition-colors">
    <Calendar className="w-4 h-4" />
    <span>Get Free Quote</span>
  </button>
  <a href={`tel:${COMPANY_CONTACT.phoneRaw}`}
    className="flex-1 flex items-center justify-center gap-2 py-2.5 px-3 bg-emerald-700 hover:bg-emerald-800 text-white font-bold text-sm rounded-lg shadow-sm transition-colors">
    <Phone className="w-4 h-4 fill-current" />
    <span>Call {COMPANY_CONTACT.phone}</span>
  </a>
</div>
Source excerpt · not executed in this design sample · scroll code horizontally on narrow screens

The visible structure is useful even with that limitation: a container fixed to the bottom, two actions with different destinations, and shared contact data. The snippet does not show the implementation of handleScrollToQuote, the surrounding page spacing, or the delivery code for the quote form.

04 / FIELD NOTESKeep the original next steps separate

The original write-up identifies two improvements: add a backend to deliver quote requests, and consider an interactive slider for the before-and-after pairs.

Neither becomes complete because this portfolio page now has an interactive graphic. The documented gallery uses paired images; the quote path is still a front-end demonstration in the supplied account. A delivery integration would need its own implementation and checks.

That is the useful lesson from this small build. A clear path through a page is part of the job. Being precise about where the path stops is part of it too.

Source, dates, and what this page verifies

This rewrite is based on the supplied fictional-business project and article originally published July 17, 2026. Original dates and source addresses are retained. The original repository and live application were not audited.

The public articles were checked again on September 29, 2026: the unusual Huron shadow class and missing Maple print-CSS numbers remained visible. Both original excerpts are preserved, not silently repaired.

New phone/menu illustrations, sample menu data, category/search controls and print-card composition are labeled teaching examples. No photographs, client results, reviews, delivery or production feature claims are invented. The fixed sample QR points at the published Maple demo; no table ID or analytics are added.

Read docs/batch-5/SOURCE-REVIEW.md for sample CSS choices, retained code, external documentation and publication work. Print-media checks do not replace a physical printer/scan check.

Open the original published source ↗