{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "photo",
  "title": "Photo",
  "description": "A full-bleed photo Open Graph image with a dark gradient scrim and a bottom-aligned title block.",
  "registryDependencies": [
    "https://ogimagecn.com/r/badge.json",
    "https://ogimagecn.com/r/brand-mark.json"
  ],
  "files": [
    {
      "path": "registry/blocks/photo/index.tsx",
      "content": "import { Badge } from \"@/components/og/badge\";\nimport { BrandMark } from \"@/components/og/brand-mark\";\n\nexport interface PhotoProps {\n  image?: string;\n  label: string;\n  title: string;\n  brand: string;\n  logo?: string;\n}\n\nexport const Photo = ({\n  image,\n  label,\n  title,\n  brand,\n  logo = \"\",\n}: PhotoProps) => {\n  const fallback =\n    \"linear-gradient(135deg, #0f172a 0%, #1e3a8a 45%, #7c3aed 100%)\";\n\n  return (\n    <div\n      style={{\n        backgroundColor: \"#0a0a0a\",\n        backgroundImage: image ? `url(${image})` : fallback,\n        backgroundPosition: \"center\",\n        backgroundSize: \"1200px 630px\",\n        color: \"#ffffff\",\n        display: \"flex\",\n        flexDirection: \"column\",\n        height: \"100%\",\n        justifyContent: \"flex-end\",\n        padding: \"80px\",\n        position: \"relative\",\n        width: \"100%\",\n      }}\n    >\n      <div\n        style={{\n          backgroundImage:\n            \"linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.35) 55%, rgba(0,0,0,0.85) 100%)\",\n          bottom: 0,\n          left: 0,\n          position: \"absolute\",\n          right: 0,\n          top: 0,\n        }}\n      />\n\n      <Badge\n        background=\"rgba(255,255,255,0.12)\"\n        borderColor=\"rgba(255,255,255,0.4)\"\n        style={{ alignSelf: \"flex-start\" }}\n        uppercase\n      >\n        {label}\n      </Badge>\n\n      <div\n        style={{\n          display: \"flex\",\n          fontSize: title.length > 36 ? 72 : 88,\n          fontWeight: 700,\n          letterSpacing: \"-0.03em\",\n          lineHeight: 1.02,\n          marginTop: \"28px\",\n          maxWidth: \"1000px\",\n          textShadow: \"0 2px 24px rgba(0,0,0,0.5)\",\n        }}\n      >\n        {title}\n      </div>\n\n      <div\n        style={{\n          alignItems: \"center\",\n          display: \"flex\",\n          gap: \"12px\",\n          marginTop: \"32px\",\n        }}\n      >\n        <BrandMark background=\"rgba(255,255,255,0.2)\" size={36} src={logo} />\n        <div\n          style={{\n            color: \"rgba(255,255,255,0.85)\",\n            fontSize: \"28px\",\n            fontWeight: 600,\n          }}\n        >\n          {brand}\n        </div>\n      </div>\n    </div>\n  );\n};\n",
      "type": "registry:component",
      "target": "components/og/photo.tsx"
    }
  ],
  "categories": [
    "content"
  ],
  "type": "registry:block"
}