diff --git a/packages/starlight/user-components/Card.astro b/packages/starlight/user-components/Card.astro
index d7ead9c97bf..d55eaad27c1 100644
--- a/packages/starlight/user-components/Card.astro
+++ b/packages/starlight/user-components/Card.astro
@@ -1,6 +1,6 @@
---
import Icon from './Icon.astro';
-import type { StarlightIcon } from '../components/Icons';
+import type { StarlightIcon } from '../utils/icons';
interface Props {
icon?: StarlightIcon;
diff --git a/packages/starlight/user-components/Icon.astro b/packages/starlight/user-components/Icon.astro
index ee7c443d578..490e6c44cfa 100644
--- a/packages/starlight/user-components/Icon.astro
+++ b/packages/starlight/user-components/Icon.astro
@@ -1,5 +1,6 @@
---
-import { Icons, type StarlightIcon } from '../components/Icons';
+import { Icon as AstroIcon } from 'astro-icon/components';
+import { Icons, isBuiltInIcon, type StarlightIcon } from '../utils/icons';
interface Props {
name: StarlightIcon;
@@ -13,15 +14,26 @@ const { name, label, size = '1em', color } = Astro.props;
const a11yAttrs = label ? ({ 'aria-label': label } as const) : ({ 'aria-hidden': 'true' } as const);
---
-
+{
+ isBuiltInIcon(name) ? (
+
+ ) : (
+
+ )
+}