json-render-shadcn
Skill19k starsChanged 3 days agoApache-2.0View on GitHub
Pre-built shadcn/ui components for json-render. Use when working with @json-render/shadcn, adding standard UI components to a catalog, or building web UIs with Radix UI + Tailwind CSS components.
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 56
Add custom components alongside standard ones:
- Very specific: line 143
removeState: - Remove an array item by index ({ statePath, index })
- Very specific: line 148
All form components support validateOn to control when validation runs:
- Very specific: line 158
All form inputs support checks for validation (type + message pairs) and validateOn for timing
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
@json-render/shadcn
Pre-built shadcn/ui component definitions and implementations for json-render. Provides 36 components built on Radix UI + Tailwind CSS.
Two Entry Points
| Entry Point | Exports | Use For |
@json-render/shadcn/catalog | shadcnComponentDefinitions | Catalog schemas (no React dependency, safe for server) |
@json-render/shadcn | shadcnComponents | React implementations |
Usage Pattern
Pick the components you need from the standard definitions. Do not spread all definitions -- explicitly select what your app uses:
import { defineCatalog } from "@json-render/core";
import { schema } from "@json-render/react/schema";
import { shadcnComponentDefinitions } from "@json-render/shadcn/catalog";
import { defineRegistry } from "@json-render/react";
import { shadcnComponents } from "@json-render/shadcn";
// Catalog: pick definitions
const catalog = defineCatalog(schema, {
components: {
Card: shadcnComponentDefinitions.Card,
Stack: shadcnComponentDefinitions.Stack,
Heading: shadcnComponentDefinitions.Heading,
Button: shadcnComponentDefinitions.Button,
Input: shadcnComponentDefinitions.Input,
},
actions: {},
});
// Registry: pick matching implementations
const { registry } = defineRegistry(catalog, {
components: {
Card: shadcnComponents.Card,
Stack: shadcnComponents.Stack,
Heading: shadcnComponents.Heading,
Button: shadcnComponents.Button,
Input: shadcnComponents.Input,
},
});State actions (
setState,pushState,removeState) are built into the React schema and handled byActionProviderautomatically. No need to declare them.
Extending with Custom Components
Add custom components alongside standard ones:
const catalog = defineCatalog(schema, {
components: {
// Standard
Card: shadcnComponentDefinitions.Card,
Stack: shadcnComponentDefinitions.Stack,
// Custom
Metric: {
props: z.object({
label: z.string(),
value: z.string(),
trend: z.enum(["up", "down", "neutral"]).nullable(),
}),
description: "KPI metric display",
},
},
actions: {},
});
const { registry } = defineRegistry(catalog, {
components: {
Card: shadcnComponents.Card,
Stack: shadcnComponents.Stack,
Metric: ({ props }) => <div>{props.label}: {props.value}</div>,
},
});Available Components
Layout
- Card - Container with optional title, description, maxWidth, centered
- Stack - Flex container with direction, gap, align, justify
- Grid - Grid layout with columns (number) and gap
- Separator - Visual divider with orientation
Navigation
- Tabs - Tabbed navigation with tabs array, defaultValue, value
- Accordion - Collapsible sections with items array and type (single/multiple)
- Collapsible - Single collapsible section with title
- Pagination - Page navigation with totalPages and page
Overlay
- Dialog - Modal dialog with title, description, openPath
- Drawer - Bottom drawer with title, description, openPath
- Tooltip - Hover tooltip with content and text
- Popover - Click-triggered popover with trigger and content
- DropdownMenu - Dropdown with label and items array
Content
- Heading - Heading text with level (h1-h4)
- Text - Paragraph with variant (body, caption, muted, lead, code)
- Image - Image with alt, width, height
- Avatar - User avatar with src, name, size
- Badge - Status badge with text and variant (default, secondary, destructive, outline)
- Alert - Alert banner with title, message, type (success, warning, info, error)
- Carousel - Scrollable carousel with items array
- Table - Data table with columns (string[]) and rows (string[][])
Feedback
- Progress - Progress bar with value, max, label
- Skeleton - Loading placeholder with width, height, rounded
- Spinner - Loading spinner with size and label
Input
- Button - Button with label, variant (primary, secondary, danger), disabled
- Link - Anchor link with label and href
- Input - Text input with label, name, type, placeholder, value, checks
- Textarea - Multi-line input with label, name, placeholder, rows, value, checks
- Select - Dropdown select with label, name, options (string[]), value, checks
- Checkbox - Checkbox with label, name, checked, checks, validateOn
- Radio - Radio group with label, name, options (string[]), value, checks, validateOn
- Switch - Toggle switch with label, name, checked, checks, validateOn
- Slider - Range slider with label, min, max, step, value
- Toggle - Toggle button with label, pressed, variant
- ToggleGroup - Group of toggles with items, type, value
- ButtonGroup - Button group with buttons array and selected
Built-in Actions (from @json-render/react)
These are built into the React schema and handled by ActionProvider automatically. They appear in prompts without needing to be declared in the catalog.
- setState - Set a value at a state path (
{ statePath, value }) - pushState - Push a value onto an array (
{ statePath, value, clearStatePath? }) - removeState - Remove an array item by index (
{ statePath, index }) - validateForm - Validate all fields, write
{ valid, errors }to state ({ statePath? })
Validation Timing (validateOn)
All form components support validateOn to control when validation runs:
"change"— validate on every input change (default for Select, Checkbox, Radio, Switch)"blur"— validate when field loses focus (default for Input, Textarea)"submit"— validate only on form submission
Important Notes
- The
/catalogentry point has no React dependency -- use it for server-side prompt generation - Components use Tailwind CSS classes -- your app must have Tailwind configured
- Component implementations use bundled shadcn/ui primitives (not your app's
components/ui/) - All form inputs support
checksfor validation (type + message pairs) andvalidateOnfor timing - Events: inputs emit
change/submit/focus/blur; buttons emitpress; selects emitchange/select
Trending
More talk lately.about the whole repository
Who's talking about vercel-labs/json-render
- @sungkim.bsky.social“AI Chat in TUI or Generative TUI? Vercel's json-render: The Generative UI framework. Generate dynamic, …”Bluesky · Mar 24, 2026 · 9 likes
- @evadeva.bsky.social“oh, isn't json-render something like this?”Bluesky · Oct 27, 2026 · 2 likes
- devframes/devframe“Proposal: terminal UI (TUI) target that renders json-render views”GitHub · Sep 30, 2026 · 2 reactions
- mangeshraut712/Vitals.AI“chore(deps): bump the npm-dependencies group with 31 updates”GitHub · Jul 27, 2026 · 2 reactions
- @github-trending-js.bsky.social“🔥 Hot Repo! 🔥 (100+ new stars) 📦 vercel-labs / json-render ⭐ 15,422 (+127) 🗒 TypeScript The Generative …”Bluesky · Jun 17, 2026 · 2 likes
The biggest 5 of 74 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 74
Talked about on GitHub, Bluesky, the web and Hacker News (74 times).
On GitHub · 50
- Sep 30, 2026Proposal: terminal UI (TUI) target that renders json-render views — devframes/devframe2 reactions · 2 comments
- Jul 27, 2026chore(deps): bump the npm-dependencies group with 31 updates — mangeshraut712/Vitals.AI2 reactions · 3 comments
- May 18, 2026chore(deps): bump the npm-dependencies group across 1 directory with 31 updates — mangeshraut712/Vitals.AI2 reactions · 4 comments
- May 11, 2026chore(deps): bump the npm-dependencies group across 1 directory with 30 updates — mangeshraut712/Vitals.AI2 reactions · 2 comments
- May 4, 2026chore(deps): bump the npm-dependencies group across 1 directory with 30 updates — mangeshraut712/Vitals.AI2 reactions · 3 comments
45 more on GitHub
- Apr 20, 2026chore(deps): bump the npm-dependencies group across 1 directory with 29 updates — mangeshraut712/Vitals.AI2 reactions · 3 comments
- Apr 6, 2026chore(deps): bump the npm-dependencies group across 1 directory with 28 updates — mangeshraut712/Vitals.AI2 reactions · 3 comments
- Oct 11, 2026[TEMPO-B06-02] Pin json-render and define the Tempo block catalog — Levidavidspublic/tempo-rhythm1 reaction · 4 comments
- Oct 11, 2026[TEMPO-B06-P02] json-render and shared UI dependency preparation — Levidavidspublic/tempo-rhythm1 reaction · 2 comments
- Oct 9, 2026chore(deps): bump the bun-minor-patch group with 67 updates — miurla/morphic1 reaction · 3 comments
- Jul 28, 2026[Bug]: Skills with same name overwrite each other — vercel-labs/skills1 reaction · 1 comment
- Jul 13, 2026A2UI 生态日报 2026-07-13 — linqinghao/big_model_radar1 reaction
- May 7, 2026chore: bump the production-dependencies group across 1 directory with 15 updates — mengxi-ream/read-frog1 reaction · 1 comment
- Apr 3, 2026chore: bump the production-dependencies group across 1 directory with 12 updates — mengxi-ream/read-frog1 reaction · 2 comments
- Mar 23, 2026chore: bump the production-dependencies group with 5 updates — mengxi-ream/read-frog1 reaction · 1 comment
- Mar 20, 2026Add generative-UI example leveraging json-render — alpic-ai/skybridge1 reaction
- Feb 26, 2026Json renderer — nuxt/ui1 reaction · 2 comments
- Oct 30, 2026chore(deps): bump the root-minor-patch group across 1 directory with 19 updates — cuongtranba/kanna0 reactions
- Oct 30, 2026🎨 Generative UI Ecosystem Digest 2026-10-30 — linqinghao/agents-radar0 reactions
- Oct 29, 2026chore(deps): bump @json-render/shadcn from 0.21.1 to 0.21.3 — owieth/dynamic-charts-by-prompt0 reactions
- Oct 29, 2026chore(deps): bump the npm-minor group with 3 updates — Avijit-Kumar-GIT/fella0 reactions
- Oct 29, 2026🎨 Generative UI Ecosystem Digest 2026-10-29 — linqinghao/agents-radar0 reactions
- Oct 29, 2026chore(deps): bump the minor-and-patch group with 38 updates — ChisaAlter/ChisaBot0 reactions
- Oct 28, 2026🎨 Generative UI Ecosystem Digest 2026-10-28 — linqinghao/agents-radar0 reactions
- Oct 28, 2026🎨 生成式 UI 生态日报 2026-10-28 — linqinghao/agents-radar0 reactions
- Oct 28, 2026build(deps): bump @json-render/react from 0.21.2 to 0.21.3 — SatohaCC/medi-chat0 reactions · 1 comment
- Oct 28, 2026build(deps): bump @json-render/core from 0.21.2 to 0.21.3 — SatohaCC/medi-chat0 reactions · 1 comment
- Oct 27, 2026chore: bump the production-dependencies group across 1 directory with 39 updates — B416-JAFLY/leafling-local0 reactions
- Oct 27, 2026build(deps): Bump the npm-minor-and-patch group with 2 updates — MysterionRise/code-guesser0 reactions
- Oct 27, 2026🎨 Generative UI Ecosystem Digest 2026-10-27 — linqinghao/agents-radar0 reactions
- Oct 27, 2026build(deps): bump @json-render/core from 0.21.1 to 0.21.2 — SatohaCC/medi-chat0 reactions · 1 comment
- Oct 27, 2026build(deps): bump @json-render/react from 0.21.1 to 0.21.2 — SatohaCC/medi-chat0 reactions · 1 comment
- Oct 26, 2026🎨 Generative UI Ecosystem Digest 2026-10-26 — linqinghao/agents-radar0 reactions
- Oct 26, 2026🎨 生成式 UI 生态日报 2026-10-26 — linqinghao/agents-radar0 reactions
- Oct 25, 2026🎨 Generative UI Ecosystem Digest 2026-10-25 — linqinghao/agents-radar0 reactions
- Oct 25, 2026🎨 生成式 UI 生态日报 2026-10-25 — linqinghao/agents-radar0 reactions
- Oct 24, 2026chore: bump the production-dependencies group across 1 directory with 39 updates — ajthejet3-sketch/leisurelearning0 reactions
- Oct 24, 2026🎨 Generative UI Ecosystem Digest 2026-10-24 — linqinghao/agents-radar0 reactions
- Oct 23, 2026chore: bump the production-dependencies group across 1 directory with 44 updates — SYZBZ/translation-kitten0 reactions
- Oct 22, 2026chore(deps): bump @json-render/shadcn from 0.21.0 to 0.21.1 — owieth/dynamic-charts-by-prompt0 reactions
- Oct 19, 2026chore(deps): bump @json-render/core from 0.21.0 to 0.21.1 — jacobhausler/hermes-rich-ui0 reactions · 3 comments
- Oct 19, 2026chore(deps): bump @json-render/react from 0.21.0 to 0.21.1 — jacobhausler/hermes-rich-ui0 reactions · 3 comments
- Oct 19, 2026[TEMPO-KA-45] Tempo blocks in pages and in coach cards are drawn by one json-render renderer, after a short written comparison with OpenUI — Levidavidspublic/tempo-rhythm0 reactions
- Oct 19, 2026build(deps): bump the root-deps group across 1 directory with 70 updates — vaddisrinivas/utopia0 reactions
- Oct 18, 2026🎨 Generative UI Ecosystem Digest 2026-10-18 — linqinghao/agents-radar0 reactions
- Oct 17, 2026deps(canvas): bump @json-render/react from 0.21.0 to 0.21.1 in /extensions/canvas — miloszkolber/oc_build0 reactions
- Oct 17, 2026deps(canvas): bump @json-render/core from 0.21.0 to 0.21.1 in /extensions/canvas — miloszkolber/oc_build0 reactions
- Oct 16, 2026Add T27F research skills and validate discovery in Trinity — Trinity-S-AI-DNA/trinity0 reactions
- Oct 16, 2026MVP: benchmark generative-UI competitors and prototype T27F research workspace — Trinity-S-AI-DNA/trinitysays it tested it0 reactions · 1 comment
- Oct 16, 2026EPIC: T27F — Native generative UI and visual application engine — Trinity-S-AI-DNA/trinity0 reactions · 6 comments
On Bluesky · 17
- Mar 24, 2026AI Chat in TUI or Generative TUI? Vercel's json-render: The Generative UI framework. Generate dynamic, personalized UIs from prompts… — @sungkim.bsky.social9 likes and reposts
- Oct 27, 2026oh, isn't json-render something like this? — @evadeva.bsky.social2 likes and reposts · 1 reply
- Jun 17, 2026🔥 Hot Repo! 🔥 (100+ new stars) 📦 vercel-labs / json-render ⭐ 15,422 (+127) 🗒 TypeScript The Generative UI framework — @github-trending-js.bsky.social2 likes and reposts
- May 13, 2026そういえばAgentに吐かせるべきはMarkdownかHTMLか論争、json-renderみたいに出すコンポーネントが絞られてたら多少マシかも github.com/vercel-labs/... — @ras0q.com2 likes and reposts
- May 9, 2026📦 vercel-labs / json-render ⭐ 14,661 (+42) 🗒 TypeScript The Generative UI framework — @github-trending-js.bsky.social2 likes and reposts
12 more on Bluesky
- Mar 26, 2026PDF generation is pretty straightforward with github.com/vercel-labs/... I'm building a thing like a thing I once built for templated… — @rager.tech2 likes and reposts · 1 reply
- Jan 17, 2026Saw this framework for controlled UI rendering from AI Seems interesting Any insights on such frameworks ? github.com/vercel-labs/... #AI… — @muralirk.bsky.social2 likes and reposts
- Sep 23, 2026vercel-labs/json-render (17k+ stars, 8 months old, trending again) doesn't let a model write UI code. It emits JSON constrained to a… — @maybeworthbuilding.bsky.social1 likes and repost
- Sep 20, 2026🎉 Celebrating! 🎉 (500+ new stars) 📦 vercel-labs / json-render ⭐ 16,989 (+585) 🗒 TypeScript The Generative UI framework — @github-trending.bsky.social1 likes and repost · 1 reply
- Sep 19, 2026"Your LLM only renders with the components and schemas you approve" cool why don‘t we have programmable documents as a *human-usable*… — @sevoris.bsky.social1 likes and repost
- Sep 19, 2026🚀 Skyrocketing! 🚀 (200+ new stars) 📦 vercel-labs / json-render ⭐ 16,700 (+468) 🗒 TypeScript The Generative UI framework — @github-trending-js.bsky.social1 likes and repost · 1 reply
- Apr 27, 2026github.com/vercel-labs/jso... GitHub - vercel-labs/json-render: The Generative UI framework — @technews4869.bsky.social1 likes and repost
- Mar 28, 2026🔥 Hot Repo! 🔥 (100+ new stars) 📦 vercel-labs / json-render ⭐ 13,582 (+103) 🗒 TypeScript The Generative UI framework — @github-trending-js.bsky.social1 likes and repost
- Feb 22, 2026https://github.com/vercel-labs/json-render — @tom-doerr.bsky.social1 likes and repost
- Jan 25, 2026Vercel Labs' AI → JSON → UI pipeline - declarative interfaces generated from AI responses! https://github.com/vercel-labs/json-render — @u11g.com1 likes and repost
- Jan 24, 2026github.com/vercel-labs... — @michabbb.bsky.social1 likes and repost
- Jan 15, 2026Generative UI github.com/vercel-labs/... — @kasperjunge.bsky.social1 likes and repost · 1 reply
On the web · 5
- Oct 24, 2026json-render download — sourceforge.net
- Sep 26, 2026Played with Vercel Lab's json-render with Jev to read ... — google.com
- Sep 23, 2026Vedika Ahuja's Post — google.com
- Sep 21, 2026GitHub Daily Trend - vercel-labs/json-render — podcasts.apple.com
- Jul 27, 2026json-render • vercel-labs • Skills • Registry — google.com
On Hacker News · 2
- Jan 21, 2026Benchmark Comparison: JSONL vs. TOON output for JSON-render efficiencysays it tested it2 points
- Jan 15, 2026json-render2 points · 2 comments
Other versions1 project uses a version of this.
Word for word · 1
- pskoett/pmx-canvas★ 29100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository32 other files it gives its agents.
- AGENTS.mdAGENTS.md
- technical-writerSkill
- codegenSkill
- coreSkill
- devtools-reactSkill
- devtoolsSkill
- devtools-solidSkill
- devtools-svelteSkill
- devtools-vueSkill
- directivesSkill
- imageSkill
- inkSkill
- jotaiSkill
- mcpSkill
- nextSkill
- react-emailSkill
- react-nativeSkill
- react-pdfSkill
- reactSkill
- react-three-fiberSkill
- reduxSkill
- remotion-best-practicesSkill
- remotionSkill
- shadcn-svelteSkill
- skill-creatorSkill
- solidSkill
- svelteSkill
- tanstack-startSkill
- vueSkill
- xstateSkill
- yamlSkill
- zustandSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

