Skip to content

Widgets

Hex1b provides a rich library of widgets for building terminal user interfaces. Widgets are immutable configuration objects that describe what to render—the framework handles the rest.

Layout Widgets

Widgets for organizing and positioning content.

  • Stacks (HStack/VStack) — Arrange children horizontally or vertically
  • Border — Bordered containers with optional titles
  • Align — Position content within available space
  • Scroll — Scrollable content areas for overflow
  • Splitter — Resizable split views
  • Responsive — Breakpoint-based adaptive layouts

Interactive Widgets

Widgets that respond to user input.

  • Button — Clickable buttons with keyboard support
  • Checkbox — Toggleable checked/unchecked/indeterminate state
  • SplitButton — Button with dropdown for secondary actions
  • TextBox — Single and multi-line text input
  • List — Scrollable, selectable item lists
  • Tree — Hierarchical data with expand/collapse and multi-select
  • Table — Data tables with sorting, selection, and virtualization
  • Picker — Dropdown selection menus
  • Slider — Numeric value selection with keyboard and mouse
  • ToggleSwitch — On/off toggle controls
  • Navigator — Stack-based page navigation

Display Widgets

Widgets for presenting information.

  • Icon — Single character or emoji display with optional click
  • InfoBar — Status bars for contextual information
  • Notifications — Floating notifications with actions and drawer
  • Text — Rich text with styling and formatting
  • Progress — Progress bars for known completion amounts
  • Spinner — Animated activity indicators
  • Hyperlink — Clickable terminal hyperlinks (OSC 8)
  • QrCode — Render QR codes in the terminal

Utility Widgets

Widgets for special behaviors.

  • Rescue — Error boundaries for graceful failure handling
  • ThemePanel — Scope theme overrides to subtrees
  • Terminal — Embed child terminal sessions
  • Surface — Low-level rendering with layered compositing

Released under the MIT License.