# Accessory cards in a carousel

Schema: Design Details SECTION.md v3.2
Website: Playfolly
Source: https://playfolly.com/
Source section IDs: f9fdad99-2fbf-4080-b8ee-b94f6335b996
Status: AI analysed; vocabulary promotion is automated

## Builder's note

What makes it work:
- A centered header sits above a row of uniform outlined cards, so the eye reads title, then products, then the color control in one clear line.
- Each card pairs a 3D render with a dark text panel that names the accessory, gives a short function line and shows availability, so the copy is useful rather than filler.
- The warm yellow canvas, near-black panels and white text give strong contrast, and the small color swatch row below invites interaction without crowding the cards.

What a screenshot can't show:
- The recording shows only a scroll into the card row (about 12–17s), with no timed card or carousel transition, and no browser animations were captured.
- Body copy measures 18px on 28px line height with normal letter spacing, and the gap between small elements is 6px.

Borrow: Put a dark text panel over a bright product render inside a uniform outlined card, then let one small swatch control recolor the whole set.
Leave alone: Don't copy the yellow-on-yellow palette, the Geograph typeface (try a neutral grotesque instead) or the specific 3D accessory shapes.

## Classification

- Type: features
- Layout: Centered header above a row of uniform cards, with a color palette control centered below.
- Styles: playful, colourful, geometric
- Confidence: 95%

## Purpose and structure

A section displaying product accessories in a row of outlined cards with a color picker below.

Visual signature: A soft yellow background with a row of rounded rectangular cards showcasing 3D yellow accessories.

## Components

- Centered header
- Outlined accessory cards
- 3D accessory renders
- Color picker palette
- Carousel controls

## Typography

- Display: Geograph — 234px 700
- Heading: Geograph — 60px 500
- Body: Geograph — 16px 400

## Functional palette

- Canvas: canvas #EDBF7A
- Text: text #000000
- Text: text #FFFFFF
- Primary-Action: primary action #F9EE16
- Surface: surface #F4D602
- Surface: surface #262626

## Motion evidence

- 12.0–17.0s — The user scrolls to a grid or carousel layout containing various rectangular elements with text and images. (85% confidence)

## Section quality

Overall: 60.59/100 (Good)
Scored coverage: 85%

- Typography: 62 — Clear two-tier heading hierarchy (large bold title over a softer olive subheading) with generous letter-spacing on the display font, plus legible small-caps-style body copy in dark overlay boxes. Pairing is clean but the combination is a fairly standard bold-sans-plus-muted-sans pattern without distinctive type craft. Next tier: Needs more typographic personality or variation (e.g. a distinctive custom treatment, unexpected scale contrast, or expressive character) beyond standard weight/color pairing to read as memorable rather than just tidy.
- Composition: 65 — Centered header anchors a clean grid of uniform rounded-rectangle cards with consistent padding, a color swatch selector, and carousel arrows all aligned on a shared vertical rhythm. The layering of 3D renders over a dark text panel within each card is a nice recurring motif that gives real structure. Next tier: Composition is a competent uniform grid with no compositional surprise, no asymmetry, or unique arrangement that would elevate it beyond a well-executed standard card carousel.
- Motion: inconclusive — Only a generic motion note about scrolling into a grid/carousel layout is given, with no specific timestamped interaction (e.g. card swap, color-swap crossfade, carousel transition) described, despite computed CSS showing an opacity transition on images suggesting color-swap behavior. Next tier: Need timestamped evidence of actual carousel transition behavior, color-swap crossfade timing, or hover states to assess motion quality.
- Content: 58 — Content directly supports the product system narrative: each card names an accessory, gives a short functional description, and signals availability status ('Coming soon'), which is purposeful and informative rather than decorative filler. Next tier: Content integration stays purely informational; nothing ties the 3D product imagery, copy, and color picker into one integrated storytelling moment beyond listing specs.
- Originality: 56 — The dark-panel-over-3D-render card format and bottom color swatch picker are a reasonably fresh take on a product-accessory showcase, but the overall carousel-of-cards-with-swatches pattern is common in product/e-commerce design systems. Next tier: Lacks a signature visual or interaction device that could not be easily swapped for a generic e-commerce accessory carousel; needs a more distinctive idea to feel hard to substitute.
- Adaptability: 60 — Deterministic facts show clearly separable layers: repeatable card component (rounded rect, dark text overlay, swappable product image), a color token system driving image swaps, and carousel navigation controls, all independent of specific copy or imagery. Next tier: Reliance on custom 3D renders per color variant and a bespoke image-swap mechanism anchored to specific asset naming conventions limits how cleanly the pattern transfers without equivalent photographic/3D assets.

