Hex1b 0.126.0

Hex1b

Hex1b is a .NET library for building TUI apps using an approachable code-first API.

NuGet License: MIT

Installation

dotnet add package Hex1b

Quick Start

Hello World

A minimal application that displays text and a quit button:

using Hex1b;

using var app = new Hex1bApp(ctx =>
    ctx.VStack(b => [
        b.Text("Hello, Terminal!"),
        b.Button("Quit").OnClick(e => e.Context.RequestStop())
    ])
);

await app.RunAsync();

Counter with State

An interactive counter demonstrating mutable state across renders:

using Hex1b;

// State persists outside the builder function
var count = 0;

using var app = new Hex1bApp(ctx =>
    ctx.VStack(b => [
        b.Text($"Count: {count}"),
        b.Button("Increment").OnClick(_ => count++),
        b.Button("Decrement").OnClick(_ => count--),
        b.Text(""),
        b.Button("Quit").OnClick(e => e.Context.RequestStop())
    ])
);

await app.RunAsync();

Counter with Custom Key Bindings

A counter controlled with custom keyboard shortcuts (Ctrl+A to increment, Ctrl+D to decrement):

using Hex1b;
using Hex1b.Input;

var count = 0;

using var app = new Hex1bApp(ctx =>
    ctx.VStack(b => [
        b.Text($"Count: {count}"),
        b.Text(""),
        b.Text("Ctrl+A: Increment"),
        b.Text("Ctrl+D: Decrement"),
        b.Text("Ctrl+Q: Quit")
    ]).WithInputBindings(bindings =>
    {
        bindings.Ctrl().Key(Hex1bKey.A).Action(() => count++, "Increment counter");
        bindings.Ctrl().Key(Hex1bKey.D).Action(() => count--, "Decrement counter");
        bindings.Ctrl().Key(Hex1bKey.Q).Action(ctx => ctx.RequestStop(), "Quit");
    })
);

await app.RunAsync();

Layout System

Hex1b uses a constraint-based layout system with size hints:

// Vertical stack with flexible sizing
new VStackWidget(
    children: [contentWidget, statusBarWidget],
    sizeHints: [SizeHint.Fill, SizeHint.Content]
);

Size Hints:

  • SizeHint.Fill – Expand to fill available space
  • SizeHint.Content – Size to fit content
  • SizeHint.Fixed(n) – Fixed size of n units
  • SizeHint.Weighted(n) – Proportional sizing with weight n

Widgets

Widget Description
TextBlockWidget Display static or dynamic text
TextBoxWidget Editable text input with cursor and selection
ButtonWidget Clickable button with label and action
ListWidget Scrollable list with selection support
VStackWidget Vertical layout container
HStackWidget Horizontal layout container
SplitterWidget Resizable split pane layout
BorderWidget Container with border and optional title
ScrollPanelWidget Scrollable content area

Input Bindings

Define keyboard shortcuts using the fluent builder API:

widget.WithInputBindings(bindings =>
{
    // Simple key
    bindings.Key(Hex1bKey.Delete).Action(() => DeleteItem());
    
    // Modifier keys (Ctrl or Shift, but not both)
    bindings.Ctrl().Key(Hex1bKey.S).Action(() => Save(), "Save");
    bindings.Shift().Key(Hex1bKey.Tab).Action(() => FocusPrevious(), "Previous");
    
    // Multi-step chords
    bindings.Ctrl().Key(Hex1bKey.K)
        .Then().Key(Hex1bKey.C)
        .Action(() => CommentLine(), "Comment line");
});

Theming

Apply built-in themes or create your own:

using Hex1b.Theming;

using var app = new Hex1bApp(
    builder,
    new Hex1bAppOptions { Theme = Hex1bThemes.Sunset }
);

Documentation

License

Hex1b is licensed under the MIT License.

Showing the top 20 packages that depend on Hex1b.

