A web component that uses the Web Share API to share a web site, falling back (on Desktop usually) to Copy to Clipboard.
- Demo
- In use on the registration flow for
conf.11ty.dev
.
- In use on the registration flow for
- Blog post
- Inspired by How to let the user share the website they are on—Thomas Steiner (web.dev)
- Defaults to copy URL when Web Share API is not available.
- Optionally override with your own copy-able content.
- Custom button text when Web Share API is not available.
You can install via npm
(@zachleat/webcare-webshare
) or download the webcare-webshare.js
JavaScript file manually.
npm install @zachleat/webcare-webshare --save
Add webcare-webshare.js
to your site’s JavaScript assets.
Use share-text
and share-url
per the Web Share API. The button is un-disabled when initialized.
<webcare-webshare share-text="I am going to the 11ty Conference! #11ty #11tyConf" share-url="https://conf.11ty.dev/">
<button disabled>Share your ticket!</button>
</webcare-webshare>
Copy to clipboard workflow only. Use the label-copy
(Before) and label-after-copy
(After) attributes.
<webcare-webshare share-text="I am going to the 11ty Conference! #11ty #11tyConf" share-url="https://conf.11ty.dev/" label-copy="📋 Copy your ticket URL" label-after-copy="✅ Copied to Clipboard">
<button disabled>Share your ticket!</button>
</webcare-webshare>
Copy to clipboard workflow only. Use copy-text
to override share-url
as the default content that is copied when using Copy to Clipboard.
<webcare-webshare share-text="I am going to the 11ty Conference! #11ty #11tyConf" share-url="https://conf.11ty.dev/" copy-text="Go to https://conf.11ty.dev/">
<button disabled>Share your ticket!</button>
</webcare-webshare>