# Masonry testimonial grid

Schema: Design Details SECTION.md v3.2
Website: pliability // #1 mobility, stretching + recovery app
Source: https://pliability.com/
Source section IDs: d10bf44b-abc7-4102-9819-169f36744ae8
Status: AI analysed; vocabulary promotion is automated

## Builder's note

What makes it work:
- A staggered masonry of video, image and quote cards in varied sizes feels like a real social feed, so the proof reads as authentic.
- Dark #1C1C1E cards with consistent radii sit on a black canvas, which keeps the collage orderly while the headline threads through the gaps.
- The large 60px headline in white dominates the small card text, so the section's message is clear before anyone reads a review.

What a screenshot can't show:
- Cards slide upward as the user scrolls, in a scroll-linked reveal seen around 29-34s; no other animation was recorded.
- The headline is 60px with 69px line height and -1.8px tracking, while the small labels are 12px medium with -0.1px tracking. Card widths range from about 271px to 658px.

Borrow: Mix card sizes and media types in one tight grid, with a single oversized headline layered through it, to make social proof feel alive and structured.
Leave alone: Don't copy the FK Grotesk typeface (use a neutral grotesque like Inter Tight), the neon yellow-green #EDFD3A action colour, or the app's own UGC clips and names.

## Classification

- Type: testimonials
- Layout: Dense, staggered masonry grid of varying sized cards with a central headline overlay.
- Styles: bold, photographic, playful
- Confidence: 95%

## Purpose and structure

A dynamic masonry grid of user-generated content, including text reviews and vertical videos, that slides into view.

Visual signature: A chaotic but structured arrangement of dark user review cards and short video clips surrounding the words 'What people are saying'.

## Components

- heading
- review-cards
- video-cards
- masonry-grid

## Typography

- Display: FK Grotesk Regular — 60px 400
- Heading: FK Grotesk Regular — 40px 400
- Body: FK Grotesk Regular — 16px 400
- Mono: FK Grotesk Mono Medium — 12px 500

## Functional palette

- Canvas: canvas #000000
- Text: text #FFFFFF
- Primary-Action: primary action #EDFD3A
- Muted-Text: muted text #8F8F92
- Surface: surface #1C1C1E

## Motion evidence

- 29.0–34.0s — Multiple cards featuring user testimonials and videos slide upwards as the user scrolls down. (96% confidence)

## Section quality

Overall: 60.95/100 (Good)
Scored coverage: 100%

- Typography: 58 — Uses the site's large FK Grotesk display headline ('What people are saying') overlapping the card grid, with small mono-ish labels inside cards for names, but body copy inside testimonial cards is small, low-contrast gray-on-dark and visually secondary to the imagery, limiting typographic craft to a single bold move. Next tier: Needs more deliberate type hierarchy within the cards themselves (quote emphasis, attribution treatment) rather than relying solely on the oversized overlay headline for impact.
- Composition: 66 — Dense staggered masonry grid of varying card sizes (video, square image, wide quote cards) with the headline threaded behind/through the cards creates a layered, collage-like structure that is genuinely more considered than a simple testimonial carousel; asymmetry and overlap are intentional and controlled via consistent radii and dark surfaces. Next tier: Edge cards are partially cropped/cut off at the frame in the crop, and the headline is partially obscured by cards, suggesting the overlay-text-behind-grid conceit isn't fully resolved at this breakpoint; tighter integration of text and grid boundary would be needed.
- Motion: 55 — Gemini reports a single timestamped moment (29-34s) of cards sliding upward on scroll, which is a straightforward scroll-linked reveal rather than a distinctive choreographed interaction. Next tier: Only one generic upward-slide behavior is evidenced; no staggered timing, card-specific easing, or secondary motion (e.g., video autoplay sync, hover states) is confirmed to elevate this beyond a standard reveal.
- Content: 62 — Mixes real UGC vertical video, user avatars, and quoted reviews with specific names, directly reinforcing social proof; the content types (video + text + avatar) are varied and feel authentic rather than templated. Next tier: Quote text is fairly generic marketing praise and the layout doesn't visually differentiate video testimonials from text ones in a meaningful hierarchy beyond size/position.
- Originality: 64 — The chaotic-but-structured masonry collage with an overlaid headline reading through negative space between cards is a more distinctive take on testimonials than a standard slider or uniform grid, and mixing vertical video clips into the grid adds a fresh, social-media-native texture. Next tier: The core pattern (masonry UGC wall with large overlay headline) is an established trend in current web design; nothing here (e.g., unique interaction, unexpected card behavior) pushes it past a well-executed version of a familiar idea.
- Adaptability: 60 — Structure (grid positions, card sizes, radii, dark surface color, pill CTA) is clearly separable from the specific UGC content and could be reskinned with different testimonials/videos using the same staggered layout logic and token set (color-1 canvas, color-16 surface, 8px radius). Next tier: Reliance on specific absolute pixel positioning for the masonry arrangement (rather than a documented responsive grid system) makes faithful structural reuse at other breakpoints uncertain without additional layout logic.

