const { useState, useEffect, useMemo, useRef } = React; // ============================================================================ // DATA // ============================================================================ const PORTFOLIO = [ { id: 'pkg-eid', img: 'media/product-packaging-01.webp', title: 'Eid Mubarak gift set', tag: 'PACKAGING', cat: 'packaging', size: 'wide' }, { id: 'card-emboss', img: 'media/product-embossed-business-cards.webp', title: 'Embossed business cards', tag: 'CARDS', cat: 'cards', size: 'tall' }, { id: 'book-coffee', img: 'media/product-coffeetable-book.webp', title: 'Coffee-table book', tag: 'BOOKS', cat: 'books', size: 'med' }, { id: 'tech-video', img: 'media/product-video-brochure.webp', title: 'Video brochure', tag: 'TECHNOLOGY', cat: 'technology', size: 'med' }, { id: 'pkg-sunset', img: 'media/product-packaging-02.webp', title: 'Bespoke gift packaging', tag: 'PACKAGING', cat: 'packaging', size: 'tall' }, { id: 'corp-tender', img: 'media/product-tender-proposal-folder.webp', title: 'Tender proposal folder', tag: 'CORPORATE', cat: 'corporate', size: 'sm' }, { id: 'corp-letter', img: 'media/product-letterhead-stationery.webp',title: 'Letterhead & stationery', tag: 'CORPORATE', cat: 'corporate', size: 'sm' }, { id: 'mkt-poster', img: 'media/product-posters.webp', title: 'Poster series', tag: 'MARKETING', cat: 'marketing', size: 'sm' }, { id: 'pf-01', img: 'media/portfolio-01.webp', title: 'Notebook collection', tag: 'BOOKS', cat: 'books', size: 'sm' }, { id: 'tech-wrap', img: 'media/product-tech-wrap.webp', title: 'Abu Dhabi launch wrap', tag: 'MARKETING', cat: 'marketing', size: 'wide' }, { id: 'lbl-cosmet', img: 'media/product-cosmetic-labels.webp', title: 'Cosmetic labels', tag: 'LABELS', cat: 'packaging', size: 'tall' }, { id: 'pf-02', img: 'media/portfolio-02.webp', title: 'On-demand book', tag: 'BOOKS', cat: 'books', size: 'med' }, { id: 'card-vouch', img: 'media/product-qr-voucher-card.webp', title: 'QR voucher cards', tag: 'TECHNOLOGY', cat: 'technology', size: 'med' }, ]; const PRODUCT_CATEGORIES = [ { id: 'business-cards', num: '01', title: 'Business cards', desc: 'Original, premium and luxury cards — foiled, embossed, edge-painted, on heavyweight stocks.', img: 'media/product-business-cards.webp', types: ['Original', 'Premium', 'Luxury', 'Letterpress', 'Foiled', 'Embossed'], }, { id: 'books', num: '02', title: 'Books', desc: 'On-demand, coffee-table, photo, look, story, recipe, children\u2019s, school, thesis, memoirs.', img: 'media/product-corporate-books.webp', types: ['Coffee-table', 'On-demand', 'Photo', 'Look book', 'Memoirs', 'Children\u2019s board'], }, { id: 'corporate', num: '03', title: 'Corporate printing', desc: 'Profiles, annual reports, certificates, letterheads, diaries, journals, invitations, folders.', img: 'media/product-corporate-diaries.webp', types: ['Company profile', 'Annual report', 'Letterheads', 'Diaries & journals', 'Invitations', 'Folders'], }, { id: 'marketing', num: '04', title: 'Marketing collateral', desc: 'Brochures, posters, roll-ups, danglers, vouchers, gift cards, calendars, placemats, coasters.', img: 'media/product-retail-danglers.webp', types: ['Brochures & flyers', 'Posters', 'Roll-up banners', 'Danglers', 'Vouchers', 'Calendars'], }, { id: 'labels-packaging', num: '05', title: 'Labels & packaging', desc: 'Rigid, luxury, gift, festive, handover, e-commerce and influencer boxes. Bags, stickers, labels.', img: 'media/product-packaging-01.webp', types: ['Rigid boxes', 'Luxury boxes', 'E-commerce', 'Shopping bags', 'Stickers', 'Labels'], }, { id: 'technology', num: '06', title: 'Technology', desc: 'NFC cards, QR & barcode, variable-data, video brochures (4.3" / 7" / 10" screen).', img: 'media/product-video-brochure.webp', types: ['NFC cards', 'QR / barcode', 'Variable-data', 'Video brochures', 'Business-card video', 'Smart packaging'], featured: true, }, ]; const LOUNGES = [ { id: 'd3', name: 'd3 lounge', since: 'Dubai Design District · since 2021', addr: 'Building 1B, Retail 3, Dubai Design District, Dubai', phone: '+971 4 878 0054', email: 'd3info@printerydubai.com', img: 'media/lounge-d3-01.webp', note: 'The first premium print lounge at d3.', }, { id: 'difc', name: 'DIFC lounge', since: 'Central Park Towers · since 2017', addr: 'P2-124, Central Park Towers, DIFC, P.O. Box 507199, Dubai', phone: '+971 50 160 7042', email: 'sales@printerydubai.com', img: 'media/lounge-02.webp', note: 'Our first outlet — opened February 2017.', }, { id: 'auh', name: 'Abu Dhabi lounge', since: 'Y Tower, Capital Centre · 2025', addr: 'Y Tower, Unit 7 & 12, Ground Floor, Al Rawdah, Capital Centre', phone: '+971 50 160 7042', email: 'auh@printery.ae', img: 'media/lounge-abu-dhabi-2025.webp', note: 'Our newest lounge — serving the capital.', }, ]; // ============================================================================ // PRIMITIVES // ============================================================================ function LogoGlyph({ size = 28 }) { // tangram-style P glyph derived from the official logo return ( ); } function Wordmark() { return ( printery ); } function ArrowR({ size = 14 }) { return ( ); } function ArrowUpRight({ size = 14 }) { return ( ); } function TangramStrip({ density = 'subtle' }) { if (density === 'off') return null; const palette = ['--tg-red','--tg-orange','--tg-yellow','--tg-green','--tg-teal','--tg-blue','--tg-purple','--tg-plum']; const widths = density === 'loud' ? [8, 14, 4, 18, 6, 22, 10, 18] : density === 'medium' ? [16, 8, 24, 6, 18, 12, 8, 8] : [40, 6, 30, 8, 6, 6, 0, 4]; const total = widths.reduce((a,b)=>a+b, 0); return ( ); } // ============================================================================ // NAV // ============================================================================ function Nav({ onQuote }) { const [open, setOpen] = useState(false); return ( <>
+971 4 878 0054
{open && (
{['Portfolio','Products','Sustainability','Lounges','About'].map(n => ( setOpen(false)}>{n} ))}
)} ); } // ============================================================================ // HERO // ============================================================================ function HeroSplit({ onQuote }) { return (
EST. 2014 · DUBAI · FSC CERTIFIED

Premium print,
crafted in Dubai
since 2014.

A premium print lounge in d3, DIFC and Abu Dhabi — bespoke printing, packaging and corporate stationery, made on an FSC-certified, solar-powered press.

Explore the portfolio
3lounges 500+finished pieces FSCcertified paper 100%solar-powered plant
The Printery lounge at Dubai Design District
d3 lounge · Building 1B, Retail 3
); } function HeroFull({ onQuote }) { return (
The Printery lounge at Dubai Design District
EST. 2014 · DUBAI · FSC CERTIFIED

Premium print, crafted in Dubai since 2014.

A premium print lounge in d3, DIFC and Abu Dhabi — bespoke printing, packaging and corporate stationery, made on an FSC-certified, solar-powered press.

Explore the portfolio
); } // ============================================================================ // CREDIBILITY STRIP // ============================================================================ function CredibilityStrip() { const items = [ { num: 'Since 2014', label: 'Founded as Dubai\u2019s premium print lounge' }, { num: '3 lounges', label: 'd3 · DIFC · Abu Dhabi Capital Centre' }, { num: 'FSC', label: 'Certified paper · tree-free & seed stocks' }, { num: 'Solar', label: 'Powered by an on-site solar plant' }, ]; return (
{items.map((it, i) => (
{it.num}
{it.label}
))}
); } // ============================================================================ // PORTFOLIO // ============================================================================ function Portfolio({ onQuote }) { const [filter, setFilter] = useState('all'); const filters = [ { id: 'all', label: 'All work' }, { id: 'packaging', label: 'Packaging' }, { id: 'cards', label: 'Business cards' }, { id: 'books', label: 'Books' }, { id: 'corporate', label: 'Corporate' }, { id: 'marketing', label: 'Marketing' }, { id: 'technology', label: 'Technology' }, ]; const items = useMemo(() => { return filter === 'all' ? PORTFOLIO : PORTFOLIO.filter(p => p.cat === filter); }, [filter]); return (
— Showcase

A portfolio of finished work.

Paper, finish and detail you can feel. Every piece is made bespoke for a real client — offset or digital, foil or emboss, soft-touch or uncoated, here in our Dubai press.

{filters.map(f => ( ))} {String(items.length).padStart(2,'0')} / {String(PORTFOLIO.length).padStart(2,'0')}
{items.map((p, i) => (
{p.title}
{p.tag}
{p.title}
))}

Client names appear only with permission. Want a closer look at any piece? Visit the d3 lounge to see, feel and discuss the finishes.

); } // ============================================================================ // PRODUCTS HUB // ============================================================================ function Products({ onQuote }) { return (
— Six categories

Everything we make, made well.

Six real categories built from twenty-plus production lines. Each item is quoted to the project — no fixed price lists, no boxed kits. Pick a category to start your enquiry.

{PRODUCT_CATEGORIES.map(p => (
{p.title}
{p.num} {p.featured ? '· DIFFERENTIATOR' : ''}

{p.title}

{p.desc}

{p.types.map(t => {t})}
))}
); } // ============================================================================ // RIBBON (rolling line) // ============================================================================ function Ribbon() { const phrases = [ 'Bespoke printing', 'Custom packaging', 'Corporate stationery', 'NFC & video brochures', 'On-demand books', 'Luxury business cards', ]; const Line = () => ( {phrases.map((p, i) => ( · {p} ))} ); return ( ); } // ============================================================================ // SUSTAINABILITY // ============================================================================ function Sustainability() { return (
A booklet printed on tree-free paper
FSC Certified
Solar-powered
— Sustainability

Carbon-neutral, eco-friendly, sustainable.

FSC-certified paper, tree-free and seed stocks, vegetable inks — and a solar-powered plant that enables continuous and sustainable production. Beautiful print and a clear conscience, in equal measure.

  • FSC-certified mixed-source paper
  • Tree-free agricultural-pulp stocks
  • Plantable seed-paper invitations
  • Vegetable-based offset inks
  • On-site solar power array
  • Recyclable / compostable finishes
See sustainable options
); } // ============================================================================ // LOUNGES // ============================================================================ function Lounges({ onQuote }) { return (
— Visit us

Three print lounges.

The lounge is where the work happens. Bring artwork, sample stocks and finishes, see the press in motion. Walk-ins welcome — consultations by appointment.

{LOUNGES.map(l => ( ))}

Hours per public listing — please confirm by phone before visiting.

); } // ============================================================================ // ABOUT // ============================================================================ function About() { return (
Inside the Printery showroom
— About

A craft house, not a print shop.

Founded in 2014, Printery is a creative print production house — a place where designers, agencies and businesses come to make printed work that lives up to its design. Three lounges across Dubai and Abu Dhabi, an FSC-certified press, and a team obsessed with paper, finish and the small details that turn a print job into an object worth keeping.

We work in two directions: a bespoke route for commissions, books, packaging and limited editions — and a B2B route for corporate stationery, tenders and ongoing programmes. The brief is always the same: make it well.

11+Years in Dubai
3Lounges
500+Bespoke commissions
); } // ============================================================================ // QUOTE BAND // ============================================================================ function QuoteBand({ onQuote }) { return (
— Start the work

Have a project?
Start a quote or commission.

Tell us about the piece — quantity, finish, stock, deadline — and we’ll come back within one working day with a quote, paper samples and a proof plan.

WhatsApp +971 50 160 7042
CALL d3
+971 4 878 0054
EMAIL
sales@printerydubai.com
); } // ============================================================================ // FOOTER // ============================================================================ function Footer() { return ( ); } // ============================================================================ // QUOTE MODAL // ============================================================================ function QuoteModal({ open, onClose, prefillCategory }) { const [stage, setStage] = useState('form'); // form | sent const [data, setData] = useState({ category: prefillCategory || 'business-cards', name: '', company: '', email: '', phone: '', qty: '', notes: '', deadline: '', }); useEffect(() => { if (open) { setStage('form'); setData(d => ({ ...d, category: prefillCategory || 'business-cards' })); } }, [open, prefillCategory]); useEffect(() => { const onEsc = e => { if (e.key === 'Escape') onClose(); }; if (open) window.addEventListener('keydown', onEsc); return () => window.removeEventListener('keydown', onEsc); }, [open, onClose]); if (!open) return null; const submit = e => { e.preventDefault(); setStage('sent'); }; const update = (k, v) => setData(d => ({ ...d, [k]: v })); return (
e.stopPropagation()}> {stage === 'form' && ( <>
— Request a quote

Tell us about the piece.

One working day to come back with a quote, paper samples and a proof plan.

update('name', e.target.value)} placeholder="Jane Designer" required />
update('company', e.target.value)} placeholder="Studio or organisation" />
update('email', e.target.value)} placeholder="you@studio.com" required />
update('phone', e.target.value)} placeholder="+971 …" />
update('qty', e.target.value)} placeholder="e.g. 250 boxes, 1000 cards" />
update('deadline', e.target.value)} placeholder="Target delivery date" />
Drop PDF, AI or PSD here · or browse files

Submitting also opens a pre-filled WhatsApp to +971 50 160 7042.

)} {stage === 'sent' && (
— Sent

Thank you. We’re on it.

You’ll hear back within one working day. In the meantime, drop into the d3 lounge to feel the stocks in person.

Open WhatsApp
)}
); } // ============================================================================ // APP // ============================================================================ function App() { const useTweaksHook = window.useTweaks || (d => [d, () => {}]); const [t, setTweak] = useTweaksHook(PRINTERY_TWEAK_DEFAULTS); const [quoteOpen, setQuoteOpen] = useState(false); const [prefill, setPrefill] = useState(null); // apply accent useEffect(() => { document.documentElement.style.setProperty('--accent', t.accent); }, [t.accent]); const openQuote = (cat) => { setPrefill(cat || null); setQuoteOpen(true); }; const { TweaksPanel, TweakSection, TweakRadio, TweakColor, TweakToggle } = window; return ( <>