# Dark footer with inline links — Section Design Reference

Schema: Design Details SECTION.md v3.2
Source: https://router.com/
Website: Ramp Router
Section ID: 8c9c032f-4a0a-493b-8fcc-8c91ffb98219
Design Details page: https://designdetails.io/sections/router-com--home--footer-8c9c032f
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

1440×157px root; flex

## Visual signature

minimal, typographic, corporate, technical-developer-focused, grid-based-structual treatment at 1440×157px. The crop spans 7266–7423px of a 7423px page.

## Components

- Announcement Bar
- Navigation Bar
- Hero
- Feature Card
- Testimonial Card
- Product UI
- Logo Strip
- Editorial Card
- Primary Button
- Outline Button
- Footer
- Data Visualization Block
- Oversized Background Typography

## 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: 1440×157px root; flex
- Layout: 1440×157px root; flex
- Styles: minimal, typographic, corporate, technical-developer-focused, grid-based-structual
- Components: Announcement Bar, Navigation Bar, Hero, Feature Card, Testimonial Card, Product UI, Logo Strip, Editorial Card, Primary Button, Outline Button, Footer, Data Visualization Block, Oversized Background Typography
- Purpose: footer section from the Home page of Ramp Router.
- Visual signature: rgb(26, 25, 25) with 1440×157px root; flex. Inspect the crop for image and content hierarchy.
- Place on the page: 11 of 11, after Call to action (`router-com:cta_yellow_shape`)

### Crop and composition

- Crop: 1440×157px; aspect ratio 9.172:1
- Page bounds: 7266–7423px of 7423px
- 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": "64px",
      "family": "Lausanne",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-4: computed CSS at 1440×1000; AI role: Large 64px Lausanne used for primary page headings like 'Cut inference costs in seconds' and 'Tokens are money. Save both.'.",
      "sampleId": "font-4",
      "confidence": 1,
      "lineHeight": "64px",
      "letterSpacing": "-0.6px"
    },
    {
      "role": "heading",
      "size": "28px",
      "family": "Lausanne",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-2: computed CSS at 1440×1000; AI role: 28px Lausanne used for section headings like 'Control AI spend from inference to invoice.' and large testimonial text.",
      "sampleId": "font-2",
      "confidence": 0.95,
      "lineHeight": "32px",
      "letterSpacing": "normal"
    },
    {
      "role": "body",
      "size": "16px",
      "family": "Lausanne",
      "source": "computed",
      "traits": "Regular",
      "weight": "400",
      "evidence": "font-1: computed CSS at 1440×1000; AI role: 16px Lausanne used widely for primary paragraph text and general body copy.",
      "sampleId": "font-1",
      "confidence": 1,
      "lineHeight": "24px",
      "letterSpacing": "normal"
    },
    {
      "role": "mono",
      "size": "14px",
      "family": "IBM Plex Mono",
      "source": "computed",
      "traits": "uppercase",
      "weight": "400",
      "evidence": "font-12: computed CSS at 1440×1000; AI role: 14px IBM Plex Mono used for technical labels, names, and uppercase small text elements.",
      "sampleId": "font-12",
      "confidence": 0.9,
      "lineHeight": "16px",
      "letterSpacing": "0.5px"
    }
  ]
}
```

### 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": "#86837E",
      "cssValue": "rgb(134, 131, 126)",
      "alpha": 1,
      "appliedAs": [
        "text"
      ],
      "occurrences": 31,
      "sourceId": "color-11"
    }
  ],
  "functionalPalette": [
    {
      "hex": "#FFFFFF",
      "name": "canvas",
      "role": "canvas",
      "source": "computed",
      "evidence": "color-2: computed rgb(255, 255, 255); AI role: White (#FFFFFF) is the primary background color for the main body and majority of the page sections.",
      "sampleId": "color-2",
      "confidence": 1
    },
    {
      "hex": "#000000",
      "name": "text",
      "role": "text",
      "source": "computed",
      "evidence": "color-3: computed rgb(0, 0, 0); AI role: Black (#000000) is the dominant color for headings and primary text.",
      "sampleId": "color-3",
      "confidence": 0.95
    },
    {
      "hex": "#E7F256",
      "name": "accent",
      "role": "accent",
      "source": "computed",
      "evidence": "color-27: computed rgb(231, 242, 86); AI role: Neon yellow (#E7F256) used for prominent highlights, specifically the large shape in the lower CTA section.",
      "sampleId": "color-27",
      "confidence": 0.95
    },
    {
      "hex": "#6D6A65",
      "name": "muted text",
      "role": "muted-text",
      "source": "computed",
      "evidence": "color-10: computed rgb(109, 106, 101); AI role: Gray (#6D6A65) used for secondary text, labels, and supporting copy.",
      "sampleId": "color-10",
      "confidence": 0.9
    },
    {
      "hex": "#BBB8B3",
      "name": "border",
      "role": "border",
      "source": "computed",
      "evidence": "color-15: computed rgb(187, 184, 179); AI role: Light gray (#BBB8B3) used extensively for grid lines and section borders.",
      "sampleId": "color-15",
      "confidence": 0.85
    },
    {
      "hex": "#131313",
      "name": "surface",
      "role": "surface",
      "source": "computed",
      "evidence": "color-30: computed rgb(19, 19, 19); AI role: Dark gray (#131313) used for product UI mockups and dark mode sections like the footer.",
      "sampleId": "color-30",
      "confidence": 0.8
    }
  ]
}
```

