A Python library that makes beautiful text bubbles in your terminal using NerdFont icons.
pip install bubblewrap-cli
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())