Skip to main content

A library for creating a terminal user interface

Project description

Colorlib

A library designed for making working with terminal user interfaces easier

Features

Colorlib can

  • Handle colors for you
  • Generate boxes
  • Manipulate text alignment
  • And more

Key features

Colors

Colorlibis designed to make coloring elements a bit easier. You can color logos, ansi art or whatever you'd like and print that out to a terminal. Here's a demo

import src

logo = """
  ██████  ▄▄▄       ███▄ ▄███▓ ██▓███   ██▓    ▓█████    ▄▄▄█████▓▓█████ ▒██   ██▒▄▄▄█████▓
▒██    ▒ ▒████▄    ▓██▒▀█▀ ██▒▓██░  ██▒▓██▒    ▓█   ▀    ▓  ██▒ ▓▒▓█   ▀ ▒▒ █ █ ▒░▓  ██▒ ▓▒
░ ▓██▄   ▒██  ▀█▄  ▓██    ▓██░▓██░ ██▓▒▒██░    ▒███      ▒ ▓██░ ▒░▒███   ░░  █   ░▒ ▓██░ ▒░
  ▒   ██▒░██▄▄▄▄██ ▒██    ▒██ ▒██▄█▓▒ ▒▒██░    ▒▓█  ▄    ░ ▓██▓ ░ ▒▓█  ▄  ░ █ █ ▒ ░ ▓██▓ ░ 
▒██████▒▒ ▓█   ▓██▒▒██▒   ░██▒▒██▒ ░  ░░██████▒░▒████▒     ▒██▒ ░ ░▒████▒▒██▒ ▒██▒  ▒██▒ ░ 
▒ ▒▓▒ ▒ ░ ▒▒   ▓▒█░░ ▒░   ░  ░▒▓▒░ ░  ░░ ▒░▓  ░░░ ▒░ ░     ▒ ░░   ░░ ▒░ ░▒▒ ░ ░▓ ░  ▒ ░░   
░ ░▒  ░ ░  ▒   ▒▒ ░░  ░      ░░▒ ░     ░ ░ ▒  ░ ░ ░  ░       ░     ░ ░  ░░░   ░▒ ░    ░    
░  ░  ░    ░   ▒   ░      ░   ░░         ░ ░      ░        ░         ░    ░    ░    ░      
      ░        ░  ░       ░                ░  ░   ░  ░               ░  ░ ░    ░           
"""

print(src.coloring.colorize_with_gradient(logo, (2, 45, 189), (189, 2, 99), 45).to_ansi_escape_sequences())

img.png

You can also make radial gradients, like this

import src

logo = """
  ██████  ▄▄▄       ███▄ ▄███▓ ██▓███   ██▓    ▓█████    ▄▄▄█████▓▓█████ ▒██   ██▒▄▄▄█████▓
▒██    ▒ ▒████▄    ▓██▒▀█▀ ██▒▓██░  ██▒▓██▒    ▓█   ▀    ▓  ██▒ ▓▒▓█   ▀ ▒▒ █ █ ▒░▓  ██▒ ▓▒
░ ▓██▄   ▒██  ▀█▄  ▓██    ▓██░▓██░ ██▓▒▒██░    ▒███      ▒ ▓██░ ▒░▒███   ░░  █   ░▒ ▓██░ ▒░
  ▒   ██▒░██▄▄▄▄██ ▒██    ▒██ ▒██▄█▓▒ ▒▒██░    ▒▓█  ▄    ░ ▓██▓ ░ ▒▓█  ▄  ░ █ █ ▒ ░ ▓██▓ ░ 
▒██████▒▒ ▓█   ▓██▒▒██▒   ░██▒▒██▒ ░  ░░██████▒░▒████▒     ▒██▒ ░ ░▒████▒▒██▒ ▒██▒  ▒██▒ ░ 
▒ ▒▓▒ ▒ ░ ▒▒   ▓▒█░░ ▒░   ░  ░▒▓▒░ ░  ░░ ▒░▓  ░░░ ▒░ ░     ▒ ░░   ░░ ▒░ ░▒▒ ░ ░▓ ░  ▒ ░░   
░ ░▒  ░ ░  ▒   ▒▒ ░░  ░      ░░▒ ░     ░ ░ ▒  ░ ░ ░  ░       ░     ░ ░  ░░░   ░▒ ░    ░    
░  ░  ░    ░   ▒   ░      ░   ░░         ░ ░      ░        ░         ░    ░    ░    ░      
      ░        ░  ░       ░                ░  ░   ░  ░               ░  ░ ░    ░           
"""

print(src.coloring.colorize_with_circle_gradient(logo, (2, 45, 189), (189, 2, 99), 60, 0.4,
                                                 0.2).to_ansi_escape_sequences())

img.png

Box generation

Colorlib can generate boxes for you, for text you input. An example:

from src import colorlib

logo = """This text is multiline
I can type whatever I want and the box will fit it
This is a nice library"""

print(src.colorlib.boxes.generate_text_box(logo, src.colorlib.boxes.BoxTypes.rounded.value))

img.png

You can also change the box layout, see BoxType in boxes.py

Manipulate text alignment

Colorlib can also help you align text, here's an example

import src

logo = """This text is centered
It is centered because I want it to be
Very nice, will fit whatever"""

print(src.text_manipulation.center_text_in_itself(logo))

img.png

You can also right align text:

import src

logo = """This text is right aligned
Just because, no particular reason
Nice weather outside today, isn't it?"""

print(src.text_manipulation.right_align_text(logo))

img.png

There are many more features, the api is pretty self explanatory.

Support

You can show your support by leaving a star on this repo, which would help me out a lot! Also, if you find any bugs, don't hesitate to open up an issue for it.

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

tui-colorlib-1.0.4.tar.gz (7.1 kB view hashes)

Uploaded Source

Built Distribution

tui_colorlib-1.0.4-py3-none-any.whl (6.8 kB view hashes)

Uploaded Python 3

Supported by

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