diff --git a/lib/blocks.php b/lib/blocks.php
index 6ad00aacc37f2..982d91fa2ee6b 100644
--- a/lib/blocks.php
+++ b/lib/blocks.php
@@ -28,6 +28,7 @@ function gutenberg_reregister_core_block_types() {
'rss.php' => 'core/rss',
'shortcode.php' => 'core/shortcode',
'search.php' => 'core/search',
+ 'social-link.php' => 'core/social-link',
'tag-cloud.php' => 'core/tag-cloud',
);
diff --git a/packages/block-library/src/editor.scss b/packages/block-library/src/editor.scss
index 7e8652b23a3bf..5c40e56925d8f 100644
--- a/packages/block-library/src/editor.scss
+++ b/packages/block-library/src/editor.scss
@@ -28,6 +28,8 @@
@import "./rss/editor.scss";
@import "./search/editor.scss";
@import "./shortcode/editor.scss";
+@import "./social-link/editor.scss";
+@import "./social-links/editor.scss";
@import "./spacer/editor.scss";
@import "./subhead/editor.scss";
@import "./table/editor.scss";
diff --git a/packages/block-library/src/index.js b/packages/block-library/src/index.js
index 67d460b4b4b40..bcb177db239ef 100644
--- a/packages/block-library/src/index.js
+++ b/packages/block-library/src/index.js
@@ -59,8 +59,9 @@ import * as textColumns from './text-columns';
import * as verse from './verse';
import * as video from './video';
import * as tagCloud from './tag-cloud';
-
import * as classic from './classic';
+import * as socialLinks from './social-links';
+import * as socialLink from './social-link';
/**
* Function to register an individual block.
@@ -130,6 +131,8 @@ export const registerCoreBlocks = () => {
search,
separator,
reusableBlock,
+ socialLinks,
+ ...socialLink.sites,
spacer,
subhead,
table,
diff --git a/packages/block-library/src/social-link/edit.js b/packages/block-library/src/social-link/edit.js
new file mode 100644
index 0000000000000..986de58e60b92
--- /dev/null
+++ b/packages/block-library/src/social-link/edit.js
@@ -0,0 +1,65 @@
+/**
+ * External dependencies
+ */
+import classNames from 'classnames';
+
+/**
+ * WordPress dependencies
+ */
+import { URLPopover } from '@wordpress/block-editor';
+import { useState } from '@wordpress/element';
+import {
+ Button,
+ IconButton,
+} from '@wordpress/components';
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Internal dependencies
+ */
+import { getIconBySite } from './social-list';
+
+const SocialLinkEdit = ( { attributes, setAttributes, isSelected } ) => {
+ const { url, site } = attributes;
+ const [ showURLPopover, setPopover ] = useState( false );
+ const classes = classNames(
+ 'wp-social-link',
+ 'wp-social-link-' + site,
+ { 'wp-social-link__is-incomplete': ! url },
+ );
+
+ // Import icon.
+ const IconComponent = getIconBySite( site );
+
+ return (
+
+ );
+};
+
+export default SocialLinkEdit;
diff --git a/packages/block-library/src/social-link/editor.scss b/packages/block-library/src/social-link/editor.scss
new file mode 100644
index 0000000000000..9121593ece2fa
--- /dev/null
+++ b/packages/block-library/src/social-link/editor.scss
@@ -0,0 +1,31 @@
+.wp-social-link {
+ // Frontend outputs a link, backend a button. Both should have the same padding.
+ // Therefore, the following exactly matches the padding on the frontend link.
+ padding: 6px;
+}
+
+.wp-block-social-links.is-style-pill-shape .wp-social-link {
+ padding-left: 16px;
+ padding-right: 16px;
+}
+
+// The following two rules have their classes doubled to increase specificity.
+.has-child-selected .wp-social-link__is-incomplete.wp-social-link__is-incomplete,
+.is-selected .wp-social-link__is-incomplete.wp-social-link__is-incomplete {
+ background-color: $dark-gray-150;
+}
+
+.has-child-selected .is-style-logos-only .wp-social-link__is-incomplete.wp-social-link__is-incomplete,
+.is-selected .is-style-logos-only .wp-social-link__is-incomplete.wp-social-link__is-incomplete {
+ color: $dark-gray-150;
+ background-color: transparent;
+}
+
+
+[data-type*="core/social-link-"].is-selected .wp-social-link, // Matches the selected social logo block.
+.wp-social-link:focus {
+ box-shadow: 0 0 0 1px $white, 0 0 0 3px $blue-medium-500;
+
+ // Windows High Contrast mode will show this outline, but not the box-shadow.
+ outline: 2px solid transparent;
+}
diff --git a/packages/block-library/src/social-link/icons/amazon.js b/packages/block-library/src/social-link/icons/amazon.js
new file mode 100644
index 0000000000000..cf906e4671e03
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/amazon.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const AmazonIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/bandcamp.js b/packages/block-library/src/social-link/icons/bandcamp.js
new file mode 100644
index 0000000000000..4033d7406b760
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/bandcamp.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const BandcampIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/behance.js b/packages/block-library/src/social-link/icons/behance.js
new file mode 100644
index 0000000000000..2dc0cc5cd81e1
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/behance.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const BehanceIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/chain.js b/packages/block-library/src/social-link/icons/chain.js
new file mode 100644
index 0000000000000..5347ff89f3e16
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/chain.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const ChainIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/codepen.js b/packages/block-library/src/social-link/icons/codepen.js
new file mode 100644
index 0000000000000..0528466f4eb53
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/codepen.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const CodepenIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/deviantart.js b/packages/block-library/src/social-link/icons/deviantart.js
new file mode 100644
index 0000000000000..17b2c25f832fb
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/deviantart.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const DeviantartIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/dribbble.js b/packages/block-library/src/social-link/icons/dribbble.js
new file mode 100644
index 0000000000000..e1d20d706a600
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/dribbble.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const DribbbleIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/dropbox.js b/packages/block-library/src/social-link/icons/dropbox.js
new file mode 100644
index 0000000000000..15eb1224623ed
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/dropbox.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const DropboxIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/etsy.js b/packages/block-library/src/social-link/icons/etsy.js
new file mode 100644
index 0000000000000..73f3cd95ccc1c
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/etsy.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const EtsyIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/facebook.js b/packages/block-library/src/social-link/icons/facebook.js
new file mode 100644
index 0000000000000..13b9111625bbc
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/facebook.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const FacebookIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/feed.js b/packages/block-library/src/social-link/icons/feed.js
new file mode 100644
index 0000000000000..6386cef02bb2f
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/feed.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const FeedIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/fivehundredpx.js b/packages/block-library/src/social-link/icons/fivehundredpx.js
new file mode 100644
index 0000000000000..6961e2b7e5cc2
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/fivehundredpx.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const FivehundredpxIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/flickr.js b/packages/block-library/src/social-link/icons/flickr.js
new file mode 100644
index 0000000000000..7bafa14fabd28
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/flickr.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const FlickrIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/foursquare.js b/packages/block-library/src/social-link/icons/foursquare.js
new file mode 100644
index 0000000000000..1b3b49b8c3c78
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/foursquare.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const FoursquareIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/github.js b/packages/block-library/src/social-link/icons/github.js
new file mode 100644
index 0000000000000..4dfcd29a971c3
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/github.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const GithubIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/goodreads.js b/packages/block-library/src/social-link/icons/goodreads.js
new file mode 100644
index 0000000000000..7997519010ebc
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/goodreads.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const GoodreadsIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/google.js b/packages/block-library/src/social-link/icons/google.js
new file mode 100644
index 0000000000000..fb7813791be9b
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/google.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const GoogleIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/index.js b/packages/block-library/src/social-link/icons/index.js
new file mode 100644
index 0000000000000..dddbfb2db12fc
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/index.js
@@ -0,0 +1,40 @@
+
+export * from './amazon';
+export * from './bandcamp';
+export * from './behance';
+export * from './chain';
+export * from './codepen';
+export * from './deviantart';
+export * from './dribbble';
+export * from './dropbox';
+export * from './etsy';
+export * from './facebook';
+export * from './feed';
+export * from './fivehundredpx';
+export * from './flickr';
+export * from './foursquare';
+export * from './goodreads';
+export * from './google';
+export * from './github';
+export * from './instagram';
+export * from './lastfm';
+export * from './linkedin';
+export * from './mail';
+export * from './mastodon';
+export * from './meetup';
+export * from './medium';
+export * from './pinterest';
+export * from './pocket';
+export * from './reddit';
+export * from './skype';
+export * from './snapchat';
+export * from './soundcloud';
+export * from './spotify';
+export * from './tumblr';
+export * from './twitch';
+export * from './twitter';
+export * from './vimeo';
+export * from './vk';
+export * from './wordpress';
+export * from './yelp';
+export * from './youtube';
diff --git a/packages/block-library/src/social-link/icons/instagram.js b/packages/block-library/src/social-link/icons/instagram.js
new file mode 100644
index 0000000000000..01d58e95bac49
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/instagram.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const InstagramIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/lastfm.js b/packages/block-library/src/social-link/icons/lastfm.js
new file mode 100644
index 0000000000000..b615e1bf0fddb
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/lastfm.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const LastfmIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/linkedin.js b/packages/block-library/src/social-link/icons/linkedin.js
new file mode 100644
index 0000000000000..98cec8a81ca0f
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/linkedin.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const LinkedinIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/mail.js b/packages/block-library/src/social-link/icons/mail.js
new file mode 100644
index 0000000000000..8e9847cfa370c
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/mail.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const MailIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/mastodon.js b/packages/block-library/src/social-link/icons/mastodon.js
new file mode 100644
index 0000000000000..1c1a196d28e6d
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/mastodon.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const MastodonIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/medium.js b/packages/block-library/src/social-link/icons/medium.js
new file mode 100644
index 0000000000000..c15c3ca62728f
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/medium.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const MediumIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/meetup.js b/packages/block-library/src/social-link/icons/meetup.js
new file mode 100644
index 0000000000000..a1f6d86e009a9
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/meetup.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const MeetupIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/pinterest.js b/packages/block-library/src/social-link/icons/pinterest.js
new file mode 100644
index 0000000000000..d84704a9ba884
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/pinterest.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const PinterestIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/pocket.js b/packages/block-library/src/social-link/icons/pocket.js
new file mode 100644
index 0000000000000..532138ff04f99
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/pocket.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const PocketIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/reddit.js b/packages/block-library/src/social-link/icons/reddit.js
new file mode 100644
index 0000000000000..4a8c7bd14abf7
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/reddit.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const RedditIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/skype.js b/packages/block-library/src/social-link/icons/skype.js
new file mode 100644
index 0000000000000..3c34e3f1c5d73
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/skype.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const SkypeIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/snapchat.js b/packages/block-library/src/social-link/icons/snapchat.js
new file mode 100644
index 0000000000000..eaddf4d7080e1
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/snapchat.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const SnapchatIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/soundcloud.js b/packages/block-library/src/social-link/icons/soundcloud.js
new file mode 100644
index 0000000000000..9df4e0af59bc4
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/soundcloud.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const SoundcloudIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/spotify.js b/packages/block-library/src/social-link/icons/spotify.js
new file mode 100644
index 0000000000000..fe702c4d697d4
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/spotify.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const SpotifyIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/tumblr.js b/packages/block-library/src/social-link/icons/tumblr.js
new file mode 100644
index 0000000000000..060a2cf75434e
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/tumblr.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const TumblrIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/twitch.js b/packages/block-library/src/social-link/icons/twitch.js
new file mode 100644
index 0000000000000..ddce3166b74d2
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/twitch.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const TwitchIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/twitter.js b/packages/block-library/src/social-link/icons/twitter.js
new file mode 100644
index 0000000000000..1b6641cadb441
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/twitter.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const TwitterIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/vimeo.js b/packages/block-library/src/social-link/icons/vimeo.js
new file mode 100644
index 0000000000000..02940e55afc42
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/vimeo.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const VimeoIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/vk.js b/packages/block-library/src/social-link/icons/vk.js
new file mode 100644
index 0000000000000..14e186d920f13
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/vk.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const VkIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/wordpress.js b/packages/block-library/src/social-link/icons/wordpress.js
new file mode 100644
index 0000000000000..a6523d6738505
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/wordpress.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const WordPressIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/yelp.js b/packages/block-library/src/social-link/icons/yelp.js
new file mode 100644
index 0000000000000..953db89b6bbd7
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/yelp.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const YelpIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/icons/youtube.js b/packages/block-library/src/social-link/icons/youtube.js
new file mode 100644
index 0000000000000..0e822aa5b4f4d
--- /dev/null
+++ b/packages/block-library/src/social-link/icons/youtube.js
@@ -0,0 +1,14 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ Path,
+ SVG,
+} from '@wordpress/components';
+
+export const YoutubeIcon = ( ) => (
+
+);
diff --git a/packages/block-library/src/social-link/index.js b/packages/block-library/src/social-link/index.js
new file mode 100644
index 0000000000000..692ff27f82fa5
--- /dev/null
+++ b/packages/block-library/src/social-link/index.js
@@ -0,0 +1,45 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Internal dependencies
+ */
+import edit from './edit';
+import socialList from './social-list';
+
+const commonAttributes = {
+ category: 'widgets',
+ parent: [ 'core/social-links' ],
+ supports: {
+ reusable: false,
+ html: false,
+ },
+ edit,
+};
+
+// Create individual blocks out of each site in social-list.js
+export const sites = Object.keys( socialList ).map(
+ ( site ) => {
+ const siteParams = socialList[ site ];
+ return {
+ name: 'core/social-link-' + site,
+ settings: {
+ title: siteParams.name,
+ icon: siteParams.icon,
+ description: __( 'Link to ' + siteParams.name ),
+ ...commonAttributes,
+ attributes: {
+ url: {
+ type: 'string',
+ },
+ site: {
+ type: 'string',
+ default: site,
+ },
+ },
+ },
+ };
+ }
+);
diff --git a/packages/block-library/src/social-link/index.php b/packages/block-library/src/social-link/index.php
new file mode 100644
index 0000000000000..4d04c9cd1c12c
--- /dev/null
+++ b/packages/block-library/src/social-link/index.php
@@ -0,0 +1,227 @@
+ ' . $icon . '';
+}
+
+/**
+ * Registers the `core/social-link` blocks.
+ */
+function register_block_core_social_link() {
+ $sites = array(
+ 'amazon',
+ 'bandcamp',
+ 'behance',
+ 'chain',
+ 'codepen',
+ 'deviantart',
+ 'dribbble',
+ 'dropbox',
+ 'etsy',
+ 'facebook',
+ 'feed',
+ 'fivehundredpx',
+ 'flickr',
+ 'foursquare',
+ 'goodreads',
+ 'google',
+ 'github',
+ 'instagram',
+ 'lastfm',
+ 'linkedin',
+ 'mail',
+ 'mastodon',
+ 'meetup',
+ 'medium',
+ 'pinterest',
+ 'pocket',
+ 'reddit',
+ 'skype',
+ 'snapchat',
+ 'soundcloud',
+ 'spotify',
+ 'tumblr',
+ 'twitch',
+ 'twitter',
+ 'vimeo',
+ 'vk',
+ 'wordpress',
+ 'yelp',
+ 'youtube',
+ );
+
+ foreach ( $sites as $site ) {
+ register_block_type(
+ 'core/social-link-' . $site,
+ array(
+ 'attributes' => array(
+ 'url' => array(
+ 'type' => 'string',
+ ),
+ 'site' => array(
+ 'type' => 'string',
+ 'default' => $site,
+ ),
+ ),
+ 'render_callback' => 'render_core_social_link',
+ )
+ );
+ }
+}
+add_action( 'init', 'register_block_core_social_link' );
+
+
+/**
+ * Returns the SVG for social link.
+ *
+ * @param string $site The site icon.
+ *
+ * @return string SVG Element for site icon.
+ */
+function core_social_link_get_icon( $site ) {
+ switch ( $site ) {
+
+ case 'fivehundredpx':
+ return '';
+
+ case 'amazon':
+ return '';
+
+ case 'bandcamp':
+ return '';
+
+ case 'behance':
+ return '';
+
+ case 'chain':
+ return '';
+
+ case 'codepen':
+ return '';
+
+ case 'deviantart':
+ return '';
+
+ case 'dribbble':
+ return '';
+
+ case 'dropbox':
+ return '';
+
+ case 'etsy':
+ return '';
+
+ case 'facebook':
+ return '';
+
+ case 'feed':
+ return '';
+
+ case 'flickr':
+ return '';
+
+ case 'foursquare':
+ return '';
+
+ case 'goodreads':
+ return '';
+
+ case 'google':
+ return '';
+
+ case 'github':
+ return '';
+
+ case 'instagram':
+ return '';
+
+ case 'lastfm':
+ return '';
+
+ case 'linkedin':
+ return '';
+
+ case 'mail':
+ return '';
+
+ case 'mastodon':
+ return '';
+
+ case 'meetup':
+ return '';
+
+ case 'medium':
+ return '';
+
+ case 'pinterest':
+ return '';
+
+ case 'pocket':
+ return '';
+
+ case 'reddit':
+ return '';
+
+ case 'skype':
+ return '';
+
+ case 'snapchat':
+ return '';
+
+ case 'soundcloud':
+ return '';
+
+ case 'spotify':
+ return '';
+
+ case 'tumblr':
+ return '';
+
+ case 'twitch':
+ return '';
+
+ case 'twitter':
+ return '';
+
+ case 'vimeo':
+ return '';
+
+ case 'vk':
+ return '';
+
+ // phpcs:disable WordPress.WP.CapitalPDangit.Misspelled
+ case 'wordpress':
+ return '';
+
+ case 'yelp':
+ return '';
+
+ case 'youtube':
+ return '';
+
+ case 'share':
+ default:
+ return '';
+ }
+}
diff --git a/packages/block-library/src/social-link/social-list.js b/packages/block-library/src/social-link/social-list.js
new file mode 100644
index 0000000000000..98c8120449c5a
--- /dev/null
+++ b/packages/block-library/src/social-link/social-list.js
@@ -0,0 +1,209 @@
+/**
+ * Internal dependencies
+ */
+import {
+ AmazonIcon,
+ BandcampIcon,
+ BehanceIcon,
+ ChainIcon,
+ CodepenIcon,
+ DeviantartIcon,
+ DribbbleIcon,
+ DropboxIcon,
+ EtsyIcon,
+ FacebookIcon,
+ FeedIcon,
+ FivehundredpxIcon,
+ FlickrIcon,
+ FoursquareIcon,
+ GoodreadsIcon,
+ GoogleIcon,
+ GithubIcon,
+ InstagramIcon,
+ LastfmIcon,
+ LinkedinIcon,
+ MailIcon,
+ MastodonIcon,
+ MeetupIcon,
+ MediumIcon,
+ PinterestIcon,
+ PocketIcon,
+ RedditIcon,
+ SkypeIcon,
+ SnapchatIcon,
+ SoundcloudIcon,
+ SpotifyIcon,
+ TumblrIcon,
+ TwitchIcon,
+ TwitterIcon,
+ VimeoIcon,
+ VkIcon,
+ WordPressIcon,
+ YelpIcon,
+ YoutubeIcon,
+} from './icons';
+
+const socialList = {
+ fivehundredpx: {
+ name: '500px',
+ icon: FivehundredpxIcon,
+ },
+ amazon: {
+ name: 'Amazon',
+ icon: AmazonIcon,
+ },
+ bandcamp: {
+ name: 'Bandcamp',
+ icon: BandcampIcon,
+ },
+ behance: {
+ name: 'Behance',
+ icon: BehanceIcon,
+ },
+ chain: {
+ name: 'Link',
+ icon: ChainIcon,
+ },
+ codepen: {
+ name: 'CodePen',
+ icon: CodepenIcon,
+ },
+ deviantart: {
+ name: 'DeviantArt',
+ icon: DeviantartIcon,
+ },
+ dribbble: {
+ name: 'Dribbble',
+ icon: DribbbleIcon,
+ },
+ dropbox: {
+ name: 'Dropbox',
+ icon: DropboxIcon,
+ },
+ etsy: {
+ name: 'Etsy',
+ icon: EtsyIcon,
+ },
+ facebook: {
+ name: 'Facebook',
+ icon: FacebookIcon,
+ },
+ feed: {
+ name: 'RSS Feed',
+ icon: FeedIcon,
+ },
+ flickr: {
+ name: 'Flickr',
+ icon: FlickrIcon,
+ },
+ foursquare: {
+ name: 'Foursquare',
+ icon: FoursquareIcon,
+ },
+ goodreads: {
+ name: 'Goodreads',
+ icon: GoodreadsIcon,
+ },
+ google: {
+ name: 'Google',
+ icon: GoogleIcon,
+ },
+ github: {
+ name: 'Github',
+ icon: GithubIcon,
+ },
+ instagram: {
+ name: 'Instagram',
+ icon: InstagramIcon,
+ },
+ lastfm: {
+ name: 'Last.fm',
+ icon: LastfmIcon,
+ },
+ linkedin: {
+ name: 'Linkedin',
+ icon: LinkedinIcon,
+ },
+ mail: {
+ name: 'Mail',
+ icon: MailIcon,
+ },
+ mastodon: {
+ name: 'Mastodon',
+ icon: MastodonIcon,
+ },
+ meetup: {
+ name: 'Meetup',
+ icon: MeetupIcon,
+ },
+ medium: {
+ name: 'Medium',
+ icon: MediumIcon,
+ },
+ pinterest: {
+ name: 'Pinterest',
+ icon: PinterestIcon,
+ },
+ pocket: {
+ name: 'Pocket',
+ icon: PocketIcon,
+ },
+ reddit: {
+ name: 'Reddit',
+ icon: RedditIcon,
+ },
+ skype: {
+ name: 'Skype',
+ icon: SkypeIcon,
+ },
+ snapchat: {
+ name: 'Snapchat',
+ icon: SnapchatIcon,
+ },
+ soundcloud: {
+ name: 'Soundcloud',
+ icon: SoundcloudIcon,
+ },
+ spotify: {
+ name: 'Spotify',
+ icon: SpotifyIcon,
+ },
+ tumblr: {
+ name: 'Tumblr',
+ icon: TumblrIcon,
+ },
+ twitch: {
+ name: 'Twitch',
+ icon: TwitchIcon,
+ },
+ twitter: {
+ name: 'Twitter',
+ icon: TwitterIcon,
+ },
+ vimeo: {
+ name: 'Vimeo',
+ icon: VimeoIcon,
+ },
+ vk: {
+ name: 'VK',
+ icon: VkIcon,
+ },
+ wordpress: {
+ name: 'WordPress',
+ icon: WordPressIcon,
+ },
+ yelp: {
+ name: 'Yelp',
+ icon: YelpIcon,
+ },
+ youtube: {
+ name: 'YouTube',
+ icon: YoutubeIcon,
+ },
+};
+
+export default socialList;
+
+export const getIconBySite = ( site ) => {
+ return socialList[ site ].icon;
+};
diff --git a/packages/block-library/src/social-links/block.json b/packages/block-library/src/social-links/block.json
new file mode 100644
index 0000000000000..6d25baacb1a85
--- /dev/null
+++ b/packages/block-library/src/social-links/block.json
@@ -0,0 +1,6 @@
+{
+ "name": "core/social-links",
+ "category": "widgets",
+ "icon": "share",
+ "attributes": {}
+}
diff --git a/packages/block-library/src/social-links/edit.js b/packages/block-library/src/social-links/edit.js
new file mode 100644
index 0000000000000..a6f4ac0414013
--- /dev/null
+++ b/packages/block-library/src/social-links/edit.js
@@ -0,0 +1,40 @@
+/**
+ * WordPress dependencies
+ */
+
+import {
+ InnerBlocks,
+} from '@wordpress/block-editor';
+
+/**
+ * Internal dependencies
+ */
+import socialList from '../social-link/social-list';
+
+const ALLOWED_BLOCKS = Object.keys( socialList ).map( ( site ) => {
+ return 'core/social-link-' + site;
+} );
+
+// Template contains the links that show when start.
+const TEMPLATE = [
+ [ 'core/social-link-facebook' ],
+ [ 'core/social-link-twitter' ],
+ [ 'core/social-link-instagram' ],
+ [ 'core/social-link-linkedin' ],
+ [ 'core/social-link-youtube' ],
+ [ 'core/social-link-mail', { url: 'mailto:' } ],
+];
+
+export const SocialLinksEdit = function( { className } ) {
+ return (
+
+
+
+ );
+};
+
+export default SocialLinksEdit;
diff --git a/packages/block-library/src/social-links/editor.scss b/packages/block-library/src/social-links/editor.scss
new file mode 100644
index 0000000000000..1e08baf10fea7
--- /dev/null
+++ b/packages/block-library/src/social-links/editor.scss
@@ -0,0 +1,113 @@
+
+.wp-block-social-links div.editor-url-input {
+ display: inline-block;
+ margin-left: 8px;
+}
+
+.wp-block-social-links .editor-block-list__layout {
+ display: flex;
+ justify-content: flex-start;
+}
+
+// Reduce the paddings, margins, and UI of inner-blocks.
+// @todo: eventually we may add a feature that lets a parent container absorb the block UI of a child block.
+// When that happens, leverage that instead of the following overrides.
+.wp-block-social-links {
+ // 1. Reset margins on immediate innerblocks container.
+ > .block-editor-inner-blocks > .block-editor-block-list__layout {
+ margin-left: 0;
+ margin-right: 0;
+ }
+
+ // 2. Remove paddings on subsequent immediate children.
+ > .block-editor-inner-blocks > .block-editor-block-list__layout > .wp-block {
+ width: auto;
+ padding-left: 0;
+ padding-right: 0;
+ }
+
+ // 3. Remove margins on subsequent Edit container.
+ > .block-editor-inner-blocks > .block-editor-block-list__layout > .wp-block > .block-editor-block-list__block-edit {
+ margin-left: 0;
+ margin-right: 0;
+ }
+
+ // 4. Hide the block outlines.
+ > .block-editor-inner-blocks > .block-editor-block-list__layout > .wp-block > .block-editor-block-list__block-edit::before {
+ content: none;
+ }
+
+ // 5. Remove vertical margins on subsequent block container.
+ > .block-editor-inner-blocks > .block-editor-block-list__layout > .wp-block > .block-editor-block-list__block-edit > [data-block] {
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+
+ // Hide the breadcrumb.
+ // Hide the mover.
+ .block-editor-block-list__breadcrumb,
+ .block-editor-block-mover.block-editor-block-mover { // Needs specificity.
+ display: none;
+ }
+}
+
+
+// Polish the Appender.
+.wp-block-social-links .block-list-appender {
+ margin: 0;
+
+ .block-editor-button-block-appender {
+ padding: $grid-size;
+ outline: none;
+ background: none;
+ }
+}
+
+// Center flex items. This has an equivalent in style.scss.
+[data-type="core/social-links"][data-align="center"] .wp-block-social-links {
+ justify-content: center;
+}
+
+// Improve the preview.
+// @todo: Look at improving the preview component to make this unnecessary.
+.block-editor-block-preview__content {
+
+ // This ensures buttons in preview are fully opaque despite being disabled.
+ .wp-social-link:disabled {
+ opacity: 1;
+ }
+
+ // This ensures the preview is of a good size.
+ [data-type="core/social-links"] {
+ width: auto !important;
+ display: inline-block;
+ }
+}
+
+// Selected/unselected states.
+// Unselected block is preview, selected has additional options.
+[data-type="core/social-links"]:not(.is-selected):not(.has-child-selected) .wp-block-social-links {
+ min-height: 36px; // This height matches the height of the buttons and ensures an empty block doesn't collapse.
+}
+
+// Disappear but show on hover or nav mode focus.
+[data-type="core/social-links"] .wp-social-link__is-incomplete {
+ transition: transform 0.1s ease;
+ transform-origin: center center;
+}
+
+[data-type="core/social-links"]:not(.is-selected):not(.has-child-selected):not(.is-hovered) {
+ .wp-social-link__is-incomplete {
+ opacity: 0;
+ transform: scale(0);
+ width: 0;
+ padding: 0;
+ margin-right: 0;
+ }
+}
+
+[data-type="core/social-links"]:not(.is-selected):not(.has-child-selected) {
+ .wp-social-link__is-incomplete {
+ opacity: 0.6;
+ }
+}
diff --git a/packages/block-library/src/social-links/index.js b/packages/block-library/src/social-links/index.js
new file mode 100644
index 0000000000000..1e9df3194865a
--- /dev/null
+++ b/packages/block-library/src/social-links/index.js
@@ -0,0 +1,30 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Internal dependencies
+ */
+import edit from './edit';
+import metadata from './block.json';
+import save from './save';
+
+const { name } = metadata;
+
+export { metadata, name };
+
+export const settings = {
+ title: __( 'Social links' ),
+ description: __( 'Create a block of links to your social media or external sites' ),
+ supports: {
+ align: [ 'left', 'center', 'right' ],
+ },
+ styles: [
+ { name: 'default', label: __( 'Default' ), isDefault: true },
+ { name: 'logos-only', label: __( 'Logos Only' ) },
+ { name: 'pill-shape', label: __( 'Pill Shape' ) },
+ ],
+ edit,
+ save,
+};
diff --git a/packages/block-library/src/social-links/save.js b/packages/block-library/src/social-links/save.js
new file mode 100644
index 0000000000000..d21ee51216daa
--- /dev/null
+++ b/packages/block-library/src/social-links/save.js
@@ -0,0 +1,12 @@
+/**
+ * WordPress dependencies
+ */
+import { InnerBlocks } from '@wordpress/block-editor';
+
+export default function save( { className } ) {
+ return (
+
+ );
+}
diff --git a/packages/block-library/src/social-links/style.scss b/packages/block-library/src/social-links/style.scss
new file mode 100644
index 0000000000000..ee5e1305dfa76
--- /dev/null
+++ b/packages/block-library/src/social-links/style.scss
@@ -0,0 +1,405 @@
+.wp-block-social-links {
+ display: flex;
+ justify-content: flex-start;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.wp-social-link {
+ display: block;
+ width: 36px;
+ height: 36px;
+ border-radius: 36px; // This makes it pill-shaped instead of oval, in cases where the image fed is not perfectly sized.
+ margin-right: $grid-size;
+ transition: transform 0.1s ease;
+
+ a {
+ padding: 6px;
+ display: block;
+ line-height: 0;
+ transition: transform 0.1s ease;
+ }
+
+ a,
+ a:hover,
+ a:active,
+ a:visited,
+ svg {
+ color: currentColor;
+ fill: currentColor;
+ }
+
+ &:hover {
+ transform: scale(1.1);
+ }
+}
+
+// Center flex items. This has an equivalent in editor.scss.
+// It also needs to override some of the default classes usually applied to the centering class.
+.wp-block-social-links.aligncenter {
+ justify-content: center;
+ display: flex;
+}
+
+
+// Provide colors for a range of icons.
+.wp-block-social-links:not(.is-style-logos-only) {
+ // Generic items such as mail, feed, etc.
+ .wp-social-link {
+ background-color: #f0f0f0;
+ color: #444;
+ }
+
+ .wp-social-link-amazon {
+ background-color: #f90;
+ color: #fff;
+ }
+
+ .wp-social-link-bandcamp {
+ background-color: #1ea0c3;
+ color: #fff;
+ }
+
+ .wp-social-link-behance {
+ background-color: #0757fe;
+ color: #fff;
+ }
+
+ .wp-social-link-codepen {
+ background-color: #1e1f26;
+ color: #fff;
+ }
+
+ .wp-social-link-deviantart {
+ background-color: #02e49b;
+ color: #fff;
+ }
+
+ .wp-social-link-dribbble {
+ background-color: #e94c89;
+ color: #fff;
+ }
+
+ .wp-social-link-dropbox {
+ background-color: #4280ff;
+ color: #fff;
+ }
+
+ .wp-social-link-etsy {
+ background-color: #f45800;
+ color: #fff;
+ }
+
+ .wp-social-link-facebook {
+ background-color: #1977f2;
+ color: #fff;
+ }
+
+ .wp-social-link-fivehundredpx {
+ background-color: #000;
+ color: #fff;
+ }
+
+ .wp-social-link-flickr {
+ background-color: #0461dd;
+ color: #fff;
+ }
+
+ .wp-social-link-foursquare {
+ background-color: #e65678;
+ color: #fff;
+ }
+
+ .wp-social-link-github {
+ background-color: #24292d;
+ color: #fff;
+ }
+
+ .wp-social-link-goodreads {
+ background-color: #eceadd;
+ color: #382110;
+ }
+
+ .wp-social-link-google {
+ background-color: #ea4434;
+ color: #fff;
+ }
+
+ .wp-social-link-instagram {
+ background-color: #f00075;
+ color: #fff;
+ }
+
+ .wp-social-link-lastfm {
+ background-color: #e21b24;
+ color: #fff;
+ }
+
+ .wp-social-link-linkedin {
+ background-color: #0577b5;
+ color: #fff;
+ }
+
+ .wp-social-link-mastodon {
+ background-color: #3288d4;
+ color: #fff;
+ }
+
+ .wp-social-link-medium {
+ background-color: #02ab6c;
+ color: #fff;
+ }
+
+ .wp-social-link-meetup {
+ background-color: #f6405f;
+ color: #fff;
+ }
+
+ .wp-social-link-pinterest {
+ background-color: #e60122;
+ color: #fff;
+ }
+
+ .wp-social-link-pocket {
+ background-color: #ef4155;
+ color: #fff;
+ }
+
+ .wp-social-link-reddit {
+ background-color: #fe4500;
+ color: #fff;
+ }
+
+ .wp-social-link-skype {
+ background-color: #0478d7;
+ color: #fff;
+ }
+
+ .wp-social-link-snapchat {
+ background-color: #fefc00;
+ color: #fff;
+ stroke: #000;
+ }
+
+ .wp-social-link-soundcloud {
+ background-color: #ff5600;
+ color: #fff;
+ }
+
+ .wp-social-link-spotify {
+ background-color: #1bd760;
+ color: #fff;
+ }
+
+ .wp-social-link-tumblr {
+ background-color: #011835;
+ color: #fff;
+ }
+
+ .wp-social-link-twitch {
+ background-color: #6440a4;
+ color: #fff;
+ }
+
+ .wp-social-link-twitter {
+ background-color: #21a1f3;
+ color: #fff;
+ }
+
+ .wp-social-link-vimeo {
+ background-color: #1eb7ea;
+ color: #fff;
+ }
+
+ .wp-social-link-vk {
+ background-color: #4680c2;
+ color: #fff;
+ }
+
+ .wp-social-link-wordpress {
+ background-color: #3499cd;
+ color: #fff;
+ }
+
+ .wp-social-link-yelp {
+ background-color: #d32422;
+ color: #fff;
+ }
+
+ .wp-social-link-youtube {
+ background-color: #ff0100;
+ color: #fff;
+ }
+}
+
+// Treatment for logos only style.
+.wp-block-social-links.is-style-logos-only {
+ .wp-social-link {
+ background: none;
+
+ // Make these bigger.
+ padding: 4px;
+ svg {
+ width: 28px;
+ height: 28px;
+ }
+ }
+
+ .wp-social-link-amazon {
+ color: #f90;
+ }
+
+ .wp-social-link-bandcamp {
+ color: #1ea0c3;
+ }
+
+ .wp-social-link-behance {
+ color: #0757fe;
+ }
+
+ .wp-social-link-codepen {
+ color: #1e1f26;
+ }
+
+ .wp-social-link-deviantart {
+ color: #02e49b;
+ }
+
+ .wp-social-link-dribbble {
+ color: #e94c89;
+ }
+
+ .wp-social-link-dropbox {
+ color: #4280ff;
+ }
+
+ .wp-social-link-etsy {
+ color: #f45800;
+ }
+
+ .wp-social-link-facebook {
+ color: #1977f2;
+ }
+
+ .wp-social-link-fivehundredpx {
+ color: #000;
+ }
+
+ .wp-social-link-flickr {
+ color: #0461dd;
+ }
+
+ .wp-social-link-foursquare {
+ color: #e65678;
+ }
+
+ .wp-social-link-github {
+ color: #24292d;
+ }
+
+ .wp-social-link-goodreads {
+ color: #382110;
+ }
+
+ .wp-social-link-google {
+ color: #ea4434;
+ }
+
+ .wp-social-link-instagram {
+ color: #f00075;
+ }
+
+ .wp-social-link-lastfm {
+ color: #e21b24;
+ }
+
+ .wp-social-link-linkedin {
+ color: #0577b5;
+ }
+
+ .wp-social-link-mastodon {
+ color: #3288d4;
+ }
+
+ .wp-social-link-medium {
+ color: #02ab6c;
+ }
+
+ .wp-social-link-meetup {
+ color: #f6405f;
+ }
+
+ .wp-social-link-pinterest {
+ color: #e60122;
+ }
+
+ .wp-social-link-pocket {
+ color: #ef4155;
+ }
+
+ .wp-social-link-reddit {
+ color: #fe4500;
+ }
+
+ .wp-social-link-skype {
+ color: #0478d7;
+ }
+
+ .wp-social-link-snapchat {
+ color: #fff;
+ stroke: #000;
+ }
+
+ .wp-social-link-soundcloud {
+ color: #ff5600;
+ }
+
+ .wp-social-link-spotify {
+ color: #1bd760;
+ }
+
+ .wp-social-link-tumblr {
+ color: #011835;
+ }
+
+ .wp-social-link-twitch {
+ color: #6440a4;
+ }
+
+ .wp-social-link-twitter {
+ color: #21a1f3;
+ }
+
+ .wp-social-link-vimeo {
+ color: #1eb7ea;
+ }
+
+ .wp-social-link-vk {
+ color: #4680c2;
+ }
+
+ .wp-social-link-wordpress {
+ color: #3499cd;
+ }
+
+ .wp-social-link-yelp {
+ background-color: #d32422;
+ color: #fff;
+ }
+
+ .wp-social-link-youtube {
+ color: #ff0100;
+ }
+}
+
+// Treatment for pill shape style.
+.wp-block-social-links.is-style-pill-shape {
+ .wp-social-link {
+ width: auto;
+ }
+
+ .wp-social-link a {
+ padding-left: 16px;
+ padding-right: 16px;
+ }
+}
diff --git a/packages/block-library/src/style.scss b/packages/block-library/src/style.scss
index fd78fcc3b18d1..433ef8cb3aa2f 100644
--- a/packages/block-library/src/style.scss
+++ b/packages/block-library/src/style.scss
@@ -17,6 +17,7 @@
@import "./rss/style.scss";
@import "./search/style.scss";
@import "./separator/style.scss";
+@import "./social-links/style.scss";
@import "./spacer/style.scss";
@import "./subhead/style.scss";
@import "./table/style.scss";
diff --git a/packages/e2e-tests/fixtures/block-transforms.js b/packages/e2e-tests/fixtures/block-transforms.js
index 8c09d9c50a834..d0cb4f59d3e27 100644
--- a/packages/e2e-tests/fixtures/block-transforms.js
+++ b/packages/e2e-tests/fixtures/block-transforms.js
@@ -417,6 +417,246 @@ export const EXPECTED_TRANSFORMS = {
'Group',
],
},
+ 'core__social-link-amazon': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Amazon',
+ },
+ 'core__social-link-bandcamp': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Bandcamp',
+ },
+ 'core__social-link-behance': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Behance',
+ },
+ 'core__social-link-chain': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Link',
+ },
+ 'core__social-link-codepen': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'CodePen',
+ },
+ 'core__social-link-deviantart': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'DeviantArt',
+ },
+ 'core__social-link-dribbble': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Dribbble',
+ },
+ 'core__social-link-dropbox': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Dropbox',
+ },
+ 'core__social-link-etsy': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Etsy',
+ },
+ 'core__social-link-facebook': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Facebook',
+ },
+ 'core__social-link-feed': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'RSS Feed',
+ },
+ 'core__social-link-fivehundredpx': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: '500px',
+ },
+ 'core__social-link-flickr': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Flickr',
+ },
+ 'core__social-link-foursquare': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Foursquare',
+ },
+ 'core__social-link-github': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Github',
+ },
+ 'core__social-link-goodreads': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Goodreads',
+ },
+ 'core__social-link-google': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Google',
+ },
+ 'core__social-link-instagram': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Instagram',
+ },
+ 'core__social-link-lastfm': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Last.fm',
+ },
+ 'core__social-link-linkedin': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Linkedin',
+ },
+ 'core__social-link-mail': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Mail',
+ },
+ 'core__social-link-mastodon': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Mastodon',
+ },
+ 'core__social-link-medium': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Medium',
+ },
+ 'core__social-link-meetup': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Meetup',
+ },
+ 'core__social-link-pinterest': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Pinterest',
+ },
+ 'core__social-link-pocket': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Pocket',
+ },
+ 'core__social-link-reddit': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Reddit',
+ },
+ 'core__social-link-skype': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Skype',
+ },
+ 'core__social-link-snapchat': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Snapchat',
+ },
+ 'core__social-link-soundcloud': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Soundcloud',
+ },
+ 'core__social-link-spotify': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Spotify',
+ },
+ 'core__social-link-tumblr': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Tumblr',
+ },
+ 'core__social-link-twitch': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Twitch',
+ },
+ 'core__social-link-twitter': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Twitter',
+ },
+ 'core__social-link-vimeo': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Vimeo',
+ },
+ 'core__social-link-vk': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'VK',
+ },
+ 'core__social-link-wordpress': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'WordPress',
+ },
+ 'core__social-link-yelp': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'Yelp',
+ },
+ 'core__social-link-youtube': {
+ availableTransforms: [
+ 'Group',
+ ],
+ originalBlock: 'YouTube',
+ },
+ 'core__social-links': {
+ originalBlock: 'Social links',
+ availableTransforms: [
+ 'Group',
+ ],
+ },
core__spacer: {
originalBlock: 'Spacer',
availableTransforms: [
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.html b/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.html
new file mode 100644
index 0000000000000..c630c4dcfdca9
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.json b/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.json
new file mode 100644
index 0000000000000..a081e60faa76f
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-amazon",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "amazon"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.parsed.json
new file mode 100644
index 0000000000000..f5e1e92ddd497
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-amazon",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.serialized.html
new file mode 100644
index 0000000000000..c630c4dcfdca9
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-amazon.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.html b/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.html
new file mode 100644
index 0000000000000..cae593328da61
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.json b/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.json
new file mode 100644
index 0000000000000..cdbfb242c9c24
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-bandcamp",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "bandcamp"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.parsed.json
new file mode 100644
index 0000000000000..c3ade51de7f5e
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-bandcamp",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.serialized.html
new file mode 100644
index 0000000000000..cae593328da61
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-bandcamp.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-behance.html b/packages/e2e-tests/fixtures/blocks/core__social-link-behance.html
new file mode 100644
index 0000000000000..af865404ba3c6
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-behance.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-behance.json b/packages/e2e-tests/fixtures/blocks/core__social-link-behance.json
new file mode 100644
index 0000000000000..fe6a3cfdfaf39
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-behance.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-behance",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "behance"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-behance.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-behance.parsed.json
new file mode 100644
index 0000000000000..dbec736490d27
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-behance.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-behance",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-behance.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-behance.serialized.html
new file mode 100644
index 0000000000000..af865404ba3c6
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-behance.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-chain.html b/packages/e2e-tests/fixtures/blocks/core__social-link-chain.html
new file mode 100644
index 0000000000000..aa4518a2fb581
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-chain.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-chain.json b/packages/e2e-tests/fixtures/blocks/core__social-link-chain.json
new file mode 100644
index 0000000000000..def33c86baed3
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-chain.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-chain",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "chain"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-chain.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-chain.parsed.json
new file mode 100644
index 0000000000000..02bc7d62d6ce3
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-chain.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-chain",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-chain.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-chain.serialized.html
new file mode 100644
index 0000000000000..aa4518a2fb581
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-chain.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.html b/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.html
new file mode 100644
index 0000000000000..9ec65de01260b
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.json b/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.json
new file mode 100644
index 0000000000000..fe1f234fe10cb
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-codepen",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "codepen"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.parsed.json
new file mode 100644
index 0000000000000..224cc351a8139
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-codepen",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.serialized.html
new file mode 100644
index 0000000000000..9ec65de01260b
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-codepen.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.html b/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.html
new file mode 100644
index 0000000000000..510edf67f01b5
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.json b/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.json
new file mode 100644
index 0000000000000..316203f142a3a
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-deviantart",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "deviantart"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.parsed.json
new file mode 100644
index 0000000000000..741528c2de05b
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-deviantart",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.serialized.html
new file mode 100644
index 0000000000000..510edf67f01b5
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-deviantart.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.html b/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.html
new file mode 100644
index 0000000000000..aa3ffa3602148
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.json b/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.json
new file mode 100644
index 0000000000000..303a091a45bce
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-dribbble",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "dribbble"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.parsed.json
new file mode 100644
index 0000000000000..f6b92b9839426
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-dribbble",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.serialized.html
new file mode 100644
index 0000000000000..aa3ffa3602148
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-dribbble.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.html b/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.html
new file mode 100644
index 0000000000000..f6050fe6fc970
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.json b/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.json
new file mode 100644
index 0000000000000..1495c5c0de9d8
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-dropbox",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "dropbox"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.parsed.json
new file mode 100644
index 0000000000000..b1d7ada2aee1e
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-dropbox",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.serialized.html
new file mode 100644
index 0000000000000..f6050fe6fc970
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-dropbox.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.html b/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.html
new file mode 100644
index 0000000000000..4a5f4d13550e8
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.json b/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.json
new file mode 100644
index 0000000000000..1b1af269814c0
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-etsy",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "etsy"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.parsed.json
new file mode 100644
index 0000000000000..526f245ce2c0a
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-etsy",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.serialized.html
new file mode 100644
index 0000000000000..4a5f4d13550e8
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-etsy.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.html b/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.html
new file mode 100644
index 0000000000000..0c68ee581f6ba
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.json b/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.json
new file mode 100644
index 0000000000000..8d15595a70e81
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-facebook",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "facebook"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.parsed.json
new file mode 100644
index 0000000000000..85e63634196ee
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-facebook",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.serialized.html
new file mode 100644
index 0000000000000..0c68ee581f6ba
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-facebook.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-feed.html b/packages/e2e-tests/fixtures/blocks/core__social-link-feed.html
new file mode 100644
index 0000000000000..3ff3168cad63a
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-feed.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-feed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-feed.json
new file mode 100644
index 0000000000000..8dbe5639671b0
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-feed.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-feed",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "feed"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-feed.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-feed.parsed.json
new file mode 100644
index 0000000000000..983b9f2ffc50b
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-feed.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-feed",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-feed.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-feed.serialized.html
new file mode 100644
index 0000000000000..3ff3168cad63a
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-feed.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.html b/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.html
new file mode 100644
index 0000000000000..cc789b624ef6c
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.json b/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.json
new file mode 100644
index 0000000000000..9877ca611654d
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-fivehundredpx",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "fivehundredpx"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.parsed.json
new file mode 100644
index 0000000000000..5e44677986e63
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-fivehundredpx",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.serialized.html
new file mode 100644
index 0000000000000..cc789b624ef6c
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-fivehundredpx.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.html b/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.html
new file mode 100644
index 0000000000000..bee73541a6636
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.json b/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.json
new file mode 100644
index 0000000000000..d17d87bfb21b7
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-flickr",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "flickr"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.parsed.json
new file mode 100644
index 0000000000000..edbdc7275d6ef
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-flickr",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.serialized.html
new file mode 100644
index 0000000000000..bee73541a6636
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-flickr.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.html b/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.html
new file mode 100644
index 0000000000000..7d340ca429e65
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.json b/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.json
new file mode 100644
index 0000000000000..1ee1b8c87c451
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-foursquare",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "foursquare"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.parsed.json
new file mode 100644
index 0000000000000..b5925cf3d91fd
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-foursquare",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.serialized.html
new file mode 100644
index 0000000000000..7d340ca429e65
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-foursquare.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-github.html b/packages/e2e-tests/fixtures/blocks/core__social-link-github.html
new file mode 100644
index 0000000000000..b22a22d38d182
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-github.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-github.json b/packages/e2e-tests/fixtures/blocks/core__social-link-github.json
new file mode 100644
index 0000000000000..d9c1a71503d96
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-github.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-github",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "github"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-github.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-github.parsed.json
new file mode 100644
index 0000000000000..87e489ef52a2d
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-github.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-github",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-github.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-github.serialized.html
new file mode 100644
index 0000000000000..b22a22d38d182
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-github.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.html b/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.html
new file mode 100644
index 0000000000000..149e3173fcbd5
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.json b/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.json
new file mode 100644
index 0000000000000..8dd4f45ab71b0
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-goodreads",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "goodreads"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.parsed.json
new file mode 100644
index 0000000000000..52f0e3516307f
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-goodreads",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.serialized.html
new file mode 100644
index 0000000000000..149e3173fcbd5
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-goodreads.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-google.html b/packages/e2e-tests/fixtures/blocks/core__social-link-google.html
new file mode 100644
index 0000000000000..bb287992b2a60
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-google.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-google.json b/packages/e2e-tests/fixtures/blocks/core__social-link-google.json
new file mode 100644
index 0000000000000..f9e932f117509
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-google.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-google",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "google"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-google.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-google.parsed.json
new file mode 100644
index 0000000000000..8810c90640bc8
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-google.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-google",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-google.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-google.serialized.html
new file mode 100644
index 0000000000000..bb287992b2a60
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-google.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.html b/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.html
new file mode 100644
index 0000000000000..9128e9ad8d13a
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.json b/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.json
new file mode 100644
index 0000000000000..671483001d5ff
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-instagram",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "instagram"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.parsed.json
new file mode 100644
index 0000000000000..d9b13179d93be
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-instagram",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.serialized.html
new file mode 100644
index 0000000000000..9128e9ad8d13a
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-instagram.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.html b/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.html
new file mode 100644
index 0000000000000..8c7b86908204d
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.json b/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.json
new file mode 100644
index 0000000000000..175b295ee8503
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-lastfm",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "lastfm"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.parsed.json
new file mode 100644
index 0000000000000..00642b1baee89
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-lastfm",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.serialized.html
new file mode 100644
index 0000000000000..8c7b86908204d
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-lastfm.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.html b/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.html
new file mode 100644
index 0000000000000..833e2a7b2a2e0
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.json b/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.json
new file mode 100644
index 0000000000000..178d79b10833f
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-linkedin",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "linkedin"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.parsed.json
new file mode 100644
index 0000000000000..e67a1198c80e0
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-linkedin",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.serialized.html
new file mode 100644
index 0000000000000..833e2a7b2a2e0
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-linkedin.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-mail.html b/packages/e2e-tests/fixtures/blocks/core__social-link-mail.html
new file mode 100644
index 0000000000000..1d2554c0627cd
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-mail.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-mail.json b/packages/e2e-tests/fixtures/blocks/core__social-link-mail.json
new file mode 100644
index 0000000000000..d78a44bd48859
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-mail.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-mail",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "mail"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-mail.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-mail.parsed.json
new file mode 100644
index 0000000000000..4d9f2e909de69
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-mail.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-mail",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-mail.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-mail.serialized.html
new file mode 100644
index 0000000000000..1d2554c0627cd
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-mail.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.html b/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.html
new file mode 100644
index 0000000000000..918161e393320
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.json b/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.json
new file mode 100644
index 0000000000000..8863d06052d35
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-mastodon",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "mastodon"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.parsed.json
new file mode 100644
index 0000000000000..8624cb56072e2
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-mastodon",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.serialized.html
new file mode 100644
index 0000000000000..918161e393320
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-mastodon.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-medium.html b/packages/e2e-tests/fixtures/blocks/core__social-link-medium.html
new file mode 100644
index 0000000000000..8d05b709cbf6c
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-medium.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-medium.json b/packages/e2e-tests/fixtures/blocks/core__social-link-medium.json
new file mode 100644
index 0000000000000..4e6059a0a4642
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-medium.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-medium",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "medium"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-medium.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-medium.parsed.json
new file mode 100644
index 0000000000000..49a78e2f162bf
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-medium.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-medium",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-medium.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-medium.serialized.html
new file mode 100644
index 0000000000000..8d05b709cbf6c
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-medium.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.html b/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.html
new file mode 100644
index 0000000000000..fad1ee2daf293
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.json b/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.json
new file mode 100644
index 0000000000000..060ec9070f81c
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-meetup",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "meetup"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.parsed.json
new file mode 100644
index 0000000000000..4c91dfc9a4cd9
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-meetup",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.serialized.html
new file mode 100644
index 0000000000000..fad1ee2daf293
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-meetup.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.html b/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.html
new file mode 100644
index 0000000000000..1d78b59f30470
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.json b/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.json
new file mode 100644
index 0000000000000..ad54fd64317e4
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-pinterest",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "pinterest"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.parsed.json
new file mode 100644
index 0000000000000..d5344890c9f81
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-pinterest",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.serialized.html
new file mode 100644
index 0000000000000..1d78b59f30470
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-pinterest.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.html b/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.html
new file mode 100644
index 0000000000000..c65930150dd3a
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.json b/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.json
new file mode 100644
index 0000000000000..76e391ee54c29
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-pocket",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "pocket"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.parsed.json
new file mode 100644
index 0000000000000..8e36616dc5441
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-pocket",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.serialized.html
new file mode 100644
index 0000000000000..c65930150dd3a
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-pocket.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.html b/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.html
new file mode 100644
index 0000000000000..50ab2ae71ab8d
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.json b/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.json
new file mode 100644
index 0000000000000..8e80c1bdfd285
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-reddit",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "reddit"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.parsed.json
new file mode 100644
index 0000000000000..ec740147dbe57
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-reddit",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.serialized.html
new file mode 100644
index 0000000000000..50ab2ae71ab8d
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-reddit.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-skype.html b/packages/e2e-tests/fixtures/blocks/core__social-link-skype.html
new file mode 100644
index 0000000000000..e152f07c6c1c2
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-skype.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-skype.json b/packages/e2e-tests/fixtures/blocks/core__social-link-skype.json
new file mode 100644
index 0000000000000..c0ae117605006
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-skype.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-skype",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "skype"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-skype.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-skype.parsed.json
new file mode 100644
index 0000000000000..7fc823fc99405
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-skype.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-skype",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-skype.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-skype.serialized.html
new file mode 100644
index 0000000000000..e152f07c6c1c2
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-skype.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.html b/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.html
new file mode 100644
index 0000000000000..a9e616b5c22ce
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.json b/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.json
new file mode 100644
index 0000000000000..827254a450e7d
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-snapchat",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "snapchat"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.parsed.json
new file mode 100644
index 0000000000000..1547a02060ddd
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-snapchat",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.serialized.html
new file mode 100644
index 0000000000000..a9e616b5c22ce
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-snapchat.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.html b/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.html
new file mode 100644
index 0000000000000..82ea5653bc362
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.json b/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.json
new file mode 100644
index 0000000000000..4d76ca9c5ff7b
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-soundcloud",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "soundcloud"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.parsed.json
new file mode 100644
index 0000000000000..17358f2e6f7a3
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-soundcloud",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.serialized.html
new file mode 100644
index 0000000000000..82ea5653bc362
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-soundcloud.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.html b/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.html
new file mode 100644
index 0000000000000..152b96e2efea6
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.json b/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.json
new file mode 100644
index 0000000000000..d02543135f258
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-spotify",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "spotify"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.parsed.json
new file mode 100644
index 0000000000000..fc81eff1afe87
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-spotify",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.serialized.html
new file mode 100644
index 0000000000000..152b96e2efea6
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-spotify.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.html b/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.html
new file mode 100644
index 0000000000000..337386ff5bbbb
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.json b/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.json
new file mode 100644
index 0000000000000..de9ce89f19b51
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-tumblr",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "tumblr"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.parsed.json
new file mode 100644
index 0000000000000..c63805e610194
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-tumblr",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.serialized.html
new file mode 100644
index 0000000000000..337386ff5bbbb
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-tumblr.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.html b/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.html
new file mode 100644
index 0000000000000..29f048b3d1be8
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.json b/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.json
new file mode 100644
index 0000000000000..0975169f8d6d4
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-twitch",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "twitch"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.parsed.json
new file mode 100644
index 0000000000000..8949b729ad13e
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-twitch",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.serialized.html
new file mode 100644
index 0000000000000..29f048b3d1be8
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-twitch.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.html b/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.html
new file mode 100644
index 0000000000000..3b9db6b710313
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.json b/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.json
new file mode 100644
index 0000000000000..dfaa1321180dc
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-twitter",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "twitter"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.parsed.json
new file mode 100644
index 0000000000000..880324c23f8d3
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-twitter",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.serialized.html
new file mode 100644
index 0000000000000..3b9db6b710313
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-twitter.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.html b/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.html
new file mode 100644
index 0000000000000..5e93e096e89db
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.json b/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.json
new file mode 100644
index 0000000000000..cbb6f2ac01465
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-vimeo",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "vimeo"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.parsed.json
new file mode 100644
index 0000000000000..b60bb1cd48c72
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-vimeo",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.serialized.html
new file mode 100644
index 0000000000000..5e93e096e89db
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-vimeo.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-vk.html b/packages/e2e-tests/fixtures/blocks/core__social-link-vk.html
new file mode 100644
index 0000000000000..bfd120873062e
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-vk.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-vk.json b/packages/e2e-tests/fixtures/blocks/core__social-link-vk.json
new file mode 100644
index 0000000000000..1c07d246de471
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-vk.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-vk",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "vk"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-vk.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-vk.parsed.json
new file mode 100644
index 0000000000000..7306459001ebd
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-vk.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-vk",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-vk.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-vk.serialized.html
new file mode 100644
index 0000000000000..bfd120873062e
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-vk.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.html b/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.html
new file mode 100644
index 0000000000000..08e5b837c6f17
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.json b/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.json
new file mode 100644
index 0000000000000..24342d4d93936
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-wordpress",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "wordpress"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.parsed.json
new file mode 100644
index 0000000000000..5970c1c528515
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-wordpress",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.serialized.html
new file mode 100644
index 0000000000000..08e5b837c6f17
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-wordpress.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.html b/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.html
new file mode 100644
index 0000000000000..29ec6f9fa952c
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.json b/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.json
new file mode 100644
index 0000000000000..c1302ead5a7bd
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-yelp",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "yelp"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.parsed.json
new file mode 100644
index 0000000000000..5863f9d0b1b2d
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-yelp",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.serialized.html
new file mode 100644
index 0000000000000..29ec6f9fa952c
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-yelp.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.html b/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.html
new file mode 100644
index 0000000000000..0521ba017ba21
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.json b/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.json
new file mode 100644
index 0000000000000..c8d54e0d61afc
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.json
@@ -0,0 +1,13 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-youtube",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "site": "youtube"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.parsed.json
new file mode 100644
index 0000000000000..447f6933d65ad
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.parsed.json
@@ -0,0 +1,20 @@
+[
+ {
+ "blockName": "core/social-link-youtube",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.serialized.html
new file mode 100644
index 0000000000000..0521ba017ba21
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-link-youtube.serialized.html
@@ -0,0 +1 @@
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-links.html b/packages/e2e-tests/fixtures/blocks/core__social-links.html
new file mode 100644
index 0000000000000..4f867ddd4fb03
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-links.html
@@ -0,0 +1,3 @@
+
+
+
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-links.json b/packages/e2e-tests/fixtures/blocks/core__social-links.json
new file mode 100644
index 0000000000000..ba0eff9f681a1
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-links.json
@@ -0,0 +1,22 @@
+[
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-links",
+ "isValid": true,
+ "attributes": {},
+ "innerBlocks": [
+ {
+ "clientId": "_clientId_0",
+ "name": "core/social-link-mastodon",
+ "isValid": true,
+ "attributes": {
+ "url": "https://mastodon.social/@marcuskaz",
+ "site": "mastodon"
+ },
+ "innerBlocks": [],
+ "originalContent": ""
+ }
+ ],
+ "originalContent": ""
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-links.parsed.json b/packages/e2e-tests/fixtures/blocks/core__social-links.parsed.json
new file mode 100644
index 0000000000000..9cb2198691c84
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-links.parsed.json
@@ -0,0 +1,32 @@
+[
+ {
+ "blockName": "core/social-links",
+ "attrs": {},
+ "innerBlocks": [
+ {
+ "blockName": "core/social-link-mastodon",
+ "attrs": {
+ "url": "https://mastodon.social/@marcuskaz"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ }
+ ],
+ "innerHTML": "\n\n",
+ "innerContent": [
+ "\n\n"
+ ]
+ },
+ {
+ "blockName": null,
+ "attrs": {},
+ "innerBlocks": [],
+ "innerHTML": "\n",
+ "innerContent": [
+ "\n"
+ ]
+ }
+]
diff --git a/packages/e2e-tests/fixtures/blocks/core__social-links.serialized.html b/packages/e2e-tests/fixtures/blocks/core__social-links.serialized.html
new file mode 100644
index 0000000000000..4f867ddd4fb03
--- /dev/null
+++ b/packages/e2e-tests/fixtures/blocks/core__social-links.serialized.html
@@ -0,0 +1,3 @@
+
+
+