diff --git a/examples/Figlet/Figlet.csproj b/examples/Figlet/Figlet.csproj
new file mode 100644
index 0000000..de0a616
--- /dev/null
+++ b/examples/Figlet/Figlet.csproj
@@ -0,0 +1,15 @@
+
+
+
+ Exe
+ net5.0
+ false
+ Figlet
+ Demonstrates how to render FIGlet text.
+
+
+
+
+
+
+
diff --git a/examples/Figlet/Program.cs b/examples/Figlet/Program.cs
new file mode 100644
index 0000000..0310a7b
--- /dev/null
+++ b/examples/Figlet/Program.cs
@@ -0,0 +1,14 @@
+using Spectre.Console;
+
+namespace EmojiExample
+{
+ public static class Program
+ {
+ public static void Main(string[] args)
+ {
+ AnsiConsole.Render(new FigletText("Left aligned").LeftAligned().Color(Color.Red));
+ AnsiConsole.Render(new FigletText("Centered").Centered().Color(Color.Green));
+ AnsiConsole.Render(new FigletText("Right aligned").RightAligned().Color(Color.Blue));
+ }
+ }
+}
diff --git a/src/Spectre.Console.Tests/Data/starwars.flf b/src/Spectre.Console.Tests/Data/starwars.flf
new file mode 100644
index 0000000..6ea55f0
--- /dev/null
+++ b/src/Spectre.Console.Tests/Data/starwars.flf
@@ -0,0 +1,719 @@
+flf2a$ 7 6 22 15 4
+starwars.flf by Ryan Youck (youck@cs.uregina.ca) Dec 25/1994
+I am not responsible for use of this font
+Based on Big.flf by Glenn Chappell
+
+$ $@
+$ $@
+$ $@
+$ $@
+$ $@
+$ $@
+$ $@@
+ __ $@
+| |$@
+| |$@
+| |$@
+|__|$@
+(__)$@
+ $@@
+ _ _ @
+( | )@
+ V V @
+ $ @
+ $ @
+ $ @
+ @@
+ _ _ @
+ _| || |_$@
+|_ __ _|@
+ _| || |_ @
+|_ __ _|@
+ |_||_| $@
+ @@
+ __,--,_.@
+ / |@
+ | (----`@
+ \ \ $@
+.----) | $@
+|_ __/ $@
+ '--' $@@
+ _ ___$ @
+ / \ / /$ @
+( o ) / / $ @
+ \_/ / / _$ @
+ / / / \ @
+ / / ( o )@
+ /__/ \_/ @@
+ @
+ ___ @
+ ( _ ) $@
+ / _ \/\@
+| (_> <@
+ \___/\/@
+ $@@
+ __ @
+(_ )@
+ |/ @
+ $ @
+ $ @
+ $ @
+ @@
+ ___@
+ / /@
+| |$@
+| |$@
+| |$@
+| |$@
+ \__\@@
+___ @
+\ \ @
+ | |@
+ | |@
+ | |@
+ | |@
+/__/ @@
+ _ @
+ /\| |/\ @
+ \ ` ' /$@
+|_ _|@
+ / , . \$@
+ \/|_|\/ @
+ @@
+ @
+ _ @
+ _| |_$@
+|_ _|@
+ |_| $@
+ $ @
+ @@
+ @
+ @
+ $ @
+ $ @
+ __ @
+(_ )@
+ |/ @@
+ @
+ @
+ ______ @
+|______|@
+ $ @
+ $ @
+ @@
+ @
+ @
+ @
+ $ @
+ __ @
+(__)@
+ @@
+ ___@
+ / /@
+ / / @
+ / /$ @
+ / /$ @
+/__/$ @
+ @@
+ ___ $@
+ / _ \ $@
+| | | |$@
+| | | |$@
+| |_| |$@
+ \___/ $@
+ $@@
+ __ $@
+/_ |$@
+ | |$@
+ | |$@
+ | |$@
+ |_|$@
+ $@@
+ ___ $@
+|__ \ $@
+ $) |$@
+ / / $@
+ / /_ $@
+|____|$@
+ $@@
+ ____ $@
+|___ \ $@
+ __) |$@
+ |__ < $@
+ ___) |$@
+|____/ $@
+ $@@
+ _ _ $@
+| || | $@
+| || |_ $@
+|__ _|$@
+ | | $@
+ |_| $@
+ $@@
+ _____ $@
+| ____|$@
+| |__ $@
+|___ \ $@
+ ___) |$@
+|____/ $@
+ $@@
+ __ $@
+ / / $@
+ / /_ $@
+| '_ \ $@
+| (_) |$@
+ \___/ $@
+ $@@
+ ______ $@
+|____ |$@
+ $/ / $@
+ / / $@
+ / / $@
+ /_/ $@
+ $@@
+ ___ $@
+ / _ \ $@
+| (_) |$@
+ > _ < $@
+| (_) |$@
+ \___/ $@
+ $@@
+ ___ $@
+ / _ \ $@
+| (_) |$@
+ \__, |$@
+ / / $@
+ /_/ $@
+ $@@
+ @
+ _ @
+(_)@
+ $ @
+ _ @
+(_)@
+ @@
+ @
+ _ @
+(_)@
+ $ @
+ _ @
+( )@
+|/ @@
+ ___@
+ / /@
+ / /$@
+< <$ @
+ \ \$@
+ \__\@
+ @@
+ @
+ ______ @
+|______|@
+ ______ @
+|______|@
+ @
+ @@
+___ @
+\ \$ @
+ \ \ @
+ > >@
+ / / @
+/__/$ @
+ @@
+ ______ $@
+| \ $@
+`----) |$@
+ / / $@
+ |__| $@
+ __ $@
+ (__) $@@
+ ____ @
+ / __ \ @
+ / / _` |@
+| | (_| |@
+ \ \__,_|@
+ \____/ @
+ @@
+ ___ $ @
+ / \ $ @
+ / ^ \$ @
+ / /_\ \$ @
+ / _____ \$ @
+/__/ \__\$@
+ $@@
+.______ $@
+| _ \ $@
+| |_) |$@
+| _ < $@
+| |_) |$@
+|______/ $@
+ $@@
+ ______$@
+ / |@
+| ,----'@
+| | $@
+| `----.@
+ \______|@
+ $@@
+ _______ $@
+| \$@
+| .--. |@
+| | | |@
+| '--' |@
+|_______/$@
+ $@@
+ _______ @
+| ____|@
+| |__ $@
+| __| $@
+| |____ @
+|_______|@
+ @@
+ _______ @
+| ____|@
+| |__ $@
+| __| $@
+| | $ @
+|__| @
+ @@
+ _______ @
+ / _____|@
+| | __ $@
+| | |_ |$@
+| |__| |$@
+ \______|$@
+ $@@
+ __ __ $@
+| | | |$@
+| |__| |$@
+| __ |$@
+| | | |$@
+|__| |__|$@
+ $@@
+ __ $@
+| |$@
+| |$@
+| |$@
+| |$@
+|__|$@
+ $@@
+ __ $@
+ | |$@
+ | |$@
+.--. | |$@
+| `--' |$@
+ \______/ $@
+ $@@
+ __ ___$@
+| |/ /$@
+| ' / $@
+| < $@
+| . \ $@
+|__|\__\$@
+ $@@
+ __ $@
+| | $@
+| | $@
+| | $@
+| `----.@
+|_______|@
+ $@@
+.___ ___.$@
+| \/ |$@
+| \ / |$@
+| |\/| |$@
+| | | |$@
+|__| |__|$@
+ $@@
+.__ __.$@
+| \ | |$@
+| \| |$@
+| . ` |$@
+| |\ |$@
+|__| \__|$@
+ $@@
+ ______ $@
+ / __ \ $@
+| | | |$@
+| | | |$@
+| `--' |$@
+ \______/ $@
+ $@@
+.______ $@
+| _ \ $@
+| |_) |$@
+| ___/ $@
+| | $ @
+| _| $ @
+ $ @@
+ ______ $ @
+ / __ \ $ @
+| | | | $ @
+| | | | $ @
+| `--' '--. @
+ \_____\_____\@
+ $ @@
+.______ $ @
+| _ \ $ @
+| |_) | $ @
+| / $ @
+| |\ \----.@
+| _| `._____|@
+ $@@
+ _______.@
+ / |@
+ | (----`@
+ \ \ $@
+.----) | $@
+|_______/ $@
+ $@@
+.___________.@
+| |@
+`---| |----`@
+ | | $ @
+ | | $ @
+ |__| $ @
+ $ @@
+ __ __ $@
+| | | |$@
+| | | |$@
+| | | |$@
+| `--' |$@
+ \______/ $@
+ $@@
+____ ____$@
+\ \ / /$@
+ \ \/ /$ @
+ \ /$ @
+ \ /$ @
+ \__/$ @
+ $ @@
+____ __ ____$@
+\ \ / \ / /$@
+ \ \/ \/ /$ @
+ \ /$ @
+ \ /\ /$ @
+ \__/ \__/$ @
+ $ @@
+___ ___$@
+\ \ / /$@
+ \ V / $@
+ > < $@
+ / . \ $@
+/__/ \__\$@
+ $@@
+____ ____$@
+\ \ / /$@
+ \ \/ /$ @
+ \_ _/$ @
+ | |$ @
+ |__|$ @
+ $ @@
+ ________ $@
+| / $@
+`---/ / $@
+ / / $@
+ / /----.@
+ /________|@
+ $@@
+ ____ @
+| |@
+| |-`@
+| | $@
+| | $@
+| |-.@
+|____|@@
+___ @
+\ \ $ @
+ \ \$ @
+ \ \$ @
+ \ \$@
+ \__\@
+ @@
+ ____ @
+| |@
+`-| |@
+ | |@
+ | |@
+.-| |@
+|____|@@
+ ___ @
+ / \ @
+/--^--\@
+ $@
+ $@
+ $@
+ $@@
+ @
+ @
+ @
+ $ @
+ $ @
+ ______ @
+|______|@@
+ __ @
+( _)@
+ \| @
+ $ @
+ $ @
+ $ @
+ @@
+ ___ $ @
+ / \ $ @
+ / ^ \$ @
+ / /_\ \$ @
+ / _____ \$ @
+/__/ \__\$@
+ $@@
+.______ $@
+| _ \ $@
+| |_) |$@
+| _ < $@
+| |_) |$@
+|______/ $@
+ $@@
+ ______$@
+ / |@
+| ,----'@
+| | $@
+| `----.@
+ \______|@
+ $@@
+ _______ $@
+| \$@
+| .--. |@
+| | | |@
+| '--' |@
+|_______/$@
+ $@@
+ _______ @
+| ____|@
+| |__ $@
+| __| $@
+| |____ @
+|_______|@
+ @@
+ _______ @
+| ____|@
+| |__ $@
+| __| $@
+| | $ @
+|__| @
+ @@
+ _______ @
+ / _____|@
+| | __ $@
+| | |_ |$@
+| |__| |$@
+ \______|$@
+ $@@
+ __ __ $@
+| | | |$@
+| |__| |$@
+| __ |$@
+| | | |$@
+|__| |__|$@
+ $@@
+ __ $@
+| |$@
+| |$@
+| |$@
+| |$@
+|__|$@
+ $@@
+ __ $@
+ | |$@
+ | |$@
+.--. | |$@
+| `--' |$@
+ \______/ $@
+ $@@
+ __ ___$@
+| |/ /$@
+| ' / $@
+| < $@
+| . \ $@
+|__|\__\$@
+ $@@
+ __ $@
+| | $@
+| | $@
+| | $@
+| `----.@
+|_______|@
+ $@@
+.___ ___.$@
+| \/ |$@
+| \ / |$@
+| |\/| |$@
+| | | |$@
+|__| |__|$@
+ $@@
+.__ __.$@
+| \ | |$@
+| \| |$@
+| . ` |$@
+| |\ |$@
+|__| \__|$@
+ $@@
+ ______ $@
+ / __ \ $@
+| | | |$@
+| | | |$@
+| `--' |$@
+ \______/ $@
+ $@@
+.______ $@
+| _ \ $@
+| |_) |$@
+| ___/ $@
+| | $ @
+| _| $ @
+ $ @@
+ ______ $ @
+ / __ \ $ @
+| | | | $ @
+| | | | $ @
+| `--' '--. @
+ \_____\_____\@
+ $ @@
+.______ $ @
+| _ \ $ @
+| |_) | $ @
+| / $ @
+| |\ \----.@
+| _| `._____|@
+ $@@
+ _______.@
+ / |@
+ | (----`@
+ \ \ $@
+.----) | $@
+|_______/ $@
+ $@@
+.___________.@
+| |@
+`---| |----`@
+ | | $ @
+ | | $ @
+ |__| $ @
+ $ @@
+ __ __ $@
+| | | |$@
+| | | |$@
+| | | |$@
+| `--' |$@
+ \______/ $@
+ $@@
+____ ____$@
+\ \ / /$@
+ \ \/ /$ @
+ \ /$ @
+ \ /$ @
+ \__/$ @
+ $ @@
+____ __ ____$@
+\ \ / \ / /$@
+ \ \/ \/ /$ @
+ \ /$ @
+ \ /\ /$ @
+ \__/ \__/$ @
+ $ @@
+___ ___$@
+\ \ / /$@
+ \ V / $@
+ > < $@
+ / . \ $@
+/__/ \__\$@
+ $@@
+____ ____$@
+\ \ / /$@
+ \ \/ /$ @
+ \_ _/$ @
+ | |$ @
+ |__|$ @
+ $ @@
+ ________ $@
+| / $@
+`---/ / $@
+ / / $@
+ / /----.@
+ /________|@
+ $@@
+ ___@
+ / /@
+ | |$@
+/ /$ @
+\ \$ @
+ | |$@
+ \__\@@
+ __ $@
+| |$@
+| |$@
+| |$@
+| |$@
+| |$@
+|__|$@@
+___ @
+\ \$ @
+ | | @
+ \ \@
+ / /@
+ | | @
+/__/$ @@
+ __ _ @
+ / \/ |@
+|_/\__/ @
+ $ @
+ $ @
+ $ @
+ @@
+ _ _ @
+ (_)_(_) @
+ / \ @
+ / _ \ @
+ / ___ \ @
+/_/ \_\@
+ @@
+ _ _ @
+(_)_(_)@
+ / _ \ @
+| | | |@
+| |_| |@
+ \___/ @
+ @@
+ _ _ @
+(_) (_)@
+| | | |@
+| | | |@
+| |_| |@
+ \___/ @
+ @@
+ _ _ @
+(_) (_)@
+ __ _ @
+ / _` |@
+| (_| |@
+ \__,_|@
+ @@
+ _ _ @
+(_) (_)@
+ ___ @
+ / _ \ @
+| (_) |@
+ \___/ @
+ @@
+ _ _ @
+(_) (_)@
+ _ _ @
+| | | |@
+| |_| |@
+ \__,_|@
+ @@
+ ___ @
+ / _ \ @
+| | ) |@
+| |< < @
+| | ) |@
+| ||_/ @
+|_| @@
diff --git a/src/Spectre.Console.Tests/EmbeddedResourceDataAttribute.cs b/src/Spectre.Console.Tests/EmbeddedResourceDataAttribute.cs
new file mode 100644
index 0000000..4951b87
--- /dev/null
+++ b/src/Spectre.Console.Tests/EmbeddedResourceDataAttribute.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Reflection;
+using Xunit.Sdk;
+
+namespace Spectre.Console.Tests
+{
+ public sealed class EmbeddedResourceDataAttribute : DataAttribute
+ {
+ private readonly string _args;
+
+ public EmbeddedResourceDataAttribute(string args)
+ {
+ _args = args ?? throw new ArgumentNullException(nameof(args));
+ }
+
+ public override IEnumerable