Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
70cd0a0
add CLAUDE.md
nygardk Oct 12, 2026
20570c5
chore(peer): drop React 17 support
nygardk Mar 9, 2026
2dc35f2
refactor(x): remove Twitter aliases in favor of X exports
nygardk Mar 9, 2026
e72b45e
refactor(counts): remove deprecated share count exports
nygardk Mar 9, 2026
b2c18ff
refactor(threads): remove legacy no-op props
nygardk Mar 9, 2026
28da248
refactor(share-buttons): rename v6 payload props
nygardk Mar 9, 2026
f978a65
feat(helpers): add low-level share URL and popup helpers
nygardk Mar 9, 2026
3ff7746
refactor(exports): remove default exports
nygardk Mar 9, 2026
e05b396
feat(mobile): add opt-in app handoff for messaging buttons
nygardk Mar 9, 2026
9e44ba2
feat(native-share): add Web Share API support
nygardk Mar 9, 2026
08b5638
refactor(linkedin): make LinkedIn sharing URL-only
nygardk Mar 9, 2026
e965047
docs(guides): add v6 migration and native sharing guides
nygardk Mar 9, 2026
22249a6
refactor(icons): split raw and legacy icon families
nygardk Mar 9, 2026
19d2977
chore(deps): upgrade vite to v8
nygardk Mar 12, 2026
ce09184
chore(eslint): upgrade to v10
nygardk Mar 13, 2026
346b345
chore(deps): remove unused eslint-plugin-babel
nygardk Oct 12, 2026
81842ae
refactor(x): use "x" as the internal network name
nygardk Oct 12, 2026
05c4997
refactor(networks): remove Pocket and Workplace share buttons
nygardk Oct 12, 2026
4aa9052
fix(networks): use current X, Threads, and Telegram share endpoints
nygardk Oct 12, 2026
5bb43a5
fix(share-buttons): open the popup before awaiting beforeOnClick
nygardk Oct 12, 2026
7996b59
feat(share-buttons): add onShareWindowOpen callback
nygardk Oct 12, 2026
5a481f2
fix(helpers): default separators in share URL builders
nygardk Oct 12, 2026
a811bc3
fix(email): put the shared URL on its own line by default
nygardk Oct 12, 2026
98bb140
feat(build): mark the bundle as a React Server Components client module
nygardk Oct 12, 2026
59bbdda
docs(migration): correct and complete the v5 to v6 guide
nygardk Oct 12, 2026
0d1255c
claude launch
nygardk Oct 12, 2026
71e21b3
fix(icons): draw LinkedIn and Gab raw icons at full size
nygardk Oct 12, 2026
17a51d2
feat(icons): use Lucide outline glyphs for email and native share
nygardk Oct 12, 2026
57ddea2
feat(icons): put glyph-only raw icons on circle badges
nygardk Oct 12, 2026
82f732f
feat(icons): use the 2026 Threads app icon
nygardk Oct 12, 2026
7f896ad
feat(icons): use the 2023 OK logo
nygardk Oct 12, 2026
f708c54
feat(icons): keep raw icon details white on dark backgrounds
nygardk Oct 12, 2026
2ff01f4
feat(icons): draw the LiveJournal pencil in navy and white
nygardk Oct 12, 2026
e72d4f3
fix(icons): use current brand colors for five raw icons
nygardk Oct 12, 2026
109e67c
docs(readme): generate the icon preview from the demo
nygardk Oct 12, 2026
552fde3
docs(readme): restructure for quick start and scannable reference
nygardk Oct 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/bright-windows-wave.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': minor
---

Add an `onShareWindowOpen` callback to popup-based share buttons. It receives the opened share window, or `null` when a popup blocker prevented it from opening, so apps can detect blocked popups and offer a fallback, as requested in #525.
7 changes: 7 additions & 0 deletions .changeset/calm-letters-break.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'react-share': major
---

Change the default `EmailShareButton` `separator` from `" "` to `"\n"` so the shared URL appears on its own line below the email body. The new `buildEmailShareUrl` helper uses the same default.

Reported in #582, where the URL was run together with the body text. Pass `separator=" "` to keep the previous formatting.
5 changes: 5 additions & 0 deletions .changeset/clear-servers-meet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': minor
---

Mark the published ESM and CJS bundles with a `"use client"` directive so share buttons can be imported directly from React Server Components, such as Next.js App Router pages, without a local client wrapper. Requested in #491.
7 changes: 7 additions & 0 deletions .changeset/early-popups-open.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'react-share': major
---

