diff --git a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx
index 592dd6b..d50c9d4 100644
--- a/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx
+++ b/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx
@@ -255,11 +255,22 @@ export default function PreviewTab() {
>
- {deviceMode === "mobile" &&
}
+ {deviceMode !== "desktop" &&
}
{iframeSrc ? (
@@ -566,6 +584,21 @@ const desktopFrame: React.CSSProperties = {
"0 1px 2px rgba(26, 26, 26, 0.04), 0 12px 40px rgba(26, 26, 26, 0.07), inset 0 1px 0 rgba(255, 255, 255, 0.85)",
};
+const tabletFrame: React.CSSProperties = {
+ position: "relative",
+ width: 768,
+ height: 1024,
+ flexShrink: 0,
+ borderRadius: 40,
+ overflow: "hidden",
+ background: "#000",
+ border: "14px solid #1a1a1a",
+ boxShadow:
+ "0 0 0 1px rgba(255,255,255,0.1) inset, 0 24px 60px rgba(26, 26, 26, 0.15)",
+ display: "flex",
+ flexDirection: "column",
+};
+
const mobileFrame: React.CSSProperties = {
position: "relative",
width: 390,
diff --git a/vibn-frontend/components/project/preview-toolbar/preview-toolbar-state.ts b/vibn-frontend/components/project/preview-toolbar/preview-toolbar-state.ts
index 8983660..ffa672f 100644
--- a/vibn-frontend/components/project/preview-toolbar/preview-toolbar-state.ts
+++ b/vibn-frontend/components/project/preview-toolbar/preview-toolbar-state.ts
@@ -1,8 +1,8 @@
import { create } from "zustand";
interface PreviewToolbarState {
- deviceMode: "desktop" | "mobile";
- setDeviceMode: (mode: "desktop" | "mobile") => void;
+ deviceMode: "desktop" | "tablet" | "mobile";
+ setDeviceMode: (mode: "desktop" | "tablet" | "mobile") => void;
refreshKey: number;
triggerRefresh: () => void;
}
diff --git a/vibn-frontend/components/project/project-icon-rail.tsx b/vibn-frontend/components/project/project-icon-rail.tsx
index c9ec5c9..94949ef 100644
--- a/vibn-frontend/components/project/project-icon-rail.tsx
+++ b/vibn-frontend/components/project/project-icon-rail.tsx
@@ -2,7 +2,13 @@
import Link from "next/link";
import { usePathname, useParams } from "next/navigation";
-import { Monitor, Smartphone, RotateCw, ExternalLink } from "lucide-react";
+import {
+ Monitor,
+ Tablet,
+ Smartphone,
+ RotateCw,
+ ExternalLink,
+} from "lucide-react";
import { usePreviewToolbarStore } from "./preview-toolbar/preview-toolbar-state";
import { useAnatomy } from "@/components/project/use-anatomy";
@@ -182,7 +188,12 @@ function PreviewDeviceToggles() {
{/* Device Toggles Inside the Address Bar */}
+