Strengths:
- Layered masonry grid of mixed media (video, image, text cards) creates a collage effect more dynamic than a standard testimonial carousel
- Headline threads behind/through the card grid, integrating typography with the content layer rather than sitting in a separate zone
- Real UGC vertical video alongside quoted reviews adds authentic texture and variety

Weaknesses:
- Testimonial body text is small and low-contrast against dark card backgrounds, undercutting readability
- Only one generic scroll-triggered upward slide is evidenced, limiting motion sophistication
- Cards appear cropped at frame edges, suggesting the overlay/grid composition isn't fully resolved at this viewport
- The masonry pattern itself is a common current social-proof convention rather than a novel structural idea

Why it does not reach the next tier: The grid's layered collage composition and content mix are well-executed, but the motion is a single basic scroll reveal, text hierarchy within cards is underdeveloped, and the overall pattern sits within an established UGC-wall convention rather than introducing a distinctive mechanic that would justify a 'strong/memorable' rating.

## Adaptation guidance

- Effort: Medium
- Guidance: Rebuild using a responsive masonry/grid system (e.g., CSS grid with span rules or a JS masonry library) rather than fixed pixel coordinates, keep the overlay headline layered behind cards with z-index control, and maintain card radius/surface tokens while swapping in new testimonial content and media.

What transfers:
- Staggered masonry grid logic with mixed card sizes and media types
- Dark surface cards with consistent 8px radius against black canvas
- Overlay headline positioned behind/through the content grid
- Avatar + name + quote card pattern for text testimonials

Dependencies:
- Specific absolute pixel positions used for masonry arrangement at the captured 1440px viewport
- Real UGC video assets and user avatar images
- FK Grotesk font family and token palette (black canvas, yellow-green accent, dark gray surface)

## Living vocabulary

- No reusable vocabulary candidates were supported by this section.

Only terms with status `active` enter the public taxonomy. Deferred and proposed terms remain available to later AI passes; rejected terms remain as provenance so they are not repeatedly reinvented.

## Provenance and limitations

- Section boundaries and naming: Gemini Pro visual observation
- Motion observations: Gemini Pro direct-video analysis
- Quality judgment: Claude
- Exact design facts: browser/CSS extraction at website scope
- Rubric: Design Details section rubric 3.2 (Typography 20%, Composition 20%, Motion 15%, Content 15%, Originality 15%, Adaptability 15%)
- Motion scoring based on a single Gemini-reported interval; other interactions (hover, video autoplay) not confirmed
- No animation parameter data supplied despite animations.json reference, so easing/stagger details are unknown
- Crop shows partial cut-off cards, so full grid resolution at section boundaries can't be fully assessed

## Usage guidance

Use this section as design evidence. Create an original implementation; do not reproduce the source copy, assets, or proprietary composition exactly.

## Build blueprint v3.2

### Purpose and classification

- Canonical type: testimonials
- Source type: testimonials
- Structure: grid
- Layout: Dense, staggered masonry grid of varying sized cards with a central headline overlay.
- Styles: bold, photographic, playful
- Components: heading, review-cards, video-cards, masonry-grid
- Purpose: A dynamic masonry grid of user-generated content, including text reviews and vertical videos, that slides into view.
- Visual signature: A chaotic but structured arrangement of dark user review cards and short video clips surrounding the words 'What people are saying'.
- Place on the page: 13 of 20, after Product UI (`0ecb8dc0-356d-4431-bb5a-43aacffadb45`), before Testimonials (`61a5c183-b252-48ae-9bfd-6bd8b2b1ea0a`)