Strengths:
- Consistent rounded-card pattern with a recurring dark info-panel overlay that reads clearly at a glance
- Functional color picker directly tied to swappable 3D product renders, giving the section a tactile configurator feel
- Clear three-tier headline hierarchy (title, subheading, support line) establishes the section's narrative quickly

Weaknesses:
- Carousel/grid of outlined cards is a very common e-commerce pattern with little visual distinction
- No confirmed motion evidence for the color-swap or carousel transitions, leaving a core interactive idea unverified
- Typography pairing, while clean, doesn't introduce any distinctive scale or character beyond a standard bold/muted combo
- Dark card overlay panel's contrast with the warm yellow 3D renders is pleasant but not an uncommon device

Why it does not reach the next tier: The section is well organized and purposeful but relies on a widely used accessory-carousel-plus-color-picker formula without a standout compositional, typographic, or confirmed motion idea that would make it memorable or hard to substitute.

## Adaptation guidance

- Effort: Medium
- Guidance: Reuse the card shell, dark overlay text panel, and swatch-driven image-swap structure; supply equivalent photographed or rendered product imagery per color variant and re-theme palette tokens to the new brand's colors.

What transfers:
- Card component with rounded border, dark text overlay panel, and swappable hero image
- Color swatch selector pattern driving image/asset swaps
- Centered two-line header plus subcopy structure
- Carousel arrow navigation controls

Dependencies:
- Custom 3D rendered product assets in multiple color variants
- Color token palette matching swatch colors to actual product variants
- Opacity-crossfade image swap mechanism tied to color selection

## 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 could not be scored due to lack of specific timestamped interaction evidence
- Exact animation timing/easing for the image opacity transitions is not confirmed
- Additional cards beyond the visible four (e.g. Pulley) are only partially visible, limiting full composition assessment

## 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: features
- Source type: features
- Structure: centered single-column
- Layout: Centered header above a row of uniform cards, with a color palette control centered below.
- Styles: playful, colourful, geometric
- Components: Centered header, Outlined accessory cards, 3D accessory renders, Color picker palette, Carousel controls
- Purpose: A section displaying product accessories in a row of outlined cards with a color picker below.
- Visual signature: A soft yellow background with a row of rounded rectangular cards showcasing 3D yellow accessories.
- Place on the page: 4 of 7, after Gallery (`playfolly-com:gallery-full-bleed-slideshow`), before Other (`playfolly-com:other-dimensioned-diagram`)

### Crop and composition

- Crop: 1440×1190px; aspect ratio 1.21:1
- Page bounds: 4190–5380px of 8087px
- Guidance: Use a narrow central reading axis and deliberate scale contrast rather than adding unnecessary side content.

