diff --git a/examples/Console/Charts/Program.cs b/examples/Console/Charts/Program.cs
index b107f6b..5aadfa8 100644
--- a/examples/Console/Charts/Program.cs
+++ b/examples/Console/Charts/Program.cs
@@ -23,6 +23,7 @@ public static class Program
.FullSize()
.Width(60)
.ShowPercentage()
+ .WithValueColor(Color.Orange1)
.AddItem("SCSS", 37, Color.Red)
.AddItem("HTML", 28.3, Color.Blue)
.AddItem("C#", 22.6, Color.Green)
diff --git a/src/Spectre.Console/Extensions/BreakdownChartExtensions.cs b/src/Spectre.Console/Extensions/BreakdownChartExtensions.cs
index 5ace7a9..ed3610f 100644
--- a/src/Spectre.Console/Extensions/BreakdownChartExtensions.cs
+++ b/src/Spectre.Console/Extensions/BreakdownChartExtensions.cs
@@ -297,4 +297,21 @@ public static class BreakdownChartExtensions
chart.Compact = compact;
return chart;
}
+
+ ///
+ /// Sets the .
+ ///
+ /// The breakdown chart.
+ /// The to set.
+ /// The same instance so that multiple calls can be chained.
+ public static BreakdownChart WithValueColor(this BreakdownChart chart, Color color)
+ {
+ if (chart is null)
+ {
+ throw new ArgumentNullException(nameof(chart));
+ }
+
+ chart.ValueColor = color;
+ return chart;
+ }
}
\ No newline at end of file
diff --git a/src/Spectre.Console/Widgets/Charts/BreakdownChart.cs b/src/Spectre.Console/Widgets/Charts/BreakdownChart.cs
index 85067c9..7ed9ce8 100644
--- a/src/Spectre.Console/Widgets/Charts/BreakdownChart.cs
+++ b/src/Spectre.Console/Widgets/Charts/BreakdownChart.cs
@@ -30,6 +30,11 @@ public sealed class BreakdownChart : Renderable, IHasCulture, IExpandable
///
public Func? ValueFormatter { get; set; }
+ ///
+ /// Gets or sets the Color in which the values will be shown.
+ ///
+ public Color ValueColor { get; set; } = Color.Grey;
+
///
/// Gets or sets a value indicating whether or not the
/// chart and tags should be rendered in compact mode.
@@ -94,6 +99,7 @@ public sealed class BreakdownChart : Renderable, IHasCulture, IExpandable
Culture = Culture,
ShowTagValues = ShowTagValues,
ValueFormatter = ValueFormatter,
+ ValueColor = ValueColor,
});
}
diff --git a/src/Spectre.Console/Widgets/Charts/BreakdownTags.cs b/src/Spectre.Console/Widgets/Charts/BreakdownTags.cs
index a747345..67a4909 100644
--- a/src/Spectre.Console/Widgets/Charts/BreakdownTags.cs
+++ b/src/Spectre.Console/Widgets/Charts/BreakdownTags.cs
@@ -8,6 +8,7 @@ internal sealed class BreakdownTags : Renderable
public CultureInfo? Culture { get; set; }
public bool ShowTagValues { get; set; } = true;
public Func? ValueFormatter { get; set; }
+ public Color ValueColor { get; set; } = Color.Grey;
public BreakdownTags(List data)
{
@@ -55,8 +56,9 @@ internal sealed class BreakdownTags : Renderable
if (ShowTagValues)
{
- return string.Format(culture, "{0} [grey]{1}[/]",
+ return string.Format(culture, "{0} [{1}]{2}[/]",
item.Label.EscapeMarkup(),
+ ValueColor.ToMarkup(),
formatter(item.Value, culture));
}
diff --git a/test/Spectre.Console.Tests/Expectations/Widgets/BreakdownChart/ValueColor.Output.verified.txt b/test/Spectre.Console.Tests/Expectations/Widgets/BreakdownChart/ValueColor.Output.verified.txt
new file mode 100644
index 0000000..5b95b8b
--- /dev/null
+++ b/test/Spectre.Console.Tests/Expectations/Widgets/BreakdownChart/ValueColor.Output.verified.txt
@@ -0,0 +1,3 @@
+[38;5;9m████████████████████████[0m[38;5;12m█████████████████[0m[38;5;2m█████████████[0m[38;5;11m███[0m[38;5;119m███[0m
+[38;5;9mâ– [0m SCSS [38;5;9m37[0m [38;5;12mâ– [0m HTML [38;5;9m28.3[0m [38;5;2mâ– [0m C# [38;5;9m22.6[0m [38;5;11mâ– [0m JavaScript [38;5;9m6[0m
+[38;5;119mâ– [0m Ruby [38;5;9m6[0m [38;5;14mâ– [0m Shell [38;5;9m0.1[0m
diff --git a/test/Spectre.Console.Tests/Unit/Widgets/BreakdownChartTests.cs b/test/Spectre.Console.Tests/Unit/Widgets/BreakdownChartTests.cs
index ab92efb..4fdc7d1 100644
--- a/test/Spectre.Console.Tests/Unit/Widgets/BreakdownChartTests.cs
+++ b/test/Spectre.Console.Tests/Unit/Widgets/BreakdownChartTests.cs
@@ -127,6 +127,21 @@ public sealed class BreakdownChartTests
await Verifier.Verify(console.Output);
}
+ [Fact]
+ [Expectation("ValueColor")]
+ public async Task Should_Render_Correct_ValueColor()
+ {
+ // Given
+ var console = new TestConsole().EmitAnsiSequences();
+ var chart = Fixture.GetChart().Width(60).WithValueColor(Color.Red);
+
+ // When
+ console.Write(chart);
+
+ // Then
+ await Verifier.Verify(console.Output);
+ }
+
public static class Fixture
{
public static BreakdownChart GetChart()