From c632139f4a34122f304785a4d7d23428b6edb682 Mon Sep 17 00:00:00 2001
From: oddune7 <2371605342@qq.com>
Date: Fri, 27 Jun 2025 19:42:57 +0800
Subject: [PATCH] docs(en): add installation guide
---
README.md | 72 +++++++-------
README.zh.md | 207 +++++++++++++++++++++++++++++++++++++++++
docs.md | 6 +-
images/screenshot1.png | Bin 0 -> 3460 bytes
images/screenshot2.gif | Bin 0 -> 192549 bytes
images/screenshot3.gif | Bin 0 -> 450946 bytes
images/screenshot4.gif | Bin 0 -> 406266 bytes
images/screenshot5.gif | Bin 0 -> 136832 bytes
images/screenshot6.gif | Bin 0 -> 215960 bytes
images/screenshot7.gif | Bin 0 -> 284008 bytes
10 files changed, 246 insertions(+), 39 deletions(-)
create mode 100644 README.zh.md
create mode 100644 images/screenshot1.png
create mode 100644 images/screenshot2.gif
create mode 100644 images/screenshot3.gif
create mode 100644 images/screenshot4.gif
create mode 100644 images/screenshot5.gif
create mode 100644 images/screenshot6.gif
create mode 100644 images/screenshot7.gif
diff --git a/README.md b/README.md
index 4eb7cdee55..49379eecb4 100644
--- a/README.md
+++ b/README.md
@@ -11,15 +11,37 @@
# Textual
-
+Build cross-platform user interfaces with a simple Python API. Textual combines modern Python features with web development best practices, delivering an efficient cross-platform application development experience.
-Build cross-platform user interfaces with a simple Python API. Run your apps in the terminal *or* a web browser.
-
-Textual's API combines modern Python with the best of developments from the web world, for a lean app development experience.
-De-coupled components and an advanced [testing](https://textual.textualize.io/guide/testing/) framework ensure you can maintain your app for the long-term.
+## Key Features
+- 🖥️ Dual Rendering Engine - Write once, deploy to both terminal and web browsers
+- 🧩 50+ Built-in Widgets - Buttons, tables, tree views and more out-of-the-box
+- 🎨 Theme System - Multiple built-in UI themes with custom styling support
+- 🛠️ Developer Tools - Real-time terminal app debugging
+- ⚡ Async Core - Native async/await support
Want some more examples? See the [examples](https://github.com/Textualize/textual/tree/main/examples) directory.
+## Installing
+
+### Prerequisites:
+- Python 3.10+
+- Terminal requirements: TrueColor-supported terminal (e.g. Windows Terminal, iTerm2)
+
+Install Textual via pip:
+
+```
+pip install textual textual-dev
+```
+For development tools:
+
+```
+pip install "textual[dev]"
+```
+
+
+## Quick Start
+
```python
"""
An App to show the current time.
@@ -54,14 +76,13 @@ if __name__ == "__main__":
app.run()
```
+
+
> [!TIP]
> Textual is an asynchronous framework under the hood. Which means you can integrate your apps with async libraries — if you want to.
> If you don't want or need to use async, Textual won't force it on you.
-
-
-
## Widgets
Textual's library of [widgets](https://textual.textualize.io/widget_gallery/) covers everything from buttons, tree controls, data tables, inputs, text areas, and more…
@@ -76,13 +97,13 @@ Predefined themes ensure your apps will look good out of the box.
+ +  + + | + ++ + + + | + +
! + + [数据表格](images/screenshot4.gif) + + | + ++ + + + | + +
+ + + + | + ++ + + + | + + +
^k2m
zmomPO4s_MV$nyxdFPI79TDf2PNpwiEKt7&W#Ag)sEt2~uVopw!x|$IZm~_c;?f{kd
znH3_}I}`{{;T>%K5V;rgVm6T44OoKehP<)=6IMa#Pe8I2bm)U52r*|3SiBIXaDo-;
zxdxr?VG?)1gdj8=>1P3#5{f`>XT@8iPy*ve2QFY#-ggLR23a}h2Ud`6RsaRprU!K3
z1d=cWbZ`eUl?akRNq=An-82CiRSAS31&&r+41ouQ=6=bv0a>>Ob+CcZG-oXm2v~Lq
zcK`)`kb2Be2$aMManN4fRtd~738+;9#Kl|4w0MMYY82prK4uE`)ORK}eRjY|h!6*i
zKz7Uk2_7T`hH!s(-~wRCY9){e3P%SYrc@*52gsCRJID%Q)rBgEcw9(+>jp`jP-vr8
z3XM>Iac~EZ5Pvnres{o4fKY}|fO~fT0EAEYQBswAE|7jw5L%6pejjLq6Of3I;Dw36
ziMZqfjL-;nM+uoUgBYlR92ioVfMQEGR>1Xh0A~t`unEoNZ-9VtrzLQ%1QEzqb~{iA
z>gEJ8_=SKl34%a%5eA4)f&!($cxzOGn_vZTKwFdch`9K6S62|9ux`25SgY6y>X%m}
zSPCYHf}=nsV)%)61_-0~OaYitU6*W2H3X4>dm?xVP+$rpI0S~!g=Uoszi1GRUt7I{lwSWeSG}$*MEQh`}dz|%E(VP^{L;Zg5s4I(SZ>g;YQ>v;NO4^<;dE~G2W+Td}tO&Mc7ye2j1Zj6lRjfcLXmb?kV-}23jL14rb_Z{n
zXo9%jv#XpbAu;c&|p4`A|1gD?an_M5aDf)-&BK)A%gQi7Xqc
zYzN(JXI=i+6WQ)mIbOOse(^a$6FH$&xskfLvGKVH6S*l=c^SHS+3|V#6M4l{`Q^I#
z)$#fD6Zy?l1#J`gmazpr69s)#g@d|
^@2VlG3#h+Py81u^{p~_jPtV
zoyW)5?HkIqd+avJEMdbT6X$tz$hEJR_6>{Lg)?3iBbxCa%}b^M&K1%;$A~DiB70j(dWQ|_6O`38dM-tHlYdE=!JwI1^54!SIEEbH~CpL?qc=NRE-lG
zwZ#0BRpYL1BK
eCOne-&ba9%2MIAG8Z`z<|47IoTl)??I?XmoOI+
z?(*TwE(Laf07nh*(L-=pDB#u!xPGaQP(