---
name: "@wigggle-ui"
slug: "wigggle-ui"
description: "Open-source registry of dashboard-style widget components for shadcn/ui, built with Next.js and Tailwind CSS. Centers on a composable Widget primitive with size (sm/md/lg), variant (default/secondary), and design (default/mumbai) props, plus sub-components for layout structuring. Each widget is a self-contained, copy-paste card suited for clocks, stats, activity panels, and similar dashboard tiles styled with class-variance-authority. Free and MIT-licensed. Use for: projects that need a consistent set of widget-card containers for internal dashboards or app home screens where you want ownership of the styling code and shadcn/ui compatibility."
category: "Niche/single-purpose"
tags: ["accessibility", "auth", "buttons", "cards", "dashboard", "forms", "hooks", "icons", "loaders", "maps", "media", "navigation", "overlays", "theming"]
framework: "react"
license: "MIT"
author: "wigggle-ui"
website: "https://wigggle-ui.vercel.app"
github: "https://github.com/wigggle-ui/ui"
registry: "https://wigggle-ui.vercel.app/r/registry.json"
pro: false
pro_url: null
github_stars: 882
component_count: 119
generated_at: "2026-07-28T08:59:05.895Z"
---

# @wigggle-ui

Open-source registry of dashboard-style widget components for shadcn/ui, built with Next.js and Tailwind CSS. Centers on a composable Widget primitive with size (sm/md/lg), variant (default/secondary), and design (default/mumbai) props, plus sub-components for layout structuring. Each widget is a self-contained, copy-paste card suited for clocks, stats, activity panels, and similar dashboard tiles styled with class-variance-authority. Free and MIT-licensed. Use for: projects that need a consistent set of widget-card containers for internal dashboards or app home screens where you want ownership of the styling code and shadcn/ui compatibility.

## Links

