Palette File Formats: ASE, GPL, CSS & JSON
Which palette format to reach for, which tools read each one, and how to move color between apps without retyping hex codes.
Last updated:
A palette that lives in one app is a screenshot waiting to happen. The way color actually moves between tools is a handful of file formats — each with its own home turf. Knowing which one your destination reads saves you from the ritual of retyping hex codes into yet another project.
The formats, by destination
- ASE (Adobe Swatch Exchange) — the interchange format for Adobe’s suite: Photoshop, Illustrator, and InDesign all import it as swatches. It’s a binary format that carries color names along with values, which makes it the safe default when a palette is headed for design-tool work.
- GPL (GIMP palette) — a plain-text format of RGB values and names. Beyond GIMP itself, it’s read by a family of open-source tools including Inkscape, Krita, and Aseprite. Because it’s just text, it’s also easy to inspect or edit by hand.
- CSS custom properties — color as code:
--accent: #0a6cff;. The right export when the destination is a website or app stylesheet, because the palette drops straight into the codebase with no translation step. - JSON — the programmable option. There’s no single universal palette schema, but JSON is what build scripts, theming systems, and design-token pipelines consume, so it’s the format to choose when software — not a person — is the audience.
- CSV — rows of values for spreadsheets and quick scripts. Handy for audits (“what colors do we actually use?”) and for handing data to people who live in Excel.
- PNG / JPEG swatch images — not machine-readable, but the fastest way to show a palette: moodboards, client decks, chat threads.
Choosing without overthinking
Ask one question: what reads this next? An Adobe app wants ASE. A codebase wants CSS or JSON. A spreadsheet wants CSV. A human wants an image. If the answer is “several of those,” export more than once from the same source palette rather than converting one export into another — every conversion step is a chance for names and values to drift.
The corollary: keep a single source-of-truth palette and treat every file as disposable output. That’s the model Palette Library is built around — it stores the palette once and exports to CSS, JSON, ASE, CSV, PNG, JPEG, and GPL on demand, so the same set of colors can head to a stylesheet and a Photoshop swatch panel without diverging.
Names matter more than you think
Values survive every format; names don’t always. A palette whose colors are named
primary, surface, and warning stays meaningful in a CSS export and an ASE swatch list
alike — while Untitled-14 tells your future self nothing. Name colors for their role at capture
time and every downstream format inherits the decision.