### Design tokens

```json
{
  "radius": "0px for main layout elements; slight rounding may appear inside specific product UI mockups (e.g., tags).",
  "density": "Moderate density. While there is ample whitespace in the macro layout, technical sections (tables, graphs, UI mockups) present data densely.",
  "evidence": "Visible grid lines separating features, flat background colors, sharp corners on cards and buttons, and clear division of space.",
  "borderStyle": "Thin, solid 1px borders (often light gray #BBB8B3) are used extensively to divide layout sections, create tables, and outline cards.",
  "buttonStyle": "Buttons are typically sharp-edged rectangles, either solid black for primary actions or transparent with thin borders for secondary actions.",
  "cornerStyle": "Sharp, 0px border radius is standard across layout containers, panels, and most UI elements, reinforcing the brutalist/technical aesthetic.",
  "contentWidth": "The layout stretches wide, utilizing full viewport widths for sections while constraining typography to readable max-widths within the grid cells.",
  "spacingRhythm": "Content is structured using a rigid, visible grid system defined by 1px solid borders, creating uniform, boxy padding across sections and components."
}
```

### Reconstruction specification

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

- Root: 1440×157px; flex; padding {"top":"44px","right":"64px","bottom":"44px","left":"64px"}; gap 16px; background rgb(26, 25, 25); radius 0px.
- Observed gaps: 8, 16px.
- Representative content widths: 815px.
- Layout containers: 2; cards/surfaces: 0; media elements: 2; browser animations: 0.

#### Container, grid, and spacing

```json
{
  "viewport": {
    "width": 1440,
    "captureBounds": {
      "top": 7266,
      "bottom": 7423,
      "pageHeight": 7423
    }
  },
  "container": {
    "size": "1440×157px",
    "position": "x 0px, y 7266px",
    "display": "flex",
    "positionMode": "static",
    "padding": {
      "top": "44px",
      "right": "64px",
      "bottom": "44px",
      "left": "64px"
    },
    "margin": {
      "top": "0px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "gap": "16px",
    "columns": "not captured",
    "background": "rgb(26, 25, 25)",
    "radius": "0px",
    "border": "0px solid rgb(26, 25, 25)",
    "shadow": "none",
    "overflow": "visible"
  },
  "spacing": {
    "observedGapsPx": [
      8,
      16
    ],
    "representativeContentWidthsPx": [
      815
    ]
  },
  "columns": [
    {
      "element": "footer · ModelsRouter DocumentationToken Spend ManagementA.I. IndexRamp IntelligenceRamp LabsRamp SWE-Bench©",
      "size": "1440×157px",
      "position": "x 0px, y 7266px",
      "display": "flex",
      "template": "not captured",
      "direction": "column",
      "gap": "16px"
    },
    {
      "element": "nav · ModelsRouter DocumentationToken Spend ManagementA.I. IndexRamp IntelligenceRamp LabsRamp SWE-Bench",
      "size": "815×20px",
      "position": "x 561px, y 7317px",
      "display": "flex",
      "template": "not captured",
      "direction": "row",
      "gap": "16px"
    }
  ]
}
```