### 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": "body/supporting copy",
      "family": "Geograph",
      "stack": "Geograph, \"Century Gothic\", Futura, \"Helvetica Neue\", Helvetica, Arial, sans-serif",
      "size": "18px",
      "weight": "400",
      "lineHeight": "28px",
      "letterSpacing": "normal",
      "sample": "Available now, with more to come — built to keep evolving.",
      "element": "p",
      "occurrences": 1,
      "sourceId": "font-7"
    }
  ],
  "siteRoles": [
    {
      "role": "display",
      "size": "234px",
      "family": "Geograph",
      "source": "computed",
      "traits": "Regular",
      "weight": "700",
      "evidence": "font-4: computed CSS at 1440×1000; AI role: 234px font size with negative letter spacing used for large impactful text 'Play beautiful'.",
      "sampleId": "font-4",
      "confidence": 1,
      "lineHeight": "234px",
      "letterSpacing": "-11.7px"
    },
    {
      "role": "heading",
      "size": "60px",
      "family": "Geograph",
      "source": "computed",
      "traits": "Regular",
      "weight": "500",
      "evidence": "font-1: computed CSS at 1440×1000; AI role: 60px font used for primary section headings like 'A new way to play.'.",
      "sampleId": "font-1",
      "confidence": 0.95,
      "lineHeight": "60px",
      "letterSpacing": "normal"
    },
    {
      "role": "body",
      "size": "16px",
      "family": "Geograph",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-6: computed CSS at 1440×1000; AI role: 16px regular weight font used for general body copy and descriptive text.",
      "sampleId": "font-6",
      "confidence": 0.9,
      "lineHeight": "24px",
      "letterSpacing": "normal"
    }
  ]
}
```

### 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": "#262626",
      "cssValue": "rgb(38, 38, 38)",
      "alpha": 1,
      "appliedAs": [
        "border",
        "background"
      ],
      "occurrences": 25,
      "sourceId": "color-5"
    },
    {
      "value": "#FFFFFF",
      "cssValue": "rgba(255, 255, 255, 0.6)",
      "alpha": 0.6,
      "appliedAs": [
        "text"
      ],
      "occurrences": 5,
      "sourceId": "color-6"
    }
  ],
  "functionalPalette": [
    {
      "hex": "#EDBF7A",
      "name": "canvas",
      "role": "canvas",
      "source": "computed",
      "evidence": "color-1: computed rgb(237, 191, 122); AI role: Used extensively as a background color for the body and major sections.",
      "sampleId": "color-1",
      "confidence": 0.95
    },
    {
      "hex": "#000000",
      "name": "text",
      "role": "text",
      "source": "computed",
      "evidence": "color-2: computed rgb(0, 0, 0); AI role: Black used for primary text and button text.",
      "sampleId": "color-2",
      "confidence": 0.9
    },
    {
      "hex": "#FFFFFF",
      "name": "text",
      "role": "text",
      "source": "computed",
      "evidence": "color-3: computed rgb(255, 255, 255); AI role: White used for large display text, secondary text on dark backgrounds, and icons.",
      "sampleId": "color-3",
      "confidence": 0.9
    },
    {
      "hex": "#F9EE16",
      "name": "primary action",
      "role": "primary-action",
      "source": "computed",
      "evidence": "color-7: computed rgb(249, 238, 22); AI role: Bright yellow used for the 'Get updates' call to action button.",
      "sampleId": "color-7",
      "confidence": 0.9
    },
    {
      "hex": "#F4D602",
      "name": "surface",
      "role": "surface",
      "source": "computed",
      "evidence": "color-4: computed rgb(244, 214, 2); AI role: Used as the background color for the 'Want one?' section.",
      "sampleId": "color-4",
      "confidence": 0.85
    },
    {
      "hex": "#262626",
      "name": "surface",
      "role": "surface",
      "source": "computed",
      "evidence": "color-5: computed rgb(38, 38, 38); AI role: Dark gray used as background for adapter feature cards.",
      "sampleId": "color-5",
      "confidence": 0.8
    }
  ]
}
```

### Design tokens

```json
{
  "radius": "Pill-shaped (fully rounded) for buttons and inputs; large border radii for feature cards.",
  "density": "Low density with ample whitespace focusing attention on the large typography and 3D visuals.",
  "evidence": "Visual inspection of the desktop screenshots reveals rounded forms, pill buttons, wide sections, and large spacing.",
  "borderStyle": "Mostly borderless with solid background colors; some cards have subtle dark borders.",
  "buttonStyle": "Solid fill with pill shape and bold text.",
  "cornerStyle": "Rounded corners heavily utilized on buttons, feature cards, and input fields.",
  "contentWidth": "Wide layout utilizing full viewport width for backgrounds, with content centered within a max-width container.",
  "spacingRhythm": "Generous spacing with large paddings between major sections to isolate content."
}
```

