# Widgets

Welcome to the Textual widget gallery.

We have many more widgets planned, or you can [build your own](./guide/widgets.md).


> **Info**
>
>
> Textual is a **TUI** framework. Everything below runs in the *terminal*.


## Button

A simple button with a variety of semantic styles.

[Button reference](./widgets/button.md)


## Checkbox

A classic checkbox control.

[Checkbox reference](./widgets/checkbox.md)


## Collapsible

Content that may be toggled on and off by clicking a title.

[Collapsible reference](./widgets/collapsible.md)


## ContentSwitcher

A widget for containing and switching display between multiple child
widgets.

[ContentSwitcher reference](./widgets/content_switcher.md)


## DataTable

A powerful data table, with configurable cursors.

[DataTable reference](./widgets/data_table.md)


## Digits

Display numbers in tall characters.

[Digits reference](./widgets/digits.md)


## DirectoryTree

A tree view of files and folders.

[DirectoryTree reference](./widgets/directory_tree.md)


## Footer

A footer to display and interact with key bindings.

[Footer reference](./widgets/footer.md)


## Header

A header to display the app's title and subtitle.


[Header reference](./widgets/header.md)


## Input

A control to enter text.

[Input reference](./widgets/input.md)


## Label

A simple text label.

[Label reference](./widgets/label.md)


## Link

A clickable link that opens a URL.

[Link reference](./widgets/link.md)


## ListView

Display a list of items (items may be other widgets).

[ListView reference](./widgets/list_view.md)


## LoadingIndicator

Display an animation while data is loading.

[LoadingIndicator reference](./widgets/loading_indicator.md)


## Log

Display and update lines of text (such as from a file).

[Log reference](./widgets/log.md)


## MarkdownViewer

Display and interact with a Markdown document (adds a table of contents and browser-like navigation to Markdown).

[MarkdownViewer reference](./widgets/markdown_viewer.md)


## Markdown

Display a markdown document.

[Markdown reference](./widgets/markdown.md)


## MaskedInput

A control to enter input according to a template mask.

[MaskedInput reference](./widgets/masked_input.md)


## OptionList

Display a vertical list of options (options may be Rich renderables).

[OptionList reference](./widgets/option_list.md)


## Placeholder

Display placeholder content while you are designing a UI.

[Placeholder reference](./widgets/placeholder.md)


## Pretty

Display a pretty-formatted Rich renderable.

[Pretty reference](./widgets/pretty.md)


## ProgressBar

A configurable progress bar with ETA and percentage complete.

[ProgressBar reference](./widgets/progress_bar.md)


## RadioButton

A simple radio button.

[RadioButton reference](./widgets/radiobutton.md)


## RadioSet

A collection of radio buttons, that enforces uniqueness.

[RadioSet reference](./widgets/radioset.md)


## RichLog

Display and update text in a scrolling panel.

[RichLog reference](./widgets/rich_log.md)


## Rule

A rule widget to separate content, similar to a `<hr>` HTML tag.

[Rule reference](./widgets/rule.md)


## Select

Select from a number of possible options.

[Select reference](./widgets/select.md)


## SelectionList

Select multiple values from a list of options.

[SelectionList reference](./widgets/selection_list.md)


## Sparkline

Display numerical data as a sparkline.

[Sparkline reference](./widgets/sparkline.md)


## Static

Displays simple static content. Typically used as a base class.

[Static reference](./widgets/static.md)


## Switch

An on / off control, inspired by toggle buttons.

[Switch reference](./widgets/switch.md)


## Tabs

A row of tabs you can select with the mouse or navigate with keys.

[Tabs reference](./widgets/tabs.md)


## TabbedContent

A Combination of Tabs and ContentSwitcher to navigate static content.

[TabbedContent reference](./widgets/tabbed_content.md)


## TextArea

A multi-line text area which supports syntax highlighting various languages.

[TextArea reference](./widgets/text_area.md)


## Tree

A tree control with expandable nodes.

[Tree reference](./widgets/tree.md)