Open the share popup synchronously when `beforeOnClick` returns a promise, then load the share URL into it once the promise resolves. If the promise rejects, sharing is cancelled and the popup is closed.

Previously the popup was opened only after awaiting `beforeOnClick`. By then the click's user activation had expired, so Safari and other browsers with strict popup blockers silently blocked the share window (#525, #506, #529). Rejections from `beforeOnClick` also used to surface as unhandled promise rejections.
5 changes: 5 additions & 0 deletions .changeset/fresh-colors-land.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': patch
---

Update five raw icons to their networks' current brand colors: `BlueskyIcon` (`#0560FF`), `LineIcon` (`#06C755`), `PinterestIcon` (`#E60023`), `TumblrIcon` (`#001935`), and `GabIcon` (`#30CE7D`). They used older or approximate colors before. The legacy icons keep their v5 colors.
7 changes: 7 additions & 0 deletions .changeset/fresh-hosts-point.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'react-share': patch
---

Use the current share endpoints for X (`https://x.com/intent/post`), Threads (`https://www.threads.com/intent/post`), and Telegram (`https://t.me/share/url`).

The old `twitter.com`, `threads.net`, and `telegram.me` hosts only keep working through redirects, which add an extra hop and can drop the share intent if those redirects are retired. Requested in #536.
5 changes: 5 additions & 0 deletions .changeset/full-marks-grow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': patch
---

Draw the raw `LinkedinIcon` and `GabIcon` at full size. They reused the small glyphs from the badge icons without their backgrounds, so they filled less than half of the icon box and looked tiny next to the other raw icons. `LinkedinIcon` now uses the full rounded-square "in" mark in LinkedIn's current `#0A66C2` blue, and `GabIcon` puts the wordmark on a rounded green square.
5 changes: 5 additions & 0 deletions .changeset/mean-pans-marry.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': major
---

Remove all deprecated share count exports in v6, including the underlying share count implementation and the `jsonp` dependency that previously powered them.
5 changes: 5 additions & 0 deletions .changeset/navy-pencils-draw.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': minor
---

Draw the raw `LivejournalIcon` pencil in navy and white like the official LiveJournal logo. The pencil used to be cut out of the blue circle, so it took on the page background instead of its own colors.
5 changes: 5 additions & 0 deletions .changeset/new-ok-logo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': minor
---

Update the raw `OKIcon` to the 2023 OK logo: a white figure on an orange (`#FF7700`) rounded square, as served on ok.ru. The previous bare glyph was the old mark in an older orange.
5 changes: 5 additions & 0 deletions .changeset/new-threads-icon.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': minor
---

Update the raw `ThreadsIcon` to the 2026 Threads app icon: a white glyph on a black rounded square. The previous bare glyph was the old mark and looked lighter than the other raw icons.
5 changes: 5 additions & 0 deletions .changeset/odd-lions-share.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': major
---

Remove the deprecated `TwitterShareButton` and `TwitterIcon` aliases in v6. Use `XShareButton` and `XIcon` instead.
5 changes: 5 additions & 0 deletions .changeset/plain-glyphs-swap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': minor
---

Use the Lucide mail and share glyphs for the raw `EmailIcon` and `NativeShareIcon`. The previous glyphs were small badge glyphs on a 64x64 viewBox and looked undersized next to the other raw icons.
7 changes: 7 additions & 0 deletions .changeset/quiet-pockets-close.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'react-share': major
---

Remove `PocketShareButton`, `PocketIcon`, `PocketLegacyIcon`, and `buildPocketShareUrl`, as well as `WorkplaceShareButton`, `WorkplaceIcon`, `WorkplaceLegacyIcon`, and `buildWorkplaceShareUrl`.

Pocket shut down in July 2025 and Workplace from Meta shut down in June 2026, so these buttons could only open dead share pages.
5 changes: 5 additions & 0 deletions .changeset/round-badges-return.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': minor
---

Put glyph-only raw icons on circle badges so every raw icon has a similar visual weight, like the v5 badges had. `XIcon`, `WeiboIcon`, `BlueskyIcon`, `EmailIcon`, `NativeShareIcon`, `InstapaperIcon`, and `TumblrIcon` now sit on a circle. The glyph is always drawn in white, so it stays legible on dark backgrounds. `NativeShareIcon` now uses a fixed blue (`#0A84FF`) instead of the current text color, which would hide the white glyph on dark pages.
7 changes: 7 additions & 0 deletions .changeset/silent-peaches-smell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'react-share': minor
---

