summaryrefslogtreecommitdiffstats
path: root/contrib/python/textual/README.md
blob: e000b74c6c115058c4bff6e73316a5624254334a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171



![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)!


<details>
  <summary> 🎬 Demonstration </summary>
  <hr>

A quick run through of some Textual features.



https://user-images.githubusercontent.com/554369/197355913-65d3c125-493d-4c05-a590-5311f16c40ff.mov



 </details>


## 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.


<details>
  <summary> 🎬 Code browser </summary>
  <hr>

  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

 </details>


<details>
  <summary> 📷 Calculator </summary>
  <hr>

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)
</details>


<details>
  <summary> 🎬 Stopwatch </summary>
  <hr>

  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



</details>



## Reference commands

The `textual` command has a few sub-commands to preview Textual styles.

<details>
  <summary> 🎬 Easing reference </summary>
  <hr>

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


 </details>

<details>
  <summary> 🎬 Borders reference </summary>
  <hr>

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


</details>


<details>
  <summary> 🎬 Colors reference </summary>
  <hr>

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




</details>