# name: test_buttons_render ''' ButtonsApp Standard ButtonsDisabled Buttons ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔  Default  Default  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔  Primary!  Primary!  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔  Success!  Success!  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔  Warning!  Warning!  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔  Error!  Error!  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ''' # --- # name: test_checkboxes ''' CheckboxApp Example checkboxes ▔▔▔▔▔▔▔▔ off:      ▁▁▁▁▁▁▁▁ ▔▔▔▔▔▔▔▔ on:       ▁▁▁▁▁▁▁▁ ▔▔▔▔▔▔▔▔ focused:  ▁▁▁▁▁▁▁▁ ▔▔▔▔▔▔▔▔ custom:   ▁▁▁▁▁▁▁▁ ''' # --- # name: test_columns_height ''' HeightApp ┌──────────────────────────────────────────────────────────────────────────────┐ ┌────────────────────┐┌────────────────┐┌──────────────────────┐ As tall as containerThis has defaultI have a static height height but a few lines └────────────────┘ └────────────────────┘└──────────────────────┘ └──────────────────────────────────────────────────────────────────────────────┘ ''' # --- # name: test_css_property[align.py] ''' AlignApp ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ Vertical alignment with Textual ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ Take note, browsers. ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ''' # --- # name: test_css_property[background.py] ''' BackgroundApp Widget 1 Widget 2 Widget 3 ''' # --- # name: test_css_property[border.py] ''' BorderApp ┌────────────────────────────────────────────────────────────────────────────┐ My border is solid red └────────────────────────────────────────────────────────────────────────────┘ ┏╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍┓ My border is dashed green ┗╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍┛ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ My border is tall blue ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ''' # --- # name: test_css_property[box_sizing.py] ''' BoxSizingApp ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ I'm using border-box! ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ I'm using content-box! ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ ''' # --- # name: test_css_property[color.py] ''' ColorApp I'm red! I'm rgb(0, 255, 0)! I'm hsl(240, 100%, 50%)! ''' # --- # name: test_css_property[content_align.py] ''' ContentAlignApp With content-align you can... ...Easily align content... ...Horizontally and vertically! ''' # --- # name: test_css_property[display.py] ''' DisplayApp ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃Widget 1 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃Widget 3 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ''' # --- # name: test_css_property[grid.py] ''' GridApp Grid cell 1Grid cell 2 row-span: 3; column-span: 2; Grid cell 3 Grid cell 4 Grid cell 5Grid cell 6Grid cell 7 ''' # --- # name: test_css_property[height.py] ''' HeightApp Widget ''' # --- # name: test_css_property[layout.py] ''' LayoutApp Layout Is Vertical LayoutIsHorizontal ''' # --- # name: test_css_property[links.py] ''' LinksApp Here is a link which you can click! Here is a link which you can click! ''' # --- # name: test_css_property[margin.py] ''' MarginApp ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 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. And when it has gone past, I will turn the inner eye to see  its path. Where the fear has gone there will be nothing. Only I will  remain. ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ ''' # --- # name: test_css_property[offset.py] ''' OffsetApp ▛▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▜ ▛▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▜ Paul (offset 8 2) Chani (offset 0 5)▐ ▛▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▙▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ Duncan (offset ▙▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▟ 10) ▙▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▟ ''' # --- # name: test_css_property[opacity.py] ''' OpacityApp ▛▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▜ opacity: 25% ▙▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▟ ▛▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▜ opacity: 50% ▙▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▟ ▛▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▜ opacity: 75% ▙▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▟ ▛▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▜ opacity: 100% ▙▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▟ ''' # --- # name: test_css_property[outline.py] ''' OutlineApp ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ear is the mind-killer. ear is the little-death that brings total obliteration.  will face my fear.  will permit it to pass over me and through me. nd when it has gone past, I will turn the inner eye to see its ath. here the fear has gone there will be nothing. Only I will  ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ ''' # --- # name: test_css_property[overflow.py] ''' OverflowApp ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ I must not fear.I must not fear. Fear is the mind-killer.Fear is the mind-killer. Fear is the little-death that Fear is the little-death that  brings total obliteration.brings total obliteration. I will face my fear.I will face my fear. I will permit it to pass over meI will permit it to pass over me  and through me.and through me. And when it has gone past, I And when it has gone past, I will  will turn the inner eye to see turn the inner eye to see its  its path.▁▁path. Where the fear has gone there Where the fear has gone there will will be nothing. Only I will be nothing. Only I will remain. remain.▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁I must not fear. I must not fear.Fear is the mind-killer. Fear is the mind-killer.Fear is the little-death that  Fear is the little-death that brings total obliteration. brings total obliteration.I will face my fear. I will face my fear.I will permit it to pass over me  I will permit it to pass over meand through me. ''' # --- # name: test_css_property[padding.py] ''' PaddingApp 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. And when it has gone past, I will turn the inner eye to see its  path. Where the fear has gone there will be nothing. Only I will  remain. ''' # --- # name: test_css_property[scrollbar_gutter.py] ''' ScrollbarGutterApp 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. And when it has gone past, I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain. ''' # --- # name: test_css_property[scrollbar_size.py] ''' ScrollbarApp 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. And when it has gone past, I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain. 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.▂▂▂▂ And when it has gone past, I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain. 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. And when it has gone past, I will turn the inner eye to see its path. Where the fear has gone there will be nothing. Only I will remain. ''' # --- # name: test_css_property[scrollbars.py] ''' ScrollbarApp I must not fear.I must not fear. Fear is the mind-killer.Fear is the mind-killer. Fear is the little-death that Fear is the little-death that  brings total obliteration.brings total obliteration. I will face my fear.I will face my fear. I will permit it to pass over I will permit it to pass over  me and through me.▇▇me and through me.▇▇ And when it has gone past, I And when it has gone past, I  will turn the inner eye to seewill turn the inner eye to see its path.its path. Where the fear has gone there Where the fear has gone there  will be nothing. Only I will will be nothing. Only I will  remain.remain. I must not fear.I must not fear. Fear is the mind-killer.Fear is the mind-killer. Fear is the little-death that Fear is the little-death that  brings total obliteration.brings total obliteration. I will face my fear.I will face my fear. I will permit it to pass over I will permit it to pass over  me and through me.me and through me. And when it has gone past, I And when it has gone past, I  ''' # --- # name: test_css_property[text_align.py] ''' 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. ''' # --- # name: test_css_property[text_opacity.py] ''' TextOpacityApp                                text-opacity: 25%                                                                text-opacity: 50%                                                                text-opacity: 75%                                                                text-opacity: 100%                                ''' # --- # name: test_css_property[text_style.py] ''' TextStyleApp I must not fear.I must not fear.I must not fear. Fear is the mind-killer.Fear is the mind-killer.Fear is the mind-killer. Fear is the little-death Fear is the little-death Fear is the little-death  that brings total that brings total that brings total  obliteration.obliteration.obliteration. I will face my fear.I will face my fear.I will face my fear. I will permit it to pass I will permit it to pass I will permit it to pass  over me and through me.over me and through me.over me and through me. And when it has gone past,And when it has gone past, And when it has gone past,  I will turn the inner eye I will turn the inner eye I will turn the inner eye  to see its path.to see its path.to see its path. Where the fear has gone Where the fear has gone Where the fear has gone  there will be nothing. there will be nothing. Onlythere will be nothing. Only Only I will remain.I will remain.I will remain. ''' # --- # name: test_css_property[tint.py] ''' TintApp tint: green 0%; tint: green 10%; tint: green 20%; tint: green 30%; tint: green 40%; tint: green 50%; ▄▄ tint: green 60%; tint: green 70%; ''' # --- # name: test_css_property[visibility.py] ''' VisibilityApp ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃Widget 1 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃Widget 3 ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ''' # --- # name: test_css_property[width.py] ''' WidthApp Widget ''' # --- # name: test_datatable_render ''' TableApp  lane  swimmer               country        time    4     Joseph Schooling      Singapore      50.39   2     Michael Phelps        United States  51.14   5     Chad le Clos          South Africa   51.14   6     László Cseh           Hungary        51.14   3     Li Zhuhao             China          51.26   8     Mehdy Metella         France         51.58   7     Tom Shields           United States  51.73   1     Aleksandr Sadovnikov  Russia         51.84  ''' # --- # name: test_demo ''' Textual Demo Textual Demo ▅▅ TOP ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▃ Widgets Textual Demo Welcome! Textual is a framework for creating sophisticated Rich contentapplications with the terminal.                            ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔  Start  CSS▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔                           Widgets                             CTRL+B  Sidebar  CTRL+T  Toggle Dark mode  CTRL+S  Screenshot  F1  Notes  CTRL+Q  Quit  ''' # --- # name: test_dock_layout_sidebar ''' DockLayoutExample Sidebar1Docking a widget removes it from the layout and  fixes its position, aligned to either the top,  right, bottom, or left edges of a container. Docked widgets will not scroll out of view,  making them ideal for sticky headers, footers,  and sidebars. ▇▇ Docking a widget removes it from the layout and  fixes its position, aligned to either the top,  right, bottom, or left edges of a container. Docked widgets will not scroll out of view,  making them ideal for sticky headers, footers,  and sidebars. Docking a widget removes it from the layout and  fixes its position, aligned to either the top,  right, bottom, or left edges of a container. Docked widgets will not scroll out of view,  making them ideal for sticky headers, footers,  and sidebars. ''' # --- # name: test_footer_render ''' FooterApp  Q  Quit the app  ?  Show help screen  DELETE  Delete the thing  ''' # --- # name: test_fr_units ''' FRApp ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ HEADER ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━━━━━━━━┓┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓┏━━━━━━┓ foobarbaz ┗━━━━━━━━┛┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛┗━━━━━━┛ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ FOOTER ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ''' # --- # name: test_grid_layout_basic ''' GridLayoutExample ┌────────────────────────┐┌─────────────────────────┐┌─────────────────────────┐ OneTwoThree └────────────────────────┘└─────────────────────────┘└─────────────────────────┘ ┌────────────────────────┐┌─────────────────────────┐┌─────────────────────────┐ FourFiveSix └────────────────────────┘└─────────────────────────┘└─────────────────────────┘ ''' # --- # name: test_grid_layout_basic_overflow ''' GridLayoutExample ┌────────────────────────┐┌─────────────────────────┐┌─────────────────────────┐ OneTwoThree └────────────────────────┘└─────────────────────────┘└─────────────────────────┘ ┌────────────────────────┐┌─────────────────────────┐┌─────────────────────────┐ FourFiveSix └────────────────────────┘└─────────────────────────┘└─────────────────────────┘ ┌────────────────────────┐ Seven └────────────────────────┘ ''' # --- # name: test_grid_layout_gutter ''' GridLayoutExample OneTwoThree FourFiveSix ''' # --- # name: test_header_render ''' HeaderApp HeaderApp ''' # --- # name: test_horizontal_layout ''' HorizontalLayoutExample ┌────────────────────────┐┌─────────────────────────┐┌─────────────────────────┐ OneTwoThree └────────────────────────┘└─────────────────────────┘└─────────────────────────┘ ''' # --- # name: test_horizontal_layout_width_auto_dock ''' HorizontalAutoWidth Docke Widget 1Widget 2 left  1Docked left 2 ''' # --- # name: test_input_and_focus ''' InputApp ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Darren                                                                     ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Burns ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ''' # --- # name: test_key_display ''' KeyDisplayApp  ?  Question  ^q  Quit app  Escape!  Escape  A  Letter A  ''' # --- # name: test_layers ''' LayersExample box1 (layer = above) box2 (layer = below) ''' # --- # name: test_list_view ''' ListViewExample One Two Three ''' # --- # name: test_multiple_css ''' MultipleCSSApp #one #two ''' # --- # name: test_nested_auto_heights ''' NestedAutoApp ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━━━┓ ┏━━━━━━━━━━━━━┓ JUST ONE LINE ┗━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ''' # --- # name: test_offsets ''' OffsetsApp ┌──────────────┐ FOO BAR BAZ └──────────────┘ ┌──────────────┐ FOO BAR BAZ └──────────────┘ ''' # --- # name: test_order_independence ''' Layers ┌──────────────────────────────────┐Layers It's full of stars! My God! It's full of sta This should float over the top └──────────────────────────────────┘  T  Toggle Screen  ''' # --- # name: test_order_independence_toggle ''' Layers ┌──────────────────────────────────┐ It's full of stars! My God! It's full of sta This should float over the top └──────────────────────────────────┘  T  Toggle Screen  ''' # --- # name: test_placeholder_render ''' PlaceholderApp Placeholder p2 here! This is a custom label for p1. #p4 #p3#p5Placeholde r Lorem ipsum dolor sit  26 x 6amet, consectetur 27 x 6 adipiscing elit. Etiam  feugiat ac elit sit amet  Lorem ipsum dolor sit amet,  consectetur adipiscing elit. Etiam 40 x 6 feugiat ac elit sit amet accumsan.  Suspendisse bibendum nec libero quis  gravida. Phasellus id eleifend ligula. Nullam imperdiet sem tellus, sed  vehicula nisl faucibus sit amet. Lorem ipsum dolor sit amet,  Praesent iaculis tempor ultricies. Sedconsectetur adipiscing elit. Etiam  lacinia, tellus id rutrum lacinia, feugiat ac elit sit amet accumsan.  sapien sapien congue mauris, sit amet Suspendisse bibendum nec libero quis  ''' # --- # name: test_textlog_max_lines ''' TextLogLines Key press #3                                                                   Key press #4                                                                   Key press #5                                                                   ''' # --- # name: test_tree_example ''' TreeApp ▼ Dune └── ▼ Characters     ├── Paul     ├── Jessica     └── Chani ''' # --- # name: test_vertical_layout ''' VerticalLayoutExample ┌──────────────────────────────────────────────────────────────────────────────┐ One └──────────────────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────────┐ Two └──────────────────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────────────────┐ Three └──────────────────────────────────────────────────────────────────────────────┘ ''' # --- # name: test_visibility ''' Visibility ┌──────────────────────────────────────┐ bar ┌────────────────────────────────────┐┌────────────────────────────────────┐ floatfloat └────────────────────────────────────┘└────────────────────────────────────┘ └──────────────────────────────────────┘ ''' # ---