Usage
Generate Component
bashnpx devfund@latest <variant>
Variants: card | glass | minimal | modern | modal
Creates: components/devfund/{ComponentName}.tsx
Import & Use
tsximport CardPaymentQR from '@/components/devfund/CardPaymentQR'; export default function App() { return <CardPaymentQR username="johndoe" />; }
Props
| Prop | Type | Required | Description |
|---|---|---|---|
username | string | Yes | User's Devfund profile username |
Component States
Loading ā Shows spinner while fetching data
Success ā Displays QR code and payment options
Error ā Shows friendly error message if user not found
Example Uses
In a Blog Post
tsxexport default function BlogPost() { return ( <> <article>...</article> <section className="mt-12 pt-8 border-t"> <h3>Support My Work</h3> <CardPaymentQR username="yourname" /> </section> </> ); }
In a Profile Page
tsxexport default function Profile({ username }: { username: string }) { return ( <div> <h1>{username}'s Profile</h1> <GlassPaymentQR username={username} /> </div> ); }
Multiple Variants
tsxexport default function ShowcaseAllVariants() { const username = "yourname"; return ( <div className="grid md:grid-cols-5 gap-4"> <CardPaymentQR username={username} /> <GlassPaymentQR username={username} /> <MinimalPaymentQR username={username} /> <ModernPaymentQR username={username} /> <ModalPaymentQR username={username} /> </div> ); }
TypeScript
Full type support:
tsximport CardPaymentQR from '@/components/devfund/CardPaymentQR'; interface Props { username: string; } export default function Payment({ username }: Props) { return <CardPaymentQR username={username} />; }
Features
ā
Automatic data fetching
ā
Error handling
ā
Loading states
ā
Timeout protection
ā
ARIA labels
ā
Mobile responsive