### Crop and composition

- Crop: 960×600px; aspect ratio 1.6:1
- Page bounds: 17160–22182px of 26954px
- Guidance: Keep a clear anchor card and consistent internal card rules so the grid reads as one system.

### Exact typography evidence

The sectionScale values were measured inside this crop. The siteRoles values explain how those faces function across the source website; they must not replace section measurements.

```json
{
  "sectionScale": [
    {
      "role": "section heading",
      "family": "FK Grotesk Regular",
      "stack": "\"FK Grotesk Regular\", \"FK Grotesk Regular Placeholder\", sans-serif",
      "size": "60px",
      "weight": "400",
      "lineHeight": "69px",
      "letterSpacing": "-1.8px",
      "sample": "What people",
      "element": "h2",
      "occurrences": 2,
      "sourceId": "font-7"
    },
    {
      "role": "body/supporting copy",
      "family": "FK Grotesk Medium",
      "stack": "\"FK Grotesk Medium\", \"FK Grotesk Medium Placeholder\", sans-serif",
      "size": "12px",
      "weight": "500",
      "lineHeight": "15.6px",
      "letterSpacing": "-0.1px",
      "sample": "Try free for 7 days.",
      "element": "p",
      "occurrences": 3,
      "sourceId": "font-24"
    }
  ],
  "siteRoles": [
    {
      "role": "display",
      "size": "60px",
      "family": "FK Grotesk Regular",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-3: computed CSS at 1440×1000; AI role: FK Grotesk Regular, 60px, -1.8px tracking. Used for prominent headings like 'Daily mobility for everyone.'",
      "sampleId": "font-3",
      "confidence": 0.95,
      "lineHeight": "60px",
      "letterSpacing": "-1.8px"
    },
    {
      "role": "heading",
      "size": "40px",
      "family": "FK Grotesk Regular",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-1: computed CSS at 1440×1000; AI role: FK Grotesk Regular, 40px, -1.2px tracking. Used for section headings and large statements.",
      "sampleId": "font-1",
      "confidence": 0.9,
      "lineHeight": "46px",
      "letterSpacing": "-1.2px"
    },
    {
      "role": "body",
      "size": "16px",
      "family": "FK Grotesk Regular",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-12: computed CSS at 1440×1000; AI role: FK Grotesk Regular, 16px. Used for primary descriptive text and paragraphs.",
      "sampleId": "font-12",
      "confidence": 0.9,
      "lineHeight": "24px",
      "letterSpacing": "-0.2px"
    },
    {
      "role": "mono",
      "size": "12px",
      "family": "FK Grotesk Mono Medium",
      "source": "computed",
      "traits": "uppercase",
      "weight": "500",
      "evidence": "font-13: computed CSS at 1440×1000; AI role: FK Grotesk Mono Medium, 12px, 1.9px tracking, uppercase. Used for labels, tags, and secondary metadata.",
      "sampleId": "font-13",
      "confidence": 0.9,
      "lineHeight": "12px",
      "letterSpacing": "1.9px"
    }
  ]
}
```

### Exact color evidence

The section samples record where each computed value was used. Functional roles come from the website-level classifier and remain separate.

