Almost everyone who starts making pixel art runs into the same wall: "my colors look bad." The shapes match the reference, and yet the result somehow looks cheap. It looks smeared. You can't tell what it's supposed to be. Most of the time the cause is not your drawing skill and not the resolution — it's the color choices. And in most cases the fix is not to add colors, but to take colors away.
This article starts with the visual mechanics behind why a smaller palette reads more clearly, then walks through how to actually build a palette step by step, how to allocate colors at different palette sizes, and finally the color mistakes people make most often and how to correct each one. The goal is that by the end you can look back at your own work, look at its palette, and say "that's the part I need to fix."
"More colors should mean more detail and more realism, so why does less look better?" This isn't a matter of taste — it can be explained by how human vision actually works. There are three main reasons.
The human eye is far more sensitive to value (lightness) than to hue — the red/blue/green quality of a color — and it processes value first. When you look at a picture from a distance, or squint at it, what remains is not hue but blocks of light and dark. In other words, what determines "what the picture looks like" is not hue but value contrast.
So what happens when the color count goes up? If you sort a 100-color palette by lightness, the gap between neighboring colors becomes tiny. The boundary between adjacent pixels visually disappears, the outlines blur, and the whole thing takes on a soft, mushy quality. Cut the palette down to 16 colors and each color gets a much wider "territory" on the value scale, so the difference between neighbors is obvious. That difference is what produces the sharpness that pixel art is known for.
As a practical rule of thumb, keep at least a 15–20% value gap between adjacent steps within the same motif (base color versus shadow, for example). If white is 100% and black is 0%, then a base color at 60% wants a shadow around 40–45% and a highlight around 78–85%. Two colors less than 10% apart look essentially identical from a normal viewing distance — they're just wasting a slot in your palette.
Because a pixel art canvas is small, the area a single color occupies carries a lot of weight. In a small palette the same color covers a contiguous region, so it registers as a surface. The eye only reads something as part of a physical object once it has become a surface.
With too many colors, the colors within a single object scatter, and each one is only used for a handful of pixels. No surfaces form, and the whole image starts to look like grainy texture instead of a picture. That state is exactly what people mean when they say pixel art looks "dirty."
A useful target is for every color to cover at least 1% of the image, or to form clusters of 10 pixels or more. Any color used on fewer than five pixels probably isn't contributing anything, and is a prime candidate for merging.
Human vision completes missing information from experience. Two red dots on a cheek read as "a blush." A single row of pixels darker than the skin tone under a chin reads as "the shadow under the jaw." This happens whether or not there is any actual gradient there.
That's why pixel art never needs to reproduce a gradient faithfully. In fact, placing only the minimum information needed to say "this is a shadow" lets the viewer's brain supply the rest, and the result reads as more three-dimensional, not less. Reducing your color count isn't throwing information away — it's keeping only the information you want to be read.
How to check: Hold your work-in-progress about 30 cm from your eyes and squint at it. If the motif's shape is still clearly readable, your value structure is working. If it turns into one flat blob of a single tone, you don't have enough value separation. Don't add a color — make the shadow one step darker.
It helps enormously to stop thinking of a pixel art palette as "a bunch of colors I like" and start thinking of it as a stack of color sets, one per motif — usually called ramps. For each motif (skin, hair, clothing, metal, and so on) you prepare a set of three or four colors that differ in value. That set is a ramp.
| Role | Target value | Area used | Function |
|---|---|---|---|
| Base color | 55–65% | about 60% | The lead color that defines what the motif "is." Covers the largest area. |
| Shadow | 35–45% | about 25% | Creates volume and grounding. Goes on the side away from the light. |
| Highlight | 78–88% | about 10% | Shows where the light lands. The narrower it is, the harder and glossier the surface reads. |
| Deep shadow (optional) | 18–28% | about 5% | Tightens outlines and marks where objects touch each other. |
Three steps — base, shadow, highlight — are enough for almost any motif. Only add a fourth "deep shadow" step when the canvas is large enough to afford the detail, or when you specifically want that motif to read as the star of the image. If you give every motif four steps, the color count balloons and the picture becomes harder to read overall, not easier.
The area ratio matters just as much as the colors themselves. As a baseline, keep the highlight to roughly one sixth of the base color's area. Painting highlights across a wide area is the single most common beginner mistake, and it's the main reason images turn out pale and flat. A lit surface reads as lit precisely because it is small.
When making a shadow from a base color, most people simply lower the lightness of the same hue —
turning red #E05050 into #A03030, for instance.
That isn't wrong, but it tends to look muddy.
Professional pixel art looks vivid because the artist shifts the hue along with the value.
| Motif | Highlight | Base color | Shadow |
|---|---|---|---|
| Skin | #FFE0C0 (toward yellow) | #F0B890 | #C07868 (toward red-purple) |
| Red clothing | #F08858 (toward orange) | #D04040 | #8C2856 (toward purple) |
| Green foliage | #C8D858 (toward yellow-green) | #5AA048 | #2C6A58 (toward blue-green) |
| Gray stone | #E8E4D8 (toward warm) | #A8A8A0 | #5C6068 (toward blue) |
Look closely at the "gray stone" row. Even on an achromatic motif, nudging the highlight slightly warm and the shadow slightly cool makes the result look far more alive than three steps of pure neutral gray. Pure neutrals make an image look dead, so mixing a trace of hue into your grays is standard practice in pixel art.
Hue shifting is powerful, but overdo it and the color stops reading as the same material. Around 15 degrees per step, and no more than about 45 degrees across all three steps, is the safe range. If you rotate the hue 90 degrees while intending to make a shadow for a red base color, that region will read as a separate purple part instead. When in doubt, check whether the shadow color, viewed on its own, can still be described as "a dark red."
When building a palette from scratch, working in this order keeps you from getting lost. The order itself matters.
Applying this in the tool: After converting an image in Heartopia Design Studio, the "Custom" option in the color reduction settings lets you merge colors by hand from a list of the colors in use. Work through it by deleting the colors that occupy the least area and contribute the least, and you'll naturally converge on the three- to four-step ramp structure described above. Tapping a color merges it into its nearest neighbor, so the trick is to eliminate the in-between tones first.
How many colors you have changes where you should "invest" them. The fewer colors available, the more ruthlessly you have to choose what each one is for.
| Total colors | Suggested allocation | Well suited to |
|---|---|---|
| 8 colors | 5 for the subject, 2 for the background, 1 for outlines | Icons, simple emblems, single-color props, text logos |
| 16 colors | 10 for the subject (3–4 ramps), 4 for the background, 2 for outlines | Characters, clothing designs, sections of scenery |
| 24 colors | 14 for the subject, 6 for secondary motifs, 4 for the background | Images with several motifs, full scenes including background |
At 8 colors you largely give up on rendering volume and design for shape and silhouette instead. Hold each motif to two colors — base and shadow only — and put a highlight in exactly one place on the subject. Keep the background to a single color, or to two bands of differing value. Hue shifting pays off most at this size: with only two colors to work with, shifting the shadow's hue aggressively is how you buy back visual information.
Sixteen colors is the sweet spot for pixel art. You can build three ramps of three to four steps, so a character might use "4 skin, 4 hair, 4 clothing" for twelve colors, leaving four for the background and outlines. The technique worth learning here is sharing colors between ramps. If the darkest skin color and the lightest hair color can be collapsed into one shared color, you've just freed up a slot. Spend that freed slot on an accent color and the image gains information for nothing.
At 24 colors you finally have room to build a proper ramp for the background as well. But the more colors you have, the easier it is to end up with colors whose values are too close together, so once you're finished, sort the palette by value and check whether any two neighbors are less than 10% apart. When you find a pair that close, delete one and spend the slot on an accent or a new motif — the picture will be better for it.
Cause: Not enough value contrast. Nine times out of ten the base and shadow are only about 10% apart.
Fix: Drop the shadow another 15% in value. The point where it feels "surely that's too dark" is usually about right.
If that still isn't enough, add a deep shadow color — but hold it to under 5% of the total area.
Cause: You're mixing black into your shadows, or dropping saturation too far.
Fix: Raise the shadow's saturation and shift its hue toward the cool side. Instead of mixing in black, think of it as replacing the color with a different, darker, more saturated color.
The improvement is especially dramatic on warm motifs like skin and wood.
Cause: The highlights cover too much area, or the entire palette is clustered between 70% and 90% value.
Fix: Cut the highlight area in half. On top of that, if your palette contains no color below 30% value,
deliberately add one or two dark colors. Every picture needs a "darkest place."
Cause: Too many highly saturated colors. Once you have five or more colors above 80% saturation, the eye has nowhere to rest.
Fix: Treat high saturation as a privilege reserved for the subject. Drop the background and secondary motifs to 20–40% saturation
and the subject will leap forward even though its own colors haven't changed. The idea is to subtract from the surroundings rather than add to the subject.
Cause: The outline color and the background are too close in value.
Fix: Rather than pure black (#000000), use a heavily darkened version of that motif's base color — it will sit much more comfortably.
Then confirm there is at least 30% of value distance between the background and the outline. If the background is dark, making the outline lighter is also a valid option.
The trap everyone falls into: When a color isn't behaving the way you want, reaching for one more color to solve it almost always makes things worse. Every color you add narrows the value gaps between existing colors and lowers the contrast of the whole image. Before adding, first ask whether you can move one of the colors you already have.
Everything above is about the picture itself, but once you consider actually placing the design tile by tile in Heartopia, the payoff from a smaller palette grows even larger.
Heartopia Design Studio shows the current color count on the screen after conversion. The basic workflow is to watch that number and keep reducing colors as far as the picture will tolerate. The range that's genuinely comfortable to work with is around 15–25 colors — which, not entirely by coincidence, is exactly what you get from the "three to five ramps of three or four steps" structure described in this article. A palette that looks good and a palette that's pleasant to place are the same palette.
Boiled down, color work in pixel art comes to these four things.
Simply keeping these four in mind changes how pixel art made from the very same source image reads. When you reach the color reduction settings after converting an image, being able to choose on the basis of "which step of which ramp do I keep" — rather than just cutting the number down — makes a clear difference in how consistently your results turn out. Start by opening one piece you already have and sorting its palette by value.