update
@@ -4,8 +4,21 @@
|
||||
<list default="true" id="bb7b50a5-be9c-4cd7-a05b-979f0e91b173" name="Changes" comment="update">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/app/globals.css" beforeDir="false" afterPath="$PROJECT_DIR$/app/globals.css" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/components/Header.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/components/Header.jsx" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/components/HeroSection.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/components/HeroSection.jsx" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/data/content.js" beforeDir="false" afterPath="$PROJECT_DIR$/data/content.js" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/video/showcase-placeholder.mp4" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/jsconfig.json" beforeDir="false" afterPath="$PROJECT_DIR$/jsconfig.json" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/logo.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/machine-35-base.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/machine-35-white.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/machine-48-base.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/machine-48-white.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/machine-60-base.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/machine-60-white.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/snacks/chips-1.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/snacks/chips-2.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/snacks/soda-1.svg" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/public/images/snacks/soda-2.svg" beforeDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -86,6 +99,7 @@
|
||||
<workItem from="1785583486761" duration="9000" />
|
||||
<workItem from="1785583517424" duration="145000" />
|
||||
<workItem from="1785645096071" duration="26000" />
|
||||
<workItem from="1785646314677" duration="10534000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="update">
|
||||
<option name="closed" value="true" />
|
||||
@@ -111,7 +125,23 @@
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1785582935941</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="4" />
|
||||
<task id="LOCAL-00004" summary="update">
|
||||
<option name="closed" value="true" />
|
||||
<created>1785646368102</created>
|
||||
<option name="number" value="00004" />
|
||||
<option name="presentableId" value="LOCAL-00004" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1785646368102</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00005" summary="update">
|
||||
<option name="closed" value="true" />
|
||||
<created>1785646373594</created>
|
||||
<option name="number" value="00005" />
|
||||
<option name="presentableId" value="LOCAL-00005" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1785646373594</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="6" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
|
||||
@@ -56,9 +56,11 @@ html[dir='rtl'] body {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: var(--color-scrollbar-track);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--color-scrollbar-thumb);
|
||||
border-radius: 999px;
|
||||
@@ -66,21 +68,55 @@ html[dir='rtl'] body {
|
||||
|
||||
/* Semantic surface/text utilities — read the theme variables above so every
|
||||
component that uses them automatically supports dark + light mode. */
|
||||
.bg-page { background-color: var(--color-bg-page); }
|
||||
.bg-elevated { background-color: var(--color-bg-elevated); }
|
||||
.bg-surface { background-color: var(--color-bg-surface); }
|
||||
.bg-surface-strong { background-color: var(--color-bg-surface-strong); }
|
||||
.border-subtle { border-color: var(--color-border); }
|
||||
.text-primary { color: var(--color-text-primary); }
|
||||
.text-secondary { color: var(--color-text-secondary); }
|
||||
.bg-page {
|
||||
background-color: var(--color-bg-page);
|
||||
}
|
||||
|
||||
.bg-elevated {
|
||||
background-color: var(--color-bg-elevated);
|
||||
}
|
||||
|
||||
.bg-surface {
|
||||
background-color: var(--color-bg-surface);
|
||||
}
|
||||
|
||||
.bg-surface-strong {
|
||||
background-color: var(--color-bg-surface-strong);
|
||||
}
|
||||
|
||||
.border-subtle {
|
||||
border-color: var(--color-border);
|
||||
}
|
||||
|
||||
.text-primary {
|
||||
color: var(--color-text-primary);
|
||||
}
|
||||
|
||||
.text-secondary {
|
||||
color: var(--color-text-secondary);
|
||||
}
|
||||
|
||||
/* Opacity variants of the tokens above (Tailwind's /NN modifier only works on
|
||||
Tailwind-generated utilities, not these hand-written classes). */
|
||||
.bg-page-60 { background-color: color-mix(in srgb, var(--color-bg-page) 60%, transparent); }
|
||||
.bg-page-70 { background-color: color-mix(in srgb, var(--color-bg-page) 70%, transparent); }
|
||||
.bg-page-85 { background-color: color-mix(in srgb, var(--color-bg-page) 85%, transparent); }
|
||||
.bg-elevated-95 { background-color: color-mix(in srgb, var(--color-bg-elevated) 95%, transparent); }
|
||||
.text-primary-90 { color: color-mix(in srgb, var(--color-text-primary) 90%, transparent); }
|
||||
.bg-page-60 {
|
||||
background-color: color-mix(in srgb, var(--color-bg-page) 60%, transparent);
|
||||
}
|
||||
|
||||
.bg-page-70 {
|
||||
background-color: color-mix(in srgb, var(--color-bg-page) 70%, transparent);
|
||||
}
|
||||
|
||||
.bg-page-85 {
|
||||
background-color: color-mix(in srgb, var(--color-bg-page) 85%, transparent);
|
||||
}
|
||||
|
||||
.bg-elevated-95 {
|
||||
background-color: color-mix(in srgb, var(--color-bg-elevated) 95%, transparent);
|
||||
}
|
||||
|
||||
.text-primary-90 {
|
||||
color: color-mix(in srgb, var(--color-text-primary) 90%, transparent);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* Horizontal scroll showcase (pinned via GSAP ScrollTrigger) */
|
||||
@@ -88,7 +124,7 @@ html[dir='rtl'] body {
|
||||
.horizontal-track {
|
||||
display: flex;
|
||||
height: 100vh;
|
||||
width: max-content;
|
||||
width: 100vw;
|
||||
will-change: transform;
|
||||
}
|
||||
|
||||
@@ -133,8 +169,7 @@ html[dir='rtl'] body {
|
||||
height: 190px;
|
||||
border-radius: 999px;
|
||||
border: 2px solid rgba(0, 166, 147, 0.9);
|
||||
box-shadow:
|
||||
0 0 0 4px rgba(0, 166, 147, 0.15),
|
||||
box-shadow: 0 0 0 4px rgba(0, 166, 147, 0.15),
|
||||
0 0 40px 6px rgba(0, 166, 147, 0.45);
|
||||
pointer-events: none;
|
||||
transform: translate(-50%, -50%);
|
||||
@@ -151,6 +186,7 @@ html[dir='rtl'] body {
|
||||
.no-scrollbar::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.no-scrollbar {
|
||||
-ms-overflow-style: none;
|
||||
scrollbar-width: none;
|
||||
@@ -176,16 +212,25 @@ html[dir='rtl'] body {
|
||||
}
|
||||
|
||||
@keyframes caretBlink {
|
||||
0%, 49% { opacity: 1; }
|
||||
50%, 100% { opacity: 0; }
|
||||
0%, 49% {
|
||||
opacity: 1;
|
||||
}
|
||||
50%, 100% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------ */
|
||||
/* نوار لوگوی بیپایان (trusted-by marquee) */
|
||||
/* ------------------------------------------------------------------ */
|
||||
@keyframes marqueeScroll {
|
||||
from { transform: translateX(0); }
|
||||
to { transform: translateX(-50%); } /* دقیقاً نصف عرض، چون لیست دو برابر شده */
|
||||
from {
|
||||
transform: translateX(0);
|
||||
}
|
||||
to {
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
/* دقیقاً نصف عرض، چون لیست دو برابر شده */
|
||||
}
|
||||
|
||||
.animate-marquee {
|
||||
|
||||
@@ -44,7 +44,7 @@ export default function Header() {
|
||||
>
|
||||
<div className="mx-auto max-w-7xl px-5 md:px-8 h-20 flex items-center justify-between gap-4">
|
||||
<a href="#hero" className="flex items-center gap-2 shrink-0">
|
||||
<Image src="/images/logo.svg" alt="روبات مارکت" width={150} height={42} priority />
|
||||
<Image src="/images/logo.png" alt="روبات مارکت" width={150} height={42} priority/>
|
||||
</a>
|
||||
|
||||
<nav className="hidden xl:flex items-center gap-5 2xl:gap-7">
|
||||
@@ -68,9 +68,9 @@ export default function Header() {
|
||||
<Button
|
||||
className="hidden sm:inline-flex"
|
||||
icon={<UserOutlined/>}
|
||||
onClick={() => {
|
||||
/* TODO: point this at the real customer panel login route */
|
||||
}}
|
||||
href="https://panel.my-rm.com"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
{t.nav.login}
|
||||
</Button>
|
||||
@@ -96,7 +96,8 @@ export default function Header() {
|
||||
</div>
|
||||
|
||||
{mobileOpen && (
|
||||
<nav className="xl:hidden bg-elevated-95 backdrop-blur-md border-t border-subtle px-5 py-4 flex flex-col gap-4 max-h-[calc(100vh-5rem)] overflow-y-auto">
|
||||
<nav
|
||||
className="xl:hidden bg-elevated-95 backdrop-blur-md border-t border-subtle px-5 py-4 flex flex-col gap-4 max-h-[calc(100vh-5rem)] overflow-y-auto">
|
||||
{navLinks.map((link) => (
|
||||
<a
|
||||
key={link.href}
|
||||
|
||||
@@ -59,7 +59,6 @@ export default function HeroSection() {
|
||||
<div
|
||||
className="absolute inset-y-0 w-1/3 hidden md:block"
|
||||
style={{
|
||||
[dir === 'rtl' ? 'left' : 'right']: '-6%',
|
||||
background: 'linear-gradient(135deg, #00a693 0%, #017065 60%, #0b3d38 100%)',
|
||||
clipPath:
|
||||
dir === 'rtl'
|
||||
@@ -101,19 +100,20 @@ export default function HeroSection() {
|
||||
{/* ------------------------------------------------------------------ */}
|
||||
{/* متن روی اسلاید: کیکر کوچک + عنوان بزرگ دو خطی + توضیح + دکمه CTA */}
|
||||
{/* ------------------------------------------------------------------ */}
|
||||
<div className="relative z-10 h-full flex flex-col justify-end md:justify-center px-6 md:px-16 pb-28 md:pb-0">
|
||||
<div
|
||||
className="relative z-10 h-full flex flex-col justify-end md:justify-center px-6 md:px-16 pb-28 md:pb-0">
|
||||
<div className="max-w-2xl">
|
||||
<span className="text-brand-400 font-semibold tracking-widest text-sm uppercase">
|
||||
{slide.kicker}
|
||||
</span>
|
||||
<h1 className="mt-3 text-3xl sm:text-4xl md:text-6xl font-extrabold leading-tight text-primary">
|
||||
<h1 className="mt-3 text-3xl sm:text-4xl md:text-6xl font-extrabold leading-tight text-white drop-shadow-[0_4px_12px_rgba(0,0,0,0.9)]">
|
||||
{slide.titleLines.map((line, i) => (
|
||||
<span key={i} className="block">
|
||||
{line}
|
||||
</span>
|
||||
))}
|
||||
</h1>
|
||||
<p className="mt-5 text-secondary text-base md:text-lg max-w-xl">{slide.sub}</p>
|
||||
<p className="mt-5 text-white/90 text-base md:text-lg max-w-xl drop-shadow-lg">{slide.sub}</p>
|
||||
<a
|
||||
href="#showcase"
|
||||
className="mt-8 inline-flex items-center gap-2 bg-brand hover:bg-brand-400 text-ink-950 font-bold px-8 py-3.5 rounded-full transition-colors shadow-brandGlow"
|
||||
@@ -124,7 +124,7 @@ export default function HeroSection() {
|
||||
</div>
|
||||
|
||||
{/* ------------------------------------------------------------------ */}
|
||||
{/* فلشهای ناوبری دستی (قبلی / بعدی) — شبیه سایت Sielaff، وسط دو طرف */}
|
||||
{/* فلشهای ناوبری دستی (قبلی / بعدی) — وسط دو طرف */}
|
||||
{/* ------------------------------------------------------------------ */}
|
||||
<button
|
||||
onClick={() => handleManualNav('prev')}
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
'use client';
|
||||
|
||||
/**
|
||||
* سکشن «مشتریانی که به ما اعتماد کردهاند» — یک نوار لوگوی بیپایان (marquee)
|
||||
* که بهآرامی و پیوسته حرکت میکند. برای ساخت افکت حلقهی بیپایان، لیست
|
||||
* لوگوها را دو بار پشتسرهم رندر میکنیم و با انیمیشن CSS آن را جابهجا میکنیم.
|
||||
*
|
||||
* نکته فنی: مسیر (track) همیشه جهت LTR دارد، چون منطق «حرکت به چپ» انیمیشن
|
||||
* فرض بر همین جهت است — دقیقاً همان مشکلی که در اسکرول افقی محصولات داشتیم و
|
||||
* حلش کردیم. اینجا هم برای جلوگیری از همان باگ، جهت را ثابت نگه داشتیم.
|
||||
*/
|
||||
|
||||
import { useLanguage } from '@/app/context/LanguageContext';
|
||||
|
||||
export default function TrustedBySection() {
|
||||
const { t } = useLanguage();
|
||||
const clients = t.trustedBy.clients;
|
||||
// لیست لوگوها را دو برابر میکنیم تا وقتی نیمه اول با انیمیشن رد شد،
|
||||
// نیمه دوم دقیقاً از همانجا ادامه بدهد و چشم متوجه پرش/شکاف نشود.
|
||||
const doubledClients = [...clients, ...clients];
|
||||
|
||||
return (
|
||||
<section className="relative px-6 md:px-16 py-16 md:py-20 bg-page border-t border-subtle overflow-hidden">
|
||||
<div className="max-w-6xl mx-auto">
|
||||
<div className="text-center mb-10">
|
||||
<span className="text-brand-400 text-sm font-semibold tracking-wide">{t.trustedBy.eyebrow}</span>
|
||||
<h2 className="text-xl md:text-2xl font-extrabold text-primary mt-2">{t.trustedBy.title}</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* یک محو تدریجی (fade mask) دو طرف نوار، تا لبههای لوگوها بریده بهنظر نرسد */}
|
||||
<div
|
||||
className="relative"
|
||||
style={{
|
||||
maskImage: 'linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%)',
|
||||
WebkitMaskImage: 'linear-gradient(90deg, transparent 0%, black 8%, black 92%, transparent 100%)',
|
||||
}}
|
||||
>
|
||||
<div className="flex w-max animate-marquee gap-10" dir="ltr">
|
||||
{doubledClients.map((client, i) => (
|
||||
<div
|
||||
key={`${client.id}-${i}`}
|
||||
className="w-40 md:w-48 shrink-0 flex items-center justify-center bg-surface border border-subtle rounded-xl p-4 opacity-80 hover:opacity-100 transition-opacity"
|
||||
>
|
||||
<img
|
||||
src={`/images/clients/client-${((i % clients.length) + 1)}.svg`}
|
||||
alt={client.name}
|
||||
className="w-full h-auto"
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
@@ -13,8 +13,8 @@ const machinesFa = [
|
||||
priceNumeric: 3860000000,
|
||||
description: 'یخچالدار، ۳۵ کانال اختصاصی، سیستم خنککننده قدرتمند، تحویل نرم، مدیریت آنلاین ۲۴ ساعته.',
|
||||
highlights: ['یخچالدار', '۳۵ کانال اختصاصی', 'تحویل نرم', 'مدیریت آنلاین ۲۴ ساعته'],
|
||||
image: '/images/machine-35-base.svg',
|
||||
imageAlt: '/images/machine-35-white.svg',
|
||||
image: '/images/machine-35-base.png',
|
||||
imageAlt: '/images/machine-35-white.png',
|
||||
gif: '/gifs/machine-35.gif',
|
||||
},
|
||||
{
|
||||
@@ -25,8 +25,8 @@ const machinesFa = [
|
||||
priceNumeric: 4480000000,
|
||||
description: 'یخچالدار، ۴۸ کانال اختصاصی، قابلیتهای پیشرفته مدیریت آنلاین و تحویل کالا.',
|
||||
highlights: ['یخچالدار', '۴۸ کانال اختصاصی', 'مدیریت آنلاین پیشرفته', 'تحویل هوشمند کالا'],
|
||||
image: '/images/machine-48-base.svg',
|
||||
imageAlt: '/images/machine-48-white.svg',
|
||||
image: '/images/machine-48-base.png',
|
||||
imageAlt: '/images/machine-48-white.png',
|
||||
gif: '/gifs/machine-48.gif',
|
||||
},
|
||||
{
|
||||
@@ -37,8 +37,8 @@ const machinesFa = [
|
||||
priceNumeric: 4980000000,
|
||||
description: 'یخچالدار، ۶۰ کانال اختصاصی برای کسبوکارهای پرتردد.',
|
||||
highlights: ['یخچالدار', '۶۰ کانال اختصاصی', 'مناسب اماکن پرتردد', 'ظرفیت بالا'],
|
||||
image: '/images/machine-60-base.svg',
|
||||
imageAlt: '/images/machine-60-white.svg',
|
||||
image: '/images/machine-60-base.png',
|
||||
imageAlt: '/images/machine-60-white.png',
|
||||
gif: '/gifs/machine-60.gif',
|
||||
},
|
||||
];
|
||||
@@ -52,8 +52,8 @@ const machinesEn = [
|
||||
priceNumeric: 3860000000,
|
||||
description: 'Refrigerated, 35 dedicated channels, powerful cooling system, soft delivery, 24/7 online management.',
|
||||
highlights: ['Refrigerated', '35 dedicated channels', 'Soft delivery', '24/7 online management'],
|
||||
image: '/images/machine-35-base.svg',
|
||||
imageAlt: '/images/machine-35-white.svg',
|
||||
image: '/images/machine-35-base.png',
|
||||
imageAlt: '/images/machine-35-white.png',
|
||||
gif: '/gifs/machine-35.gif',
|
||||
},
|
||||
{
|
||||
@@ -64,8 +64,8 @@ const machinesEn = [
|
||||
priceNumeric: 4480000000,
|
||||
description: 'Refrigerated, 48 dedicated channels, advanced online management and delivery capabilities.',
|
||||
highlights: ['Refrigerated', '48 dedicated channels', 'Advanced online management', 'Smart delivery'],
|
||||
image: '/images/machine-48-base.svg',
|
||||
imageAlt: '/images/machine-48-white.svg',
|
||||
image: '/images/machine-48-base.png',
|
||||
imageAlt: '/images/machine-48-white.png',
|
||||
gif: '/gifs/machine-48.gif',
|
||||
},
|
||||
{
|
||||
@@ -76,8 +76,8 @@ const machinesEn = [
|
||||
priceNumeric: 4980000000,
|
||||
description: 'Refrigerated, 60 dedicated channels for high-traffic businesses.',
|
||||
highlights: ['Refrigerated', '60 dedicated channels', 'Ideal for high-traffic venues', 'High capacity'],
|
||||
image: '/images/machine-60-base.svg',
|
||||
imageAlt: '/images/machine-60-white.svg',
|
||||
image: '/images/machine-60-base.png',
|
||||
imageAlt: '/images/machine-60-white.png',
|
||||
gif: '/gifs/machine-60.gif',
|
||||
},
|
||||
];
|
||||
@@ -106,29 +106,27 @@ export const content = {
|
||||
hero: {
|
||||
loading: 'در حال بارگذاری روبات مارکت…',
|
||||
cta: 'مشاهده دستگاهها',
|
||||
// هر اسلاید یک تصویر دستگاه + یک عنوان دو خطی بزرگ (شبیه سایت Sielaff) دارد.
|
||||
// برای افزودن اسلاید جدید، فقط یک آیتم دیگر به این آرایه اضافه کنید.
|
||||
slides: [
|
||||
{
|
||||
id: 'slide-1',
|
||||
kicker: 'روبات مارکت',
|
||||
titleLines: ['فروش خودکار،', 'هوشمند و بیوقفه'],
|
||||
sub: 'تجربهای نوین از خرید آسان و سریع با دستگاههای وندینگ روبات مارکت.',
|
||||
image: '/images/machine-35-base.svg',
|
||||
image: '/images/machine-slide-0.png',
|
||||
},
|
||||
{
|
||||
id: 'slide-2',
|
||||
kicker: 'یخچالدار',
|
||||
titleLines: ['خنککننده قدرتمند،', 'کیفیت تضمینی'],
|
||||
sub: 'نگهداری اصولی تنقلات و نوشیدنی سرد، ۲۴ ساعته و بدون نیاز به نیروی انسانی.',
|
||||
image: '/images/machine-48-base.svg',
|
||||
image: '/images/machine-slide-1.png',
|
||||
},
|
||||
{
|
||||
id: 'slide-3',
|
||||
kicker: 'مدیریت آنلاین',
|
||||
titleLines: ['کنترل کامل کسبوکار', 'از راه دور'],
|
||||
sub: 'مدیریت موجودی، فروش و گزارشگیری آنلاین، هر ساعت از شبانهروز.',
|
||||
image: '/images/machine-60-base.svg',
|
||||
image: '/images/machine-slide-2.png',
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -153,7 +151,6 @@ export const content = {
|
||||
trustedBy: {
|
||||
eyebrow: 'اعتماد شما، افتخار ماست',
|
||||
title: 'کسبوکارهایی که به روبات مارکت اعتماد کردهاند',
|
||||
// اسمهای نمونه/فرضی هستند — با نام مشتریان واقعی جایگزین کنید.
|
||||
clients: [
|
||||
{id: 'c1', name: 'هتل پارسیان'},
|
||||
{id: 'c2', name: 'دانشگاه فردوسی'},
|
||||
@@ -164,10 +161,30 @@ export const content = {
|
||||
],
|
||||
},
|
||||
features: [
|
||||
{ id: 'warranty', icon: 'safety', title: 'ضمانت کالا', description: 'کلیه محصولات شرکت دارای یک سال خدمات پس از فروش میباشند.' },
|
||||
{ id: 'consulting', icon: 'consulting', title: 'مشاوره تخصصی و رایگان', description: 'خدمات مشاوره رایگان در مورد نوع دستگاه و چیدمان محصولات.' },
|
||||
{ id: 'installment', icon: 'installment', title: 'امکان خرید اقساطی', description: 'امکان خرید اقساط با شرایط آسان و مناسب جهت کلیه مشاغل.' },
|
||||
{ id: 'packaging', icon: 'packaging', title: 'بستهبندی ایمن', description: 'با درخواست شما، محصولات با بستهبندی باکس پالت با هزینهای اندک ارسال میشود.' },
|
||||
{
|
||||
id: 'warranty',
|
||||
icon: 'safety',
|
||||
title: 'ضمانت کالا',
|
||||
description: 'کلیه محصولات شرکت دارای یک سال خدمات پس از فروش میباشند.'
|
||||
},
|
||||
{
|
||||
id: 'consulting',
|
||||
icon: 'consulting',
|
||||
title: 'مشاوره تخصصی و رایگان',
|
||||
description: 'خدمات مشاوره رایگان در مورد نوع دستگاه و چیدمان محصولات.'
|
||||
},
|
||||
{
|
||||
id: 'installment',
|
||||
icon: 'installment',
|
||||
title: 'امکان خرید اقساطی',
|
||||
description: 'امکان خرید اقساط با شرایط آسان و مناسب جهت کلیه مشاغل.'
|
||||
},
|
||||
{
|
||||
id: 'packaging',
|
||||
icon: 'packaging',
|
||||
title: 'بستهبندی ایمن',
|
||||
description: 'با درخواست شما، محصولات با بستهبندی باکس پالت با هزینهای اندک ارسال میشود.'
|
||||
},
|
||||
],
|
||||
about: {
|
||||
eyebrow: 'معرفی شرکت',
|
||||
@@ -188,12 +205,42 @@ export const content = {
|
||||
locations: {
|
||||
title: 'مکان مناسب برای نصب روبات مارکت',
|
||||
items: [
|
||||
{ id: 'hotels', icon: 'hotel', title: 'هتلها و مراکز اقامتی', description: 'هر جایی که جمعیت زیادی در صف انتظار قرار دارند، بهجز درآمد، روبات مارکت جزو امکانات رفاهی آن مکان محسوب شده و میزان رضایت مراجعان را نیز افزایش میدهد.' },
|
||||
{ id: 'schools', icon: 'school', title: 'مراکز آموزشی و مدارس', description: 'در صورتی که هر یک از دانشآموزان و دانشجویان برای خرید مایحتاج خود به خارج از مجموعه مراجعه کنند و خدایناکرده اتفاقی بیفتد، مسئولیت آن مستقیماً به عهده مدیر آموزشگاه است. در نتیجه وجود یک روبات مارکت در هر آموزشگاه ضروری است.' },
|
||||
{ id: 'pharmacies', icon: 'pharmacy', title: 'داروخانهها و سوپرمارکتها', description: 'برای فروش محصولات جنسی و پیشگیری، ویژه مشتریانی که برای خرید آن معذوریت دارند.' },
|
||||
{ id: 'hospitals', icon: 'hospital', title: 'بیمارستانها و مراکز درمانی', description: 'برای فروش محصولات جنسی و پیشگیری، ویژه مشتریانی که برای خرید آن معذوریت دارند.' },
|
||||
{ id: 'night-shift', icon: 'night', title: 'کشیک شیفت شب', description: 'امکان تعبیه روبات مارکت پشت شیشه سکوریت مغازهها نیز وجود دارد تا در زمان تعطیلی فروشگاه و حتی نیمهشبها، روبات زحمتکش در حال خدمتدهی به مشتریان عزیز شما باشد.' },
|
||||
{ id: 'specialty', icon: 'specialty', title: 'محصولات تخصصی', description: 'اگر تولیدکننده هستید یا نماینده تولیدکننده محصولی خاص هستید، یک روبات مارکت میتواند مسئولیت معرفی و عرضه محصولات تخصصی شما را نیز بر عهده بگیرد.' },
|
||||
{
|
||||
id: 'hotels',
|
||||
icon: 'hotel',
|
||||
title: 'هتلها و مراکز اقامتی',
|
||||
description: 'هر جایی که جمعیت زیادی در صف انتظار قرار دارند، بهجز درآمد، روبات مارکت جزو امکانات رفاهی آن مکان محسوب شده و میزان رضایت مراجعان را نیز افزایش میدهد.'
|
||||
},
|
||||
{
|
||||
id: 'schools',
|
||||
icon: 'school',
|
||||
title: 'مراکز آموزشی و مدارس',
|
||||
description: 'در صورتی که هر یک از دانشآموزان و دانشجویان برای خرید مایحتاج خود به خارج از مجموعه مراجعه کنند و خدایناکرده اتفاقی بیفتد، مسئولیت آن مستقیماً به عهده مدیر آموزشگاه است. در نتیجه وجود یک روبات مارکت در هر آموزشگاه ضروری است.'
|
||||
},
|
||||
{
|
||||
id: 'pharmacies',
|
||||
icon: 'pharmacy',
|
||||
title: 'داروخانهها و سوپرمارکتها',
|
||||
description: 'برای فروش محصولات جنسی و پیشگیری، ویژه مشتریانی که برای خرید آن معذوریت دارند.'
|
||||
},
|
||||
{
|
||||
id: 'hospitals',
|
||||
icon: 'hospital',
|
||||
title: 'بیمارستانها و مراکز درمانی',
|
||||
description: 'برای فروش محصولات جنسی و پیشگیری، ویژه مشتریانی که برای خرید آن معذوریت دارند.'
|
||||
},
|
||||
{
|
||||
id: 'night-shift',
|
||||
icon: 'night',
|
||||
title: 'کشیک شیفت شب',
|
||||
description: 'امکان تعبیه روبات مارکت پشت شیشه سکوریت مغازهها نیز وجود دارد تا در زمان تعطیلی فروشگاه و حتی نیمهشبها، روبات زحمتکش در حال خدمتدهی به مشتریان عزیز شما باشد.'
|
||||
},
|
||||
{
|
||||
id: 'specialty',
|
||||
icon: 'specialty',
|
||||
title: 'محصولات تخصصی',
|
||||
description: 'اگر تولیدکننده هستید یا نماینده تولیدکننده محصولی خاص هستید، یک روبات مارکت میتواند مسئولیت معرفی و عرضه محصولات تخصصی شما را نیز بر عهده بگیرد.'
|
||||
},
|
||||
],
|
||||
},
|
||||
catalog: {
|
||||
@@ -206,12 +253,54 @@ export const content = {
|
||||
machinePriceLabel: 'قیمت ویژه مشتریان روبات مارکت',
|
||||
addToast: (name) => `${name} به لیست سفارش اضافه شد`,
|
||||
items: [
|
||||
{ id: 'saffron', name: 'زعفران ممتاز درجهیک', category: 'زعفران', image: '/images/catalog/saffron.svg', originalPriceNumeric: 12000000, priceNumeric: 8900000 },
|
||||
{ id: 'chips', name: 'چیپس و پفک (بسته عمده)', category: 'تنقلات', image: '/images/snacks/chips-1.svg', originalPriceNumeric: 450000, priceNumeric: 320000 },
|
||||
{ id: 'soda', name: 'نوشابه و نوشیدنی گازدار', category: 'نوشیدنی', image: '/images/snacks/soda-1.svg', originalPriceNumeric: 250000, priceNumeric: 180000 },
|
||||
{ id: 'water', name: 'آب معدنی', category: 'نوشیدنی', image: '/images/catalog/water.svg', originalPriceNumeric: 120000, priceNumeric: 80000 },
|
||||
{ id: 'coffee', name: 'قهوه فوری', category: 'گرم', image: '/images/catalog/coffee.svg', originalPriceNumeric: 650000, priceNumeric: 470000 },
|
||||
{ id: 'tea', name: 'چای کیسهای', category: 'گرم', image: '/images/catalog/tea.svg', originalPriceNumeric: 380000, priceNumeric: 270000 },
|
||||
{
|
||||
id: 'saffron',
|
||||
name: 'زعفران ممتاز درجهیک',
|
||||
category: 'زعفران',
|
||||
image: '/images/catalog/saffron.svg',
|
||||
originalPriceNumeric: 12000000,
|
||||
priceNumeric: 8900000
|
||||
},
|
||||
{
|
||||
id: 'chips',
|
||||
name: 'چیپس و پفک (بسته عمده)',
|
||||
category: 'تنقلات',
|
||||
image: '/images/snacks/chips-1.svg',
|
||||
originalPriceNumeric: 450000,
|
||||
priceNumeric: 320000
|
||||
},
|
||||
{
|
||||
id: 'soda',
|
||||
name: 'نوشابه و نوشیدنی گازدار',
|
||||
category: 'نوشیدنی',
|
||||
image: '/images/snacks/soda-1.svg',
|
||||
originalPriceNumeric: 250000,
|
||||
priceNumeric: 180000
|
||||
},
|
||||
{
|
||||
id: 'water',
|
||||
name: 'آب معدنی',
|
||||
category: 'نوشیدنی',
|
||||
image: '/images/catalog/water.svg',
|
||||
originalPriceNumeric: 120000,
|
||||
priceNumeric: 80000
|
||||
},
|
||||
{
|
||||
id: 'coffee',
|
||||
name: 'قهوه فوری',
|
||||
category: 'گرم',
|
||||
image: '/images/catalog/coffee.svg',
|
||||
originalPriceNumeric: 650000,
|
||||
priceNumeric: 470000
|
||||
},
|
||||
{
|
||||
id: 'tea',
|
||||
name: 'چای کیسهای',
|
||||
category: 'گرم',
|
||||
image: '/images/catalog/tea.svg',
|
||||
originalPriceNumeric: 380000,
|
||||
priceNumeric: 270000
|
||||
},
|
||||
],
|
||||
},
|
||||
introVideo: {
|
||||
@@ -313,21 +402,21 @@ export const content = {
|
||||
kicker: 'Robot Market',
|
||||
titleLines: ['Automated selling,', 'smart & non-stop'],
|
||||
sub: 'A new experience of fast, easy shopping with Robot Market vending machines.',
|
||||
image: '/images/machine-35-base.svg',
|
||||
image: '/images/machine-slide-0.png',
|
||||
},
|
||||
{
|
||||
id: 'slide-2',
|
||||
kicker: 'Refrigerated',
|
||||
titleLines: ['Powerful cooling,', 'guaranteed quality'],
|
||||
sub: 'Proper storage for snacks and cold drinks, 24/7, with no staff required.',
|
||||
image: '/images/machine-48-base.svg',
|
||||
image: '/images/machine-slide-1.png',
|
||||
},
|
||||
{
|
||||
id: 'slide-3',
|
||||
kicker: 'Online Management',
|
||||
titleLines: ['Full control of your', 'business, remotely'],
|
||||
sub: 'Manage inventory, sales, and reports online, any hour of the day.',
|
||||
image: '/images/machine-60-base.svg',
|
||||
image: '/images/machine-slide-2.png',
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -363,10 +452,30 @@ export const content = {
|
||||
],
|
||||
},
|
||||
features: [
|
||||
{ id: 'warranty', icon: 'safety', title: 'Product Warranty', description: 'All our products come with one year of after-sales service.' },
|
||||
{ id: 'consulting', icon: 'consulting', title: 'Free Expert Consulting', description: 'Free consulting on the right machine type and product layout.' },
|
||||
{ id: 'installment', icon: 'installment', title: 'Installment Purchase', description: 'Flexible, easy installment plans suitable for any business.' },
|
||||
{ id: 'packaging', icon: 'packaging', title: 'Secure Packaging', description: 'On request, products ship in pallet-box packaging for a small fee.' },
|
||||
{
|
||||
id: 'warranty',
|
||||
icon: 'safety',
|
||||
title: 'Product Warranty',
|
||||
description: 'All our products come with one year of after-sales service.'
|
||||
},
|
||||
{
|
||||
id: 'consulting',
|
||||
icon: 'consulting',
|
||||
title: 'Free Expert Consulting',
|
||||
description: 'Free consulting on the right machine type and product layout.'
|
||||
},
|
||||
{
|
||||
id: 'installment',
|
||||
icon: 'installment',
|
||||
title: 'Installment Purchase',
|
||||
description: 'Flexible, easy installment plans suitable for any business.'
|
||||
},
|
||||
{
|
||||
id: 'packaging',
|
||||
icon: 'packaging',
|
||||
title: 'Secure Packaging',
|
||||
description: 'On request, products ship in pallet-box packaging for a small fee.'
|
||||
},
|
||||
],
|
||||
about: {
|
||||
eyebrow: 'Company Profile',
|
||||
@@ -387,12 +496,42 @@ export const content = {
|
||||
locations: {
|
||||
title: 'Ideal Locations for a Robot Market Machine',
|
||||
items: [
|
||||
{ id: 'hotels', icon: 'hotel', title: 'Hotels & Accommodations', description: 'Anywhere large crowds wait in line — beyond the revenue, Robot Market becomes an amenity that increases guest satisfaction.' },
|
||||
{ id: 'schools', icon: 'school', title: 'Schools & Educational Centers', description: 'If a student has to leave campus to buy something and, God forbid, an incident occurs, responsibility falls directly on the school administrator. A Robot Market on-site is essential.' },
|
||||
{ id: 'pharmacies', icon: 'pharmacy', title: 'Pharmacies & Supermarkets', description: 'For selling personal/health products discreetly, for customers who prefer not to purchase them in person.' },
|
||||
{ id: 'hospitals', icon: 'hospital', title: 'Hospitals & Medical Centers', description: 'For selling personal/health products discreetly, for customers who prefer not to purchase them in person.' },
|
||||
{ id: 'night-shift', icon: 'night', title: 'Night-Shift Coverage', description: 'Robot Market can be installed behind a shop\'s security glass, serving customers even after closing time and in the middle of the night.' },
|
||||
{ id: 'specialty', icon: 'specialty', title: 'Specialty Products', description: 'If you manufacture or represent a specific product line, a Robot Market machine can take on introducing and offering your specialty products too.' },
|
||||
{
|
||||
id: 'hotels',
|
||||
icon: 'hotel',
|
||||
title: 'Hotels & Accommodations',
|
||||
description: 'Anywhere large crowds wait in line — beyond the revenue, Robot Market becomes an amenity that increases guest satisfaction.'
|
||||
},
|
||||
{
|
||||
id: 'schools',
|
||||
icon: 'school',
|
||||
title: 'Schools & Educational Centers',
|
||||
description: 'If a student has to leave campus to buy something and, God forbid, an incident occurs, responsibility falls directly on the school administrator. A Robot Market on-site is essential.'
|
||||
},
|
||||
{
|
||||
id: 'pharmacies',
|
||||
icon: 'pharmacy',
|
||||
title: 'Pharmacies & Supermarkets',
|
||||
description: 'For selling personal/health products discreetly, for customers who prefer not to purchase them in person.'
|
||||
},
|
||||
{
|
||||
id: 'hospitals',
|
||||
icon: 'hospital',
|
||||
title: 'Hospitals & Medical Centers',
|
||||
description: 'For selling personal/health products discreetly, for customers who prefer not to purchase them in person.'
|
||||
},
|
||||
{
|
||||
id: 'night-shift',
|
||||
icon: 'night',
|
||||
title: 'Night-Shift Coverage',
|
||||
description: 'Robot Market can be installed behind a shop\'s security glass, serving customers even after closing time and in the middle of the night.'
|
||||
},
|
||||
{
|
||||
id: 'specialty',
|
||||
icon: 'specialty',
|
||||
title: 'Specialty Products',
|
||||
description: 'If you manufacture or represent a specific product line, a Robot Market machine can take on introducing and offering your specialty products too.'
|
||||
},
|
||||
],
|
||||
},
|
||||
catalog: {
|
||||
@@ -405,12 +544,54 @@ export const content = {
|
||||
machinePriceLabel: 'Robot Market customer price',
|
||||
addToast: (name) => `${name} added to your order`,
|
||||
items: [
|
||||
{ id: 'saffron', name: 'Premium Grade-1 Saffron', category: 'Saffron', image: '/images/catalog/saffron.svg', originalPriceNumeric: 12000000, priceNumeric: 8900000 },
|
||||
{ id: 'chips', name: 'Chips & Crisps (bulk pack)', category: 'Snacks', image: '/images/snacks/chips-1.svg', originalPriceNumeric: 450000, priceNumeric: 320000 },
|
||||
{ id: 'soda', name: 'Soda & Carbonated Drinks', category: 'Drinks', image: '/images/snacks/soda-1.svg', originalPriceNumeric: 250000, priceNumeric: 180000 },
|
||||
{ id: 'water', name: 'Mineral Water', category: 'Drinks', image: '/images/catalog/water.svg', originalPriceNumeric: 120000, priceNumeric: 80000 },
|
||||
{ id: 'coffee', name: 'Instant Coffee', category: 'Hot Drinks', image: '/images/catalog/coffee.svg', originalPriceNumeric: 650000, priceNumeric: 470000 },
|
||||
{ id: 'tea', name: 'Tea Bags', category: 'Hot Drinks', image: '/images/catalog/tea.svg', originalPriceNumeric: 380000, priceNumeric: 270000 },
|
||||
{
|
||||
id: 'saffron',
|
||||
name: 'Premium Grade-1 Saffron',
|
||||
category: 'Saffron',
|
||||
image: '/images/catalog/saffron.svg',
|
||||
originalPriceNumeric: 12000000,
|
||||
priceNumeric: 8900000
|
||||
},
|
||||
{
|
||||
id: 'chips',
|
||||
name: 'Chips & Crisps (bulk pack)',
|
||||
category: 'Snacks',
|
||||
image: '/images/snacks/chips-1.svg',
|
||||
originalPriceNumeric: 450000,
|
||||
priceNumeric: 320000
|
||||
},
|
||||
{
|
||||
id: 'soda',
|
||||
name: 'Soda & Carbonated Drinks',
|
||||
category: 'Drinks',
|
||||
image: '/images/snacks/soda-1.svg',
|
||||
originalPriceNumeric: 250000,
|
||||
priceNumeric: 180000
|
||||
},
|
||||
{
|
||||
id: 'water',
|
||||
name: 'Mineral Water',
|
||||
category: 'Drinks',
|
||||
image: '/images/catalog/water.svg',
|
||||
originalPriceNumeric: 120000,
|
||||
priceNumeric: 80000
|
||||
},
|
||||
{
|
||||
id: 'coffee',
|
||||
name: 'Instant Coffee',
|
||||
category: 'Hot Drinks',
|
||||
image: '/images/catalog/coffee.svg',
|
||||
originalPriceNumeric: 650000,
|
||||
priceNumeric: 470000
|
||||
},
|
||||
{
|
||||
id: 'tea',
|
||||
name: 'Tea Bags',
|
||||
category: 'Hot Drinks',
|
||||
image: '/images/catalog/tea.svg',
|
||||
originalPriceNumeric: 380000,
|
||||
priceNumeric: 270000
|
||||
},
|
||||
],
|
||||
},
|
||||
introVideo: {
|
||||
@@ -486,12 +667,12 @@ export const content = {
|
||||
|
||||
// Locale-independent asset config (positions/paths only — same in both languages).
|
||||
export const floatingSnacks = [
|
||||
{ id: 'chips-1', image: '/images/snacks/chips-1.svg', size: 76, top: '18%', left: '8%', duration: 5.5, delay: 0 },
|
||||
{ id: 'soda-1', image: '/images/snacks/soda-1.svg', size: 64, top: '68%', left: '12%', duration: 6.2, delay: 0.6 },
|
||||
{ id: 'chips-2', image: '/images/snacks/chips-2.svg', size: 58, top: '22%', left: '85%', duration: 4.8, delay: 0.3 },
|
||||
{ id: 'soda-2', image: '/images/snacks/soda-2.svg', size: 70, top: '72%', left: '88%', duration: 5.9, delay: 0.9 },
|
||||
{ id: 'chips-3', image: '/images/snacks/chips-1.svg', size: 48, top: '42%', left: '90%', duration: 6.6, delay: 1.2 },
|
||||
{ id: 'soda-3', image: '/images/snacks/soda-1.svg', size: 52, top: '46%', left: '4%', duration: 5.1, delay: 1.5 },
|
||||
{id: 'chips-1', image: '/images/snacks/item-1.png', size: 76, top: '18%', left: '8%', duration: 5.5, delay: 0},
|
||||
{id: 'soda-1', image: '/images/snacks/item-2.png', size: 64, top: '68%', left: '12%', duration: 6.2, delay: 0.6},
|
||||
{id: 'chips-2', image: '/images/snacks/item-3.png', size: 58, top: '22%', left: '85%', duration: 4.8, delay: 0.3},
|
||||
{id: 'soda-2', image: '/images/snacks/item-4.png', size: 70, top: '72%', left: '88%', duration: 5.9, delay: 0.9},
|
||||
{id: 'chips-3', image: '/images/snacks/item-5.png', size: 48, top: '42%', left: '90%', duration: 6.6, delay: 1.2},
|
||||
{id: 'soda-3', image: '/images/snacks/item-6.png', size: 52, top: '46%', left: '4%', duration: 5.1, delay: 1.5},
|
||||
];
|
||||
|
||||
export const showcaseVideoSrc = '/video/showcase-placeholder.mp4';
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["./*"]
|
||||
}
|
||||
},
|
||||
"jsx": "react"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 80" width="200" height="80">
|
||||
<rect x="2" y="2" width="196" height="76" rx="12" fill="none" stroke="#00a693" stroke-opacity="0.3" stroke-width="2"/>
|
||||
<circle cx="40" cy="40" r="20" fill="#00a693"/>
|
||||
<text x="40" y="47" font-family="Tahoma, sans-serif" font-size="20" font-weight="bold" fill="#ffffff" text-anchor="middle">پ</text>
|
||||
<rect x="72" y="32" width="100" height="8" rx="4" fill="#00a693" fill-opacity="0.35"/>
|
||||
<rect x="72" y="46" width="70" height="6" rx="3" fill="#00a693" fill-opacity="0.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 575 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 80" width="200" height="80">
|
||||
<rect x="2" y="2" width="196" height="76" rx="12" fill="none" stroke="#00a693" stroke-opacity="0.3" stroke-width="2"/>
|
||||
<circle cx="40" cy="40" r="20" fill="#017065"/>
|
||||
<text x="40" y="47" font-family="Tahoma, sans-serif" font-size="20" font-weight="bold" fill="#ffffff" text-anchor="middle">ف</text>
|
||||
<rect x="72" y="32" width="100" height="8" rx="4" fill="#00a693" fill-opacity="0.35"/>
|
||||
<rect x="72" y="46" width="70" height="6" rx="3" fill="#00a693" fill-opacity="0.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 575 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 80" width="200" height="80">
|
||||
<rect x="2" y="2" width="196" height="76" rx="12" fill="none" stroke="#00a693" stroke-opacity="0.3" stroke-width="2"/>
|
||||
<circle cx="40" cy="40" r="20" fill="#00a693"/>
|
||||
<text x="40" y="47" font-family="Tahoma, sans-serif" font-size="20" font-weight="bold" fill="#ffffff" text-anchor="middle">ر</text>
|
||||
<rect x="72" y="32" width="100" height="8" rx="4" fill="#00a693" fill-opacity="0.35"/>
|
||||
<rect x="72" y="46" width="70" height="6" rx="3" fill="#00a693" fill-opacity="0.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 575 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 80" width="200" height="80">
|
||||
<rect x="2" y="2" width="196" height="76" rx="12" fill="none" stroke="#00a693" stroke-opacity="0.3" stroke-width="2"/>
|
||||
<circle cx="40" cy="40" r="20" fill="#0b3d38"/>
|
||||
<text x="40" y="47" font-family="Tahoma, sans-serif" font-size="20" font-weight="bold" fill="#ffffff" text-anchor="middle">ر</text>
|
||||
<rect x="72" y="32" width="100" height="8" rx="4" fill="#00a693" fill-opacity="0.35"/>
|
||||
<rect x="72" y="46" width="70" height="6" rx="3" fill="#00a693" fill-opacity="0.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 575 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 80" width="200" height="80">
|
||||
<rect x="2" y="2" width="196" height="76" rx="12" fill="none" stroke="#00a693" stroke-opacity="0.3" stroke-width="2"/>
|
||||
<circle cx="40" cy="40" r="20" fill="#00a693"/>
|
||||
<text x="40" y="47" font-family="Tahoma, sans-serif" font-size="20" font-weight="bold" fill="#ffffff" text-anchor="middle">آ</text>
|
||||
<rect x="72" y="32" width="100" height="8" rx="4" fill="#00a693" fill-opacity="0.35"/>
|
||||
<rect x="72" y="46" width="70" height="6" rx="3" fill="#00a693" fill-opacity="0.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 575 B |
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 80" width="200" height="80">
|
||||
<rect x="2" y="2" width="196" height="76" rx="12" fill="none" stroke="#00a693" stroke-opacity="0.3" stroke-width="2"/>
|
||||
<circle cx="40" cy="40" r="20" fill="#017065"/>
|
||||
<text x="40" y="47" font-family="Tahoma, sans-serif" font-size="20" font-weight="bold" fill="#ffffff" text-anchor="middle">ت</text>
|
||||
<rect x="72" y="32" width="100" height="8" rx="4" fill="#00a693" fill-opacity="0.35"/>
|
||||
<rect x="72" y="46" width="70" height="6" rx="3" fill="#00a693" fill-opacity="0.2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 575 B |
@@ -1,8 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 220 60" width="220" height="60">
|
||||
<rect x="2" y="2" width="56" height="56" rx="14" fill="#00a693"/>
|
||||
<rect x="16" y="14" width="28" height="32" rx="4" fill="#04120f"/>
|
||||
<rect x="20" y="18" width="8" height="10" rx="1" fill="#00a693"/>
|
||||
<rect x="32" y="18" width="8" height="10" rx="1" fill="#00a693"/>
|
||||
<text x="70" y="27" font-family="Tahoma, sans-serif" font-size="20" font-weight="bold" fill="#e6f7f4">روبات مارکت</text>
|
||||
<text x="70" y="46" font-family="Tahoma, sans-serif" font-size="12" fill="#8fdccc">Robot Market</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 604 B |
@@ -1,28 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 700" width="400" height="700">
|
||||
<defs>
|
||||
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#00a693" stop-opacity="0.95"/>
|
||||
<stop offset="1" stop-color="#08554e"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="40" y="30" width="320" height="620" rx="26" fill="url(#body)" stroke="#012e28" stroke-width="6"/>
|
||||
<rect x="70" y="70" width="260" height="360" rx="10" fill="#04120f" opacity="0.55"/>
|
||||
<g fill="#0b3d38" opacity="0.9">
|
||||
<rect x="85" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="85" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="175" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="265" width="35" height="80" rx="4"/>
|
||||
</g>
|
||||
<rect x="70" y="450" width="260" height="150" rx="10" fill="#04120f" opacity="0.4"/>
|
||||
<circle cx="200" cy="525" r="34" fill="none" stroke="#e6f7f4" stroke-width="4"/>
|
||||
<rect x="185" y="595" width="30" height="40" rx="4" fill="#04120f"/>
|
||||
<text x="200" y="670" font-family="Tahoma, sans-serif" font-size="26" fill="#e6f7f4" text-anchor="middle">RM-35</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,28 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 700" width="400" height="700">
|
||||
<defs>
|
||||
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#ffffff"/>
|
||||
<stop offset="1" stop-color="#dff3ef"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="40" y="30" width="320" height="620" rx="26" fill="url(#body)" stroke="#00a693" stroke-width="6"/>
|
||||
<rect x="70" y="70" width="260" height="360" rx="10" fill="#ffffff" opacity="0.9" stroke="#8fdccc" stroke-width="2"/>
|
||||
<g fill="#c0ebe3" stroke="#00a693" stroke-width="1.5">
|
||||
<rect x="85" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="85" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="175" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="265" width="35" height="80" rx="4"/>
|
||||
</g>
|
||||
<rect x="70" y="450" width="260" height="150" rx="10" fill="#ffffff" opacity="0.9" stroke="#8fdccc" stroke-width="2"/>
|
||||
<circle cx="200" cy="525" r="34" fill="none" stroke="#00a693" stroke-width="4"/>
|
||||
<rect x="185" y="595" width="30" height="40" rx="4" fill="#00a693"/>
|
||||
<text x="200" y="670" font-family="Tahoma, sans-serif" font-size="26" fill="#00a693" text-anchor="middle">RM-35 · White</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,28 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 700" width="400" height="700">
|
||||
<defs>
|
||||
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#00a693" stop-opacity="0.95"/>
|
||||
<stop offset="1" stop-color="#08554e"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="40" y="30" width="320" height="620" rx="26" fill="url(#body)" stroke="#012e28" stroke-width="6"/>
|
||||
<rect x="70" y="70" width="260" height="360" rx="10" fill="#04120f" opacity="0.55"/>
|
||||
<g fill="#0b3d38" opacity="0.9">
|
||||
<rect x="85" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="85" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="175" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="265" width="35" height="80" rx="4"/>
|
||||
</g>
|
||||
<rect x="70" y="450" width="260" height="150" rx="10" fill="#04120f" opacity="0.4"/>
|
||||
<circle cx="200" cy="525" r="34" fill="none" stroke="#e6f7f4" stroke-width="4"/>
|
||||
<rect x="185" y="595" width="30" height="40" rx="4" fill="#04120f"/>
|
||||
<text x="200" y="670" font-family="Tahoma, sans-serif" font-size="26" fill="#e6f7f4" text-anchor="middle">RM-48</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,28 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 700" width="400" height="700">
|
||||
<defs>
|
||||
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#ffffff"/>
|
||||
<stop offset="1" stop-color="#dff3ef"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="40" y="30" width="320" height="620" rx="26" fill="url(#body)" stroke="#00a693" stroke-width="6"/>
|
||||
<rect x="70" y="70" width="260" height="360" rx="10" fill="#ffffff" opacity="0.9" stroke="#8fdccc" stroke-width="2"/>
|
||||
<g fill="#c0ebe3" stroke="#00a693" stroke-width="1.5">
|
||||
<rect x="85" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="85" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="175" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="265" width="35" height="80" rx="4"/>
|
||||
</g>
|
||||
<rect x="70" y="450" width="260" height="150" rx="10" fill="#ffffff" opacity="0.9" stroke="#8fdccc" stroke-width="2"/>
|
||||
<circle cx="200" cy="525" r="34" fill="none" stroke="#00a693" stroke-width="4"/>
|
||||
<rect x="185" y="595" width="30" height="40" rx="4" fill="#00a693"/>
|
||||
<text x="200" y="670" font-family="Tahoma, sans-serif" font-size="26" fill="#00a693" text-anchor="middle">RM-48 · White</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,28 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 700" width="400" height="700">
|
||||
<defs>
|
||||
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#00a693" stop-opacity="0.95"/>
|
||||
<stop offset="1" stop-color="#08554e"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="40" y="30" width="320" height="620" rx="26" fill="url(#body)" stroke="#012e28" stroke-width="6"/>
|
||||
<rect x="70" y="70" width="260" height="360" rx="10" fill="#04120f" opacity="0.55"/>
|
||||
<g fill="#0b3d38" opacity="0.9">
|
||||
<rect x="85" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="85" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="175" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="265" width="35" height="80" rx="4"/>
|
||||
</g>
|
||||
<rect x="70" y="450" width="260" height="150" rx="10" fill="#04120f" opacity="0.4"/>
|
||||
<circle cx="200" cy="525" r="34" fill="none" stroke="#e6f7f4" stroke-width="4"/>
|
||||
<rect x="185" y="595" width="30" height="40" rx="4" fill="#04120f"/>
|
||||
<text x="200" y="670" font-family="Tahoma, sans-serif" font-size="26" fill="#e6f7f4" text-anchor="middle">RM-60</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,28 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 700" width="400" height="700">
|
||||
<defs>
|
||||
<linearGradient id="body" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0" stop-color="#ffffff"/>
|
||||
<stop offset="1" stop-color="#dff3ef"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect x="40" y="30" width="320" height="620" rx="26" fill="url(#body)" stroke="#00a693" stroke-width="6"/>
|
||||
<rect x="70" y="70" width="260" height="360" rx="10" fill="#ffffff" opacity="0.9" stroke="#8fdccc" stroke-width="2"/>
|
||||
<g fill="#c0ebe3" stroke="#00a693" stroke-width="1.5">
|
||||
<rect x="85" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="85" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="85" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="175" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="175" width="35" height="80" rx="4"/>
|
||||
<rect x="85" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="150" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="215" y="265" width="55" height="80" rx="4"/>
|
||||
<rect x="280" y="265" width="35" height="80" rx="4"/>
|
||||
</g>
|
||||
<rect x="70" y="450" width="260" height="150" rx="10" fill="#ffffff" opacity="0.9" stroke="#8fdccc" stroke-width="2"/>
|
||||
<circle cx="200" cy="525" r="34" fill="none" stroke="#00a693" stroke-width="4"/>
|
||||
<rect x="185" y="595" width="30" height="40" rx="4" fill="#00a693"/>
|
||||
<text x="200" y="670" font-family="Tahoma, sans-serif" font-size="26" fill="#00a693" text-anchor="middle">RM-60 · White</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,6 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 160" width="120" height="160">
|
||||
<path d="M20 10 L100 10 L92 150 L28 150 Z" fill="#ffb020" stroke="#7a4a00" stroke-width="3"/>
|
||||
<path d="M20 10 L100 10 L96 45 L24 45 Z" fill="#00a693"/>
|
||||
<circle cx="60" cy="90" r="26" fill="#fff4d6" opacity="0.85"/>
|
||||
<text x="60" y="30" font-family="Tahoma, sans-serif" font-size="14" fill="#ffffff" text-anchor="middle">چیپس</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 438 B |
@@ -1,6 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 160" width="120" height="160">
|
||||
<path d="M20 10 L100 10 L92 150 L28 150 Z" fill="#e6533c" stroke="#6b1f10" stroke-width="3"/>
|
||||
<path d="M20 10 L100 10 L96 45 L24 45 Z" fill="#00a693"/>
|
||||
<circle cx="60" cy="90" r="26" fill="#ffe3d6" opacity="0.85"/>
|
||||
<text x="60" y="30" font-family="Tahoma, sans-serif" font-size="14" fill="#ffffff" text-anchor="middle">چیپس</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 438 B |
@@ -1,6 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 180" width="100" height="180">
|
||||
<rect x="20" y="10" width="60" height="160" rx="14" fill="#00a693" stroke="#012e28" stroke-width="3"/>
|
||||
<rect x="20" y="60" width="60" height="45" fill="#e6f7f4" opacity="0.9"/>
|
||||
<text x="50" y="88" font-family="Tahoma, sans-serif" font-size="13" fill="#00594f" text-anchor="middle">نوشابه</text>
|
||||
<rect x="38" y="0" width="24" height="14" rx="3" fill="#8fdccc"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 470 B |
@@ -1,6 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 180" width="100" height="180">
|
||||
<rect x="20" y="10" width="60" height="160" rx="14" fill="#ffb020" stroke="#012e28" stroke-width="3"/>
|
||||
<rect x="20" y="60" width="60" height="45" fill="#fff4d6" opacity="0.9"/>
|
||||
<text x="50" y="88" font-family="Tahoma, sans-serif" font-size="13" fill="#7a4a00" text-anchor="middle">نوشابه</text>
|
||||
<rect x="38" y="0" width="24" height="14" rx="3" fill="#ffe0a3"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 470 B |