Skip to main content

Overview

The Color Palette panel displays all available colors for your sprite. Palettes are especially important when working in Indexed color mode, where your sprite is limited to a specific set of colors.
While RGBA sprites can use any color, having a defined palette helps maintain visual consistency and makes color management easier.

Color modes and palettes

Palettes behave differently depending on your sprite’s color mode:
Full color mode with millions of colors available.
  • Palette serves as a suggestion/reference
  • Can draw with any color, not limited to palette
  • Palette helps organize frequently used colors
  • Color picker shows palette for quick access
Choose Indexed mode when creating art for classic consoles (NES, Game Boy) or when you need GIF compatibility with specific palette constraints.

Palette panel anatomy

The Color Palette panel contains several elements:

Color grid

Displays all colors in the current palette

Current colors

Shows foreground (left) and background (right) colors

Palette selector

Dropdown menu to switch between saved palettes

Color operations

Buttons for adding, removing, and organizing colors

Selecting colors

Multiple ways to choose colors from the palette:

Basic selection

  • Left-click: Set foreground color
  • Right-click: Set background color
  • Middle-click: Swap foreground and background colors
  • X key: Swap foreground and background colors

Multiple selection

  • Ctrl+Click: Add color to selection (Windows/Linux)
  • Cmd+Click: Add color to selection (macOS)
  • Shift+Click: Select a range of colors
  • Drag: Select multiple adjacent colors
Selected colors (white outline) can be batch-edited, rearranged, or exported together.

Adding colors to palette

Expand your palette with new colors:
  1. Choose a color with the color picker
  2. Click the Add color button (+) in the palette panel
  3. The current foreground color is added to the palette
In Indexed mode, you’re limited to 256 colors total. Adding more colors requires removing existing ones or converting to RGBA mode.

Editing colors

Modify existing palette colors:

Single color editing

1

Double-click color

Double-click any color in the palette to open the color editor.
2

Adjust color

Use the color wheel, sliders, or hex input to change the color.
3

Apply changes

Click OK to update the palette color.
In Indexed mode, changing a palette color updates ALL pixels using that color index throughout the entire sprite and all frames.

Batch editing

Change multiple colors at once:
  1. Select colors in the palette
  2. Right-click → Remap Colors
  3. Choose replacement colors
  4. All instances update throughout the sprite
Organize palette by hue, saturation, brightness, or luminance:
  1. Select colors to sort
  2. Right-click → Sort Colors
  3. Choose sorting method
Shift hue, saturation, or value for multiple colors:
  1. Select colors
  2. Edit → Adjustments → Hue/Saturation
  3. Adjust sliders to affect all selected colors

Color shades

The Color Shades panel generates tints, shades, and gradients:

Accessing color shades

  1. Select a color in the palette
  2. The Color Shades panel automatically generates variations
  3. Click a shade to use it as foreground/background color
  4. Right-click to add the shade to the palette

Shade generation modes

Generates lighter tints (toward white) and darker shades (toward black) of the selected color.
Use Color Shades to quickly build cohesive color ramps for shading and lighting effects.

Palette operations

Managing palette entries

Add color

Click the + button or right-click → Add Colors

Remove color

Select color(s) and press Delete or click - button

Rearrange colors

Drag colors to reorder them in the palette

Clear palette

Right-click → Clear Palette to remove all colors

Resizing palettes

Adjust the number of palette entries:
  1. Right-click in the palette panel
  2. Select Palette Size
  3. Enter the new size (1-256 colors)
  4. Choose whether to truncate or pad with empty entries
Reducing palette size below the number of used colors will cause data loss in Indexed mode. Aseprite will warn you before proceeding.

Preset palettes

Aseprite includes several built-in palettes:

System palettes

DawnBringer’s 16-color palette, popular for retro-style pixel art.
DawnBringer’s 32-color palette with expanded color range.
The official 16-color palette from the Pico-8 fantasy console.
Classic 4-shade green palette from the original Game Boy.
IBM CGA 16-color palette from early PC graphics.
The iconic 16-color palette from the C64 computer.

Loading preset palettes

1

Open palette selector

Click the palette dropdown menu in the Color Palette panel.
2

Choose preset

Select a preset palette from the list (DB16, Pico-8, etc.).
3

Apply to sprite

The palette is loaded and available for use immediately.
Start with a preset palette and customize it to fit your art style. This gives you a solid foundation while maintaining cohesive colors.

Custom palettes

Create and save your own palettes:

Creating custom palettes

  1. Start with an empty palette or clear existing one
  2. Add colors one by one using the color picker
  3. Organize colors as needed
  4. Save the palette for future use

Saving palettes

1

Open palette menu

Click the palette dropdown or right-click in the palette panel.
2

Save palette

Select Palette → Save Palette or Save Palette As.
3

Choose format

Save as .ase (Aseprite), .gpl (GIMP), .pal (JASC), or other formats.
4

Name and save

