Skip to content


The text-align rule aligns text within a widget.


text-align: [left|start|center|right|end|justify];


Value Description
left Left aligns text in the widget
start Left aligns text in the widget
center Center aligns text in the widget
right Right aligns text in the widget
end Right aligns text in the widget
justify Justifies text in the widget


This example shows, from top to bottom: left, center, right, and justify text alignments.

from __future__ import annotations

from import App, ComposeResult
from textual.widgets import Static

TEXT = (
    "I must not fear. Fear is the mind-killer. Fear is the little-death that "
    "brings total obliteration. I will face my fear. I will permit it to pass over "
    "me and through me."

class TextAlign(App):
    def compose(self) -> ComposeResult:
        left = Static("[b]Left aligned[/]\n" + TEXT, id="one")
        yield left

        right = Static("[b]Center aligned[/]\n" + TEXT, id="two")
        yield right

        center = Static("[b]Right aligned[/]\n" + TEXT, id="three")
        yield center

        full = Static("[b]Justified[/]\n" + TEXT, id="four")
        yield full

app = TextAlign(css_path="text_align.css")
#one {
  text-align: left;
  background: lightblue;


#two {
  text-align: center;
  background: indianred;

#three {
  text-align: right;
  background: palegreen;

#four {
  text-align: justify;
  background: palevioletred;

Static {
  padding: 1;

TextAlign Left aligned I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and  through me.                                                                    Center aligned I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and                                   through me.                                   Right aligned I must not fear. Fear is the mind-killer. Fear is the little-death that brings  total obliteration. I will face my fear. I will permit it to pass over me and                                                                    through me. Justified I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me  and through me.


/* Set text in all Widgets to be right aligned */
Widget {
    text-align: right;


# Set text in the widget to be right aligned
widget.styles.text_align = "right"