diff --git a/.changeset/slick-books-sleep.md b/.changeset/slick-books-sleep.md
new file mode 100644
index 0000000000..b1deab67ba
--- /dev/null
+++ b/.changeset/slick-books-sleep.md
@@ -0,0 +1,6 @@
+---
+'@backstage/core-app-api': patch
+'@backstage/theme': patch
+---
+
+Added support for the `data-theme-name` attribute to dynamically update based on the active theme. Previously, this attribute was statically set to `backstage` and did not reflect theme changes.
diff --git a/packages/core-app-api/package.json b/packages/core-app-api/package.json
index 46f1dc04c4..e7f9455392 100644
--- a/packages/core-app-api/package.json
+++ b/packages/core-app-api/package.json
@@ -48,6 +48,7 @@
"dependencies": {
"@backstage/config": "workspace:^",
"@backstage/core-plugin-api": "workspace:^",
+ "@backstage/theme": "workspace:^",
"@backstage/types": "workspace:^",
"@backstage/version-bridge": "workspace:^",
"@types/prop-types": "^15.7.3",
diff --git a/packages/core-app-api/src/app/AppThemeProvider.tsx b/packages/core-app-api/src/app/AppThemeProvider.tsx
index 719736eabb..93c76eeba0 100644
--- a/packages/core-app-api/src/app/AppThemeProvider.tsx
+++ b/packages/core-app-api/src/app/AppThemeProvider.tsx
@@ -16,6 +16,7 @@
import { useMemo, useEffect, useState, PropsWithChildren } from 'react';
import { useApi, appThemeApiRef, AppTheme } from '@backstage/core-plugin-api';
+import { AppThemeIdContext } from '@backstage/theme';
import useObservable from 'react-use/esm/useObservable';
// This tries to find the most accurate match, but also falls back to less
@@ -88,5 +89,9 @@ export function AppThemeProvider({ children }: PropsWithChildren<{}>) {
throw new Error('App has no themes');
}
- return