Saltar al pie de página
Iron Academy Logo
Aplicación C#
Aplicación C#

Otras categorías

Colores, estilos y reutilización - Spectre Console Series

Tim Corey
9m 57s

Spectre Console es un potente paquete NuGet for .NET que permite a los desarrolladores transformar aplicaciones de consola simples en experiencias visualmente ricas. Combinando los colores de Spectre Console, las decoraciones de texto y los estilos reutilizables, puede convertir una salida de consola ordinaria en algo informativo y pulido.

En su vídeo "Colors and Styles and Reusability - Spectre Console Series", Tim Corey explica exactamente cómo hacerlo. En este artículo, repasaremos los mismos puntos que Tim, señalando las marcas de tiempo para que puedas seguirlo. Se trata de una excelente forma de entender cómo crear y personalizar colores, una clase de estilo e incluso un nuevo estilo para uso repetido.

Introducción al formato de consola de Spectre

En el minuto 0:00, Tim explica que Spectre Console "te permite convertir tus aplicaciones de consola en aplicaciones visualmente atractivas e informativas" Señala que esta serie divide la biblioteca en pequeños fragmentos para que los desarrolladores puedan centrarse en una función cada vez.

Señala el enlace al código fuente en la descripción e invita a los usuarios a suscribirse a su canal. Esta lección se centra en cómo establecer y devolver texto formateado en la salida de la consola y cómo hacer que esos formatos sean reutilizables en todo el programa.

Uso de Inline Markup y MarkupLine

En 0:36, Tim comienza demostrando AnsiConsole.MarkupLine y AnsiConsole.Markup. Estos métodos le dan la capacidad de incrustar colores y decoraciones directamente en su representación de cadena.

Como explica Tim en el minuto 0:51, Markup no inserta automáticamente una nueva línea, mientras que MarkupLine sí lo hace: "Es algo así como Console.Write frente a WriteLine" Esta diferencia es importante cuando quieres mostrar varios elementos o una lista en líneas separadas.

Escribe [red]This is the inline markup[/] y lo ejecuta para mostrar una cadena roja. A continuación, en el minuto 1:38, muestra los colores de primer plano y de fondo - "Rojo sobre blanco"- para que el usuario pueda ver el texto rojo sobre un fondo blanco. A las 2:05, añade negrita como decoración.

Tim señala en el minuto 2:18 que el marcado en línea es rápido y sencillo para pequeñas acciones, pero "no es realmente bueno para todo lo demás" cuando se desea un estilo más estructurado o reutilizable entre funciones.

Spectre Console Colors Styles Reusability 1 related to Uso de Inline Markup y MarkupLine

Creación de una clase de estilo preestablecida

En el minuto 2:32, Tim muestra cómo crear una nueva instancia de una clase de estilo para reutilizarla. Escribe:

var dangerStyle = new Style(
    foreground: Color.Red,
    background: Color.White,
    decoration: Decoration.Bold);
var dangerStyle = new Style(
    foreground: Color.Red,
    background: Color.White,
    decoration: Decoration.Bold);

Aquí Tim está asignando una variable llamada dangerStyle que contiene un nuevo estilo con primer plano rojo, fondo blanco y decoración en negrita. También señala en el minuto 3:26 que no tienes que rellenar todos los argumentos: puedes elegir solo el primer plano o solo la decoración en función de lo que necesites.

Este enfoque basado en clases le ofrece la posibilidad de actualizar su estilo en un solo lugar y aplicarlo de forma coherente dondequiera que presente texto, en lugar de repetir etiquetas de marcado.

Aplicación de estilos con nuevo marcado

En el minuto 3:48, Tim muestra cómo aplicar ese estilo. Debido a que AnsiConsole.WriteLine no acepta estilos directamente, tiene que utilizar AnsiConsole.Write con un nuevo objeto de marcado:

AnsiConsole.Write(
    new Markup("Danger text from style", dangerStyle));
AnsiConsole.Write(
    new Markup("Danger text from style", dangerStyle));

En el minuto 4:08, explica que WriteLine sólo acepta cadenas o tipos simples, pero Write tiene una sobrecarga que acepta un objeto IRenderable. Por eso se pasa el estilo al nuevo marcado y luego se escribe.

Tim comenta a las 4:45 que esta sintaxis es "un poco más trabajosa", pero es la forma oficial de mostrar texto con estilo. Incluso sugiere que crees tu propio método para simplificarlo si lo haces a menudo.

Spectre Console Colors Styles Reusability 2 related to Aplicación de estilos con nuevo marcado

Manejo de saltos de línea y colocación del cursor

