inspira-ui
Inspira UI - Animated Vue/Nuxt Component Library
Inspira UI is a collection of 120+ reusable, animated components powered by TailwindCSS v4, motion-v, GSAP, and Three.js — crafted to help ship beautiful Vue and Nuxt applications faster.
Table of Contents
When to Use This Skill
Use Inspira UI when building:
- Animated landing pages with hero sections, testimonials, and effects
- Modern web applications requiring 3D visualizations and interactive elements
- Marketing sites with eye-catching backgrounds and text animations
- Portfolio sites with image galleries, carousels, and showcase effects
- Interactive experiences with custom cursors, special effects, and particle systems
- Vue 3 or Nuxt 4 projects requiring production-ready animated components
Key Benefits:
- 120+ copy-paste components (not a traditional npm library)
- Full TypeScript support with Vue 3 Composition API
- TailwindCSS v4 with OkLch color space
- Responsive and mobile-optimized
- Free and open source (MIT license)
Quick Start
1. Install Core Dependencies
# Required for all components
bun add -d clsx tailwind-merge class-variance-authority tw-animate-css
bun add @vueuse/core motion-v
# Optional: For 3D components (Globe, Cosmic Portal, etc.)
bun add three @types/three
# Optional: For WebGL components (Fluid Cursor, Neural Background, etc.)
bun add ogl
2. Setup CN Utility
Create lib/utils.ts:
import { type ClassValue, clsx } from "clsx";
import { twMerge } from "tailwind-merge";
export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs));
}
3. Configure CSS Variables
Add to your main.css. See references/SETUP.md for complete CSS configuration with OkLch colors.
4. Verify Setup
./scripts/verify-setup.sh
5. Copy Components
Browse inspira-ui.com/components, copy what you need into components/ui/.
Component Selection Workflow
What type of effect do you need?
-
Background Effects → Aurora, Cosmic Portal, Particles, Neural Background
-
Text Animations → Morphing Text, Glitch, Hyper Text, Sparkles Text
-
3D Visualizations → Globe, 3D Carousel, Icon Cloud, World Map
- Dependencies:
bun add three @types/three - See: references/components-list.md#visualization
- Dependencies:
-
Interactive Cursors → Fluid Cursor, Tailed Cursor, Smooth Cursor
- Dependencies:
bun add ogl(for WebGL cursors) - See: references/components-list.md#cursors
- Dependencies:
-
Animated Buttons → Shimmer, Ripple, Rainbow, Gradient
- No extra dependencies
- See: references/components-list.md#buttons
-
Special Effects → Confetti, Meteors, Neon Border, Glow Border
For complete implementation details (props, full code, installation): Fetch https://inspira-ui.com/docs/llms-full.txt - LLM-optimized documentation with structured props tables and working code examples.
Core Usage Patterns
Pattern 1: Animated Landing Page
<template>
<AuroraBackground>
<Motion
:initial="{ opacity: 0, y: 40, filter: 'blur(10px)' }"
:while-in-view="{ opacity: 1, y: 0, filter: 'blur(0px)' }"
:transition="{ delay: 0.3, duration: 0.8, ease: 'easeInOut' }"
class="relative flex flex-col items-center gap-4 px-4"
>
<div class="text-center text-3xl font-bold md:text-7xl">
Your amazing headline
</div>
<ShimmerButton>Get Started</ShimmerButton>
</Motion>
</AuroraBackground>
</template>
<script setup lang="ts">
import { Motion } from "motion-v";
import AuroraBackground from "~/components/ui/AuroraBackground.vue";
import ShimmerButton from "~/components/ui/ShimmerButton.vue";
</script>
Pattern 2: Props with TypeScript Interfaces
<script setup lang="ts">
// ALWAYS use interface-based props
interface Props {
title: string;
count?: number;
variant?: "primary" | "secondary";
}
const props = withDefaults(defineProps<Props>(), {
count: 0,
variant: "primary",
});
</script>
Pattern 3: Explicit Imports (Critical for Vue.js Compatibility)
<script setup lang="ts">
// ALWAYS include explicit imports even with Nuxt auto-imports
import { ref, onMounted, computed } from "vue";
import { useWindowSize } from "@vueuse/core";
const { width } = useWindowSize();
</script>
Pattern 4: WebGL Component Cleanup
<script setup lang="ts">
import { onUnmounted } from "vue";
let animationFrame: number;
let renderer: any;
onUnmounted(() => {
// CRITICAL: Clean up WebGL resources to prevent memory leaks
if (animationFrame) cancelAnimationFrame(animationFrame);
if (renderer) renderer.dispose();
});
</script>
Pattern 5: Client-Only Wrapper (Nuxt)
<template>
<ClientOnly>
<FluidCursor />
</ClientOnly>
</template>
Critical Pitfalls to Avoid
1. Accessibility Bug (CRITICAL)
The original Inspira UI docs have --destructive-foreground set to the same color as --destructive, making text invisible. Use the corrected value:
:root {
--destructive: oklch(0.577 0.245 27.325);
--destructive-foreground: oklch(0.985 0 0); /* CORRECTED */
}
2. Missing CSS Imports
/* REQUIRED in main.css */
@import "tailwindcss";
@import "tw-animate-css"; /* Often forgotten! */
3. Wrong Props Syntax
// DON'T: Object syntax
const props = defineProps({ title: { type: String } });
// DO: Interface syntax
interface Props { title: string; }
const props = defineProps<Props>();
4. Three.js Without ClientOnly (Nuxt)
<!-- WRONG: Will fail during SSR -->
<GithubGlobe :markers="markers" />
<!-- CORRECT -->
<ClientOnly>
<GithubGlobe :markers="markers" />
</ClientOnly>
5. Using Enums Instead of as const
// DON'T: TypeScript enums
enum ButtonVariant { Primary = "primary" }
// DO: as const objects
const ButtonVariants = { Primary: "primary" } as const;
Token Efficiency
Average Token Savings: ~65%
- Without skill: ~15k tokens (trial-and-error with setup)
- With skill: ~5k tokens (direct implementation)
Errors Prevented: 13+ common issues including:
- Critical accessibility bug (destructive-foreground)
- TailwindCSS v4 CSS variables misconfiguration
- Missing
@import "tw-animate-css" - Motion-V setup issues
- Three.js/OGL without ClientOnly
- Props typed with object syntax instead of interfaces
- Missing explicit imports
Detailed Documentation
For complete setup with all CSS variables: references/SETUP.md
For all 120+ components with dependencies: references/components-list.md
For troubleshooting common issues: references/TROUBLESHOOTING.md
For TypeScript patterns and conventions: references/CODE_PATTERNS.md
Keywords
Frameworks: Vue, Vue 3, Nuxt, Nuxt 4, Composition API, script setup
Styling: TailwindCSS v4, OkLch, CSS variables, dark mode
Animation: motion-v, GSAP, Three.js, WebGL, OGL, canvas
Components: aurora background, shimmer button, morphing text, 3D globe, fluid cursor, confetti, neon border, icon cloud, flip card, particles
Use Cases: landing pages, hero sections, animated backgrounds, interactive UI, marketing sites, portfolios, 3D websites
Problems Solved: Vue animations, Nuxt animations, animated components, 3D effects, particle effects, modern UI effects
Resources
- Official Documentation: https://inspira-ui.com/docs
- LLM-Optimized Docs: https://inspira-ui.com/docs/llms-full.txt (complete props, code examples, installation)
- Component Gallery: https://inspira-ui.com/components
- GitHub Repository: https://github.com/unovue/inspira-ui
- Discord Community: https://discord.gg/Xbh5DwJRc9
Production Status: ✅ Production-Ready Token Efficiency: ✅ ~65% savings Error Prevention: ✅ 13+ common issues prevented Last Updated: 2025-11-12
More from xingyu4j/skills
vben
Vue Vben Admin monorepo 项目专家。适用于 Vben Admin 项目中的页面开发、组件使用、路由配置、API 定义、状态管理、适配器模式、国际化、权限控制等任务。支持所有应用变体(web-antd、web-ele、web-naive)和共享包。
24ruoyi-vue-pro
芋道源码 ruoyi-vue-pro 后端框架专家。适用于 Spring Boot 单体项目中的模块开发、Controller/Service/Mapper/DO/VO 编写、MyBatis Plus 数据访问、权限控制、多租户、数据权限、Excel 导出、定时任务等后端开发任务。
16using-superpowers
Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
15vue
Vue 3 Composition API、script setup 宏、响应式系统和内置组件。适用于编写 Vue SFC、defineProps/defineEmits/defineModel、侦听器或使用 Transition/Teleport/Suspense/KeepAlive。
15web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
13pinia
Pinia 官方 Vue 状态管理库,类型安全且可扩展。适用于定义 store、处理 state/getters/actions 或在 Vue 应用中实现 store 模式。
13