Shades of #2ec4b6 — from lightest tint to darkest shade

Customize these shades →

Shades of a Color — What They Are and How to Create Them

When someone says "shades of blue" or "shades of green," they might mean it loosely — just different blues or greens. But in color theory, "shade" has a specific definition: it's a color with black mixed into it. Every shade is a darker version of the original, and the hue stays the same throughout.

Understanding shades of a color is genuinely useful (not just academic trivia) because it's how you build depth in design. Every time you need a darker variant of a brand color — for a header, a pressed button, a focused border — you're creating a shade. And doing it correctly means the darker version still looks like it belongs to the same color family.

The Definition: What Makes a "Shade"

In precise color theory terms:

A shade is any color produced by mixing a base hue with black. The more black you add, the darker the shade becomes. At 100% black, you arrive at pure black (#000000) regardless of what you started with.

This is different from just "any dark color." A shade of teal is specifically teal + black — not navy (which is a shade of blue), not forest green (which is a shade of green). The hue doesn't change. Only the lightness decreases.

Contrast this with two related concepts:

Shades, tints, and tones are the three ways to create variations from a single hue.

How Shades Work in Hex

A hex color code encodes three RGB channels. Creating a shade means reducing each channel value — pulling it closer to 00. The formula is:

shade_value = original_value × (1 − factor)

Where factor ranges from 0 (original color) to 1 (pure black). A factor of 0.25 creates a 25% darker shade.

Worked Example

Starting from #2ec4b6 (a vivid teal):

Notice how even the darkest usable shade (70%) still reads as "teal" — you can perceive the blue-green character. By 90%, it's nearly black, and the hue becomes hard to distinguish on most screens.

Why "Shades of a Color" Matter in Design

Building Depth Without Adding Hues

One of the strongest principles in UI design is: fewer hues, more variations. Instead of introducing a new color every time you need visual distinction, you generate shades (and tints) of colors you already have. This keeps your interface cohesive. Five shades of teal give you five distinct values that all belong together.

Dark Mode and Dark Surfaces

Dark mode isn't about inverting your colors. It's about using appropriate shades of your brand and semantic colors against dark backgrounds. A shade of your primary teal at 60–70% darkness might serve as a card surface in dark mode, while a 30% shade works as a header bar. Understanding shades is essentially understanding how to design for darkness.

Accessible Contrast

WCAG guidelines require a contrast ratio of at least 4.5:1 for normal text (AA standard). When you need text on a colored background, using a very dark shade of that same color ensures both contrast and visual harmony. It's more cohesive than using generic black (#000000) because the shade carries a trace of the background's hue.

Gradient Design

The most natural-looking gradients use shades of a single color rather than transitioning between different hues. A gradient from #2ec4b6 (base teal) to #15625b (50% shade) creates depth that feels like light falling on a surface — because it mimics how real-world shading works.

How Many Shades Do You Need?

This depends on your context, but here are practical guidelines:

For a quick project or prototype: 3 shades are enough — light (tint), base, and dark (shade). This covers most basic UI needs: surface, primary element, and emphasis.

For a component library or design system: 5–6 shade steps give you the granularity needed for backgrounds, borders, hover states, active states, and text at different emphasis levels.

For a full design token system (like Tailwind or Material Design): 9–11 steps per hue. These typically span from a very light tint (50) all the way through the base color to a very dark shade (950). Each step has a purpose.

The good news: you don't have to hand-pick every shade. A shade generator computes evenly distributed steps from your base color, giving you a mathematically consistent scale.

Generating Shades of Any Color

HexTints is a free tool that generates a complete shade spectrum (and tint spectrum) from any hex code. Enter your base color and you instantly see every darker variation, evenly spaced from the original to near-black. Every swatch is click-to-copy, so you can drop shade values directly into your CSS, design files, or token configs.

It's built for speed — you shouldn't need to spend more than a few seconds going from "I need darker versions of this teal" to having all the values in your clipboard.

Common Mistakes with Color Shades

Using pure black (#000000) instead of a dark shade: Pure black can feel harsh and disconnected from your color palette. A very dark shade (85–90% toward black) reads as "black" to most people but carries a warm or cool undertone that harmonizes with the rest of your design.

Uneven shade spacing: If you pick shade values arbitrarily, the visual jumps between steps will feel inconsistent — some transitions are dramatic while others are barely noticeable. Use a systematic approach (equal factor increments or a generator) for perceptually even spacing.

Ignoring sRGB limitations: At very low lightness values (below about 5% HSL lightness), different hues become indistinguishable. All shades at that depth look essentially identical — near-black. Cap your darkest shade at 8–10% lightness to keep the hue perceptible.

Over-darkening for dark mode: Making everything very dark in dark mode reduces contrast between elements. The best dark-mode palettes use a range of shade depths — very dark surfaces, moderately dark cards, and slightly lighter interactive elements — creating layered depth, not a flat dark void.

Frequently Asked Questions