Después de ejecutar el código, Tim señala en el minuto 5:44 que el cursor se sitúa en la misma línea que el texto con estilo. Esto se debe a que Write no añade una nueva línea. En el minuto 6:07, muestra cómo solucionarlo añadiendo \ {} dentro de la cadena, lo que desplaza el cursor hacia abajo.

Este pequeño truco garantiza que el resultado coincida con las expectativas, lo que es importante cuando se crean aplicaciones de consola de mayor tamaño en las que la entrada o los datos del usuario aparecen después de un mensaje con estilo.

Añadir decoraciones múltiples

A continuación, Tim demuestra la combinación de decoraciones. En el minuto 6:27, dice: "¿Y si quieres aplicar más de una decoración? Por ejemplo, también quiero aplicar cursiva" Para ello, utilice un único carácter de tubo para separar las decoraciones.

Muestra que puedes elegir entre una larga lista de decoraciones -negrita, cursiva, tachado, subrayado, atenuado, invertido, parpadeo- e incluso menciona la compatibilidad con Windows PowerShell y Windows Terminal en el minuto 7:05. Por ahora, el parpadeo lento y el parpadeo rápido tienen el mismo aspecto en el Terminal de Windows.

A las 7:29, vuelve a ejecutar el código y muestra el estilo cursiva aplicado además de la negrita. "Puedes mezclarlas y combinarlas como quieras", dice Tim a las 7:49, creando estilos que puedes aplicar repetidamente.

Se trata de una función muy útil cuando se desea resaltar los errores en rojo, los mensajes de éxito en verde, las advertencias en amarillo o las etiquetas personalizadas en azul, morado, orquídea o incluso granate: Spectre Console admite todo el conjunto de colores RGB.

Mezcla de estilos en línea y preestablecidos

En el minuto 8:02, Tim demuestra cómo combinar escrituras y redacciones con diferentes estilos. Puedes llamar a AnsiConsole.Write varias veces-primero con tu texto con estilo, luego con texto sin estilo o con estilo diferente-para resaltar sólo parte de una línea. Muestra:

AnsiConsole.Write(new Markup("Danger text", dangerStyle));
AnsiConsole.WriteLine(" and more");
AnsiConsole.Write(new Markup("Danger text", dangerStyle));
AnsiConsole.WriteLine(" and more");

Como explica Tim en el minuto 8:37, esta es la razón por la que se utiliza Write en lugar de WriteLine: es posible que quieras resaltar solo una parte del texto antes de volver al estilo normal.

Spectre Console Colors Styles Reusability 3 related to Mezcla de estilos en línea y preestablecidos

Esta función le ofrece una forma flexible de crear una salida compuesta -tal vez una tabla de datos, una barra de progreso para un trabajo de larga duración o un panel con varias columnas- y aplicar estilos únicamente a determinados elementos o etiquetas.

Conclusión - Sus opciones

A las 9:01, Tim resume las opciones:

  • Utilice estilos en línea con [color]text[/] y Markup o MarkupLine para un formateo rápido.

  • O cree un nuevo estilo con new Style() y aplíquelo a los objetos Markup cuando llame a AnsiConsole.Write.

Tim anima a los espectadores a "probarlas con diferentes colores y fondos y decoraciones y todo lo demás" en el minuto 9:26. Esto incluye crear nuevas tablas con estilos diferentes. Eso incluye crear nuevas tablas con cabeceras estilizadas, añadir una barra de progreso que se actualiza a medida que procesas archivos o matrices de elementos, o incluso convertir datos JSON en una visualización estilizada.

Termina a las 9:33 dando las gracias a los espectadores y recordándoles que es Tim Corey. Esta serie se basa en la biblioteca Spectre Console creada por Patrik Svensson con contribuciones de desarrolladores como Phil Scott, y los vídeos de Tim ayudan a dominar sus funciones rápidamente.

Conclusión

El vídeo de Tim Corey muestra claramente cómo Spectre Console toma aplicaciones de consola ordinarias y las hace visualmente atractivas. Desde el marcado en línea hasta las clases de estilo totalmente reutilizables, explica paso a paso cómo controlar los colores de primer plano y de fondo, las decoraciones de texto y la colocación del cursor.

Si sigues los ejemplos de Tim en las franjas horarias anteriores, podrás añadir estilos de aspecto profesional a tus propias aplicaciones de consola en un abrir y cerrar de ojos, sin tener que adivinar la sintaxis. Y una vez que sepas cómo asignar variables, añadir decoraciones y renderizar texto con estilo, podrás ampliar fácilmente esas habilidades para construir tablas, paneles, barras de progreso y otras funciones que ofrece Spectre Console.

Como dice Tim: "Pruébalas... y verás lo que te gusta"

Hero Worlddot related to Colores, estilos y reutilización - Spectre Console Series
Hero Affiliate related to Colores, estilos y reutilización - Spectre Console Series

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame