npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mailto-clipboard

v1.0.0

Published

convert all mailto links to copy-to-clipboard links

Downloads

6

Readme

Made by @kilianvalkhof

Other projects:

  • 💻 Polypane - Develop responsive websites and apps twice as fast on multiple screens at once
  • 🖌️ Superposition - Kickstart your design system by extracting design tokens from your website
  • 🗒️ FromScratch - A smart but simple autosaving scratchpad

mailto-clipboard npm npm-downloads

Automatically rewrites all mailto: links on a page to copy the email address on click.

Inspired by I hate mailto (which you should BUY) by @tkmadeit and made with his blessing.

Installation

Install using npm install mailto-clipboard.

Build from source

checkout the repository then run

yarn
yarn build

and the builds will be in the dist folder.

Usage

The module is provided in two formats: an ECMAScript (ES) module in dist/index.esm.js, and a Universal Module Definition (UMD) in dist/index.umd.js. This enables support for the following runtime environments:

es6:

import MailtoClipboard from 'mailto-clipboard';

// after document has loaded
MailtoClipboard();

Browser as directly loaded module

<script type="module">
  import MailtoClipboard from './mailto-clipboard/dist/index.esm.js';

  MailtoClipboard();
</script>

Browser as global variable

<script src="./mailto-clipboard/dist/index.umd.js"></script>

<script>
  MailtoClipboard();
</script>

re-applying when the page content changed

To re-apply when the page content has changed, call MailtoClipboard() again. Any options you pass will be updated, the rest of the options will be preserved from the previous invocation.

removing MailtoClipboard

To remove the MailtoClipboard functionality, call MailtoClipboard.destroy(). This will revert any original titles, remove the event listeners and the tooltip.

Configuration

MailtoClipboard can be configured by passing it a configuration object. Any undefined values will use the default values below.

MailtoClipboard({
  // if true, injects CSS to style. If set to false, bring your own design.
  defaultStyle: true,

  // Show tooltips on hover
  showTooltip: true,
  // Text to show on hover. HTML supported, {email} will be replaced with the email value
  tooltipText: `Copy "{email}" to clipboard`,
  // Position of the tooltip. Can be "top" or "bottom"
  position: 'bottom',

  // show a confirmation message after click
  showConfirmation: true,
  // Text to show on click. HTML supported, {email} will be replaced with the email value
  confirmationText: `"{email}" copied to clipboard`,
  // Timeout for when the tooltip should disappear automatically. Set to false to only hide on mouse out.
  confirmationTimeout: 1000
});

Styling

If you set defaultStyle to false, no styling will be supplied to the tooltip. Positioning of the tooltip will be done automatically, centered horizontally above or below the element.

To style the tooltip, use these classes:

/* tooltip element */
.MailtoClipboard-tooltip {
}

/* tooltip nib */
.MailtoClipboard-tooltip::before {
}

/* active (visible) tooltip */
.MailtoClipboard-tooltip-active

/* tooltip should be shown above element */
.MailtoClipboard-tooltip-top {
}

/* tooltip should be shown below element */
.MailtoClipboard-tooltip-active {
}

License

mailto-clipboard is ISC licensed.