Contrast report
Every theme role measured against its contrast target on the raised surface, in light, dark and Darker.
Each role is measured with the WCAG 2 ratio against the raised surface, the lowest-contrast surface text sits on. mise run check fails when a core theme misses a target; ✗ marks a miss.
Base
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | 11.00 | 11.07 | 12.45 |
| text-primary | 9 | 9.02 | 9.00 | 10.12 |
| text-secondary | 4.6 | 4.61 | 4.61 | 5.19 |
| accent | 5 | 16.21 | 12.52 | 14.08 |
| Status: info | 4.8 | 4.81 | 5.43 | 6.10 |
| Status: success | 4.8 | 4.81 | 5.41 | 6.08 |
| Status: important | 4.8 | 4.80 | 5.41 | 6.08 |
| Status: warning | 4.8 | 4.80 | 5.39 | 6.06 |
| Status: danger | 4.8 | 4.82 | 5.44 | 6.12 |
| on-accent | 4.5 | 16.49 | 16.03 | 16.03 |
Glazing
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | 11.03 | 11.01 | 12.38 |
| text-primary | 9 | 9.01 | 9.01 | 10.13 |
| text-secondary | 4.6 | 4.65 | 4.64 | 5.22 |
| accent | 5 | 5.01 | 5.62 | 6.32 |
| Status: info | 4.8 | 4.82 | 5.43 | 6.11 |
| Status: success | 4.8 | 4.82 | 5.41 | 6.09 |
| Status: important | 4.8 | 4.81 | 5.41 | 6.09 |
| Status: warning | 4.8 | 4.81 | 5.40 | 6.07 |
| Status: danger | 4.8 | 4.80 | 5.45 | 6.13 |
| on-accent | 4.5 | 5.09 | 7.18 | 7.18 |
Survey
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | 11.00 | 11.06 | 12.43 |
| text-primary | 9 | 9.01 | 9.05 | 10.18 |
| text-secondary | 4.6 | 4.60 | 4.61 | 5.18 |
| accent | 5 | 5.02 | 5.58 | 6.27 |
| Status: info | 4.8 | 4.82 | 5.42 | 6.09 |
| Status: success | 4.8 | 4.82 | 5.40 | 6.07 |
| Status: important | 4.8 | 4.81 | 5.40 | 6.07 |
| Status: warning | 4.8 | 4.81 | 5.38 | 6.05 |
| Status: danger | 4.8 | 4.80 | 5.43 | 6.11 |
| on-accent | 4.5 | 5.10 | 7.15 | 7.15 |
Slate
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | 11.01 | 11.05 | 12.44 |
| text-primary | 9 | 9.09 | 9.04 | 10.18 |
| text-secondary | 4.6 | 4.64 | 4.61 | 5.19 |
| accent | 5 | 5.02 | 5.62 | 6.33 |
| Status: info | 4.8 | 4.81 | 5.45 | 6.14 |
| Status: success | 4.8 | 4.81 | 5.43 | 6.12 |
| Status: important | 4.8 | 4.82 | 5.43 | 6.11 |
| Status: warning | 4.8 | 4.84 | 5.42 | 6.10 |
| Status: danger | 4.8 | 4.82 | 5.47 | 6.15 |
| on-accent | 4.5 | 5.11 | 7.16 | 7.16 |
Bridge
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | 11.00 | 11.02 | 12.40 |
| text-primary | 9 | 9.02 | 9.03 | 10.16 |
| text-secondary | 4.6 | 4.61 | 4.61 | 5.19 |
| accent | 5 | 5.01 | 5.58 | 6.28 |
| Status: info | 4.8 | 4.82 | 5.39 | 6.06 |
| Status: success | 4.8 | 4.82 | 5.37 | 6.05 |
| Status: important | 4.8 | 4.81 | 5.37 | 6.04 |
| Status: warning | 4.8 | 4.81 | 5.36 | 6.03 |
| Status: danger | 4.8 | 4.80 | 5.41 | 6.08 |
| on-accent | 4.5 | 5.08 | 7.20 | 7.20 |
Snag
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | 11.01 | 11.04 | 12.41 |
| text-primary | 9 | 9.03 | 9.04 | 10.17 |
| text-secondary | 4.6 | 4.61 | 4.60 | 5.18 |
| accent | 5 | 5.01 | 5.53 | 6.22 |
| Status: info | 4.8 | 4.82 | 5.40 | 6.07 |
| Status: success | 4.8 | 4.82 | 5.38 | 6.05 |
| Status: important | 4.8 | 4.81 | 5.38 | 6.05 |
| Status: warning | 4.8 | 4.81 | 5.37 | 6.04 |
| Status: danger | 4.8 | 4.80 | 5.42 | 6.09 |
| on-accent | 4.5 | 5.10 | 7.11 | 7.11 |
Catppuccin Frappé
Optional. Mapped from its own palette, so it’s reported rather than held to the targets.
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | n/a | 6.19 ✗ | 7.45 ✗ |
| text-primary | 9 | n/a | 6.19 ✗ | 7.45 ✗ |
| text-secondary | 4.6 | n/a | 4.26 ✗ | 5.14 |
| accent | 5 | n/a | 4.30 ✗ | 5.18 |
| Status: info | 4.8 | n/a | 4.10 ✗ | 4.94 |
| Status: success | 4.8 | n/a | 5.45 | 6.56 |
| Status: important | 4.8 | n/a | 4.30 ✗ | 5.18 |
| Status: warning | 4.8 | n/a | 5.85 | 7.05 |
| Status: danger | 4.8 | n/a | 3.57 ✗ | 4.30 ✗ |
| on-accent | 4.5 | n/a | 8.95 | 8.95 |
Catppuccin Latte
Optional. Mapped from its own palette, so it’s reported rather than held to the targets.
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | 6.57 ✗ | n/a | n/a |
| text-primary | 9 | 6.57 ✗ | n/a | n/a |
| text-secondary | 4.6 | 4.06 ✗ | n/a | n/a |
| accent | 5 | 4.45 ✗ | n/a | n/a |
| Status: info | 4.8 | 4.04 ✗ | n/a | n/a |
| Status: success | 4.8 | 2.75 ✗ | n/a | n/a |
| Status: important | 4.8 | 4.45 ✗ | n/a | n/a |
| Status: warning | 4.8 | 2.15 ✗ | n/a | n/a |
| Status: danger | 4.8 | 4.46 ✗ | n/a | n/a |
| on-accent | 4.5 | 5.41 | n/a | n/a |
Catppuccin Macchiato
Optional. Mapped from its own palette, so it’s reported rather than held to the targets.
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | n/a | 7.55 ✗ | 8.99 ✗ |
| text-primary | 9 | n/a | 7.55 ✗ | 8.99 ✗ |
| text-secondary | 4.6 | n/a | 5.03 | 6.00 |
| accent | 5 | n/a | 5.21 | 6.20 |
| Status: info | 4.8 | n/a | 4.99 | 5.95 |
| Status: success | 4.8 | n/a | 6.98 | 8.31 |
| Status: important | 4.8 | n/a | 5.21 | 6.20 |
| Status: warning | 4.8 | n/a | 7.76 | 9.24 |
| Status: danger | 4.8 | n/a | 4.54 ✗ | 5.40 |
| on-accent | 4.5 | n/a | 9.15 | 9.15 |
Catppuccin Mocha
Optional. Mapped from its own palette, so it’s reported rather than held to the targets.
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | n/a | 8.69 ✗ | 10.16 ✗ |
| text-primary | 9 | n/a | 8.69 ✗ | 10.16 |
| text-secondary | 4.6 | n/a | 5.65 | 6.60 |
| accent | 5 | n/a | 6.19 | 7.23 |
| Status: info | 4.8 | n/a | 5.97 | 6.98 |
| Status: success | 4.8 | n/a | 8.46 | 9.88 |
| Status: important | 4.8 | n/a | 6.19 | 7.23 |
| Status: warning | 4.8 | n/a | 9.89 | 11.56 |
| Status: danger | 4.8 | n/a | 5.43 | 6.34 |
| on-accent | 4.5 | n/a | 9.69 | 9.69 |
Tokyo Night
Optional. Mapped from its own palette, so it’s reported rather than held to the targets.
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | n/a | 8.32 ✗ | 9.64 ✗ |
| text-primary | 9 | n/a | 8.32 ✗ | 9.64 |
| text-secondary | 4.6 | n/a | 6.36 | 7.37 |
| accent | 5 | n/a | 5.33 | 6.18 |
| Status: info | 4.8 | n/a | 5.33 | 6.18 |
| Status: success | 4.8 | n/a | 7.35 | 8.52 |
| Status: important | 4.8 | n/a | 5.81 | 6.73 |
| Status: warning | 4.8 | n/a | 6.72 | 7.79 |
| Status: danger | 4.8 | n/a | 5.08 | 5.88 |
| on-accent | 4.5 | n/a | 7.82 | 7.82 |
Tokyo Night Day
Optional. Mapped from its own palette, so it’s reported rather than held to the targets.
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | 4.83 ✗ | n/a | n/a |
| text-primary | 9 | 4.83 ✗ | n/a | n/a |
| text-secondary | 4.6 | 3.82 ✗ | n/a | n/a |
| accent | 5 | 3.32 ✗ | n/a | n/a |
| Status: info | 4.8 | 3.32 ✗ | n/a | n/a |
| Status: success | 4.8 | 4.32 ✗ | n/a | n/a |
| Status: important | 4.8 | 3.56 ✗ | n/a | n/a |
| Status: warning | 4.8 | 4.01 ✗ | n/a | n/a |
| Status: danger | 4.8 | 3.21 ✗ | n/a | n/a |
| on-accent | 4.5 | 4.02 ✗ | n/a | n/a |
Tokyo Night Moon
Optional. Mapped from its own palette, so it’s reported rather than held to the targets.
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | n/a | 8.28 ✗ | 9.69 ✗ |
| text-primary | 9 | n/a | 8.28 ✗ | 9.69 |
| text-secondary | 4.6 | n/a | 3.72 ✗ | 4.35 ✗ |
| accent | 5 | n/a | 5.37 | 6.28 |
| Status: info | 4.8 | n/a | 5.37 | 6.28 |
| Status: success | 4.8 | n/a | 8.96 | 10.48 |
| Status: important | 4.8 | n/a | 5.43 | 6.35 |
| Status: warning | 4.8 | n/a | 8.04 | 9.41 |
| Status: danger | 4.8 | n/a | 4.76 ✗ | 5.57 |
| on-accent | 4.5 | n/a | 8.57 | 8.57 |
Tokyo Night Storm
Optional. Mapped from its own palette, so it’s reported rather than held to the targets.
| Role | Target | Light | Dark | Darker |
|---|---|---|---|---|
| text-strong | 11 | n/a | 8.32 ✗ | 9.64 ✗ |
| text-primary | 9 | n/a | 8.32 ✗ | 9.64 |
| text-secondary | 4.6 | n/a | 6.36 | 7.37 |
| accent | 5 | n/a | 5.33 | 6.18 |
| Status: info | 4.8 | n/a | 5.33 | 6.18 |
| Status: success | 4.8 | n/a | 7.35 | 8.52 |
| Status: important | 4.8 | n/a | 5.81 | 6.73 |
| Status: warning | 4.8 | n/a | 6.72 | 7.79 |
| Status: danger | 4.8 | n/a | 5.08 | 5.88 |
| on-accent | 4.5 | n/a | 7.82 | 7.82 |