HeroUI Technical Reference - AI-Optimized
Critical Context
- Rebrand Warning: NextUI became HeroUI in January 2025 (corporate rebrand, same library)
- Migration Reality: Find-and-replace operation taking 30-60 minutes
- Current Version: v2.8.4 (September 2025)
- Bundle Impact: 15-30kb gzipped + mandatory 30kb+ Framer Motion dependency
Configuration That Works in Production
Installation & Setup
npx heroui-cli@latest init # Preferred over manual config
Tailwind Config (Working Example)
const { heroui } = require("@heroui/react");
module.exports = {
plugins: [
heroui({
themes: {
light: { colors: { primary: "#0072f5", secondary: "#7828c8" } },
dark: { colors: { primary: "#0072f5", secondary: "#9353d3" } }
}
})
]
};
Framework Compatibility
- Next.js: App Router + Pages Router (documented, tested)
- Vite: Works without surprises
- Remix/Astro: Functional but underdocumented
Critical Warnings & Failure Modes
Production Breaking Issues
Next.js 14.2 Dark Mode Failure
- Symptom: White text on white background (invisible components)
- Cause: Provider wrapper changed during Next.js upgrade
- Impact: Complete UI failure, weekend debugging session
- Solution: Check framework guide for provider placement
Framer Motion Dependency Trap
- Reality: 30kb+ mandatory even without animations
- False Promise: Claims of "lazy-loading" still include full Motion bundle
- Detection: Use webpack-bundle-analyzer to verify chunk sizes
Import Strategy Critical
- Bundle Killer: Global imports bloat bundle significantly
- Required: Individual component imports for tree-shaking
- Verification: Monitor bundle size during development
Component Coverage & Limitations
Available Components (~50 total)
- Forms: Input, Select, validation (works without external form libraries)
- Navigation: Navbar, Breadcrumbs, Tabs
- Data: Tables (basic CRUD, not complex data operations)
- Layout: Divider, Spacer (minimal - expect to build custom layouts)
Missing Components
- Complex data grids (requires TanStack Table integration)
- Advanced date/time pickers
- Specialized enterprise components
Performance Specifications
Bundle Size Reality
Component Set | Size (gzipped) | vs Competitors |
---|---|---|
Basic HeroUI | 15-25kb | MUI: 50-80kb+ |
+ Framer Motion | +30kb | Unavoidable |
vs CSS-in-JS libs | No runtime overhead | Emotion: Runtime injection penalty |
Accessibility Implementation
- React Aria Integration: Real WCAG compliance, not marketing
- Keyboard Navigation: Tab, Enter, Arrow keys function correctly
- Screen Reader Support: Proper ARIA attributes, meaningful announcements
- Focus Management: Works with nested modals (audit-tested)
- Learning Curve: Requires understanding React Aria patterns vs simple onClick handlers
Resource Requirements
Development Time Investment
- Migration from NextUI: 30-60 minutes (find-and-replace)
- Migration from Chakra UI: 3-4 days (TypeScript error resolution)
- Accessibility Audit Fix: 2 hours for component swaps (vs weeks of custom implementation)
- Dark Mode Setup: Works out-of-box (vs afternoon of manual configuration)
Expertise Requirements
- Mandatory: Tailwind CSS knowledge (library assumes proficiency)
- Recommended: React Aria pattern understanding for custom components
- Optional: Framer Motion (if using animations)
Decision Support Matrix
Choose HeroUI When:
- Bundle size is critical concern
- Accessibility compliance required without expertise investment
- Tailwind CSS already in stack
- Need reliable TypeScript support
- Prefer CSS classes over CSS-in-JS runtime
Avoid HeroUI When:
- Need 100+ components out-of-box
- Bundle size irrelevant (enterprise constraints)
- Team unfamiliar with Tailwind
- Require complex data grid functionality
- Cannot accept 30kb+ Motion dependency
Competitive Analysis
Factor | HeroUI | Material-UI | Chakra UI | Ant Design |
---|---|---|---|---|
Bundle Size | 15-30kb + Motion | 50-80kb+ | ~40kb | 100kb+ |
Runtime Overhead | None (CSS) | CSS-in-JS injection | CSS-in-JS injection | CSS-in-JS injection |
Accessibility | React Aria (excellent) | Inconsistent | Basic ARIA | Basic ARIA |
Component Count | ~50 | 100+ | ~40 | 200+ |
TypeScript Quality | Native support | Good | Good | Adequate |
Learning Curve | Easy (if Tailwind known) | Steep | Easy | Medium |
Community & Support Indicators
- GitHub Activity: 26k+ stars, maintainer responsive
- Release Frequency: Regular updates
- Community Health: Active Discord, responsive GitHub discussions
- Migration Support: NextUI community successfully migrated
- Sustainability: Open Collective funding, transparent development
Common Troubleshooting
Import Errors During Migration
# Change package references
@nextui-org/* → @heroui/*
Bundle Analysis Commands
npm install --save-dev webpack-bundle-analyzer
# Check for Motion chunks in analysis
Dark Mode Provider Issues
- Verify provider wrapper placement after Next.js upgrades
- Check framework-specific integration guides
Resource Links for Implementation
- Documentation - Actually functional examples
- GitHub - Active issue tracking
- Discord - Fast community support
- Migration Guide - NextUI transition
- Tailwind Variants - Theming system understanding
- React Aria Docs - Accessibility patterns
Breaking Points & Thresholds
- Component Count: ~50 available, insufficient for complex enterprise apps
- Bundle Tolerance: 30kb+ Motion overhead non-negotiable
- Framework Support: Next.js/Vite well-documented, others require configuration research
- Customization Limits: Constrained by Tailwind ecosystem, extensive custom styling may require alternative solutions
Useful Links for Further Investigation
Resources That Don't Waste Your Time
Link | Description |
---|---|
HeroUI Documentation | Documentation that doesn't completely suck, rare for component libraries. Examples work when you copy-paste them instead of throwing errors. Search finds shit you're looking for. API reference is actually complete instead of missing critical props. |
GitHub Repository | 26k+ stars, maintainer responds to issues instead of disappearing into the void. Check issues before using components - saved me 4 hours debugging a Modal focus trap bug that was already reported. |
Component Storybook | Interactive component playground. Use this to figure out APIs before diving into docs. Code examples that actually compile instead of breaking with missing imports. Skip if you're in a hurry to ship. |
NextUI to HeroUI Migration Guide | Migration from NextUI. Mostly find-and-replace package names, took me like 45 minutes including fixing broken imports. Actually, might've been an hour - time flies when you're fighting import errors. |
CLI Installation | `npx heroui-cli@latest init` works better than manual config hell. Sets up Tailwind without breaking your existing styles. |
Next.js Setup Guide | Actually documented Next.js integration. Covers App Router and Pages Router without handwaving. They tested this shit. |
Vite Configuration | Vite setup that doesn't assume you're a Vite expert. Good for people who just want components to work. |
Discord Community | Active Discord with people who actually use this shit in production. Get answers in minutes instead of waiting days on Stack Overflow. Way better than posting questions that get ignored. |
GitHub Discussions | Feature requests and complex questions. Maintainer responds here instead of ghosting like 90% of open source maintainers. |
Stack Overflow | Still tagged "nextui" but covers HeroUI. Good for complex problems when Discord can't help and you need detailed solutions. |
Tailwind Variants Docs | Essential if you want to understand how theming works instead of cargo-culting examples. Actually solves CSS conflicts instead of pretending to. |
React Aria Documentation | Deep dive into accessibility patterns. Read this if you need custom components that don't break screen readers. Warning: it's dense as fuck. |
Tailwind CSS Docs | Required reading if you plan to customize anything. HeroUI assumes you know Tailwind, won't hold your hand. |
HeroUI Pro | Paid component collection. 210+ components for when the free ones aren't enough. Worth it if you're building complex shit and don't want to spend weeks building components. Expensive, so justify the cost first. |
Figma Design Kit | Official Figma components. Kit is okay, not amazing but better than building from scratch. Useful for design handoffs if your designers give a shit about design systems. |
HeroUI Native | React Native version. Still experimental as hell, probably not production-ready. Worth watching if you need mobile components that don't suck. |
Contributing Guide | How to contribute without pissing off maintainers. Well-written if you want to fix bugs or add missing features. |
Open Collective - Support HeroUI | Support maintainers so they don't abandon the project. Transparent funding, good if you're using this in production and want it to survive. |
Related Tools & Recommendations
Migrating CRA Tests from Jest to Vitest
integrates with Create React App
Stop Stripe from Destroying Your Serverless Performance
Cold starts are killing your payments, webhooks are timing out randomly, and your users think your checkout is broken. Here's how to fix the mess.
Supabase + Next.js + Stripe: How to Actually Make This Work
The least broken way to handle auth and payments (until it isn't)
Claude API + Next.js App Router: What Actually Works in Production
I've been fighting with Claude API and Next.js App Router for 8 months. Here's what actually works, what breaks spectacularly, and how to avoid the gotchas that
Migrate from Webpack to Vite Without Breaking Everything
Your webpack dev server is probably slower than your browser startup
Vite + React 19 + TypeScript + ESLint 9: Actually Fast Development (When It Works)
Skip the 30-second Webpack wait times - This setup boots in about a second
TypeScript - JavaScript That Catches Your Bugs
Microsoft's type system that catches bugs before they hit production
Should You Use TypeScript? Here's What It Actually Costs
TypeScript devs cost 30% more, builds take forever, and your junior devs will hate you for 3 months. But here's exactly when the math works in your favor.
JavaScript to TypeScript Migration - Practical Troubleshooting Guide
This guide covers the shit that actually breaks during migration
Remix - HTML Forms That Don't Suck
Finally, a React framework that remembers HTML exists
React Router v7 Production Disasters I've Fixed So You Don't Have To
My React Router v7 migration broke production for 6 hours and cost us maybe 50k in lost sales
Storybook - Build Components Without Your App's Bullshit
The tool most frontend teams end up using for building components in isolation
Thunder Client Migration Guide - Escape the Paywall
Complete step-by-step guide to migrating from Thunder Client's paywalled collections to better alternatives
Fix Prettier Format-on-Save and Common Failures
Solve common Prettier issues: fix format-on-save, debug monorepo configuration, resolve CI/CD formatting disasters, and troubleshoot VS Code errors for consiste
Fix Astro Production Deployment Nightmares
integrates with Astro
Which Static Site Generator Won't Make You Hate Your Life
Just use fucking Astro. Next.js if you actually need server shit. Gatsby is dead - seriously, stop asking.
Astro - Static Sites That Don't Suck
integrates with Astro
Figma's Code Generation Is Garbage (And Here's What Actually Works)
Stop Wasting Money on Broken Plugins - Use Tools That Generate Real Code
Figma Alternatives: Because $20/Month Is Fucking Expensive
integrates with Figma
Figma Gets Lukewarm Wall Street Reception Despite AI Potential - August 25, 2025
Major investment banks issue neutral ratings citing $37.6B valuation concerns while acknowledging design platform's AI integration opportunities
Recommendations combine user behavior, content similarity, research intelligence, and SEO optimization