/bubblewrap

🧼 A Python library that makes beautiful text bubbles in your terminal using NerdFont icons

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Bubblewrap

GitHub Super-Linter

bubbles

A Python library that makes beautiful text bubbles in your terminal using NerdFont icons.

Install

pip install bubblewrap-cli

Usage

The easiest way to use bubblewrap is with the Rich library.

from bubblewrap import Bubbles
from rich.console import Console

b = Bubbles()
c = Console()
print()
c.print(b.get_rich_bubble("This is text", bg_color="purple"))
print()
c.print(b.get_rich_bubble("Bubblewrap!", bg_color="dark_green", fg_color="grey66"))
print()

You can also use your own ANSI codes

from bubblewrap import Bubbles

b = Bubbles()

print()
# takes the text, circle style (an fg color), test style (the bg color same as fg color
# foreground and optionally it's own fg color), reset (your ANSI reset sequence)
print(b.get_ansi_bubbles("Ayo how are you?", "\033[31m", "\033[32;41m", "\033[0m"))
print()

Alternatively, you can link bubbles together:

from bubblewrap import Bubbles
from rich.console import Console

b = Bubbles()
c = Console()

print()
# default divider is an arrow
c.print(b.get_rich_chain("Fri 09:45", "white", "black")
         .link("直 Wi-Fi", "orange3", "white")
         .link("ï•¿ Charging", "bright_green", "black").end())
# semi-circle divider
c.print(b.get_rich_chain("Fri 09:45", "white", "black", divider="î‚´")
         .link("直 Wi-Fi", "orange3", "white")
         .link("ï•¿ Charging", "bright_green", "black").end())

print()
print(b.get_ansi_chain("~/Projects", "\033[37;45m", "\033[0m")
       .link("bubblewrap", "\033[30;46m")
       .link("שׂ main", "\033[30;43m").end())

Implementation

CLI's are becoming more colorful and graphical all the time. At the same time tools like starship and ohmyzsh are popularising the use of NerdFonts due to their beautiful icons and characters.
Meanwhile, UI's in general are becoming more rounded, look at the latest macOS, Windows, YouTube or Spotify GUI updates, design is moving towards bubbled and rounded looks.

With the rise of beautiful CLI's, the rising popularity of NerdFonts and the world's obssession with the rounded look, bubblewrap is the perfect way to make your CLI stand out.

But not everyone uses NerdFonts right? If you don't wish your CLI to be NerdFont dependant, simply add a CLI arguement that allows users to toggle bubblewrapped text on/off or add that option to your program's config file.

Example

bubbles

Contributors 🌟