# Four-column link footer — Section Design Reference

Schema: Design Details SECTION.md v3.2
Source: https://grida.co/
Website: Grida
Section ID: 3aef4e4e-add4-43ff-8bea-73bd35e078da
Design Details page: https://designdetails.io/sections/grida-co--home--footer-3aef4e4e
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

1280×464px root; block

## Visual signature

minimal, bold, corporate, high-contrast, product-centric treatment at 1440×464px. The crop spans 10510–10974px of a 10974px page.

## Components

- Navigation Bar
- Hero
- Primary Button
- Feature Card
- Carousel
- Logo Strip
- Footer
- Product UI
- Sticky Scroll Section
- Interactive Layer Breakdown

## 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: 1280×464px root; block
- Layout: 1280×464px root; block
- Styles: minimal, bold, corporate, high-contrast, product-centric
- Components: Navigation Bar, Hero, Primary Button, Feature Card, Carousel, Logo Strip, Footer, Product UI, Sticky Scroll Section, Interactive Layer Breakdown
- Purpose: footer section from the Home page of Grida.
- Visual signature: rgba(0, 0, 0, 0) with 1280×464px root; block. Inspect the crop for image and content hierarchy.
- Place on the page: 11 of 11, after Call to action (`9c2652f6-207c-4d88-8cc3-3431c58a2c80`)

### Crop and composition

