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

      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

      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`