diff --git a/pygittools/tui/git_colors.py b/pygittools/tui/git_colors.py
index 1f054e7..aff3cef 100644
--- a/pygittools/tui/git_colors.py
+++ b/pygittools/tui/git_colors.py
@@ -45,6 +45,7 @@ _PAIR_SECTION_HEADER = 8
 _PAIR_LOG_HASH = 9
 _PAIR_LOG_DATE = 10
 _PAIR_LOG_SUBJECT = 11
+_PAIR_COMMIT = 12
 
 _NAMED_RGB: dict[str, tuple[int, int, int]] = {
 	"normal": (204, 204, 204),
@@ -71,23 +72,23 @@ _BRIGHT_NAMED_RGB: dict[str, tuple[int, int, int]] = {
 
 _CURSES_RGB: tuple[tuple[int, int, int], ...] = (
 	(0, 0, 0),
-	(128, 0, 0),
-	(0, 128, 0),
-	(128, 128, 0),
-	(0, 0, 128),
-	(128, 0, 128),
-	(0, 128, 128),
-	(192, 192, 192),
+	(205, 0, 0),
+	(0, 205, 0),
+	(205, 205, 0),
+	(0, 0, 238),
+	(205, 0, 205),
+	(0, 205, 205),
+	(229, 229, 229),
 )
 
 _DEFAULT_SPECS: dict[str, str] = {
 	"color.status.added": "green",
 	"color.status.changed": "red",
 	"color.status.untracked": "red",
-	"color.status.header": "normal",
+	"color.status.header": "cyan",
 	"color.status.branch": "cyan",
 	"color.status.nobranch": "red bold",
-	"color.branch.current": "green bold",
+	"color.branch.current": "cyan",
 	"color.branch.local": "cyan",
 	"color.diff.new": "green",
 	"color.diff.old": "red",
@@ -207,8 +208,9 @@ def init_tui_color_theme(repo: Repository | None) -> TuiColorTheme:
 			palette,
 			slots,
 			_PAIR_TAB_ACTIVE,
-			fallback_fg=COLOR_BLACK,
-			fallback_bg=COLOR_YELLOW,
+			fallback_fg=39,
+			fallback_bg=8,
+			ignore_spec_background=True,
 		),
 		tab_inactive=0,
 		focus=A_REVERSE,
@@ -248,7 +250,13 @@ def init_tui_color_theme(repo: Repository | None) -> TuiColorTheme:
 			_PAIR_BRANCH,
 			fallback_fg=COLOR_CYAN,
 		),
-		commit=header_attr,
+		commit=_build_pair_attr(
+			specs.get("color.diff.new", _DEFAULT_SPECS["color.diff.new"]),
+			palette,
+			slots,
+			_PAIR_COMMIT,
+			fallback_fg=COLOR_GREEN,
+		),
 		log_hash=_build_pair_attr(
 			specs.get("color.decorate.commit", _DEFAULT_SPECS["color.decorate.commit"]),
 			palette,
@@ -414,6 +422,20 @@ class _ColorSlotAllocator:
 		return _nearest_curses_index(rgb)
 
 
+def _nearest_palette_index(
+	rgb: tuple[int, int, int],
+	palette: tuple[tuple[int, int, int], ...],
+) -> int:
+	best_index = 0
+	best_distance = math.inf
+	for index, candidate in enumerate(palette):
+		distance = _rgb_distance(rgb, candidate)
+		if distance < best_distance:
+			best_distance = distance
+			best_index = index
+	return best_index
+
+
 def _build_pair_attr(
 	spec: str,
 	palette: tuple[tuple[int, int, int], ...],
@@ -424,13 +446,27 @@ def _build_pair_attr(
 	fallback_bg: int = COLOR_BLACK,
 	background_rgb: tuple[int, int, int] | None = None,
 	extra_attr: int = 0,
+	ignore_spec_background: bool = False,
 ) -> int:
 	parsed = parse_git_color_spec(spec)
 	fg_rgb = parsed.foreground
-	bg_rgb = parsed.background or background_rgb
-	fg = fallback_fg if fg_rgb is None else slots.slot_for(fg_rgb)
-	bg = fallback_bg if bg_rgb is None else slots.slot_for(bg_rgb)
-	init_pair(pair_id, fg, bg)
+	bg_rgb = (None if ignore_spec_background else parsed.background) or background_rgb
+
+	def index_for(
+		value: tuple[int, int, int] | None,
+		fallback: int,
+	) -> int:
+		if value is None:
+			return fallback
+		for idx, candidate in enumerate(palette):
+			if candidate == value:
+				return idx
+		return _nearest_palette_index(value, palette)
+
+	fg_index = index_for(fg_rgb, fallback_fg)
+	bg_index = index_for(bg_rgb, fallback_bg)
+
+	init_pair(pair_id, fg_index, bg_index)
 	attr = COLOR_PAIR(pair_id)
 	if parsed.bold:
 		attr |= A_BOLD