Packages Downloads
Aspire.Hosting.Nats
NATS support for Aspire.
10
Aspire.Hosting
Core abstractions for the Aspire application model.
10
Aspire.Hosting.PostgreSQL
PostgreSQL® support for Aspire.
9
Aspire.Hosting.SqlServer
Microsoft SQL Server support for Aspire.
9
Aspire.Hosting.MongoDB
MongoDB support for Aspire.
9
Aspire.Hosting.AppHost
Core library and MSBuild logic for Aspire AppHost projects.
9
Aspire.Hosting.AppHost
Core library and MSBuild logic for Aspire AppHost projects.
7
Aspire.Hosting.PostgreSQL
PostgreSQL® support for Aspire.
7
Aspire.Hosting
Core abstractions for the Aspire application model.
7
Aspire.Hosting.Nats
NATS support for Aspire.
6
Aspire.Hosting.MongoDB
MongoDB support for Aspire.
6
Aspire.Hosting.SqlServer
Microsoft SQL Server support for Aspire.
5

Version Downloads Last updated
0.175.0 1 10/15/2026
0.175.0-alpha.1963.1.e84f086 2 10/14/2026
0.175.0-alpha.1905.1.34394d2 1 10/15/2026
0.175.0-alpha.1898.1.9dc034e 3 10/13/2026
0.174.0 3 10/12/2026
0.174.0-beta.1899.1.9dc034e 2 10/15/2026
0.174.0-alpha.1835.1.1856406 3 10/12/2026
0.173.0 7 10/08/2026
0.173.0-alpha.1824.1.98d8766 9 10/05/2026
0.173.0-alpha.1801.1.3dc2d9b 9 10/05/2026
0.172.0 10 09/30/2026
0.172.0-beta.1788.1.f01b043 10 09/30/2026
0.172.0-alpha.1787.1.f01b043 11 09/30/2026
0.172.0-alpha.1785.1.d253961 9 09/30/2026
0.172.0-alpha.1654.1.f826137 10 09/30/2026
0.172.0-alpha.1652.1.6a01c54 10 09/30/2026
0.172.0-alpha.1650.1.2df4512 10 09/30/2026
0.171.0 11 09/30/2026
0.170.0 10 09/30/2026
0.170.0-alpha.1620.1.85e091a 10 09/30/2026
0.170.0-alpha.1616.1.6221fe4 10 09/30/2026
0.169.1 7 09/30/2026
0.169.1-beta.1619.1.ce890db 11 09/30/2026
0.169.0 12 09/30/2026
0.169.0-beta.1611.1.c1a7c2d 9 09/30/2026
0.169.0-alpha.1608.1.d6a20d4 11 09/30/2026
0.169.0-alpha.1597.1.365795a 8 09/30/2026
0.168.0 10 09/30/2026
0.168.0-beta.1592.1.d87cce1 11 09/30/2026
0.168.0-alpha.1588.1.cb3cf27 10 09/30/2026
0.168.0-alpha.1585.1.1de7974 8 09/30/2026
0.168.0-alpha.1583.1.f78698d 11 09/30/2026
0.168.0-alpha.1579.1.1561964 12 09/30/2026
0.168.0-alpha.1573.1.2917e83 11 09/30/2026
0.168.0-alpha.1571.1.18731da 8 09/30/2026
0.167.1-beta.1570.1.7675a6d 10 09/30/2026
0.167.0 10 09/30/2026
0.167.0-beta.1566.1.6eea363 10 09/30/2026
0.167.0-alpha.1565.1.6eea363 9 09/30/2026
0.167.0-alpha.1564.1.ebc298d 12 09/30/2026
0.167.0-alpha.1561.1.093b67b 8 09/30/2026
0.167.0-alpha.1559.1.448450d 10 09/30/2026
0.167.0-alpha.1551.1.34adbdd 13 09/30/2026
0.167.0-alpha.1549.1.496ccf5 11 09/30/2026
0.167.0-alpha.1547.1.798b26c 10 09/30/2026
0.167.0-alpha.1538.1.991370f 8 09/30/2026
0.167.0-alpha.1536.1.6b20787 9 09/30/2026
0.167.0-alpha.1534.1.2783ae7 7 09/30/2026
0.167.0-alpha.1528.1.50cc76e 11 09/30/2026
0.167.0-alpha.1522.1.3085d8b 8 09/30/2026
0.167.0-alpha.1519.1.b8be265 11 09/30/2026
0.167.0-alpha.1517.1.81d1e3d 7 09/30/2026
0.167.0-alpha.1512.1.d6b2173 12 09/30/2026
0.167.0-alpha.1509.1.1f47fd9 8 09/30/2026
0.167.0-alpha.1465.1.d8af16a 10 09/30/2026
0.167.0-alpha.1414.1.b68865c 10 09/30/2026
0.166.1-beta.1558.1.5e98f7f 11 09/30/2026
0.166.0 9 09/30/2026
0.166.0-beta.1554.1.4652df1 10 09/30/2026
0.166.0-beta.1424.1.6566aac 9 09/30/2026
0.166.0-beta.1420.1.25aa164 11 09/30/2026
0.166.0-beta.1416.1.1e1d57b 10 09/30/2026
0.166.0-beta.1412.1.815f257 10 09/30/2026
0.166.0-alpha.1366.1.3ea400e 9 09/30/2026
0.166.0-alpha.1361.1.468c1e6 9 09/30/2026
0.165.0 10 09/30/2026
0.165.0-beta.1343.1.39947cb 10 09/30/2026
0.165.0-alpha.1337.1.4f44be7 11 09/30/2026
0.165.0-alpha.1331.1.b11d534 10 09/30/2026
0.165.0-alpha.1325.1.e6f8a29 10 09/30/2026
0.165.0-alpha.1322.1.62b3bb3 10 09/30/2026
0.165.0-alpha.1316.1.5401318 10 09/30/2026
0.165.0-alpha.1314.1.33573c1 11 09/30/2026
0.164.2-beta.1321.1.7522404 10 09/30/2026
0.164.1 10 09/30/2026
0.164.0 11 09/30/2026
0.164.0-beta.1308.1.3837d3a 9 09/30/2026
0.164.0-alpha.1304.1.ddc2032 10 09/30/2026
0.163.0 12 09/30/2026
0.162.0 7 09/30/2026
0.161.0 11 09/30/2026
0.160.0 12 09/30/2026
0.159.0 8 09/30/2026
0.158.0 10 09/30/2026
0.157.0 10 09/30/2026
0.156.0 13 09/30/2026
0.155.0 10 09/30/2026
0.154.0 12 09/30/2026
0.153.0 11 09/30/2026
0.152.0 10 09/30/2026
0.151.0 10 09/30/2026
0.150.0 12 09/30/2026
0.149.0 11 09/30/2026
0.148.0 14 09/30/2026
0.147.0 11 09/30/2026
0.146.0 9 09/30/2026
0.145.0 13 09/30/2026
0.144.0 11 09/30/2026
0.143.0 10 09/30/2026
0.142.0 12 09/30/2026
0.141.0 12 09/30/2026
0.140.0 10 09/30/2026
0.139.0 11 09/30/2026
0.138.0 11 09/30/2026
0.137.0 6 09/30/2026
0.136.0 8 09/30/2026
0.135.0 13 09/30/2026
0.134.0 9 09/30/2026
0.133.0 13 09/30/2026
0.132.0 12 09/30/2026
0.131.0 6 09/30/2026
0.130.0 10 09/30/2026
0.129.0 9 09/30/2026
0.128.0 11 09/30/2026
0.127.0 12 09/30/2026
0.126.0 10 09/30/2026
0.125.0 11 09/30/2026
0.124.0 12 09/30/2026
0.123.0 12 09/30/2026
0.122.0 10 09/30/2026
0.121.0 9 09/30/2026
0.120.0 10 09/30/2026
0.119.0 11 09/30/2026
0.118.0 11 09/30/2026
0.117.0 11 09/30/2026
0.116.0 11 09/30/2026
0.115.0 8 09/30/2026
0.114.0 12 09/30/2026
0.113.0 12 09/30/2026
0.112.0 11 09/30/2026
0.111.0 11 09/30/2026
0.110.0 12 09/30/2026
0.109.0 11 09/30/2026
0.108.0 9 09/30/2026
0.107.0 10 09/30/2026
0.106.0 11 09/30/2026
0.105.0 12 09/30/2026
0.104.0 11 09/30/2026
0.103.0 12 09/30/2026
0.102.0 10 09/30/2026
0.101.0 12 09/30/2026
0.100.0 13 09/30/2026
0.99.0 9 09/30/2026
0.98.0 12 09/30/2026
0.97.0 9 09/30/2026
0.96.0 9 09/30/2026
0.95.0 7 09/30/2026
0.94.0 11 09/30/2026
0.93.0 11 09/30/2026
0.92.0 11 09/30/2026
0.91.0 11 09/30/2026
0.90.0 10 09/30/2026
0.89.0 10 09/30/2026
0.88.0 11 09/30/2026
0.87.0 8 09/30/2026
0.86.0 8 09/30/2026
0.85.0 10 09/30/2026
0.84.0 10 09/30/2026
0.83.0 14 09/30/2026
0.82.0 12 09/30/2026
0.81.0 11 09/30/2026
0.80.0 11 09/30/2026
0.79.0 13 09/30/2026
0.78.0 10 09/30/2026
0.77.0 9 09/30/2026
0.76.0 5 09/30/2026
0.75.0 9 09/30/2026
0.74.0 10 09/30/2026
0.73.0 9 09/30/2026
0.72.0 11 09/30/2026
0.71.0 12 09/30/2026
0.70.0 9 09/30/2026
0.69.0 13 09/30/2026
0.68.0 11 09/30/2026
0.67.0 11 09/30/2026
0.66.0 12 09/30/2026
0.65.0 11 09/30/2026
0.64.0 10 09/30/2026
0.63.0 9 09/30/2026
0.62.0 10 09/30/2026
0.61.0 13 09/30/2026
0.60.0 11 09/30/2026
0.59.0 11 09/30/2026
0.58.0 9 09/30/2026
0.57.0 10 09/30/2026
0.56.0 11 09/30/2026
0.55.0 11 09/30/2026
0.54.0 9 09/30/2026
0.53.0 11 09/30/2026
0.52.0 12 09/30/2026
0.51.0 10 09/30/2026
0.50.0 12 09/30/2026
0.49.0 10 09/30/2026
0.48.0 11 09/30/2026
0.47.0 12 09/30/2026
0.46.0 10 09/30/2026
0.45.0 10 09/30/2026
0.44.0 11 09/30/2026
0.43.0 9 09/30/2026
0.42.0 10 09/30/2026
0.41.0 11 09/30/2026
0.40.0 9 09/30/2026
0.39.0 13 09/30/2026
0.38.0 9 09/30/2026
0.37.0 11 09/30/2026
0.36.0 15 09/30/2026
0.35.0 9 09/30/2026
0.34.0 6 09/30/2026
0.33.0 12 09/30/2026
0.32.0 11 09/30/2026
0.31.0 13 09/30/2026
0.30.0 10 09/30/2026
0.29.0 13 09/30/2026
0.28.0 9 09/30/2026
0.27.0 7 09/30/2026
0.26.0 8 09/30/2026
0.25.0 12 09/30/2026
0.24.0 11 09/30/2026
0.23.0 9 09/30/2026
0.22.0 11 09/30/2026
0.21.0 8 09/30/2026
0.20.0 15 09/30/2026
0.19.0 11 09/30/2026
0.18.0 10 09/30/2026
0.17.0 12 09/30/2026
0.16.0 9 09/30/2026
0.15.0 10 09/30/2026
0.14.0 11 09/30/2026
0.13.0 12 09/30/2026
0.12.0 9 09/30/2026
0.11.0 9 09/30/2026
0.10.0 10 09/30/2026
0.9.0 11 09/30/2026
0.8.0 9 09/30/2026
0.7.0 9 09/30/2026
0.6.0 11 09/30/2026
0.5.0 12 09/30/2026
0.4.0 7 09/30/2026
0.3.0 10 09/30/2026
0.2.0 10 09/30/2026
0.1.0 12 09/30/2026