# uipkge > Open-source UI registry for Vue 3 / Nuxt and React / Next.js. shadcn(-vue) compatible. Components copy into your project -- you own the source. No npm packages, no semver, no lock-in. ## Install (Vue / Nuxt -- canonical target) Bootstrap (Tailwind v4 OKLCH tokens, cn() helper, useTheme composable): ``` npx shadcn-vue@latest add https://uipkge.dev/r/vue/init.json ``` Add any component: ``` npx shadcn-vue@latest add https://uipkge.dev/r/vue/.json ``` Or register `"@uipkge": "https://uipkge.dev/r/vue/{name}.json"` in components.json, then `npx shadcn-vue@latest add @uipkge/`. ## Install (React / Next.js) ``` npx shadcn@latest add https://uipkge.dev/r/react/.json ``` ## Components - [accordion](https://uipkge.dev/vue/components/accordion) -- Vertically stacked, collapsible panels — one or many open at a time. Use for FAQs, settings groups, and any place where space is tight but content needs to stay browsable. Built on reka-ui with smooth animation and full keyboard support. - [advance-select](https://uipkge.dev/vue/components/advance-select) -- Searchable, async-capable select with keyboard navigation, multi-select, and option grouping. Drop in when the native `` with proper a11y. - [float-label](https://uipkge.dev/vue/components/float-label) -- Floating label wrapper for any input element. The label floats up when the input is focused or has a value. Wrap it around any input, select, or textarea. Supports required indicator and disabled state. - [form](https://uipkge.dev/vue/components/form) -- Zod-first form block built on TanStack Vue Form. Wires field labels, descriptions, error messages, and validation together; bind a field once and the rest is automatic. - [funnel-chart](https://uipkge.dev/vue/components/funnel-chart) -- Funnel chart wrapper around Apache ECharts. Conversion-stage visualization with inverted and percentage-label variants. Theme-aware via registry tokens. - [gauge-chart](https://uipkge.dev/vue/components/gauge-chart) -- Gauge / speedometer wrapper around Apache ECharts. Threshold-banded stoplight (teal/amber/red), progress-ring, and multi-needle variants. Theme-aware via registry tokens. - [gradient-text](https://uipkge.dev/vue/components/gradient-text) -- Applies a CSS gradient as text color via background-clip: text. Supports preset gradients (sunset, ocean, forest, fire, candy, aurora, rainbow, gold, neon, grape), custom from/to colors with a direction, a fully custom CSS gradient string, and an animated mode that shifts the gradient. - [graph-chart](https://uipkge.dev/vue/components/graph-chart) -- Network / graph chart wrapper around Apache ECharts. Force-directed, circular, or manual layouts; directed or undirected edges; optional category coloring. Useful for service maps, social graphs, knowledge bases. - [grid](https://uipkge.dev/vue/components/grid) -- Responsive CSS grid container with `cols`, `gap`, and breakpoint props. A small but useful primitive for laying out card grids, KPI tiles, and form sections without writing repetitive Tailwind classes. - [heatmap](https://uipkge.dev/vue/components/heatmap) -- Grid heatmap wrapper around Apache ECharts with visualMap color ramp. Theme-aware via registry tokens. - [highlight](https://uipkge.dev/vue/components/highlight) -- Highlights matching substrings in text for search results. Supports string or regex queries, case-sensitive and whole-word matching, custom highlight tag, and a max-highlight cap. - [hover-card](https://uipkge.dev/vue/components/hover-card) -- Rich popover triggered by hover/focus instead of click. Use for inline previews — user cards on @mentions, link previews, KPI explanations. Built on reka-ui with a configurable open/close delay. - [icon-box](https://uipkge.dev/vue/components/icon-box) -- Small framed icon used inside cards, list items, and stat tiles. Three variants (`primary`, `muted`, `custom`), two shapes (`rounded`, `circle`), and three sizes. Drop a Lucide icon in, get a polished badge. - [icon-transition](https://uipkge.dev/vue/components/icon-transition) -- Animated icon swap for click acknowledgements — copy → check, bookmark → bookmark-filled, follow → follower. Pass two icon components and an async `action`; clicking runs the action then springs the active icon in. Auto-reverts after `resetAfter` ms (default 1500), or pass `0` to keep the active icon and call the exposed `reset()` method to flip it back. Renders as a `