Standards

    Testimonials pattern

    Use the shared testimonials module for adopter/foster/community stories.

    Example — featured (default)

    Featured layout supports a single highlighted story with optional random selection on load.

    Featured testimonial

    "Fostering with our rescue has been an amazing experience. The support, supplies, and guidance made everything manageable."

    AlexFoster Family

    Grid

    Grid layout works for standard multi-card sections.

    Grid testimonials

    "Fostering with our rescue has been an amazing experience. The support, supplies, and guidance made everything manageable."

    Alex

    Foster Family

    "The adoption process was clear and thoughtful. We felt supported the entire time and found the right dog for our home."

    Jordan

    Adopter

    "Our volunteer team works hard, but these stories keep us going. Seeing dogs settle into loving homes is everything."

    Team Volunteer

    Community Member

    Standard

    - Use `TestimonialsSection` instead of page-local testimonial markup.

    - Default behavior shows one random testimonial (`layout="featured"`, `featuredStrategy="randomOnLoad"`) to avoid clutter — just pass `testimonials` and let the defaults apply.

    - Opt into `layout="grid"` only when a page intentionally wants multiple testimonials shown at once.

    - An empty `testimonials` array renders nothing.

    - Keep testimonials in page/site data files, not inline component internals.

    - Text content renders server-side without JS — preserve SSR rendering, testimonials must remain readable without JS.

    - Component: `template/src/components/patterns/TestimonialsSection.tsx`