feat(web): add missing qr-3/qr-8/qr-9 stand SVG templates
QR_STAND_PRESETS (packages/shared) references qr-1..qr-9 (skipping qr-7), but apps/web/public only had qr-1,2,4,5,6.svg — qr-3, qr-8, and qr-9 404'd wherever the raw preset list renders before/instead of a DB-driven override. Built to match the existing qr-1.svg structure (layer-background/layer-icons/qr-placeholder/layer-texts, same 400x650 canvas, QR box at translate(90,215) 220x220 — verified this aligns with QrStandGeneratorClient's hardcoded 33.08%/55% overlay position), using each preset's own color palette from qr-stands.ts.
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 650" width="400" height="650">
|
||||
<defs>
|
||||
<!-- Warm cream gradient for the outer canvas -->
|
||||
<linearGradient id="cream-bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#faf4e6" />
|
||||
<stop offset="100%" stop-color="#f7eed8" />
|
||||
</linearGradient>
|
||||
|
||||
<!-- Rosso accent gradient -->
|
||||
<linearGradient id="rosso-accent" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#d1453f" />
|
||||
<stop offset="100%" stop-color="#b92b27" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 1. Backgrounds & Contrast Panels -->
|
||||
<g id="layer-background">
|
||||
<rect id="bg-canvas" width="400" height="650" fill="url(#cream-bg)" />
|
||||
<rect id="main-card" x="20" y="20" width="360" height="610" rx="24" fill="#fdfbf5" stroke="url(#rosso-accent)" stroke-width="1.5" />
|
||||
<rect id="inner-border" x="30" y="30" width="340" height="590" rx="18" fill="none" stroke="#e8ddc7" stroke-width="1" stroke-dasharray="5 3" />
|
||||
</g>
|
||||
|
||||
<!-- 2. Decorative Icons & Accents -->
|
||||
<g id="layer-icons">
|
||||
<!-- Pizza slice crest -->
|
||||
<g transform="translate(170, 50)" stroke="url(#rosso-accent)" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M30 6 L58 46 A32 32 0 0 1 2 46 Z" />
|
||||
<circle cx="26" cy="24" r="2.2" fill="#b92b27" stroke="none" />
|
||||
<circle cx="38" cy="30" r="2.2" fill="#5d4037" stroke="none" />
|
||||
<circle cx="30" cy="38" r="2.2" fill="#b92b27" stroke="none" />
|
||||
<path d="M2 46 h56" stroke-width="1" />
|
||||
</g>
|
||||
|
||||
<!-- Center wheat-sprig divider -->
|
||||
<g id="divider-accent">
|
||||
<path d="M130 162 h55 M215 162 h55" stroke="url(#rosso-accent)" stroke-width="1" opacity="0.6" />
|
||||
<polygon points="200,157 202.5,161.5 207,162 203.5,165 204.5,169.5 200,167 195.5,169.5 196.5,165 193,162 197.5,161.5" fill="url(#rosso-accent)" />
|
||||
</g>
|
||||
|
||||
<!-- WiFi Icon -->
|
||||
<g transform="translate(68, 592)" stroke="#8c6b52" stroke-width="1.5" fill="none" stroke-linecap="round">
|
||||
<path d="M0 0 a14 14 0 0 1 18 0" />
|
||||
<path d="M3 4 a9 9 0 0 1 12 0" />
|
||||
<circle cx="9" cy="8" r="1" fill="#8c6b52" />
|
||||
</g>
|
||||
|
||||
<!-- Instagram / Social Icon -->
|
||||
<g transform="translate(225, 592)" stroke="#8c6b52" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="0" y="0" width="13" height="13" rx="3.5" />
|
||||
<circle cx="6.5" cy="6.5" r="3" />
|
||||
<circle cx="10" cy="3" r="0.5" fill="#8c6b52" />
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- 3. Clean Placeholder Box for QR Code (aligned to the app's fixed 33.08% / 55% overlay) -->
|
||||
<g id="qr-placeholder" transform="translate(90, 215)">
|
||||
<rect width="220" height="220" rx="20" fill="#FFFFFF" stroke="#f0d9d8" stroke-width="2" />
|
||||
<rect x="12" y="12" width="196" height="196" rx="14" fill="#FCFAF6" stroke="#f0d9d8" stroke-dasharray="4 3" />
|
||||
<text x="110" y="115" font-family="Inter, sans-serif" font-size="12" font-weight="600" fill="#b92b27" text-anchor="middle">QR KOD ALANI</text>
|
||||
</g>
|
||||
|
||||
<!-- 4. Native Editable Texts -->
|
||||
<g id="layer-texts" font-family="Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif" text-anchor="middle">
|
||||
<text x="200" y="130" font-size="22" font-weight="800" fill="#18181b" letter-spacing="2">PIZZERIA BELLA NAPOLI</text>
|
||||
<text x="200" y="150" font-size="11" font-weight="500" fill="#b92b27" letter-spacing="2.5">TEMASSIZ DİJİTAL MENÜ</text>
|
||||
|
||||
<text x="200" y="475" font-size="13" font-weight="700" fill="#18181b" letter-spacing="1.2">MENÜYÜ GÖRMEK İÇİN OKUTUN</text>
|
||||
<text x="200" y="495" font-size="11" font-weight="400" fill="#5d4037">Kameranız ile QR kodu taratın</text>
|
||||
|
||||
<rect x="140" y="520" width="120" height="28" rx="14" fill="#fdece9" stroke="#f0d9d8" stroke-width="1" />
|
||||
<text x="200" y="539" font-size="12" font-weight="600" fill="#b92b27" letter-spacing="0.5">Masa No: 01</text>
|
||||
|
||||
<text x="128" y="602" font-size="10" font-weight="400" fill="#8c6b52" text-anchor="start">Bella_Guest</text>
|
||||
<text x="246" y="602" font-size="10" font-weight="400" fill="#8c6b52" text-anchor="start">@bellanapoli</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
@@ -0,0 +1,72 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 650" width="400" height="650">
|
||||
<defs>
|
||||
<linearGradient id="gold-accent-8" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#e9c877" />
|
||||
<stop offset="50%" stop-color="#d1a752" />
|
||||
<stop offset="100%" stop-color="#a3803a" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient id="emerald-surface" x1="0%" y1="0%" x2="0%" y2="100%">
|
||||
<stop offset="0%" stop-color="#0c4443" />
|
||||
<stop offset="100%" stop-color="#062423" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 1. Backgrounds & Contrast Panels -->
|
||||
<g id="layer-background">
|
||||
<rect id="bg-canvas" width="400" height="650" fill="#052120" />
|
||||
<rect id="main-card" x="20" y="20" width="360" height="610" rx="24" fill="url(#emerald-surface)" stroke="url(#gold-accent-8)" stroke-width="1.5" />
|
||||
<rect id="inner-border" x="30" y="30" width="340" height="590" rx="18" fill="none" stroke="#134a48" stroke-width="1" stroke-dasharray="5 3" />
|
||||
</g>
|
||||
|
||||
<!-- 2. Decorative Icons & Accents -->
|
||||
<g id="layer-icons">
|
||||
<!-- Laurel crest -->
|
||||
<g transform="translate(170, 50)" stroke="url(#gold-accent-8)" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M30 4 v42" />
|
||||
<path d="M30 12 c-10 0 -16 6 -16 14 M30 22 c-10 0 -15 5 -15 12 M30 32 c-10 0 -13 4 -13 10" />
|
||||
<path d="M30 12 c10 0 16 6 16 14 M30 22 c10 0 15 5 15 12 M30 32 c10 0 13 4 13 10" />
|
||||
</g>
|
||||
|
||||
<g id="divider-accent">
|
||||
<path d="M130 162 h55 M215 162 h55" stroke="url(#gold-accent-8)" stroke-width="1" opacity="0.6" />
|
||||
<polygon points="200,157 202.5,161.5 207,162 203.5,165 204.5,169.5 200,167 195.5,169.5 196.5,165 193,162 197.5,161.5" fill="url(#gold-accent-8)" />
|
||||
</g>
|
||||
|
||||
<!-- WiFi Icon -->
|
||||
<g transform="translate(68, 592)" stroke="#7fb9b3" stroke-width="1.5" fill="none" stroke-linecap="round">
|
||||
<path d="M0 0 a14 14 0 0 1 18 0" />
|
||||
<path d="M3 4 a9 9 0 0 1 12 0" />
|
||||
<circle cx="9" cy="8" r="1" fill="#7fb9b3" />
|
||||
</g>
|
||||
|
||||
<!-- Instagram / Social Icon -->
|
||||
<g transform="translate(225, 592)" stroke="#7fb9b3" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="0" y="0" width="13" height="13" rx="3.5" />
|
||||
<circle cx="6.5" cy="6.5" r="3" />
|
||||
<circle cx="10" cy="3" r="0.5" fill="#7fb9b3" />
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- 3. Clean Placeholder Box for QR Code (aligned to the app's fixed 33.08% / 55% overlay) -->
|
||||
<g id="qr-placeholder" transform="translate(90, 215)">
|
||||
<rect width="220" height="220" rx="20" fill="#f9f5eb" stroke="url(#gold-accent-8)" stroke-width="2" />
|
||||
<rect x="12" y="12" width="196" height="196" rx="14" fill="#FFFFFF" stroke="#e6dcc0" stroke-dasharray="4 3" />
|
||||
<text x="110" y="115" font-family="Inter, sans-serif" font-size="12" font-weight="600" fill="#a3803a" text-anchor="middle">QR KOD ALANI</text>
|
||||
</g>
|
||||
|
||||
<!-- 4. Native Editable Texts -->
|
||||
<g id="layer-texts" font-family="Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif" text-anchor="middle">
|
||||
<text x="200" y="130" font-size="22" font-weight="800" fill="#ffffff" letter-spacing="2">EMERALD & GOLD</text>
|
||||
<text x="200" y="150" font-size="11" font-weight="500" fill="#d1a752" letter-spacing="2.5">TEMASSIZ DİJİTAL MENÜ</text>
|
||||
|
||||
<text x="200" y="475" font-size="13" font-weight="700" fill="#ffffff" letter-spacing="1.2">MENÜYÜ GÖRMEK İÇİN OKUTUN</text>
|
||||
<text x="200" y="495" font-size="11" font-weight="400" fill="#8fbdb8">Kameranız ile QR kodu taratın</text>
|
||||
|
||||
<rect x="140" y="520" width="120" height="28" rx="14" fill="#0f3c3a" stroke="#1a5350" stroke-width="1" />
|
||||
<text x="200" y="539" font-size="12" font-weight="600" fill="#d1a752" letter-spacing="0.5">Masa No: 01</text>
|
||||
|
||||
<text x="128" y="602" font-size="10" font-weight="400" fill="#7fb9b3" text-anchor="start">Emerald_Guest</text>
|
||||
<text x="246" y="602" font-size="10" font-weight="400" fill="#7fb9b3" text-anchor="start">@emeraldgold</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
@@ -0,0 +1,74 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 650" width="400" height="650">
|
||||
<defs>
|
||||
<linearGradient id="vintage-bg" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#f8f6f0" />
|
||||
<stop offset="100%" stop-color="#e2ded5" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- 1. Backgrounds & Contrast Panels -->
|
||||
<g id="layer-background">
|
||||
<rect id="bg-canvas" width="400" height="650" fill="url(#vintage-bg)" />
|
||||
<rect id="main-card" x="20" y="20" width="360" height="610" rx="10" fill="#ffffff" stroke="#d5cebe" stroke-width="1.5" />
|
||||
<rect id="inner-border" x="30" y="30" width="340" height="590" fill="none" stroke="#1e3246" stroke-width="1" />
|
||||
<rect id="inner-border-2" x="34" y="34" width="332" height="582" fill="none" stroke="#d5cebe" stroke-width="1" />
|
||||
|
||||
<!-- Vintage corner flourishes -->
|
||||
<g stroke="#a88b58" stroke-width="1" fill="none">
|
||||
<path d="M30 60 v-30 h30" />
|
||||
<path d="M370 60 v-30 h-30" />
|
||||
<path d="M30 590 v30 h30" />
|
||||
<path d="M370 590 v30 h-30" />
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- 2. Decorative Icons & Accents -->
|
||||
<g id="layer-icons">
|
||||
<!-- Ornamental crest -->
|
||||
<g transform="translate(170, 52)" stroke="#1e3246" stroke-width="1.3" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="30" cy="22" r="16" />
|
||||
<path d="M14 22 h32 M30 6 v32" stroke-width="0.75" opacity="0.6" />
|
||||
</g>
|
||||
|
||||
<g id="divider-accent">
|
||||
<path d="M120 162 h60 M220 162 h60" stroke="#a88b58" stroke-width="1" opacity="0.7" />
|
||||
<circle cx="200" cy="162" r="3" fill="none" stroke="#a88b58" stroke-width="1" />
|
||||
</g>
|
||||
|
||||
<!-- WiFi Icon -->
|
||||
<g transform="translate(68, 592)" stroke="#7a7267" stroke-width="1.5" fill="none" stroke-linecap="round">
|
||||
<path d="M0 0 a14 14 0 0 1 18 0" />
|
||||
<path d="M3 4 a9 9 0 0 1 12 0" />
|
||||
<circle cx="9" cy="8" r="1" fill="#7a7267" />
|
||||
</g>
|
||||
|
||||
<!-- Instagram / Social Icon -->
|
||||
<g transform="translate(225, 592)" stroke="#7a7267" stroke-width="1.5" fill="none" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="0" y="0" width="13" height="13" rx="3.5" />
|
||||
<circle cx="6.5" cy="6.5" r="3" />
|
||||
<circle cx="10" cy="3" r="0.5" fill="#7a7267" />
|
||||
</g>
|
||||
</g>
|
||||
|
||||
<!-- 3. Clean Placeholder Box for QR Code (aligned to the app's fixed 33.08% / 55% overlay) -->
|
||||
<g id="qr-placeholder" transform="translate(90, 215)">
|
||||
<rect width="220" height="220" fill="#FFFFFF" stroke="#1e3246" stroke-width="1.5" />
|
||||
<rect x="10" y="10" width="200" height="200" fill="none" stroke="#d5cebe" stroke-dasharray="4 3" />
|
||||
<text x="110" y="115" font-family="Georgia, 'Times New Roman', serif" font-size="12" font-weight="600" fill="#a88b58" text-anchor="middle">QR KOD ALANI</text>
|
||||
</g>
|
||||
|
||||
<!-- 4. Native Editable Texts -->
|
||||
<g id="layer-texts" font-family="Georgia, 'Times New Roman', serif" text-anchor="middle">
|
||||
<text x="200" y="130" font-size="22" font-weight="700" fill="#1e3246" letter-spacing="1.5">VINTAGE TABLE MENU</text>
|
||||
<text x="200" y="150" font-size="11" font-weight="500" fill="#a88b58" letter-spacing="2.5" font-family="Inter, sans-serif">TEMASSIZ DİJİTAL MENÜ</text>
|
||||
|
||||
<text x="200" y="475" font-size="13" font-weight="700" fill="#1e3246" letter-spacing="1">MENÜYÜ GÖRMEK İÇİN OKUTUN</text>
|
||||
<text x="200" y="495" font-size="11" font-weight="400" fill="#7a7267" font-family="Inter, sans-serif">Kameranız ile QR kodu taratın</text>
|
||||
|
||||
<rect x="140" y="520" width="120" height="28" fill="#ffffff" stroke="#1e3246" stroke-width="1" />
|
||||
<text x="200" y="539" font-size="12" font-weight="600" fill="#1e3246" letter-spacing="0.5" font-family="Inter, sans-serif">Masa No: 01</text>
|
||||
|
||||
<text x="128" y="602" font-size="10" font-weight="400" fill="#a88b58" text-anchor="start" font-family="Inter, sans-serif">Vintage_Guest</text>
|
||||
<text x="246" y="602" font-size="10" font-weight="400" fill="#a88b58" text-anchor="start" font-family="Inter, sans-serif">@vintagetable</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
Reference in New Issue
Block a user