-
-
- ŞABLON DETAYI
-
-
- {currentPreset.name}
-
-
- {currentPreset.key === "elegant" && "Fine dining restoranlar, şarap evleri ve lüks steakhouse mekanlar için altın & krem tonlarında yüksek prestijli tasarım."}
- {currentPreset.key === "modern" && "Kafeler, burgerciler ve dinamik mekanlar için canlı mavi safir tonları ve hızlı arama odaklı ızgara düzeni."}
- {currentPreset.key === "dark" && "Gece kulüpleri, kokteyl barlar ve lounge mekanlar için obsidian siyahı ve kehribar parıltılı lüks mod."}
- {currentPreset.key === "minimal" && "Butik kahveciler, fırınlar ve üçüncü nesil mekanlar için ferah ve monokromatik Nordic mizanpaj."}
- {currentPreset.key === "classic" && "Geleneksel brasserie'ler, meyhaneler ve trattoria'lar için Toskana bordo ve sıcak rustik doku."}
-
+ {/* Main Content Area - Stacked Vertically */}
+
+ {presetsList.map((preset) => (
+
+ {/* Theme Info */}
+
+
+
+ {preset.key} Şablonu
- {/* Theme Specs */}
-
-
-
Vurgu Rengi
-
-
- {currentPreset.config.primaryColor}
-
-
+
+ {preset.name}
+
-
- Tipografi Ailesi
- {currentPreset.fontFamily}
-
+
+ Tipografi: {preset.fontFamily} • Mizanpaj: {preset.config.productLayout}
+
-
- Ürün Mizanpajı
- {currentPreset.config.productLayout}
-
-
-
- Kategori Gezintisi
- {currentPreset.config.categoryLayout}
-
-
-
- {/* Direct Demo Link */}
-
-
↗ Yeni Sekmede Canlı Menüyü Aç
-
-
-
- {/* Right Phone Mockup Container */}
-
-
- {/* Dynamic Island (Desktop only) */}
-
-
- {/* Simulated Screen Body */}
-
+
+
+ ↗ Canlı Demoyu Sekmede Aç
+
-
- )}
+
+ {/* Phone Mockup Preview */}
+
+ {/* Dynamic Island */}
+
+
+ {/* Screen Body */}
+
+
+
+ ))}
);
diff --git a/apps/web/src/lib/demo-data.ts b/apps/web/src/lib/demo-data.ts
index 30fa80a..3209451 100644
--- a/apps/web/src/lib/demo-data.ts
+++ b/apps/web/src/lib/demo-data.ts
@@ -5,6 +5,7 @@ export const DEMO_RESTAURANT: RestaurantData = {
name: "Gusto & Co. Brasserie",
slug: "gusto-brasserie",
logo_url: null,
+ cover_url: "https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?w=1200&auto=format&fit=crop&q=80",
phone: "+90 (212) 555 0192",
address: "Nişantaşı, Abdi İpekçi Cad. No: 42, İstanbul",
};
diff --git a/apps/web/src/lib/theme.ts b/apps/web/src/lib/theme.ts
index 7b6b6dc..32d8bb5 100644
--- a/apps/web/src/lib/theme.ts
+++ b/apps/web/src/lib/theme.ts
@@ -25,6 +25,7 @@ export const THEME_PRESETS: Record
= {
background: "#F7F3EC",
productLayout: "card",
categoryLayout: "tabs",
+ headerLayout: "centered",
},
cardBg: "#FCFAF6",
cardBorder: "#E4DBCF",
@@ -44,6 +45,7 @@ export const THEME_PRESETS: Record = {
background: "#0D1117",
productLayout: "card",
categoryLayout: "tabs",
+ headerLayout: "left",
},
cardBg: "#FCF7EC",
cardBorder: "rgba(255, 42, 133, 0.3)",
@@ -63,6 +65,7 @@ export const THEME_PRESETS: Record = {
background: "#EEEAE4",
productLayout: "card",
categoryLayout: "tabs",
+ headerLayout: "centered",
},
cardBg: "#F7F4EF",
cardBorder: "rgba(36, 70, 58, 0.2)",
@@ -82,6 +85,7 @@ export const THEME_PRESETS: Record = {
background: "#FFFFFF",
productLayout: "card",
categoryLayout: "tabs",
+ headerLayout: "left",
},
cardBg: "#FFFFFF",
cardBorder: "#000000",
@@ -101,6 +105,7 @@ export const THEME_PRESETS: Record = {
background: "#121316",
productLayout: "card",
categoryLayout: "tabs",
+ headerLayout: "centered",
},
cardBg: "#1C1E24",
cardBorder: "rgba(255, 255, 255, 0.08)",
@@ -120,6 +125,7 @@ export const THEME_PRESETS: Record = {
background: "#FAF8F5",
productLayout: "card",
categoryLayout: "accordion",
+ headerLayout: "centered",
},
cardBg: "#FFFFFF",
cardBorder: "rgba(200, 169, 107, 0.18)",
@@ -139,6 +145,7 @@ export const THEME_PRESETS: Record = {
background: "#F8FAFC",
productLayout: "card",
categoryLayout: "tabs",
+ headerLayout: "left",
},
cardBg: "#FFFFFF",
cardBorder: "rgba(226, 232, 240, 0.9)",
@@ -158,6 +165,7 @@ export const THEME_PRESETS: Record = {
background: "#0F0F12",
productLayout: "card",
categoryLayout: "accordion",
+ headerLayout: "centered",
},
cardBg: "#18181D",
cardBorder: "rgba(255, 255, 255, 0.07)",
@@ -177,6 +185,7 @@ export const THEME_PRESETS: Record = {
background: "#FAFAFA",
productLayout: "list",
categoryLayout: "flat",
+ headerLayout: "left",
},
cardBg: "#FFFFFF",
cardBorder: "#E4E4E7",
@@ -196,6 +205,7 @@ export const THEME_PRESETS: Record = {
background: "#FFF9F2",
productLayout: "list",
categoryLayout: "accordion",
+ headerLayout: "centered",
},
cardBg: "#FFFFFF",
cardBorder: "rgba(139, 30, 30, 0.15)",
diff --git a/packages/shared/src/theme.ts b/packages/shared/src/theme.ts
index 11a3d5c..9dc68a0 100644
--- a/packages/shared/src/theme.ts
+++ b/packages/shared/src/theme.ts
@@ -7,6 +7,7 @@ export const themeConfigSchema = z.object({
background: z.string(),
productLayout: z.enum(["card", "list"]),
categoryLayout: z.enum(["accordion", "tabs", "flat"]),
+ headerLayout: z.enum(["centered", "left"]).optional().default("centered"),
});
export type ThemeConfig = z.infer;
diff --git a/supabase/migrations/20260819000000_initial_schema.sql b/supabase/migrations/20260819000000_initial_schema.sql
index c36ea4c..96e8d5b 100644
--- a/supabase/migrations/20260819000000_initial_schema.sql
+++ b/supabase/migrations/20260819000000_initial_schema.sql
@@ -27,6 +27,7 @@ create table restaurants (
name text not null,
slug text not null unique,
logo_url text,
+ cover_url text,
phone text,
address text,
created_by uuid not null references users (id) on delete restrict,