```json
{
  "sectionUsage": [
    {
      "value": "#FFFFFF",
      "cssValue": "rgba(255, 255, 255, 0.12)",
      "alpha": 0.12156862745098039,
      "appliedAs": [
        "background"
      ],
      "occurrences": 1,
      "sourceId": "color-15"
    }
  ],
  "functionalPalette": [
    {
      "hex": "#000000",
      "name": "canvas",
      "role": "canvas",
      "source": "computed",
      "evidence": "color-1: computed rgb(0, 0, 0); AI role: Solid black rgb(0, 0, 0) used as the primary background color across most sections.",
      "sampleId": "color-1",
      "confidence": 0.95
    },
    {
      "hex": "#FFFFFF",
      "name": "text",
      "role": "text",
      "source": "computed",
      "evidence": "color-4: computed rgb(255, 255, 255); AI role: White rgb(255, 255, 255) used for primary headings and body copy.",
      "sampleId": "color-4",
      "confidence": 0.95
    },
    {
      "hex": "#EDFD3A",
      "name": "primary action",
      "role": "primary-action",
      "source": "computed",
      "evidence": "color-3: computed rgb(237, 253, 58); AI role: Vivid yellow-green rgb(237, 253, 58) used for 'Start Free' buttons and highlights.",
      "sampleId": "color-3",
      "confidence": 0.95
    },
    {
      "hex": "#8F8F92",
      "name": "muted text",
      "role": "muted-text",
      "source": "computed",
      "evidence": "color-2: computed rgb(143, 143, 146); AI role: Gray rgb(143, 143, 146) used for secondary text and placeholders.",
      "sampleId": "color-2",
      "confidence": 0.9
    },
    {
      "hex": "#1C1C1E",
      "name": "surface",
      "role": "surface",
      "source": "computed",
      "evidence": "color-16: computed rgb(28, 28, 30); AI role: Dark gray rgb(28, 28, 30) used for floating bars and some button backgrounds.",
      "sampleId": "color-16",
      "confidence": 0.85
    }
  ]
}
```

### Design tokens

```json
{
  "radius": "Buttons appear fully rounded (pill-shaped). Cards have medium border radii (e.g., product cards, testimonials).",
  "density": "Low density. High reliance on negative space to draw focus to central animations and large typography.",
  "evidence": "Visual inspection of the crops shows pill buttons, full-width dark backgrounds, and centered alignments.",
  "borderStyle": "Mostly borderless designs relying on background contrast. Occasional subtle semi-transparent white borders (color-24) on inputs or cards.",
  "buttonStyle": "Solid fill (color-3) with contrasting dark text for primary actions. Pill shape.",
  "cornerStyle": "Rounded corners are prominent on interactive elements (buttons, inputs) and product cards.",
  "contentWidth": "Centered layouts with constrained widths for text readability, expanding to full-width for media and grids.",
  "spacingRhythm": "Generous vertical padding between main sections, often leveraging full-viewport heights to accommodate scroll-linked narratives."
}
```

### Reconstruction specification

This is the implementation contract for the captured desktop viewport. Prefer section-specific facts here over general website descriptions.

- Root container was not deterministically isolated.
- Representative content widths: 658, 397, 340, 275, 271px.
- Layout containers: 0; cards/surfaces: 0; media elements: 12; browser animations: 0.

#### Container, grid, and spacing

```json
{
  "viewport": {
    "width": 1440,
    "captureBounds": {
      "top": 17160,
      "bottom": 22182,
      "pageHeight": 26954
    }
  },
  "container": null,
  "spacing": {
    "observedGapsPx": [],
    "representativeContentWidthsPx": [
      658,
      397,
      340,
      275,
      271
    ]
  },
  "columns": []
}
```

#### Cards and surfaces

```json
{
  "cards": [],
  "surfaces": {
    "radii": [
      "100px"
    ],
    "borders": [],
    "shadows": []
  }
}
```

#### Media treatment

