diff --git a/apps/svelte.dev/src/lib/icons/discord-black.svg b/apps/svelte.dev/src/lib/icons/discord-black.svg
new file mode 100644
index 0000000000..ccf347891c
--- /dev/null
+++ b/apps/svelte.dev/src/lib/icons/discord-black.svg
@@ -0,0 +1 @@
+
diff --git a/apps/svelte.dev/src/lib/icons/discord-white.svg b/apps/svelte.dev/src/lib/icons/discord-white.svg
new file mode 100644
index 0000000000..7f9a31f02f
--- /dev/null
+++ b/apps/svelte.dev/src/lib/icons/discord-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/svelte.dev/src/lib/icons/github-black.svg b/apps/svelte.dev/src/lib/icons/github-black.svg
new file mode 100644
index 0000000000..2eb09aed3b
--- /dev/null
+++ b/apps/svelte.dev/src/lib/icons/github-black.svg
@@ -0,0 +1 @@
+
diff --git a/apps/svelte.dev/src/lib/icons/github-white.svg b/apps/svelte.dev/src/lib/icons/github-white.svg
new file mode 100644
index 0000000000..d5e6491854
--- /dev/null
+++ b/apps/svelte.dev/src/lib/icons/github-white.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/svelte.dev/src/lib/icons/theme-dark.svg b/apps/svelte.dev/src/lib/icons/theme-dark.svg
new file mode 100644
index 0000000000..5063700ede
--- /dev/null
+++ b/apps/svelte.dev/src/lib/icons/theme-dark.svg
@@ -0,0 +1 @@
+
diff --git a/apps/svelte.dev/src/lib/icons/theme-light.svg b/apps/svelte.dev/src/lib/icons/theme-light.svg
new file mode 100644
index 0000000000..b860398b56
--- /dev/null
+++ b/apps/svelte.dev/src/lib/icons/theme-light.svg
@@ -0,0 +1 @@
+
diff --git a/apps/svelte.dev/src/routes/+layout.svelte b/apps/svelte.dev/src/routes/+layout.svelte
index 2e29231de7..8dba4233ab 100644
--- a/apps/svelte.dev/src/routes/+layout.svelte
+++ b/apps/svelte.dev/src/routes/+layout.svelte
@@ -31,14 +31,12 @@
{/snippet}
{#snippet external_links()}
-
- Discord
-
+
+ Discord
-
- GitHub
-
+
+ GitHub
{/snippet}
@@ -66,4 +64,46 @@
height: 100%;
width: 100%;
}
+
+ @media (min-width: 800px) {
+ [data-icon] {
+ background: no-repeat 50% 50%;
+ background-size: calc(100% - 1rem) auto;
+ padding: 0 0.5rem;
+ opacity: 0.6;
+
+ :global(.dark) & {
+ opacity: 0.8;
+ }
+
+ /* visually hidden, but visible to screen readers */
+ span {
+ clip: rect(0 0 0 0);
+ clip-path: inset(50%);
+ height: 1px;
+ overflow: hidden;
+ position: absolute;
+ white-space: nowrap;
+ width: 1px;
+ }
+ }
+
+ [data-icon='discord'] {
+ width: 3.4rem;
+ background-image: url($lib/icons/discord-black.svg);
+
+ :global(.dark) & {
+ background-image: url($lib/icons/discord-white.svg);
+ }
+ }
+
+ [data-icon='github'] {
+ width: 3rem;
+ background-image: url($lib/icons/github-black.svg);
+
+ :global(.dark) & {
+ background-image: url($lib/icons/github-white.svg);
+ }
+ }
+ }
diff --git a/packages/site-kit/src/lib/components/Icons.svelte b/packages/site-kit/src/lib/components/Icons.svelte
index 1794a57758..eabce1c942 100644
--- a/packages/site-kit/src/lib/components/Icons.svelte
+++ b/packages/site-kit/src/lib/components/Icons.svelte
@@ -51,20 +51,6 @@ Provides a list of svg icons that can be referenced through the `Icon` component
-
-
-
-
-
-
-
-
diff --git a/packages/site-kit/src/lib/components/ThemeToggle.svelte b/packages/site-kit/src/lib/components/ThemeToggle.svelte
index b9660b7e46..6755366f82 100644
--- a/packages/site-kit/src/lib/components/ThemeToggle.svelte
+++ b/packages/site-kit/src/lib/components/ThemeToggle.svelte
@@ -1,6 +1,5 @@