# Centered hero with search mockup — Section Design Reference

Schema: Design Details SECTION.md v3.2
Source: https://www.savetoshelf.com/
Website: Shelf
Section ID: 8fb866d9-4357-440f-bb1c-5419d1b2671a
Design Details page: https://designdetails.io/sections/savetoshelf-com--home--ai-8fb866d9-4357-440f-bb1c-5419d1b2671a
Status: deterministic evidence captured; editorial AI review pending

## Purpose

This is a hero section on the Home page. Use the attached crop and measured browser facts to reconstruct its composition. Do not infer unmeasured source values.

## Layout

1416×2478px root; block

## Visual signature

minimal, typographic, soft treatment at 1440×2402px. The crop spans 76–2478px of a 5464px page.

## Components

- Navigation Bar
- Hero
- Newsletter Form
- Feature Card
- FAQ Accordion
- Tag
- Primary Button
- Interactive UI Mockups

## Evidence note

The geometry, typography, colors, media, and animation parameters below come from saved HTML/CSS/browser evidence when present. Website-level roles are supplied separately. Editorial section judgment remains pending unless the MCP resolves this source ID to a promoted canonical record.

## Build blueprint v3.2

### Purpose and classification

- Canonical type: hero
- Source type: hero
- Structure: 1416×2478px root; block
- Layout: 1416×2478px root; block
- Styles: minimal, typographic, soft
- Components: Navigation Bar, Hero, Newsletter Form, Feature Card, FAQ Accordion, Tag, Primary Button, Interactive UI Mockups
- Purpose: hero section from the Home page of Shelf.
- Visual signature: rgb(252, 252, 251) with 1416×2478px root; block. Inspect the crop for image and content hierarchy.
- Place on the page: 2 of 6, after Navigation (`125bbecd-3003-4318-bc31-0de9b8f5b19f`), before Product UI (`savetoshelf-com:d46aac9a-3b12-4eeb-a801-c47da782b57b`)

### Crop and composition

- Crop: 1440×2402px; aspect ratio 0.6:1
- Page bounds: 76–2478px of 5464px
- Guidance: Preserve the documented hierarchy and relationships; exact measurements were not deterministically captured.

