One self-contained page per new location, reached by scanning the QR code on the printed opening poster.
cp -R openings/_template openings/charlestown
Then open index.html and replace every . Search for |
Charlestown | |
| `` | charlestown — used as the GA opening_location param |
|
| `` | Opening Soon / Now Open — used in the title and share tags | |
| `` | the gold line above the headline: OPENING SOON / NOW OPEN / OPENING MARCH 3 | |
| `` | the single line under the logo. Keep it to one line — the location name lives in the hero artwork, not in HTML | |
| `` | transparent-PNG hero artwork. Must be a hosted URL for the Square build — a relative path won’t resolve inside an embed | |
| `` | same artwork as WebP, served first via <picture>; the PNG is the fallback |
|
| `` | describe the sandwich, not the layout | |
| `` | full street address (add a <br> to split it over two lines) |
|
| `` | Google/Apple Maps link | |
| `` | e.g. Mon–Fri 7a–2p · Sat–Sun 8a–3p | |
| `` | the page’s own canonical URL, for OG tags | |
| `` | share image, 1200×630 | |
| `` | https://www.mikeandpattys.com/loyalty-program |
|
| `` | https://www.mikeandpattys.com/s/order |
|
| `` | https://www.mikeandpattys.com/hours-and-locations |
|
| `` | https://www.workstream.us/j/a6e56262/mike-pattys/positions |
|
| `` | https://www.instagram.com/mikeandpattys |
The GA measurement ID is hardcoded (G-8YPWVHZ04H) — it’s the same for every page.
Filenames are lowercase and hyphenated (carolina-caviar-hero.png / .webp) — spaces force %20 escaping in URLs and cause avoidable breakage once the file is hosted.
Requirements for a new location’s artwork:
.hero-shot horizontal margins at 0. They were negative when the hero was full-bleed; left in place against width: 100% they shove the artwork off-centre.Matched to the live site’s own computed styles rather than approximated:
#074e44 (site footer bg), #c2e6dd (site footer text), #047c6c (site button fill). One exception: the site’s #91aca6 muted grey only hits 3.97:1 on that green, which fails WCAG AA, so muted text here uses #a8c4bd (5.18:1).--maker-shape-button-border-radius: 0px. Rounded cards read as off-system.<h1> is visually hidden, not deleted. Text baked into an image is invisible to screen readers, search engines and link previews. h1.sr-only carries “Mike & Patty’s --mp-gold); the sub-note darkens to full green at the same time because #2c6a5f on gold is only 3.22:1.Delete any secondary row that doesn’t apply. They’re plain <a class="btn btn-secondary"> blocks — removing one needs no other change.
Print the QR against a redirect URL you control (a short link, or a Square page that forwards). That link then forwards to wherever the page actually lives. Hosting can move from Square to openings.mikeandpattys.com later without reprinting a single poster.
Put the UTM tags on the redirect target so scans land as attributed pageviews:
?utm_source=poster&utm_medium=qr&utm_campaign=charlestown_opening
opening_link_click for every a[data-mp-link]. To add a tracked link, just give it a data-mp-link value; nothing else to wire up.The GA4 property is G-8YPWVHZ04H (already hardcoded — same on every page). Full wiring instructions, including the custom dimensions you must register before posters go up and the cross-domain settings, are in GA-SETUP.md.
BentonSans is loaded cross-origin from www.mikeandpattys.com. Verified 2026-09-02: those files return access-control-allow-origin: *, so they load fine from GitHub Pages or any other origin. font-display: swap means a font failure degrades to the fallback stack rather than blocking render.
index.html — the source of truth. Standalone; includes the GA loader. Host on GitHub Pages.square-embed.html — generated, do not hand-edit. GA loader stripped, outer document scaffolding removed, ready to paste into a Square “Embed Code” section.Regenerate after any edit:
sh openings/make-square-version.sh charlestown
The pennant logomark is inlined as SVG rather than linked, so the block carries its own artwork and needs nothing hosted.
Built to be origin-independent — it works as a GitHub Pages page on openings.mikeandpattys.com (CNAME, DNS via Hover) or, in the interim, pasted into a Square Online page. If it goes into Square, note the sitewide injected .custom-code-container { margin-top: -2em; } rule affects every custom embed.