20 open-source components · MCP-native
Editorial components for React
Copy-source components for technical essays and blogs — scrollytelling, margin notes, sparklines, diagrams. Real typography, ARIA and reduced motion built in. The source lands in your repo.
npx shadcn@latest add https://mocoui.site/r/compare.json
Install it your way
Three paths to the same files — pick whichever fits your flow.
Add the server to your MCP config, then describe what you need — Claude installs the component into your repo.
{
"mcpServers": {
"moco": { "command": "npx", "args": ["-y", "moco-mcp"] }
}
}moco is a standard shadcn-format registry — add any item by URL.
npx shadcn@latest add https://mocoui.site/r/compare.jsonEvery component is a .tsx + .css pair with full source on its page. Take the files — they're yours.
components/moco/compare.tsx
components/moco/compare.cssSee it live
Every demo below is the real component, running on this page. Drag, scroll, and press things.
Uncached, you pay $1,285 a month across 42k requests — and 97.4% of them hit the same 12,500-token prefix.
Latency trended down over the quarter, error rate spiked once , and cache hit rate sits at 82%.
Suppose 2,000 requests a day hit the same prompt — that is $2,520 a month.
First: the request arrives.
Built for people who write
Small, sharp components with the boring parts done properly.
Copy-source
No package to install. Components land as .tsx + .css files in your repo — you own the code and edit it freely.
MCP-native
moco ships an MCP server. Ask Claude for a component and it finds it, installs it, and wires the imports for you.
shadcn-compatible registry
A standard shadcn-format registry: npx shadcn add works with every item, no custom tooling.
Accessibility built in
ARIA roles, keyboard support, and prefers-reduced-motion are handled inside every component.
Light & dark tokens
One --moco-* token contract themes the whole library. Override a variable to retheme everything at once.
Zero lock-in
Plain React and plain CSS. No runtime dependency, no styling framework, nothing to eject from.
How it works
From zero to a component in your repo, in one conversation.
Add the MCP server
One entry in your MCP config — no install step.
"moco": { "command": "npx",
"args": ["-y", "moco-mcp"] }Ask for what you need
Describe the outcome, not the component name.
"add a before/after slider to my post"The source lands in your repo
A .tsx + .css pair, imports wired. Edit it like your own code — it is.
components/moco/compare.tsx20 components
The full index — every item links to a live demo, install paths, and source.
code
Shiki-highlighted code windows: tabbed snippets with crossfade, and an annotated walkthrough with bidirectional linked highlighting.
codeshikisyntax-highlightingcompare
Before/after clip-path wipe with pointer, keyboard, and slider-role support.
figureinteractiveslidercountup
Scroll-triggered number count-up with reserved width (no layout shift), built-in Intl formatters, and reduced-motion instant-set.
numberanimationscrollcover
Deterministic FNV-1a-seeded generative SVG cover art in three variants: curves, blocks, bars.
generativesvgcoverdiagram
HTML/CSS block diagrams — rows, blocks with variants and tooltips, diamonds, brackets, notes, and a legend. Real DOM: selectable, screen-reader reachable, reflows.
diagramlayoutaccessibilitydotgrid
Full-viewport canvas dot grid that drifts toward the cursor; pauses when the tab is hidden, off under reduced motion.
canvasbackgroundmotionfigure
Figure plate with run-in caption, plus an editorial table with small-caps heads and hairline rules.
figurecaptiontablehooks
Scroll and motion hooks: useReducedMotion, useScrollspy, useReadProgress, useInView, plus smoothScrollTo.
hooksscrollmotionisland
Morphing sticky header for long reads: progress ring, scrollspy section, section menu, and a Read-next end phase.
navigationheaderscrollspymath
Display equation with a plain-English restatement and a 'show the math' derivation disclosure. Children are typically KaTeX/MathML output — katex is an optional peer, not imported here.
mathprosedisclosurenotes
Tufte-style numbered margin notes (CSS-counter ordered, tap-to-expand below 1280px) and dotted-underline term popovers with viewport-edge flip.
prosesidenotetooltippalette
Cmd-K fuzzy command palette with subsequence matching, character highlighting, focus trap, and on-page section jumps.
command-palettesearchkeyboardrail
Left-edge section minimap: one tick per heading, active-section highlight, labels on hover. Hidden below 1280px.
navigationscrollspytocscrolly
Scrollytelling stage: a pinned figure that updates as prose steps scroll past, unpinning below 1024px.
figurescrollytellinglayoutscrub
Tangle-style inline number scrubber: drag the variable itself, with a compact range input for pointer and keyboard access.
numberinputdragspark
Server-safe inline SVG sparklines and proportion bars that sit on the text baseline.
chartsparklinesvgstepper
Render-prop step sequencer with play/pause that auto-pauses off-screen and under reduced motion.
figureinteractiveanimationtokens
The moco token contract: warm-paper light theme + warm-dark theme, lime accent, four font slots. Import once; every moco component styles itself from these variables.
themetokenssetupview-transitions
Cross-fade View Transitions for Next.js App Router route changes, plus a no-js flag remover.
navigationanimationnextzoom
Lightbox affordance for figures — Esc, click-outside, focus restore, and scroll lock included.
lightboxfiguredialog