Overview
Cinematic film overlays composite tint, grain, and vignette layers over a base photo via mix-blend-mode + filter chains. Three film stocks ship: warm Kodachrome, cool tungsten balance, high-contrast B&W silver-halide.
When to use it
Reach for film overlays on photography portfolios, editorial hero images, and product surfaces where a curated look elevates the brand. Skip overlays on content where color fidelity matters (e-commerce product photos, medical imagery, color-critical previews). Keep grain texture small (32px tile) to avoid moiré on Retina displays.
How it works
The base photo sits at the bottom of the stack. Above it: a tint layer (solid color with reduced opacity) with mix-blend-mode: multiply or soft-light shifts the overall color temperature. A grain layer (small repeating noise PNG) sits above with mix-blend-mode: overlay + opacity: 0.15. A vignette layer uses a radial gradient from transparent center to opaque edges with mix-blend-mode: multiply. Animate the tint opacity or the grain layer’s background-position for slow film texture drift; static stacks work fine without animation.
Production gotchas
mix-blend-mode requires an isolation context — without an opaque ancestor with isolation: isolate, blends can leak through to elements behind the stack. The grain layer must repeat cleanly; if the noise tile has visible seam boundaries the overlay reads as wallpaper, not film grain. Color-management edge cases: Safari iOS clamps wide-gamut blends differently than Chromium, so the same film stock looks slightly different across browsers. Test on actual devices, not just emulators.
Accessibility
Film tints can drop overlaid text contrast unexpectedly — if any text sits on top of the composited photo, verify contrast in the worst-case film stock and not just the unfiltered base. Under prefers-reduced-motion: reduce drop any grain-drift animation and pin the layers static. Decorative photos should carry an empty alt="" or be marked role="presentation".
References
Implementation depth
Film overlays are a blend stack: base image, tint, grain, and vignette each own one visual job. mix-blend-mode can create the look, but isolation keeps the blend from leaking into the rest of the page.
Do not use this where color fidelity is part of the task. Product photos, charts, and status colors should not sit under film tint. If grain moves, reduced motion should pin it to a static texture.