Add light and shadow with proper hue shifting, one step at a time, so the sprite gains form without gaining the flat-luminance look that marks generated pixel art. Use when flat art needs volume.
Installs into .claude/skills of the current project.
Are you the author of Shade?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/with-pebbly-shade)
---
name: shade
title: Shade a sprite
description: Add light and shadow with proper hue shifting, one step at a time, so the sprite gains form without gaining the flat-luminance look that marks generated pixel art. Use when flat art needs volume.
---
# Shade a sprite
Flat shading — the same hue, darker — is the clearest signal that a sprite was
made by moving a brightness slider. Real shading shifts hue.
## The rule
- **Shadows** rotate toward blue/purple and desaturate slightly.
- **Highlights** rotate toward yellow/orange and saturate slightly.
`recolor` op `shade` implements this. Use it instead of choosing darker hex
values yourself.
## Procedure
1. **Fix the light direction** and state it. Upper-left is the safe default. It
does not move again — not across the sprite, not across animation frames.
2. **Confirm the flat art is right first.** `look` op `preview`. Shading a bad
silhouette wastes the effort.
3. **One shadow step.** Select the region away from the light, then:
```
select op="rect" rect={…}
recolor op="shade" amount=-0.2 selectionOnly=true
```
Or draw the shadow shape directly with `draw` if it needs to follow a form
the selection tools cannot describe.
4. **Look.** `look op="preview"`. Does it read as volume, or as a stain? A
shadow that follows the form's cross-section reads; one that follows the
outline does not.
5. **One light step**, on the side facing the light: `amount=0.2`.
6. **Look again.** Most sprites are finished here.
7. **Only if it needs it**: a deep shadow (`amount=-0.4`) in occluded crevices,
a specular highlight of one or two pixels on the hardest material, or
reflected light — a faint cool step on the shadow side's outer edge, which
makes metal read as metal.
## Ramps
If you will shade a material more than once, put its ramp in the palette:
```
palette op="ramp" base="#c04030" steps=5
```
Then draw with ramp entries directly. Reuse the darkest step across materials —
it ties a sprite together and costs no palette slots.
## Dithering
Only on 32px+ and only in large flat areas. Use `bayer4`, keep the two colours
adjacent in a ramp, and stop if it reads as noise. See
`rules://02-shading-and-light`.
## Checks
- Is the light in exactly one place?
- Do the shadows hue-shift, or are they the same hue darker?
- Any banding — long parallel stripes of adjacent steps?
- Any semi-transparent pixels? (`validate` will tell you.)
## Related
`rules://02-shading-and-light`, `rules://01-palette-and-color`,
`rules://22-materials-hard`, `rules://23-materials-soft`,
`rules://24-lighting-scenarios`, `rules://72-3d-forms`.