Skip to content

Effeilo/browserux-share-button

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EN | FR

logo BrowserUX Share Button

BrowserUX Share Button

A modern solution to enable seamless content sharing across all devices and platforms.

BrowserUX Share Button is a lightweight, accessible, and customizable Web Component that simplifies sharing URLs via the native Web Share API, when available, or a responsive fallback modal. It supports multiple platforms (Email, X, WhatsApp, etc.), automatically retrieves share metadata, and offers full localization, visual customization, and framework compatibility.


npm version unpkg

Features

  • 📱 Uses the native Web Share API when available (mobile, PWA)
  • 🗂 Falls back to a rich modal with platform links on desktop
  • 🔗 Copy-to-clipboard button with app icon, title, and URL preview
  • 🌐 8 built-in platforms: Email, X, Facebook, WhatsApp, SMS, LinkedIn, Telegram, Reddit
  • 🔌 Custom platform registry via ShareButton.registerPlatform()
  • 🧠 Auto-resolves share data from document.title, <meta>, and Web App Manifest
  • 🌍 Built-in i18n for 12 languages, auto-detected from <html lang>
  • ♿ Accessible: keyboard navigation, focus trapping, focus restoration
  • 📡 7 custom events: bux:share-success, bux:share-abort, bux:copy-success, and more
  • 🖱 Programmatic API: share(), setShareData(), openFallback(), closeFallback()
  • 🎨 Fully customizable via CSS custom properties
  • 🧩 Optional Shadow DOM, disable with no-shadow

Installation

npm install browserux-share-button

Or via CDN:

<script type="module" src="https://unpkg.com/browserux-share-button/dist/browserux-share-button.esm.js"></script>

Usage

import 'browserux-share-button';
<browserux-share-button></browserux-share-button>

With explicit share data and platform control:

<browserux-share-button
  title="My article"
  text="A short description"
  url="https://example.com/article"
  lang="en"
  facebook="false"
  sms="false"
></browserux-share-button>

Parameters

Parameter Type Description
url Attribute URL to share (default: location.href)
title Attribute Share title (default: document.title)
text Attribute Share description (default: <meta description>)
lang Attribute Language code for built-in labels
manifest-src Attribute Custom path to Web App Manifest
no-shadow Attribute Disable Shadow DOM encapsulation
[platform]="false" Attribute Disable a platform: email, x, facebook, whatsapp, sms, linkedin, telegram, reddit
icon Slot Custom icon inside the share button (default: 🔗)
bux:share-success Event Native share completed, e.detail: { title, text, url }
bux:share-abort Event User cancelled the native share dialog
bux:share-error Event Share failed, e.detail: { error }
bux:fallback-open Event Fallback modal opened
bux:fallback-close Event Fallback modal closed
bux:copy-success Event Link copied, e.detail: { url }
bux:copy-error Event Clipboard write failed, e.detail: { error }
share() Method Trigger share programmatically
setShareData(data) Method Update share data at runtime
openFallback() Method Open the fallback modal programmatically
closeFallback() Method Close the fallback modal programmatically

Documentation

For detailed documentation, see docs/index.md.

Guide

Reference

  • Attributes : url, title, text, lang, no-shadow, platform disabling
  • Events : all bux:* events with payloads and use cases
  • Slots : icon slot for custom button icon
  • Programmatic API : share(), setShareData(), openFallback(), closeFallback()
  • Platforms : built-in platforms and custom platform registry
  • Utilities : getShareIcon, getBestIconUrl

Additional reference

  • Compatibility : browser support, framework compatibility, build formats
  • Contributing : report a bug, suggest an improvement, submit a PR

License

MIT © 2026 Effeilo

About

A modern solution to enable seamless content sharing across all devices and platforms.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors