Skip to article
Görkem Yıldız, home
Available for October

How the Human Eye Sees Color (For Designers)

Cone cells, opponent color channels, and color blindness — the fundamentals of human color perception every designer should know.

· 8 min readEnglishTürkçe oku

A pixel on your screen flickers millions of times per second. But you perceive it as "red" or "blue" — seamlessly, naturally, effortlessly. Behind that effortlessness lies 300 million years of evolutionary engineering: the human eye's color perception system.

We wrote this post for designers. Our goal is not to deliver a biology lecture — it is to show that when you understand how the eye works with color, your design decisions will change, from better palette choices to more accessible interfaces.

Three Cone Cells: The Biological Foundation of Color

Your retina contains two types of light-sensitive cells: rod cells (active in darkness, no color discrimination) and cone cells (active in daylight, responsible for color vision). Color perception is entirely the work of cone cells.

There are three types of cone cells, each with peak sensitivity at a different wavelength:

  • L cones (Long wavelength) — Peak at approximately 564 nm. Most sensitive to red and orange light. But the name is misleading: they collect light across a wide range, not just red.
  • M cones (Medium wavelength) — Peak at approximately 534 nm. Most sensitive to green light. They overlap significantly with L cones — this overlap is what makes fine color discrimination possible.
  • S cones (Short wavelength) — Peak at approximately 420 nm. Most sensitive to blue and violet light. They are the fewest in number — making up only about 2% of the retinal surface.
Cone Cell Sensitivity Curves 380 450 520 590 700 Wavelength (nm) Sensitivity S (420 nm) M (534 nm) L (564 nm)

The combined action of these three cones allows you to distinguish millions of colors. When you see pure yellow light (580 nm), L cones fire strongly, M cones fire moderately, and S cones barely respond at all. Your brain compares these three signal ratios and says "yellow."

What this means for designers: Every color is a function of the stimulation ratios of three cones. If two different spectral distributions produce the same cone ratios, they are the same color to a human — this phenomenon is called metamerism. The "yellow" pixel on your screen does not actually emit yellow light; it emits red and green light that stimulates your L and M cones in the right ratio.

Opponent Channel Processing: How the Brain Decodes Color

The three signals from cone cells undergo a transformation on their way from the retina to the brain. The brain does not process L, M, S signals directly — it separates them into three opponent channels:

  • Light-dark channel — Derived primarily from the sum of L and M cones. Answers the question "How much light is there?"
  • Red-green channel — Derived from the difference between L and M cones. Separates red from green. You cannot perceive a color that is simultaneously red and green.
  • Yellow-blue channel — Derived from the difference between S cones and the L+M sum. Separates blue from yellow. There is no such thing as a "bluish yellow."
From Cones to Opponent Channels L M S L + M Light / Dark L - M Red / Green (L + M) - S Yellow / Blue

This opponent-channel architecture is the foundation of our color experience. Why is there no such thing as "reddish green"? Because red and green cancel each other in the same channel. But reddish blue (purple) exists — because red and blue are processed in different channels.

What this means for designers: CIE Lab's a* (red-green) and b* (yellow-blue) axes are the mathematical model of these opponent channels. When building a color palette, you can ask yourself "which channel am I moving along?" Colors that stay within the same channel (e.g. from red to orange) produce natural transitions; cross-channel movements (red to blue) create more dramatic contrasts.

Why We Are Most Sensitive to Green

The human eye is not equally sensitive to all colors. The luminance formula makes this explicit:

Luminance = 0.7152G + 0.2126R + 0.0722B

These coefficients tell us that your eye is 71.5% sensitive to green light, 21.3% sensitive to red light, and only 7.2% sensitive to blue light. Green accounts for nearly two-thirds of your brightness perception.

This imbalance has an evolutionary explanation: our ancestors lived in environments covered with green vegetation. Being able to distinguish subtle differences between shades of green — ripe fruit from unripe, poisonous leaf from safe — conferred a survival advantage. As a result, M and L cones (covering the green and red regions) are far more numerous than S cones.

What this means for designers: Changes in the green channel are the most noticeable to the human eye. Accessibility guidelines tell you to avoid red-green contrast pairs — but the deeper reason is this: information loss in the green channel causes disproportionately more perceptual information loss. When placing dark text on a light background, the green component of the background will be the biggest factor in perceived brightness.

Color Blindness: When a Cone Type Is Missing

When one of the three cone types is absent or dysfunctional, color blindness results. Worldwide, approximately 8% of men and 0.5% of women carry some form of color vision deficiency.

  • Protanopia — L cones are nonfunctional. Red and green cannot be distinguished. Red lights appear dark.
  • Deuteranopia — M cones are nonfunctional. The most common type of red-green confusion (about 6% of men).
  • Tritanopia — S cones are nonfunctional. Blue-yellow discrimination is impaired. The rarest type.

