Criando Word Art com FIGlet - Série Spectre Console
Spectre Console é uma biblioteca .NET projetada para aprimorar aplicativos de console com texto formatado, painéis, tabelas, barras de progresso e até mesmo arte em ASCII. Em vez de ficar limitado a uma saída em preto e branco, você pode adicionar cor, alinhamento e estrutura visual aos dados exibidos. Uma de suas características mais chamativas é o Spectre Console Figlet, que permite renderizar banners de texto grandes usando o formato de fonte Figlet clássico.
Neste artigo, vamos analisar mais detalhadamente esse recurso por meio do vídeo de Tim Corey sobre " Criando Word Art com Figlet - Série Spectre Console ".
Apresentando Figlet no console Spectre
Aos 0:00, Tim lembra aos espectadores que "o Spectre Console permite transformar seus aplicativos de console C# em aplicativos visualmente atraentes e informativos". Ele descreve a biblioteca como uma maneira de criar ferramentas de linha de comando completas com painéis, tabelas, indicadores de progresso e outros serviços, em vez de escrever manualmente códigos ANSI.
Aos 0:16, ele diz: "Nesta lição, vamos criar arte com palavras em ASCII usando um sistema chamado Figlet." O Figlet existe há décadas como uma forma de renderizar texto em arte ASCII no estilo de banners usando um arquivo de fonte Figlet (geralmente com a extensão .flf). O Spectre Console vem com uma fonte Figlet integrada por padrão, mas também pode carregar outras. A biblioteca encapsula essa funcionalidade em uma classe chamada FigletText (às vezes referida como o objeto Spectre Figlet Text), que você pode criar como uma nova instância e, em seguida, estilizar.
Tim observa aos 0:22 que o código-fonte deste exemplo está disponível na descrição do vídeo para que os espectadores possam baixá-lo e acompanhar.
Primeiro exemplo: Texto Figlet do console Spectre embutido
Aos 0:38, Tim começa com o que ele chama de "o jeito fácil de fazer em linha". É aqui que você cria e renderiza o objeto de texto Figlet do Console Spectre em uma única instrução:
AnsiConsole.Write(
new FigletText("Hello")
.Centered()
.Color(Color.Red)
);
AnsiConsole.Write(
new FigletText("Hello")
.Centered()
.Color(Color.Red)
);
Aos 0:46, Tim explica que está criando uma nova instância de FigletText com o parâmetro de string "Olá". Este parâmetro é o texto a ser renderizado.
Aos 0:53, ele encadeia métodos de estilização diretamente no objeto. Primeiro, use .Centered() às 1:00 para justificar e alinhar o banner ASCII no centro das colunas disponíveis. Em seguida, use .Color(Color.Red) em 1:02 para aplicar uma cor específica — neste caso, vermelho como cor de destaque.
Quando Tim executa esse código às 1:12, o console exibe um "HELLO" em ASCII vermelho e em negrito, no formato de fonte padrão do Figlet. É uma maneira rápida de adicionar um título ou cabeçalho grande ao seu aplicativo de console.

Segundo exemplo: Reutilizando um objeto FigletText
Em 1:22, Tim mostra um segundo padrão: em vez de criar o texto Figlet diretamente no código, você cria uma variável primeiro. Isso facilita definir ou armazenar propriedades, alterar estilos ou reutilizar o mesmo objeto.
var figlet = new FigletText("World");
figlet.Centered();
figlet.Color(Color.Red);
AnsiConsole.Write(figlet);
var figlet = new FigletText("World");
figlet.Centered();
figlet.Color(Color.Red);
AnsiConsole.Write(figlet);
À 1:28, Tim cria a nova instância com a string "World". Às 1:41 ele chama .Centered() para centralizá-lo. À 1:44, ele define a cor novamente — ele brinca "vamos usar vermelho porque sim?" — e à 1:59 ele escreve o objeto no console com AnsiConsole.Write(figlet);.
Ao ser executado às 2:04, isso exibe "WORLD" abaixo do "HELLO" anterior em um grande desenho ASCII. Isso mostra que a função escreve dois blocos separados porque você chamou a função Write duas vezes.
Entendendo como o Write funciona com o Figlet
Tim faz uma pausa em 2:10 para dar um detalhe importante sobre como o Spectre Console renderiza o texto do Figlet. Normalmente, AnsiConsole.Write não adiciona uma nova linha como WriteLine faz. Mas com certos objetos renderizáveis — como FigletText ou um Panel — o Spectre Console encerra automaticamente o bloco com uma nova linha para que seja exibido corretamente.
Ele explica aos 2:20 que o comprimento da string também pode causar quebras de linha, dependendo da largura da janela do console ou do arquivo de fonte, mas isso é um problema separado do comportamento da quebra de linha. Este contexto é útil para usuários que criam sistemas de comandos ou scripts que escrevem vários cabeçalhos, tabelas ou barras de progresso: não se pode confiar que o método Write se comporte exatamente da mesma forma que se comporta com strings simples.
Opções de estilo: cores e muito mais
Aos 2:53, Tim destaca que você não está limitado ao vermelho como uma cor específica. Você pode usar verde, branco, amarelo ou qualquer uma das cores suportadas pela biblioteca:
figlet.Color(Color.Yellow);
figlet.Color(Color.Yellow);
Ele observa aos 3:00 que você também pode "fazer piscar" e aplicar outros estilos, embora ele não aborde todas as opções nesta breve lição. A principal conclusão é que o objeto FigletText expõe propriedades públicas (como Color) que você pode definir ou alterar em tempo de execução.