```json
[
  {
    "element": "img · img",
    "size": "658×495px",
    "position": "x 392px, y 19380px",
    "aspectRatio": 1.3,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/59Ord4iJ4lGPGxxcgsV6s52CeY.png?scale-down-to=1024&width=1316&height=990"
  },
  {
    "element": "img · img",
    "size": "146×40px",
    "position": "x 646px, y 19755px",
    "aspectRatio": 3.7,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/XHlWMq7pI574HMi59iLysD1fgU.svg?width=147&height=40"
  },
  {
    "element": "img · img",
    "size": "141×40px",
    "position": "x 649px, y 19931px",
    "aspectRatio": 3.5,
    "objectFit": "contain",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/eG8fSagMgBsb3CbdAktR5S3Nc.svg?width=141&height=40"
  },
  {
    "element": "img · img",
    "size": "147×24px",
    "position": "x 646px, y 19612px",
    "aspectRatio": 6.1,
    "objectFit": "contain",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/8hjgWHyMrf2dXxyVfs0wRIqM.svg?width=147&height=24"
  },
  {
    "element": "img · img",
    "size": "32×32px",
    "position": "x 519px, y 22137px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "100px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/gbYmebyMwMcCJ8yFcupPpghtbqY.png?width=96&height=96"
  },
  {
    "element": "img · img",
    "size": "32×32px",
    "position": "x 538px, y 22137px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "100px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/pDBtmYfVrjkfptwKbM4eM7n8tZU.png?width=96&height=96"
  },
  {
    "element": "img · img",
    "size": "32×32px",
    "position": "x 557px, y 22137px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "100px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/vCzgVrWEr4pi1wxzmV4jThWWp2w.png?width=96&height=96"
  },
  {
    "element": "img · img",
    "size": "32×32px",
    "position": "x 576px, y 22137px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "100px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/nrnfnBMlvf2JRCZc9rgSKWPzR3w.png?width=96&height=96"
  },
  {
    "element": "img · img",
    "size": "32×32px",
    "position": "x 595px, y 22137px",
    "aspectRatio": 1,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "100px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/eaMz2mkT5dSWPx1NkamQWnbtf9U.png?width=96&height=96"
  },
  {
    "element": "img · img",
    "size": "1×88px",
    "position": "x 719px, y 19500px",
    "aspectRatio": 0,
    "objectFit": "contain",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/syXnqT7krCvPrlwBB79ZjLLAXbI.svg?width=1&height=88"
  },
  {
    "element": "img · img",
    "size": "1×88px",
    "position": "x 719px, y 19660px",
    "aspectRatio": 0,
    "objectFit": "contain",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/syXnqT7krCvPrlwBB79ZjLLAXbI.svg?width=1&height=88"
  },
  {
    "element": "img · img",
    "size": "1×88px",
    "position": "x 719px, y 19819px",
    "aspectRatio": 0,
    "objectFit": "contain",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://pliability.com/__cdn/framerusercontent.com/images/syXnqT7krCvPrlwBB79ZjLLAXbI.svg?width=1&height=88"
  }
]
```

#### Browser-exposed animation parameters

```json
[]
```

### Measured geometry, surfaces, media, and animation

These raw values come from the saved element map and computed styles. Empty arrays mean the fact was not captured; they are not permission to invent source values.

```json
{
  "root": null,
  "cards": [],
  "media": [
    {
      "id": "ld-1146",
      "tag": "img",
      "rect": {
        "x": 392,
        "y": 19380,
        "width": 658,
        "height": 495
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/59Ord4iJ4lGPGxxcgsV6s52CeY.png?scale-down-to=1024&width=1316&height=990",
        "naturalWidth": 658,
        "naturalHeight": 494
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 1.3,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1137",
      "tag": "img",
      "rect": {
        "x": 646,
        "y": 19755,
        "width": 146,
        "height": 40
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/XHlWMq7pI574HMi59iLysD1fgU.svg?width=147&height=40",
        "naturalWidth": 147,
        "naturalHeight": 40
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 3.7,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1143",
      "tag": "img",
      "rect": {
        "x": 649,
        "y": 19931,
        "width": 141,
        "height": 40
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/eG8fSagMgBsb3CbdAktR5S3Nc.svg?width=141&height=40",
        "naturalWidth": 141,
        "naturalHeight": 40
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "contain",
      "aspectRatio": 3.5,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1130",
      "tag": "img",
      "rect": {
        "x": 646,
        "y": 19612,
        "width": 147,
        "height": 24
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/8hjgWHyMrf2dXxyVfs0wRIqM.svg?width=147&height=24",
        "naturalWidth": 147,
        "naturalHeight": 24
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "contain",
      "aspectRatio": 6.1,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1168",
      "tag": "img",
      "rect": {
        "x": 519,
        "y": 22137,
        "width": 32,
        "height": 32
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/gbYmebyMwMcCJ8yFcupPpghtbqY.png?width=96&height=96",
        "naturalWidth": 96,
        "naturalHeight": 96
      },
      "radius": "100px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 1,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1171",
      "tag": "img",
      "rect": {
        "x": 538,
        "y": 22137,
        "width": 32,
        "height": 32
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/pDBtmYfVrjkfptwKbM4eM7n8tZU.png?width=96&height=96",
        "naturalWidth": 96,
        "naturalHeight": 96
      },
      "radius": "100px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 1,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1174",
      "tag": "img",
      "rect": {
        "x": 557,
        "y": 22137,
        "width": 32,
        "height": 32
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/vCzgVrWEr4pi1wxzmV4jThWWp2w.png?width=96&height=96",
        "naturalWidth": 96,
        "naturalHeight": 96
      },
      "radius": "100px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 1,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1177",
      "tag": "img",
      "rect": {
        "x": 576,
        "y": 22137,
        "width": 32,
        "height": 32
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/nrnfnBMlvf2JRCZc9rgSKWPzR3w.png?width=96&height=96",
        "naturalWidth": 96,
        "naturalHeight": 96
      },
      "radius": "100px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 1,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1180",
      "tag": "img",
      "rect": {
        "x": 595,
        "y": 22137,
        "width": 32,
        "height": 32
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/eaMz2mkT5dSWPx1NkamQWnbtf9U.png?width=96&height=96",
        "naturalWidth": 96,
        "naturalHeight": 96
      },
      "radius": "100px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 1,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1127",
      "tag": "img",
      "rect": {
        "x": 719,
        "y": 19500,
        "width": 1,
        "height": 88
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/syXnqT7krCvPrlwBB79ZjLLAXbI.svg?width=1&height=88",
        "naturalWidth": 1,
        "naturalHeight": 88
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "contain",
      "aspectRatio": 0,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1133",
      "tag": "img",
      "rect": {
        "x": 719,
        "y": 19660,
        "width": 1,
        "height": 88
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/syXnqT7krCvPrlwBB79ZjLLAXbI.svg?width=1&height=88",
        "naturalWidth": 1,
        "naturalHeight": 88
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "contain",
      "aspectRatio": 0,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-1140",
      "tag": "img",
      "rect": {
        "x": 719,
        "y": 19819,
        "width": 1,
        "height": 88
      },
      "role": null,
      "label": "img",
      "media": {
        "alt": "",
        "src": "https://pliability.com/__cdn/framerusercontent.com/images/syXnqT7krCvPrlwBB79ZjLLAXbI.svg?width=1&height=88",
        "naturalWidth": 1,
        "naturalHeight": 88
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "contain",
      "aspectRatio": 0,
      "objectPosition": "50% 50%"
    }
  ],
  "bounds": {
    "top": 17160,
    "bottom": 22182,
    "pageHeight": 26954
  },
  "schema": "little-details-section-measurements-v1",
  "source": "saved DOM/CSS element and animation maps",
  "columns": [],
  "spacing": {
    "gapsPx": [],
    "representativeContentWidthsPx": [
      658,
      397,
      340,
      275,
      271
    ]
  },
  "coverage": {
    "cards": 0,
    "media": 12,
    "animations": 0,
    "elementsInSection": 19
  },
  "surfaces": {
    "radii": [
      "100px"
    ],
    "borders": [],
    "shadows": []
  },
  "animations": [],
  "capturedAt": "2026-10-24T08:09:11.680Z",
  "limitations": [
    "Values describe the captured desktop viewport and may change at other breakpoints.",
    "Transforms, sticky layers, and virtualized content can make the inferred section root approximate.",
    "Animations include browser-exposed Web Animations API state; CSS or script motion that was inactive at capture time may be absent."
  ],
  "viewportWidth": 1440
}
```

### Observed motion

1. **scroll** — Multiple cards featuring user testimonials and videos slide upwards as the user scrolls down. (29s–34s; 96% confidence). Recreate the interaction principle with project-appropriate timing and easing; the evidence does not guarantee source easing values.

The browser animation records above are deterministic parameters captured from active browser animations. The timestamped observations describe what Gemini saw in the video. Treat them as complementary evidence. When either source is empty or they conflict, state the uncertainty instead of inventing timing or easing.

### Responsive contract

- Measured viewport: 1440px wide.
- Mobile/tablet values: not measured by this section evidence unless a separate capture is explicitly listed.
- Preserve hierarchy and sequence; collapse simultaneous columns only where needed, maintain media aspect ratios, and verify touch targets and text wrapping at target breakpoints.

