Loading...
Loading...
Image renderer for json-render that turns JSON specs into SVG and PNG images via Satori. Use when working with @json-render/image, generating OG images from JSON, creating social cards, or rendering AI-generated image specs.
npx skill4agent add vercel-labs/json-render json-render-imageimport { 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" }],
});import { defineCatalog } from "@json-render/core";
import { schema, standardComponentDefinitions } from "@json-render/image";
export const imageCatalog = defineCatalog(schema, {
components: standardComponentDefinitions,
});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",
},
},
});| Component | Category | Description |
|---|---|---|
| Root | Root container. Defines width, height, background. Must be root. |
| Layout | Container with padding, margin, border, absolute positioning |
| Layout | Horizontal flex layout |
| Layout | Vertical flex layout |
| Content | h1-h4 heading text |
| Content | Body text with full styling |
| Content | Image from URL |
| Decorative | Horizontal line separator |
| Decorative | Empty vertical space |
| Export | Purpose |
|---|---|
| Render spec to SVG string |
| Render spec to PNG buffer (requires |
| Image element schema |
| Pre-built component registry |
| Catalog definitions for AI prompts |
| Export | Description |
|---|---|
| Full package: schema, components, render functions |
| Schema and catalog definitions only (no React/Satori) |
| Standard component definitions and types |
| Render functions only |