Teyvat PaletteTeyvat colour cards
Scene library
GitHub
Gallery
Vissudha Field in a Solar Halo
SumeruDayOpenClearDamp

Vissudha Field in a Solar Halo

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%5aa8d526%f4fafb46%5a97bf72%609c98100%76b072

Why it works

A chroma allowance — p99 minus the median — does not measure how high the single most chromatic point stands. It measures how thick the clump pressed against the ceiling is, and that thickness depends on what the clump actually is. Vissudha Field is the zero end: 0.113 minus 0.088 leaves just 0.025. The reason is not the peak, which at 0.148 is not low. It is that 3988 of the frame's 4000 most chromatic pixels land on the grass plateau at lower right — and the green family's mean chroma is 0.089, identical to the blue that occupies 67.68%, and equal to the frame median of 0.088. The top is the near end of the lead colour, not a second thing. To learn whether a picture still has a chroma focus available, don't read Cmax: circle the clump at the top and ask who it is. If it is the lead colour itself, that channel is empty.

01

The clump at the top is the lead colour

3988 of the 4000 most chromatic pixels fall between 120° and 180°, in two groups whose centroids are (0.72, 0.86) and (0.64, 0.76) — both on the sunlit grass plateau at lower right. But the plateau is no outsider: the green band holds 10.22% at a mean chroma of 0.089, the blue band holds 67.68% at a mean of 0.089 too, and the frame median is 0.088. Take only the nearest corner of that grass (from 0.60, 0.78, counting 90°–165° alone) and its most chromatic 3% still reads 0.107. Top and median are two ends of one patch of grass, which is why p99 sits only 0.025 above p50. When you read a picture's chroma channel, identify the clump at the top before you measure its height.

02

The upper half holds 24 green pixels

Across the top 45% of the frame, exactly 24 pixels fall in 90°–165°; the bottom 55% holds 89993 of them. And the upper half is not empty — trees stand in clear outline all over the main peak's slope and the ridges on the left. 〈Starfell Valley, Clear and Far〉showed distance handing local colour over to the air in full; there it was a gradient, here it is a clean cut. The air did not pale the far greens, it swapped the whole family for blue at 232°. The consequence lands squarely on the allowance: in a rainforest covered in trees, there is no second hue family left in frame to bid the price up, and even the near grass has been held down to the same value as the air.

03

Chroma has 0.025 left; lightness still has 0.31

Run the same arithmetic (p99 minus p50) on lightness: 0.99 minus 0.68 is 0.31, which is 12.4 times the chroma allowance of 0.025. That budget is spent in one place — 2905 of the 4000 brightest pixels crowd into the single cell at (0.32, 0.27), the halo leaking from behind the main peak, measuring L 1.00 / chroma 0.001. Even its surroundings (from 0.30, 0.22) only reach L 0.87 / chroma 0.037. The frame is 2.87% achromatic, and it hands that whole scarce supply to this one light. Two channels can differ tenfold and more in allowance; compute each once before you pick colours, because a focus can only be built on the channel that still has money in it.

Take these colours with you

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

/* Vissudha Field in a Solar Halo · Vissudha Field in a Solar Halo — Teyvat Palette */
:root {
  --sky-crown: oklch(0.7 0.101 236); /* Sky Crown #5aa8d5 */
  --ridge-haze: oklch(0.65 0.087 239); /* Ridge Haze #5a97bf */
  --peak-glare: oklch(0.98 0.006 215); /* Peak Glare #f4fafb */
  --cliff-teal: oklch(0.65 0.063 190); /* Cliff Teal #609c98 */
  --plateau-green: oklch(0.68 0.089 150); /* Plateau Green #6fa87b */
  --near-slope: oklch(0.7 0.107 143); /* Near Slope #76b072 */
  --gradient-vissudha-field: linear-gradient(180deg, oklch(0.7 0.101 236) 0%, oklch(0.98 0.006 215) 26%, oklch(0.65 0.087 239) 46%, oklch(0.65 0.063 190) 72%, oklch(0.7 0.107 143) 100%);
}

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