Teyvat PaletteTeyvat colour cards
Scene library
GitHub
Gallery
Main Control Hall, Curtain of Light
CavernousCold CurtainDeep Sleep

Main Control Hall, Curtain of Light

Palette

Click a swatch to copy its HEX; hover for the OKLCH value.

Reconstructed gradient

The gradient distilled from the scene, unrolled left to right by stop; the authored angle is 180° (used by the hero and exports), while gallery cards share a uniform 135° sweep.

0%302c3420%76819548%5eb1e564%29325c82%314f71100%22243c

Why it works

When a sheet of light spreads itself out, the first thing it gives up is chroma, not lightness. Sampled in five steps from its root upward, the curtain measures L 0.73 / 0.61 / 0.61 / 0.61 / 0.60 while its chroma falls from 0.111 through 0.081 / 0.049 / 0.037 / 0.034. So a chroma ceiling set by a sheet of light is bound to be low — this picture peaks at 0.150 at the curtain's root, while the dais it lights reaches only 0.138 and the rock walls on either side only 0.053 and 0.031, with no physical object able to bid. To keep the chroma ceiling up in a dark scene, do not count on the light itself: give it something with a colour of its own to land on.

01

Light spreading out sheds chroma first

Sampled in five steps from the root of the curtain upward, it measures L 0.73 / 0.61 / 0.61 / 0.61 / 0.60, chroma 0.111 / 0.081 / 0.049 / 0.037 / 0.034, hue 238° / 251° / 259° / 263° / 263°. Across the middle three steps the lightness does not budge, the chroma falls to a third, and the hue walks 25° toward violet at the same time. So «paler as it rises» is not, in the numbers, a matter of getting darker — it is a matter of losing colour. When you paint a diffusing light, work its chroma gradient rather than its lightness gradient; leaving the lightness step untouched makes the haze read as more solid, not less.

02

Both extremes are pinned to the same sheet of light

The chroma peak of 0.150 sits at the root of the curtain: 2885 of the 4000 most chromatic pixels are at 255°, centroid (0.55, 0.52). And 3506 of the brightest 4000 are in the same place, centroids (0.53, 0.52) and (0.61, 0.53). Nothing this light falls on can catch the ceiling: the dais facing the curtain is L 0.33 / chroma 0.075, peaking at 0.138; the left rock wall is L 0.30 / 0.016, the whole face below the achromatic line, peaking at 0.031; the right wall is L 0.26 / 0.034, peaking at 0.053. «Pairidaeza Canyon in a Sliver of Light» saw its ceiling drop to 0.084 for the same reason — the light landed only on bare rock. It has not dropped that far here because the light source is inside the frame and bid on the bare rock's behalf: what it bid is its own reading one step before it spreads.

03

The whole hue wheel houses one family

Only two chromatic bands are left: blue at 41.16% (mean 257°) and violet at 35.91% (280°). Add the 22.86% that is achromatic and 99.93% of the frame is accounted for. The 180°-wide window 345°–165° holds 12 pixels in the entire picture. The foreground floor everyone would call moss measures 253° and 261° in two rectangles, and a search for 90°–200° across it returns «nothing matched». With one colour source, and a diffusing one at that, the ceiling can only be 0.150 — the other three ceilings in this batch sit on a pair of flames, a wall of stained glass and a sunlit shrub, at 0.207, 0.203 and 0.196, close to a quarter higher. And this frame is neither the darkest (lightness median 0.30, above the 0.27 of «Collective of Plenty Secret Space, Torchlit Dark») nor the brightest (p99 0.72 against the 0.98 of «Secret Hall of the Realms, Stars and Afterglow»). The ceiling is not set by how bright the light is, nor by how much grey there is, but by what the light finally lands on. Land it on nothing and the light has to claim the ceiling itself — which is the cheapest bid in the picture.

Take these colours with you

CSS variables, a Tailwind v4 theme or SVG — one click to copy into your project.

/* Main Control Hall, Curtain of Light · Main Control Hall, Curtain of Light — Teyvat Palette */
:root {
  --vault-brown: oklch(0.3 0.016 308); /* Vault Brown #302c34 */
  --arch-violet: oklch(0.27 0.045 280); /* Arch Violet #22243c */
  --curtain-crest: oklch(0.6 0.034 263); /* Curtain Crest #768195 */
  --curtain-core: oklch(0.73 0.111 238); /* Curtain Core #5eb1e5 */
  --dais-blue: oklch(0.33 0.075 273); /* Dais Blue #29325c */
  --floor-lichen: oklch(0.42 0.068 253); /* Floor Lichen #314f71 */
  --gradient-main-control-hall: linear-gradient(180deg, oklch(0.3 0.016 308) 0%, oklch(0.6 0.034 263) 20%, oklch(0.73 0.111 238) 48%, oklch(0.33 0.075 273) 64%, oklch(0.42 0.068 253) 82%, oklch(0.27 0.045 280) 100%);
}

A 1080×1350 PNG carrying the scene, its palette and every value — save it and post it as is.