### 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": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "17px",
      "weight": "400",
      "lineHeight": "27.6px",
      "letterSpacing": "normal",
      "sample": "Every app has its own save button, and none of them talks to the next. What you keep ends up scatter",
      "element": "span",
      "occurrences": 6,
      "sourceId": "font-4"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "16px",
      "weight": "400",
      "lineHeight": "24px",
      "letterSpacing": "normal",
      "sample": "Shelf",
      "element": "span",
      "occurrences": 6,
      "sourceId": "font-5"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "14px",
      "weight": "400",
      "lineHeight": "21px",
      "letterSpacing": "normal",
      "sample": "The most recent, straight from the extension",
      "element": "p",
      "occurrences": 6,
      "sourceId": "font-7"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "12px",
      "weight": "400",
      "lineHeight": "18px",
      "letterSpacing": "0.6px",
      "sample": "Collections",
      "element": "p",
      "occurrences": 6,
      "sourceId": "font-8"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "16px",
      "weight": "500",
      "lineHeight": "22px",
      "letterSpacing": "normal",
      "sample": "How Linear writes its changelog",
      "element": "p",
      "occurrences": 4,
      "sourceId": "font-9"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "14px",
      "weight": "400",
      "lineHeight": "19.3px",
      "letterSpacing": "normal",
      "sample": "The tone we want for release notes",
      "element": "p",
      "occurrences": 4,
      "sourceId": "font-10"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "14px",
      "weight": "600",
      "lineHeight": "21px",
      "letterSpacing": "-0.1px",
      "sample": "Bookmarks with a Brain",
      "element": "p",
      "occurrences": 3,
      "sourceId": "font-12"
    },
    {
      "role": "card/subheading",
      "family": "General Sans",
      "stack": "\"General Sans\", ui-sans-serif, system-ui, sans-serif",
      "size": "30px",
      "weight": "600",
      "lineHeight": "37.5px",
      "letterSpacing": "normal",
      "sample": "Good morning",
      "element": "p",
      "occurrences": 1,
      "sourceId": "font-15"
    },
    {
      "role": "card/subheading",
      "family": "General Sans",
      "stack": "\"General Sans\", ui-sans-serif, system-ui, sans-serif",
      "size": "20px",
      "weight": "600",
      "lineHeight": "30px",
      "letterSpacing": "normal",
      "sample": "Your last saves",
      "element": "p",
      "occurrences": 1,
      "sourceId": "font-16"
    },
    {
      "role": "body/supporting copy",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "19px",
      "weight": "400",
      "lineHeight": "30.9px",
      "letterSpacing": "normal",
      "sample": "Your personal inspiration library that remembers not just what you saved, but why.",
      "element": "p",
      "occurrences": 1,
      "sourceId": "font-17"
    },
    {
      "role": "card/subheading",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "22px",
      "weight": "400",
      "lineHeight": "33px",
      "letterSpacing": "normal",
      "sample": "Instagram",
      "element": "span",
      "occurrences": 12,
      "sourceId": "font-19"
    },
    {
      "role": "UI/supporting text",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "13px",
      "weight": "400",
      "lineHeight": "19.5px",
      "letterSpacing": "normal",
      "sample": "▾",
      "element": "span",
      "occurrences": 10,
      "sourceId": "font-20"
    },
    {
      "role": "UI/supporting text",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "12px",
      "weight": "400",
      "lineHeight": "18px",
      "letterSpacing": "normal",
      "sample": "Today",
      "element": "span",
      "occurrences": 4,
      "sourceId": "font-21"
    },
    {
      "role": "section heading",
      "family": "General Sans",
      "stack": "\"General Sans\", ui-sans-serif, system-ui, sans-serif",
      "size": "84px",
      "weight": "600",
      "lineHeight": "85.7px",
      "letterSpacing": "-2.5px",
      "sample": "Everything you saved",
      "element": "span",
      "occurrences": 3,
      "sourceId": "font-22"
    },
    {
      "role": "UI/supporting text",
      "family": "Switzer",
      "stack": "Switzer, ui-sans-serif, system-ui, sans-serif",
      "size": "13px",
      "weight": "500",
      "lineHeight": "19.5px",
      "letterSpacing": "normal",
      "sample": "S",
      "element": "span",
      "occurrences": 2,
      "sourceId": "font-25"
    },
    {
      "role": "section heading",
      "family": "General Sans",
      "stack": "\"General Sans\", ui-sans-serif, system-ui, sans-serif",
      "size": "48px",
      "weight": "600",
      "lineHeight": "48px",
      "letterSpacing": "normal",
      "sample": "You save all over the place",
      "element": "span",
      "occurrences": 1,
      "sourceId": "font-26"
    }
  ],
  "siteRoles": [
    {
      "role": "display",
      "size": "84px",
      "family": "General Sans",
      "source": "computed",
      "traits": "Regular",
      "weight": "600",
      "evidence": "font-22: computed CSS at 1440×1000; AI role: 84px General Sans with -2.5px letter spacing used for the primary hero headline.",
      "sampleId": "font-22",
      "confidence": 1,
      "lineHeight": "85.7px",
      "letterSpacing": "-2.5px"
    },
    {
      "role": "heading",
      "size": "52px",
      "family": "General Sans",
      "source": "computed",
      "traits": "Regular",
      "weight": "600",
      "evidence": "font-1: computed CSS at 1440×1000; AI role: 52px General Sans with -1.6px letter spacing used for major section breaks like 'Save it where you found it'.",
      "sampleId": "font-1",
      "confidence": 1,
      "lineHeight": "56.2px",
      "letterSpacing": "-1.6px"
    },
    {
      "role": "body",
      "size": "16px",
      "family": "Switzer",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-5: computed CSS at 1440×1000; AI role: 16px Switzer with 24px line height used for standard descriptive paragraphs.",
      "sampleId": "font-5",
      "confidence": 0.95,
      "lineHeight": "24px",
      "letterSpacing": "normal"
    },
    {
      "role": "mono",
      "size": "12px",
      "family": "Switzer",
      "source": "computed",
      "traits": "uppercase",
      "weight": "400",
      "evidence": "font-8: computed CSS at 1440×1000; AI role: 12px Switzer uppercase with 0.6px letter spacing used for small eyebrow labels and metadata.",
      "sampleId": "font-8",
      "confidence": 0.8,
      "lineHeight": "18px",
      "letterSpacing": "0.6px"
    }
  ]
}
```

### 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": "#FCFCFB",
      "cssValue": "rgb(252, 252, 251)",
      "alpha": 1,
      "appliedAs": [
        "background"
      ],
      "occurrences": 18,
      "sourceId": "color-1"
    },
    {
      "value": "#F2F1ED",
      "cssValue": "rgb(242, 241, 237)",
      "alpha": 1,
      "appliedAs": [
        "background",
        "control-background"
      ],
      "occurrences": 34,
      "sourceId": "color-2"
    },
    {
      "value": "#76766E",
      "cssValue": "rgb(118, 118, 110)",
      "alpha": 1,
      "appliedAs": [
        "text",
        "svg-stroke"
      ],
      "occurrences": 84,
      "sourceId": "color-3"
    },
    {
      "value": "#9EE86F",
      "cssValue": "rgb(158, 232, 111)",
      "alpha": 1,
      "appliedAs": [
        "background",
        "border"
      ],
      "occurrences": 13,
      "sourceId": "color-5"
    },
    {
      "value": "#A5A59C",
      "cssValue": "rgb(165, 165, 156)",
      "alpha": 1,
      "appliedAs": [
        "text"
      ],
      "occurrences": 31,
      "sourceId": "color-6"
    },
    {
      "value": "#E9E8E3",
      "cssValue": "rgb(233, 232, 227)",
      "alpha": 1,
      "appliedAs": [
        "background"
      ],
      "occurrences": 6,
      "sourceId": "color-7"
    },
    {
      "value": "#2D64BC",
      "cssValue": "rgb(45, 100, 188)",
      "alpha": 1,
      "appliedAs": [
        "background",
        "svg-stroke"
      ],
      "occurrences": 7,
      "sourceId": "color-8"
    },
    {
      "value": "#1C1C1A",
      "cssValue": "rgb(28, 28, 26)",
      "alpha": 1,
      "appliedAs": [
        "background"
      ],
      "occurrences": 1,
      "sourceId": "color-9"
    },
    {
      "value": "#E4E8F2",
      "cssValue": "rgb(228, 232, 242)",
      "alpha": 1,
      "appliedAs": [
        "background"
      ],
      "occurrences": 1,
      "sourceId": "color-10"
    },
    {
      "value": "#E1E0DA",
      "cssValue": "rgb(225, 224, 218)",
      "alpha": 1,
      "appliedAs": [
        "border"
      ],
      "occurrences": 69,
      "sourceId": "color-12"
    },
    {
      "value": "#3FBF4A",
      "cssValue": "rgb(63, 191, 74)",
      "alpha": 1,
      "appliedAs": [
        "background",
        "svg-stroke"
      ],
      "occurrences": 10,
      "sourceId": "color-14"
    },
    {
      "value": "#C6C4BD",
      "cssValue": "rgb(198, 196, 189)",
      "alpha": 1,
      "appliedAs": [
        "border"
      ],
      "occurrences": 4,
      "sourceId": "color-16"
    },
    {
      "value": "#FF0000",
      "cssValue": "rgb(255, 0, 0)",
      "alpha": 1,
      "appliedAs": [
        "svg-fill"
      ],
      "occurrences": 2,
      "sourceId": "color-18"
    },
    {
      "value": "#FF0069",
      "cssValue": "rgb(255, 0, 105)",
      "alpha": 1,
      "appliedAs": [
        "svg-fill"
      ],
      "occurrences": 2,
      "sourceId": "color-19"
    },
    {
      "value": "#000000",
      "cssValue": "rgb(0, 0, 0)",
      "alpha": 1,
      "appliedAs": [
        "svg-fill"
      ],
      "occurrences": 2,
      "sourceId": "color-20"
    },
    {
      "value": "#F24E1E",
      "cssValue": "rgb(242, 78, 30)",
      "alpha": 1,
      "appliedAs": [
        "svg-fill"
      ],
      "occurrences": 2,
      "sourceId": "color-24"
    }
  ],
  "functionalPalette": [
    {
      "hex": "#F2F1ED",
      "name": "canvas",
      "role": "canvas",
      "source": "computed",
      "evidence": "color-2: computed rgb(242, 241, 237); AI role: The dominant warm off-white (#F2F1ED) background color for the page body.",
      "sampleId": "color-2",
      "confidence": 1
    },
    {
      "hex": "#1A1A18",
      "name": "text",
      "role": "text",
      "source": "computed",
      "evidence": "color-4: computed rgb(26, 26, 24); AI role: Near black (#1A1A18) used for primary headings and prominent text.",
      "sampleId": "color-4",
      "confidence": 1
    },
    {
      "hex": "#9EE86F",
      "name": "primary action",
      "role": "primary-action",
      "source": "computed",
      "evidence": "color-5: computed rgb(158, 232, 111); AI role: Bright green (#9EE86F) used exclusively for primary CTA buttons and highlights.",
      "sampleId": "color-5",
      "confidence": 1
    },
    {
      "hex": "#FCFCFB",
      "name": "surface",
      "role": "surface",
      "source": "computed",
      "evidence": "color-1: computed rgb(252, 252, 251); AI role: Pure white (#FCFCFB) used for the background of feature cards and search mockups.",
      "sampleId": "color-1",
      "confidence": 0.95
    },
    {
      "hex": "#E1E0DA",
      "name": "border",
      "role": "border",
      "source": "computed",
      "evidence": "color-12: computed rgb(225, 224, 218); AI role: Light gray (#E1E0DA) used for subtle 1px strokes around inputs, cards, and mockup elements.",
      "sampleId": "color-12",
      "confidence": 0.95
    },
    {
      "hex": "#76766E",
      "name": "muted text",
      "role": "muted-text",
      "source": "computed",
      "evidence": "color-3: computed rgb(118, 118, 110); AI role: Medium gray (#76766E) used for secondary body copy and lesser UI text.",
      "sampleId": "color-3",
      "confidence": 0.9
    }
  ]
}
```

