Skip to content

Migrate from react-circle-flags

Quick guide for migrating from react-circle-flags to @sankyu/react-circle-flags.

Bundle Size

Much smaller with tree-shaking (~950 bytes per flag vs. 200 KB+)

TypeScript

Full type definitions with autocomplete for all 400+ flags

Modern

JSX automatic runtime, React 19 ready, zero dependencies

Quick migration with minimal changes — compatible component API:

import { CircleFlag } from 'react-circle-flags'
<CircleFlag countryCode="us" height="35" />
  • ✅ Drop-in replacement, same countryCode prop
  • ✅ Loads SVGs from CDN (~2 KB bundle)
  • ⚠️ Requires network for SVG loading
  • ✅ Also supports code prop for backward compatibility

Best performance — bundled SVGs, automatic tree-shaking:

import { CircleFlag } from 'react-circle-flags'
<CircleFlag countryCode="us" height="35" />
<CircleFlag countryCode="cn" height="35" />
  • ✅ Automatic tree-shaking (~950 bytes per flag)
  • ✅ No network requests, works offline
  • ✅ TypeScript autocomplete
  • ✅ Synchronous rendering, no loading states
ApproachBundle SizeNetworkOffline
react-circle-flags~200 KB+None
CircleFlag (CDN)~2 KBPer flag
Named imports (3 flags)~2.8 KBNone
Terminal window
npm uninstall react-circle-flags
npm install @sankyu/react-circle-flags

Update imports:

# Path 1: API-compatible
import { CircleFlag } from 'react-circle-flags'
import { CircleFlag } from '@sankyu/react-circle-flags'
# Path 2: Named imports (recommended)
import { CircleFlag } from 'react-circle-flags'
import { FlagUs, FlagCn } from '@sankyu/react-circle-flags'

Update props:

<CircleFlag
countryCode="us"
height="35" // string
height={35} // number
/>

If country codes are determined at runtime:

import { CircleFlag } from '@sankyu/react-circle-flags'
function UserFlag({ code }: { code: string }) {
return <CircleFlag countryCode={code} height={32} />
}

Bundle: ~2 KB

Featurereact-circle-flags@sankyu/react-circle-flags
Default import style<CircleFlag />Named exports or CircleFlag
Prop formatheight="35"height={35}
Tree-shaking❌ Limited✅ Excellent
TypeScript❌ No types✅ Full types
Bundle size (3 flags)~200 KB~2.8 KB
Dynamic loading❌ No✅ CircleFlag (CDN)
Offline support✅ Yes✅ Yes (named imports)