From 9efc426eb9585cd36ffd3daa67ca0c39896ba1d5 Mon Sep 17 00:00:00 2001 From: Elemento Date: Sun, 26 Jan 2025 13:28:06 +0530 Subject: [PATCH] Added documentation for align widget --- docs/input/assets/casts/align-rich.cast | 2 + docs/input/widgets/align.md | 66 +++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 docs/input/assets/casts/align-rich.cast create mode 100644 docs/input/widgets/align.md diff --git a/docs/input/assets/casts/align-rich.cast b/docs/input/assets/casts/align-rich.cast new file mode 100644 index 00000000..ffda5278 --- /dev/null +++ b/docs/input/assets/casts/align-rich.cast @@ -0,0 +1,2 @@ +{"version": 2, "width": 40, "height": 3, "timestamp": 1667342769, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}} +[0.0, "o", "\u001b[H\u001b[2B\u001b[38;5;9;48;5;0mSpectre!\u001b[0m"] diff --git a/docs/input/widgets/align.md b/docs/input/widgets/align.md new file mode 100644 index 00000000..d4f1e42f --- /dev/null +++ b/docs/input/widgets/align.md @@ -0,0 +1,66 @@ +Title: Align +Description: "Use **Align** to render and position widgets in the console." +Highlights: + - Custom colors + - Labels + - Use your own data with a converter. +Reference: T:Spectre.Console.Align + +--- + +Use `Align` to render and position widgets in the console. + + + +## Usage + +### Basic usage + +```csharp +// Render an item and align it in the bottom-left corner of the console +AnsiConsole.Write(new Align( + new Text("Spectre!"), + HorizontalAlignment.Left, + VerticalAlignment.Bottom + )); +``` + +### Align items from an IEnumerable + +```csharp +// Create a list of items +var alignItems = new List(){ + new Text("Spectre"), + new Text("Console"), + new Text("Is Awesome!") + }; + +// Render the items in the middle-right of the console +AnsiConsole.Write(new Align( + alignItems, + HorizontalAlignment.Right, + VerticalAlignment.Middle + )); +``` + +### Dynamically align with different widgets + +```csharp +// Create a table +var table = new Table() + .AddColumn("ID") + .AddColumn("Methods") + .AddColumn("Purpose") + .AddRow("1", "Center()", "Initializes a new instance that is center aligned") + .AddRow("2", "Measure()", "Measures the renderable object") + .AddRow("3", "Right()", "Initializes a new instance that is right aligned."); + +// Create a panel +var panel = new Panel(table) + .Header("Other Align Methods") + .Border(BoxBorder.Double); + +// Renders the panel in the top-center of the console +AnsiConsole.Write(new Align(panel, HorizontalAlignment.Center, VerticalAlignment.Top)); +``` +