# Haptic Footer — Section Design Reference

Schema: Design Details SECTION.md v3.2
Source: https://www.haptic.studio/
Website: Haptic
Section ID: 00644ca9-e2dd-4c17-a494-496d29ac11f1
Status: deterministic evidence captured; editorial AI review pending

## Purpose

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

## Layout

captured layout

## Visual signature

minimal, bold, corporate, photographic, modern-portfolio treatment at 1440×1000px. The crop spans 7069–8069px of a 8069px page.

## Components

- Navigation Bar
- Hero With Background Imagery
- Primary Button
- Logo Strip
- Gallery
- Testimonial Card
- Pricing Table
- Newsletter Form
- Footer
- Floating Action Cards

## 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: footer
- Source type: footer
- Structure: captured layout
- Layout: captured layout
- Styles: minimal, bold, corporate, photographic, modern-portfolio
- Components: Navigation Bar, Hero With Background Imagery, Primary Button, Logo Strip, Gallery, Testimonial Card, Pricing Table, Newsletter Form, Footer, Floating Action Cards
- Purpose: footer section from the Home page of Haptic.
- Visual signature: Captured visual surface with captured layout. Inspect the crop for image and content hierarchy.

### Crop and composition

- Crop: 1440×1000px; aspect ratio 1.44:1
- Page bounds: 7069–8069px of 8069px
- 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": "section heading",
      "family": "GT Standard L Medium",
      "stack": "\"GT Standard L Medium\", \"GT Standard L Medium Placeholder\", sans-serif",
      "size": "100px",
      "weight": "500",
      "lineHeight": "80px",
      "letterSpacing": "-3px",
      "sample": "Haptic",
      "element": "p",
      "occurrences": 1,
      "sourceId": "font-11"
    },
    {
      "role": "body/supporting copy",
      "family": "SF Pro Display Regular",
      "stack": "\"SF Pro Display Regular\", \"SF Pro Display Regular Placeholder\", sans-serif",
      "size": "14px",
      "weight": "400",
      "lineHeight": "16.8px",
      "letterSpacing": "normal",
      "sample": "2026",
      "element": "p",
      "occurrences": 1,
      "sourceId": "font-13"
    },
    {
      "role": "body/supporting copy",
      "family": "GT Standard L Medium",
      "stack": "\"GT Standard L Medium\", \"GT Standard L Medium Placeholder\", sans-serif",
      "size": "12px",
      "weight": "500",
      "lineHeight": "21.6px",
      "letterSpacing": "normal",
      "sample": "TM",
      "element": "p",
      "occurrences": 1,
      "sourceId": "font-14"
    }
  ],
  "siteRoles": [
    {
      "role": "display",
      "size": "48px",
      "family": "GT Standard L Medium",
      "source": "computed",
      "traits": "Regular",
      "weight": "500",
      "evidence": "font-3: computed CSS at 1440×1000; AI role: Large 48px GT Standard L Medium used for the main hero headline.",
      "sampleId": "font-3",
      "confidence": 0.9,
      "lineHeight": "48px",
      "letterSpacing": "-1px"
    },
    {
      "role": "heading",
      "size": "42px",
      "family": "GT Standard L Medium",
      "source": "computed",
      "traits": "Regular",
      "weight": "500",
      "evidence": "font-1: computed CSS at 1440×1000; AI role: 42px GT Standard L Medium used for section headings like 'Product Design', 'Websites'.",
      "sampleId": "font-1",
      "confidence": 0.85,
      "lineHeight": "42px",
      "letterSpacing": "-0.6px"
    },
    {
      "role": "body",
      "size": "15px",
      "family": "SF Pro Display Regular",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-4: computed CSS at 1440×1000; AI role: 15px SF Pro Display Regular used for general body copy and navigation links.",
      "sampleId": "font-4",
      "confidence": 0.9,
      "lineHeight": "18px",
      "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": "#F5F5F7",
      "cssValue": "rgb(245, 245, 247)",
      "alpha": 1,
      "appliedAs": [
        "background",
        "svg-fill"
      ],
      "occurrences": 24,
      "sourceId": "color-2"
    }
  ],
  "functionalPalette": [
    {
      "hex": "#FFFFFF",
      "name": "canvas",
      "role": "canvas",
      "source": "computed",
      "evidence": "color-3: computed rgb(255, 255, 255); AI role: Pure white (#FFFFFF) used extensively as the primary background color.",
      "sampleId": "color-3",
      "confidence": 0.95
    },
    {
      "hex": "#000000",
      "name": "text",
      "role": "text",
      "source": "computed",
      "evidence": "color-1: computed rgb(0, 0, 0); AI role: Pure black (#000000) used for primary typography and iconography.",
      "sampleId": "color-1",
      "confidence": 0.95
    },
    {
      "hex": "#F5F5F7",
      "name": "surface",
      "role": "surface",
      "source": "computed",
      "evidence": "color-2: computed rgb(245, 245, 247); AI role: Light gray (#F5F5F7) used for secondary backgrounds like the pricing tier cards.",
      "sampleId": "color-2",
      "confidence": 0.85
    },
    {
      "hex": "#9DFF5E",
      "name": "accent",
      "role": "accent",
      "source": "computed",
      "evidence": "color-21: computed rgb(157, 255, 94); AI role: Bright lime green (#9DFF5E) used as an accent color for specific labels like 'Bespoke'.",
      "sampleId": "color-21",
      "confidence": 0.7
    }
  ]
}
```

### Design tokens

```json
{
  "radius": "Medium to large border radii observed on primary UI elements.",
  "density": "Low density; the design prioritizes large imagery and ample whitespace over packing information tightly.",
  "evidence": "Visual inspection reveals large gaps between text blocks and images, rounded corners on the portfolio grid items, and a central alignment for text content.",
  "borderStyle": "Mostly borderless design; separation is achieved through whitespace and subtle background color differences rather than explicit borders.",
  "buttonStyle": "Buttons are typically solid with rounded corners, often featuring a blurred or semi-transparent background (glassmorphism effect) when overlaying content.",
  "cornerStyle": "Consistent use of rounded corners on images, video frames, and UI cards (e.g., pricing cards, floating action cards), softening the overall aesthetic.",
  "contentWidth": "Content is constrained to a central column, likely with a maximum width to ensure readability on large screens, though images occasionally break out.",
  "spacingRhythm": "Generous use of vertical and horizontal whitespace, creating distinct separation between sections and elements."
}
```

### Reconstruction specification

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

- Root container was not deterministically isolated.
- Representative content widths: 694, 400, 279px.
- Layout containers: 1; cards/surfaces: 0; media elements: 1; browser animations: 0.

#### Container, grid, and spacing

```json
{
  "viewport": {
    "width": 1440,
    "captureBounds": {
      "top": 7069,
      "bottom": 8069,
      "pageHeight": 8069
    }
  },
  "container": null,
  "spacing": {
    "observedGapsPx": [],
    "representativeContentWidthsPx": [
      694,
      400,
      279
    ]
  },
  "columns": [
    {
      "element": "form · form",
      "size": "400×58px",
      "position": "x 20px, y 7489px",
      "display": "flex",
      "template": "not captured",
      "direction": "row",
      "gap": "0px"
    }
  ]
}
```

#### Cards and surfaces

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

#### Media treatment

```json
[
  {
    "element": "svg · svg",
    "size": "1440×384px",
    "position": "x 0px, y 7685px",
    "aspectRatio": 3.8,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  }
]
```

#### 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
{
  "schema": "little-details-section-measurements-v1",
  "source": "saved DOM/CSS element and animation maps",
  "capturedAt": "2026-10-08T03:43:22.354Z",
  "viewportWidth": 1440,
  "bounds": {
    "top": 7069,
    "bottom": 8069,
    "pageHeight": 8069
  },
  "root": null,
  "spacing": {
    "gapsPx": [],
    "representativeContentWidthsPx": [
      694,
      400,
      279
    ]
  },
  "columns": [
    {
      "id": "ld-1182",
      "tag": "form",
      "role": null,
      "label": "form",
      "rect": {
        "x": 20,
        "y": 7489,
        "width": 400,
        "height": 58
      },
      "display": "flex",
      "columns": null,
      "direction": "row",
      "gap": "0px"
    }
  ],
  "cards": [],
  "surfaces": {
    "radii": [
      "8px",
      "3px"
    ],
    "borders": [],
    "shadows": []
  },
  "media": [
    {
      "id": "ld-1217",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 0,
        "y": 7685,
        "width": 1440,
        "height": 384
      },
      "aspectRatio": 3.8,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    }
  ],
  "animations": [],
  "coverage": {
    "elementsInSection": 22,
    "cards": 0,
    "media": 1,
    "animations": 0
  },
  "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 footer section inspired by the design evidence titled “Haptic Footer”.

Purpose: footer section from the Home page of Haptic.

Structure: captured layout. Source layout label: captured layout. Preserve the documented hierarchy and relationships; exact measurements were not deterministically captured.

Visual signature to preserve at the pattern level: Captured visual surface with captured layout. Inspect the crop for image and content hierarchy.

Components: Navigation Bar, Hero With Background Imagery, Primary Button, Logo Strip, Gallery, Testimonial Card, Pricing Table, Newsletter Form, Footer, Floating Action Cards.

Style direction: minimal, bold, corporate, photographic, modern-portfolio.

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

Typography evidence: {"role":"display","size":"48px","family":"GT Standard L Medium","source":"computed","traits":"Regular","weight":"500","evidence":"font-3: computed CSS at 1440×1000; AI role: Large 48px GT Standard L Medium used for the main hero headline.","sampleId":"font-3","confidence":0.9,"lineHeight":"48px","letterSpacing":"-1px"} {"role":"heading","size":"42px","family":"GT Standard L Medium","source":"computed","traits":"Regular","weight":"500","evidence":"font-1: computed CSS at 1440×1000; AI role: 42px GT Standard L Medium used for section headings like 'Product Design', 'Websites'.","sampleId":"font-1","confidence":0.85,"lineHeight":"42px","letterSpacing":"-0.6px"} {"role":"body","size":"15px","family":"SF Pro Display Regular","source":"computed","traits":"Regular","weight":"400","evidence":"font-4: computed CSS at 1440×1000; AI role: 15px SF Pro Display Regular used for general body copy and navigation links.","sampleId":"font-4","confidence":0.9,"lineHeight":"18px","letterSpacing":"normal"}

Color evidence: {"hex":"#FFFFFF","name":"canvas","role":"canvas","source":"computed","evidence":"color-3: computed rgb(255, 255, 255); AI role: Pure white (#FFFFFF) used extensively as the primary background color.","sampleId":"color-3","confidence":0.95} {"hex":"#000000","name":"text","role":"text","source":"computed","evidence":"color-1: computed rgb(0, 0, 0); AI role: Pure black (#000000) used for primary typography and iconography.","sampleId":"color-1","confidence":0.95} {"hex":"#F5F5F7","name":"surface","role":"surface","source":"computed","evidence":"color-2: computed rgb(245, 245, 247); AI role: Light gray (#F5F5F7) used for secondary backgrounds like the pricing tier cards.","sampleId":"color-2","confidence":0.85} {"hex":"#9DFF5E","name":"accent","role":"accent","source":"computed","evidence":"color-21: computed rgb(157, 255, 94); AI role: Bright lime green (#9DFF5E) used as an accent color for specific labels like 'Bespoke'.","sampleId":"color-21","confidence":0.7}

Typography measured inside this section: {"id":"font-11","family":"GT Standard L Medium","fontStack":"\"GT Standard L Medium\", \"GT Standard L Medium Placeholder\", sans-serif","weight":"500","size":"100px","lineHeight":"80px","letterSpacing":"-3px","traits":"Regular","count":1,"contexts":[{"tag":"p","text":"Haptic","top":7084,"property":"font"}]} {"id":"font-13","family":"SF Pro Display Regular","fontStack":"\"SF Pro Display Regular\", \"SF Pro Display Regular Placeholder\", sans-serif","weight":"400","size":"14px","lineHeight":"16.8px","letterSpacing":"normal","traits":"Regular","count":1,"contexts":[{"tag":"p","text":"2026","top":7647,"property":"font"}]} {"id":"font-14","family":"GT Standard L Medium","fontStack":"\"GT Standard L Medium\", \"GT Standard L Medium Placeholder\", sans-serif","weight":"500","size":"12px","lineHeight":"21.6px","letterSpacing":"normal","traits":"uppercase","count":1,"contexts":[{"tag":"p","text":"TM","top":7084,"property":"font"}]}

Colors measured inside this section: {"id":"color-2","hex":"#F5F5F7","alpha":1,"cssValue":"rgb(245, 245, 247)","count":24,"contexts":[{"tag":"div","text":"SUBSCRIPTIONTactileFlexible, part-time design support for teams who need consistent progress without","top":6437,"property":"background"},{"tag":"input","text":"","top":7489,"property":"background"},{"tag":"path","text":"","top":7628,"property":"svg-fill"}]}

Exact section measurements from the saved element map: spacing {"gapsPx":[],"representativeContentWidthsPx":[694,400,279]}; surfaces {"radii":["8px","3px"],"borders":[],"shadows":[]}; media [{"tag":"svg","rect":{"x":0,"y":7685,"width":1440,"height":384},"aspectRatio":3.8,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"}]

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.
