catppuccin

🐍 Soothing pastel theme for Python.

Basic Usage

Get access to the palette with the catppuccin.PALETTE constant:

from catppuccin import PALETTE

PALETTE.latte.colors.mauve.hex
# '#8839ef'
PALETTE.mocha.colors.teal.rgb
# RGB(r=148, g=226, b=213)

The Palette data structure matches the palette JSON.

Iteration

Both Palette and FlavorColors can be iterated to yield flavors and colors respectively:

for flavor in PALETTE:
    print(flavor.name)

# Latte
# Frappé
# Macchiato
# Mocha

for color in PALETTE.latte.colors:
    print(f"{color.name}: {color.hex}")

# Rosewater: #f2d5cf
# Flamingo: #eebebe
# Pink: #f4b8e4
# ...
# Base: #303446
# Mantle: #292c3c
# Crust: #232634

Dataclasses

Palette, Flavor, Color et cetera are all dataclasses, so you can also inspect and iterate their fields using methods from the dataclass module.

For example, to list all color names and their hex codes:

from dataclasses import fields
from catppuccin import PALETTE

flavor = PALETTE.frappe
for field in fields(flavor.colors):
    color = getattr(flavor.colors, field.name)
    print(f"{field.name}: {color.hex}")

# rosewater: #f2d5cf
# flamingo: #eebebe
# pink: #f4b8e4
# ...
# base: #303446
# mantle: #292c3c
# crust: #232634

Types

This package is fully type annotated with data structures located in the models module.

Integrations

This package includes optional support for several libraries. Click a link below to see the documentation for that integration.

 1"""🐍 Soothing pastel theme for Python.
 2
 3## Basic Usage
 4
 5Get access to the palette with the `catppuccin.PALETTE` constant:
 6
 7```python
 8from catppuccin import PALETTE
 9
10PALETTE.latte.colors.mauve.hex
11# '#8839ef'
12PALETTE.mocha.colors.teal.rgb
13# RGB(r=148, g=226, b=213)
14```
15
16The `Palette` data structure matches [the palette
17JSON](https://github.com/catppuccin/palette/blob/main/palette.json).
18
19## Iteration
20
21Both `Palette` and `FlavorColors` can be iterated to yield flavors and colors
22respectively:
23
24```python
25for flavor in PALETTE:
26    print(flavor.name)
27
28# Latte
29# Frappé
30# Macchiato
31# Mocha
32
33for color in PALETTE.latte.colors:
34    print(f"{color.name}: {color.hex}")
35
36# Rosewater: #f2d5cf
37# Flamingo: #eebebe
38# Pink: #f4b8e4
39# ...
40# Base: #303446
41# Mantle: #292c3c
42# Crust: #232634
43```
44
45## Dataclasses
46
47`Palette`, `Flavor`, `Color` et cetera are all
48[`dataclasses`](https://docs.python.org/3/library/dataclasses.html),
49so you can also inspect and iterate their fields using methods from the
50dataclass module.
51
52For example, to list all color names and their hex codes:
53
54```python
55from dataclasses import fields
56from catppuccin import PALETTE
57
58flavor = PALETTE.frappe
59for field in fields(flavor.colors):
60    color = getattr(flavor.colors, field.name)
61    print(f"{field.name}: {color.hex}")
62
63# rosewater: #f2d5cf
64# flamingo: #eebebe
65# pink: #f4b8e4
66# ...
67# base: #303446
68# mantle: #292c3c
69# crust: #232634
70```
71
72## Types
73
74This package is fully type annotated with data structures located in [the models
75module](./catppuccin/models.html).
76
77## Integrations
78
79This package includes optional support for several libraries. Click a link below
80to see the documentation for that integration.
81
82- [matplotlib](./catppuccin/extras/matplotlib.html)
83- [pygments](./catppuccin/extras/pygments.html)
84- [rich](./catppuccin/extras/rich_ctp.html)
85
86"""
87
88import importlib.util
89
90from catppuccin.palette import PALETTE as PALETTE
91
92# Attempt to register styles and colormaps if matplotlib is available
93if importlib.util.find_spec("matplotlib") is not None:
94    from catppuccin.extras.matplotlib import _register_colormap_list, _register_styles
95
96    _register_styles()
97    _register_colormap_list()