### Reconstruction specification

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

- Root: 1440×1190px; block; padding {"top":"0px","left":"0px","right":"0px","bottom":"0px"}; gap normal; background rgb(237, 191, 122); radius 0px.
- Observed gaps: 6px.
- Representative content widths: 1002, 613, 498, 395, 319, 305, 271px.
- Layout containers: 0; cards/surfaces: 0; media elements: 12; browser animations: 0.

#### Container, grid, and spacing

```json
{
  "viewport": {
    "width": 1440,
    "captureBounds": {
      "top": 4190,
      "bottom": 5380,
      "pageHeight": 8087
    }
  },
  "container": {
    "size": "1440×1190px",
    "position": "x 0px, y 4163px",
    "display": "block",
    "positionMode": "static",
    "padding": {
      "top": "0px",
      "left": "0px",
      "right": "0px",
      "bottom": "0px"
    },
    "margin": {
      "top": "0px",
      "left": "0px",
      "right": "0px",
      "bottom": "0px"
    },
    "gap": "normal",
    "columns": "not captured",
    "background": "rgb(237, 191, 122)",
    "radius": "0px",
    "border": "0px solid rgb(0, 0, 0)",
    "shadow": "none",
    "overflow": "visible"
  },
  "spacing": {
    "observedGapsPx": [
      6
    ],
    "representativeContentWidthsPx": [
      1002,
      613,
      498,
      395,
      319,
      305,
      271
    ]
  },
  "columns": []
}
```

#### Cards and surfaces

```json
{
  "cards": [],
  "surfaces": {
    "radii": [
      "3.35544e+07px"
    ],
    "borders": [
      "3px solid rgb(255, 255, 255)",
      "3px solid rgba(0, 0, 0, 0)"
    ],
    "shadows": []
  }
}
```

#### Media treatment

```json
[
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×711px",
    "position": "x 40px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/adapter-yellow.png?v=1772410640&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×711px",
    "position": "x 40px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/adapter-blue.png?v=1772410656&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×711px",
    "position": "x 40px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/adapter-green.png?v=1772410676&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×711px",
    "position": "x 40px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/adapter-sand.png?v=1772410692&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×710px",
    "position": "x 461px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/hoop-yellow.png?v=1772410973&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×710px",
    "position": "x 461px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/hoop-blue.png?v=1772410987&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×710px",
    "position": "x 461px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/hoop-olive.png?v=1772505077&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×710px",
    "position": "x 461px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/hoop-sand.png?v=1772411015&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×710px",
    "position": "x 882px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/roof-yellow.png?v=1772410727&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×710px",
    "position": "x 882px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/roof-blue.png?v=1772410744&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×710px",
    "position": "x 882px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/roof-green.png?v=1772410762&width=1600"
  },
  {
    "element": "img · absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
    "size": "395×710px",
    "position": "x 882px, y 4559px",
    "aspectRatio": 0.6,
    "objectFit": "cover",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "clip",
    "source": "https://playfolly.com/cdn/shop/files/roof-sand.png?v=1772410777&width=1600"
  }
]
```

