Catppuccin Hex Chart: Palette Codes for All 4 Flavors

Catppuccin Hex Chart: Palette Codes for All 4 Flavors

HeJialei

[Shop teh Catppuccin Keycap Set]

If you need a Catppuccin hex value, you usually need it now: paste into CSS, a Figma fill, a terminal config, or a keycap proof. This page is the Catppuccin palette as four columns of hex. Same 26 names in Latte, Frappé, Macchiato, and Mocha. Official codes from the catppuccin/palette repo.

The names do not change between flavors. Mauve is always Mauve. Base is always the main background. Only the roast changes. That is why a port can swap flavors without remapping every highlight.

The four flavors, in hex

Latte is the light theme. Frappé, Macchiato, and Mocha are three dark roasts, lightest to darkest. Mocha is the one in most screenshots. Frappé is the muted middle. Macchiato sits between them. If you already compared this family to Tokyo Night, the dark default you were looking at was Mocha base #1e1e2e.

Role Latte Frappé Macchiato Mocha
Base (editor background) #eff1f5 #303446 #24273a #1e1e2e
Text (main foreground) #4c4f69 #c6d0f5 #cad3f5 #cdd6f4
Mauve (keywords / purple) #8839ef #ca9ee6 #c6a0f6 #cba6f7
Blue (functions / links) #1e66f5 #8caaee #8aadf4 #89b4fa
Peach (numbers / warnings) #fe640b #ef9f76 #f5a97f #fab387
Green (strings / success) #40a02b #a6d189 #a6da95 #a6e3a1

Read that table left to right on one row and you see the actual product. Latte accents are saturated and darker so they sit on cream. Dark-flavor accents are pastel so they sit on navy-purple. Mixing Mocha Mauve into a Latte UI looks washed. Mixing Latte Peach into Mocha looks like a warning light.

Catppuccin palette: 14 accents

These are the colors people mean when they say "the pastels." Use them for syntax, links, status, and anything that should read as a token. Do not use them for large backgrounds unless you are making a poster.

Name Latte Frappé Macchiato Mocha
Rosewater #dc8a78 #f2d5cf #f4dbd6 #f5e0dc
Flamingo #dd7878 #eebebe #f0c6c6 #f2cdcd
Pink #ea76cb #f4b8e4 #f5bde6 #f5c2e7
Mauve #8839ef #ca9ee6 #c6a0f6 #cba6f7
Red #d20f39 #e78284 #ed8796 #f38ba8
Maroon #e64553 #ea999c #ee99a0 #eba0ac
Peach #fe640b #ef9f76 #f5a97f #fab387
Yellow #df8e1d #e5c890 #eed49f #f9e2af
Green #40a02b #a6d189 #a6da95 #a6e3a1
Teal #179299 #81c8be #8bd5ca #94e2d5
Sky #04a5e5 #99d1db #91d7e3 #89dceb
Sapphire #209fb5 #85c1dc #7dc4e4 #74c7ec
Blue #1e66f5 #8caaee #8aadf4 #89b4fa
Lavender #7287fd #babbf1 #b7bdf8 #b4befe

Search traffic clusters on a handful of these. Mocha Mauve #cba6f7, Mocha Peach #fab387, Mocha Blue #89b4fa, Mocha Green #a6e3a1. Latte's versions of the same names are a different paint: Mauve #8839ef, Peach #fe640b, Blue #1e66f5. If a mockup "looks official except the purple is too loud," you probably grabbed Latte Mauve and dropped it on a Mocha base.

Surfaces, text, and chrome

The other 12 names are the UI stack. Base is the page. Mantle and crust sit behind it (sidebars, status bars, the layer under the editor). Surfaces and overlays are steps up for panels, rules, and muted chrome. Text / subtext / overlay handle foreground hierarchy. Overlay 0 is the usual comment color in dark flavors.

