{
  "spec_version": 2,
  "extractor_version": "0.2.0",
  "url": "https://motion.dev/",
  "final_url": "https://motion.dev/",
  "slug": "motion.dev",
  "captured_at": "2026-11-12T15:23:38.012Z",
  "title": "Motion (prev Framer Motion): JavaScript & React animation library",
  "meta": {
    "description": "Motion (prev Framer Motion) is a fast, production-grade animation library for React, JavaScript and Vue. Build smooth UI animations at a tiny footprint.",
    "og_image": "https://motion.dev/brand-lab/home-og.png",
    "og_title": "Motion (prev Framer Motion): JavaScript & React animation library",
    "lang": "en"
  },
  "capture": {
    "variants": [
      {
        "name": "desktop-light",
        "width": 1440,
        "height": 900,
        "scheme": "light",
        "page_height": 13745,
        "full": "screens/desktop-light-full.png",
        "fold": "screens/desktop-light-fold.png"
      },
      {
        "name": "desktop-dark",
        "width": 1440,
        "height": 900,
        "scheme": "dark",
        "page_height": 13745,
        "full": "screens/desktop-dark-full.png",
        "fold": "screens/desktop-dark-fold.png"
      },
      {
        "name": "mobile-light",
        "width": 390,
        "height": 844,
        "scheme": "light",
        "page_height": 15287,
        "full": "screens/mobile-light-full.png",
        "fold": "screens/mobile-light-fold.png"
      },
      {
        "name": "mobile-dark",
        "width": 390,
        "height": 844,
        "scheme": "dark",
        "page_height": 15287,
        "full": "screens/mobile-dark-full.png",
        "fold": "screens/mobile-dark-fold.png"
      }
    ],
    "status": 200,
    "warnings": [
      "1 cross-origin stylesheets unreadable in-page (raw CSS taken from network instead)"
    ],
    "element_count": 1596,
    "render_quality": {
      "status": "ok",
      "reasons": [],
      "screenshot": "ok",
      "screenshot_reasons": []
    },
    "worker_os": "macos"
  },
  "color": {
    "scheme": "dark",
    "palette": [
      {
        "hex": "#080808",
        "oklch": [
          0.134,
          0,
          0
        ],
        "role": "bg",
        "area": 0.7084,
        "uses": {
          "bg": 0.975,
          "text": 0.024,
          "border": 0,
          "fill": 0.001
        },
        "css": "oklch(0.145 0.01 148)",
        "variants": [
          "#080B08"
        ]
      },
      {
        "hex": "#F8F8F6",
        "oklch": [
          0.979,
          0.003,
          106.4
        ],
        "role": "other",
        "area": 0.1075,
        "uses": {
          "bg": 0.999,
          "text": 0.001,
          "border": 0,
          "fill": 0
        }
      },
      {
        "hex": "#141214",
        "oklch": [
          0.185,
          0.005,
          325.8
        ],
        "role": "surface",
        "area": 0.0839,
        "uses": {
          "bg": 1,
          "text": 0,
          "border": 0,
          "fill": 0
        },
        "css": "color(srgb 0.0744136 0.0881862 0.0743742)",
        "variants": [
          "#131613"
        ]
      },
      {
        "hex": "#52CD86",
        "oklch": [
          0.76,
          0.15,
          155
        ],
        "role": "accent",
        "area": 0.0354,
        "uses": {
          "bg": 0.991,
          "text": 0.004,
          "border": 0.002,
          "fill": 0.003
        },
        "css": "oklch(0.76 0.15 155)",
        "css_var": "--accent-2"
      },
      {
        "hex": "#EDEBE5",
        "oklch": [
          0.94,
          0.008,
          96
        ],
        "role": "text",
        "area": 0.0336,
        "uses": {
          "bg": 0.13,
          "text": 0.838,
          "border": 0,
          "fill": 0.031
        },
        "css": "oklch(0.94 0.008 96)"
      },
      {
        "hex": "#979D97",
        "oklch": [
          0.69,
          0.012,
          148
        ],
        "role": "muted",
        "area": 0.0163,
        "uses": {
          "bg": 0,
          "text": 0.982,
          "border": 0,
          "fill": 0.018
        },
        "css": "oklch(0.69 0.012 148)"
      },
      {
        "hex": "#1A1A1C",
        "oklch": [
          0.219,
          0.004,
          286.1
        ],
        "role": "other",
        "area": 0.0072,
        "uses": {
          "bg": 0.074,
          "text": 0.837,
          "border": 0.022,
          "fill": 0.067
        }
      },
      {
        "hex": "#343034",
        "oklch": [
          0.315,
          0.009,
          325.8
        ],
        "role": "border",
        "area": 0.0015,
        "uses": {
          "bg": 0.023,
          "text": 0,
          "border": 0.977,
          "fill": 0
        }
      }
    ],
    "roles": {
      "bg": "#080808",
      "text": "#EDEBE5",
      "muted": "#979D97",
      "surface": "#141214",
      "accent": "#52CD86",
      "border": "#343034"
    },
    "accent_strategy": "single-accent",
    "contrast": {
      "text_on_bg": 16.81,
      "muted_on_bg": 7.26,
      "accent_on_bg": 9.91
    },
    "gradients": [
      "repeating-linear-gradient(119deg, oklch(0.134408 0.00000668897 none / 0.4) 0px, oklch(0.134408 0.00000668897 none / 0.4) 1.5px, rgb(8, 8, 8) 1.5px, rgb(8, 8, 8) 8px)"
    ],
    "dark_mode": {
      "responds_to_prefers_color_scheme": false
    },
    "declared_accents": [
      {
        "css_var": "--accent",
        "hex": "#FFDB2A",
        "painted": true
      },
      {
        "css_var": "--motion-plus-accent",
        "hex": "#52CD86",
        "painted": true
      }
    ],
    "accent_detail": {
      "method": "declared-token",
      "cta": "#EDEBE5",
      "candidates": [
        {
          "hex": "#52CD86",
          "css_var": "--accent-2",
          "controls": 0,
          "links": 0,
          "text": 2,
          "elements": 14,
          "fills": 7,
          "area": 0.03537,
          "score": 29.4,
          "strong": true
        },
        {
          "hex": "#FBD509",
          "css_var": "--tier-s",
          "controls": 0,
          "links": 0,
          "text": 0,
          "elements": 5,
          "fills": 5,
          "area": 0.00024,
          "score": 12.8,
          "strong": false
        },
        {
          "hex": "#FF4945",
          "css_var": "--tier-f",
          "controls": 0,
          "links": 0,
          "text": 1,
          "elements": 4,
          "fills": 0,
          "area": 0.00005,
          "score": 11.2,
          "strong": false
        },
        {
          "hex": "#F43F5E",
          "controls": 0,
          "links": 0,
          "text": 0,
          "elements": 0,
          "fills": 0,
          "area": 0.00014,
          "score": 6.6,
          "strong": false
        },
        {
          "hex": "#60A5FA",
          "controls": 0,
          "links": 0,
          "text": 0,
          "elements": 0,
          "fills": 0,
          "area": 0.00013,
          "score": 6.5,
          "strong": false
        },
        {
          "hex": "#3E98FF",
          "css_var": "--tier-b",
          "controls": 0,
          "links": 0,
          "text": 0,
          "elements": 0,
          "fills": 0,
          "area": 0.00007,
          "score": 5.9,
          "strong": false
        }
      ]
    },
    "highlights": []
  },
  "type": {
    "families": [
      {
        "family": "TASA Orbiter",
        "css_family": "TASA Orbiter",
        "role": "display",
        "roles": [
          "display",
          "body"
        ],
        "weights": [
          400,
          700
        ],
        "share": 0.84,
        "kind": "webfont",
        "classification": "sans",
        "foundry": null,
        "stack": "\"TASA Orbiter\", sans-serif",
        "files": [
          "https://fonts.gstatic.com/s/tasaorbiter/v2/3XFtErw3860rsdSUVZx78hP2QtzZ9v5Cbw.woff2"
        ],
        "internal_names": [
          "TASA Orbiter",
          "Geist Mono"
        ]
      },
      {
        "family": "Geist Mono",
        "css_family": "Geist Mono",
        "role": "mono",
        "roles": [
          "mono"
        ],
        "weights": [
          400
        ],
        "share": 0.155,
        "kind": "webfont",
        "classification": "mono",
        "foundry": null,
        "stack": "\"Geist Mono\", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace",
        "files": [
          "https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmhHkjkotbA.woff2",
          "https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmhHkjkotbA.woff2",
          "https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7MhEIVVeA.woff2",
          "https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmhHkjkotbA.woff2"
        ],
        "internal_names": [
          "Geist Mono"
        ]
      }
    ],
    "declared_unused": [],
    "scale_px": [
      10,
      11,
      12,
      13,
      14,
      15,
      16,
      20,
      30,
      34,
      34.5,
      40,
      48
    ],
    "ratio": 1.181,
    "body_size": 15,
    "root_size": 16,
    "line_height": 1.55,
    "display_size": 48,
    "tracking_display": "-0.035em",
    "case": "sentence",
    "styles": [
      {
        "name": "display",
        "family": "TASA Orbiter",
        "size_px": 48,
        "weight": 400,
        "line_height": 1.02,
        "letter_spacing_em": -0.035,
        "sample": "Subscribe to the newsletter"
      },
      {
        "name": "headline",
        "family": "TASA Orbiter",
        "size_px": 40,
        "weight": 700,
        "line_height": 1.1,
        "letter_spacing_em": -0.035,
        "sample": "Small APIs. Expressive interfaces."
      },
      {
        "name": "title",
        "family": "TASA Orbiter",
        "size_px": 20,
        "weight": 700,
        "line_height": 1.2,
        "letter_spacing_em": -0.02,
        "sample": "Premium Motion UI components"
      },
      {
        "name": "body",
        "family": "TASA Orbiter",
        "size_px": 15,
        "weight": 400,
        "line_height": 1.55,
        "letter_spacing_em": -0.01,
        "sample": "Animate changes to size, position and or"
      },
      {
        "name": "body-sm",
        "family": "Geist Mono",
        "size_px": 11,
        "weight": 400,
        "line_height": 1.25,
        "letter_spacing_em": 0.12,
        "transform": "uppercase",
        "sample": "Get started"
      }
    ],
    "mobile": {
      "body_size": 15,
      "display_size": 40
    }
  },
  "space": {
    "scale_px": [
      3,
      4,
      5,
      6,
      8,
      9,
      10,
      12,
      14,
      16,
      18,
      20,
      24,
      32
    ],
    "base": null,
    "base_fit": 0,
    "density": 0.063,
    "section_padding_px": 144
  },
  "shape": {
    "radii_px": [
      3,
      4,
      6,
      9999
    ],
    "dominant_radius": 0,
    "border_usage": "hairline",
    "border_width_px": 1
  },
  "depth": {
    "shadows": [
      "rgba(0, 0, 0, 0.2) 0px 1px 0px 0px, rgba(0, 0, 0, 0.6) 0px 18px 40px -16px"
    ],
    "style": "elevated"
  },
  "layout": {
    "container_px": 1200,
    "columns": 2,
    "hero": "unknown",
    "nav": "top-fixed+blur+transparent",
    "page_height_px": 13745,
    "section_count": 13
  },
  "motion": {
    "transitions": 183,
    "easing": "ease",
    "durations_ms": [
      150,
      160,
      200,
      400
    ],
    "animations": []
  },
  "components": {
    "button-primary": {
      "backgroundColor": "#EDEBE5",
      "textColor": "#080808",
      "rounded": "0px",
      "padding": "12px 18px",
      "height": "48px",
      "fontFamily": "Geist Mono",
      "fontSize": "11px",
      "fontWeight": 400,
      "border": "1px solid #FBD509",
      "sample": ""
    },
    "button-secondary": {
      "textColor": "#979D97",
      "rounded": "0px",
      "padding": "12px 18px",
      "height": "48px",
      "fontFamily": "Geist Mono",
      "fontSize": "11px",
      "fontWeight": 400,
      "border": "1px solid #EDEBE529",
      "sample": ""
    },
    "card": {
      "rounded": "6px",
      "padding": "0px",
      "count": 2,
      "backgroundColor": "#080B08",
      "border": "1px solid #EDEBE51A"
    },
    "input": {
      "rounded": "0px",
      "height": "56px",
      "padding": "0px 0px"
    }
  },
  "imagery": {
    "media_share": 0.201,
    "dominant_colors": [
      {
        "hex": "#141214",
        "share": 0.464
      },
      {
        "hex": "#030404",
        "share": 0.25
      },
      {
        "hex": "#FFFFFF",
        "share": 0.086
      },
      {
        "hex": "#2B2011",
        "share": 0.048
      }
    ],
    "has_photography": null,
    "has_illustration": null
  },
  "stack": [
    "shadcn/ui",
    "cloudflare"
  ],
  "sections": [
    {
      "index": 0,
      "kind": "hero",
      "kind_source": "dom",
      "confidence": 0.7,
      "bbox": {
        "x": 120,
        "y": 0,
        "w": 1200,
        "h": 900
      },
      "bg": "#080808",
      "crop": "img/section-00-hero.webp"
    },
    {
      "index": 1,
      "kind": "nav",
      "kind_source": "dom",
      "confidence": 0.9,
      "bbox": {
        "x": 90,
        "y": 12,
        "w": 1260,
        "h": 72
      },
      "bg": "#080808",
      "crop": "img/section-01-nav.webp"
    },
    {
      "index": 2,
      "kind": "logos",
      "kind_source": "dom",
      "confidence": 0.8,
      "bbox": {
        "x": 168,
        "y": 84,
        "w": 1104,
        "h": 982
      },
      "bg": "#080808",
      "crop": "img/section-02-logos.webp"
    },
    {
      "index": 3,
      "kind": "logos",
      "kind_source": "dom",
      "confidence": 0.6,
      "bbox": {
        "x": 0,
        "y": 1066,
        "w": 1440,
        "h": 3430
      },
      "heading": "Small APIs. Expressive interfaces.",
      "bg": "#080808",
      "crop": null
    },
    {
      "index": 4,
      "kind": "logos",
      "kind_source": "dom",
      "confidence": 0.8,
      "bbox": {
        "x": 0,
        "y": 4497,
        "w": 1440,
        "h": 1611
      },
      "heading": "Small by default",
      "bg": "#141214",
      "crop": "img/section-04-logos.webp"
    },
    {
      "index": 5,
      "kind": "logos",
      "kind_source": "dom",
      "confidence": 0.6,
      "bbox": {
        "x": 120,
        "y": 6107,
        "w": 1200,
        "h": 369
      },
      "heading": "Motion+ unlocks the full animation workflow.",
      "bg": "#080808",
      "crop": "img/section-05-logos.webp"
    },
    {
      "index": 6,
      "kind": "logos",
      "kind_source": "dom",
      "confidence": 0.8,
      "bbox": {
        "x": 0,
        "y": 6477,
        "w": 1440,
        "h": 2872
      },
      "heading": "Premium Motion UI components",
      "bg": "#080808",
      "crop": null
    },
    {
      "index": 7,
      "kind": "logos",
      "kind_source": "dom",
      "confidence": 0.6,
      "bbox": {
        "x": 120,
        "y": 9349,
        "w": 1200,
        "h": 479
      },
      "heading": "Partnered with the best.",
      "bg": "#080808",
      "crop": "img/section-07-logos.webp"
    },
    {
      "index": 8,
      "kind": "features",
      "kind_source": "dom",
      "confidence": 0.5,
      "bbox": {
        "x": 120,
        "y": 9827,
        "w": 1200,
        "h": 631
      },
      "heading": "Made with Motion.",
      "bg": "#080808",
      "crop": "img/section-08-features.webp"
    },
    {
      "index": 9,
      "kind": "features",
      "kind_source": "dom",
      "confidence": 0.5,
      "bbox": {
        "x": 120,
        "y": 10458,
        "w": 1200,
        "h": 1029
      },
      "heading": "Latest from Motion.",
      "bg": "#080808",
      "crop": "img/section-09-features.webp"
    },
    {
      "index": 10,
      "kind": "logos",
      "kind_source": "dom",
      "confidence": 0.8,
      "bbox": {
        "x": 120,
        "y": 11487,
        "w": 1200,
        "h": 524
      },
      "heading": "Choose where to start.",
      "bg": "#080808",
      "crop": "img/section-10-logos.webp"
    },
    {
      "index": 11,
      "kind": "features",
      "kind_source": "dom",
      "confidence": 0.5,
      "bbox": {
        "x": 120,
        "y": 12010,
        "w": 1200,
        "h": 637
      },
      "heading": "Our most popular guides and examples.",
      "bg": "#080808",
      "crop": "img/section-11-features.webp"
    },
    {
      "index": 12,
      "kind": "footer",
      "kind_source": "dom",
      "confidence": 0.75,
      "bbox": {
        "x": 120,
        "y": 12647,
        "w": 1200,
        "h": 1058
      },
      "bg": "#F8F8F6",
      "crop": "img/section-12-footer.webp"
    }
  ],
  "images": {
    "manifest": "img/manifest.json",
    "count": 15
  },
  "review": {
    "threshold": 0.7,
    "needs_review": [
      "color.accent_strategy",
      "layout.columns",
      "layout.hero",
      "layout.section_count",
      "sections[].kind",
      "space.base",
      "space.section_padding_px"
    ],
    "vision": "not-run"
  },
  "provenance": {
    "color.roles.bg": {
      "source": "dom",
      "confidence": 0.95
    },
    "color.roles.text": {
      "source": "dom",
      "confidence": 0.92
    },
    "color.roles.muted": {
      "source": "dom",
      "confidence": 0.82
    },
    "color.roles.surface": {
      "source": "dom",
      "confidence": 0.78
    },
    "color.roles.border": {
      "source": "dom",
      "confidence": 0.75
    },
    "color.roles.accent": {
      "source": "dom",
      "confidence": 0.85,
      "note": "declared accent/brand token, painted on controls or links"
    },
    "color.accent_strategy": {
      "source": "dom",
      "confidence": 0.6,
      "note": "hue count over chromatic colors; product mockups rendered in the DOM inflate it",
      "needs_review": true
    },
    "color.palette": {
      "source": "dom",
      "confidence": 0.9
    },
    "color.declared_accents": {
      "source": "dom",
      "confidence": 0.95
    },
    "color.dark_mode": {
      "source": "dom",
      "confidence": 0.9
    },
    "color.contrast": {
      "source": "dom",
      "confidence": 0.9
    },
    "color.gradients": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.families": {
      "source": "dom",
      "confidence": 0.95,
      "note": "named from the @font-face rule that rendered (CDP platform fonts)"
    },
    "type.families[].roles": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.declared_unused": {
      "source": "dom",
      "confidence": 0.95
    },
    "type.scale_px": {
      "source": "dom",
      "confidence": 0.9
    },
    "type.body_size": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.display_size": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.styles": {
      "source": "dom",
      "confidence": 0.8
    },
    "type.ratio": {
      "source": "dom",
      "confidence": 0.7,
      "note": "geometric fit over the scale above body size"
    },
    "type.case": {
      "source": "dom",
      "confidence": 0.75
    },
    "type.line_height": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.tracking_display": {
      "source": "dom",
      "confidence": 0.85
    },
    "space.base": {
      "source": "dom",
      "confidence": 0.5,
      "note": "no base unit explains 70% of spacing values",
      "needs_review": true
    },
    "space.scale_px": {
      "source": "dom",
      "confidence": 0.85
    },
    "space.section_padding_px": {
      "source": "dom",
      "confidence": 0.65,
      "needs_review": true
    },
    "space.density": {
      "source": "dom",
      "confidence": 0.85
    },
    "shape.radii_px": {
      "source": "dom",
      "confidence": 0.88
    },
    "shape.dominant_radius": {
      "source": "dom",
      "confidence": 0.8
    },
    "shape.border_usage": {
      "source": "dom",
      "confidence": 0.8
    },
    "depth.shadows": {
      "source": "dom",
      "confidence": 0.9
    },
    "depth.style": {
      "source": "dom",
      "confidence": 0.75
    },
    "layout.container_px": {
      "source": "dom",
      "confidence": 0.8
    },
    "layout.columns": {
      "source": "dom",
      "confidence": 0.6,
      "note": "most common grid track count; layout grids and card grids are not separated",
      "needs_review": true
    },
    "layout.nav": {
      "source": "dom",
      "confidence": 0.78
    },
    "layout.hero": {
      "source": "dom",
      "confidence": 0.6,
      "note": "geometric heuristic over the h1 and nearby media",
      "needs_review": true
    },
    "layout.section_count": {
      "source": "dom",
      "confidence": 0.6,
      "needs_review": true
    },
    "motion": {
      "source": "dom",
      "confidence": 0.8
    },
    "components": {
      "source": "dom",
      "confidence": 0.78
    },
    "stack": {
      "source": "dom",
      "confidence": 0.85,
      "note": "globals, script URLs and response headers"
    },
    "meta": {
      "source": "dom",
      "confidence": 0.99
    },
    "sections[].bbox": {
      "source": "dom",
      "confidence": 0.8
    },
    "sections[].kind": {
      "source": "dom",
      "confidence": 0.68,
      "note": "class-name and content-count heuristics; per-section confidence in sections[].confidence",
      "needs_review": true
    },
    "imagery.media_share": {
      "source": "dom",
      "confidence": 0.8
    },
    "imagery.dominant_colors": {
      "source": "pixels",
      "confidence": 0.7,
      "note": "clustered screenshot pixels inside media boxes (approximate, OKLab ΔE 0.06 clusters)"
    }
  }
}