Isso demonstra como é fácil escolher diferentes sequências de caracteres e cores para criar cabeçalhos, avisos ou títulos de seção de dados personalizados dentro do seu aplicativo de console.
Fontes e arquivos Figlet
Embora Tim mantenha este exemplo simples, o sistema subjacente usa um formato de fonte figlet (arquivos .flf) para renderizar cada caractere. O Spectre Console inclui um valor padrão para a fonte (chamado "Standard"), mas você pode direcionar o construtor FigletText para um arquivo de fonte figlet diferente para alterar completamente a aparência da sua arte ASCII.
Isso possibilita abrir um caminho para uma fonte personalizada, adicioná-la ao seu projeto e retornar um estilo de banner completamente diferente. Isso não é mostrado no vídeo curto do Tim, mas faz parte da mesma API que ele está demonstrando.
Usos práticos em aplicações de console
Tim conclui em 3:12 lembrando aos espectadores que o Figlet pode ser usado para criar cabeçalhos interessantes para seu aplicativo. Em conjunto com outros recursos do Spectre Console — como tabelas para exibir dados de banco de dados, barras de progresso para tarefas de longa duração e painéis para agrupar informações — o FigletText pode ajudá-lo a criar um sistema de comandos com um acabamento impecável.
Por exemplo, você pode usar o texto Figlet para:
-
Exibir um título grande ou número de versão no início de uma ferramenta ou script.
-
Exibir os cabeçalhos das seções acima das tabelas de dados recuperados.
-
Forneça uma cor de destaque para ressaltar uma mensagem de aviso ou de sucesso.
- Separe diferentes ações em um prompt ou serviço com várias etapas.
Como o FigletText é um objeto renderizável, você pode armazená-lo em uma variável, definir ou alterar suas propriedades (cor, alinhamento, texto) e, em seguida, escrevê-lo várias vezes.
Concluindo
A lição pode ser rápida, mas mostra exatamente como usar o suporte Figlet do Spectre Console para adicionar estilo instantâneo à saída do console.
Se você quiser mais detalhes, Tim recomenda visitar o link para o código-fonte e a documentação do Spectre Console. Lá você também pode baixar fontes adicionais do Figlet, caso queira experimentar estilos diferentes.
Pontos principais do vídeo de Tim Corey
- O Spectre Console Figlet permite renderizar banners ASCII usando um objeto FigletText.
Você pode criá-lo diretamente no código ou como uma nova instância, definir suas propriedades e, em seguida, escrevê-lo.
-
Por padrão, utiliza uma fonte Figlet integrada, mas pode carregar arquivos de fonte .flf personalizados.
-
.Centered() e .Color(Color.Red) são exemplos de estilos que você pode aplicar.
-
AnsiConsole.Write adiciona automaticamente uma nova linha para o texto Figlet.
- Este recurso é perfeito para cabeçalhos, títulos ou quebras de seção em aplicativos de console.
Seguindo as instruções do vídeo de Tim Corey, você pode começar imediatamente a usar o suporte do Figlet no Spectre Console para aprimorar suas próprias ferramentas de linha de comando. Seja para exibir dados recuperados, escrever prompts ou simplesmente adicionar estilo a um script, o FigletText dá ao seu console um toque arrojado e colorido com o mínimo de código.
