next-share
Social media share buttons for your next React apps.
π Features
No dependencies
Compatible with both JavaScript and TypeScript
Share buttons for your next React app
Facebook
Line
Pinterest
Reddit
Telegram
Tumblr
Twitter
Viber
Weibo
Whatsapp
Linkedin
VKShare
Mailru
Livejournal
Workplace
Pocket
Instapaper
Hatena
FacebookMessenger
Email
Gab
Share counts
FacebookShareCount
HatenaShareCount
OKShareCount
PinterestShareCount
TumblrShareCount
VKShareCount
π§ Install
next-share is available on npm. It can be installed with the following command:
npm install next-share --save
next-share is available on yarn as well. It can be installed with the following command:
yarn add next-share --save
π‘ Usage of ShareButton
π Facebook
π¨βπ» Code
import {
FacebookShareButton ,
FacebookIcon ,
} from 'next-share'
< FacebookShareButton
url = { 'https://github.com/next-share' }
quote = { 'next-share is a social share buttons for your next React apps.' }
hashtag = { '#nextshare' }
>
< FacebookIcon size = { 32 } round / >
< / FacebookShareButton >
π FacebookShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
quote
string
A quote to be shared.
β
hashtag
string
Hashtag to be shared.
β
windowWidth
number
550
Opened window width.
β
windowHeight
number
400
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Line
π¨βπ» Code
import {
LineShareButton ,
LineIcon ,
} from 'next-share'
< LineShareButton
url = { 'https://github.com/next-share' }
title = { 'next-share is a social share buttons for your next React apps.' }
>
< LineIcon / >
< / LineShareButton >
π LineShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
windowWidth
number
500
Opened window width.
β
windowHeight
number
500
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Pinterest
π¨βπ» Code
import {
PinterestShareButton ,
PinterestIcon ,
} from 'next-share'
< PinterestShareButton
url = { 'https://github.com/next-share' }
media = { 'next-share is a social share buttons for your next React apps.' }
>
< PinterestIcon size = { 32 } round / >
< / PinterestShareButton >
π PinterestShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
media
string
The image URL that will be pinned.
β
description
string
The description of the shared media.
β
windowWidth
number
1000
Opened window width.
β
windowHeight
number
730
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Reddit
π¨βπ» Code
import {
RedditShareButton ,
RedditIcon ,
} from 'next-share'
< RedditShareButton
url = { 'https://github.com/next-share' }
title = { 'next-share is a social share buttons for your next React apps.' }
>
< RedditIcon size = { 32 } round / >
< / RedditShareButton >
π RedditShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
windowWidth
number
660
Opened window width.
β
windowHeight
number
460
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Telegram
π¨βπ» Code
import {
TelegramShareButton ,
TelegramIcon ,
} from 'next-share'
< TelegramShareButton
url = { 'https://github.com/next-share' }
title = { 'next-share is a social share buttons for your next React apps.' }
>
< TelegramIcon size = { 32 } round / >
< / TelegramShareButton >
π TelegramShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
windowWidth
number
550
Opened window width.
β
windowHeight
number
400
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Tumblr
π¨βπ» Code
import {
TumblrShareButton ,
TumblrIcon ,
} from 'next-share'
< TumblrShareButton
url = { 'https://github.com/next-share' }
title = { 'next-share is a social share buttons for your next React apps.' }
>
< TumblrIcon size = { 32 } round / >
< / TumblrShareButton >
π TumblrShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
tags
Array<string>
β
caption
string
The description of the shared page.
β
posttype
string
link
β
windowWidth
number
660
Opened window width.
β
windowHeight
number
460
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Twitter
π¨βπ» Code
import {
TwitterShareButton ,
TwitterIcon ,
} from 'next-share'
< TwitterShareButton
url = { 'https://github.com/next-share' }
title = { 'next-share is a social share buttons for your next React apps.' }
>
< TwitterIcon size = { 32 } round / >
< / TwitterShareButton >
π TwitterShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
via
string
β
hashtags
array
β
related
array
β
windowWidth
number
550
Opened window width.
β
windowHeight
number
400
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Viber
π¨βπ» Code
import {
ViberShareButton ,
ViberIcon ,
} from 'next-share'
< ViberShareButton
url = { 'https://github.com/next-share' }
title = { 'next-share is a social share buttons for your next React apps.' }
>
< ViberIcon size = { 32 } round / >
< / ViberShareButton >
π ViberShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
separator
β
windowWidth
number
660
Opened window width.
β
windowHeight
number
460
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Weibo
π¨βπ» Code
import {
WeiboShareButton ,
WeiboIcon ,
} from 'next-share'
< WeiboShareButton
url = { 'https://github.com/next-share' }
title = { 'next-share is a social share buttons for your next React apps.' }
image = { `${ String ( window . location ) } /${ example - image } ` }
>
< WeiboIcon size = { 32 } round / >
< / WeiboShareButton >
π WeiboShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
image
string
The image URL that will be shared.
β
windowWidth
number
660
Opened window width.
β
windowHeight
number
550
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Whatsapp
π¨βπ» Code
import {
WhatsappShareButton ,
WhatsappIcon ,
} from 'next-share'
< WhatsappShareButton
url = { 'https://github.com/next-share' }
title = { 'next-share is a social share buttons for your next React apps.' }
separator = ":: "
>
< WhatsappIcon size = { 32 } round / >
< / WhatsappShareButton >
π WhatsappShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
separator
string
β
windowWidth
number
550
Opened window width.
β
windowHeight
number
400
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Linkedin
π¨βπ» Code
import {
LinkedinShareButton ,
LinkedinIcon ,
} from 'next-share'
< LinkedinShareButton url = { 'https://github.com/next-share' } >
< LinkedinIcon size = { 32 } round / >
< / LinkedinShareButton >
π LinkedinShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
windowWidth
number
750
Opened window width.
β
windowHeight
number
600
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
How do you use things like title
, summary
, etc.?
Use og
tags in the <head>
block of the HTML.
< meta property ='og:image ' content ='' />
< meta property ='og:title ' content ='' />
< meta property ='og:description ' content ='' />
π VK
π¨βπ» Code
import {
VKShareButton ,
VKIcon ,
} from 'next-share'
< VKShareButton
url = { 'https://github.com/next-share' }
image = { './next-share.png' }
>
< VKIcon size = { 32 } round / >
< / VKShareButton >
π VKShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
image
string
An absolute link to the image that will be shared.
β
noParse
boolean
If true is passed, VK will not retrieve URL information.
β
noVkLinks
boolean
If true is passed, there will be no links to the user's profile in the open window. Only for mobile devices.
β
windowWidth
number
660
Opened window width.
β
windowHeight
number
460
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Mailru
π¨βπ» Code
import {
MailruShareButton ,
MailruIcon ,
} from 'next-share'
< MailruShareButton
url = { 'https://github.com/next-share' }
title = { 'Next Share' }
>
< MailruIcon size = { 32 } round / >
< / MailruShareButton >
π MailruShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
description
string
Description of the shared page.
β
imageUrl
string
Image url of the shared page.
β
windowWidth
number
660
Opened window width.
β
windowHeight
number
460
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Livejournal
π¨βπ» Code
import {
LivejournalShareButton ,
LivejournalIcon ,
} from 'next-share'
< LivejournalShareButton
url = { 'https://github.com/next-share' }
title = { 'Next Share' }
description = { 'https://github.com/next-share' }
>
< LivejournalIcon size = { 32 } round / >
< / LivejournalShareButton >
π LivejournalShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
The title of the shared page.
β
description
string
Description of the shared page.
β
windowWidth
number
660
Opened window width.
β
windowHeight
number
460
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Workplace
π¨βπ» Code
import {
WorkplaceShareButton ,
WorkplaceIcon ,
} from 'next-share'
< WorkplaceShareButton
url = { 'https://github.com/next-share' }
quote = { 'Next Share' }
>
< WorkplaceIcon size = { 32 } round / >
< / WorkplaceShareButton >
π WorkplaceShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
quote
string
β
hashtag
string
β
windowWidth
number
550
Opened window width.
β
windowHeight
number
400
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Pocket
π¨βπ» Code
import {
PocketShareButton ,
PocketIcon ,
} from 'next-share'
< PocketShareButton
url = { 'https://github.com/next-share' }
title = { 'Next Share' }
>
< PocketIcon size = { 32 } round / >
< / PocketShareButton >
π PocketShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
Title of the shared page. Note that if Pocket detects a title tag on the page being saved, this parameter will be ignored and the title tag of the saved page will be used instead.
β
windowWidth
number
500
Opened window width.
β
windowHeight
number
500
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Instapaper
π¨βπ» Code
import {
InstapaperShareButton ,
InstapaperIcon ,
} from 'next-share'
< InstapaperShareButton
url = { 'https://github.com/next-share' }
title = { 'Next Share' }
>
< InstapaperIcon size = { 32 } round / >
< / InstapaperShareButton >
π InstapaperShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
Title of the shared page.
β
description
string
Description of the shared page.
β
windowWidth
number
500
Opened window width.
β
windowHeight
number
500
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Hatena
π¨βπ» Code
import {
HatenaShareButton ,
HatenaIcon ,
} from 'next-share'
< HatenaShareButton
url = { 'https://github.com/next-share' }
title = { 'Next Share' }
>
< HatenaIcon size = { 32 } round / >
< / HatenaShareButton >
π HatenaShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
Title of the shared page.
β
windowWidth
number
660
Opened window width.
β
windowHeight
number
460
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π FacebookMessenger
π¨βπ» Code
import {
FacebookMessengerShareButton ,
FacebookMessengerIcon ,
} from 'next-share'
< FacebookMessengerShareButton
url = { 'https://github.com/next-share' }
appId = { '' }
>
< FacebookMessengerIcon size = { 32 } round / >
< / FacebookMessengerShareButton >
π FacebookMessengerShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
appId
string
Facebook application id.
β
redirectUri
string
The URL to redirect to after sharing (default: the shared url).
β
to
string
A user ID of a recipient. Once the dialog comes up, the sender can specify additional people as recipients.
β
windowWidth
number
1000
Opened window width.
β
windowHeight
number
820
Opened window height.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Email
π¨βπ» Code
import {
EmailShareButton ,
EmailIcon ,
} from 'next-share'
< EmailShareButton
url = { 'https://github.com/next-share' }
subject = { 'Next Share' }
body = "body"
>
< EmailIcon size = { 32 } round / >
< / EmailShareButton >
π EmailShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
subject
string
β
body
string
β
separator
string
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π Gab
π¨βπ» Code
import {
GabShareButton ,
GabIcon ,
} from 'next-share'
< GabShareButton
url = { 'https://github.com/next-share' }
title = { 'Next Share' }
>
< GabIcon size = { 32 } round / >
< / GabShareButton >
π GabShareButton Props
Props
Type
Default
Description
Required
children
node
React component, HTML element or string.
β
url
string
The URL of the shared page.
β
title
string
Title of the shared page.
β
windowWidth
number
660
Opened window width.
β
windowHeight
number
640
Opened window height.
β
π Icons Props
Props
Type
Default
Description
Required
size
number
Icon size in pixels.
β
round
boolean
Show round or rectangle.
β
borderRadius
number
Set rounded corners if using round icon.
β
bgStyle
object
Customize background style.
β
iconFillColor
string
white
Customize icon fill color.
β
blankTarget
boolean
false
Open share window in a new tab if set to true
.
β
π‘ Usage of ShareCount
π Facebook
π¨βπ» Code
import { FacebookShareCount } from 'next-share'
< FacebookShareCount
url = { 'https://github.com/next-share' }
appId = { '' }
appSecret = { '' }
/ >
< FacebookShareCount
url = { 'https://github.com/next-share' }
appId = { '' }
appSecret = { '' }
>
{ shareCount => < span className = "wrapper" > { shareCount } < / span > }
< / FacebookShareCount >
π FacebookShareCount Props
Props
Type
Default
Description
Required
url
string
The URL of the shared page.
β
appId
string
Facebook application id.
β
appSecret
string
Facebook application secret.
β
children
node
React component, HTML element or string.
β
π Hatena
π¨βπ» Code
import { HatenaShareCount } from 'next-share'
< HatenaShareCount url = { 'https://github.com/next-share' } / >
< HatenaShareCount url = { 'https://github.com/next-share' } >
{ shareCount => < span className = "wrapper" > { shareCount } < / span > }
< / HatenaShareCount >
π HatenaShareCount Props
Props
Type
Default
Description
Required
url
string
The URL of the shared page.
β
children
node
React component, HTML element or string.
β
π OK
π¨βπ» Code
import { OKShareCount } from 'next-share'
< OKShareCount url = { 'https://github.com/next-share' } / >
< OKShareCount url = { 'https://github.com/next-share' } >
{ shareCount => < span className = "wrapper" > { shareCount } < / span > }
< / OKShareCount >
π OKShareCount Props
Props
Type
Default
Description
Required
url
string
The URL of the shared page.
β
children
node
React component, HTML element or string.
β
π Pinterest
π¨βπ» Code
import { PinterestShareCount } from 'next-share'
< PinterestShareCount url = { 'https://github.com/next-share' } / >
< PinterestShareCount url = { 'https://github.com/next-share' } >
{ shareCount => < span className = "wrapper" > { shareCount } < / span > }
< / PinterestShareCount >
π PinterestShareCount Props
Props
Type
Default
Description
Required
url
string
The URL of the shared page.
β
children
node
React component, HTML element or string.
β
π Tumblr
π¨βπ» Code
import { TumblrShareCount } from 'next-share'
< TumblrShareCount url = { 'https://github.com/next-share' } / >
< TumblrShareCount url = { 'https://github.com/next-share' } >
{ shareCount => < span className = "wrapper" > { shareCount } < / span > }
< / TumblrShareCount >
π TumblrShareCount Props
Props
Type
Default
Description
Required
url
string
The URL of the shared page.
β
children
node
React component, HTML element or string.
β
π VK
π¨βπ» Code
import { VKShareCount } from 'next-share'
< VKShareCount url = { 'https://github.com/next-share' } / >
< VKShareCount url = { 'https://github.com/next-share' } >
{ shareCount => < span className = "wrapper" > { shareCount } < / span > }
< / VKShareCount >
π VKShareCount Props
Props
Type
Default
Description
Required
url
string
The URL of the shared page.
β
children
node
React component, HTML element or string.
β
π Changelog
Latest version 0.19.0 (2022-10-17):
Add blankTarget props to open up a new tab
Details changes for each release are documented in the CHANGELOG.md .
π Wrap Up
If you think any of the next-share
can be improved, please do open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to watch/star this repository to revisit.
π Contribution
We'd love to have your helping hand on contributions to next-share
by forking and sending a pull request!
Your contributions are heartily β‘ welcome, recognized and appreciated. (βΏβ βΏβ )
How to contribute:
Open pull request with improvements
Discuss ideas in issues
Spread the word
Reach out with any feedback
β¨ Contributors
π¨βπ©βπ¦ Advertisement
You maybe interested.
React Patterns β React patterns & techniques to use in development for React Developer.
React Papaparse β The fastest in-browser CSV (or delimited text) parser for React.
Next QRCode β React hooks for generating QR code for your next React apps.
Next Time Ago β A lightweight tiny time-ago component for your next React apps.
βοΈ License
The MIT License