Migration

From Ant Design

Ant Design is dense and comprehensive — great for internal tools, heavy for product surfaces. Nova gives you fewer components with cleaner defaults.

Overview

Expect a smaller surface. Nova won't ship every enterprise widget Ant does; the ones we do ship are more opinionated and less configurable.

Install alongside

Add Nova without removing your current library. Migrate page-by-page.

tsx
bun add @novix-ui/react
# incremental: keep antd installed during migration

Component mapping

FromNovaNotes
ButtonButtonprimary/default/dashed/link → primary/secondary/outline/link.
SpaceTailwind gap-*Use flex/grid + gap utilities.
CardCardCleaner header/footer composition.
InputInput + LabelIcon slots via leadingIcon/trailingIcon.
message / notificationToast recipeUse sonner + Nova styles.

Code diff

Before

tsx
<Button type="primary" icon={<SearchOutlined />}>
Search
</Button>

After (Nova)

tsx
import { Button } from "@novix-ui/react";
import { Search } from "lucide-react";
 
<Button leadingIcon={<Search />}>Search</Button>

Common traps

  • Ant's ConfigProvider provides global config; Nova relies on CSS tokens instead. Delete the provider once fully migrated.
  • Ant Table has a huge surface. Nova ships a Data Tables recipe — pick the columns you actually need before rewriting.
  • Ant's default font-size is 14px; Nova is 15–16px in most surfaces. Expect a subtle typography shift.