### Design tokens

```json
{
  "radius": "Buttons and tags appear to use 9999px (pill). Main feature cards appear to use large radii around 24px-32px.",
  "density": "Low density overall to emphasize copy and key UI visuals, though the interactive mockups compress more data into smaller zones.",
  "evidence": "Visual inspection of the cards, buttons, input fields, and overall structural spacing on the 1440px viewport.",
  "borderStyle": "Subtle, structured usage. 1px solid borders in light gray (#E1E0DA) delineate interactive zones and container edges without high contrast.",
  "buttonStyle": "Solid color fill (vibrant green) with dark text, fully rounded pill shapes, no shadows.",
  "cornerStyle": "Highly rounded. Use of fully rounded pill shapes for buttons/tags and large radii for container cards.",
  "contentWidth": "Centered max-width container, appearing to span around 1000px-1200px based on the layout constraint.",
  "spacingRhythm": "Generous macro-whitespace separating vertical sections, contrasting with tighter grouped elements inside UI mockups."
}
```

### Reconstruction specification

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

- Root: 1416×2478px; block; padding {"top":"76px","right":"0px","bottom":"0px","left":"0px"}; gap normal; background rgb(252, 252, 251); radius 0px 0px 56px 56px.
- Observed gaps: 6, 8, 10, 12, 14, 16px.
- Representative content widths: 1352, 1028, 896, 848, 768, 592, 576, 525px.
- Layout containers: 8; cards/surfaces: 12; media elements: 12; browser animations: 1.

#### Container, grid, and spacing

```json
{
  "viewport": {
    "width": 1440,
    "captureBounds": {
      "top": 76,
      "bottom": 2478,
      "pageHeight": 5464
    }
  },
  "container": {
    "size": "1416×2478px",
    "position": "x 12px, y 0px",
    "display": "block",
    "positionMode": "relative",
    "padding": {
      "top": "76px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "margin": {
      "top": "0px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "gap": "normal",
    "columns": "not captured",
    "background": "rgb(252, 252, 251)",
    "radius": "0px 0px 56px 56px",
    "border": "0px solid rgb(26, 26, 24)",
    "shadow": "none",
    "overflow": "visible"
  },
  "spacing": {
    "observedGapsPx": [
      6,
      8,
      10,
      12,
      14,
      16
    ],
    "representativeContentWidthsPx": [
      1352,
      1028,
      896,
      848,
      768,
      592,
      576,
      525
    ]
  },
  "columns": [
    {
      "element": "span · S",
      "size": "30×30px",
      "position": "x 1324px, y 692px",
      "display": "grid",
      "template": "32px",
      "direction": "row",
      "gap": "normal"
    },
    {
      "element": "form · Your email address Join waitlist",
      "size": "460×66px",
      "position": "x 490px, y 530px",
      "display": "flex",
      "template": "not captured",
      "direction": "row",
      "gap": "8px"
    },
    {
      "element": "p · + Paste a link, or drop it here ⌘V",
      "size": "525×54px",
      "position": "x 330px, y 866px",
      "display": "flex",
      "template": "not captured",
      "direction": "row",
      "gap": "14px"
    },
    {
      "element": "ul · Web Today How Linear writes its changelog The tone we want for release notes Other Mon Neue Haas Gro",
      "size": "1028×247px",
      "position": "x 330px, y 1028px",
      "display": "flex",
      "template": "not captured",
      "direction": "row",
      "gap": "16px"
    },
    {
      "element": "p · Web",
      "size": "268×17px",
      "position": "x 345px, y 1043px",
      "display": "flex",
      "template": "not captured",
      "direction": "row",
      "gap": "normal"
    },
    {
      "element": "p · Other",
      "size": "268×17px",
      "position": "x 658px, y 1043px",
      "display": "flex",
      "template": "not captured",
      "direction": "row",
      "gap": "normal"
    },
    {
      "element": "p · LinkedIn",
      "size": "268×17px",
      "position": "x 971px, y 1043px",
      "display": "flex",
      "template": "not captured",
      "direction": "row",
      "gap": "normal"
    },
    {
      "element": "p · Web",
      "size": "268×17px",
      "position": "x 1284px, y 1043px",
      "display": "flex",
      "template": "not captured",
      "direction": "row",
      "gap": "normal"
    }
  ]
}
```