#### 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": {
    "id": "ld-627",
    "gap": "normal",
    "tag": "section",
    "rect": {
      "x": 0,
      "y": 4163,
      "width": 1440,
      "height": 1190
    },
    "role": null,
    "label": "The Playfolly System.One adapter, endless ways to play.Available now, with more to come — built to k",
    "border": "0px solid rgb(0, 0, 0)",
    "margin": {
      "top": "0px",
      "left": "0px",
      "right": "0px",
      "bottom": "0px"
    },
    "radius": "0px",
    "shadow": "none",
    "columns": null,
    "display": "block",
    "padding": {
      "top": "0px",
      "left": "0px",
      "right": "0px",
      "bottom": "0px"
    },
    "overflow": "visible",
    "position": "static",
    "background": "rgb(237, 191, 122)"
  },
  "cards": [],
  "media": [
    {
      "id": "ld-642",
      "tag": "img",
      "rect": {
        "x": 40,
        "y": 4559,
        "width": 395,
        "height": 711
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Adapter - Yellow",
        "src": "https://playfolly.com/cdn/shop/files/adapter-yellow.png?v=1772410640&width=1600",
        "naturalWidth": 910,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-643",
      "tag": "img",
      "rect": {
        "x": 40,
        "y": 4559,
        "width": 395,
        "height": 711
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Adapter - Blue",
        "src": "https://playfolly.com/cdn/shop/files/adapter-blue.png?v=1772410656&width=1600",
        "naturalWidth": 910,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-644",
      "tag": "img",
      "rect": {
        "x": 40,
        "y": 4559,
        "width": 395,
        "height": 711
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Adapter - Green",
        "src": "https://playfolly.com/cdn/shop/files/adapter-green.png?v=1772410676&width=1600",
        "naturalWidth": 910,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-645",
      "tag": "img",
      "rect": {
        "x": 40,
        "y": 4559,
        "width": 395,
        "height": 711
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Adapter - Sand",
        "src": "https://playfolly.com/cdn/shop/files/adapter-sand.png?v=1772410692&width=1600",
        "naturalWidth": 910,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-656",
      "tag": "img",
      "rect": {
        "x": 461,
        "y": 4559,
        "width": 395,
        "height": 710
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Hoop - yellow",
        "src": "https://playfolly.com/cdn/shop/files/hoop-yellow.png?v=1772410973&width=1600",
        "naturalWidth": 912,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-657",
      "tag": "img",
      "rect": {
        "x": 461,
        "y": 4559,
        "width": 395,
        "height": 710
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Hoop - blue",
        "src": "https://playfolly.com/cdn/shop/files/hoop-blue.png?v=1772410987&width=1600",
        "naturalWidth": 912,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-658",
      "tag": "img",
      "rect": {
        "x": 461,
        "y": 4559,
        "width": 395,
        "height": 710
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Hoop - green",
        "src": "https://playfolly.com/cdn/shop/files/hoop-olive.png?v=1772505077&width=1600",
        "naturalWidth": 912,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-659",
      "tag": "img",
      "rect": {
        "x": 461,
        "y": 4559,
        "width": 395,
        "height": 710
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Hoop - sand",
        "src": "https://playfolly.com/cdn/shop/files/hoop-sand.png?v=1772411015&width=1600",
        "naturalWidth": 912,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-670",
      "tag": "img",
      "rect": {
        "x": 882,
        "y": 4559,
        "width": 395,
        "height": 710
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Canopy - Yellow",
        "src": "https://playfolly.com/cdn/shop/files/roof-yellow.png?v=1772410727&width=1600",
        "naturalWidth": 912,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-671",
      "tag": "img",
      "rect": {
        "x": 882,
        "y": 4559,
        "width": 395,
        "height": 710
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Canopy - Blue",
        "src": "https://playfolly.com/cdn/shop/files/roof-blue.png?v=1772410744&width=1600",
        "naturalWidth": 912,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-672",
      "tag": "img",
      "rect": {
        "x": 882,
        "y": 4559,
        "width": 395,
        "height": 710
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Canopy - Green",
        "src": "https://playfolly.com/cdn/shop/files/roof-green.png?v=1772410762&width=1600",
        "naturalWidth": 912,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    },
    {
      "id": "ld-673",
      "tag": "img",
      "rect": {
        "x": 882,
        "y": 4559,
        "width": 395,
        "height": 710
      },
      "role": null,
      "label": "absolute top-0 left-0 block w-full h-auto object-cover transition-opacity duration-300 ease-out opac",
      "media": {
        "alt": "Canopy - Sand",
        "src": "https://playfolly.com/cdn/shop/files/roof-sand.png?v=1772410777&width=1600",
        "naturalWidth": 912,
        "naturalHeight": 1638
      },
      "radius": "0px",
      "overflow": "clip",
      "objectFit": "cover",
      "aspectRatio": 0.6,
      "objectPosition": "50% 50%"
    }
  ],
  "bounds": {
    "top": 4190,
    "bottom": 5380,
    "pageHeight": 8087
  },
  "schema": "little-details-section-measurements-v1",
  "source": "saved DOM/CSS element and animation maps",
  "columns": [],
  "spacing": {
    "gapsPx": [
      6
    ],
    "representativeContentWidthsPx": [
      1002,
      613,
      498,
      395,
      319,
      305,
      271
    ]
  },
  "coverage": {
    "cards": 0,
    "media": 12,
    "animations": 0,
    "elementsInSection": 52
  },
  "surfaces": {
    "radii": [
      "3.35544e+07px"
    ],
    "borders": [
      "3px solid rgb(255, 255, 255)",
      "3px solid rgba(0, 0, 0, 0)"
    ],
    "shadows": []
  },
  "animations": [],
  "capturedAt": "2026-10-30T21:55:03.099Z",
  "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** — The user scrolls to a grid or carousel layout containing various rectangular elements with text and images. (12s–17s; 85% 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: Card component with rounded border, dark text overlay panel, and swappable hero image; Color swatch selector pattern driving image/asset swaps; Centered two-line header plus subcopy structure; Carousel arrow navigation controls
- Dependencies: Custom 3D rendered product assets in multiple color variants; Color token palette matching swatch colors to actual product variants; Opacity-crossfade image swap mechanism tied to color selection
- Guidance: Reuse the card shell, dark overlay text panel, and swatch-driven image-swap structure; supply equivalent photographed or rendered product imagery per color variant and re-theme palette tokens to the new brand's colors.

### Evidence readiness

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


### Agent implementation prompt

Create an original features section inspired by the design evidence titled “Accessory cards in a carousel”.

Purpose: A section displaying product accessories in a row of outlined cards with a color picker below.

Structure: centered single-column. Source layout label: Centered header above a row of uniform cards, with a color palette control centered below.. Use a narrow central reading axis and deliberate scale contrast rather than adding unnecessary side content.

Visual signature to preserve at the pattern level: A soft yellow background with a row of rounded rectangular cards showcasing 3D yellow accessories.

Components: Centered header, Outlined accessory cards, 3D accessory renders, Color picker palette, Carousel controls.

Style direction: playful, colourful, geometric.

Observed crop: 1440×1190px (1.21:1). Treat this as evidence of composition, not a mandatory output size.

Typography evidence: {"role":"display","size":"234px","family":"Geograph","source":"computed","traits":"Regular","weight":"700","evidence":"font-4: computed CSS at 1440×1000; AI role: 234px font size with negative letter spacing used for large impactful text 'Play beautiful'.","sampleId":"font-4","confidence":1,"lineHeight":"234px","letterSpacing":"-11.7px"} {"role":"heading","size":"60px","family":"Geograph","source":"computed","traits":"Regular","weight":"500","evidence":"font-1: computed CSS at 1440×1000; AI role: 60px font used for primary section headings like 'A new way to play.'.","sampleId":"font-1","confidence":0.95,"lineHeight":"60px","letterSpacing":"normal"} {"role":"body","size":"16px","family":"Geograph","source":"computed","traits":"Regular","weight":"400","evidence":"font-6: computed CSS at 1440×1000; AI role: 16px regular weight font used for general body copy and descriptive text.","sampleId":"font-6","confidence":0.9,"lineHeight":"24px","letterSpacing":"normal"}

Color evidence: {"hex":"#EDBF7A","name":"canvas","role":"canvas","source":"computed","evidence":"color-1: computed rgb(237, 191, 122); AI role: Used extensively as a background color for the body and major sections.","sampleId":"color-1","confidence":0.95} {"hex":"#000000","name":"text","role":"text","source":"computed","evidence":"color-2: computed rgb(0, 0, 0); AI role: Black used for primary text and button text.","sampleId":"color-2","confidence":0.9} {"hex":"#FFFFFF","name":"text","role":"text","source":"computed","evidence":"color-3: computed rgb(255, 255, 255); AI role: White used for large display text, secondary text on dark backgrounds, and icons.","sampleId":"color-3","confidence":0.9} {"hex":"#F9EE16","name":"primary action","role":"primary-action","source":"computed","evidence":"color-7: computed rgb(249, 238, 22); AI role: Bright yellow used for the 'Get updates' call to action button.","sampleId":"color-7","confidence":0.9} {"hex":"#F4D602","name":"surface","role":"surface","source":"computed","evidence":"color-4: computed rgb(244, 214, 2); AI role: Used as the background color for the 'Want one?' section.","sampleId":"color-4","confidence":0.85} {"hex":"#262626","name":"surface","role":"surface","source":"computed","evidence":"color-5: computed rgb(38, 38, 38); AI role: Dark gray used as background for adapter feature cards.","sampleId":"color-5","confidence":0.8}

Typography measured inside this section: {"id":"font-7","size":"18px","count":1,"family":"Geograph","traits":"Regular","weight":"400","contexts":[{"tag":"p","top":4427,"text":"Available now, with more to come — built to keep evolving.","property":"font"}],"fontStack":"Geograph, \"Century Gothic\", Futura, \"Helvetica Neue\", Helvetica, Arial, sans-serif","lineHeight":"28px","letterSpacing":"normal"}

Colors measured inside this section: {"id":"color-5","hex":"#262626","alpha":1,"count":25,"contexts":[{"tag":"div","top":4555,"text":"Adapter. A precision-engineered aluminium connection point that allows accessories to attach and swa","property":"border"},{"tag":"div","top":4911,"text":"Adapter. A precision-engineered aluminium connection point that allows accessories to attach and swa","property":"background"}],"cssValue":"rgb(38, 38, 38)"} {"id":"color-6","hex":"#FFFFFF","alpha":0.6,"count":5,"contexts":[{"tag":"span","top":4937,"text":"Adapter. A precision-engineered aluminium connection point that allows accessories to attach and swa","property":"text"}],"cssValue":"rgba(255, 255, 255, 0.6)"}

Exact section measurements from the saved element map: root {"rect":{"x":0,"y":4163,"width":1440,"height":1190},"padding":{"top":"0px","left":"0px","right":"0px","bottom":"0px"},"gap":"normal","columns":null,"overflow":"visible"}; spacing {"gapsPx":[6],"representativeContentWidthsPx":[1002,613,498,395,319,305,271]}; surfaces {"radii":["3.35544e+07px"],"borders":["3px solid rgb(255, 255, 255)","3px solid rgba(0, 0, 0, 0)"],"shadows":[]}; media [{"tag":"img","rect":{"x":40,"y":4559,"width":395,"height":711},"aspectRatio":0.6,"objectFit":"cover","objectPosition":"50% 50%","radius":"0px"},{"tag":"img","rect":{"x":40,"y":4559,"width":395,"height":711},"aspectRatio":0.6,"objectFit":"cover","objectPosition":"50% 50%","radius":"0px"},{"tag":"img","rect":{"x":40,"y":4559,"width":395,"height":711},"aspectRatio":0.6,"objectFit":"cover","objectPosition":"50% 50%","radius":"0px"},{"tag":"img","rect":{"x":40,"y":4559,"width":395,"height":711},"aspectRatio":0.6,"objectFit":"cover","objectPosition":"50% 50%","radius":"0px"}]

Motion evidence: scroll: The user scrolls to a grid or carousel layout containing various rectangular elements with text and images. (85% confidence)

Transfer these principles: Card component with rounded border, dark text overlay panel, and swappable hero image; Color swatch selector pattern driving image/asset swaps; Centered two-line header plus subcopy structure; Carousel arrow navigation controls.

Dependencies: Custom 3D rendered product assets in multiple color variants; Color token palette matching swatch colors to actual product variants; Opacity-crossfade image swap mechanism tied to color selection.

Adaptation guidance: Reuse the card shell, dark overlay text panel, and swatch-driven image-swap structure; supply equivalent photographed or rendered product imagery per color variant and re-theme palette tokens to the new brand's colors.

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