diff --git a/.changeset/loading-button-disabled-styles.md b/.changeset/loading-button-disabled-styles.md
new file mode 100644
index 00000000000..ce49af2eeea
--- /dev/null
+++ b/.changeset/loading-button-disabled-styles.md
@@ -0,0 +1,5 @@
+---
+'@primer/react': patch
+---
+
+Button: Apply disabled styles while loading so the button looks non-interactive but stays focusable
diff --git a/e2e/components/Button.test.ts b/e2e/components/Button.test.ts
index c9a9674f9db..b8cf568d09d 100644
--- a/e2e/components/Button.test.ts
+++ b/e2e/components/Button.test.ts
@@ -59,6 +59,10 @@ const stories = [
title: 'Loading',
id: 'components-button-features--loading',
},
+ {
+ title: 'Loading Primary',
+ id: 'components-button-features--loading-primary',
+ },
{
title: 'Loading With Leading Visual',
id: 'components-button-features--loading-with-leading-visual',
diff --git a/packages/react/src/Button/Button.docs.json b/packages/react/src/Button/Button.docs.json
index 91707c4c7bd..79b09fd4788 100644
--- a/packages/react/src/Button/Button.docs.json
+++ b/packages/react/src/Button/Button.docs.json
@@ -58,6 +58,9 @@
{
"id": "components-button-features--loading"
},
+ {
+ "id": "components-button-features--loading-primary"
+ },
{
"id": "components-button-features--loading-custom-announcement"
},
diff --git a/packages/react/src/Button/Button.features.stories.tsx b/packages/react/src/Button/Button.features.stories.tsx
index 161029a4a88..5f8c1454937 100644
--- a/packages/react/src/Button/Button.features.stories.tsx
+++ b/packages/react/src/Button/Button.features.stories.tsx
@@ -194,6 +194,12 @@ export const Large = () =>
export const Loading = () =>
+export const LoadingPrimary = () => (
+
+)
+
export const LoadingCustomAnnouncement = () => (