// Services, Gallery, About, Contact pages const { Reveal, ParallaxPhoto, navigate, Icon } = window.Sky; // ============================================================ // SERVICES PAGE // ============================================================ const SERVICES_DATA = [ { id: 'hardwood', title: 'Hardwood Installation', sub: 'Solid & engineered', img: 'assets/photos/walnut-tile-floor.jpg', desc: 'Site-finished or pre-finished hardwood, installed plank-by-plank with attention to grain match, transitions, and stair noses. Oak, maple, walnut, hickory.', included: ['Subfloor inspection & flatness check', 'Acclimatization (3–7 days on site)', 'Custom transitions, reducers & T-moulds', 'Quarter-round or shoe moulding', 'Dust-extracted cuts indoors'], timeline: '3–6 days for a typical main floor', }, { id: 'lvp', title: 'Laminate & Vinyl Plank', sub: 'LVP / SPC click-lock', img: 'assets/photos/install-walnut-progress.jpg', desc: 'Waterproof luxury vinyl plank — perfect for basements, kitchens, kid-and-pet households, and anywhere you want hardwood looks without the worry. Floating or glue-down.', included: ['Underlayment supplied & installed', 'Waterproof seams & expansion gaps', 'Quarter-round & trim work', 'Door undercuts handled', 'Old floor removal & haul-away'], timeline: '2–4 days for a typical basement', }, { id: 'engineered', title: 'Engineered Hardwood', sub: 'Stable. Real wood. Below-grade-friendly.', img: 'assets/photos/marble-bath-progress.jpg', desc: 'Real hardwood veneer over a dimensionally-stable core — the right choice for radiant heat, basements, and condos. Wide planks up to 9".', included: ['Glue-down or floating install', 'Radiant-heat compatible', 'Wide-plank specialty (7–9")', 'Stair treads & risers', 'Shoe / quarter-round'], timeline: '3–5 days for 800–1200 sqft', }, { id: 'tile', title: 'Tile & Stone', sub: 'Bathrooms, showers, kitchens, foyers', img: 'assets/photos/marble-shower-glass.jpg', desc: 'Porcelain, ceramic, marble, mosaic. Hex, herringbone, large-format. Waterproofed showers with proper slope, niches, and curbless options.', included: ['Waterproofing (Schluter / RedGard)', 'Custom niches & benches', 'Heated floor wire (NuHeat)', 'Large-format (24" / 48") capable', 'Grout & sealing included'], timeline: '5–10 days for a full bathroom', }, { id: 'refinish', title: 'Refinishing & Repair', sub: 'Bring tired hardwood back', img: 'assets/photos/install-walnut-progress.jpg', desc: 'Sand, stain and refinish existing hardwood floors. Board replacement for water damage, pet stains, creaks, and squeaks. Dustless sanding system.', included: ['Dustless sanding (90%+ less dust)', 'Stain matching to existing', 'Water-based or oil polyurethane', 'Single board replacement', 'Squeak repair from above'], timeline: '4–6 days incl. cure time', }, { id: 'subfloor', title: 'Subfloor Prep', sub: 'The work nobody sees, but everyone feels', img: 'assets/photos/install-large-tile.jpg', desc: 'Self-levelling, plywood overlay, joist sistering, moisture mitigation. The difference between a floor that lasts 30 years and one that telegraphs every flaw.', included: ['Self-levelling underlayment', 'Plywood / cement-board overlay', 'Moisture testing & vapor barrier', 'Joist sistering for sag', 'Squeak elimination'], timeline: '1–2 days, prior to flooring', }, ]; function ServicesHero() { return (
Services

Six things I do.
All of them, well.

