diff --git a/src/lib/studio/mobileMessage.svelte b/src/lib/studio/mobileMessage.svelte
new file mode 100644
index 0000000000..84f4be3abf
--- /dev/null
+++ b/src/lib/studio/mobileMessage.svelte
@@ -0,0 +1,68 @@
+
+
+{#if $isSmallViewport}
+
+
+
+
+
+
+
+ This experience needs a larger screen
+
+
+ We're working on making Imagine Studio fully responsive for mobile
+ devices. For the best experience, please use Imagine Studio on a desktop
+ or tablet with a larger screen.
+
+
+
+
+
+
+
+ You can use desktop mode in your mobile's browser to access Studio
+
+
+
+
+
+
+{/if}
+
+
diff --git a/src/routes/(console)/project-[region]-[project]/(studio)/studio/+page.svelte b/src/routes/(console)/project-[region]-[project]/(studio)/studio/+page.svelte
index b53b8e44ed..6c5c204287 100644
--- a/src/routes/(console)/project-[region]-[project]/(studio)/studio/+page.svelte
+++ b/src/routes/(console)/project-[region]-[project]/(studio)/studio/+page.svelte
@@ -9,6 +9,8 @@
import { getPageTitle } from '../../store';
import { resolvedProfile } from '$lib/profiles/index.svelte';
import type { PageProps } from './$types';
+ import { isSmallViewport } from '$lib/stores/viewport';
+ import MobileMessage from '$lib/studio/mobileMessage.svelte';
let { params, data }: PageProps = $props();
let anchor: HTMLElement = $state();
@@ -19,16 +21,18 @@
}
onMount(async () => {
- ensureStudioComponent();
- await tick();
- positionStudio();
- navigateToRoute({
- id: 'project',
- props: {
- projectId: params.project,
- region: params.region
- }
- });
+ if (!$isSmallViewport) {
+ ensureStudioComponent();
+ await tick();
+ positionStudio();
+ navigateToRoute({
+ id: 'project',
+ props: {
+ projectId: params.project,
+ region: params.region
+ }
+ });
+ }
});
onDestroy(() => {
@@ -36,7 +40,9 @@
});
$effect(() => {
- positionStudio();
+ if (!$isSmallViewport && anchor) {
+ positionStudio();
+ }
});
@@ -44,7 +50,11 @@
{getPageTitle(data.project.name, 'Studio', resolvedProfile.platform)}
-
+{#if $isSmallViewport}
+
+{:else}
+
+{/if}