Skip to main content

A Sliding Container widget for Textual

Project description

textual-slidecontainer

This is a library that provides a custom Container (widget) called the SlideContainer.

It is designed to make it extremely simple to implement a sliding menu bar in yor Textual apps.

Features

  • Usage is a single line of code with the default settings. Everything is handled automatically.
  • Set the direction - Containers can slide to the left, right, top, or bottom, independently of where they are on the screen.
  • Enable or disable Floating mode - With a simple boolean, containers can switch between floating on top of your app, or being a part of it and affecting the layout.
  • Set the default state - Containers can be set to start in closed mode.
  • Fade in/out - Containers can be set to fade while they slide
  • Set the container to dock as an initialization argument.
  • Floating containers automatically dock to the edge they move towards (this can be changed).
  • Change how the animation looks with the duration and easing_function arguments.
  • Included demo application which has comments in the code.

Installation

Install with:

pip install textual-slidecontainer

Import into your project with:

from textual_slidecontainer import SlideContainer

Demo app

(FILL IN DETAILS)

Usage

Most basic usage.:

from textual_slidecontainer import SlideContainer

def compose(self):
    with SlideContainer(id = "my_slidecontainer", slide_direction = "up"):
        yield Static("Your widgets here")

Set the container's width and height in CSS as you usually would. Note that the above example will dock to the top of your screen automatically because it is in floating mode (the default).

Many people will want it to start closed / hidden. Simply set the default state to False:

def compose(self):
    with SlideContainer(
        id = "my_slidecontainer", slide_direction = "left", default_state = False      
    ):
        yield Static("Your widgets here")

You can keep it docked to the top, but change the slight direction:

def compose(self):
    with SlideContainer(
        id = "my_slidecontainer", slide_direction = "right", dock_direction = "top"       
    ):
        yield Static("Your widgets here")

Here's an example using all the arguments:

with SlideContainer(
    classes = "my_container_classes",
    id = "my_slidecontainer",
    default_state = False         # False = closed
    slide_direction = "left",
    dock_direction = "top",      # dock to the top but slide left
    floating = False,
    fade = True,
    duration = 0.6,                   # the default is 0.8     
    easing_function = "out_cubic",    # default is the same as Textual's default: "in_out_cubic".                           
):
    yield Static("Your widgets here")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

textual_slidecontainer-0.1.0.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

textual_slidecontainer-0.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file textual_slidecontainer-0.1.0.tar.gz.

File metadata

File hashes

Hashes for textual_slidecontainer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0e5d95f6aa23c8fe3af88577ba1f9c86c1b4510e1523108e71ae170f949b4989
MD5 26fe0444887268ddafe519bbe3f32dbb
BLAKE2b-256 a1f8e3372b4b3fd0badb4ea6f6deec802618d85d5169ddb40c3b77ddd369cd28

See more details on using hashes here.

File details

Details for the file textual_slidecontainer-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for textual_slidecontainer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 afaaabf32c4bf90c79a84b9277d1980ca03cf0a34fbb0c239385526c056b376d
MD5 b17ac8b64e3719becc9cd05f2febcf18
BLAKE2b-256 578deae000702cf6ccdc3c0365163621fc4e74d9007be42a2856816a482affe5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page