π§π«π€ Lightweight email obfuscator React component.
Until you hover or focus on the link, the @ symbol is stripped out and rendered using ::after css pseudo-element, and the href attribute value is replaced with #.
npm install --save react-obfuscate-emailimport { Email } from "react-obfuscate-email";
export default function SomeComponent() {
return <Email email="[email protected]">π§ Email me!</Email>;
}Inspect the element without hovering or focusing on it to see what's actually rendered:
<Email
email="[email protected]"
body="You rock!"
subject="Hi π"
cc={["[email protected]", "[email protected]"]}
bcc={["[email protected]"]}
>
π§ Click me!
</Email>You can pass any children to control the displayed text of the link:
<Email email="[email protected]">π§ Click me!</Email>You can pass any valid a tag attributes, like target or title:
<Email
email="[email protected]"
title="π§ Email me!"
target="_blank"
rel="noopener noreferrer"
>
π§ Email me!
</Email>| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| string | Yes | β | E-mail recipient address | |
| children | ReactNode | No | Content to display in the link | |
| subject | string | No | "" | Subject of e-mail |
| body | string | No | "" | Body of e-mail |
| cc | string[] | No | [] | Carbon copy e-mail addresses |
| bcc | string[] | No | [] | Blind carbon copy e-mail addresses |
| ...props | AnchorHTMLAttributes | No | β | Any valid tag attribute (e.g. target, rel, title) |
The component is written in TypeScript and type definitions are included.
Give a βοΈ if you like this project!