npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

canvas-ui-sdk

v4.0.3

Published

A comprehensive UI component library with design tokens for building beautiful interfaces

Downloads

4,317

Readme

Canvas UI SDK

A themeable React component library with a shadcn-style CLI for copying components into consumer projects, a visual theme editor, and an MCP server for AI editors.

Installation

npm install canvas-ui-sdk

CLI

Components are copied as editable source files into your project. Dependencies are auto-resolved and npm packages auto-installed.

# See all 140+ available components
npx canvas-ui list

# Copy components into your project
npx canvas-ui add <component-name>

# Examples:
npx canvas-ui add button                 # Copies button + utils
npx canvas-ui add dashboard-shell        # Copies shell + sidebar + header + 15 deps
npx canvas-ui add standard-data-table    # Copies table + pagination + deps

Then import from local paths:

import { DashboardShell } from "@/components/layout/dashboard-shell";
import { StandardDataTable } from "@/components/blocks/data-tables/standard-data-table";
import { Button } from "@/components/ui/button";

CSS Setup

Add these imports to your globals.css (Tailwind v4):

@import "tailwindcss";
@import "canvas-ui-sdk/tailwind";
@import "canvas-ui-sdk/styles";
@source "../../node_modules/canvas-ui-sdk/dist";
  • canvas-ui-sdk/tailwind maps design tokens to Tailwind's semantic color names (bg-muted, text-primary, etc.)
  • canvas-ui-sdk/styles loads the design system's CSS variables (colors, typography, spacing, etc.)
  • @source tells Tailwind to scan the SDK's compiled output for utility classes — adjust the relative path based on your globals.css location

CSS Variables

Override design tokens in your globals.css:

:root {
  --canvas-primary: #16a34a;
  --canvas-primary-dark: #15803d;
  --canvas-primary-foreground: #ffffff;
}

See styles/tokens.reference.css for the full list of available CSS variables.

MCP Server

Connect the MCP server so your AI editor can discover all components, templates, and design tokens.

Claude Code

Add a .mcp.json to your project root:

{
  "mcpServers": {
    "canvas-ui-sdk": {
      "command": "npx",
      "args": ["canvas-ui-mcp"]
    }
  }
}

Or via CLI: claude mcp add canvas-ui-sdk npx canvas-ui-mcp

Cursor

Add a .cursor/mcp.json to your project root:

{
  "mcpServers": {
    "canvas-ui-sdk": {
      "command": "npx",
      "args": ["-y", "--package=canvas-ui-sdk", "canvas-ui-mcp"]
    }
  }
}

Windsurf

Add an MCP server in Windsurf settings (Cascade > MCP) with command npx and args -y --package=canvas-ui-sdk canvas-ui-mcp.

Alternative (direct node invocation)

If npx doesn't work in your environment:

{
  "mcpServers": {
    "canvas-ui-sdk": {
      "command": "node",
      "args": ["node_modules/canvas-ui-sdk/mcp/dist/index.js"]
    }
  }
}

AI Instructions

Copy the SDK instructions file into your project so your AI editor knows how to use the CLI, design tokens, and component patterns:

| Editor | Command | |--------|---------| | Claude Code | cp node_modules/canvas-ui-sdk/prompts/CLAUDE.md ./CLAUDE.md | | Cursor | cp node_modules/canvas-ui-sdk/prompts/.cursorrules ./.cursorrules | | Windsurf | cp node_modules/canvas-ui-sdk/prompts/.windsurfrules ./.windsurfrules | | GitHub Copilot | mkdir -p .github && cp node_modules/canvas-ui-sdk/prompts/copilot-instructions.md ./.github/copilot-instructions.md |

Live Theme Editor

The <ThemeDrawer> component provides a visual editor for customizing colors, typography, button sizes, input styles, and branding in real-time. When you're happy with your theme, bake it into source code with prompts/bake-theme.md.

Components

UI Primitives

Button, Input, Select, Checkbox, Switch, Dialog, Popover, Dropdown, Avatar, Tabs, Tooltip, and more.

Blocks

Data tables, social feeds, charts, metric tiles, chat widgets, forms, calendars, and more.

Layout Shells

DashboardShell, IconSidebarShell, DoubleSidebarShell, StandardPageShell, AccountSettingsShell, MultistepShell, MobileMenuShell.

Development

npm install    # Install dependencies
npm run build  # Build dist + registry + CLI
npm run dev    # Watch mode

License

MIT