#### Cards and surfaces

```json
{
  "cards": [
    {
      "element": "div · S ▾ Today My shelf 128 Favourites 14 Collections Website redesign 23 Brand refresh 11 New pitch 38 S",
      "size": "1352×770px",
      "position": "x 44px, y 676px",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ],
      "radius": "12px",
      "border": "1px solid rgb(225, 224, 218)",
      "shadow": "none",
      "background": "rgb(252, 252, 251)"
    },
    {
      "element": "li · Web Today How Linear writes its changelog The tone we want for release notes",
      "size": "298×247px",
      "position": "x 330px, y 1028px",
      "padding": [
        "16px",
        "16px",
        "16px",
        "16px"
      ],
      "radius": "16px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)"
    },
    {
      "element": "li · Other Mon Neue Haas Grotesk specimen The weights actually worth licensing",
      "size": "298×247px",
      "position": "x 643px, y 1028px",
      "padding": [
        "16px",
        "16px",
        "16px",
        "16px"
      ],
      "radius": "16px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)"
    },
    {
      "element": "li · LinkedIn Tue Why retainers beat project fees Saved for the anchoring argument",
      "size": "298×247px",
      "position": "x 956px, y 1028px",
      "padding": [
        "16px",
        "16px",
        "16px",
        "16px"
      ],
      "radius": "16px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)"
    },
    {
      "element": "li · Web Wed Stripe docs, the sidebar pattern Three levels deep without getting lost",
      "size": "298×247px",
      "position": "x 1269px, y 1028px",
      "padding": [
        "16px",
        "16px",
        "16px",
        "16px"
      ],
      "radius": "16px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)"
    },
    {
      "element": "p · mt-4 h-[132px] rounded-lg bg-[#1c1c1a]",
      "size": "268×124px",
      "position": "x 345px, y 1136px",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ],
      "radius": "8px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(28, 28, 26)"
    },
    {
      "element": "p · mt-4 h-[132px] rounded-lg bg-surface-sunken",
      "size": "268×124px",
      "position": "x 658px, y 1136px",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ],
      "radius": "8px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(233, 232, 227)"
    },
    {
      "element": "p · mt-4 h-[132px] rounded-lg bg-[#2d64bc]",
      "size": "268×124px",
      "position": "x 971px, y 1136px",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ],
      "radius": "8px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(45, 100, 188)"
    },
    {
      "element": "p · mt-4 h-[132px] rounded-lg bg-[#e4e8f2]",
      "size": "268×124px",
      "position": "x 1284px, y 1136px",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ],
      "radius": "8px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(228, 232, 242)"
    },
    {
      "element": "span · Voice note",
      "size": "180×178px",
      "position": "x 906px, y 1806px",
      "padding": [
        "14px",
        "24px",
        "14px",
        "24px"
      ],
      "radius": "3.35544e+07px",
      "border": "1px solid rgb(225, 224, 218)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)"
    },
    {
      "element": "span · Instagram",
      "size": "183×168px",
      "position": "x 760px, y 1763px",
      "padding": [
        "14px",
        "24px",
        "14px",
        "24px"
      ],
      "radius": "3.35544e+07px",
      "border": "1px solid rgb(225, 224, 218)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)"
    },
    {
      "element": "span · Web page",
      "size": "133×197px",
      "position": "x 685px, y 1743px",
      "padding": [
        "14px",
        "24px",
        "14px",
        "24px"
      ],
      "radius": "3.35544e+07px",
      "border": "1px solid rgb(225, 224, 218)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)"
    }
  ],
  "surfaces": {
    "radii": [
      "0px 0px 56px 56px",
      "10px",
      "16px",
      "11.2px",
      "12px",
      "8px",
      "3.35544e+07px"
    ],
    "borders": [
      "1px solid rgb(225, 224, 218)",
      "1px dashed rgb(198, 196, 189)"
    ],
    "shadows": []
  }
}
```

#### Media treatment

```json
[
  {
    "element": "svg · svg",
    "size": "36×36px",
    "position": "x 792px, y 1794px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "36×36px",
    "position": "x 1019px, y 1917px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "34×34px",
    "position": "x 455px, y 1919px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "33×33px",
    "position": "x 757px, y 1877px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "33×33px",
    "position": "x 650px, y 1788px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "31×31px",
    "position": "x 709px, y 1996px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "31×31px",
    "position": "x 37px, y 1964px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "31×31px",
    "position": "x 1212px, y 1917px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "31×31px",
    "position": "x 455px, y 1840px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "31×31px",
    "position": "x 1069px, y 1874px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "30×30px",
    "position": "x 300px, y 1892px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "30×30px",
    "position": "x 331px, y 1957px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  }
]
```

#### Browser-exposed animation parameters

```json
[
  {
    "target": "svg",
    "delayMs": 0,
    "durationMs": 2800,
    "easing": "linear",
    "iterations": null,
    "direction": "normal",
    "fill": "none",
    "keyframes": [
      {
        "offset": 0,
        "easing": "ease-in-out",
        "composite": "auto",
        "rotate": "0deg",
        "scale": "1",
        "computedOffset": 0
      },
      {
        "offset": 0.18,
        "easing": "ease-in-out",
        "composite": "auto",
        "rotate": "-16deg",
        "scale": "1.12",
        "computedOffset": 0.18
      },
      {
        "offset": 0.36,
        "easing": "ease-in-out",
        "composite": "auto",
        "rotate": "12deg",
        "scale": "1.06",
        "computedOffset": 0.36
      },
      {
        "offset": 0.55,
        "easing": "ease-in-out",
        "composite": "auto",
        "rotate": "0deg",
        "scale": "1",
        "computedOffset": 0.55
      },
      {
        "offset": 1,
        "easing": "ease-in-out",
        "composite": "auto",
        "rotate": "0deg",
        "scale": "1",
        "computedOffset": 1
      }
    ]
  }
]
```