I'd rather do six things excellently than twenty things adequately. If a job doesn't fit one of these categories, I'll tell you who to call.

); } function ServiceBlock({ s, idx }) { const flip = idx % 2 === 1; return (
0{idx + 1}

{s.desc}

What's included
    {s.included.map(i => (
  • ))}
Typical timeline
{s.timeline}
{ e.preventDefault(); navigate('contact'); }}>Quote this work

); } function ServicesPage() { return (
{SERVICES_DATA.map((s, i) => )}
); } // ============================================================ // GALLERY PAGE // ============================================================ const GALLERY = [ { src: 'assets/photos/walnut-tile-floor.jpg', cat: 'tile', loc: 'Cambridge', mat: 'Wood-look porcelain, 8"×48"', sqft: 920 }, { src: 'assets/photos/marble-shower-glass.jpg', cat: 'tile', loc: 'Waterloo', mat: 'Carrara marble, 12"×24"', sqft: 65 }, { src: 'assets/photos/marble-bathroom-full.jpg', cat: 'tile', loc: 'Kitchener', mat: 'Calacatta porcelain slabs', sqft: 110 }, { src: 'assets/photos/white-marble-shower.jpg', cat: 'tile', loc: 'Guelph', mat: 'Polished marble, hex floor', sqft: 80 }, { src: 'assets/photos/gold-marble-bath.jpg', cat: 'tile', loc: 'Waterloo', mat: 'Calacatta gold, large-format', sqft: 95 }, { src: 'assets/photos/black-hardware-shower.jpg', cat: 'tile', loc: 'Kitchener', mat: 'Grey marble, basketweave', sqft: 70 }, { src: 'assets/photos/install-walnut-progress.jpg', cat: 'tile', loc: 'Cambridge', mat: 'Wood-look plank install', sqft: 920 }, { src: 'assets/photos/install-grey-tile-foyer.jpg', cat: 'tile', loc: 'Kitchener', mat: 'Grey terrazzo-look porcelain', sqft: 240 }, { src: 'assets/photos/onyx-shower.jpg', cat: 'tile', loc: 'Waterloo', mat: 'Onyx-look porcelain, bookmatched', sqft: 85 }, { src: 'assets/photos/onyx-progress.jpg', cat: 'repairs', loc: 'Waterloo', mat: 'Onyx panels — install in progress', sqft: 85 }, { src: 'assets/photos/hex-marble-bath.jpg', cat: 'tile', loc: 'Guelph', mat: 'Hex shower wall + marble floor', sqft: 105 }, { src: 'assets/photos/chevron-backsplash.jpg', cat: 'tile', loc: 'Kitchener', mat: 'Marble chevron backsplash', sqft: 28 }, { src: 'assets/photos/kitchen-grey-cabinets.jpg', cat: 'lvp', loc: 'Cambridge', mat: 'LVP w/ subway backsplash', sqft: 380 }, { src: 'assets/photos/kitchen-subway-grey.jpg', cat: 'tile', loc: 'Waterloo', mat: 'Grey subway backsplash', sqft: 32 }, { src: 'assets/photos/marble-bath-progress.jpg', cat: 'tile', loc: 'Kitchener', mat: 'Marble bathroom — mid-install', sqft: 130 }, { src: 'assets/photos/white-marble-shower-2.jpg', cat: 'tile', loc: 'Guelph', mat: 'White marble + marble bench', sqft: 95 }, { src: 'assets/photos/large-format-black.jpg', cat: 'tile', loc: 'Cambridge', mat: 'Black large-format, commercial', sqft: 4200 }, { src: 'assets/photos/tile-shower-grey.jpg', cat: 'tile', loc: 'Waterloo', mat: 'Grey marble walls, mosaic floor', sqft: 88 }, { src: 'assets/photos/restaurant-tile-entry.jpg', cat: 'tile', loc: 'Kitchener', mat: 'Striated marble plank', sqft: 320 }, { src: 'assets/photos/restaurant-marble-stripe.jpg', cat: 'tile', loc: 'Kitchener', mat: 'Striated marble — full floor', sqft: 320 }, { src: 'assets/photos/blue-tile-herringbone.jpg', cat: 'tile', loc: 'Guelph', mat: 'Blue herringbone + zellige', sqft: 180 }, { src: 'assets/photos/blue-grey-stripe.jpg', cat: 'tile', loc: 'Guelph', mat: 'Blue zellige feature wall', sqft: 95 }, { src: 'assets/photos/install-large-tile.jpg', cat: 'repairs', loc: 'Cambridge', mat: 'Subfloor + LVT install', sqft: 4200 }, { src: 'assets/photos/onyx-shower.jpg', cat: 'hardwood', loc: 'Waterloo', mat: 'Engineered oak, wide plank', sqft: 1100 }, ]; const CATS = [ { id: 'all', label: 'All work' }, { id: 'tile', label: 'Tile & Stone' }, { id: 'hardwood', label: 'Hardwood' }, { id: 'lvp', label: 'Vinyl & LVP' }, { id: 'repairs', label: 'Repairs & Prep' }, ]; function GalleryPage() { const [filter, setFilter] = React.useState('all'); const [open, setOpen] = React.useState(null); const filtered = filter === 'all' ? GALLERY : GALLERY.filter(g => g.cat === filter); React.useEffect(() => { if (open == null) return; const handler = (e) => { if (e.key === 'Escape') setOpen(null); if (e.key === 'ArrowRight') setOpen(o => Math.min(filtered.length - 1, o + 1)); if (e.key === 'ArrowLeft') setOpen(o => Math.max(0, o - 1)); }; window.addEventListener('keydown', handler); document.body.style.overflow = 'hidden'; return () => { window.removeEventListener('keydown', handler); document.body.style.overflow = ''; }; }, [open, filtered.length]); return (
Gallery

Real jobs. Real homes.
Mostly across Waterloo Region.

{/* Filter chips */}
Filter {CATS.map(c => (
{/* Masonry grid via column-count */}
{filtered.map((g, i) => ( ))}
{/* Lightbox */} {open != null && (
setOpen(null)} style={{ position: 'fixed', inset: 0, background: 'rgba(20,14,10,0.92)', zIndex: 100, display: 'flex', alignItems: 'center', justifyContent: 'center', animation: 'pageIn .3s ease', }}>
e.stopPropagation()} style={{ display: 'flex', gap: 32, alignItems: 'center', maxWidth: '90vw', maxHeight: '88vh' }} className="lightbox-inner">
Project · {open + 1} of {filtered.length}

Location
{filtered[open].loc}, ON
Material
Square footage
{filtered[open].sqft.toLocaleString()} sqft
{ setOpen(null); navigate('contact'); }} style={{ marginTop: 32 }}>Quote a similar project

)}
); } // ============================================================ // ABOUT // ============================================================ function AboutPage() { return (
About

I'm Diyako. I install floors
like they're going in my own house.

Twelve years ago I picked up a trowel for the first time on a basement reno in Kitchener. I've been laying floors ever since — quietly, without a flashy storefront, building a business on referrals.

Sky Flooring is just me. There's no sales team, no foreman, no rotating crew of subs you've never met. When you call, you get me. When the truck pulls up, it's me. When the job is done, the warranty is mine to honour.

That setup has limits — I can only take on so many jobs a year. But it also means I can stand on every floor I've ever installed and tell you exactly how it was done.

I work mostly in Kitchener, Waterloo, Cambridge and Guelph, with the occasional larger commercial job further out. Hardwood, vinyl plank, and tile are my bread and butter. Bathrooms and kitchens are my favourite rooms.

What I'd want, if I were hiring me

    {[ 'A real, written quote — not a number scribbled on the back of a card', 'Someone who shows up on time and texts back the same day', 'Drop cloths from the front door to the work area', 'A walk-through at the end where you point and I fix', 'A receipt that survives a future buyer\'s home inspection', ].map(t => (
  • {t}
  • ))}
{[ ['12+', 'Years installing'], ['200+', 'Homes finished'], ['$2M+', 'Liability insured'], ['Same day', 'Callbacks'], ].map(([n, l]) => (
{n}
{l}
))}
); } // ============================================================ // CONTACT (phone-only) // ============================================================ function ContactPage() { return (
Contact

Just give me a call.
That's how this works.

No forms, no chatbots. Pick up the phone — we'll talk through your project, book a free in-home estimate, and you'll have a written quote within a few days.

Where I work

Waterloo Region & surrounding.

Open in Google Maps
); } function InfoBlock({ label, body, sub }) { return (
{label}
{body}
{sub &&
{sub}
}
); } function _UnusedMap() { return (
Kitchener (HQ) {[ { x: 200, y: 145, name: 'Waterloo' }, { x: 235, y: 210, name: 'Cambridge' }, { x: 105, y: 145, name: 'Guelph' }, ].map(c => ( {c.name} ))}
); } window.ServicesPage = ServicesPage; window.GalleryPage = GalleryPage; window.AboutPage = AboutPage; window.ContactPage = ContactPage;