Color Modes

Novaboard supports three color modes: RGBA (full color), Indexed (palette-bound), and Grayscale. Each mode is suited for different workflows and art styles.

RGBA Mode (Default)

RGBA mode offers full 32-bit color with 16.7 million colors plus alpha transparency. This is the default mode and most flexible option.

Best for: General pixel art, icons, UI elements, and any work requiring full color freedom or transparency gradients.

Features

  • Full color picker with HSV, RYB, and OKLCH color spaces
  • 256 levels of alpha transparency per pixel
  • No palette restrictions
  • Supports all export formats

Indexed Color Mode

Indexed mode restricts colors to your current palette. Every pixel must be one of the palette colors, making it ideal for retro-style art or controlled color schemes.

Best for: Retro game graphics, limited palette challenges, GBA/NES/SNES style art, and ensuring consistent colors across sprites.

Features

  • True indexed storage - Pixels store palette indices (0-255) instead of RGBA values
  • Color picker shows only palette colors
  • Instant palette edits - Changing a palette color immediately updates all pixels using that index
  • Drawing automatically snaps to nearest palette color
  • Transparency index - Index 0 is always the transparent slot

Palette Color Replacement

In indexed mode, when you modify a color in your palette, all pixels using that color automatically update. This is powerful for:

  • Global color adjustments across your artwork
  • Creating color variations of sprites
  • Testing different color schemes quickly

Reordering the Palette

Because pixels store indices rather than colors, reordering, sorting, or deleting palette swatches would normally recolor the whole image. Novaboard prevents this by rewriting the pixel indices to follow each color to its new position:

  • The image follows the palette — dragging or sorting swatches into a new order rewrites the underlying indices so the artwork stays pixel-for-pixel identical
  • Single undo step — the whole remap (palette change plus the index rewrite) is recorded as one history entry
  • Deleting a swatch — pixels that used a deleted color are reassigned to the nearest remaining palette color (the one lossy case), and the affected count is reported
  • Transparency follows too — the transparent index moves with its swatch, so empty pixels stay empty after a reorder

Replace Colors Panel

Image → Replace Colors… opens a dock panel for swapping colors, and it works in every color mode, not just indexed. Set up one or more From → To rows (add rows to batch several swaps, or sample the From color straight off the canvas), choose a scope (Selection, Active layer, Current frame, or All frames), and outside indexed mode optionally raise the Tolerance slider to also catch near-matching colors. Indexed files match palette slots exactly, so they get no tolerance slider. A live affected-pixel count and on-canvas preview show the result before you Apply it as a single undoable change. See Colors & Palettes for details.

Palette Swap Effect

The Palette Swap layer effect recolors a layer non-destructively. You give it a list of from/to color pairs, a tolerance for how close a pixel has to be to count as a match, and what to do with everything that did not match: keep it or make it transparent. The stored pixels never change, so you can preview a recolor and back out of it.

Grayscale Mode

Grayscale mode restricts all colors to shades of gray. The color picker shows only grayscale values, and any colors are automatically converted.

Best for: Game Boy style graphics, monochrome art, value studies, and black-and-white designs.

Features

  • Configurable palette size: 2, 4, 8, 16, 32, 64, 128, or 256 shades of gray (including black and white). A 4-shade palette reproduces the classic Game Boy look.
  • Simplified color picker for quick shade selection
  • Maintains alpha transparency
  • Great for studying values before adding color

Grayscale View (Non-Destructive)

Separate from the grayscale color mode above, View → Grayscale View ( Ctrl+Shift+U ) flips the canvas to grayscale without changing a single pixel. It is a value-check toggle, not a conversion:

  • Tap the shortcut to toggle it on or off; hold it to preview while held
  • Your colors come right back when you turn it off — no pixels are modified
  • The preview panel stays in color, so you can compare value against the colored result

Adjust Colors: Grayscale (One-Off)

There is a third grayscale, and it is neither of the two above. Image → Adjust Colors → Grayscale is a one-shot adjustment: it desaturates the pixels it targets and stops there. The file stays in RGBA, nothing is restricted afterwards, and it undoes like any other edit. It follows the usual adjustment scope, so a floating selection is converted on its own, otherwise the active layer's cels are.

Tip: Grayscale View to sanity-check the value contrast of a colored piece, Grayscale color mode when you want the whole file monochrome from here on, and Adjust Colors → Grayscale when you only want to drain the color out of what you have right now.

Grayscale Conversion Methods

When converting to grayscale, you can choose from three methods:

  • Luma (Default) - Perceptual luminance using Rec. 709 coefficients (0.2126R + 0.7152G + 0.0722B)
  • HSV Value - Uses the maximum of R, G, B channels
  • HSL Lightness - Average of maximum and minimum RGB channels

Changing Color Modes

A file's current color mode is always shown as an RGBA / Indexed / Grayscale badge in the status bar, so you know which mode you are in at a glance. You can change the mode at any time:

  1. Go to Image → Color Mode and pick RGBA (Full Color), Indexed (Palette) or Grayscale
  2. Indexed and Grayscale open a conversion dialog; RGBA applies straight away
  3. For indexed mode, select a dithering method if desired
  4. Confirm the conversion

Dithering Options (RGBA to Indexed)

When converting from RGBA to Indexed mode, choose a dithering method to handle colors not in your palette:

  • None - Map each pixel to the nearest palette color (can look banded)
  • Ordered (Bayer) - Uses a Bayer matrix for even dithering pattern
  • Floyd-Steinberg - Error diffusion for smooth gradients
  • Atkinson - Error diffusion variant (Bill Atkinson's algorithm) that diffuses less error, preserving contrast and yielding a characteristic Mac-era look

Floyd-Steinberg and Atkinson add a dithering strength slider that controls how much error is diffused, letting you dial dithering from subtle to aggressive. None and Ordered have nothing to dial, so the slider is hidden for them.

Warning: Converting to a more restrictive mode (e.g., RGBA to Indexed or Grayscale) is lossy. Colors will be mapped to the nearest available color in the target mode.

Conversion Behavior

FromToBehavior
RGBAIndexedEach pixel mapped to nearest palette color
RGBAGrayscaleColors converted using luminance formula
IndexedRGBALossless - colors preserved exactly
IndexedGrayscalePalette colors converted to gray values
GrayscaleRGBALossless - grays preserved
GrayscaleIndexedGrays mapped to nearest palette color

Color Depth

Color depth is a separate restriction that sits on top of the color mode: it pins the file to a hardware color profile, the way an Amiga or a Mega Drive could only show certain values. Image → Color Depth holds the profiles, and which ones you see depends on the color mode you are in.

  • RGBA and Indexed - RGB 8-8-8 (Truecolor) for no restriction, RGB565, RGB332, or Custom…
  • Grayscale - Off (8-bit), 4-bit (16 levels), 2-bit (4 levels), 1-bit (2 levels), or Custom…

Custom… opens the Color Depth dialog, which adds RGB444 (Amiga) to the preset list and lets you set the bits per channel by hand, 1 to 8 for each of R, G and B, or a single value-bits figure in grayscale. A banded gradient previews the profile and a readout tells you how many colors it leaves you.

Warning: Applying a profile folds the existing pixels and the palette into it, along with your current primary and secondary colors. It is one undo step. Clearing the profile lifts the restriction but does not bring back the precision that was folded away.

Tips

  • Start in Indexed mode if you want strict palette control from the beginning
  • Use Grayscale for studies - establish values first, then convert to RGBA and add color
  • Set up your palette before converting to Indexed - the conversion uses your current palette
  • Export considerations: GIF format naturally supports indexed color, while PNG supports all modes