Give your palette a descriptive name and save to disk.
Saved palettes can be loaded in any sprite and shared with other Aseprite users or compatible software.

Palette files and formats

Aseprite supports multiple palette formats:

Supported formats

FormatExtensionDescription
Aseprite.aseNative format with full metadata support
GIMP Palette.gplText-based palette used by GIMP and Krita
JASC Palette.palPaint Shop Pro palette format
Hexadecimal.hexSimple text file with hex color codes
Adobe Color.actAdobe Color Table format
Microsoft.palMicrosoft RIFF palette format

Importing palettes

1

Prepare palette file

Obtain a palette file in a supported format.
2

Load palette

Palette → Load Palette and select the file.
3

Apply to sprite

The palette replaces the current sprite’s palette.
Many pixel art communities share palettes online. Sites like Lospec.com host hundreds of community palettes in GPL format.

Exporting palettes

Share your palettes with others:
  1. Palette → Save Palette
  2. Choose export format (GPL for compatibility)
  3. Share the file with collaborators or the community

Palette per frame

Animate palette changes across frames:

Enabling palette animation

Palette per frame is an advanced feature primarily used for special effects in Indexed mode.
1

Enable feature

Right-click palette → Enable Palette per Frame.
2

Edit frame palettes

Each frame can now have its own unique palette.
3

Animate effects

Use this for color cycling, day/night transitions, or palette swaps.

Use cases

  • Color cycling effects: Simulate water, fire, or animated lights
  • Palette swaps: Character costume changes without redrawing
  • Day/night cycles: Shift colors to show time passing
  • Fade effects: Gradual color transitions between scenes
Palette per frame significantly increases file size and complexity. Use sparingly and only when necessary.

Working with Indexed color mode

Maximize efficiency in Indexed mode:

Benefits of Indexed mode

Smaller file sizes

Pixels store indices instead of full color data

Global color edits

Change palette colors to update entire sprite

GIF compatibility

Direct export to GIF format without quantization

Retro accuracy

Match hardware limitations of classic systems

Converting to Indexed mode

1

Convert sprite

Sprite → Color Mode → Indexed
2

Choose method

Select quantization algorithm (Octree, RGB5A3, etc.)
3

Set colors

Choose maximum number of colors (up to 256)
4

Apply

Sprite converts to Indexed mode with generated palette
Convert to Indexed mode early in your workflow to ensure colors stay within palette constraints.

Color ramps

Organize colors into ramps for efficient shading:

Creating color ramps

A color ramp is a series of related colors arranged from light to dark:
  1. Base color: The mid-tone or main color
  2. Highlights: 1-3 lighter colors for lit areas
  3. Shadows: 1-3 darker colors for shaded areas

Arranging ramps

Arrange each color family in a horizontal row:
Red:    light → mid → dark
Blue:   light → mid → dark
Green:  light → mid → dark
Well-organized ramps speed up shading and ensure consistent lighting across your sprite.

Palette shortcuts

Speed up color management:
ActionShortcut
Swap FG/BG colorsX
Reset to default colorsD
Copy color as hexRight-click → Copy
Add current colorClick + button
Remove colorSelect + Delete
Sort colorsRight-click → Sort

Best practices

Plan your palette

Design color ramps before starting to draw for cohesive results

Use limited palettes

Constraint breeds creativity—try 8, 16, or 32 color limits

Organize ramps

Keep related colors together for faster access while drawing

Save custom palettes

Build a library of palettes for different projects and styles

Test readability

Ensure sufficient contrast between colors for clarity

Consider accessibility

Check palettes with colorblind simulation tools

Scripting with palettes

Automate palette operations with Lua:
local sprite = app.activeSprite
local palette = sprite.palettes[1]

-- Add a new color to the palette
palette:resize(palette:len() + 1)
palette:setColor(palette:len() - 1, Color{ r=255, g=128, b=64 })

-- Iterate through palette colors
for i = 0, palette:len() - 1 do
  local color = palette:getColor(i)
  print("Color " .. i .. ": RGB(" .. color.red .. ", " .. color.green .. ", " .. color.blue .. ")")
end

-- Load an external palette
app.command.LoadPalette{ filename="/path/to/palette.gpl" }

-- Create gradient in palette
local startColor = Color{ r=255, g=0, b=0 }
local endColor = Color{ r=0, g=0, b=255 }
for i = 0, 15 do
  local t = i / 15
  local r = math.floor(startColor.red * (1-t) + endColor.red * t)
  local g = math.floor(startColor.green * (1-t) + endColor.green * t)
  local b = math.floor(startColor.blue * (1-t) + endColor.blue * t)
  palette:setColor(i, Color{ r=r, g=g, b=b })
end
Learn more in the Palette API documentation.

Color Modes

Understand RGBA, Indexed, and Grayscale modes

Color Picker

Learn about color selection tools

GIF Export

Export with optimized palettes

Build docs developers (and LLMs) love