feat(qr-stands): clean SVG template renderer with exact QR placement and no redundant overlays

This commit is contained in:
AyrisAI
2026-08-20 23:39:56 +03:00
parent eb0b5d1886
commit f768b92873
3 changed files with 47 additions and 94 deletions
+34 -53
View File
@@ -1,84 +1,65 @@
export interface QrStandPreset {
key: string;
name: string;
categoryName: string;
bgGradient: string;
plaqueBg: string;
plaqueColor: string;
borderAccent: string;
qrBg: string;
qrColor: string;
logoBorder: string;
logoBg: string;
accentText: string;
headerText: string;
subText: string;
dividerColor: string;
categories: string[];
svgTemplateUrl?: string;
categoryName?: string;
svgTemplateUrl: string;
aspectRatio?: string;
bgGradient?: string;
plaqueBg?: string;
plaqueColor?: string;
borderAccent?: string;
qrBg?: string;
qrColor?: string;
logoBorder?: string;
logoBg?: string;
accentText?: string;
headerText?: string;
subText?: string;
dividerColor?: string;
categories?: string[];
}
export const QR_STAND_PRESETS: Record<string, QrStandPreset> = {
"qr-1": {
key: "qr-1",
name: "Gourmet Bistro Stand (QR-1)",
categoryName: "Özel Masa Kartı Şablonu",
categoryName: "Özel Masa Kartı",
svgTemplateUrl: "/qr-1.svg",
aspectRatio: "400/650",
bgGradient: "radial-gradient(circle at 50% 50%, #1A1A1E 0%, #0C0C0E 100%)",
plaqueBg: "linear-gradient(135deg, #1A1A1E 0%, #121215 100%)",
plaqueColor: "#1A1A1E",
borderAccent: "#D4AF37",
qrBg: "#ffffff",
qrColor: "#111111",
logoBorder: "#D4AF37",
logoBg: "rgba(26, 26, 30, 0.8)",
accentText: "#D4AF37",
headerText: "#FFFFFF",
subText: "#8E8E93",
dividerColor: "rgba(212, 175, 55, 0.3)",
categories: ["BAŞLANGIÇLAR", "ANA YEMEKLER", "TATLILAR", "İÇECEKLER"],
svgTemplateUrl: "/qr-1.svg",
aspectRatio: "400/650",
},
"qr-4": {
key: "qr-4",
name: "Gourmet Gold Luxury Stand (QR-4)",
categoryName: "Özel Masa Kartı Şablonu",
bgGradient: "radial-gradient(circle at 50% 50%, #451A03 0%, #1c0a02 100%)",
plaqueBg: "linear-gradient(135deg, #000000 0%, #111111 100%)",
plaqueColor: "#000000",
borderAccent: "#D4AF37",
qrBg: "#ffffff",
qrColor: "#111111",
logoBorder: "#D4AF37",
logoBg: "rgba(0, 0, 0, 0.8)",
accentText: "#FFD700",
headerText: "#FFFFFF",
subText: "#A1A1AA",
dividerColor: "rgba(212, 175, 55, 0.3)",
categories: ["BAŞLANGIÇLAR", "ANA YEMEKLER", "TATLILAR", "İÇECEKLER"],
svgTemplateUrl: "/qr-4.svg",
aspectRatio: "400/650",
},
"qr-2": {
key: "qr-2",
name: "Gourmet Bistro Chef Crest (QR-2)",
categoryName: "Özel Masa Kartı Şablonu",
categoryName: "Özel Masa Kartı",
svgTemplateUrl: "/qr-2.svg",
aspectRatio: "400/650",
bgGradient: "radial-gradient(circle at 50% 50%, #1A1A1E 0%, #0C0C0E 100%)",
plaqueBg: "linear-gradient(135deg, #1A1A1E 0%, #121215 100%)",
plaqueColor: "#1A1A1E",
borderAccent: "#D4AF37",
qrBg: "#ffffff",
qrColor: "#111111",
logoBorder: "#D4AF37",
logoBg: "rgba(26, 26, 30, 0.8)",
accentText: "#D4AF37",
headerText: "#FFFFFF",
subText: "#8E8E93",
dividerColor: "rgba(212, 175, 55, 0.3)",
categories: ["BAŞLANGIÇLAR", "ANA YEMEKLER", "TATLILAR", "İÇECEKLER"],
svgTemplateUrl: "/qr-2.svg",
},
"qr-4": {
key: "qr-4",
name: "Gourmet Gold Luxury Stand (QR-4)",
categoryName: "Özel Masa Kartı",
svgTemplateUrl: "/qr-4.svg",
aspectRatio: "400/650",
bgGradient: "radial-gradient(circle at 50% 50%, #451A03 0%, #1c0a02 100%)",
plaqueColor: "#000000",
borderAccent: "#D4AF37",
accentText: "#FFD700",
headerText: "#FFFFFF",
subText: "#A1A1AA",
dividerColor: "rgba(212, 175, 55, 0.3)",
},
};