### 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
{
  "schema": "little-details-section-measurements-v1",
  "source": "saved DOM/CSS element and animation maps",
  "capturedAt": "2026-10-04T23:16:47.778Z",
  "viewportWidth": 1440,
  "bounds": {
    "top": 76,
    "bottom": 2478,
    "pageHeight": 5464
  },
  "root": {
    "id": "ld-30",
    "tag": "header",
    "role": null,
    "label": "Bookmarks with a Brain Everything you saved finally findable Your personal inspiration library that ",
    "rect": {
      "x": 12,
      "y": 0,
      "width": 1416,
      "height": 2478
    },
    "display": "block",
    "position": "relative",
    "padding": {
      "top": "76px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "margin": {
      "top": "0px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "gap": "normal",
    "columns": null,
    "background": "rgb(252, 252, 251)",
    "radius": "0px 0px 56px 56px",
    "border": "0px solid rgb(26, 26, 24)",
    "shadow": "none",
    "overflow": "visible"
  },
  "spacing": {
    "gapsPx": [
      6,
      8,
      10,
      12,
      14,
      16
    ],
    "representativeContentWidthsPx": [
      1352,
      1028,
      896,
      848,
      768,
      592,
      576,
      525
    ]
  },
  "columns": [
    {
      "id": "ld-63",
      "tag": "span",
      "role": null,
      "label": "S",
      "rect": {
        "x": 1324,
        "y": 692,
        "width": 30,
        "height": 30
      },
      "display": "grid",
      "columns": "32px",
      "direction": "row",
      "gap": "normal"
    },
    {
      "id": "ld-44",
      "tag": "form",
      "role": null,
      "label": "Your email address Join waitlist",
      "rect": {
        "x": 490,
        "y": 530,
        "width": 460,
        "height": 66
      },
      "display": "flex",
      "columns": null,
      "direction": "row",
      "gap": "8px"
    },
    {
      "id": "ld-115",
      "tag": "p",
      "role": null,
      "label": "+ Paste a link, or drop it here ⌘V",
      "rect": {
        "x": 330,
        "y": 866,
        "width": 525,
        "height": 54
      },
      "display": "flex",
      "columns": null,
      "direction": "row",
      "gap": "14px"
    },
    {
      "id": "ld-122",
      "tag": "ul",
      "role": null,
      "label": "Web Today How Linear writes its changelog The tone we want for release notes Other Mon Neue Haas Gro",
      "rect": {
        "x": 330,
        "y": 1028,
        "width": 1028,
        "height": 247
      },
      "display": "flex",
      "columns": null,
      "direction": "row",
      "gap": "16px"
    },
    {
      "id": "ld-124",
      "tag": "p",
      "role": null,
      "label": "Web",
      "rect": {
        "x": 345,
        "y": 1043,
        "width": 268,
        "height": 17
      },
      "display": "flex",
      "columns": null,
      "direction": "row",
      "gap": "normal"
    },
    {
      "id": "ld-130",
      "tag": "p",
      "role": null,
      "label": "Other",
      "rect": {
        "x": 658,
        "y": 1043,
        "width": 268,
        "height": 17
      },
      "display": "flex",
      "columns": null,
      "direction": "row",
      "gap": "normal"
    },
    {
      "id": "ld-136",
      "tag": "p",
      "role": null,
      "label": "LinkedIn",
      "rect": {
        "x": 971,
        "y": 1043,
        "width": 268,
        "height": 17
      },
      "display": "flex",
      "columns": null,
      "direction": "row",
      "gap": "normal"
    },
    {
      "id": "ld-142",
      "tag": "p",
      "role": null,
      "label": "Web",
      "rect": {
        "x": 1284,
        "y": 1043,
        "width": 268,
        "height": 17
      },
      "display": "flex",
      "columns": null,
      "direction": "row",
      "gap": "normal"
    }
  ],
  "cards": [
    {
      "id": "ld-58",
      "tag": "div",
      "role": "img",
      "label": "S ▾ Today My shelf 128 Favourites 14 Collections Website redesign 23 Brand refresh 11 New pitch 38 S",
      "rect": {
        "x": 44,
        "y": 676,
        "width": 1352,
        "height": 770
      },
      "radius": "12px",
      "border": "1px solid rgb(225, 224, 218)",
      "shadow": "none",
      "background": "rgb(252, 252, 251)",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ]
    },
    {
      "id": "ld-123",
      "tag": "li",
      "role": null,
      "label": "Web Today How Linear writes its changelog The tone we want for release notes",
      "rect": {
        "x": 330,
        "y": 1028,
        "width": 298,
        "height": 247
      },
      "radius": "16px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)",
      "padding": [
        "16px",
        "16px",
        "16px",
        "16px"
      ]
    },
    {
      "id": "ld-129",
      "tag": "li",
      "role": null,
      "label": "Other Mon Neue Haas Grotesk specimen The weights actually worth licensing",
      "rect": {
        "x": 643,
        "y": 1028,
        "width": 298,
        "height": 247
      },
      "radius": "16px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)",
      "padding": [
        "16px",
        "16px",
        "16px",
        "16px"
      ]
    },
    {
      "id": "ld-135",
      "tag": "li",
      "role": null,
      "label": "LinkedIn Tue Why retainers beat project fees Saved for the anchoring argument",
      "rect": {
        "x": 956,
        "y": 1028,
        "width": 298,
        "height": 247
      },
      "radius": "16px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)",
      "padding": [
        "16px",
        "16px",
        "16px",
        "16px"
      ]
    },
    {
      "id": "ld-141",
      "tag": "li",
      "role": null,
      "label": "Web Wed Stripe docs, the sidebar pattern Three levels deep without getting lost",
      "rect": {
        "x": 1269,
        "y": 1028,
        "width": 298,
        "height": 247
      },
      "radius": "16px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)",
      "padding": [
        "16px",
        "16px",
        "16px",
        "16px"
      ]
    },
    {
      "id": "ld-128",
      "tag": "p",
      "role": null,
      "label": "mt-4 h-[132px] rounded-lg bg-[#1c1c1a]",
      "rect": {
        "x": 345,
        "y": 1136,
        "width": 268,
        "height": 124
      },
      "radius": "8px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(28, 28, 26)",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ]
    },
    {
      "id": "ld-134",
      "tag": "p",
      "role": null,
      "label": "mt-4 h-[132px] rounded-lg bg-surface-sunken",
      "rect": {
        "x": 658,
        "y": 1136,
        "width": 268,
        "height": 124
      },
      "radius": "8px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(233, 232, 227)",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ]
    },
    {
      "id": "ld-140",
      "tag": "p",
      "role": null,
      "label": "mt-4 h-[132px] rounded-lg bg-[#2d64bc]",
      "rect": {
        "x": 971,
        "y": 1136,
        "width": 268,
        "height": 124
      },
      "radius": "8px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(45, 100, 188)",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ]
    },
    {
      "id": "ld-146",
      "tag": "p",
      "role": null,
      "label": "mt-4 h-[132px] rounded-lg bg-[#e4e8f2]",
      "rect": {
        "x": 1284,
        "y": 1136,
        "width": 268,
        "height": 124
      },
      "radius": "8px",
      "border": "0px solid rgb(26, 26, 24)",
      "shadow": "none",
      "background": "rgb(228, 232, 242)",
      "padding": [
        "0px",
        "0px",
        "0px",
        "0px"
      ]
    },
    {
      "id": "ld-218",
      "tag": "span",
      "role": null,
      "label": "Voice note",
      "rect": {
        "x": 906,
        "y": 1806,
        "width": 180,
        "height": 178
      },
      "radius": "3.35544e+07px",
      "border": "1px solid rgb(225, 224, 218)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)",
      "padding": [
        "14px",
        "24px",
        "14px",
        "24px"
      ]
    },
    {
      "id": "ld-204",
      "tag": "span",
      "role": null,
      "label": "Instagram",
      "rect": {
        "x": 760,
        "y": 1763,
        "width": 183,
        "height": 168
      },
      "radius": "3.35544e+07px",
      "border": "1px solid rgb(225, 224, 218)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)",
      "padding": [
        "14px",
        "24px",
        "14px",
        "24px"
      ]
    },
    {
      "id": "ld-213",
      "tag": "span",
      "role": null,
      "label": "Web page",
      "rect": {
        "x": 685,
        "y": 1743,
        "width": 133,
        "height": 197
      },
      "radius": "3.35544e+07px",
      "border": "1px solid rgb(225, 224, 218)",
      "shadow": "none",
      "background": "rgb(242, 241, 237)",
      "padding": [
        "14px",
        "24px",
        "14px",
        "24px"
      ]
    }
  ],
  "surfaces": {
    "radii": [
      "0px 0px 56px 56px",
      "10px",
      "16px",
      "11.2px",
      "12px",
      "8px",
      "3.35544e+07px"
    ],
    "borders": [
      "1px solid rgb(225, 224, 218)",
      "1px dashed rgb(198, 196, 189)"
    ],
    "shadows": []
  },
  "media": [
    {
      "id": "ld-205",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 792,
        "y": 1794,
        "width": 36,
        "height": 36
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-219",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 1019,
        "y": 1917,
        "width": 36,
        "height": 36
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-208",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 455,
        "y": 1919,
        "width": 34,
        "height": 34
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-214",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 757,
        "y": 1877,
        "width": 33,
        "height": 33
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-245",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 650,
        "y": 1788,
        "width": 33,
        "height": 33
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-224",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 709,
        "y": 1996,
        "width": 31,
        "height": 31
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-230",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 37,
        "y": 1964,
        "width": 31,
        "height": 31
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-236",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 1212,
        "y": 1917,
        "width": 31,
        "height": 31
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-248",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 455,
        "y": 1840,
        "width": 31,
        "height": 31
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-252",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 1069,
        "y": 1874,
        "width": 31,
        "height": 31
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-242",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 300,
        "y": 1892,
        "width": 30,
        "height": 30
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-258",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 331,
        "y": 1957,
        "width": 30,
        "height": 30
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    }
  ],
  "animations": [
    {
      "id": "animation-4",
      "target": {
        "id": "ld-196",
        "tag": "svg",
        "role": null,
        "label": "svg",
        "rect": {
          "x": 674,
          "y": 1491,
          "width": 18,
          "height": 18
        }
      },
      "playState": "running",
      "playbackRate": 1,
      "delayMs": 0,
      "durationMs": 2800,
      "easing": "linear",
      "iterations": null,
      "direction": "normal",
      "fill": "none",
      "keyframes": [
        {
          "offset": 0,
          "easing": "ease-in-out",
          "composite": "auto",
          "rotate": "0deg",
          "scale": "1",
          "computedOffset": 0
        },
        {
          "offset": 0.18,
          "easing": "ease-in-out",
          "composite": "auto",
          "rotate": "-16deg",
          "scale": "1.12",
          "computedOffset": 0.18
        },
        {
          "offset": 0.36,
          "easing": "ease-in-out",
          "composite": "auto",
          "rotate": "12deg",
          "scale": "1.06",
          "computedOffset": 0.36
        },
        {
          "offset": 0.55,
          "easing": "ease-in-out",
          "composite": "auto",
          "rotate": "0deg",
          "scale": "1",
          "computedOffset": 0.55
        },
        {
          "offset": 1,
          "easing": "ease-in-out",
          "composite": "auto",
          "rotate": "0deg",
          "scale": "1",
          "computedOffset": 1
        }
      ]
    }
  ],
  "coverage": {
    "elementsInSection": 112,
    "cards": 12,
    "media": 12,
    "animations": 1
  },
  "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."
  ]
}
```

### Observed motion

No timestamped authored motion is attached. Use only restrained baseline transitions.

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: Not assessed
- What transfers: Documented hierarchy and composition
- Dependencies: None recorded
- Guidance: Adapt the pattern to the new product and content.

### Evidence readiness

- Coverage: 7/7
- Can build: Yes
- Missing facts: timestamped authored motion
- Warning: Buildable with adaptations for these unsupported facts: timestamped authored motion.

### Agent implementation prompt

Create an original hero section inspired by the design evidence titled “Centered hero with search mockup”.

Purpose: hero section from the Home page of Shelf.

Structure: 1416×2478px root; block. Source layout label: 1416×2478px root; block. Preserve the documented hierarchy and relationships; exact measurements were not deterministically captured.

Visual signature to preserve at the pattern level: rgb(252, 252, 251) with 1416×2478px root; block. Inspect the crop for image and content hierarchy.

Components: Navigation Bar, Hero, Newsletter Form, Feature Card, FAQ Accordion, Tag, Primary Button, Interactive UI Mockups.

Style direction: minimal, typographic, soft.

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

Typography evidence: {"role":"display","size":"84px","family":"General Sans","source":"computed","traits":"Regular","weight":"600","evidence":"font-22: computed CSS at 1440×1000; AI role: 84px General Sans with -2.5px letter spacing used for the primary hero headline.","sampleId":"font-22","confidence":1,"lineHeight":"85.7px","letterSpacing":"-2.5px"} {"role":"heading","size":"52px","family":"General Sans","source":"computed","traits":"Regular","weight":"600","evidence":"font-1: computed CSS at 1440×1000; AI role: 52px General Sans with -1.6px letter spacing used for major section breaks like 'Save it where you found it'.","sampleId":"font-1","confidence":1,"lineHeight":"56.2px","letterSpacing":"-1.6px"} {"role":"body","size":"16px","family":"Switzer","source":"computed","traits":"Regular","weight":"400","evidence":"font-5: computed CSS at 1440×1000; AI role: 16px Switzer with 24px line height used for standard descriptive paragraphs.","sampleId":"font-5","confidence":0.95,"lineHeight":"24px","letterSpacing":"normal"} {"role":"mono","size":"12px","family":"Switzer","source":"computed","traits":"uppercase","weight":"400","evidence":"font-8: computed CSS at 1440×1000; AI role: 12px Switzer uppercase with 0.6px letter spacing used for small eyebrow labels and metadata.","sampleId":"font-8","confidence":0.8,"lineHeight":"18px","letterSpacing":"0.6px"}

Color evidence: {"hex":"#F2F1ED","name":"canvas","role":"canvas","source":"computed","evidence":"color-2: computed rgb(242, 241, 237); AI role: The dominant warm off-white (#F2F1ED) background color for the page body.","sampleId":"color-2","confidence":1} {"hex":"#1A1A18","name":"text","role":"text","source":"computed","evidence":"color-4: computed rgb(26, 26, 24); AI role: Near black (#1A1A18) used for primary headings and prominent text.","sampleId":"color-4","confidence":1} {"hex":"#9EE86F","name":"primary action","role":"primary-action","source":"computed","evidence":"color-5: computed rgb(158, 232, 111); AI role: Bright green (#9EE86F) used exclusively for primary CTA buttons and highlights.","sampleId":"color-5","confidence":1} {"hex":"#FCFCFB","name":"surface","role":"surface","source":"computed","evidence":"color-1: computed rgb(252, 252, 251); AI role: Pure white (#FCFCFB) used for the background of feature cards and search mockups.","sampleId":"color-1","confidence":0.95} {"hex":"#E1E0DA","name":"border","role":"border","source":"computed","evidence":"color-12: computed rgb(225, 224, 218); AI role: Light gray (#E1E0DA) used for subtle 1px strokes around inputs, cards, and mockup elements.","sampleId":"color-12","confidence":0.95} {"hex":"#76766E","name":"muted text","role":"muted-text","source":"computed","evidence":"color-3: computed rgb(118, 118, 110); AI role: Medium gray (#76766E) used for secondary body copy and lesser UI text.","sampleId":"color-3","confidence":0.9}

Typography measured inside this section: {"id":"font-4","family":"Switzer","fontStack":"Switzer, ui-sans-serif, system-ui, sans-serif","weight":"400","size":"17px","lineHeight":"27.6px","letterSpacing":"normal","traits":"Regular","count":6,"contexts":[{"tag":"span","text":"Every app has its own save button, and none of them talks to the next. What you keep ends up scatter","top":1610,"property":"font"},{"tag":"span","text":"Shelf catches all twelve of them. Ask in the same words you would use out loud, and it answers with ","top":2774,"property":"font"},{"tag":"p","text":"A button in your browser for the web, the share sheet on your phone. Three seconds, and you are back","top":3731,"property":"font"}]} {"id":"font-5","family":"Switzer","fontStack":"Switzer, ui-sans-serif, system-ui, sans-serif","weight":"400","size":"16px","lineHeight":"24px","letterSpacing":"normal","traits":"Regular","count":6,"contexts":[{"tag":"span","text":"Shelf","top":44,"property":"font"},{"tag":"label","text":"Your email address","top":563,"property":"font"},{"tag":"p","text":"Nine new saves this week, and four things came back from May.","top":814,"property":"font"}]} {"id":"font-7","family":"Switzer","fontStack":"Switzer, ui-sans-serif, system-ui, sans-serif","weight":"400","size":"14px","lineHeight":"21px","letterSpacing":"normal","traits":"Regular","count":6,"contexts":[{"tag":"p","text":"The most recent, straight from the extension","top":990,"property":"font"},{"tag":"span","text":"Searching","top":2931,"property":"font"},{"tag":"span","text":"source: LinkedIn","top":2923,"property":"font"}]} {"id":"font-8","family":"Switzer","fontStack":"Switzer, ui-sans-serif, system-ui, sans-serif","weight":"400","size":"12px","lineHeight":"18px","letterSpacing":"0.6px","traits":"uppercase","count":6,"contexts":[{"tag":"p","text":"Collections","top":917,"property":"font"},{"tag":"p","text":"Source","top":1089,"property":"font"},{"tag":"p","text":"Web Today","top":1043,"property":"font"}]} {"id":"font-9","family":"Switzer","fontStack":"Switzer, ui-sans-serif, system-ui, sans-serif","weight":"500","size":"16px","lineHeight":"22px","letterSpacing":"normal","traits":"Regular","count":4,"contexts":[{"tag":"p","text":"How Linear writes its changelog","top":1071,"property":"font"},{"tag":"p","text":"Neue Haas Grotesk specimen","top":1071,"property":"font"},{"tag":"p","text":"Why retainers beat project fees","top":1071,"property":"font"}]} {"id":"font-10","family":"Switzer","fontStack":"Switzer, ui-sans-serif, system-ui, sans-serif","weight":"400","size":"14px","lineHeight":"19.3px","letterSpacing":"normal","traits":"Regular","count":4,"contexts":[{"tag":"p","text":"The tone we want for release notes","top":1103,"property":"font"},{"tag":"p","text":"The weights actually worth licensing","top":1103,"property":"font"},{"tag":"p","text":"Saved for the anchoring argument","top":1103,"property":"font"}]} {"id":"font-12","family":"Switzer","fontStack":"Switzer, ui-sans-serif, system-ui, sans-serif","weight":"600","size":"14px","lineHeight":"21px","letterSpacing":"-0.1px","traits":"Regular","count":3,"contexts":[{"tag":"p","text":"Bookmarks with a Brain","top":172,"property":"font"},{"tag":"span","text":"Why Shelf","top":1481,"property":"font"},{"tag":"span","text":"Getting things in","top":3538,"property":"font"}]} {"id":"font-15","family":"General Sans","fontStack":"\"General Sans\", ui-sans-serif, system-ui, sans-serif","weight":"600","size":"30px","lineHeight":"37.5px","letterSpacing":"normal","traits":"Regular","count":1,"contexts":[{"tag":"p","text":"Good morning","top":771,"property":"font"}]}

Colors measured inside this section: {"id":"color-1","hex":"#FCFCFB","alpha":1,"cssValue":"rgb(252, 252, 251)","count":18,"contexts":[{"tag":"div","text":"Shelf Finding Saving FAQ Join waitlist","top":12,"property":"background"},{"tag":"header","text":"Bookmarks with a Brain Everything you saved finally findable Your personal inspiration library that ","top":0,"property":"background"},{"tag":"form","text":"Your email address Join waitlist","top":530,"property":"background"}]} {"id":"color-2","hex":"#F2F1ED","alpha":1,"cssValue":"rgb(242, 241, 237)","count":34,"contexts":[{"tag":"body","text":"Shelf Finding Saving FAQ Join waitlist const e=document.querySelector(\"[data-nav]\");if(e){const s=()","top":0,"property":"background"},{"tag":"button","text":"Join waitlist","top":539,"property":"control-background"},{"tag":"li","text":"Web Today How Linear writes its changelog The tone we want for release notes","top":1028,"property":"background"}]} {"id":"color-3","hex":"#76766E","alpha":1,"cssValue":"rgb(118, 118, 110)","count":84,"contexts":[{"tag":"p","text":"Your personal inspiration library that remembers not just what you saved, but why.","top":428,"property":"text"},{"tag":"span","text":"S","top":692,"property":"text"},{"tag":"svg","text":"","top":761,"property":"svg-stroke"}]} {"id":"color-5","hex":"#9EE86F","alpha":1,"cssValue":"rgb(158, 232, 111)","count":13,"contexts":[{"tag":"span","text":"","top":20,"property":"background"},{"tag":"p","text":"The tone we want for release notes","top":1103,"property":"border"},{"tag":"span","text":"The empty state does the teaching","top":3852,"property":"border"}]} {"id":"color-6","hex":"#A5A59C","alpha":1,"cssValue":"rgb(165, 165, 156)","count":31,"contexts":[{"tag":"button","text":"Join waitlist","top":539,"property":"text"},{"tag":"span","text":"▾","top":697,"property":"text"},{"tag":"p","text":"Collections","top":917,"property":"text"}]} {"id":"color-7","hex":"#E9E8E3","alpha":1,"cssValue":"rgb(233, 232, 227)","count":6,"contexts":[{"tag":"p","text":"Bookmarks with a Brain","top":172,"property":"background"},{"tag":"span","text":"S","top":692,"property":"background"},{"tag":"li","text":"My shelf 128","top":803,"property":"background"}]} {"id":"color-8","hex":"#2D64BC","alpha":1,"cssValue":"rgb(45, 100, 188)","count":7,"contexts":[{"tag":"span","text":"","top":1129,"property":"background"},{"tag":"p","text":"","top":1136,"property":"background"},{"tag":"svg","text":"","top":2004,"property":"svg-stroke"}]} {"id":"color-9","hex":"#1C1C1A","alpha":1,"cssValue":"rgb(28, 28, 26)","count":1,"contexts":[{"tag":"p","text":"","top":1136,"property":"background"}]}

Exact section measurements from the saved element map: root {"rect":{"x":12,"y":0,"width":1416,"height":2478},"padding":{"top":"76px","right":"0px","bottom":"0px","left":"0px"},"gap":"normal","columns":null,"overflow":"visible"}; spacing {"gapsPx":[6,8,10,12,14,16],"representativeContentWidthsPx":[1352,1028,896,848,768,592,576,525]}; surfaces {"radii":["0px 0px 56px 56px","10px","16px","11.2px","12px","8px","3.35544e+07px"],"borders":["1px solid rgb(225, 224, 218)","1px dashed rgb(198, 196, 189)"],"shadows":[]}; media [{"tag":"svg","rect":{"x":792,"y":1794,"width":36,"height":36},"aspectRatio":1,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"},{"tag":"svg","rect":{"x":1019,"y":1917,"width":36,"height":36},"aspectRatio":1,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"},{"tag":"svg","rect":{"x":455,"y":1919,"width":34,"height":34},"aspectRatio":1,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"},{"tag":"svg","rect":{"x":757,"y":1877,"width":33,"height":33},"aspectRatio":1,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"}]; animations [{"target":{"id":"ld-196","tag":"svg","role":null,"label":"svg","rect":{"x":674,"y":1491,"width":18,"height":18}},"delayMs":0,"durationMs":2800,"easing":"linear","keyframes":[{"offset":0,"easing":"ease-in-out","composite":"auto","rotate":"0deg","scale":"1","computedOffset":0},{"offset":0.18,"easing":"ease-in-out","composite":"auto","rotate":"-16deg","scale":"1.12","computedOffset":0.18},{"offset":0.36,"easing":"ease-in-out","composite":"auto","rotate":"12deg","scale":"1.06","computedOffset":0.36},{"offset":0.55,"easing":"ease-in-out","composite":"auto","rotate":"0deg","scale":"1","computedOffset":0.55},{"offset":1,"easing":"ease-in-out","composite":"auto","rotate":"0deg","scale":"1","computedOffset":1}]}]

Do not invent signature motion. Use only restrained baseline transitions if the product needs them.

Transfer the documented hierarchy and composition rather than source copy or assets.

No explicit dependencies were recorded.

Adapt the pattern to the new product and content.

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