Dani Production
A single-page marketing site for a wedding film and photography studio, built around a cinematic scroll experience with GSAP-driven reveals and a pinned "process" timeline.
Overview
A static one-page website for a wedding videography and photography studio. The page presents the studio's identity, lists four services (Cinematic Films, Photography, Same-Day Edits, Full Production), showcases a photo gallery, walks through a four-step client process (Consultation, The Day, Post-Production, Delivery), includes client testimonials, and ends with a contact form plus Instagram, WhatsApp, and email links.
Approach
The design leans on a warm, minimal "quiet luxury" aesthetic: a cream and taupe palette, serif display type (Cormorant Garamond) paired with a light sans (Jost), and generous whitespace. Motion is treated as a core part of the brand: an opening "veil" transition reveals the hero, letters animate in individually, and scroll-triggered reveals fade and un-blur content as the user moves down the page. The process section uses a sticky/pinned layout with a scroll-tracked progress beam. All interactive behavior degrades gracefully: if GSAP fails to load or the user has prefers-reduced-motion set, animations are skipped and content is shown immediately in its final state.
Tech stack
- HTML5, CSS3 (custom properties, grid/flexbox, clip-path reveals), vanilla JavaScript (IIFE, no framework)
- GSAP 3.12.5 and ScrollTrigger (via CDN) for scroll-driven parallax, pinning, and timeline animations
- IntersectionObserver for scroll-reveal triggers and scroll-spy nav highlighting
- Google Fonts (Cormorant Garamond, Jost)
Engineering highlights
- Accessibility-conscious build:
aria-livestatus region on the form,aria-expanded/aria-controlson the mobile menu toggle, a manual focus trap with Escape-to-close in the mobile menu, and a fullprefers-reduced-motionfallback path that disables animation and forces all content visible. - Progressive enhancement pattern throughout: GSAP presence and reduced-motion are checked before any animation runs, so the page remains fully readable even when JavaScript is partially degraded.
- Client-side contact form: validates name and email format with a regex and shows an inline confirmation message.
- Custom SVG "window light" motif in the hero (gradient panes plus a Gaussian blur filter) combined with CSS blend modes to simulate projected sunlight, then animated with a slow GSAP drift and scroll-linked parallax.
Want to dig deeper?
Ask my AI agent anything about how this was built, what tradeoffs I made, or how it could fit your team.
Ask my AI →// related projects
Linc Consultancy Website
A responsive marketing website for Linc Consultancy, a management consulting firm operating across Lebanon, Syria, Iraq, and the GCC, presenting its services, team, and regional presence.
YamzWay Digital Menu and WhatsApp Ordering
A data-driven digital menu and ordering web app for YamzWay, a home-based Lebanese sandwich shop, with a custom sub builder and a cart that compiles orders into a formatted WhatsApp message.
PAL - Personal AI Live-Assistant
A voice-driven browser assistant that listens, thinks with Claude, and speaks back, with a second mode that lets it drive the Claude Code CLI as an autonomous coding agent by voice.