Add an explicit `mobileBehavior` prop to `FacebookMessengerShareButton`, `TelegramShareButton`, `ViberShareButton`, and `WhatsappShareButton`.

This follows recurring mobile browser and app-handoff reports in #577, #551, #529, and #357. The new prop keeps web sharing as the default while allowing best-effort app-link behavior with `mobileBehavior="app"` or `mobileBehavior="auto"`.
5 changes: 5 additions & 0 deletions .changeset/small-keys-smash.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': minor
---

Add low-level helper exports for advanced usage in v6, including per-network `build*ShareUrl` helpers and `openShareWindow(url, options)`.
5 changes: 5 additions & 0 deletions .changeset/sour-bulldogs-hunt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': major
---

Drop React 17 support in v6 and require React 18 or 19 via `peerDependencies`.
7 changes: 7 additions & 0 deletions .changeset/swifty-bulldogs-shop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'react-share': major
---

Remove `title`, `summary`, and `source` from `LinkedinShareButton` and make `buildLinkedinShareUrl` URL-only.

This follows the long-running LinkedIn compatibility problems in #550 and #362. LinkedIn no longer provides a reliable public URL-based way to prefill those fields, so v6 stops exposing them as if they were dependable.
7 changes: 7 additions & 0 deletions .changeset/tender-rivers-fly.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'react-share': minor
---

Add `canNativeShare(data)`, `shareNative(data)`, `NativeShareButton`, and a generic `NativeShareIcon` for browser-native sharing flows.

This gives mobile and PWA use cases a first-class Web Share API path instead of forcing them through network-specific popup URLs, which is especially relevant for requests like #576 and the iOS/PWA limitations described in #551.
11 changes: 11 additions & 0 deletions .changeset/three-icons-divide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
'react-share': major
---

Split the icon exports into raw and legacy families for v6.

The existing `*Icon` exports now render SVG logos that are closer to the underlying network marks. The previous badge-style icons remain available as `*LegacyIcon` exports with the existing `round`, `borderRadius`, `bgStyle`, and `iconFillColor` props.

If you want to preserve the v5 visuals, rename imports such as `FacebookIcon` to `FacebookLegacyIcon`, `XIcon` to `XLegacyIcon`, and `WhatsappIcon` to `WhatsappLegacyIcon`.

If you keep the `*Icon` names, note that raw icons default to `size={24}` instead of `64`, and no longer accept `round`, `borderRadius`, `bgStyle`, or `iconFillColor`.
5 changes: 5 additions & 0 deletions .changeset/white-details-stay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': minor
---

Keep raw icon details white on dark backgrounds. Details cut out of the brand shape, such as the Facebook "f", the LinkedIn "in", the LINE lettering, and the inside of the WhatsApp and Viber bubbles, used to show the page background through them, so the logos turned into dark blobs on dark pages. `color` still recolors the brand-colored part of the icon.
5 changes: 5 additions & 0 deletions .changeset/wise-moles-travel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'react-share': major
---

Remove the deprecated `hashtags`, `related`, and `via` props from `ThreadsShareButton` in v6. Those props were ignored in v5 and were kept only for compatibility ahead of this major release.
12 changes: 12 additions & 0 deletions .changeset/wise-years-rest.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
'react-share': major
---

Replace the share button `title` prop with explicit v6 payload names:

- `text` for Bluesky, Gab, Line, Telegram, Threads, and X
- `message` for WhatsApp and Viber
- `shareTitle` for Hatena, Instapaper, LiveJournal, Mail.ru, OK, Reddit, VK, and Weibo
- `postTitle` for Tumblr

`htmlTitle` remains the native button tooltip/title attribute.
11 changes: 11 additions & 0 deletions .claude/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"version": "0.0.1",
"configurations": [
{
"name": "demo",
"runtimeExecutable": "npx",
"runtimeArgs": ["vite", "--config", "vite.demo.config.js", "--port", "5199", "--strictPort"],
"port": 5199
}
]
}
3 changes: 3 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# eslint-plugin-react, eslint-plugin-import, and eslint-plugin-jsx-a11y
# have not published ESLint 10 peer ranges yet.
legacy-peer-deps=true
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
Loading
Loading