// ============================================================ // Home page (Soft Showroom Lite) // ============================================================ const { useState, useEffect } = React; // Decorative wavy SVG function WaveAccent({ style, colors = ['#FFC8B0', '#C9A5DC'] }) { return ( ); } function HomeHero({ navigate }) { const [mode, setMode] = useState('12bit'); return (
A brighter way to talk to your customers

Signage that moves people.

LED matrix displays for storefronts, lobbies and facades. Three series, six sizes, one app. Push text, GIFs and 12-bit color from your phone — no PC, no software install.

{[ { c: 'var(--brand-magenta)', t: '12-bit full color' }, { c: 'var(--brand-violet)', t: '6,000-nit outdoor' }, { c: 'var(--brand-pink)', t: 'IP65 weather-sealed' }, { c: 'var(--brand-purple)', t: '220+ languages' }, ].map((s, i) => (
{s.t}
))}
{/* Hero display */}
Chroma 30 · 12-bit · 192 × 64 px
₹24,990
{[['mono', 'Mono'], ['3bit', '3-bit'], ['12bit', '12-bit']].map(([v, l]) => ( ))}
); } // Marquee strip function HomeMarquee() { const items = ['STOREFRONTS', '★', 'CAFÉS', '★', 'PETROL STATIONS', '★', 'TEMPLES', '★', 'STADIUMS', '★', 'METRO STATIONS', '★', 'EVENT VENUES', '★', 'PHARMACIES', '★', 'BANKS']; return (
{items.concat(items).map((t, i) => ( {t} ))}
); } // Series — full-width alternating cards (Soft Showroom Lite style) function HomeSeries({ navigate }) { return (
§ 01 — Three series

Pick a size that fits your wall.

Every VividPix display runs the same operating system and pairs with the same app — so once you learn one, you've learned them all.

{SERIES.map((s, i) => )}
); } function SeriesCard({ series, index, navigate }) { const alt = index === 1; // Chroma reversed const isDark = series.id === 'beacon'; const imageSrc = series.id === 'lumen' ? 'assets/3x1-front.png' : series.id === 'chroma' ? 'assets/3x1-angle.png' : 'assets/3x1-front.png'; const bgClass = series.id === 'lumen' ? 'photo-bg-cool' : series.id === 'chroma' ? 'photo-bg-warm' : 'photo-bg-dark'; const cols = alt ? '1.3fr 1fr' : '1fr 1.3fr'; const imgCol = (
{series.name}
); const textCol = (
Series 0{index + 1} · {series.short}

{series.name}

{series.tagline}

{series.description}

p.price)).toLocaleString('en-IN')}/>
Explore {series.name}
); return (
navigate(`series-${series.id}`)} onMouseEnter={(e) => { e.currentTarget.style.transform = 'translateY(-4px)'; e.currentTarget.style.boxShadow = '0 30px 60px -20px rgba(109,15,197,0.25)'; }} onMouseLeave={(e) => { e.currentTarget.style.transform = 'translateY(0)'; e.currentTarget.style.boxShadow = 'var(--shadow-card)'; }} > {alt ? <>{textCol}{imgCol} : <>{imgCol}{textCol}}
); } function SpecMini({ k, v }) { return (
{k}
{v}
); } // Features function HomeFeatures() { const items = [ { icon: , title: '12-bit full color', body: '4,096 shades per channel for photo-quality output, smooth gradients, and faithful brand reproduction.' }, { icon: , title: 'Multilingual + emoji', body: 'Type in Hindi, Tamil, Arabic, Mandarin — anything Unicode. Mix in emoji and brand icons inline.' }, { icon: , title: 'Phone-first control', body: 'Push content from Android or the web app over Wi-Fi. No PC, no driver install, no firmware ritual.' }, { icon: , title: 'IP65 outdoor option', body: 'The Beacon series is sealed against rain, dust and sun. Surge-protected PSU on every unit.' }, { icon: , title: 'GIF playback', body: 'Drop a .gif and we render it on-device at native refresh — no transcoding, no perceptible lag.' }, { icon: , title: 'Mount and go', body: 'Wall, ceiling, or pole — every panel ships with a universal bracket and pre-wired AC input.' }, ]; return (
§ 02 — What it does

One panel, every kind of message.

{items.map((it, i) => (
{ e.currentTarget.style.transform = 'translateY(-3px)'; e.currentTarget.style.borderColor = 'var(--lav-200)'; }} onMouseLeave={(e) => { e.currentTarget.style.transform = 'translateY(0)'; e.currentTarget.style.borderColor = 'var(--line)'; }} >
{it.icon}

{it.title}

{it.body}

))}
); } // Showroom — uses the full lineup photo function HomeShowroom() { return (
§ 03 — In the wild

Six sizes. One shared OS.

From the 2-foot Lumen reader-board behind your café counter to the 5-foot Beacon hanging off a petrol station — every VividPix display speaks the same language and runs the same playlists.

{['Same app for the entire range', 'Schedule months of content ahead', 'Group displays into zones, push to all at once'].map((t, i) => (
{t}
))}
The full VividPix lineup
); } // Bestsellers function HomeBestsellers({ navigate, onAdd }) { const featured = ['lumen-20', 'chroma-30', 'beacon-40'].map(getProduct); return (
§ 04 — Bestsellers

Most loved this quarter.

The displays our customers reorder for second locations. Free shipping, 2-year warranty, installed in 24 hours across major Indian metros.

{featured.map(p => navigate(`product-${p.id}`)} onAdd={onAdd}/>)}
); } // Closing CTA function HomeCTA({ navigate }) { return (
§ 05 — Ready when you are

Your shop deserves to be seen.

Order today, unbox tomorrow. Free installation in Bengaluru, Mumbai, Delhi, Hyderabad and Pune.

); } function HomePage({ navigate, onAdd }) { return ( <> ); } Object.assign(window, { HomePage, WaveAccent });