Standards
Memorial pattern
An "In Loving Memory" tribute for animals who couldn't be saved — one card template for both a multi-photo group tribute and a single dog's fuller story.
Example
The same card template handles both real shapes this pattern was built from: a short group tribute with a badge and multiple photos, and a single dog's fuller story with dates, a closing line, and a link out to a reflection post.
In Loving Memory
Squirtle
Our founding rescue
Rescued in 2020 and beloved by everyone who met him. Squirtle passed away this year, but will always be remembered as the one who started it all.
Sweet Hops
January 2026 – May 2026
Sweet Hops came to us during an emergency rescue moment, already very sick but still surrounded by people trying to help. His time was far too short, but he was not alone.
He was cared for, comforted, and loved. His story reminds us why rescue work matters, even on the hardest days.
Our fight continues.
Standard
- An entry with an empty photos array renders a paw-icon fallback — never a broken image.
- When entries is empty, the section renders emptyMessage.
- A site's data/memorials.ts must import MemorialEntry from @/components/patterns/MemorialSection — never hand-declare a lookalike shape.
- One card template handles every entry — no per-entry layout flags. Fields that aren't provided (badge, dates, closingLine, externalHref) are simply omitted, not shown empty.
- Component: `template/src/components/patterns/MemorialSection.tsx`
Template