A professional customizable React Captcha component with Canvas and Math modes, animations with Framer Motion, and toast notifications via Sonner.
npm install react-secure-captchabash
npm install react-secure-captcha framer-motion sonner
`
Usage Example
`ts
"use client";
import React from "react";
import { Captcha } from "react-secure-captcha";
import { Toaster } from "sonner";
export default function CaptchaExample() {
const handleValidation = (isValid: boolean) => {
console.log("Captcha valid?", isValid);
};
return (
<>
type="canvas"
length={6}
onValidate={handleValidation}
placeholder="Enter captcha here"
/>
>
);
}
`
Props
| Prop | Type | Description | Default |
| ------------------- | ---------------------------- | ---------------------------------------------------- | ------------------- |
| type | "canvas" \| "math" | Captcha type (Canvas text captcha or Math question) | "canvas" |
| length | number | Number of characters in the captcha (Canvas only) | 6 |
| width | number | Width of the captcha display | 180 |
| height | number | Height of the captcha display | 50 |
| fontSize | number | Font size for the captcha text | 28 |
| fontFamily | string | Font family for captcha text | "Arial" |
| backgroundColor | string | Background color of captcha | "#f9f9f9" |
| textColor | string | Text color for captcha | "#333" |
| noise | number | Amount of noise (dots) on Canvas Captcha | 30 |
| placeholder | string | Input field placeholder text | "Enter captcha" |
| errorMessage | string | Error message shown on invalid captcha | "Invalid captcha" |
| successMessage | string | Success message shown on valid captcha | "Captcha valid" |
| autoValidate | boolean | Automatically validate input on complete input | true |
| animationDuration | number | Duration of animations in seconds | 0.4 |
| onValidate | (isValid: boolean) => void | Callback fired after validation, with success status | undefined |
| className | string | Customize Tailwind Css | undefined` |