diff --git a/docs/src/components/social-links-type.astro b/docs/src/components/social-links-type.astro
new file mode 100644
index 00000000000..fc62630de1a
--- /dev/null
+++ b/docs/src/components/social-links-type.astro
@@ -0,0 +1,7 @@
+---
+import { socialLinks } from '../../../packages/starlight/schemas/social';
+
+const socials = [...socialLinks].sort((a, b) => a.localeCompare(b, 'en'));
+---
+
+{`Partial `'${social}'`).join(' | ')}, string>>`}
diff --git a/docs/src/content/docs/guides/customization.mdx b/docs/src/content/docs/guides/customization.mdx
index 9cfe9cbec4b..adfd02cdbd7 100644
--- a/docs/src/content/docs/guides/customization.mdx
+++ b/docs/src/content/docs/guides/customization.mdx
@@ -191,7 +191,7 @@ defineConfig({
Starlight has built-in support for adding links to your social media accounts to the site header via the [`social`](/reference/configuration/#social) option in the Starlight integration.
-Currently, links to Bitbucket, Codeberg, CodePen, Discord, Email, Facebook, GitHub, GitLab, Gitter, Instagram, LinkedIn, Mastodon, Microsoft Teams, Patreon, Reddit, an RSS feed, Stack Overflow, Telegram, Threads, Twitch, Twitter, X, and Youtube are supported.
+You can find a full list of supported link icons in the [Configuration Reference](/reference/configuration/#social).
Let us know on GitHub or Discord if you need support for another service!
```js
diff --git a/docs/src/content/docs/reference/configuration.md b/docs/src/content/docs/reference/configuration.mdx
similarity index 96%
rename from docs/src/content/docs/reference/configuration.md
rename to docs/src/content/docs/reference/configuration.mdx
index ecdfe94dc6b..ea73668b7dc 100644
--- a/docs/src/content/docs/reference/configuration.md
+++ b/docs/src/content/docs/reference/configuration.mdx
@@ -208,7 +208,7 @@ interface BadgeConfig {
### `locales`
-**type:** { \[dir: string\]: [LocaleConfig](#localeconfig) }
+**type:** \{ \[dir: string\]: [LocaleConfig](#localeconfig) \}
[Configure internationalization (i18n)](/guides/i18n/) for your site by setting which `locales` are supported.
@@ -308,7 +308,9 @@ The default locale will be used to provide fallback content where translations a
### `social`
-**type:** `Partial>`
+import SocialLinksType from '../../../components/social-links-type.astro';
+
+**type:**
Optional details about the social media accounts for this site. Adding any of these will display them as icon links in the site header.
diff --git a/packages/starlight/schemas/social.ts b/packages/starlight/schemas/social.ts
index 2c9f929ac70..b8aac4b60d0 100644
--- a/packages/starlight/schemas/social.ts
+++ b/packages/starlight/schemas/social.ts
@@ -1,33 +1,35 @@
import { z } from 'astro/zod';
+export const socialLinks = [
+ 'twitter',
+ 'mastodon',
+ 'github',
+ 'gitlab',
+ 'bitbucket',
+ 'discord',
+ 'gitter',
+ 'codeberg',
+ 'codePen',
+ 'youtube',
+ 'threads',
+ 'linkedin',
+ 'twitch',
+ 'microsoftTeams',
+ 'instagram',
+ 'stackOverflow',
+ 'x.com',
+ 'telegram',
+ 'rss',
+ 'facebook',
+ 'email',
+ 'reddit',
+ 'patreon',
+] as const;
+
export const SocialLinksSchema = () =>
z
.record(
- z.enum([
- 'twitter',
- 'mastodon',
- 'github',
- 'gitlab',
- 'bitbucket',
- 'discord',
- 'gitter',
- 'codeberg',
- 'codePen',
- 'youtube',
- 'threads',
- 'linkedin',
- 'twitch',
- 'microsoftTeams',
- 'instagram',
- 'stackOverflow',
- 'x.com',
- 'telegram',
- 'rss',
- 'facebook',
- 'email',
- 'reddit',
- 'patreon',
- ]),
+ z.enum(socialLinks),
// Link to the respective social profile for this site
z.string().url()
)