Usage

Generate Component

bash
npx devfund@latest <variant>

Variants: card | glass | minimal | modern | modal

Creates: components/devfund/{ComponentName}.tsx

Import & Use

tsx
import CardPaymentQR from '@/components/devfund/CardPaymentQR';

export default function App() {
  return <CardPaymentQR username="johndoe" />;
}

Props

PropTypeRequiredDescription
usernamestringYesUser'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

tsx
export 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

tsx
export default function Profile({ username }: { username: string }) {
  return (
    <div>
      <h1>{username}'s Profile</h1>
      <GlassPaymentQR username={username} />
    </div>
  );
}

Multiple Variants

tsx
export 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:

tsx
import 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

Explore Variants →