Notice that the two most common types (protanopia and deuteranopia) affect the red-green channel. This is why traffic lights use position and shape cues in addition to color.

What this means for designers: Never use color as the sole carrier of information. If you indicate an error only with a red color, users with deuteranopia may not see it. Always add a secondary cue alongside color — an icon, text, or pattern. This is the technical requirement of WCAG 1.4.1, but the underlying reason is biology.

Applying This Knowledge in Design

Understanding the eye's color mechanism is not abstract knowledge — it directly shapes design decisions:

1. Palette Selection

Knowing the opponent-channel structure, you can build palettes with natural transitions. Colors that stay along the same opponent-channel axis (e.g. from light blue to dark blue) feel natural to the eye. Colors across opposing channels (blue and yellow) create strong contrast — use them where you want to draw attention.

2. Accessibility

When checking contrast, keep the luminance formula in mind. The green channel affects brightness the most, blue the least. When you place white text on a light blue background, the contrast ratio may look acceptable, but readability suffers because of information loss in the B channel.

3. Dark Mode

Rod cells kick in at low light levels and color sensitivity decreases. In dark mode designs, you can reflect this biological reality by reducing saturation — vivid colors on a dark background cause eye strain because cone cells operate less efficiently at low light levels.

4. Warning Colors

Red seems like a universal choice for danger and errors. But the biological reality is nuanced: L cones are sensitive to red, which makes red attention-grabbing — but for users with red-green color blindness, that signal can be completely lost. The solution: red + icon + explanatory text. Never rely on a single channel.

How Helmlab Models This System

Helmlab's 13-stage processing pipeline mirrors the eye's own processing pipeline. The first two stages in particular are grounded directly in cone cell biology:

The M1 Matrix: XYZ to Cone Responses

Helmlab's first step is a 3x3 matrix multiplication. This matrix transforms CIE XYZ coordinates — the standard color measurement values — into L, M, S cone responses. Biologically, this answers the question "When light hits the retina, how much is each cone type stimulated?"

CIE Lab uses a fixed XYZ-to-Lab transformation. Helmlab's M1 matrix is optimized from 64,000 human observations — meaning it uses the "best cone projection" as dictated by real perceptual data.

Power Function Compression: Nonlinearity

Cone cells do not process incoming light linearly. They are highly sensitive at low light levels and less sensitive at high levels. This is known as logarithmic compression. CIE Lab approximates it with a cube root (exponent 1/3).

Helmlab learns a separate gamma value for each cone channel from data. The result: gamma 0.395 for the L channel, 0.421 for M, and 0.434 for S. These values are close to the cube root but differ from each other — because each cone type's nonlinearity is in fact different.

The remaining 11 stages (second matrix, hue correction, Helmholtz-Kohlrausch effect, dark tone correction, neutral correction, and other calibrations) correspond to modeling the brain's processing: opponent channels, regional sensitivity differences, and perceptual adjustments.

Code
import { forward } from 'helmlab';

// sRGB to Helmlab Lab
const [L, a, b] = forward([0.8, 0.2, 0.1]);
// L: lightness, a: red-green, b: yellow-blue
// Opponent-channel structure directly in code

In Summary

The human eye's color perception system is a three-layer architecture: cone cells collect light, opponent channels prepare the signal for processing, and the brain constructs the color experience from those signals. Understanding this architecture adds concrete knowledge to a designer's toolkit:

  • Three cone types explain why color spaces are three-dimensional
  • Opponent channels explain why some color transitions feel natural and others feel artificial
  • Green sensitivity explains why luminance and contrast calculations are green-weighted
  • Color blindness explains why accessibility requires channel diversity, not just contrast ratios

Helmlab encodes this biological reality into 72 parameters and 13 stages — calibrated against 64,000 human observations. The result: the mathematical system that most closely models human color vision.

Terminal
npm install helmlab

Experience your eye's color processing pipeline in a 10KB npm package — zero dependencies.

Görkem Yıldız

Helmlab, a family of perceptual color spaces for UI design systems (arXiv:2602.23010)

I'm Görkem, a UI/UX designer and engineer based in Ankara, leading the design team at [PushBrands](https://pushbrands.app/en), a Saudi UGC marketplace. I've spent over eight years designing and building digital products, and lately the systems underneath them: Helmlab, a color space trained on 64,000 human color judgments that now ships in Color.js; open-source tools for icons, sound and the terminal; and, as Orbit Design, Figma plugins with more than 100,000 users.

Book a call

Talk about color, design systems or Helmlab.

Saturdays 19:00–21:00 Istanbul time, on Google Meet.

Book a call