# Rich Interactive Widgets for Terminal UIs [![Godoc Reference](https://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/github.com/rivo/tview) [![Go Report](https://img.shields.io/badge/go%20report-A%2B-brightgreen.svg)](https://goreportcard.com/report/github.com/rivo/tview) This Go package provides commonly needed components for terminal based user interfaces. ![Screenshot](tview.gif) Among these components are: - __Input forms__ (include __input fields__, __drop-down selections__, __checkboxes__, and __buttons__) - Navigable multi-color __text views__ - Sophisticated navigable __table views__ - Selectable __lists__ - __Flexbox__ and __page layouts__ - Modal __message windows__ - An __application__ wrapper They come with lots of customization options and can be easily extended to fit your needs. ## Installation ```bash go get github.com/rivo/tview ``` ## Hello World This basic example creates a box titled "Hello, World!" and displays it in your terminal: ```go package main import ( "github.com/rivo/tview" ) func main() { box := tview.NewBox().SetBorder(true).SetTitle("Hello, world!") if err := tview.NewApplication().SetRoot(box, true).Run(); err != nil { panic(err) } } ``` Check out the [GitHub Wiki](https://github.com/rivo/tview/wiki) for more examples along with screenshots. Or try the examples in the "demos" subdirectory. For a presentation highlighting this package, compile and run the program found in the "demos/presentation" subdirectory. ## Documentation Refer to https://godoc.org/github.com/rivo/tview for the package's documentation. ## Dependencies This package is based on [github.com/gdamore/tcell](https://github.com/gdamore/tcell). ## Your Feedback Add your issue here on GitHub. Feel free to get in touch if you have any questions. ## Releases - v0.3 (2018-01-11) - Added masking to `InputField` and password entry to `Form` - v0.2 (2018-01-10) - Added `Styles` variable with default colors for primitives. - Completed some missing InputField functions. - v0.1 (2018-01-06) - First Release