HueWeddings hero

HUEWEDDINGS

Where Every Hue Tells Your Love Story

Wedding Photography  |  Illinois  •  Ghana  •  Worldwide

Couple portrait
Wedding details

WHO WE ARE

More Than Photographers — We’re Memory Architects

We believe the best wedding photographs are the ones you forgot were being taken — a shared glance during the vows, the quiet moment before you walked down the aisle, your grandmother wiping her eyes during the first dance. We stay present, stay patient, and let the day unfold so the story that ends up in your hands is honest, warm, and unrepeatable.

From Edwardsville to Accra and every city in between, HueWeddings blends a cinematic eye with a documentarian’s restraint. We plan carefully, light thoughtfully, and then step back so your celebration can breathe.

Learn Our Story

OUR CRAFT

What We Do

Wedding Photography

Full-day storytelling coverage — from the pre-ceremony quiet to the final song of the reception. Every glance, every tear, every burst of laughter.

Engagement Sessions

A cinematic love letter before the wedding. Golden-hour locations, unhurried direction, and images you’ll frame long before the big day.

Portrait Shoots

Personal branding, family legacy portraits, or just a beautifully lit moment. Elevated, editorial, and entirely yours.

Event Photography

Corporate galas, birthdays, cultural celebrations. We bring the same care and craft to every moment worth remembering.

PHOTOGRAPHY HUEWEDDINGS LOVE STORIES TIMELESS MOMENTS ARTISTRY HUEWEDDINGS
0% Client Satisfaction
0+ Sessions Captured
0+ Years of Storytelling
From the first consultation to the final delivery, HueWeddings made us feel seen. The images don’t just show our wedding — they feel like it. Every glance, every laugh, every tear. We cried when the gallery opened. Kwame & Ama — Accra, 2025
Export2931 Scaled

READY?

Let’s Create Something Unforgettable

Every love story deserves to be told beautifully. Let’s start writing yours.

? No — Code Snippets expects raw PHP. Use a "JS snippet" or wrap in wp_footer action: add_action('wp_footer', function(){ ?> threshold) { header.classList.add('is-scrolled'); } else { header.classList.remove('is-scrolled'); } } window.addEventListener('scroll', onScroll, { passive: true }); onScroll(); } /* ------------------------------------------------------------------ 4. Back-to-top button ------------------------------------------------------------------ */ function initBackToTop() { if (document.querySelector('.hue-to-top')) return; var btn = document.createElement('button'); btn.className = 'hue-to-top'; btn.setAttribute('aria-label', 'Back to top'); btn.innerHTML = ''; document.body.appendChild(btn); var revealAt = 600; function onScroll() { if (window.scrollY > revealAt) { btn.classList.add('is-visible'); } else { btn.classList.remove('is-visible'); } } btn.addEventListener('click', function () { window.scrollTo({ top: 0, behavior: reduceMotion ? 'auto' : 'smooth' }); }); window.addEventListener('scroll', onScroll, { passive: true }); onScroll(); } /* ------------------------------------------------------------------ 5. Marquee seamless duplication ------------------------------------------------------------------ */ function initMarquee() { var tracks = document.querySelectorAll('.hue-marquee__track'); tracks.forEach(function (track) { if (track.dataset.huedup === '1') return; var clone = track.innerHTML; track.innerHTML = clone + clone; track.dataset.huedup = '1'; }); } /* ------------------------------------------------------------------ 6. Hero crossfade slider Markup:
------------------------------------------------------------------ */ function initHeroSlider() { var heroes = document.querySelectorAll('.hue-hero__media'); heroes.forEach(function (hero) { var slides = hero.querySelectorAll('img'); if (slides.length < 2) return; slides.forEach(function (img, idx) { img.style.position = 'absolute'; img.style.inset = '0'; img.style.width = '100%'; img.style.height = '100%'; img.style.objectFit = 'cover'; img.style.transition = 'opacity 1.4s ease-in-out'; img.style.opacity = idx === 0 ? '1' : '0'; }); var interval = parseInt(hero.getAttribute('data-interval'), 10) || 5000; var current = 0; setInterval(function () { slides[current].style.opacity = '0'; current = (current + 1) % slides.length; slides[current].style.opacity = '1'; }, interval); }); } /* ------------------------------------------------------------------ 7. Smooth anchor scrolling (fallback for older browsers) ------------------------------------------------------------------ */ function initAnchors() { document.querySelectorAll('a[href^="#"]').forEach(function (a) { a.addEventListener('click', function (e) { var id = a.getAttribute('href'); if (id.length < 2) return; var target = document.querySelector(id); if (!target) return; e.preventDefault(); target.scrollIntoView({ behavior: reduceMotion ? 'auto' : 'smooth', block: 'start' }); }); }); } /* ------------------------------------------------------------------ Bootstrap ------------------------------------------------------------------ */ function init() { initReveal(); initCounters(); initNavScroll(); initBackToTop(); initMarquee(); initHeroSlider(); initAnchors(); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();