### Structure versus visual skin

- Preserve: content hierarchy, layout relationships, section rhythm, interaction purpose.
- Adapt: brand colors, font family, copy, imagery, icons, decorative details.
- Rule: Preserve the observed design logic while creating original branding, copy, assets, and implementation details.

### Adaptation and dependencies

- Effort: medium
- What transfers: Staggered masonry grid logic with mixed card sizes and media types; Dark surface cards with consistent 8px radius against black canvas; Overlay headline positioned behind/through the content grid; Avatar + name + quote card pattern for text testimonials
- Dependencies: Specific absolute pixel positions used for masonry arrangement at the captured 1440px viewport; Real UGC video assets and user avatar images; FK Grotesk font family and token palette (black canvas, yellow-green accent, dark gray surface)
- Guidance: Rebuild using a responsive masonry/grid system (e.g., CSS grid with span rules or a JS masonry library) rather than fixed pixel coordinates, keep the overlay headline layered behind cards with z-index control, and maintain card radius/surface tokens while swapping in new testimonial content and media.

### Evidence readiness

- Coverage: 7/7
- Can build: Yes
- Missing facts: None


### Agent implementation prompt

Create an original testimonials section inspired by the design evidence titled “Masonry testimonial grid”.

Purpose: A dynamic masonry grid of user-generated content, including text reviews and vertical videos, that slides into view.

Structure: grid. Source layout label: Dense, staggered masonry grid of varying sized cards with a central headline overlay.. Keep a clear anchor card and consistent internal card rules so the grid reads as one system.

Visual signature to preserve at the pattern level: A chaotic but structured arrangement of dark user review cards and short video clips surrounding the words 'What people are saying'.

Components: heading, review-cards, video-cards, masonry-grid.

Style direction: bold, photographic, playful.

Observed crop: 960×600px (1.6:1). Treat this as evidence of composition, not a mandatory output size.

Typography evidence: {"role":"display","size":"60px","family":"FK Grotesk Regular","source":"computed","traits":"Regular","weight":"400","evidence":"font-3: computed CSS at 1440×1000; AI role: FK Grotesk Regular, 60px, -1.8px tracking. Used for prominent headings like 'Daily mobility for everyone.'","sampleId":"font-3","confidence":0.95,"lineHeight":"60px","letterSpacing":"-1.8px"} {"role":"heading","size":"40px","family":"FK Grotesk Regular","source":"computed","traits":"Regular","weight":"400","evidence":"font-1: computed CSS at 1440×1000; AI role: FK Grotesk Regular, 40px, -1.2px tracking. Used for section headings and large statements.","sampleId":"font-1","confidence":0.9,"lineHeight":"46px","letterSpacing":"-1.2px"} {"role":"body","size":"16px","family":"FK Grotesk Regular","source":"computed","traits":"Regular","weight":"400","evidence":"font-12: computed CSS at 1440×1000; AI role: FK Grotesk Regular, 16px. Used for primary descriptive text and paragraphs.","sampleId":"font-12","confidence":0.9,"lineHeight":"24px","letterSpacing":"-0.2px"} {"role":"mono","size":"12px","family":"FK Grotesk Mono Medium","source":"computed","traits":"uppercase","weight":"500","evidence":"font-13: computed CSS at 1440×1000; AI role: FK Grotesk Mono Medium, 12px, 1.9px tracking, uppercase. Used for labels, tags, and secondary metadata.","sampleId":"font-13","confidence":0.9,"lineHeight":"12px","letterSpacing":"1.9px"}

