{
  "spec_version": 2,
  "extractor_version": "0.2.0",
  "url": "https://v0.app/",
  "final_url": "https://v0.app/",
  "slug": "v0.app",
  "captured_at": "2026-11-12T15:25:47.179Z",
  "title": "v0 by Vercel - Build Full-Stack Web Apps with AI",
  "meta": {
    "description": "Your collaborative AI assistant to design, iterate, and scale full-stack applications for the web.",
    "og_image": "https://v0.app/chat/api/og",
    "og_title": "v0 by Vercel - Build Full-Stack Web Apps with AI",
    "theme_color": "#FAFAFA",
    "lang": "en"
  },
  "capture": {
    "variants": [
      {
        "name": "desktop-light",
        "width": 1440,
        "height": 900,
        "scheme": "light",
        "page_height": 900,
        "full": "screens/desktop-light-full.png",
        "fold": "screens/desktop-light-fold.png"
      },
      {
        "name": "desktop-dark",
        "width": 1440,
        "height": 900,
        "scheme": "dark",
        "page_height": 900,
        "full": "screens/desktop-dark-full.png",
        "fold": "screens/desktop-dark-fold.png"
      },
      {
        "name": "mobile-light",
        "width": 390,
        "height": 844,
        "scheme": "light",
        "page_height": 844,
        "full": "screens/mobile-light-full.png",
        "fold": "screens/mobile-light-fold.png"
      },
      {
        "name": "mobile-dark",
        "width": 390,
        "height": 844,
        "scheme": "dark",
        "page_height": 844,
        "full": "screens/mobile-dark-full.png",
        "fold": "screens/mobile-dark-fold.png"
      }
    ],
    "status": 200,
    "cookie_banner": "hid div#fides-overlay, div#fides-modal, div, div#fides-banner-container",
    "warnings": [],
    "element_count": 807,
    "render_quality": {
      "status": "partial",
      "reasons": [
        "34% of image area in the first 3 viewports never decoded"
      ],
      "screenshot": "ok",
      "screenshot_reasons": []
    },
    "worker_os": "macos"
  },
  "color": {
    "scheme": "light",
    "palette": [
      {
        "hex": "#FAFAFA",
        "oklch": [
          0.985,
          0,
          0
        ],
        "role": "bg",
        "area": 0.7321,
        "uses": {
          "bg": 0.998,
          "text": 0.002,
          "border": 0,
          "fill": 0
        },
        "css": "oklch(1 0 0)",
        "css_var": "--v0-background-200",
        "variants": [
          "#FFFFFF"
        ]
      },
      {
        "hex": "#171717",
        "oklch": [
          0.205,
          0,
          0
        ],
        "role": "text",
        "area": 0.1275,
        "uses": {
          "bg": 0.014,
          "text": 0.968,
          "border": 0.003,
          "fill": 0.015
        },
        "css_var": "--color-foreground"
      },
      {
        "hex": "#4D4D4D",
        "oklch": [
          0.42,
          0,
          0
        ],
        "role": "muted",
        "area": 0.0932,
        "uses": {
          "bg": 0,
          "text": 0.985,
          "border": 0,
          "fill": 0.015
        },
        "css_var": "--color-muted-foreground"
      },
      {
        "hex": "#EBEBEB",
        "oklch": [
          0.94,
          0,
          0
        ],
        "role": "border",
        "area": 0.0241,
        "uses": {
          "bg": 0,
          "text": 0,
          "border": 1,
          "fill": 0
        },
        "css_var": "--ds-gray-200",
        "variants": [
          "#E6E6E6"
        ]
      },
      {
        "hex": "#000000",
        "oklch": [
          0,
          0,
          0
        ],
        "role": "other",
        "area": 0.0084,
        "uses": {
          "bg": 0,
          "text": 0,
          "border": 0,
          "fill": 1
        },
        "css_var": "--v0-black"
      },
      {
        "hex": "#7D7D7D",
        "oklch": [
          0.59,
          0,
          0
        ],
        "role": "other",
        "area": 0.0074,
        "uses": {
          "bg": 0,
          "text": 0,
          "border": 0,
          "fill": 1
        },
        "css_var": "--ds-gray-800"
      },
      {
        "hex": "#A8A8A8",
        "oklch": [
          0.732,
          0,
          0
        ],
        "role": "other",
        "area": 0.0027,
        "uses": {
          "bg": 0,
          "text": 0,
          "border": 0,
          "fill": 1
        },
        "css_var": "--v0-gray-600"
      },
      {
        "hex": "#00000014",
        "oklch": [
          0,
          0,
          0
        ],
        "role": "other",
        "area": 0.0025,
        "uses": {
          "bg": 0,
          "text": 0,
          "border": 1,
          "fill": 0
        },
        "css_var": "--v0-alpha-400",
        "on_bg": "#E6E6E6"
      },
      {
        "hex": "#F2F2F2",
        "oklch": [
          0.961,
          0,
          0
        ],
        "role": "other",
        "area": 0.0006,
        "uses": {
          "bg": 1,
          "text": 0,
          "border": 0,
          "fill": 0
        },
        "css_var": "--ds-gray-100"
      }
    ],
    "roles": {
      "bg": "#FAFAFA",
      "text": "#171717",
      "muted": "#4D4D4D",
      "accent": "#171717",
      "border": "#EBEBEB"
    },
    "accent_strategy": "monochrome",
    "contrast": {
      "text_on_bg": 17.18,
      "muted_on_bg": 8.1,
      "accent_on_bg": 17.18
    },
    "gradients": [
      "linear-gradient(to right, oklab(1 0 0 / 0.8) 0%, rgba(0, 0, 0, 0) 50%, oklab(1 0 0 / 0.8) 100%)",
      "linear-gradient(oklab(1 0 0 / 0.8) 0%, rgba(0, 0, 0, 0) 50%, oklab(1 0 0 / 0.8) 100%)",
      "linear-gradient(to right in oklab, rgb(250, 250, 250) 0%, rgba(0, 0, 0, 0) 100%)",
      "linear-gradient(to left in oklab, rgb(250, 250, 250) 0%, rgba(0, 0, 0, 0) 100%)"
    ],
    "theme_color": "#FAFAFA",
    "dark_mode": {
      "responds_to_prefers_color_scheme": true,
      "palette": [
        {
          "hex": "#000000",
          "oklch": [
            0,
            0,
            0
          ],
          "role": "bg",
          "area": 0.6536,
          "uses": {
            "bg": 0.987,
            "text": 0,
            "border": 0,
            "fill": 0.013
          },
          "css_var": "--geist-background"
        },
        {
          "hex": "#EDEDED",
          "oklch": [
            0.946,
            0,
            0
          ],
          "role": "text",
          "area": 0.1275,
          "uses": {
            "bg": 0.014,
            "text": 0.968,
            "border": 0.003,
            "fill": 0.015
          },
          "css_var": "--color-foreground"
        },
        {
          "hex": "#A1A1A1",
          "oklch": [
            0.709,
            0,
            0
          ],
          "role": "muted",
          "area": 0.0932,
          "uses": {
            "bg": 0,
            "text": 0.985,
            "border": 0,
            "fill": 0.015
          },
          "css_var": "--color-muted-foreground"
        },
        {
          "hex": "#121212",
          "oklch": [
            0.182,
            0,
            180
          ],
          "role": "other",
          "area": 0.078,
          "uses": {
            "bg": 1,
            "text": 0,
            "border": 0,
            "fill": 0
          },
          "css": "oklch(0.182 0 0)",
          "css_var": "--v0-background-300"
        },
        {
          "hex": "#1F1F1F",
          "oklch": [
            0.239,
            0,
            0
          ],
          "role": "border",
          "area": 0.0224,
          "uses": {
            "bg": 0,
            "text": 0,
            "border": 1,
            "fill": 0
          },
          "css_var": "--ds-gray-200"
        },
        {
          "hex": "#0A0A0A",
          "oklch": [
            0.145,
            0,
            0
          ],
          "role": "surface",
          "area": 0.009,
          "uses": {
            "bg": 0.811,
            "text": 0.189,
            "border": 0,
            "fill": 0
          },
          "css_var": "--color-background"
        },
        {
          "hex": "#7D7D7D",
          "oklch": [
            0.59,
            0,
            0
          ],
          "role": "other",
          "area": 0.0074,
          "uses": {
            "bg": 0,
            "text": 0,
            "border": 0,
            "fill": 1
          },
          "css_var": "--ds-gray-800"
        },
        {
          "hex": "#878787",
          "oklch": [
            0.623,
            0,
            0
          ],
          "role": "other",
          "area": 0.0027,
          "uses": {
            "bg": 0,
            "text": 0,
            "border": 0,
            "fill": 1
          },
          "css_var": "--v0-gray-600"
        },
        {
          "hex": "#FFFFFF24",
          "oklch": [
            1,
            0,
            0
          ],
          "role": "other",
          "area": 0.0025,
          "uses": {
            "bg": 0,
            "text": 0,
            "border": 1,
            "fill": 0
          },
          "css_var": "--v0-alpha-400",
          "on_bg": "#242424"
        },
        {
          "hex": "#1A1A1A",
          "oklch": [
            0.218,
            0,
            0
          ],
          "role": "other",
          "area": 0.0006,
          "uses": {
            "bg": 1,
            "text": 0,
            "border": 0,
            "fill": 0
          },
          "css_var": "--ds-gray-100"
        }
      ],
      "roles": {
        "bg": "#000000",
        "text": "#EDEDED",
        "muted": "#A1A1A1",
        "surface": "#0A0A0A",
        "accent": "#EDEDED",
        "border": "#1F1F1F"
      }
    },
    "declared_accents": [],
    "accent_detail": {
      "method": "cta-monochrome",
      "cta": "#171717",
      "candidates": []
    },
    "highlights": []
  },
  "type": {
    "families": [
      {
        "family": "system-ui",
        "css_family": "system-ui",
        "role": "body",
        "roles": [
          "body"
        ],
        "weights": [
          400,
          500
        ],
        "share": 0.53,
        "kind": "system",
        "classification": "sans",
        "stack": "Inter, -apple-system, \"system-ui\", \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", sans-serif",
        "resolved_on": "macos",
        "internal_names": [
          ".SF NS"
        ]
      },
      {
        "family": "Geist",
        "css_family": "GeistSans",
        "role": "display",
        "roles": [
          "display"
        ],
        "weights": [
          400,
          500,
          600
        ],
        "share": 0.463,
        "kind": "webfont",
        "classification": "sans",
        "foundry": null,
        "stack": "GeistSans, \"GeistSans Fallback\", ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"",
        "files": [
          "https://v0.app/chat-static/_next/static/immutable/media/Geist_Variable-s.p.2v-cf9syxr5ni.woff2"
        ],
        "internal_names": [
          "Geist"
        ]
      },
      {
        "family": "Geist Mono",
        "css_family": "GeistMono",
        "role": "mono",
        "roles": [
          "mono"
        ],
        "weights": [
          400
        ],
        "share": 0.008,
        "kind": "webfont",
        "classification": "mono",
        "foundry": null,
        "stack": "GeistMono, ui-monospace, SFMono-Regular, \"Roboto Mono\", Menlo, Monaco, \"Liberation Mono\", \"DejaVu Sans Mono\", \"Courier New\", monospace, ui-monospace, SFMono-Regular, \"Roboto Mono\", Menlo, Monaco, \"Liberation Mono\", \"DejaVu Sans Mono\", \"Courier New\", monospace",
        "files": [
          "https://v0.app/chat-static/_next/static/immutable/media/GeistMono_Variable.p.435b5v2hgxtdi.woff2"
        ]
      }
    ],
    "declared_unused": [
      {
        "family": "Roboto Mono",
        "css_family": "Roboto Mono",
        "face_status": "unloaded",
        "css_mentions": 12
      },
      {
        "family": "KaTeX Main",
        "css_family": "KaTeX_Main",
        "face_status": "unloaded",
        "css_mentions": 8
      },
      {
        "family": "Lora",
        "css_family": "Lora",
        "face_status": "unloaded",
        "css_mentions": 8
      },
      {
        "family": "KaTeX SansSerif",
        "css_family": "KaTeX_SansSerif",
        "face_status": "unloaded",
        "css_mentions": 7
      },
      {
        "family": "KaTeX Fraktur",
        "css_family": "KaTeX_Fraktur",
        "face_status": "unloaded",
        "css_mentions": 4
      },
      {
        "family": "KaTeX Math",
        "css_family": "KaTeX_Math",
        "face_status": "unloaded",
        "css_mentions": 4
      },
      {
        "family": "KaTeX Size1",
        "css_family": "KaTeX_Size1",
        "face_status": "unloaded",
        "css_mentions": 4
      },
      {
        "family": "KaTeX Caligraphic",
        "css_family": "KaTeX_Caligraphic",
        "face_status": "unloaded",
        "css_mentions": 3
      },
      {
        "family": "KaTeX Size2",
        "css_family": "KaTeX_Size2",
        "face_status": "unloaded",
        "css_mentions": 3
      },
      {
        "family": "KaTeX Size4",
        "css_family": "KaTeX_Size4",
        "face_status": "unloaded",
        "css_mentions": 3
      },
      {
        "family": "KaTeX Typewriter",
        "css_family": "KaTeX_Typewriter",
        "face_status": "unloaded",
        "css_mentions": 3
      },
      {
        "family": "KaTeX AMS",
        "css_family": "KaTeX_AMS",
        "face_status": "unloaded",
        "css_mentions": 2
      }
    ],
    "scale_px": [
      10,
      13,
      14,
      16,
      18,
      20,
      24,
      32,
      48
    ],
    "ratio": 1.228,
    "body_size": 14,
    "root_size": 16,
    "line_height": 1,
    "display_size": 32,
    "tracking_display": "-0.04em",
    "case": "sentence",
    "styles": [
      {
        "name": "display",
        "family": "Geist",
        "size_px": 32,
        "weight": 600,
        "line_height": 1.25,
        "letter_spacing_em": -0.04,
        "sample": "What do you want to create?"
      },
      {
        "name": "headline",
        "family": "Geist",
        "size_px": 14,
        "weight": 500,
        "line_height": 1.429,
        "letter_spacing_em": 0,
        "sample": "Product"
      },
      {
        "name": "title",
        "family": "Geist",
        "size_px": 20,
        "weight": 600,
        "line_height": 1.3,
        "letter_spacing_em": -0.02,
        "sample": "Sync with a repo"
      },
      {
        "name": "body",
        "family": "system-ui",
        "size_px": 14,
        "weight": 500,
        "line_height": 1,
        "letter_spacing_em": 0,
        "sample": "Image Generation Playground"
      },
      {
        "name": "mono",
        "family": "Geist Mono",
        "size_px": 10,
        "weight": 400,
        "line_height": 1.5,
        "letter_spacing_em": 0,
        "sample": "Web"
      }
    ],
    "mobile": {
      "body_size": 14,
      "display_size": 24
    }
  },
  "space": {
    "scale_px": [
      2,
      4,
      6,
      8,
      12,
      16,
      24,
      32,
      48,
      64
    ],
    "base": null,
    "base_fit": 0,
    "density": 0.238,
    "section_padding_px": null
  },
  "shape": {
    "radii_px": [
      4,
      8,
      12,
      16,
      9999
    ],
    "dominant_radius": 9999,
    "border_usage": "hairline",
    "border_width_px": 1
  },
  "depth": {
    "shadows": [
      "rgba(0, 0, 0, 0.04) 0px 2px 1px 0px",
      "rgba(0, 0, 0, 0.25) 0px 25px 50px -12px"
    ],
    "style": "subtle"
  },
  "layout": {
    "container_px": 1264,
    "columns": 3,
    "hero": "centered",
    "nav": "top-sticky",
    "page_height_px": 900,
    "section_count": 2
  },
  "motion": {
    "transitions": 55,
    "easing": "cubic-bezier(0.4, 0, 0.2, 1)",
    "durations_ms": [
      150,
      200,
      300,
      600
    ],
    "animations": [
      "ricZ8G_marquee"
    ]
  },
  "components": {
    "button-primary": {
      "backgroundColor": "#171717",
      "textColor": "#FFFFFF",
      "rounded": "6px",
      "padding": "0px 12px",
      "height": "32px",
      "fontFamily": "system-ui",
      "fontSize": "14px",
      "fontWeight": 500,
      "border": "1px solid #171717",
      "sample": "Sign Up"
    },
    "button-secondary": {
      "textColor": "#171717",
      "rounded": "9999px",
      "padding": "0px 8px",
      "height": "32px",
      "fontFamily": "system-ui",
      "fontSize": "14px",
      "fontWeight": 400,
      "border": "1px solid #00000014",
      "sample": "Use your in v0"
    },
    "card": {
      "rounded": "8px",
      "padding": "0px",
      "count": 9,
      "backgroundColor": "#FAFAFA",
      "shadow": "rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0px 0px 0px 0px, rgba(0, 0, 0, 0) 0"
    }
  },
  "imagery": {
    "media_share": 1,
    "dominant_colors": [
      {
        "hex": "#0F0F0F",
        "share": 0.33
      },
      {
        "hex": "#F5F4F3",
        "share": 0.304
      },
      {
        "hex": "#000000",
        "share": 0.23
      },
      {
        "hex": "#010101",
        "share": 0.047
      }
    ],
    "has_photography": null,
    "has_illustration": null
  },
  "stack": [
    "next.js",
    "tailwind",
    "radix-ui",
    "shadcn/ui",
    "vercel"
  ],
  "sections": [
    {
      "index": 0,
      "kind": "nav",
      "kind_source": "dom",
      "confidence": 0.9,
      "bbox": {
        "x": 0,
        "y": 0,
        "w": 1440,
        "h": 64
      },
      "bg": "#FAFAFA",
      "crop": "img/section-00-nav.webp"
    },
    {
      "index": 1,
      "kind": "footer",
      "kind_source": "dom",
      "confidence": 0.75,
      "bbox": {
        "x": 0,
        "y": 0,
        "w": 1440,
        "h": 900
      },
      "heading": "Social",
      "bg": "#FAFAFA",
      "crop": "img/section-01-footer.webp"
    }
  ],
  "images": {
    "manifest": "img/manifest.json",
    "count": 10
  },
  "review": {
    "threshold": 0.7,
    "needs_review": [
      "color.accent_strategy",
      "color.contrast",
      "color.palette",
      "color.roles.accent",
      "color.roles.bg",
      "color.roles.border",
      "color.roles.muted",
      "color.roles.text",
      "layout.columns",
      "layout.hero",
      "layout.section_count",
      "sections[].bbox",
      "sections[].kind",
      "space.base",
      "space.section_padding_px",
      "type.body_size",
      "type.display_size",
      "type.families[].roles",
      "type.line_height",
      "type.scale_px",
      "type.styles",
      "type.tracking_display"
    ],
    "vision": "not-run"
  },
  "provenance": {
    "color.roles.bg": {
      "source": "dom",
      "confidence": 0.57,
      "note": "partial render: 34% of image area in the first 3 viewports never decoded",
      "needs_review": true
    },
    "color.roles.text": {
      "source": "dom",
      "confidence": 0.55,
      "note": "partial render: 34% of image area in the first 3 viewports never decoded",
      "needs_review": true
    },
    "color.roles.muted": {
      "source": "dom",
      "confidence": 0.49,
      "note": "partial render: 34% of image area in the first 3 viewports never decoded",
      "needs_review": true
    },
    "color.roles.border": {
      "source": "dom",
      "confidence": 0.45,
      "note": "partial render: 34% of image area in the first 3 viewports never decoded",
      "needs_review": true
    },
    "color.roles.accent": {
      "source": "dom",
      "confidence": 0.48,
      "note": "partial render: 34% of image area in the first 3 viewports never decoded; monochrome page; fill of the primary button",
      "needs_review": true
    },
    "color.accent_strategy": {
      "source": "dom",
      "confidence": 0.51,
      "note": "no chromatic color used on controls, links or repeated text",
      "needs_review": true
    },
    "color.palette": {
      "source": "dom",
      "confidence": 0.54,
      "note": "partial render: 34% of image area in the first 3 viewports never decoded",
      "needs_review": true
    },
    "color.declared_accents": {
      "source": "dom",
      "confidence": 0.95
    },
    "color.dark_mode": {
      "source": "dom",
      "confidence": 0.9
    },
    "color.contrast": {
      "source": "dom",
      "confidence": 0.54,
      "needs_review": true
    },
    "color.gradients": {
      "source": "dom",
      "confidence": 0.85
    },
    "type.families": {
      "source": "dom",
      "confidence": 0.72,
      "note": "system-ui resolved from a system stack on a macos worker; other visitors see their own system font"
    },
    "type.families[].roles": {
      "source": "dom",
      "confidence": 0.51,
      "needs_review": true
    },
    "type.declared_unused": {
      "source": "dom",
      "confidence": 0.95
    },
    "type.scale_px": {
      "source": "dom",
      "confidence": 0.54,
      "needs_review": true
    },
    "type.body_size": {
      "source": "dom",
      "confidence": 0.51,
      "needs_review": true
    },
    "type.display_size": {
      "source": "dom",
      "confidence": 0.51,
      "needs_review": true
    },
    "type.styles": {
      "source": "dom",
      "confidence": 0.48,
      "needs_review": true
    },
    "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.51,
      "needs_review": true
    },
    "type.tracking_display": {
      "source": "dom",
      "confidence": 0.51,
      "needs_review": true
    },
    "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.48,
      "needs_review": true
    },
    "sections[].kind": {
      "source": "dom",
      "confidence": 0.49,
      "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)"
    }
  }
}