#### Cards and surfaces

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

#### Media treatment

```json
[
  {
    "element": "svg · svg",
    "size": "106×33px",
    "position": "x 64px, y 7310px",
    "aspectRatio": 3.2,
    "objectFit": "fill",
    "objectPosition": "50% 50%",
    "radius": "0px",
    "overflow": "hidden",
    "source": "source not captured"
  },
  {
    "element": "svg · svg",
    "size": "30×14px",
    "position": "x 1346px, y 7362px",
    "aspectRatio": 2.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-10-19T16:12:12.227Z",
  "viewportWidth": 1440,
  "bounds": {
    "top": 7266,
    "bottom": 7423,
    "pageHeight": 7423
  },
  "root": {
    "id": "ld-2903",
    "tag": "footer",
    "role": null,
    "label": "ModelsRouter DocumentationToken Spend ManagementA.I. IndexRamp IntelligenceRamp LabsRamp SWE-Bench© ",
    "rect": {
      "x": 0,
      "y": 7266,
      "width": 1440,
      "height": 157
    },
    "display": "flex",
    "position": "static",
    "padding": {
      "top": "44px",
      "right": "64px",
      "bottom": "44px",
      "left": "64px"
    },
    "margin": {
      "top": "0px",
      "right": "0px",
      "bottom": "0px",
      "left": "0px"
    },
    "gap": "16px",
    "columns": null,
    "background": "rgb(26, 25, 25)",
    "radius": "0px",
    "border": "0px solid rgb(26, 25, 25)",
    "shadow": "none",
    "overflow": "visible"
  },
  "spacing": {
    "gapsPx": [
      8,
      16
    ],
    "representativeContentWidthsPx": [
      815
    ]
  },
  "columns": [
    {
      "id": "ld-2903",
      "tag": "footer",
      "role": null,
      "label": "ModelsRouter DocumentationToken Spend ManagementA.I. IndexRamp IntelligenceRamp LabsRamp SWE-Bench© ",
      "rect": {
        "x": 0,
        "y": 7266,
        "width": 1440,
        "height": 157
      },
      "display": "flex",
      "columns": null,
      "direction": "column",
      "gap": "16px"
    },
    {
      "id": "ld-2928",
      "tag": "nav",
      "role": null,
      "label": "ModelsRouter DocumentationToken Spend ManagementA.I. IndexRamp IntelligenceRamp LabsRamp SWE-Bench",
      "rect": {
        "x": 561,
        "y": 7317,
        "width": 815,
        "height": 20
      },
      "display": "flex",
      "columns": null,
      "direction": "row",
      "gap": "16px"
    }
  ],
  "cards": [],
  "surfaces": {
    "radii": [],
    "borders": [],
    "shadows": []
  },
  "media": [
    {
      "id": "ld-2908",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 64,
        "y": 7310,
        "width": 106,
        "height": 33
      },
      "aspectRatio": 3.2,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    },
    {
      "id": "ld-2942",
      "tag": "svg",
      "role": null,
      "label": "svg",
      "rect": {
        "x": 1346,
        "y": 7362,
        "width": 30,
        "height": 14
      },
      "aspectRatio": 2.1,
      "objectFit": "fill",
      "objectPosition": "50% 50%",
      "radius": "0px",
      "overflow": "hidden",
      "media": null
    }
  ],
  "animations": [],
  "coverage": {
    "elementsInSection": 17,
    "cards": 0,
    "media": 2,
    "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 “Dark footer with inline links”.

Purpose: footer section from the Home page of Ramp Router.

Structure: 1440×157px root; flex. Source layout label: 1440×157px root; flex. Preserve the documented hierarchy and relationships; exact measurements were not deterministically captured.

Visual signature to preserve at the pattern level: rgb(26, 25, 25) with 1440×157px root; flex. Inspect the crop for image and content hierarchy.

Components: Announcement Bar, Navigation Bar, Hero, Feature Card, Testimonial Card, Product UI, Logo Strip, Editorial Card, Primary Button, Outline Button, Footer, Data Visualization Block, Oversized Background Typography.

Style direction: minimal, typographic, corporate, technical-developer-focused, grid-based-structual.

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

Typography evidence: {"role":"display","size":"64px","family":"Lausanne","source":"computed","traits":"Regular","weight":"400","evidence":"font-4: computed CSS at 1440×1000; AI role: Large 64px Lausanne used for primary page headings like 'Cut inference costs in seconds' and 'Tokens are money. Save both.'.","sampleId":"font-4","confidence":1,"lineHeight":"64px","letterSpacing":"-0.6px"} {"role":"heading","size":"28px","family":"Lausanne","source":"computed","traits":"Regular","weight":"400","evidence":"font-2: computed CSS at 1440×1000; AI role: 28px Lausanne used for section headings like 'Control AI spend from inference to invoice.' and large testimonial text.","sampleId":"font-2","confidence":0.95,"lineHeight":"32px","letterSpacing":"normal"} {"role":"body","size":"16px","family":"Lausanne","source":"computed","traits":"Regular","weight":"400","evidence":"font-1: computed CSS at 1440×1000; AI role: 16px Lausanne used widely for primary paragraph text and general body copy.","sampleId":"font-1","confidence":1,"lineHeight":"24px","letterSpacing":"normal"} {"role":"mono","size":"14px","family":"IBM Plex Mono","source":"computed","traits":"uppercase","weight":"400","evidence":"font-12: computed CSS at 1440×1000; AI role: 14px IBM Plex Mono used for technical labels, names, and uppercase small text elements.","sampleId":"font-12","confidence":0.9,"lineHeight":"16px","letterSpacing":"0.5px"}

Color evidence: {"hex":"#FFFFFF","name":"canvas","role":"canvas","source":"computed","evidence":"color-2: computed rgb(255, 255, 255); AI role: White (#FFFFFF) is the primary background color for the main body and majority of the page sections.","sampleId":"color-2","confidence":1} {"hex":"#000000","name":"text","role":"text","source":"computed","evidence":"color-3: computed rgb(0, 0, 0); AI role: Black (#000000) is the dominant color for headings and primary text.","sampleId":"color-3","confidence":0.95} {"hex":"#E7F256","name":"accent","role":"accent","source":"computed","evidence":"color-27: computed rgb(231, 242, 86); AI role: Neon yellow (#E7F256) used for prominent highlights, specifically the large shape in the lower CTA section.","sampleId":"color-27","confidence":0.95} {"hex":"#6D6A65","name":"muted text","role":"muted-text","source":"computed","evidence":"color-10: computed rgb(109, 106, 101); AI role: Gray (#6D6A65) used for secondary text, labels, and supporting copy.","sampleId":"color-10","confidence":0.9} {"hex":"#BBB8B3","name":"border","role":"border","source":"computed","evidence":"color-15: computed rgb(187, 184, 179); AI role: Light gray (#BBB8B3) used extensively for grid lines and section borders.","sampleId":"color-15","confidence":0.85} {"hex":"#131313","name":"surface","role":"surface","source":"computed","evidence":"color-30: computed rgb(19, 19, 19); AI role: Dark gray (#131313) used for product UI mockups and dark mode sections like the footer.","sampleId":"color-30","confidence":0.8}

No section-bounded typography samples were measured.

Colors measured inside this section: {"id":"color-11","hex":"#86837E","alpha":1,"cssValue":"rgb(134, 131, 126)","count":31,"contexts":[{"tag":"span","text":"Delphi","top":3714,"property":"text"},{"tag":"p","text":"Production value","top":4996,"property":"text"},{"tag":"a","text":"Privacy","top":7359,"property":"text"}]}

Exact section measurements from the saved element map: root {"rect":{"x":0,"y":7266,"width":1440,"height":157},"padding":{"top":"44px","right":"64px","bottom":"44px","left":"64px"},"gap":"16px","columns":null,"overflow":"visible"}; spacing {"gapsPx":[8,16],"representativeContentWidthsPx":[815]}; surfaces {"radii":[],"borders":[],"shadows":[]}; media [{"tag":"svg","rect":{"x":64,"y":7310,"width":106,"height":33},"aspectRatio":3.2,"objectFit":"fill","objectPosition":"50% 50%","radius":"0px"},{"tag":"svg","rect":{"x":1346,"y":7362,"width":30,"height":14},"aspectRatio":2.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.
