Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
3m 47s
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 ".
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.
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.

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);Dim 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.
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.
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.
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.
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.
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.
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.
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy