ReactFrame
Search ReactFrame's React + Tailwind + Motion components, install free ones and price premium picks.
التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
reactframe-mcpclaude mcp add reactframe -- npx -y reactframe-mcp@0.2.1
{
"mcpServers": {
"reactframe": {
"command": "npx",
"args": [
"-y",
"reactframe-mcp@0.2.1"
]
}
}
}
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
ReactFrame
Open-source, shadcn/ui-compatible component registry. React + TypeScript + Tailwind CSS + Motion. Every component installs with:
npx shadcn@latest add https://reactframe.com/r/[slug].json
Structure
registry.json # root registry manifest (shadcn schema)
registry/new-york/[slug]/[slug].tsx # component source, one folder per item
src/registry-preview/index.tsx # slug -> live preview element (docs site only)
src/lib/catalog-data.ts # slug -> display metadata (name, description, category)
src/app/components/[slug]/page.tsx # docs page: install command + live preview + code tab
public/r/[slug].json # generated — do not edit, do not commit
npm run registry:build (also runs automatically before dev/build) reads
registry.json + the files it points to and writes the consumable
public/r/*.json files via the shadcn build CLI.
Adding a component (migrating from Frameze)
Each of the ~130 Framer components gets converted once, by hand, following this checklist:
- Convert the source. Start from the Framer
.tsx, stripaddPropertyControls/useIsStaticRenderer/ Framer-only APIs, replace inlinestyle={{}}with Tailwind classes, and rebuild interactive/canvas demo panels as plain props instead. Referenceregistry/new-york/animated-stats/animated-stats.tsxas the pattern:"use client", named export, a typedPropsinterface,cn()from@/lib/utils, and the sharedpaper/ink/border/ease-signaturetokens fromglobals.cssinstead of hardcoded colors. - Save it to
registry/new-york/[slug]/[slug].tsx. - Register it — add an entry to
registry.json(name,type: "registry:component",title,description,files, plusregistryDependencies/dependenciesif it needs other registry items or npm packages). - Preview it — add
"[slug]": () => <Component />tosrc/registry-preview/index.tsxwith sensible example props. - List it — add an entry to
componentsinsrc/lib/catalog-data.ts(drives the/componentsgrid and the detail page's title/description). - Run
npm run registry:buildandnpm run dev, check/components/[slug]renders and animates correctly in both themes. - Sanity-check the real install path:
npx shadcn@latest add http://localhost:3000/r/[slug].jsonin a scratch Next.js project.
Design system
paper / ink / glass — carried over from Frameze for brand consistency.
Light theme = paper (#f5f4f1) background, near-black ink (#0a0a0a) text.
Dark theme = near-black paper (#0e0e0e), near-white ink (#f5f4f1) text
(class .dark, via next-themes). .glass is the translucent blurred-panel
utility. ease-signature (cubic-bezier(0.16,1,0.3,1)) / animate-rise are
the shared motion tokens — use them instead of ad-hoc easing curves so every
component feels like part of one family. --shadow-soft is the ambient
"floating card" shadow (soft blur + hairline ring, tuned per theme) — apply
via style={{ boxShadow: "var(--shadow-soft)" }}. All defined in
src/app/globals.css.
Components that ship their own self-contained light/dark palette (product
cards, testimonial/marketing sections meant to drop into any page — see
testimonial-slider.tsx as the reference) should use these exact hex values
rather than inheriting the host project's shadcn tokens, so the component
keeps its ReactFrame look regardless of what theme the consumer's project has.
Small utility/primitive components (toggle, badge, rating) can instead use
semantic Tailwind classes (bg-background, text-foreground, border) so
they blend into the consumer's own theme — see README "Adding a component"
step 1 for which pattern applies.
Recurring visual patterns — reuse these, don't reinvent them per component:
- Eyebrow / section label: a
✦glyph (not an icon font) + uppercase text at11px,font-semibold,tracking-wider, at ~38% ink opacity in light / ~36% in dark. The✦itself sits at higher opacity (near-solid). - Nav button pair: secondary/prev = low-opacity ink fill (
~7-8%) with a mid-opacity icon (~50%); primary/next = solid ink fill with a paper (inverted) icon. BothwhileHover={{ scale: 1.1 }}/whileTap={{ scale: 0.91 }}viamotion. - Decorative giant quote mark: a literal
"character (not an SVG) at a very large font size, colored at ~4-4.5% ink opacity, positioned absolute and layered behind the real text. - Dividers: 1px hairline at ink 7-8% opacity — never a visible gray line.
- Counters / metadata text: tabular-nums, ink at ~26-32% opacity.
- Keep it monochrome. Accent color, when a component needs one at all, comes
from a single
accentColor-style prop the consumer sets — don't invent multi-hue palettes (rainbow tone kits, neon gradients, mood themes) inside a component's own defaults. If in doubt, look at how spare the reference components are before adding another color.
الأسئلة الشائعة
ما هو ReactFrame؟
Search ReactFrame's React + Tailwind + Motion components, install free ones and price premium picks.
كيف أثبّت ReactFrame؟
يعمل على جهازك. في Claude Code: claude mcp add reactframe -- npx -y reactframe-mcp@0.2.1. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج ReactFrame إلى مفتاح API؟
لا يذكر إدراجه في السجل أي مفتاح أو سر إلزامي. قد تتطلب بعض الميزات حسابًا لدى الخدمة التي يتصل بها.
هل ReactFrame مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص MIT.
من يصون ReactFrame؟
ينشره AhmetLoca. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.