diff --git a/CHANGELOG.md b/CHANGELOG.md
index cbec6971..f1e6d803 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -38,7 +38,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 - [#253](https://github.com/ClementTsang/bottom/pull/253): Fix highlighted entries being stuck in another colour when the widget is not selected.
 
-- [#253](https://github.com/ClementTsang/bottom/pull/253): Expanding a widget no longer overrides the widget title colour.
+- [#253](https://github.com/ClementTsang/bottom/pull/253), [#266](https://github.com/ClementTsang/bottom/pull/266): Expanding a widget no longer overrides the widget/dialog title colour.
 
 - [#261](https://github.com/ClementTsang/bottom/pull/261): Fixed process names occasionally showing up as truncated, due to only using `/proc/<PID>/stat` as our data source.
 
diff --git a/src/canvas/dialogs/dd_dialog.rs b/src/canvas/dialogs/dd_dialog.rs
index 50dbc7ef..5069f309 100644
--- a/src/canvas/dialogs/dd_dialog.rs
+++ b/src/canvas/dialogs/dd_dialog.rs
@@ -63,26 +63,33 @@ impl KillDialog for Painter {
     ) -> bool {
         if let Some(dd_text) = dd_text {
             let dd_title = if app_state.dd_err.is_some() {
-                Span::styled(
-                    format!(
-                        " Error ─{}─ Esc to close ",
-                        "─".repeat(
-                            usize::from(draw_loc.width)
-                                .saturating_sub(DD_ERROR_BASE.chars().count() + 2)
-                        )
+                Spans::from(vec![
+                    Span::styled(" Error ", self.colours.widget_title_style),
+                    Span::styled(
+                        format!(
+                            "─{}─ Esc to close ",
+                            "─".repeat(
+                                usize::from(draw_loc.width)
+                                    .saturating_sub(DD_ERROR_BASE.chars().count() + 2)
+                            )
+                        ),
+                        self.colours.border_style,
                     ),
-                    self.colours.border_style,
-                )
+                ])
             } else {
-                Span::styled(
-                    format!(
-                        " Confirm Kill Process ─{}─ Esc to close ",
-                        "─".repeat(
-                            usize::from(draw_loc.width).saturating_sub(DD_BASE.chars().count() + 2)
-                        )
+                Spans::from(vec![
+                    Span::styled(" Confirm Kill Process ", self.colours.widget_title_style),
+                    Span::styled(
+                        format!(
+                            "─{}─ Esc to close ",
+                            "─".repeat(
+                                usize::from(draw_loc.width)
+                                    .saturating_sub(DD_BASE.chars().count() + 2)
+                            )
+                        ),
+                        self.colours.border_style,
                     ),
-                    self.colours.border_style,
-                )
+                ])
             };
 
             f.render_widget(
diff --git a/src/canvas/dialogs/help_dialog.rs b/src/canvas/dialogs/help_dialog.rs
index 752dc858..b3c9f579 100644
--- a/src/canvas/dialogs/help_dialog.rs
+++ b/src/canvas/dialogs/help_dialog.rs
@@ -6,6 +6,7 @@ use tui::{
     layout::{Alignment, Rect},
     terminal::Frame,
     text::Span,
+    text::Spans,
     widgets::{Block, Borders, Paragraph, Wrap},
 };
 
@@ -22,15 +23,18 @@ impl HelpDialog for Painter {
     fn draw_help_dialog<B: Backend>(
         &self, f: &mut Frame<'_, B>, app_state: &mut App, draw_loc: Rect,
     ) {
-        let help_title = Span::styled(
-            format!(
-                " Help ─{}─ Esc to close ",
-                "─".repeat(
-                    usize::from(draw_loc.width).saturating_sub(HELP_BASE.chars().count() + 2)
-                )
+        let help_title = Spans::from(vec![
+            Span::styled(" Help ", self.colours.widget_title_style),
+            Span::styled(
+                format!(
+                    "─{}─ Esc to close ",
+                    "─".repeat(
+                        usize::from(draw_loc.width).saturating_sub(HELP_BASE.chars().count() + 2)
+                    )
+                ),
+                self.colours.border_style,
             ),
-            self.colours.border_style,
-        );
+        ]);
 
         if app_state.should_get_widget_bounds() {
             // We must also recalculate how many lines are wrapping to properly get scrolling to work on