From 27371cfb2ba27cd0af15ed880b7c06ba8285e16b Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Thu, 18 Jun 2026 09:47:53 +0200 Subject: [PATCH] fix(app): improve iOS PWA shell --- packages/app/index.html | 11 +++++++---- packages/app/public/oc-theme-preload.js | 3 ++- packages/ui/src/assets/favicon/site.webmanifest | 9 ++++++--- packages/ui/src/theme/context.tsx | 3 ++- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/packages/app/index.html b/packages/app/index.html index ad49b255324..d71535182c8 100644 --- a/packages/app/index.html +++ b/packages/app/index.html @@ -1,5 +1,5 @@ - + - + + + + - + -
+
diff --git a/packages/app/public/oc-theme-preload.js b/packages/app/public/oc-theme-preload.js index 18846fceb6b..11c9b39ec4c 100644 --- a/packages/app/public/oc-theme-preload.js +++ b/packages/app/public/oc-theme-preload.js @@ -15,10 +15,11 @@ document.documentElement.dataset.theme = themeId document.documentElement.dataset.colorScheme = mode + document.documentElement.style.backgroundColor = isDark ? "#080808" : "#fafafa" // Update theme-color meta tag to match app color scheme var metas = document.querySelectorAll("meta[name='theme-color']") - if (metas.length > 0) metas[0].setAttribute("content", isDark ? "#131010" : "#F8F7F7") + if (metas.length > 0) metas[0].setAttribute("content", isDark ? "#080808" : "#fafafa") if (themeId === "oc-2") return diff --git a/packages/ui/src/assets/favicon/site.webmanifest b/packages/ui/src/assets/favicon/site.webmanifest index 41290e840c3..5452d8dd979 100644 --- a/packages/ui/src/assets/favicon/site.webmanifest +++ b/packages/ui/src/assets/favicon/site.webmanifest @@ -1,6 +1,9 @@ { "name": "OpenCode", "short_name": "OpenCode", + "id": "/", + "start_url": "/", + "scope": "/", "icons": [ { "src": "/web-app-manifest-192x192.png", @@ -15,7 +18,7 @@ "purpose": "maskable" } ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" + "theme_color": "#080808", + "background_color": "#080808", + "display": "fullscreen" } diff --git a/packages/ui/src/theme/context.tsx b/packages/ui/src/theme/context.tsx index a1505a0e39d..1051345fbe2 100644 --- a/packages/ui/src/theme/context.tsx +++ b/packages/ui/src/theme/context.tsx @@ -152,10 +152,11 @@ function applyThemeCss(theme: DesktopTheme, themeId: string, mode: "light" | "da ensureThemeStyleElement().textContent = fullCss document.documentElement.dataset.theme = themeId document.documentElement.dataset.colorScheme = mode + document.documentElement.style.backgroundColor = isDark ? "#080808" : "#fafafa" // Update theme-color meta tag to match light/dark mode const meta = document.querySelector('meta[name="theme-color"]') - if (meta) meta.setAttribute("content", isDark ? "#131010" : "#F8F7F7") + if (meta) meta.setAttribute("content", isDark ? "#080808" : "#fafafa") } function cacheThemeVariants(theme: DesktopTheme, themeId: string) {