50 Dark Themes · 35 / 50
Oxide
A warm accent, #C76F55, on a #221D1C terminal. Primary text reads at 13.82:1 and secondary text at 6.61:1, measured against that background. Free and MIT licensed, one of the 50 Dark Themes for Claude Code.
Install Oxide.
Requires Claude Code v2.1.118 or later. The marketplace command is needed once per machine; the plugin command installs the whole 50 Dark Themes pack, and /theme inside Claude Code switches to this one.
claude plugin marketplace add notgabriels-sys/claude-code-50-dark-themesclaude plugin install 50-dark-themes@notgabriels-themes/theme oxidePlugin themes are read-only. Press Ctrl+E on one in /theme for an editable copy in ~/.claude/themes/.
Or copy just this file.
One theme, no plugin: fetch oxide.json from the repository into your themes folder. If that folder did not exist when Claude Code started, restart it once.
mkdir -p ~/.claude/themes && curl -fsSL https://raw.githubusercontent.com/notgabriels-sys/claude-code-50-dark-themes/main/oxide.json -o ~/.claude/themes/oxide.jsonTerminal background: #221D1C.
Claude Code colours its own interface; the terminal application owns the canvas behind it. Every figure below is measured against #221D1C, so set that as the terminal background for the result the numbers describe. On a different background the ratios move.
Palette.
The thirteen overrides Claude Code reads from the theme file. Success, error, warning and diff colours are deliberately not overridden, so status meaning stays the same across every theme in the pack.
| Colour | Token | Role |
|---|---|---|
#C76F55 | claude | Claude's mark and accent |
#D59481 | claudeShimmer | Accent highlight while Claude works |
#EDE9E9 | text | Primary text |
#AFA09D | inactive | Secondary text |
#352D2C | subtle | Decorative hairlines (reserved, carries no meaning) |
#C76F55 | suggestion | Autocomplete suggestions |
#8C7A6E | permission | Permission prompt border and indicator |
#C76F55 | promptBorder | Input prompt border |
#D59481 | promptBorderShimmer | Prompt border highlight |
#8C7A6E | planMode | Plan mode indicator |
#2D2725 | userMessageBackground | Surface behind your messages |
#38312E | userMessageBackgroundHover | That surface, hovered |
#C76F55 | rate_limit_fill | Usage meter fill |
Measured contrast.
Computed from the hex values above with the WCAG 2 relative-luminance formula, by the same script that gates every change to this repository. Figures are truncated, never rounded up. Each row meets its floor.
| Pair | Colours | Ratio | Floor | Standard |
|---|---|---|---|---|
| text on terminal background | #EDE9E9 on #221D1C | 13.82:1 | 7:1 | WCAG AAA, normal text |
| text on your-message surface | #EDE9E9 on #2D2725 | 12.20:1 | 7:1 | WCAG AAA, normal text |
| inactive on terminal background | #AFA09D on #221D1C | 6.61:1 | 4.5:1 | WCAG AA, normal text |
| inactive on your-message surface | #AFA09D on #2D2725 | 5.83:1 | 4.5:1 | WCAG AA, normal text |
| claude on terminal background | #C76F55 on #221D1C | 4.62:1 | 4.5:1 | WCAG AA, normal text |
| claudeShimmer on terminal background | #D59481 on #221D1C | 6.64:1 | 4.5:1 | WCAG AA, normal text |
| suggestion on terminal background | #C76F55 on #221D1C | 4.62:1 | 4.5:1 | WCAG AA, normal text |
| permission on terminal background | #8C7A6E on #221D1C | 4.06:1 | 3:1 | WCAG AA, non-text |
| planMode on terminal background | #8C7A6E on #221D1C | 4.06:1 | 3:1 | WCAG AA, non-text |
| promptBorder on terminal background | #C76F55 on #221D1C | 4.62:1 | 3:1 | WCAG AA, non-text |
| promptBorderShimmer on terminal background | #D59481 on #221D1C | 6.64:1 | 3:1 | WCAG AA, non-text |
| rate_limit_fill on terminal background | #C76F55 on #221D1C | 4.62:1 | 3:1 | WCAG AA, non-text |
| your-message surface against the terminal | #2D2725 on #221D1C | 1.13:1 | 1.08:1 | visibly distinct surface |
| hovered surface against the resting one | #38312E on #2D2725 | 1.15:1 | 1.08:1 | visibly distinct surface |