Skip to content

Theme Token Reference

Quick reference for all SilkCircuit theme tokens.

What Are Theme Tokens?

Theme tokens are semantic color names that adapt to different theme variants. Instead of hardcoding colors, Git-Iris uses tokens like accent.primary that map to colors in the active theme.

Available Themes

Git-Iris ships 39 builtin themes through opaline, the underlying theme engine. Run git-iris themes for the full list with descriptions. Themes are grouped by family:

FamilyVariantsNotes
SilkCircuitsilkcircuit-neon (default), silkcircuit-soft, silkcircuit-vibrant, silkcircuit-glow, silkcircuit-dawn (light)Native Git-Iris design language
Draculadracula
Nordnord
Tokyo Nighttokyo-night, tokyo-night-moon, tokyo-night-storm
Catppuccincatppuccin-mocha, catppuccin-macchiato, catppuccin-frappe, catppuccin-latte (light)
Gruvboxgruvbox-dark, gruvbox-light
Ayuayu-dark, ayu-mirage, ayu-light
Rosé Pinerose-pine, rose-pine-moon, rose-pine-dawn (light)
Kanagawakanagawa-wave, kanagawa-dragon, kanagawa-lotus (light)
Everforesteverforest-dark, everforest-light
Flexokiflexoki-dark, flexoki-light
GitHubgithub-dark-dimmed, github-light
Solarizedsolarized-dark, solarized-light
Night/Light Owlnight-owl, light-owl
Other classicsmonokai-pro, one-dark, one-light, palenight

Using Themes

There is no git-iris config --theme flag. Set the theme in your config file, or pass the global --theme flag on any invocation.

bash
# List every available theme
git-iris themes

# Override for a single invocation (works on any subcommand)
git-iris studio --theme silkcircuit-glow
git-iris gen --theme silkcircuit-dawn --print

# Make it your default by editing ~/.config/git-iris/config.toml:
#
#   theme = "silkcircuit-glow"

Token Categories

Text Tokens

TokenPurposeDefault (Neon)
text.primaryPrimary text#f8f8f2
text.secondarySecondary text#bcbcca
text.mutedDe-emphasized text#82879f
text.dimVery subtle text#6e7daf

Background Tokens

TokenPurposeDefault (Neon)
bg.baseMain background#121218
bg.panelPanel background#181820
bg.codeCode block background#1e1e28
bg.highlightHighlighted areas#37324b
bg.elevatedRaised surfaces#37324b
bg.activeActive/focused state#3c2d55
bg.selectionSelected items#3c3c50

Accent Tokens

TokenPurposeDefault (Neon)
accent.primaryPrimary brand color#e135ff (Electric Purple)
accent.secondarySecondary brand color#80ffea (Neon Cyan)
accent.tertiaryTertiary brand color#ff6ac1 (Coral)
accent.deepDeep accent#bd93f9 (Purple 400)

Semantic Tokens

TokenPurposeDefault (Neon)
successSuccess states#50fa7b (Green)
errorError states#ff6363 (Red)
warningWarning states#f1fa8c (Yellow)
infoInformation#80ffea (Cyan)

Git Status Tokens

TokenPurposeDefault (Neon)
git.stagedStaged files#50fa7b (Green)
git.modifiedModified files#f1fa8c (Yellow)
git.untrackedUntracked files#6e7daf (Gray)
git.deletedDeleted files#ff6363 (Red)

Diff Tokens

TokenPurposeDefault (Neon)
diff.addedAdded lines#50fa7b (Green)
diff.removedRemoved lines#ff6363 (Red)
diff.hunkHunk headers#80ffea (Cyan)
diff.contextContext lines#6e7daf (Gray)

Border Tokens

TokenPurposeDefault (Neon)
border.focusedFocused panel border#80ffea (Cyan)
border.unfocusedUnfocused panel border#82879f (Gray)

Code Highlighting Tokens

TokenPurposeDefault (Neon)
code.hashCommit hashes#ff6ac1 (Coral)
code.pathFile paths#80ffea (Cyan)
code.keywordKeywords#e135ff (Purple)
code.functionFunction names#80ffea (Cyan)
code.stringString literals#ff99ff (Pink)
code.numberNumbers#ff6ac1 (Coral)
code.commentComments#6e7daf (Gray)
code.typeType names#f1fa8c (Yellow)
code.line_numberLine numbers#6e7daf (Gray)

Mode Tokens

TokenPurposeDefault (Neon)
mode.activeActive mode tab#e135ff (Purple)
mode.inactiveInactive mode tabs#6e7daf (Gray)
mode.hoverHovered mode tab#80ffea (Cyan)

Style Tokens

Styles combine colors with modifiers (bold, italic, etc.).

Common Styles

StyleDescription
keywordKeywords (bold, primary accent)
file_pathFile paths (secondary accent)
file_path_boldFile paths (bold)
commit_hashCommit hashes (coral)
line_numberLine numbers (dim)
cursor_lineCurrent line highlight
selectedSelected item
active_selectedActive selected item (bold)
focused_borderFocused panel border
unfocused_borderUnfocused panel border
success_styleSuccess messages
error_styleError messages
warning_styleWarning messages
info_styleInfo messages
dimmedDimmed text
mutedMuted text
inline_codeInline code blocks
mode_activeActive mode tab (bold)
mode_inactiveInactive mode tab
mode_hoverHovered mode tab
git_stagedStaged file
git_modifiedModified file
git_untrackedUntracked file
git_deletedDeleted file
diff_addedAdded diff lines
diff_removedRemoved diff lines
diff_hunkDiff hunk headers
diff_contextDiff context lines
authorAuthor names
timestampTimestamps

Gradient Tokens

Gradients interpolate between colors. Access with gradient(name, t) where t is 0.0-1.0.

GradientColorsPurpose
primaryPurple → CyanBrand gradient
warmCoral → YellowWarm accents
success_gradientGreen → CyanSuccess transitions
error_gradientRed → CoralError transitions
auroraPurple → Pink → Cyan5-stop aurora effect

Color Values by Theme

SilkCircuit Neon (Default)

TokenHexRGB
accent.primary#e135ff225, 53, 255
accent.secondary#80ffea128, 255, 234
accent.tertiary#ff6ac1255, 106, 193
success#50fa7b80, 250, 123
error#ff6363255, 99, 99
warning#f1fa8c241, 250, 140
text.primary#f8f8f2248, 248, 242
bg.base#12121818, 18, 24

SilkCircuit Soft

Muted variant with lower saturation for extended use.

SilkCircuit Glow

Enhanced brightness with glowing accent colors.

SilkCircuit Vibrant

Maximum saturation for high-contrast displays.

SilkCircuit Dawn (Light)

Light variant with warm pastel tones.

Creating Custom Themes

Theme File Structure

toml
[meta]
name = "My Theme"
author = "Your Name"
variant = "dark"  # or "light"

[palette]
purple_500 = "#e135ff"
cyan_400 = "#80ffea"

[tokens]
"text.primary" = "#f8f8f2"
"accent.primary" = "purple_500"  # Reference palette

[styles]
keyword = { fg = "accent.primary", bold = true }

[gradients]
primary = ["purple_500", "cyan_400"]

Theme Location

Place custom themes in:

~/.config/git-iris/themes/mytheme.toml

Then load with the global --theme flag, or set it as your default in ~/.config/git-iris/config.toml:

bash
# One-off
git-iris studio --theme mytheme

# Persistent default — add to ~/.config/git-iris/config.toml
#
#   theme = "mytheme"

Terminal Requirements

True Color Support

Git-Iris uses 24-bit true color (RGB). Ensure your terminal supports it:

bash
# Test true color support
printf "\x1b[38;2;255;100;0mTRUECOLOR\x1b[0m\n"

If you see "TRUECOLOR" in orange, your terminal supports it.

TerminalSupport
iTerm2Full
AlacrittyFull
WezTermFull
KittyFull
Terminal.appFull (macOS 10.15+)
Windows TerminalFull
tmuxFull (with tmux-256color)

Tmux Configuration

Add to ~/.tmux.conf:

bash
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"

Token Usage Examples

In Custom Themes

toml
[tokens]
"accent.primary" = "#e135ff"
"accent.secondary" = "#80ffea"

[styles]
# Use tokens in styles
my_style = { fg = "accent.primary", bg = "bg.panel", bold = true }

Programmatic Access

Themes are accessed internally via the theme API:

rust
use git_iris::theme;

let theme = theme::current();
let color = theme.color("accent.primary");
let style = theme.style("keyword");

Quick Reference Tables

Essential Tokens

Use CaseToken
Headingsaccent.primary
Linksaccent.secondary
Successsuccess
Errorserror
Warningswarning
Added codediff.added
Removed codediff.removed
File pathscode.path
Commit hashescode.hash

Panel-Specific

PanelFocused BorderBackground
Anyborder.focusedbg.panel
Any (unfocused)border.unfocusedbg.panel
Code viewborder.focusedbg.code
Highlighted line-bg.highlight

Released under the Apache 2.0 License.