Catppuccin Macchiato catppuccin dark
readability66/100dark96%bg#24273afg#cad3f5bg hue232°fg hue227°mean lightness63%saturation48%warmth-0.03mean hue264° violethue variation88°distinct hues9avg contrast6.5fg contrast9.9text on bgwhiteachromatic0
Colors
rosewater
flamingo
pink
mauve
red
maroon
peach
yellow
green
teal
sky
sapphire
blue
lavender
text
subtext1
subtext0
overlay2
overlay1
overlay0
surface2
surface1
surface0
base
mantle
crust
roygcbpb
Ramp is sorted by WCAG relative luminance; the strip maps the 8 ANSI roles (base08–base0F).
Code sample
package main
import "fmt"
const (
Version = "1.2.0" // release
MaxTries = 3
)
type Server struct {
Host string
Port int
}
func (s *Server) start(tls bool) error {
addr := fmt.Sprintf("%s:%d", s.Host, s.Port)
if tls {
return listen(addr, 443)
}
return listen(addr, 80)
}
#!/usr/bin/env python3
# syntax sample: hex to hsl
import math
def hex_to_hsl(hex_code):
r = int(hex_code[1:3], 16) / 255
g = int(hex_code[3:5], 16) / 255
b = int(hex_code[5:7], 16) / 255
mx = max(r, g, b)
mn = min(r, g, b)
l = (mx + mn) / 2
return round(l * 100)
#!/bin/sh
# build the project and run tests
set -e
PREFIX="$HOME/.local"
VERSION="1.2.0"
for pkg in gcc make git; do
if ! command -v "$pkg" >/dev/null 2>&1; then
echo "missing dependency: $pkg"
fi
done
echo "building v$VERSION"
make -j4 && make test
Analysis
WCAG contrast matrix
| vs | rosewater | flamingo | pink | mauve | red | maroon | peach | yellow | green | teal | sky | sapphire | blue | lavender | text | subtext1 | subtext0 | overlay2 | overlay1 | overlay0 | surface2 | surface1 | surface0 | base |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| rosewater | · | 1.2 | 1.2 | 1.6 | 1.9 | 1.6 | 1.5 | 1.1 | 1.2 | 1.3 | 1.2 | 1.5 | 1.7 | 1.4 | 1.1 | 1.4 | 1.7 | 2.1 | 2.7 | 3.5 | 4.7 | 6.3 | 8.5 | 11.2 |
| flamingo | 1.2 | · | 1.0 | 1.4 | 1.6 | 1.4 | 1.3 | 1.1 | 1.0 | 1.1 | 1.0 | 1.2 | 1.5 | 1.2 | 1.0 | 1.2 | 1.4 | 1.8 | 2.3 | 3.0 | 4.0 | 5.4 | 7.3 | 9.5 |
| pink | 1.2 | 1.0 | · | 1.4 | 1.6 | 1.4 | 1.2 | 1.1 | 1.0 | 1.1 | 1.0 | 1.2 | 1.4 | 1.1 | 1.1 | 1.1 | 1.4 | 1.8 | 2.3 | 3.0 | 3.9 | 5.3 | 7.1 | 9.3 |
| mauve | 1.6 | 1.4 | 1.4 | · | 1.1 | 1.0 | 1.1 | 1.5 | 1.3 | 1.3 | 1.3 | 1.1 | 1.0 | 1.2 | 1.4 | 1.2 | 1.0 | 1.3 | 1.7 | 2.2 | 2.9 | 3.9 | 5.2 | 6.8 |
| red | 1.9 | 1.6 | 1.6 | 1.1 | · | 1.1 | 1.3 | 1.7 | 1.5 | 1.5 | 1.5 | 1.3 | 1.1 | 1.4 | 1.7 | 1.4 | 1.1 | 1.1 | 1.4 | 1.9 | 2.5 | 3.4 | 4.5 | 6.0 |
| maroon | 1.6 | 1.4 | 1.4 | 1.0 | 1.1 | · | 1.1 | 1.5 | 1.3 | 1.3 | 1.3 | 1.1 | 1.0 | 1.2 | 1.5 | 1.2 | 1.0 | 1.3 | 1.6 | 2.2 | 2.9 | 3.8 | 5.2 | 6.8 |
| peach | 1.5 | 1.3 | 1.2 | 1.1 | 1.3 | 1.1 | · | 1.3 | 1.2 | 1.1 | 1.2 | 1.0 | 1.2 | 1.1 | 1.3 | 1.1 | 1.2 | 1.4 | 1.8 | 2.4 | 3.2 | 4.3 | 5.8 | 7.6 |
| yellow | 1.1 | 1.1 | 1.1 | 1.5 | 1.7 | 1.5 | 1.3 | · | 1.1 | 1.2 | 1.1 | 1.3 | 1.6 | 1.2 | 1.0 | 1.2 | 1.5 | 1.9 | 2.5 | 3.2 | 4.3 | 5.8 | 7.8 | 10.2 |
| green | 1.2 | 1.0 | 1.0 | 1.3 | 1.5 | 1.3 | 1.2 | 1.1 | · | 1.0 | 1.0 | 1.2 | 1.4 | 1.1 | 1.1 | 1.1 | 1.4 | 1.7 | 2.2 | 2.9 | 3.9 | 5.2 | 7.0 | 9.2 |
| teal | 1.3 | 1.1 | 1.1 | 1.3 | 1.5 | 1.3 | 1.1 | 1.2 | 1.0 | · | 1.0 | 1.1 | 1.3 | 1.1 | 1.1 | 1.1 | 1.3 | 1.7 | 2.1 | 2.8 | 3.7 | 4.9 | 6.6 | 8.7 |
| sky | 1.2 | 1.0 | 1.0 | 1.3 | 1.5 | 1.3 | 1.2 | 1.1 | 1.0 | 1.0 | · | 1.2 | 1.4 | 1.1 | 1.1 | 1.1 | 1.4 | 1.7 | 2.2 | 2.9 | 3.8 | 5.2 | 7.0 | 9.1 |
| sapphire | 1.5 | 1.2 | 1.2 | 1.1 | 1.3 | 1.1 | 1.0 | 1.3 | 1.2 | 1.1 | 1.2 | · | 1.2 | 1.1 | 1.3 | 1.1 | 1.2 | 1.4 | 1.8 | 2.4 | 3.2 | 4.3 | 5.8 | 7.6 |
| blue | 1.7 | 1.5 | 1.4 | 1.0 | 1.1 | 1.0 | 1.2 | 1.6 | 1.4 | 1.3 | 1.4 | 1.2 | · | 1.2 | 1.5 | 1.2 | 1.0 | 1.2 | 1.6 | 2.1 | 2.8 | 3.7 | 5.0 | 6.6 |
| lavender | 1.4 | 1.2 | 1.1 | 1.2 | 1.4 | 1.2 | 1.1 | 1.2 | 1.1 | 1.1 | 1.1 | 1.1 | 1.2 | · | 1.2 | 1.0 | 1.2 | 1.5 | 2.0 | 2.6 | 3.4 | 4.6 | 6.2 | 8.2 |
| text | 1.1 | 1.0 | 1.1 | 1.4 | 1.7 | 1.5 | 1.3 | 1.0 | 1.1 | 1.1 | 1.1 | 1.3 | 1.5 | 1.2 | · | 1.2 | 1.5 | 1.9 | 2.4 | 3.1 | 4.2 | 5.6 | 7.5 | 9.9 |
| subtext1 | 1.4 | 1.2 | 1.1 | 1.2 | 1.4 | 1.2 | 1.1 | 1.2 | 1.1 | 1.1 | 1.1 | 1.1 | 1.2 | 1.0 | 1.2 | · | 1.2 | 1.5 | 2.0 | 2.6 | 3.4 | 4.6 | 6.2 | 8.2 |
| subtext0 | 1.7 | 1.4 | 1.4 | 1.0 | 1.1 | 1.0 | 1.2 | 1.5 | 1.4 | 1.3 | 1.4 | 1.2 | 1.0 | 1.2 | 1.5 | 1.2 | · | 1.3 | 1.6 | 2.1 | 2.8 | 3.7 | 5.0 | 6.6 |
| overlay2 | 2.1 | 1.8 | 1.8 | 1.3 | 1.1 | 1.3 | 1.4 | 1.9 | 1.7 | 1.7 | 1.7 | 1.4 | 1.2 | 1.5 | 1.9 | 1.5 | 1.3 | · | 1.3 | 1.7 | 2.2 | 3.0 | 4.0 | 5.3 |
| overlay1 | 2.7 | 2.3 | 2.3 | 1.7 | 1.4 | 1.6 | 1.8 | 2.5 | 2.2 | 2.1 | 2.2 | 1.8 | 1.6 | 2.0 | 2.4 | 2.0 | 1.6 | 1.3 | · | 1.3 | 1.7 | 2.3 | 3.1 | 4.1 |
| overlay0 | 3.5 | 3.0 | 3.0 | 2.2 | 1.9 | 2.2 | 2.4 | 3.2 | 2.9 | 2.8 | 2.9 | 2.4 | 2.1 | 2.6 | 3.1 | 2.6 | 2.1 | 1.7 | 1.3 | · | 1.3 | 1.8 | 2.4 | 3.2 |
| surface2 | 4.7 | 4.0 | 3.9 | 2.9 | 2.5 | 2.9 | 3.2 | 4.3 | 3.9 | 3.7 | 3.8 | 3.2 | 2.8 | 3.4 | 4.2 | 3.4 | 2.8 | 2.2 | 1.7 | 1.3 | · | 1.3 | 1.8 | 2.4 |
| surface1 | 6.3 | 5.4 | 5.3 | 3.9 | 3.4 | 3.8 | 4.3 | 5.8 | 5.2 | 4.9 | 5.2 | 4.3 | 3.7 | 4.6 | 5.6 | 4.6 | 3.7 | 3.0 | 2.3 | 1.8 | 1.3 | · | 1.3 | 1.8 |
| surface0 | 8.5 | 7.3 | 7.1 | 5.2 | 4.5 | 5.2 | 5.8 | 7.8 | 7.0 | 6.6 | 7.0 | 5.8 | 5.0 | 6.2 | 7.5 | 6.2 | 5.0 | 4.0 | 3.1 | 2.4 | 1.8 | 1.3 | · | 1.3 |
| base | 11.2 | 9.5 | 9.3 | 6.8 | 6.0 | 6.8 | 7.6 | 10.2 | 9.2 | 8.7 | 9.1 | 7.6 | 6.6 | 8.2 | 9.9 | 8.2 | 6.6 | 5.3 | 4.1 | 3.2 | 2.4 | 1.8 | 1.3 | · |
Each cell is the WCAG contrast ratio between the row color and the column color (darker cell = higher ratio). ≥4.5 passes AA for normal text, ≥7 passes AAA.
Terminal
user@host:~/dev/scheme$ ls -la -rw-r--r-- 8.9K user main.go -rw-r--r-- 5.8K user preview.go -rwxr-xr-x 9.9M user colorexplorer drwxr-xr-x 4096 user cache/ lrwxrwxrwx 11 user site -> public -rw-r--r-- 2400 user bundle.zip user@host:~/dev/scheme$ git diff --stat diff --git a/main.go b/main.go --- a/main.go +++ b/main.go @@ -12,7 +12,8 @@ - addr := ":8080" + addr := ":9090"