Name Latte Frappé Macchiato Mocha
Text #4c4f69 #c6d0f5 #cad3f5 #cdd6f4
Subtext 1 #5c5f77 #b5bfe2 #b8c0e0 #bac2de
Subtext 0 #6c6f85 #a5adce #a5adcb #a6adc8
Overlay 2 #7c7f93 #949cbb #939ab7 #9399b2
Overlay 1 #8c8fa1 #838ba7 #8087a2 #7f849c
Overlay 0 #9ca0b0 #737994 #6e738d #6c7086
Surface 2 #acb0be #626880 #5b6078 #585b70
Surface 1 #bcc0cc #51576d #494d64 #45475a
Surface 0 #ccd0da #414559 #363a4f #313244
Base #eff1f5 #303446 #24273a #1e1e2e
Mantle #e6e9ef #292c3c #1e2030 #181825
Crust #dce0e8 #232634 #181926 #11111b

A practical mapping for app chrome in Mocha: window #1e1e2e (base), sidebar #181825 (mantle), status line or tab bar #11111b (crust), raised panel #313244 (surface 0). Copy that pattern to Macchiato or Frappé by taking the same names, not by lightening Mocha in a color picker. The flavors were mixed as sets.

Catppuccin keycap colors

Custom keycap makers get asked for Catppuccin keycap colors more often than the official docs cover. The palette is not a GMK set. It is a screen palette. ABS/PBT and dye-sub legends will not match a hex on a calibrated monitor, and that is fine if you treat the names as roles instead of a PANTONE contract.

For a dark board that should read as Mocha on a desk:

  • Alphas: body Base #1e1e2e or Mantle #181825, legends Text #cdd6f4. Crust #11111b is a better bottom row / case color than a large alpha field. It swallows legends in photos.
  • Modifiers: pick two accents and stop. Mauve #cba6f7 plus Peach #fab387 is the screenshot combo. Blue #89b4fa plus Green #a6e3a1 looks more "terminal." Pink #f5c2e7 as a third accent on Escape only.
  • Numbers / function row: Yellow #f9e2af and Sapphire #74c7ec if you want the row to separate without shouting.

For a light board that should read as Latte:

  • Alphas: Base #eff1f5, legends Text #4c4f69. Crust #dce0e8 as a slightly cooler novelty or case.
  • Modifiers: Latte Mauve #8839ef and Peach #fe640b hold up on cream. Dark-flavor pastels on a Latte body look faded in person, the same way they look faded in CSS.

Skip Overlay and Surface for legends. They are made to recede on a display. On a keycap they read as dirty gray. If a vendor asks for "one hex for the whole kit," send Mocha Base + Text + Mauve. That is enough to look like Catppuccin without turning the board into a bag of jelly beans.

Part Mocha (dark kit) Latte (light kit)
Alpha body #1e1e2e #eff1f5
Legend #cdd6f4 #4c4f69
Mod accent A #cba6f7 #8839ef
Mod accent B #fab387 #fe640b
Case / bottom #11111b #dce0e8

CSS variables you can paste

Flavor files in the official palette already export these names. A minimal Mocha sheet looks like this. Swap the hex block for another flavor from the tables above.

:root {
  --ctp-base: #1e1e2e;
  --ctp-mantle: #181825;
  --ctp-crust: #11111b;
  --ctp-text: #cdd6f4;
  --ctp-subtext0: #a6adc8;
  --ctp-overlay0: #6c7086;
  --ctp-surface0: #313244;
  --ctp-mauve: #cba6f7;
  --ctp-blue: #89b4fa;
  --ctp-peach: #fab387;
  --ctp-green: #a6e3a1;
  --ctp-red: #f38ba8;
  --ctp-yellow: #f9e2af;
  --ctp-teal: #94e2d5;
}

Keep the names. If you rename Mauve to "purple-1," the next port you install will not match your tokens, and you will be back on this page looking up hex again.

Which flavor's hex to copy

Copy Mocha if the rest of the machine is already on the dark default, or if you are matching a screenshot. Copy Macchiato if Mocha feels a bit too crushed on a dim laptop panel. Copy Frappé if you want the same names with less punch. Copy Latte only when the surface is actually light. Do not "brighten Mocha in Figma" and call it Latte. The accent hex values are not a brightness slider.

If you are choosing a theme rather than a fill color, the comparison that usually settles it is still Tokyo Night vs Catppuccin. This page is the color card underneath that choice.

Hex values match catppuccin.com/palette and the palette package. If a port disagrees with a cell here, the port is stale.

Back to blog

Leave a comment