Jacob Gruwier Vinjegaard

05 Case 2025

Blå Time

A festival that runs from dusk to sunrise, with a site that used to look the same at every hour. Now it moves with the actual clock.

ClientBlå Time Festival
RoleIdentity & build
StackAstro · GSAP · WebGL
Visit live siteVisit live site →
Blå Time — case hero
The brief Djursland, DK

The programme is a night. The page should be one too.

Blå Time runs one continuous set from last light to first, and the old site presented it as a static timetable. The rebuild ties the palette to real time of day: open the page at midnight and it is dark, open it at five and it is already blue. The lineup is the same content in either state — only the light changes.

The whole thing is one WebGL layer under ordinary, editable HTML. Nothing about the storytelling costs the client their ability to write.

+214% Time on site
0.9s LCP, mobile 4G
6 Vintages, one shader
4wk Brief to launch
Nordlys — vintage page
Nordlys — label detail

FIG. 02 — THE VINTAGE VIEW INHERITS THE HORIZON'S CURRENT LIGHT INSTEAD.

Approach Three moves
01

One horizon

A single full-page canvas carries the light. Sections don't start and stop — they change the sky's temperature as they pass.

02

Type as terrain

Vintage names are set at display scale and clipped by the coastline, so the words sit inside the landscape instead of on top of it.

03

Editable underneath

Everything readable is plain HTML in the CMS. The effect layer degrades to a still gradient with no loss of content.

Nordlys — full-bleed still
Prototype 01:12 · sound on
Nordlys — prototype walkthrough

Fig. 05 — the horizon shader reacting to scroll velocity, captured in the staging build.

“People screenshot the site at different hours. That never happened before.”

Rune Kjeldsen · Programme, Blå Time
Nordlys — grid 1
Nordlys — grid 2
Nordlys — grid 3
Deliverables Art direction Design system Frontend build WebGL horizon CMS setup
Credits Design & build — Jacob Vinjegaard Photography — Nordlys Vinhus Identity — Studio Havbrise Copy — Maren Holt blaatime.dkblaatime.dk→
Next case 06 / 06

KroneKrone →

0%

Pause