{"id":20797216,"url":"https://github.com/athari/csconsoleformat","last_synced_at":"2025-04-15T03:51:04.258Z","repository":{"id":14197591,"uuid":"16904169","full_name":"Athari/CsConsoleFormat","owner":"Athari","description":".NET C# library for advanced formatting of console output [Apache]","archived":false,"fork":false,"pushed_at":"2022-09-21T02:47:49.000Z","size":707,"stargazers_count":366,"open_issues_count":20,"forks_count":32,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-10-05T15:36:52.037Z","etag":null,"topics":["ascii","ascii-art","c-sharp","console","cross-platform","dotnet","dotnet-framework","dotnet-standard","formatting","html","library","resharper","shell","terminal","text","wpf","xaml","xml"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Athari.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-02-17T06:40:48.000Z","updated_at":"2024-09-19T16:37:17.000Z","dependencies_parsed_at":"2023-01-11T20:21:50.864Z","dependency_job_id":null,"html_url":"https://github.com/Athari/CsConsoleFormat","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Athari%2FCsConsoleFormat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Athari%2FCsConsoleFormat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Athari%2FCsConsoleFormat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Athari%2FCsConsoleFormat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Athari","download_url":"https://codeload.github.com/Athari/CsConsoleFormat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249003944,"owners_count":21196794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ascii","ascii-art","c-sharp","console","cross-platform","dotnet","dotnet-framework","dotnet-standard","formatting","html","library","resharper","shell","terminal","text","wpf","xaml","xml"],"created_at":"2024-11-17T16:33:00.842Z","updated_at":"2025-04-15T03:51:04.223Z","avatar_url":"https://github.com/Athari.png","language":"C#","readme":"\u003cimg align=\"right\" width=\"128\" src=\"Docs/Images/CsConsoleFormatIcon256.png\" style=\"margin: 0 20px\"\u003e\n\n*CsConsoleFormat: advanced formatting of console output for .NET*\n=================================================================\n\n* [**GitHub repository**](https://github.com/Athari/CsConsoleFormat)\n* [**NuGet package**](https://www.nuget.org/packages/Alba.CsConsoleFormat)\n\u003c!-- --\u003e\n    PM\u003e Install-Package Alba.CsConsoleFormat\n\n[![GitHub license](https://img.shields.io/github/license/Athari/CsConsoleFormat.svg?logo=github)](https://github.com/Athari/CsConsoleFormat/releases)\n[![GitHub license](https://img.shields.io/github/languages/top/Athari/CsConsoleFormat.svg?logo=github)](https://github.com/Athari/CsConsoleFormat/releases)\n[![GitHub license](https://img.shields.io/github/languages/code-size/Athari/CsConsoleFormat.svg?logo=github)](https://github.com/Athari/CsConsoleFormat/releases)\n[![Badges](https://img.shields.io/badge/badges-19%20/%2019-lightgrey.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAExJREFUeNpizM3NdWBgYFgIxHIMaEArdjIDFvAIiOOZgMRsbJrwAJDa2SCNKgykAxUmBjLBqMbho/EOGfoegjSmAvFdEjSB1CYABBgAwJEKs3F%2BVV0AAAAASUVORK5CYII=)](http://shields.io/)\n\u003cbr\u003e\n[![AppVeyor build master](https://img.shields.io/appveyor/ci/athari/csconsoleformat/master.svg?logo=appveyor)](https://ci.appveyor.com/project/Athari/csconsoleformat/branch/master)\n[![AppVeyor tests master](https://img.shields.io/appveyor/tests/athari/csconsoleformat/master.svg?logo=appveyor)](https://ci.appveyor.com/project/Athari/csconsoleformat/branch/master/tests)\n\u003cbr\u003e\n[![GitHub release version](https://img.shields.io/github/release/Athari/CsConsoleFormat.svg?logo=github)](https://github.com/Athari/CsConsoleFormat/releases)\n[![GitHub release date](https://img.shields.io/github/release-date/Athari/CsConsoleFormat.svg?logo=github)](https://github.com/Athari/CsConsoleFormat/releases)\n[![GitHub commits since release](https://img.shields.io/github/commits-since/Athari/CsConsoleFormat/latest.svg?logo=github)](https://github.com/Athari/CsConsoleFormat/releases)\n[![GitHub open issues](https://img.shields.io/github/issues-raw/Athari/CsConsoleFormat.svg?logo=github)](https://github.com/Athari/CsConsoleFormat/issues)\n[![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/Athari/CsConsoleFormat.svg?logo=github)](https://github.com/Athari/CsConsoleFormat/issues)\n[![GitHub pull requests](https://img.shields.io/github/issues-pr/Athari/CsConsoleFormat.svg?logo=github)](https://github.com/Athari/CsConsoleFormat/pulls)\n\u003cbr\u003e\n[![NuGet release version](https://img.shields.io/nuget/v/Alba.CsConsoleFormat.svg?label=release\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMpJREFUeNqUkbENwjAQRY8ovZkgG5AJYALS0GaDMAGeACYIE7ABtFSZgEyAy3TegG/pR7IuToCTXuHTvTufvTo8h42InIAFTn6MDARxCwr5I3JOuYAuyhdsqCPU%2BFHslHQD9cKwI7jmKtlSsrz%2BPiGGGhOLBjSgAg/m3jO7nzMlSrSbiXLJV510A3dOi0X/TRTuNko9KMGaayyKcVSUhbtbLfoZ0SX%2BciL2CbFR5/DPXl91l5jcsjg0eHH3UouecqfyNRsIH8p9BBgAANInlRmoOxQAAAAASUVORK5CYII=)](https://www.nuget.org/packages/Alba.CsConsoleFormat)\n[![NuGet downloads](https://img.shields.io/nuget/dt/Alba.CsConsoleFormat.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMpJREFUeNqUkbENwjAQRY8ovZkgG5AJYALS0GaDMAGeACYIE7ABtFSZgEyAy3TegG/pR7IuToCTXuHTvTufvTo8h42InIAFTn6MDARxCwr5I3JOuYAuyhdsqCPU%2BFHslHQD9cKwI7jmKtlSsrz%2BPiGGGhOLBjSgAg/m3jO7nzMlSrSbiXLJV510A3dOi0X/TRTuNko9KMGaayyKcVSUhbtbLfoZ0SX%2BciL2CbFR5/DPXl91l5jcsjg0eHH3UouecqfyNRsIH8p9BBgAANInlRmoOxQAAAAASUVORK5CYII=)](https://www.nuget.org/packages/Alba.CsConsoleFormat)\n[![MyGet pre-release version](https://img.shields.io/myget/athari/vpre/Alba.CsConsoleFormat.svg?label=pre-release\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGZJREFUeNpi/P//PwM5gJFsjXKtDAFAmheINYFYGoiloLQmTI28pDHI9EVAvB6IN4AEWaAcYkAcFH8C4r1MZLiSD4gDmRjIBKMacYNTLNC4AQWxBjTikTEy2ANNBIspS3LkagQIMADeAxhiTKPYOgAAAABJRU5ErkJggg==)](https://www.myget.org/feed/Packages/athari)\n[![MyGet downloads](https://img.shields.io/myget/athari/dt/Alba.CsConsoleFormat.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGZJREFUeNpi/P//PwM5gJFsjXKtDAFAmheINYFYGoiloLQmTI28pDHI9EVAvB6IN4AEWaAcYkAcFH8C4r1MZLiSD4gDmRjIBKMacYNTLNC4AQWxBjTikTEy2ANNBIspS3LkagQIMADeAxhiTKPYOgAAAABJRU5ErkJggg==)](https://www.myget.org/feed/Packages/athari)\n\u003cbr\u003e\n[![FOSSA license scan](https://app.fossa.io/api/projects/git%2Bgithub.com%2FAthari%2FCsConsoleFormat.svg?type=shield\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAOBAMAAADpk%2BDfAAAALVBMVEUAAADm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5uaIA73MAAAADnRSTlMAtluj7Np/bTaRJEgSyDlZ5%2BgAAABnSURBVAjXY2A7wMDQqsDAVpbU47eBgSvO7pkdAwPTwxBLIwYG7mc8nhMYGBYKi4iKMzCoTxR8cnUBQ9HEWPF3Ygxt0iZP7IQZOBboPbSLYWBg6IuVUwBS%2B%2BTEGYBAT2QBiFJsYGAAAPgsF6HL6FZzAAAAAElFTkSuQmCC)](https://app.fossa.io/projects/git%2Bgithub.com%2FAthari%2FCsConsoleFormat)\n[![CII best practices](https://bestpractices.coreinfrastructure.org/projects/1679/badge)](https://bestpractices.coreinfrastructure.org/projects/1679)\n[![Libraries.io Dependencies](https://img.shields.io/librariesio/github/Athari/CsConsoleFormat.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOBAMAAADtZjDiAAAAHlBMVEUAAADm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubm5uZenlmZAAAACXRSTlMAVTjixqocjXFWMi4dAAAAUUlEQVQI12NwNjI2KglgYJg5ceb0mRNANBBOAtOTLKdD6MrJEFpyZgKY5pwpAKZZZgaAaY6ZBmCaaeY0MM0wcwaEjpwKoTtnMjibOZsxJAcCAI4KK2mmVnlHAAAAAElFTkSuQmCC)](https://libraries.io/nuget/Alba.CsConsoleFormat)\n[![kandi X-Ray](https://kandi.openweaver.com/badges/xray.svg)](https://kandi.openweaver.com/csharp/Athari/CsConsoleFormat)\n\nCsConsoleFormat is a library for formatting text in console based on documents resembling a mix of WPF and HTML: tables, lists, paragraphs, colors, word wrapping, lines etc. Like this:\n\n```xml\n\u003cDocument\u003e\n    \u003cSpan Color=\"Red\"\u003eHello\u003c/Span\u003e\n    \u003cBr/\u003e\n    \u003cSpan Color=\"Yellow\"\u003eworld!\u003c/Span\u003e\n\u003c/Document\u003e\n```\n\nor like this:\n\n```c#\nnew Document(\n    new Span(\"Hello\") { Color = ConsoleColor.Red },\n    \"\\n\",\n    new Span(\"world!\") { Color = ConsoleColor.Yellow }\n);\n```\n\nor even like this:\n\n```c#\nColors.WriteLine(\"Hello\".Red(), \"\\n\", \"world!\".Yellow());\n```\n\nWhy?\n====\n\n.NET Framework includes only very basic console formatting capabilities. If you need to output a few strings, it's fine. If you want to output a table, you have to calculate column widths manually, often hardcode them. If you want to color output, you have to intersperse writing strings with setting and restoring colors. If you want to wrap words properly or combine all of the above...\n\nThe code quickly becomes an unreadable mess. It's just not fun! In GUI, we have MV*, bindings and all sorts of cool stuff. Writing console applications feels like returning to the Stone Age.\n\n*CsConsoleFormat to the rescue!*\n\nImagine you have the usual Order, OrderItem and Customer classes. Let's create a document which prints the order. There're two major syntaxes, you can use either.\n\n**XAML** (like WPF):\n\n```xml\n\u003cDocument xmlns=\"urn:alba:cs-console-format\"\n          xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"\u003e\n    \u003cSpan Background=\"Yellow\" Text=\"Order #\"/\u003e\n    \u003cSpan Text=\"{Get OrderId}\"/\u003e\n    \u003cBr/\u003e\n    \u003cSpan Background=\"Yellow\" Text=\"Customer: \"/\u003e\n    \u003cSpan Text=\"{Get Customer.Name}\"/\u003e\n\n    \u003cGrid Color=\"Gray\"\u003e\n        \u003cGrid.Columns\u003e\n            \u003cColumn Width=\"Auto\"/\u003e\n            \u003cColumn Width=\"*\"/\u003e\n            \u003cColumn Width=\"Auto\"/\u003e\n        \u003c/Grid.Columns\u003e\n        \u003cCell Stroke=\"Single Double\" Color=\"White\"\u003eId\u003c/Cell\u003e\n        \u003cCell Stroke=\"Single Double\" Color=\"White\"\u003eName\u003c/Cell\u003e\n        \u003cCell Stroke=\"Single Double\" Color=\"White\"\u003eCount\u003c/Cell\u003e\n        \u003cRepeater Items=\"{Get OrderItems}\"\u003e\n            \u003cCell\u003e\n                \u003cSpan Text=\"{Get Id}\"/\u003e\n            \u003c/Cell\u003e\n            \u003cCell\u003e\n                \u003cSpan Text=\"{Get Name}\"/\u003e\n            \u003c/Cell\u003e\n            \u003cCell Align=\"Right\"\u003e\n                \u003cSpan Text=\"{Get Count}\"/\u003e\n            \u003c/Cell\u003e\n        \u003c/Repeater\u003e\n    \u003c/Grid\u003e\n\u003c/Document\u003e\n```\n\n```c#\n// Assuming Order.xaml is stored as an Embedded Resource in the Views folder.\nDocument doc = ConsoleRenderer.ReadDocumentFromResource(GetType(), \"Views.Order.xaml\", Order);\nConsoleRenderer.RenderDocument(doc);\n```\n\n**C#** (like LINQ to XML):\n\n```c#\nusing static System.ConsoleColor;\n\nvar headerThickness = new LineThickness(LineWidth.Double, LineWidth.Single);\n\nvar doc = new Document(\n    new Span(\"Order #\") { Color = Yellow }, Order.Id, \"\\n\",\n    new Span(\"Customer: \") { Color = Yellow }, Order.Customer.Name,\n    new Grid {\n        Color = Gray,\n        Columns = { GridLength.Auto, GridLength.Star(1), GridLength.Auto },\n        Children = {\n            new Cell(\"Id\") { Stroke = headerThickness },\n            new Cell(\"Name\") { Stroke = headerThickness },\n            new Cell(\"Count\") { Stroke = headerThickness },\n            Order.OrderItems.Select(item =\u003e new[] {\n                new Cell(item.Id),\n                new Cell(item.Name),\n                new Cell(item.Count) { Align = Align.Right },\n            })\n        }\n    }\n);\n\nConsoleRenderer.RenderDocument(doc);\n```\n\n**C#** (like npm/colors):\n\n```c#\nusing Alba.CsConsoleFormat.Fluent;\n\nColors.WriteLine(\n    \"Order #\".Yellow(), Order.Id, \"\\n\",\n    \"Customer: \".Yellow(), Order.Customer.Name,\n    // the rest is the same\n);\n```\n\nFeatures\n========\n\n* **HTML-like elements**: paragraphs, spans, tables, lists, borders, separators.\n* **Layouts**: grid, stacking, docking, wrapping, absolute.\n* **Text formatting**: foreground and background colors, character wrapping, word wrapping.\n* **Unicode formatting**: hyphens, soft hyphens, no-break hyphens, spaces, no-break spaces, zero-width spaces.\n* **Multiple syntaxes** (see examples above):\n    * **Like WPF**: XAML with one-time bindings, resources, converters, attached properties, loading documents from assembly resources.\n    * **Like LINQ to XML**: C# with object initializers, setting attached properties via extension methods or indexers, adding children elements by collapsing enumerables and converting objects and strings to elements.\n    * **Like npm/colors**: Limited to writing colored strings, but very concise. Can be combined with the general syntax above.\n* **Drawing**: geometric primitives (lines, rectangles) using box-drawing characters, color transformations (dark, light), text, images.\n* **Internationalization**: cultures are respected on every level and can be customized per-element.\n* **Export** to many formats: ANSI text, unformatted text, HTML; RTF, XPF, WPF FixedDocument, WPF FlowDocument.\n* **JetBrains ReSharper annotations**: CanBeNull, NotNull, ValueProvider, Pure etc.\n* **WPF** document control, document converter.\n\nGetting started\n===============\n\n1. Install NuGet package [Alba.CsConsoleFormat](https://www.nuget.org/packages/Alba.CsConsoleFormat) using Package Manager:\n\n        PM\u003e Install-Package Alba.CsConsoleFormat\n\n    or .NET CLI:\n\n        \u003e dotnet add package Alba.CsConsoleFormat\n\n2. Add `using Alba.CsConsoleFormat;` to your .cs file.\n\n3. If you're going to use ASCII graphics on Windows, set `Console.OutputEncoding = Encoding.UTF8;`.\n\n4. If you want to use XAML:\n\n    1. Add XAML file to your project. Set its build action to \"Embedded Resource\".\n    2. Load XAML using `ConsoleRenderer.ReadDocumentFromResource`.\n\n5. If you want to use pure C#:\n\n    1. Build a document in code starting with `Document` element as a root.\n\n6. Call `ConsoleRenderer.RenderDocument` on the generated document.\n\nChoosing syntax\n===============\n\n**XAML** (like WPF) forces clear separation of views and models which is a good thing. However, it isn't strongly typed, so it's easy to get runtime errors if not careful. Syntax-wise it's a combination of XML verbosity (`\u003cGrid\u003e\u003cGrid.Columns\u003e\u003cColumn/\u003e\u003c/Grid.Columns\u003e\u003c/Grid\u003e`) and conciseness of short enums (`Color=\"White\"`) and converters (`Stroke=\"Single Double\"`).\n\nXAML library in Mono is currently very buggy. If you want to build a cross-platform application, using XAML may be problematic. However, if you need to support only Windows and are experienced in WPF, XAML should feel natural.\n\nXAML is only partially supported by Visual Studio + ReSharper: syntax highlighting and code completion work, but library-specific markup extensions are't understood by code completion, so incorrect errors may be displayed.\n\n**C#** (like LINQ to XML) allows performing all sorts of transformations with objects right in the code, thanks to LINQ and collapsing of enumerables when adding children elements. When using C# 6, which supports `using static`, accessing some of enumerations can be shortened. The only place with loose typing is adding of children using collection initializer of `Element.Children` (or constructor of `Element`).\n\nBuilding documents in code is fully supported by IDE, but code completion may cause lags if documents are built with huge single statements.\n\nFramework Compatibility\n=======================\n\nThe library contains the following packages:\n* **Alba.CsConsoleFormat**: main library with XAML and bindings support.\n* **Alba.CsConsoleFormat-NoXaml**: main library without XAML and bindings support (also without Repeater element).\n* **Alba.CsConsoleFormat.Presentation**: WPF-dependent features, including WPF control, export to RTF etc.\n* **Alba.CsConsoleFormat.ColorfulConsole**: support for Coloful.Console's FIGlet fonts.\n* **Alba.CsConsoleFormat.ColorfulConsole-NoXaml**: Alba.CsConsoleFormat.ColorfulConsole which depends on Alba.CsConsoleFormat-NoXaml.\n\nThe library supports the following targets:\n\n* **.NET Standard 2.0** *(Windows Vista; Core 2.0; Mono 5.4)*\n    * Alba.CsConsoleFormat (depends in Portable.Xaml)\n    * Alba.CsConsoleFormat-NoXaml\n    * Alba.CsConsoleFormat.ColorfulConsole\n    * Alba.CsConsoleFormat.ColorfulConsole-NoXaml\n* **.NET Standard 1.3** *(Windows Vista; Core 1.0; Mono 4.6)*\n    * Alba.CsConsoleFormat (depends in Portable.Xaml)\n    * Alba.CsConsoleFormat-NoXaml\n    * Alba.CsConsoleFormat.ColorfulConsole\n    * Alba.CsConsoleFormat.ColorfulConsole-NoXaml\n* **.NET Framework 4.0** *(Windows Vista)*\n    * Alba.CsConsoleFormat (depends in System.Xaml)\n    * Alba.CsConsoleFormat-NoXaml\n    * Alba.CsConsoleFormat.Presentation\n    * Alba.CsConsoleFormat.ColorfulConsole\n    * Alba.CsConsoleFormat.ColorfulConsole-NoXaml\n* **.NET Framework 3.5** *(Windows XP)*\n    * Alba.CsConsoleFormat-NoXaml\n\n*Notes:*\n\n1. Alba.CsConsoleFormat can be ported to .NET Framework 3.5 if someone actually needs it. It's just not worth the hassle otherwise as it requires changes to Portable.Xaml library.\n2. Alba.CsConsoleFormat-NoXaml can be supported on .NET Standard 1.0, Windows Phone 8.0 and other platforms, but they don't support console. WPF control belongs to the \"just for fun\" genre, but if somebody actually needs something like this on other platforms, it can be ported.\n\nLicense\n=======\nCopyright © 2014–2018 Alexander \"Athari\" Prokhorov\n\nLicensed under the [Apache License, Version 2.0](License.md) (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nSome parts of the library are based on ConsoleFramework © Igor Kostomin under MIT license.\n\nRelated Projects\n================\n\n* [**ConsoleFramework**](http://elw00d.github.io/consoleframework) — fully-featured cross-platform console user interface framework. Using ConsoleFramework, you can create interactive user interface with mouse input, but its formatting capabilities are limited.\n\n    CsConsoleFormat includes more formatting features: inline text with support for Unicode, more layouts, more everything, so if you only need to output text, CsConsoleFormat is more appropriate. However, if you want an interactive user interface with windows, menus and buttons, ConsoleFramework is the only library out there which supports it.\n\n* [**Colorful.Console**](https://github.com/tomakita/Colorful.Console) — library for coloring text in console and ASCII-art fonts. Supports RGB colors on Windows, falls back to 16 colors on other platforms.\n\n    Colorful.Console offers more coloring features: RGB colors, text highlighting based on regular expressions, gradients. However, it falls flat if anything beyond coloring is required as its output is based on calling Console.WriteLine variations, so it suffers from the same basic problems as the standard System.Console. FIGlet fonts are supported by CsConsoleFormat through Colorful.Console, but there's no integration beyond that.\n\n* [**ConsoleTables**](https://github.com/khalidabuhakmeh/ConsoleTables) — simple library for printing tables. (There're several alternatives, but this one is the most popular.)\n\n    Almost all features of ConsoleTables are trivial to implement with CsConsoleFormat. ConsoleTables is limited to single-line cells and a few fixed formatting styles.\n\nLinks\n=====\n\nTODO\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fathari%2Fcsconsoleformat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fathari%2Fcsconsoleformat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fathari%2Fcsconsoleformat/lists"}