arc

MCP serverSearch

Lets your agent find React animation component code, check its properties, and get copy-paste install commands.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use arc to list components

About this server

React components and blocks with motion. Search docs, props and shadcn install commands.

Install arc

The server’s own address, for the clients that take one directly. Or connect ahel once and every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user arc 'https://uiarc.dev/api/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://uiarc.dev/api/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=arc&config=eyJ1cmwiOiJodHRwczovL3VpYXJjLmRldi9hcGkvbWNwIn0=

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://uiarc.dev/api/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add arc --url 'https://uiarc.dev/api/mcp'

    Run it once, then sign in with codex mcp login arc if the server asks for an account.

From the project's README

As published by kuratlielia/arc-library in README.md.

Arc is a library of React components and blocks with calm, physical motion. Every item is plain source you own: CSS modules on a small set of design tokens, Motion for animation, keyboard support, and a reduced motion path for every animation. Install anything with the shadcn CLI or copy the files by hand. It works in Next.js and Vite, with or without Tailwind. This repository holds the free, open source part: 100 components and 22 blocks, plus the design and motion tokens they share. Every one of them has a live preview at uiarc.dev.

Showcase

A few favorites, recorded live from uiarc.dev. Items marked Pro are part of Arc Pro and are not in this repository; everything else installs from here for free.

Contents

  • Showcase
  • Install
    • Requirements
    • With the shadcn CLI
    • Copy and paste
  • Usage
  • Theming
  • Components
  • Blocks
  • AI tools
  • Troubleshooting
  • How releases work
  • Repository layout
  • Arc Pro
  • Contributing
  • License

Install

Requirements

  • React 19 with TypeScript
  • Next.js (App Router) or Vite
  • motion for animation. Some items also use lucide-react or a Radix UI primitive; the CLI installs whatever an item needs.
  • The @/* import alias pointing at your project root

No Tailwind is required. Arc styles are CSS modules that read CSS variables.

With the shadcn CLI

Register the @uiarc namespace once in components.json:

{
  "registries": {
    "@uiarc": "https://uiarc.dev/r/{name}.json"
  }
}

Then add items by name. Local dependencies, such as the components inside a block, come along automatically:

npx shadcn@latest add @uiarc/button @uiarc/dialog

Every item also installs from its full URL, without touching components.json:

npx shadcn@latest add https://uiarc.dev/r/button.json

Your first install adds arc-foundation (design and motion tokens). Import it once at the root of your app:

// app/layout.tsx (Next.js) or src/main.tsx (Vite)
import "@/registry/foundation.css";

Next.js

npx create-next-app@latest my-app
cd my-app
npx shadcn@latest init

Accept the default @/* import alias.

Vite

npm create vite@latest my-app -- --template react-ts
cd my-app
npx shadcn@latest init

Map @/* to the project root in tsconfig.json and vite.config.ts:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": { "@/*": ["./*"] }
  }
}
import path from "node:path";
import react from "@vitejs/plugin-react";
import { defineConfig } from "vite";

export default defineConfig({
  plugins: [react()],
  resolve: { alias: { "@": path.resolve(__dirname, ".") } },
});

Copy and paste

  1. Install the shared packages: npm install motion lucide-react.
  2. Copy registry/foundation.css, registry/motion-tokens.ts and lib/motion-tokens.ts from this repository into the same paths in your project, and import the CSS once at the root.
  3. Copy the item's folder from registry/components/<id>/ or registry/blocks/<id>/, keeping the path. Its public/r/<id>.json file lists every file and npm package it needs.

Each page on uiarc.dev also has a Manual tab with the exact files.

Usage

Files land under registry/ and lib/ at your project root and import each other through @/. Use them like any local component:

import { Button } from "@/registry/components/button/button";

export default function Page() {
  return <Button>Save changes</Button>;
}

The code is yours: edit it, rename it, move it. There is no runtime package to keep in sync.

Theming

Components read semantic tokens, never raw colors. Change a token in registry/foundation.css and every component follows, in both themes.

TokenUsed for
--backgroundThe page behind everything
--surface, --surface-raised, --surface-mutedCards and inputs, floating layers, quiet fills
--foreground, --text-secondary, --text-mutedPrimary, supporting and hint text
--border, --border-subtle, --border-strongSeparators and edges
--accent, --accent-strong, --accent-subtleSelection, progress and helpful context
--success, --warning, --dangerStatus, always paired with a label
--radius-control, --radius-panel, --radius-surfaceControls, menus, cards
--font-display, --font-bodyGeist for headings, Inter for everything else
  • Dark mode: set data-theme="dark" on <html>. Dark values are tuned separately, not inverted.
  • Accent: set data-accent on <html> to neutral, violet, blue, green, amber, orange, coral or rose.
  • Motion: springs and durations live in lib/motion-tokens.ts. Every animation respects prefers-reduced-motion.

More in the theming docs and motion docs.

Components

100 free components, grouped as on the site. Click a name for the live preview and docs.

Actions (14) · Inputs (31) · Disclosure (13) · Feedback (8) · Data (29) · Text (4) · Special (1)

Actions

Buttons

ComponentDescriptionInstall
ButtonA clear, responsive action with quiet secondary states.npx shadcn@latest add @uiarc/button
Action buttonA compact button for frequent toolbar actions.npx shadcn@latest add @uiarc/action-button
Split buttonA primary action with a menu of nearby alternatives.npx shadcn@latest add @uiarc/split-button
Copy buttonCopy a value with immediate confirmation.npx shadcn@latest add @uiarc/copy-button
Confirm morphA destructive button that morphs into an inline confirmation, a spinner, and a result with undo.npx shadcn@latest add @uiarc/confirm-morph

Gestures

ComponentDescriptionInstall
Hold to confirmConfirm a destructive action by holding, not tapping.npx shadcn@latest add @uiarc/hold-to-confirm
Swipe actionsReveal row actions with a swipe, or from the same actions in a menu.npx shadcn@latest add @uiarc/swipe-actions

Menus

ComponentDescriptionInstall
Dropdown menuA focused list of actions anchored to a trigger.npx shadcn@latest add @uiarc/dropdown-menu
Context menuSecondary actions kept close to the selected object.npx shadcn@latest add @uiarc/context-menu
User menuYour account, settings, theme, and sign out behind the avatar. Opens as a bottom sheet on phones.npx shadcn@latest add @uiarc/user-menu

Theme

ComponentDescriptionInstall
Theme switcherFour smooth ways to move between light and dark appearance.npx shadcn@latest add @uiarc/theme-switch
EclipseThe next appearance crosses the page like an eclipse.npx shadcn@latest add @uiarc/theme-switch-eclipse
SplitThe next appearance opens from a slim center seam.npx shadcn@latest add @uiarc/theme-switch-split
RiseThe next appearance rises into place.npx shadcn@latest add @uiarc/theme-switch-rise

Inputs

Text fields

ComponentDescriptionInstall
InputA single line field with clear labels and useful states.npx shadcn@latest add @uiarc/input
TextareaA multiline field for notes, descriptions, and longer text.npx shadcn@latest add @uiarc/textarea
Password fieldCapture sensitive text with a visible reveal control.npx shadcn@latest add @uiarc/password-field
Password strengthShow how strong a new password is while it is typed.npx shadcn@latest add @uiarc/password-strength
Search fieldA recognizable search entry point with clear affordances.npx shadcn@latest add @uiarc/search-field
Expanding searchAn icon that morphs into a search field with results beneath it.npx shadcn@latest add @uiarc/expanding-search
Inline editRename in place: the text becomes a field without moving.npx shadcn@latest add @uiarc/inline-edit

Special inputs

ComponentDescriptionInstall
Number fieldEnter a bounded number with clear increment controls.npx shadcn@latest add @uiarc/number-field
Phone inputA phone field with a country picker, formatting as you type, and E.164 output.npx shadcn@latest add @uiarc/phone-input
Tag inputTurn short text values into removable tags.npx shadcn@latest add @uiarc/tag-input
Mention inputA textarea with @people and #channel mentions that act as single tokens, with suggestions at the caret.npx shadcn@latest add @uiarc/mention-input
Shortcut recorderRecord key combinations into key caps, with conflict warnings, Kbd, and a searchable cheatsheet.npx shadcn@latest add @uiarc/shortcut-recorder

Selects

ComponentDescriptionInstall
SelectA compact choice field with a keyboard friendly menu.npx shadcn@latest add @uiarc/select
ComboboxSearch and select from a list without leaving the field.npx shadcn@latest add @uiarc/combobox
Multi-selectSelect several values while keeping the field readable.npx shadcn@latest add @uiarc/multi-select
Chip groupFilter by a few facets with chips that morph as you pick them.npx shadcn@latest add @uiarc/chip-group

Toggles

ComponentDescriptionInstall
Radio cardsSelectable option cards with a sliding selection ring, price and description slots, and radio keyboard behavior.npx shadcn@latest add @uiarc/radio-cards
Billing toggleA monthly and yearly switch with a savings badge and prices that roll to the new amount.npx shadcn@latest add @uiarc/billing-toggle
CheckboxA binary choice with a precise, legible state.npx shadcn@latest add @uiarc/checkbox
Radio groupChoose one option from a visible set.npx shadcn@latest add @uiarc/radio-group
SwitchA tactile toggle for settings that take effect immediately.npx shadcn@latest add @uiarc/switch
Segmented controlSwitch between a small set of related views.npx shadcn@latest add @uiarc/segmented-control

Sliders

ComponentDescriptionInstall
SliderPick a value or a range on a track that follows your finger.npx shadcn@latest add @uiarc/slider

Pickers

ComponentDescriptionInstall
CalendarBrowse dates in a clear, compact month view.npx shadcn@latest add @uiarc/calendar
Date pickerChoose a date without losing context.npx shadcn@latest add @uiarc/date-picker
Date range pickerA range picker that grows from its trigger into two months with presets and a stretching range highlight.npx shadcn@latest add @uiarc/date-range-picker
Time pickerChoose a time with sensible keyboard behavior.npx shadcn@latest add @uiarc/time-picker
Color pickerA swatch that grows into a picker with format morphing, eyedropper, saved swatches, and contrast readout.npx shadcn@latest add @uiarc/color-picker

Editors

ComponentDescriptionInstall
Rich text editorA lightweight editor with markdown shortcuts, a floating toolbar, a slash menu, and HTML and markdown output.npx shadcn@latest add @uiarc/rich-text-editor
Signature padSmooth ink that thins with speed, with undo, replay, and PNG or SVG export.npx shadcn@latest add @uiarc/signature-pad
File dropzoneA generous target for dropping one or more files.npx shadcn@latest add @uiarc/file-dropzone

Disclosure

Navigation

ComponentDescriptionInstall
TabsSwitch between related content in the same context.npx shadcn@latest add @uiarc/tabs
BreadcrumbShow where a page sits in a hierarchy.npx shadcn@latest add @uiarc/breadcrumb
PaginationMove through a long collection with clear bounds.npx shadcn@latest add @uiarc/pagination

Expand

ComponentDescriptionInstall
Scroll areaA native scroll container with thin overlay scrollbars and edge fades that appear only when content overflows.npx shadcn@latest add @uiarc/scroll-area
AccordionProgressively reveal supporting information in place.npx shadcn@latest add @uiarc/accordion
Expandable cardGive a dense card more room when requested.npx shadcn@latest add @uiarc/expandable-card
Resizable panelsTrade space between panes by dragging the divider between them.npx shadcn@latest add @uiarc/resizable-panels

Overlays

ComponentDescriptionInstall
DialogA focused surface for decisions that need attention.npx shadcn@latest add @uiarc/dialog
DrawerA temporary side surface for focused work.npx shadcn@latest add @uiarc/drawer
Bottom sheetA sheet that rests at a peek or full height and follows your finger.npx shadcn@latest add @uiarc/bottom-sheet
PopoverA small anchored surface for contextual information.npx shadcn@latest add @uiarc/popover
Hover cardPreview a person or link on hover or focus without leaving the page.npx shadcn@latest add @uiarc/hover-card
TooltipShort supporting text for unfamiliar controls.npx shadcn@latest add @uiarc/tooltip

Feedback

Messages

ComponentDescriptionInstall
AlertA persistent message that helps people recover or continue.npx shadcn@latest add @uiarc/alert
ToastBrief confirmation for a completed background action.npx shadcn@latest add @uiarc/toast
Toast stackStack short results at the edge until you reach for them.npx shadcn@latest add @uiarc/toast-stack
Announcement barA top banner that rotates messages, counts down, and collapses smoothly when dismissed.npx shadcn@latest add @uiarc/announcement-bar

Progress

ComponentDescriptionInstall
ProgressShow how much of a known task is complete.npx shadcn@latest add @uiarc/progress
SkeletonReserve space while content is still loading.npx shadcn@latest add @uiarc/skeleton
StepperShow where a person is in a multi-step flow and what is done.npx shadcn@latest add @uiarc/stepper
Usage meterShow what fills an allowance and how close it is to the limit.npx shadcn@latest add @uiarc/usage-meter

Data

Avatars

Shortened here. Read the whole README on GitHub.

Tools it offers (5)

What this server listed when ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • list_components
  • search_components
  • get_component
  • get_install_command
  • get_skill

Signals

GitHub stars
136
Forks
6
Last commit
Sep 2026
Advanced
Delivery
arc MCP server → your ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
dev-uiarc-arc
Source
github.com/kuratlielia/arc-library
Hosted endpoint
https://uiarc.dev/api/mcp