Installation

Installation guide for integrating shuip into your project

Prerequisites

Before installing shuip, make sure you have:

Installing Components

Method 1: Install via CLI

shuip is served as a shadcn registry namespace. Declare it once in your project's components.json:

components.json
{
  "registries": {
    "@shuip": "https://shuip.plvo.dev/r/{style}/{name}.json"
  }
}

The CLI replaces {style} with the style already set in your components.json and {name} with the item you ask for. The style also decides which base you get, so you never edit that part.

Then add any shuip item with the shadcn/ui CLI:

npx shadcn@latest add @shuip/input-field

The command is the same for Base UI and Radix. The @shuip namespace is the supported way to install: a URL of the form /r/<name>.json, without a style, answers 404.

Method 2: Manual Copy-Paste

You can also copy and paste the code directly from each component’s documentation page.

Picking the base

shuip ships every item for two bases: Base UI and Radix. You do not choose one in shuip. The style in your components.json picks it, because the CLI puts that value into the registry URL and the registry answers with the matching variant.

style in components.jsonVariant you get
base-*Base UI
radix-*Radix
new-york, new-york-v4, defaultRadix
aria-*Not supported (React Aria)

The * stands for a preset name: base-vega and base-nova are Base UI styles, radix-vega and radix-nova are Radix styles.

A project on an aria-* style cannot install shuip items: the registry answers 404 for them, so the install fails.

The documentation follows the same split. Every component and block page exists once per base, and a switcher at the top of the page moves between them. The site remembers your last choice in a cookie and opens on Base UI the first time.

File Structure

After installation, shuip components will be added to your project like this:

src/
├── components/
│   ├── block/
│   │   └── shuip/                 # 🆕 shuip blocks
│   │       ├── title-section.tsx
│   ├── ui/
│   │   ├── button.tsx             # shadcn/ui
│   │   ├── input.tsx              # shadcn/ui
│   │   └── shuip/                 # 🆕 shuip components
│   │       ├── input-field.tsx
│   │       ├── submit-button.tsx
│   │       └── confirmation-dialog.tsx
│   │       └── ...

TypeScript Configuration

If you're using TypeScript, make sure your tsconfig.json includes the appropriate path aliases:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"] // or "@/*": ["./*"] if your project is rooted at the top level
    }
  }
}

Common Issues

Module Not Found Error

If you get a Module not found error, check the following:

  1. That shadcn/ui is correctly installed
  2. That path aliases are configured properly in tsconfig.json
  3. That all required dependencies are installed

Style Conflicts

If you encounter style conflicts:

  1. Ensure Tailwind CSS is properly configured
  2. Verify that your globals.css includes shadcn/ui styles
  3. Restart your development server

Support

If you run into issues:

On this page