The Default Color Palette โ
Foxel ships with a carefully designed 128-color default palette, optimized for pixel art and voxel workflows. It is structured, predictable, and intended to support shading, lighting, and material definition without constant palette micromanagement.
The palette is laid out as 16 rows ร 8 colors.
Palette Structure at a Glance โ
Each row represents a color family or semantic group
Each column represents a shade, from light (left) to dark (right)
The palette is designed so you can:
- shade horizontally (within a row)
- shift hue vertically (between rows)
- avoid accidental jumps in brightness or saturation
Absolute white and black are intentionally reserved and not mixed into color ramps.
Row Overview โ
Row 1 โ Neutral greys (reference row) โ
Pure greys from white to black.
Purpose:
- lighting reference
- UI elements
- outlines and silhouettes
- contrast checking
This row contains the only true black in the palette.
Row 2 โ Cool greys โ
Greys with a subtle blue bias.
Purpose:
- metal
- concrete
- night scenes
- technical or sci-fi materials
These shade more naturally into blue than into brown.
Row 3 โ Warm greys โ
Greys with a subtle warm bias.
Purpose:
- stone
- architecture
- skin shadows
- natural environments
Useful where neutral grey feels too cold.
Row 4 โ Red โ
A controlled red ramp with darker values drifting toward brown.
Purpose:
- fabrics
- blood, rust, clay
- warm accents
Dark reds are intentionally muted to avoid synthetic-looking shadows.
Row 5 โ Orange โ
A mid-warm ramp designed to stay readable across all values.
Purpose:
- wood
- dirt
- fire
- warm light interaction
Bridges naturally between red and yellow.
Row 6 โ Yellow โ
A high-contrast yellow ramp that remains readable even in highlights.
Purpose:
- sunlight
- gold
- stylized materials
- UI accents
Yellows are tuned to avoid collapsing into white.
Row 7 โ Yellow-green โ
A transitional ramp between warm and cool hues.
Purpose:
- grass
- foliage
- toxic or alien materials
- stylized lighting
Designed as a bridge between yellow and green.
Row 8 โ Green โ
Natural, balanced green tones.
Purpose:
- vegetation
- organic materials
- environments
Avoids overly neon greens to keep shading controllable.
Row 9 โ Cyan / blue-green โ
A transition row between green and blue.
Purpose:
- water
- glass
- energy effects
- cool reflections
Helps smooth shading from green into blue without abrupt hue jumps.
Row 10 โ Blue โ
The primary blue ramp.
Purpose:
- sky
- water
- technology
- cool lighting
Designed to be clean and versatile rather than overly saturated.
Row 11 โ Indigo โ
A darker, cooler blue-violet range.
Purpose:
- night scenes
- deep shadows
- sci-fi materials
Acts as a natural shadow companion to blue.
Row 12 โ Violet โ
Purple tones without drifting into magenta.
Purpose:
- magic effects
- stylized materials
- atmospheric lighting
Keeps a clear separation from pink and fuchsia.
Row 13 โ Earth / brown โ
Low-chroma warm browns.
Purpose:
- dirt
- leather
- wood
- terrain
These colors intentionally desaturate in shadows for realism.
Row 14 โ Skin tones โ
Hand-tuned skin colors, not mathematically generated.
Purpose:
- characters
- organic materials
Includes warm highlights, natural mids, and reddish-brown shadows. These tones are intentionally not perfectly linear to better match real skin.
Row 15 โ Muted multipurpose โ
Low-saturation colors for blending and subtle shading.
Purpose:
- ambient occlusion
- fog
- background elements
- color mixing
Useful when full saturation would be distracting.
Row 16 โ Accent / utility โ
High-impact colors and utilities.
Includes:
- cyan
- green
- yellow
- pure fuchsia (#ff00ff)
- blue
- orange
- teal
- pink
Purpose:
- markers
- effects
- debugging
- strong accents
Pure fuchsia is included intentionally for classic transparency and debug workflows.
Shading Philosophy โ
- Shade horizontally for predictable light changes
- Move vertically to shift material or temperature
- Chromatic colors do not reach pure black โ this preserves color identity in shadows
- Absolute black is reserved for outlines and silhouettes
Customization โ
The default palette is meant to be a strong starting point, not a limitation.
You can:
- replace individual rows
- extend the palette
- build project-specific palettes on top of it
Feedback from the beta phase will help evolve this palette further.