Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Textualize/textual
The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.
https://github.com/Textualize/textual
cli framework python rich terminal tui
Last synced: about 2 months ago
JSON representation
The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.
- Host: GitHub
- URL: https://github.com/Textualize/textual
- Owner: Textualize
- License: mit
- Created: 2021-04-08T15:24:47.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-26T15:46:42.000Z (4 months ago)
- Last Synced: 2024-08-27T09:08:55.228Z (4 months ago)
- Topics: cli, framework, python, rich, terminal, tui
- Language: Python
- Homepage: https://textual.textualize.io/
- Size: 358 MB
- Stars: 24,841
- Watchers: 161
- Forks: 761
- Open Issues: 137
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Roadmap: docs/roadmap.md
Awesome Lists containing this project
- awesomeLibrary - textual - Textual is a TUI (Text User Interface) framework for Python inspired by modern web development. (语言资源库 / python)
- awesome - Textualize/textual - The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser. (Python)
- my-awesome-github-stars - Textualize/textual - The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser. (Python)
- awesome-github-repos - Textualize/textual - The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser. (Python)
- awesome-rainmana - Textualize/textual - The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser. (Python)
- awesome-textualize-projects - Textual
- project-awesome - Textualize/textual - The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser. (Python)
- StarryDivineSky - Textualize/textual
README
![Textual splash image](https://raw.githubusercontent.com/Textualize/textual/main/imgs/textual.png)
[![Discord](https://img.shields.io/discord/1026214085173461072)](https://discord.gg/Enf6Z3qhVr)
# Textual
Textual is a *Rapid Application Development* framework for Python.
Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a [web browser](https://github.com/Textualize/textual-web)!
🎬 Demonstration
A quick run through of some Textual features.
https://user-images.githubusercontent.com/554369/197355913-65d3c125-493d-4c05-a590-5311f16c40ff.mov
## About
Textual adds interactivity to [Rich](https://github.com/Textualize/rich) with an API inspired by modern web development.
On modern terminal software (installed by default on most systems), Textual apps can use **16.7 million** colors with mouse support and smooth flicker-free animation. A powerful layout engine and re-usable components makes it possible to build apps that rival the desktop and web experience.
## Compatibility
Textual runs on Linux, macOS, and Windows. Textual requires Python 3.8 or above.
## Installing
Install Textual via pip:
```
pip install textual
```If you plan on developing Textual apps, you should also install the development tools with the following command:
```
pip install textual-dev
```See the [docs](https://textual.textualize.io/getting_started/) if you need help getting started.
## Demo
Run the following command to see a little of what Textual can do:
```
python -m textual
```![Textual demo](https://raw.githubusercontent.com/Textualize/textual/main/imgs/demo.png)
## Documentation
Head over to the [Textual documentation](http://textual.textualize.io/) to start building!
## Join us on Discord
Join the Textual developers and community on our [Discord Server](https://discord.gg/Enf6Z3qhVr).
## Examples
The Textual repository comes with a number of examples you can experiment with or use as a template for your own projects.
🎬 Code browser
This is the [code_browser.py](https://github.com/Textualize/textual/blob/main/examples/code_browser.py) example which clocks in at 61 lines (*including* docstrings and blank lines).
https://user-images.githubusercontent.com/554369/197188237-88d3f7e4-4e5f-40b5-b996-c47b19ee2f49.mov
📷 Calculator
This is [calculator.py](https://github.com/Textualize/textual/blob/main/examples/calculator.py) which demonstrates Textual grid layouts.
![calculator screenshot](https://raw.githubusercontent.com/Textualize/textual/main/imgs/calculator.png)
🎬 Stopwatch
This is the Stopwatch example from the [tutorial](https://textual.textualize.io/tutorial/).
https://user-images.githubusercontent.com/554369/197360718-0c834ef5-6285-4d37-85cf-23eed4aa56c5.mov
## Reference commands
The `textual` command has a few sub-commands to preview Textual styles.
🎬 Easing reference
This is the *easing* reference which demonstrates the easing parameter on animation, with both movement and opacity. You can run it with the following command:
```bash
textual easing
```https://user-images.githubusercontent.com/554369/196157100-352852a6-2b09-4dc8-a888-55b53570aff9.mov
🎬 Borders reference
This is the borders reference which demonstrates some of the borders styles in Textual. You can run it with the following command:
```bash
textual borders
```https://user-images.githubusercontent.com/554369/196158235-4b45fb78-053d-4fd5-b285-e09b4f1c67a8.mov
🎬 Colors reference
This is a reference for Textual's color design system.
```bash
textual colors
```https://user-images.githubusercontent.com/554369/197357417-2d407aac-8969-44d3-8250-eea45df79d57.mov