- Crop: 1440×464px; aspect ratio 3.103:1
- Page bounds: 10510–10974px of 10974px
- 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": [],
  "siteRoles": [
    {
      "role": "display",
      "size": "113.8px",
      "family": "Inter",
      "source": "computed",
      "traits": "Regular",
      "weight": "500",
      "evidence": "font-4: computed CSS at 1440×1000; AI role: 113.8px Inter, weight 500. Used for the primary hero headline 'Make room for your ideas.'",
      "sampleId": "font-4",
      "confidence": 1,
      "lineHeight": "115.5px",
      "letterSpacing": "-7.6px"
    },
    {
      "role": "heading",
      "size": "78px",
      "family": "Inter",
      "source": "computed",
      "traits": "Regular",
      "weight": "500",
      "evidence": "font-8: computed CSS at 1440×1000; AI role: 78px Inter, weight 500. Used for major section headers like 'Follow an idea.'",
      "sampleId": "font-8",
      "confidence": 0.95,
      "lineHeight": "81.1px",
      "letterSpacing": "-4.5px"
    },
    {
      "role": "body",
      "size": "14px",
      "family": "Inter",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-14: computed CSS at 1440×1000; AI role: 14px Inter, weight 400. Used for navigation links and general body copy.",
      "sampleId": "font-14",
      "confidence": 0.9,
      "lineHeight": "20px",
      "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": [],
  "functionalPalette": [
    {
      "hex": "#FAFAFA",
      "name": "canvas",
      "role": "canvas",
      "source": "computed",
      "evidence": "color-1: computed rgb(250, 250, 250); AI role: rgb(250, 250, 250) used as the main light background for the page.",
      "sampleId": "color-1",
      "confidence": 0.95
    },
    {
      "hex": "#111111",
      "name": "canvas",
      "role": "canvas",
      "source": "computed",
      "evidence": "color-2: computed rgb(17, 17, 17); AI role: rgb(17, 17, 17) used as the primary background color for dark-themed sections.",
      "sampleId": "color-2",
      "confidence": 0.95
    },
    {
      "hex": "#181818",
      "name": "text",
      "role": "text",
      "source": "computed",
      "evidence": "color-13: computed rgb(24, 24, 24); AI role: rgb(24, 24, 24) used for primary text headings and body copy on light backgrounds.",
      "sampleId": "color-13",
      "confidence": 0.9
    },
    {
      "hex": "#FFFFFF",
      "name": "text",
      "role": "text",
      "source": "computed",
      "evidence": "color-3: computed lab(100 0 0); AI role: White text used in dark sections (e.g., 'Download for macOS' button text).",
      "sampleId": "color-3",
      "confidence": 0.9
    },
    {
      "hex": "#666666",
      "name": "muted text",
      "role": "muted-text",
      "source": "computed",
      "evidence": "color-10: computed rgb(102, 102, 102); AI role: rgb(102, 102, 102) used for secondary or descriptive text.",
      "sampleId": "color-10",
      "confidence": 0.85
    },
    {
      "hex": "#202020",
      "name": "primary action",
      "role": "primary-action",
      "source": "computed",
      "evidence": "color-8: computed rgb(32, 32, 32); AI role: rgb(32, 32, 32) used for main CTA buttons.",
      "sampleId": "color-8",
      "confidence": 0.8
    },
    {
      "hex": "#EFEFEF",
      "name": "surface",
      "role": "surface",
      "source": "computed",
      "evidence": "color-4: computed rgb(239, 239, 239); AI role: rgb(239, 239, 239) used for feature card backgrounds in the bottom section.",
      "sampleId": "color-4",
      "confidence": 0.8
    }
  ]
}
```

### Design tokens

```json
{
  "radius": "Visibly large border radii on main product showcase images and feature cards (estimated 16px-24px visually, specific value not in DOM facts).",
  "density": "Low density; the design breathes heavily with significant negative space around key text elements.",
  "evidence": "Observed from overall layout structure, card styling in 'Your agent' section, button shapes in hero, and tight integration of typography scale with layout space.",
  "borderStyle": "Mostly borderless, relying on subtle background color shifts (e.g., white to light gray) to define container edges.",
  "buttonStyle": "Pill-shaped (fully rounded) solid color buttons for primary actions, distinct from the squarer feature cards.",
  "cornerStyle": "Rounded corners heavily utilized on UI elements, cards, and image containers, softening the harsh black-and-white contrast.",
  "contentWidth": "Centered constrained max-width for textual content, while visual elements often break the grid or expand wider.",
  "spacingRhythm": "Generous vertical spacing between major sections, creating distinct thematic blocks."
}
```

### Reconstruction specification

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

- Root: 1280×464px; block; padding {"top":"0px","right":"16px","bottom":"0px","left":"16px"}; gap normal; background rgba(0, 0, 0, 0); radius 0px.
- Representative content widths: 1280px.
- Layout containers: 0; cards/surfaces: 0; media elements: 4; browser animations: 0.

#### Container, grid, and spacing

```json
{
  "viewport": {
    "width": 1440,
    "captureBounds": {
      "top": 13560,
      "bottom": 14024,
      "pageHeight": 14024
    }
  },
  "container": {
    "size": "1280×464px",
    "position": "x 80px, y 13560px",
    "display": "block",
    "positionMode": "static",
    "padding": {
      "top": "0px",
      "right": "16px",
      "bottom": "0px",
      "left": "16px"
    },
    "margin": {
      "top": "0px",
      "right": "80px",
      "bottom": "0px",
      "left": "80px"
    },
    "gap": "normal",
    "columns": "not captured",
    "background": "rgba(0, 0, 0, 0)",
    "radius": "0px",
    "border": "0px solid rgb(227, 227, 227)",
    "shadow": "none",
    "overflow": "visible"
  },
  "spacing": {
    "observedGapsPx": [],
    "representativeContentWidthsPx": [
      1280
    ]
  },
  "columns": []
}
```

#### Cards and surfaces

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

#### Media treatment

```json
[
  {
    "element": "svg · svg",
    "size": "24×24px",
    "position": "x 96px, y 13594px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "20×20px",
    "position": "x 96px, y 13636px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "20×20px",
    "position": "x 132px, y 13636px",
    "aspectRatio": 1,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "20×20px",
    "position": "x 168px, y 13636px",
    "aspectRatio": 1,
    "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-11-03T05:01:49.604Z",
  "viewportWidth": 1440,
  "bounds": {
    "top": 13560,
    "bottom": 14024,
    "pageHeight": 14024
  },
  "root": {
    "id": "ld-984",
    "tag": "footer",
    "role": null,
    "label": "GridaGitHubX (Twitter)Slack CommunityProductWorkflowsAI GatewaySVGDownloadsBrandChangelogDocumentati",
    "rect": {
      "x": 80,
      "y": 13560,
      "width": 1280,
      "height": 464
    },
    "display": "block",
    "position": "static",
    "padding": {
      "top": "0px",
      "right": "16px",
      "bottom": "0px",
      "left": "16px"
    },
    "margin": {
      "top": "0px",
      "right": "80px",
      "bottom": "0px",
      "left": "80px"
    },
    "gap": "normal",
    "columns": null,
    "background": "rgba(0, 0, 0, 0)",
    "radius": "0px",
    "border": "0px solid rgb(227, 227, 227)",
    "shadow": "none",
    "overflow": "visible"
  },
  "spacing": {
    "gapsPx": [],
    "representativeContentWidthsPx": [
      1280
    ]
  },
  "columns": [],
  "cards": [],
  "surfaces": {
    "radii": [],
    "borders": [],
    "shadows": []
  },
  "media": [
    {
      "id": "ld-991",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 96,
        "y": 13594,
        "width": 24,
        "height": 24
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-998",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 96,
        "y": 13636,
        "width": 20,
        "height": 20
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-1002",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 132,
        "y": 13636,
        "width": 20,
        "height": 20
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-1006",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 168,
        "y": 13636,
        "width": 20,
        "height": 20
      },
      "aspectRatio": 1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    }
  ],
  "animations": [],
  "coverage": {
    "elementsInSection": 40,
    "cards": 0,
    "media": 4,
    "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: 6/7
- Can build: Yes
- Missing facts: section-specific computed typography and color samples; timestamped authored motion
- Warning: Buildable with adaptations for these unsupported facts: section-specific computed typography and color samples; timestamped authored motion.

### Agent implementation prompt

Create an original footer section inspired by the design evidence titled “Four-column link footer”.

Purpose: footer section from the Home page of Grida.

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

Visual signature to preserve at the pattern level: rgba(0, 0, 0, 0) with 1280×464px root; block. Inspect the crop for image and content hierarchy.

Components: Navigation Bar, Hero, Primary Button, Feature Card, Carousel, Logo Strip, Footer, Product UI, Sticky Scroll Section, Interactive Layer Breakdown.

Style direction: minimal, bold, corporate, high-contrast, product-centric.

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

Typography evidence: {"role":"display","size":"113.8px","family":"Inter","source":"computed","traits":"Regular","weight":"500","evidence":"font-4: computed CSS at 1440×1000; AI role: 113.8px Inter, weight 500. Used for the primary hero headline 'Make room for your ideas.'","sampleId":"font-4","confidence":1,"lineHeight":"115.5px","letterSpacing":"-7.6px"} {"role":"heading","size":"78px","family":"Inter","source":"computed","traits":"Regular","weight":"500","evidence":"font-8: computed CSS at 1440×1000; AI role: 78px Inter, weight 500. Used for major section headers like 'Follow an idea.'","sampleId":"font-8","confidence":0.95,"lineHeight":"81.1px","letterSpacing":"-4.5px"} {"role":"body","size":"14px","family":"Inter","source":"computed","traits":"Regular","weight":"400","evidence":"font-14: computed CSS at 1440×1000; AI role: 14px Inter, weight 400. Used for navigation links and general body copy.","sampleId":"font-14","confidence":0.9,"lineHeight":"20px","letterSpacing":"normal"}

Color evidence: {"hex":"#FAFAFA","name":"canvas","role":"canvas","source":"computed","evidence":"color-1: computed rgb(250, 250, 250); AI role: rgb(250, 250, 250) used as the main light background for the page.","sampleId":"color-1","confidence":0.95} {"hex":"#111111","name":"canvas","role":"canvas","source":"computed","evidence":"color-2: computed rgb(17, 17, 17); AI role: rgb(17, 17, 17) used as the primary background color for dark-themed sections.","sampleId":"color-2","confidence":0.95} {"hex":"#181818","name":"text","role":"text","source":"computed","evidence":"color-13: computed rgb(24, 24, 24); AI role: rgb(24, 24, 24) used for primary text headings and body copy on light backgrounds.","sampleId":"color-13","confidence":0.9} {"hex":"#FFFFFF","name":"text","role":"text","source":"computed","evidence":"color-3: computed lab(100 0 0); AI role: White text used in dark sections (e.g., 'Download for macOS' button text).","sampleId":"color-3","confidence":0.9} {"hex":"#666666","name":"muted text","role":"muted-text","source":"computed","evidence":"color-10: computed rgb(102, 102, 102); AI role: rgb(102, 102, 102) used for secondary or descriptive text.","sampleId":"color-10","confidence":0.85} {"hex":"#202020","name":"primary action","role":"primary-action","source":"computed","evidence":"color-8: computed rgb(32, 32, 32); AI role: rgb(32, 32, 32) used for main CTA buttons.","sampleId":"color-8","confidence":0.8} {"hex":"#EFEFEF","name":"surface","role":"surface","source":"computed","evidence":"color-4: computed rgb(239, 239, 239); AI role: rgb(239, 239, 239) used for feature card backgrounds in the bottom section.","sampleId":"color-4","confidence":0.8}

No section-bounded typography samples were measured.

No section-bounded color samples were measured.

Exact section measurements from the saved element map: root {"rect":{"x":80,"y":13560,"width":1280,"height":464},"padding":{"top":"0px","right":"16px","bottom":"0px","left":"16px"},"gap":"normal","columns":null,"overflow":"visible"}; spacing {"gapsPx":[],"representativeContentWidthsPx":[1280]}; surfaces {"radii":[],"borders":[],"shadows":[]}; media [{"tag":"svg","rect":{"x":96,"y":13594,"width":24,"height":24},"aspectRatio":1,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"},{"tag":"svg","rect":{"x":96,"y":13636,"width":20,"height":20},"aspectRatio":1,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"},{"tag":"svg","rect":{"x":132,"y":13636,"width":20,"height":20},"aspectRatio":1,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"},{"tag":"svg","rect":{"x":168,"y":13636,"width":20,"height":20},"aspectRatio":1,"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.
