json-render-image

📁 vercel-labs/json-render 📅 1 day ago
8
总安装量
8
周安装量
#34309
全站排名
安装命令
npx skills add https://github.com/vercel-labs/json-render --skill json-render-image

Agent 安装分布

opencode 8
github-copilot 8
codex 8
kimi-cli 8
gemini-cli 8
cursor 8

Skill 文档

@json-render/image

Image renderer that converts JSON specs into SVG and PNG images using Satori.

Quick Start

import { renderToPng } from "@json-render/image/render";
import type { Spec } from "@json-render/core";

const spec: Spec = {
  root: "frame",
  elements: {
    frame: {
      type: "Frame",
      props: { width: 1200, height: 630, backgroundColor: "#1a1a2e" },
      children: ["heading"],
    },
    heading: {
      type: "Heading",
      props: { text: "Hello World", level: "h1", color: "#ffffff" },
      children: [],
    },
  },
};

const png = await renderToPng(spec, {
  fonts: [{ name: "Inter", data: fontData, weight: 400, style: "normal" }],
});

Using Standard Components

import { defineCatalog } from "@json-render/core";
import { schema, standardComponentDefinitions } from "@json-render/image";

export const imageCatalog = defineCatalog(schema, {
  components: standardComponentDefinitions,
});

Adding Custom Components

import { z } from "zod";

const catalog = defineCatalog(schema, {
  components: {
    ...standardComponentDefinitions,
    Badge: {
      props: z.object({ label: z.string(), color: z.string().nullable() }),
      slots: [],
      description: "A colored badge label",
    },
  },
});

Standard Components

Component Category Description
Frame Root Root container. Defines width, height, background. Must be root.
Box Layout Container with padding, margin, border, absolute positioning
Row Layout Horizontal flex layout
Column Layout Vertical flex layout
Heading Content h1-h4 heading text
Text Content Body text with full styling
Image Content Image from URL
Divider Decorative Horizontal line separator
Spacer Decorative Empty vertical space

Key Exports

Export Purpose
renderToSvg Render spec to SVG string
renderToPng Render spec to PNG buffer (requires @resvg/resvg-js)
schema Image element schema
standardComponents Pre-built component registry
standardComponentDefinitions Catalog definitions for AI prompts

Sub-path Exports

Export Description
@json-render/image Full package: schema, components, render functions
@json-render/image/server Schema and catalog definitions only (no React/Satori)
@json-render/image/catalog Standard component definitions and types
@json-render/image/render Render functions only