Color evidence: {"hex":"#000000","name":"canvas","role":"canvas","source":"computed","evidence":"color-1: computed rgb(0, 0, 0); AI role: Solid black rgb(0, 0, 0) used as the primary background color across most sections.","sampleId":"color-1","confidence":0.95} {"hex":"#FFFFFF","name":"text","role":"text","source":"computed","evidence":"color-4: computed rgb(255, 255, 255); AI role: White rgb(255, 255, 255) used for primary headings and body copy.","sampleId":"color-4","confidence":0.95} {"hex":"#EDFD3A","name":"primary action","role":"primary-action","source":"computed","evidence":"color-3: computed rgb(237, 253, 58); AI role: Vivid yellow-green rgb(237, 253, 58) used for 'Start Free' buttons and highlights.","sampleId":"color-3","confidence":0.95} {"hex":"#8F8F92","name":"muted text","role":"muted-text","source":"computed","evidence":"color-2: computed rgb(143, 143, 146); AI role: Gray rgb(143, 143, 146) used for secondary text and placeholders.","sampleId":"color-2","confidence":0.9} {"hex":"#1C1C1E","name":"surface","role":"surface","source":"computed","evidence":"color-16: computed rgb(28, 28, 30); AI role: Dark gray rgb(28, 28, 30) used for floating bars and some button backgrounds.","sampleId":"color-16","confidence":0.85}

Typography measured inside this section: {"id":"font-7","size":"60px","count":2,"family":"FK Grotesk Regular","traits":"Regular","weight":"400","contexts":[{"tag":"h2","top":21628,"text":"What people","property":"font"},{"tag":"h2","top":21688,"text":"are saying","property":"font"}],"fontStack":"\"FK Grotesk Regular\", \"FK Grotesk Regular Placeholder\", sans-serif","lineHeight":"69px","letterSpacing":"-1.8px"} {"id":"font-24","size":"12px","count":3,"family":"FK Grotesk Medium","traits":"Regular","weight":"500","contexts":[{"tag":"p","top":356,"text":"Try free for 7 days.","property":"font"},{"tag":"p","top":5537,"text":"Trusted by athletes + everyday people","property":"font"},{"tag":"p","top":22145,"text":"thousands of members in 100+ countries love us","property":"font"}],"fontStack":"\"FK Grotesk Medium\", \"FK Grotesk Medium Placeholder\", sans-serif","lineHeight":"15.6px","letterSpacing":"-0.1px"}

Colors measured inside this section: {"id":"color-15","hex":"#FFFFFF","alpha":0.12156862745098039,"count":1,"contexts":[{"tag":"div","top":22129,"text":"thousands of members in 100+ countries love us","property":"background"}],"cssValue":"rgba(255, 255, 255, 0.12)"}

Exact section measurements from the saved element map: spacing {"gapsPx":[],"representativeContentWidthsPx":[658,397,340,275,271]}; surfaces {"radii":["100px"],"borders":[],"shadows":[]}; media [{"tag":"img","rect":{"x":392,"y":19380,"width":658,"height":495},"aspectRatio":1.3,"objectFit":"cover","objectPosition":"50% 50%","radius":"0px"},{"tag":"img","rect":{"x":646,"y":19755,"width":146,"height":40},"aspectRatio":3.7,"objectFit":"cover","objectPosition":"50% 50%","radius":"0px"},{"tag":"img","rect":{"x":649,"y":19931,"width":141,"height":40},"aspectRatio":3.5,"objectFit":"contain","objectPosition":"50% 50%","radius":"0px"},{"tag":"img","rect":{"x":646,"y":19612,"width":147,"height":24},"aspectRatio":6.1,"objectFit":"contain","objectPosition":"50% 50%","radius":"0px"}]

Motion evidence: scroll: Multiple cards featuring user testimonials and videos slide upwards as the user scrolls down. (96% confidence)

Transfer these principles: Staggered masonry grid logic with mixed card sizes and media types; Dark surface cards with consistent 8px radius against black canvas; Overlay headline positioned behind/through the content grid; Avatar + name + quote card pattern for text testimonials.

Dependencies: Specific absolute pixel positions used for masonry arrangement at the captured 1440px viewport; Real UGC video assets and user avatar images; FK Grotesk font family and token palette (black canvas, yellow-green accent, dark gray surface).

Adaptation guidance: Rebuild using a responsive masonry/grid system (e.g., CSS grid with span rules or a JS masonry library) rather than fixed pixel coordinates, keep the overlay headline layered behind cards with z-index control, and maintain card radius/surface tokens while swapping in new testimonial content and media.

Use new copy, imagery, branding, and implementation details. Do not reproduce the source website or its proprietary assets.
