Skip to content

Widget Reference

All widgets are available via use tui_lipan::prelude::*;

Layout & Containers → layout.md · effects.md (VisualEffect)

WidgetDescription
VStackVertical stack container
HStackHorizontal stack container
ZStackOverlay container (children stacked)
FrameContainer with border, title, status line
Grid2D grid layout
ScrollViewScrollable container
CenterCenters a single child
CenterPinAbsolutely positions a child relative to a center point
EffectScopeApplies style and VisualEffect post-processing to a rendered subtree
AnimatedOpacity / fg/bg color lerp / height transition wrapper (layout_height, on_opacity_transition_end, on_height_transition_end; see layout.md)
SpacerFlexible empty space
DividerVisual separator line
MouseRegionPointer move/click wrapper with optional hover style
SplitterResizable panes with draggable handles
ThemeProviderApplies a Theme to a subtree (see styling.md)
ContextProviderProvides typed context to a subtree (ctx.use_context::<T>())

Animated

For fading between structurally different subtrees, tween opacity 1.0 → 0.0 on the outgoing content, swap the child inside on_opacity_transition_end, then tween 0.0 → 1.0. A single Animated lane is sufficient - no ZStack needed.

Display (Read-Only) → display.md

WidgetFeatureDescription
Text-Styled text
DocumentViewmarkdown (optional formatter)Read-only rich document view with tables/code/blockquote rendering
AsciiCanvas-ASCII art, cell grids, sprite sheets
BigTextbig-textLarge text via FIGlet/pixel fonts
ImageimageProtocol-aware image (Kitty, iTerm2, Sixel, halfblocks)
Sparkline-Inline time-series chart
Chart-Multi-series chart with axes and legend
Heatmap-2D matrix with gradient-colored cells

Input → input.md

WidgetDescription
ButtonInteractive button with icon/shortcut support
DragSourceWrapper that initiates generic drag-and-drop
DropTargetWrapper that receives generic drag-and-drop payloads
HyperlinkClickable text link with keyboard activation
InputSingle-line text field
TextAreaMulti-line editor; syntax highlighting, images, custom inline sentinels (payloads, ids, snapshots)
DiffViewRead-only diff viewer (feature: diff-view)
CheckboxToggle with indeterminate state
RadioRadio button group
SelectDropdown selector
ComboBoxInput + filtered dropdown selector
MultiSelectList with multi-row selection via space toggle
HexAreaHex/ASCII binary data viewer with cursor navigation
SliderNumeric slider with gradient support
DatePickerCalendar date picker

Data → data.md

WidgetDescription
ListSelectable list with headers, spacers, prefixes, scrollbar
TableStructured table with heatmaps, inspector presets
TreeHierarchical tree with expand/collapse
FileTreeLazy-loading filesystem explorer with git status
LogViewHigh-throughput log stream with fuzzy filtering

Feedback & Status → feedback.md

WidgetDescription
ProgressBarProgress indicator with zones, gradients, drag
SpinnerAnimated loading indicator
StatusBarApplication status line (left/center/right slots)
PaginationBarComposed pagination controls with styled nav buttons
BreadcrumbNavigation trail
BadgeStatus indicator overlaid on an element

Overlays & Navigation → overlays.md

WidgetDescription
ModalCentered dialog (portals to root level)
ToastTransient notifications via ctx.toast()
PopoverFloating content panel
TooltipHelp text on hover/focus
AccordionCollapsible sections
CommandPaletteModal command palette backed by the runtime command registry
SearchPaletteFuzzy search overlay with optional grouped entries and hidden aliases
ContextMenuRight-click menu

Tabs → tabs.md

WidgetDescription
TabsSimple tab bar
DraggableTabBarEditor-style tabs with drag, close, file icons

Terminal → terminal.md (feature: terminal)

WidgetDescription
ManagedTerminalFull PTY terminal (recommended)
TerminalLow-level terminal viewport widget
TerminalPtyPTY spawner and I/O bridge
TerminalScreenVT100/VT220 screen emulator

MIT OR Apache-2.0