- Website: https://wigggle-ui.vercel.app
- GitHub: https://github.com/wigggle-ui/ui
- Registry JSON: https://wigggle-ui.vercel.app/r/registry.json
- Directory page: https://sh4dcn.vercel.app/registry/wigggle-ui
- This file: https://sh4dcn.vercel.app/md/wigggle-ui.md

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://wigggle-ui.vercel.app/r/registry.json
pnpm dlx shadcn@latest add https://wigggle-ui.vercel.app/r/registry.json
bunx shadcn@latest add https://wigggle-ui.vercel.app/r/registry.json
# clone the source repo
git clone https://github.com/wigggle-ui/ui.git
# fetch the raw registry index
curl -s https://wigggle-ui.vercel.app/r/registry.json
```

## Components (119)

| name | type | description | install |
| --- | --- | --- | --- |
| widget | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/widget.json` |
| icons | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/icons.json` |
| avatar | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/avatar.json` |
| badge | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/badge.json` |
| button | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/button.json` |
| carousel | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/carousel.json` |
| circular-progress | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/circular-progress.json` |
| dialog | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dialog.json` |
| dropdown-menu | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dropdown-menu.json` |
| input | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/input.json` |
| label | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/label.json` |
| popover | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/popover.json` |
| progress | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/progress.json` |
| select | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/select.json` |
| scroll-area | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/scroll-area.json` |
| separator | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/separator.json` |
| switch | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/switch.json` |
| tabs | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/tabs.json` |
| textarea | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/textarea.json` |
| tooltip | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/tooltip.json` |
| item | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/item.json` |
| wheel-picker | registry:ui | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/wheel-picker.json` |
| utils | registry:lib | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/utils.json` |
| calendar-sm-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-01.json` |
| calendar-sm-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-02.json` |
| calendar-sm-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-03.json` |
| calendar-sm-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-04.json` |
| calendar-sm-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-05.json` |
| calendar-sm-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-06.json` |
| calendar-sm-07 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-07.json` |
| calendar-sm-08 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-08.json` |
| calendar-sm-09 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-09.json` |
| calendar-sm-10 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-sm-10.json` |
| calendar-md-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-md-01.json` |
| calendar-md-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-md-02.json` |
| calendar-md-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-md-03.json` |
| calendar-md-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-md-04.json` |
| calendar-md-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-md-05.json` |
| calendar-md-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-md-06.json` |
| calendar-lg-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-lg-01.json` |
| calendar-lg-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-lg-02.json` |
| calendar-lg-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-lg-03.json` |
| calendar-lg-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-lg-04.json` |
| calendar-lg-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-lg-05.json` |
| calendar-lg-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/calendar-lg-06.json` |
| clock-sm-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-01.json` |
| clock-sm-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-02.json` |
| clock-sm-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-03.json` |
| clock-sm-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-04.json` |
| clock-sm-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-05.json` |
| clock-sm-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-06.json` |
| clock-sm-07 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-07.json` |
| clock-sm-08 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-08.json` |
| clock-sm-09 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-09.json` |
| clock-sm-10 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-10.json` |
| clock-sm-11 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-11.json` |
| clock-sm-12 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-12.json` |
| clock-sm-13 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/clock-sm-13.json` |
| dashboard-sm-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-sm-01.json` |
| dashboard-sm-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-sm-02.json` |
| dashboard-sm-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-sm-03.json` |
| dashboard-sm-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-sm-04.json` |
| dashboard-sm-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-sm-05.json` |
| dashboard-sm-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-sm-06.json` |
| dashboard-md-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-md-01.json` |
| dashboard-md-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-md-02.json` |
| dashboard-lg-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-lg-01.json` |
| dashboard-lg-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/dashboard-lg-02.json` |
| media-sm-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-sm-01.json` |
| media-sm-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-sm-02.json` |
| media-sm-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-sm-03.json` |
| media-sm-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-sm-04.json` |
| media-sm-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-sm-05.json` |
| media-sm-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-sm-06.json` |
| media-sm-07 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-sm-07.json` |
| media-sm-08 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-sm-08.json` |
| media-md-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-md-01.json` |
| media-md-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-md-02.json` |
| media-md-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-md-03.json` |
| media-md-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-md-04.json` |
| media-md-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/media-md-05.json` |
| productivity-sm-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-sm-01.json` |
| productivity-sm-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-sm-02.json` |
| productivity-sm-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-sm-03.json` |
| productivity-sm-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-sm-04.json` |
| productivity-sm-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-sm-05.json` |
| productivity-sm-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-sm-06.json` |
| productivity-sm-07 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-sm-07.json` |
| productivity-md-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-md-01.json` |
| productivity-md-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-md-02.json` |
| productivity-md-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-md-03.json` |
| productivity-md-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/productivity-md-04.json` |
| sports-sm-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/sports-sm-01.json` |
| sports-sm-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/sports-sm-02.json` |
| sports-sm-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/sports-sm-03.json` |
| sports-sm-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/sports-sm-04.json` |
| sports-sm-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/sports-sm-05.json` |
| sports-sm-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/sports-sm-06.json` |
| sports-sm-07 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/sports-sm-07.json` |
| stock-sm-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/stock-sm-01.json` |
| stock-sm-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/stock-sm-02.json` |
| stock-sm-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/stock-sm-03.json` |
| stock-sm-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/stock-sm-04.json` |
| stock-sm-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/stock-sm-05.json` |
| stock-sm-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/stock-sm-06.json` |
| weather-sm-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-sm-01.json` |
| weather-sm-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-sm-02.json` |
| weather-sm-03 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-sm-03.json` |
| weather-sm-04 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-sm-04.json` |
| weather-sm-05 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-sm-05.json` |
| weather-sm-06 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-sm-06.json` |
| weather-sm-07 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-sm-07.json` |
| weather-sm-08 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-sm-08.json` |
| weather-sm-09 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-sm-09.json` |
| weather-md-01 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-md-01.json` |
| weather-md-02 | registry:component | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-md-02.json` |
| use-location | registry:hook | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/use-location.json` |
| use-weather | registry:hook | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/use-weather.json` |
| weather-utils | registry:lib | — | `npx shadcn@latest add https://wigggle-ui.vercel.app/r/weather-utils.json` |

## For AI agents

```text
You are adding components from @wigggle-ui to a shadcn-compatible project.
1. Read this file (https://sh4dcn.vercel.app/md/wigggle-ui.md) for the component list.
2. Fetch the machine-readable index: https://wigggle-ui.vercel.app/r/registry.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.vercel.app/json (library slug: wigggle-ui).
```
