![Logo](https://raw.githubusercontent.com/faissaloux/termspark/main/.github/art/logo.png)
[![Test Python package](https://github.com/faissaloux/termspark/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/faissaloux/termspark/actions/workflows/tests.yml) [![codecov](https://codecov.io/gh/faissaloux/termspark/branch/main/graph/badge.svg)](https://codecov.io/gh/faissaloux/termspark) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/faissaloux/termspark/main.svg)](https://results.pre-commit.ci/latest/github/faissaloux/termspark/main) ![PyPI](https://img.shields.io/pypi/v/termspark) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/termspark) ![PyPI - Status](https://img.shields.io/pypi/status/termspark)
# Installation
```bash
pip install termspark
```
# Usage
- [`print()`](#print-but-more)
- [`input()`](#input)
- [`line()`](#line)
- [paint](#you-can-use-different-styles-on-same-position)
- [`raw()`](#raw)
- [force Width](#force-width)
- [max width](#set-content-max-width)
- [`full_width()`](#full-width)
- [separator](#separator)
- [`Termspark().line()`](#line-1)
- [RGB](#rgb)
- [HEX](#hex)
- [style](#style)
- [hyperlinks](#hyperlinks)
- [supported colors](#supported-colors)
### `print()`, but more!
Import Termspark's print and take advantage of all its features, [colors](#you-can-also-paint-your-content), [highlights](#you-can-also-paint-your-content), [styles](#style), [hyperlinks](#hyperlinks) and more ...
```python
from termspark import print
print(" Termspark ", "white", "blue", "italic")
print(" [@termspark](https://github.com/faissaloux/termspark) ", "black", "white", "italic, bold")
```
![](https://github.com/faissaloux/termspark/assets/60013703/2fcdf8c7-dca6-4bb7-9557-e307173c5ab2)
You can choose from `["left", "center", "right"]` to specify where to print by passing it as position parameter:
`print(" Termspark ", position="center")`.
You can enable the Full Width using full_width parameter:
`print(" Termspark ", highlight="blue", full_width=True)`.
You can fill the empty space by a character using `print(separator=)`.
```python
from termspark import print
print(" TERMSPARK ", "white", "green", position="center", separator="_")
```
![](https://github.com/faissaloux/termspark/assets/60013703/b6c38ae1-ec25-4abb-a078-1309c3234a62)
### `input()`
input with colors, highlights, styles, and hyperlinks.
With `input(position=)` you can specify position where to put your input text `["left", "center", "right"]`.
With `input(full_width=)` you can enable full width `True | False`.
```python
from termspark import input
name = input(" What's your name? ", "white", "blue", "italic", "center", True)
```
![](https://github.com/faissaloux/termspark/assets/60013703/8077eb19-07b5-4f32-b1bb-b00be7860eba)
#### Input Type
You can specify the input type by passing it to the `type=` parameter.
For a calculation example, to pass the input value into a calculation you don't need to convert it to `int` anymore, you just need to set it from `type` argument 🥳 .
```python
from termspark import input
birthyear = input(" Your year birth? ", "white", "blue", type=int)
print(f"Your age is: {2023 - birthyear}")
```
#### Input Callback
the `input()` supports callback too.
If you need to pass the input value into some function before returning the result, you need to pass it into the `callback=` argument.
```python
from termspark import input
def age_calc(birthyear, currentyear=2023):
return currentyear - birthyear
age = input(" Your year birth? ", "white", "blue", type=int, callback=age_calc)
print(f"Your age is: {age}")
```
You can use separator in `input(separator=)` too.
```python
from termspark import input
name = input(" What's your name?", "white", "blue", position="left", separator=".")
```
![](https://github.com/faissaloux/termspark/assets/60013703/b4a4f5b0-ff55-4079-8a82-a6c5a0ba0973)
### `line()`
To print empty line use `line()`, you can leave it empty or fill it with a repeated character, you can specify its color too.
```python
from termspark import line
line(".", "blue")
line(highlight="green")
line()
line("-")
```
![](https://github.com/faissaloux/termspark/assets/60013703/210a5778-e7c8-4031-a49f-6f09f41dc23e)
## More control
```python
from termspark import TermSpark
TermSpark().print_right('RIGHT').spark()
TermSpark().spark_right('RIGHT').spark()
TermSpark().print_left('LEFT').spark()
TermSpark().spark_left('LEFT').spark()
TermSpark().print_center('CENTER').spark()
TermSpark().spark_center('CENTER').spark()
TermSpark().line('.').spark()
TermSpark().print_left('LEFT').print_right('RIGHT').set_separator('.').spark()
TermSpark().print_left('LEFT').print_center('CENTER').print_right('RIGHT').set_separator('.').spark()
TermSpark().spark_left('LEFT').spark_center('CENTER').spark_right('RIGHT').set_separator('.').spark()
```
> [!NOTE]
> Separator can contain only one character.
### You can also paint your content
#### text color
```python
from termspark import TermSpark
TermSpark().print_right('RIGHT', 'blue').spark()
TermSpark().print_left('LEFT', 'light red').spark()
TermSpark().print_center('CENTER', 'light_green').spark()
```
#### background color
```python
from termspark import TermSpark
TermSpark().print_right('RIGHT', None, 'light_magenta').spark()
TermSpark().print_left('LEFT', 'red', 'white').spark()
TermSpark().print_center('CENTER', 'white', 'light blue').spark()
```
### You can use different styles on same position
```python
from termspark import TermSpark
TermSpark().spark_left([' * ', 'gray', 'white'], [' Info ', 'white', 'blue']).spark()
TermSpark().spark_center([' * ', 'gray', 'white'], [' Warning ', 'white', 'yellow']).spark()
TermSpark().spark_right([' * ', 'gray', 'white'], [' Error ', 'white', 'red']).spark()
```
`You know you can use them all together 😉`
### Lines are too long to write a termspark line! 😑
```python
from termspark import TermSpark
TermSpark().spark_left([' * ', 'gray', 'white'], [' Info ', 'white', 'blue']).spark_center([' * ', 'gray', 'white'], [' Warning ', 'white', 'yellow']).spark_right([' * ', 'gray', 'white'], [' Error ', 'white', 'red']).spark()
```
#### You can separate them by calling each function in a line 🤤
```python
from termspark import TermSpark
termspark = TermSpark()
termspark.spark_left([' * ', 'gray', 'white'], [' Info ', 'white', 'blue'])
termspark.spark_center([' * ', 'gray', 'white'], [' Warning ', 'white', 'yellow'])
termspark.spark_right([' * ', 'gray', 'white'], [' Error ', 'white', 'red'])
termspark.spark()
```
#### Still too long 🙄 Got you 🤩
```python
from termspark import TermSpark
termspark = TermSpark()
termspark.spark_left([' * ', 'gray', 'white'])
termspark.spark_left(' Info ', 'white', 'blue')
termspark.spark_center([' * ', 'gray', 'white'])
termspark.spark_center([' Warning ', 'white', 'yellow'])
termspark.spark_right(' * ', 'gray', 'white')
termspark.spark_right([' Error ', 'white', 'red'])
termspark.spark()
```
### Raw
You can print raw version which is colors-code-free so you can print clean text into files for example.
```python
from termspark import TermSpark
raw = TermSpark().print_left('LEFT').print_right('RIGHT').set_separator('.').raw()
```
### Force Width
You can customize width instead of the default full terminal width.
```python
from termspark import TermSpark
TermSpark().set_width(40).print_left("LEFT", "red").print_right("RIGHT", "blue").spark()
```
### Set content max width
You can specify max width of content depending on position using `max_[position](max_characters)`.
```python
from termspark import TermSpark
termspark = TermSpark()
termspark.spark_left(["LEFT", "red"])
termspark.spark_right(["RIGHT", "blue"])
termspark.max_left(2)
termspark.max_right(3)
termspark.spark()
```
This should show only "LE" on the left, and "RIG" on the right.
> [!WARNING]
> `max_[position]()` is only supported by sparkers.
### Full width
You can enable full width by using `full_width()`.
```python
from termspark import TermSpark
termspark = TermSpark()
termspark.spark_center(['Thanks for using Termspark!', 'white', 'green'])
termspark.full_width()
termspark.spark()
```
> [!WARNING]
> `full_width()` can only be used with one position.
### Separator
You can add color and highlight to separator too using `set_separator(content, color, highlight)`.
```python
termspark = TermSpark()
termspark.spark_left([' Author ', 'green'])
termspark.spark_right([' Faissal Wahabali ', 'green'])
termspark.set_separator('.', 'green')
termspark.spark()
```
![](https://github.com/faissaloux/termspark/assets/60013703/5cf5039c-66c5-4fbc-9e4a-cb39332a2fb6)
### Line
You can add highlight a line by using `line(highlight=highlight)`.
```python
termspark = TermSpark()
termspark.line(highlight='green')
termspark.spark()
```
![](https://github.com/faissaloux/termspark/assets/60013703/41be7d15-4cab-4f73-a460-89c6d254db78)
### RGB
```python
from termspark import print, line
# String RGB
print(" RGB! ", color="255,255,255", highlight="36,114,200")
line(highlight="36,114,200")
# Tuple RGB
print(" Tuple RGB! ", color=(255, 255, 255), highlight=(36, 114, 200))
line(highlight=(36,114,200))
```
### HEX
```python
from termspark import print, line
print(" HEX! ", color="#FFF", highlight="#2472C8")
line(highlight="#2472C8")
```
### Style
You can style your text by passing it to `print() style parameter` or to `spark([]) fourth list element`.
**Supported styles:**
- bold
- dim
- italic
- overline
- underline
- curly underline
- dotted underline
- dashed underline
- double underline
- strike through
- blink
- reverse
- hidden
> [!NOTE]
> You can mix styles by separating them by commas.
```python
termspark = TermSpark()
termspark.print_center(' Termspark ', 'green', style='underline, overline, italic')
termspark.full_width()
termspark.spark()
```
![](https://github.com/faissaloux/termspark/assets/60013703/46f4b13d-9d06-4327-85f6-877732b49fba)
### Hyperlinks
You can insert hyperlink using Markdown `[TEXT](LINK)`.
```python
termspark = TermSpark()
termspark.spark_left([" Author ", "green"])
termspark.spark_right([" [@faissaloux](https://github.com/faissaloux) ", "green"])
termspark.set_separator(".", "green")
termspark.spark()
```
![](https://github.com/faissaloux/termspark/assets/60013703/ce829c1a-f14e-419c-80d0-aa202e5608dc)
### Supported colors
| Color | Name | HEX |
| ----------------------------------------------------------- | ------------------- | ------- |
| ![#000000](https://placehold.it/40x40/000000/ffffff?text= ) | black | #000000 |
| ![#800000](https://placehold.it/40x40/800000/ffffff?text= ) | maroon | #800000 |
| ![#008000](https://placehold.it/40x40/008000/ffffff?text= ) | green | #008000 |
| ![#808000](https://placehold.it/40x40/808000/ffffff?text= ) | olive | #808000 |
| ![#000080](https://placehold.it/40x40/000080/ffffff?text= ) | navy | #000080 |
| ![#800080](https://placehold.it/40x40/800080/ffffff?text= ) | purple | #800080 |
| ![#008080](https://placehold.it/40x40/008080/ffffff?text= ) | teal | #008080 |
| ![#c0c0c0](https://placehold.it/40x40/c0c0c0/ffffff?text= ) | silver | #C0C0C0 |
| ![#808080](https://placehold.it/40x40/808080/ffffff?text= ) | gray | #808080 |
| ![#808080](https://placehold.it/40x40/808080/ffffff?text= ) | grey | #808080 |
| ![#ff0000](https://placehold.it/40x40/ff0000/ffffff?text= ) | red | #FF0000 |
| ![#00ff00](https://placehold.it/40x40/00ff00/ffffff?text= ) | lime | #00FF00 |
| ![#ffff00](https://placehold.it/40x40/ffff00/ffffff?text= ) | yellow | #FFFF00 |
| ![#0000ff](https://placehold.it/40x40/0000ff/ffffff?text= ) | blue | #0000FF |
| ![#ff00ff](https://placehold.it/40x40/ff00ff/ffffff?text= ) | fuchsia | #FF00FF |
| ![#00ffff](https://placehold.it/40x40/00ffff/ffffff?text= ) | aqua | #00FFFF |
| ![#ffffff](https://placehold.it/40x40/ffffff/ffffff?text= ) | white | #FFFFFF |
| ![#00005f](https://placehold.it/40x40/00005f/ffffff?text= ) | navy blue | #00005F |
| ![#000087](https://placehold.it/40x40/000087/ffffff?text= ) | dark blue | #000087 |
| ![#0000af](https://placehold.it/40x40/0000af/ffffff?text= ) | dark blue 2 | #0000AF |
| ![#0000d7](https://placehold.it/40x40/0000d7/ffffff?text= ) | dark blue 1 | #0000D7 |
| ![#005f00](https://placehold.it/40x40/005f00/ffffff?text= ) | dark green | #005F00 |
| ![#005f5f](https://placehold.it/40x40/005f5f/ffffff?text= ) | blue stone | #005F5F |
| ![#005f87](https://placehold.it/40x40/005f87/ffffff?text= ) | orient | #005F87 |
| ![#005faf](https://placehold.it/40x40/005faf/ffffff?text= ) | endeavour | #005FAF |
| ![#005fd7](https://placehold.it/40x40/005fd7/ffffff?text= ) | science blue | #005FD7 |
| ![#005fff](https://placehold.it/40x40/005fff/ffffff?text= ) | blue ribbon | #005FFF |
| ![#008700](https://placehold.it/40x40/008700/ffffff?text= ) | japanese laurel | #008700 |
| ![#00875f](https://placehold.it/40x40/00875f/ffffff?text= ) | deep sea | #00875F |
| ![#008787](https://placehold.it/40x40/008787/ffffff?text= ) | turquoise | #008787 |
| ![#0087af](https://placehold.it/40x40/0087af/ffffff?text= ) | deep cerulean | #0087AF |
| ![#0087d7](https://placehold.it/40x40/0087d7/ffffff?text= ) | lochmara | #0087D7 |
| ![#0087ff](https://placehold.it/40x40/0087ff/ffffff?text= ) | azure radiance | #0087FF |
| ![#00af00](https://placehold.it/40x40/00af00/ffffff?text= ) | islamic green | #00AF00 |
| ![#00af5f](https://placehold.it/40x40/00af5f/ffffff?text= ) | spring green | #00AF5F |
| ![#00af87](https://placehold.it/40x40/00af87/ffffff?text= ) | dark cyan | #00AF87 |
| ![#00afaf](https://placehold.it/40x40/00afaf/ffffff?text= ) | light sea green | #00AFAF |
| ![#00afd7](https://placehold.it/40x40/00afd7/ffffff?text= ) | cerulean | #00AFD7 |
| ![#00afff](https://placehold.it/40x40/00afff/ffffff?text= ) | blue bolt | #00AFFF |
| ![#00d700](https://placehold.it/40x40/00d700/ffffff?text= ) | electric green | #00D700 |
| ![#00d75f](https://placehold.it/40x40/00d75f/ffffff?text= ) | malachite | #00D75F |
| ![#00d787](https://placehold.it/40x40/00d787/ffffff?text= ) | caribbean green | #00D787 |
| ![#00d7af](https://placehold.it/40x40/00d7af/ffffff?text= ) | cyan 1 | #00D7AF |
| ![#00d7d7](https://placehold.it/40x40/00d7d7/ffffff?text= ) | dark turquoise | #00D7D7 |
| ![#00d7ff](https://placehold.it/40x40/00d7ff/ffffff?text= ) | vivid sky blue | #00D7FF |
| ![#00ff00](https://placehold.it/40x40/00ff00/ffffff?text= ) | electric green 1 | #00FF00 |
| ![#00ff5f](https://placehold.it/40x40/00ff5f/ffffff?text= ) | guppie green | #00FF5F |
| ![#00ff87](https://placehold.it/40x40/00ff87/ffffff?text= ) | spring green 1 | #00FF87 |
| ![#00ffaf](https://placehold.it/40x40/00ffaf/ffffff?text= ) | medium spring green | #00FFAF |
| ![#00ffd7](https://placehold.it/40x40/00ffd7/ffffff?text= ) | sea green | #00FFD7 |
| ![#00ffff](https://placehold.it/40x40/00ffff/ffffff?text= ) | cyan | #00FFFF |
| ![#5f0000](https://placehold.it/40x40/5f0000/ffffff?text= ) | rosewood | #5F0000 |
| ![#5f005f](https://placehold.it/40x40/5f005f/ffffff?text= ) | pompadour | #5F005F |
| ![#5f0087](https://placehold.it/40x40/5f0087/ffffff?text= ) | pigment indigo | #5F0087 |
| ![#5f00af](https://placehold.it/40x40/5f00af/ffffff?text= ) | purple 3 | #5F00AF |
| ![#5f00d7](https://placehold.it/40x40/5f00d7/ffffff?text= ) | electic violet | #5F00D7 |
| ![#5f00ff](https://placehold.it/40x40/5f00ff/ffffff?text= ) | blue violet | #5F00FF |
| ![#5f5f00](https://placehold.it/40x40/5f5f00/ffffff?text= ) | verdun green | #5F5F00 |
| ![#5f5f5f](https://placehold.it/40x40/5f5f5f/ffffff?text= ) | scorpion | #5F5F5F |
| ![#5f5f87](https://placehold.it/40x40/5f5f87/ffffff?text= ) | comet | #5F5F87 |
| ![#5f5faf](https://placehold.it/40x40/5f5faf/ffffff?text= ) | scampi | #5F5FAF |
| ![#5f5fd7](https://placehold.it/40x40/5f5fd7/ffffff?text= ) | indigo | #5F5FD7 |
| ![#5f5fff](https://placehold.it/40x40/5f5fff/ffffff?text= ) | cornflower blue 1 | #5F5FFF |
| ![#5f8700](https://placehold.it/40x40/5f8700/ffffff?text= ) | limeade | #5F8700 |
| ![#5f875f](https://placehold.it/40x40/5f875f/ffffff?text= ) | glade green | #5F875F |
| ![#5f8787](https://placehold.it/40x40/5f8787/ffffff?text= ) | juniper | #5F8787 |
| ![#5f87af](https://placehold.it/40x40/5f87af/ffffff?text= ) | hippie blue | #5F87AF |
| ![#5f87d7](https://placehold.it/40x40/5f87d7/ffffff?text= ) | havelock blue | #5F87D7 |
| ![#5f87ff](https://placehold.it/40x40/5f87ff/ffffff?text= ) | cornflower blue | #5F87FF |
| ![#5faf00](https://placehold.it/40x40/5faf00/ffffff?text= ) | limea | #5FAF00 |
| ![#5faf5f](https://placehold.it/40x40/5faf5f/ffffff?text= ) | fern | #5FAF5F |
| ![#5faf87](https://placehold.it/40x40/5faf87/ffffff?text= ) | silver tree | #5FAF87 |
| ![#5fafaf](https://placehold.it/40x40/5fafaf/ffffff?text= ) | tradewind | #5FAFAF |
| ![#5fafd7](https://placehold.it/40x40/5fafd7/ffffff?text= ) | shakespeare | #5FAFD7 |
| ![#5fafff](https://placehold.it/40x40/5fafff/ffffff?text= ) | malibu | #5FAFFF |
| ![#5fd700](https://placehold.it/40x40/5fd700/ffffff?text= ) | bright green | #5FD700 |
| ![#5fd75f](https://placehold.it/40x40/5fd75f/ffffff?text= ) | pale green | #5FD75F |
| ![#5fd787](https://placehold.it/40x40/5fd787/ffffff?text= ) | pastel green | #5FD787 |
| ![#5fd7af](https://placehold.it/40x40/5fd7af/ffffff?text= ) | downy | #5FD7AF |
| ![#5fd7d7](https://placehold.it/40x40/5fd7d7/ffffff?text= ) | viking | #5FD7D7 |
| ![#5fd7ff](https://placehold.it/40x40/5fd7ff/ffffff?text= ) | steel blue | #5FD7FF |
| ![#5fff00](https://placehold.it/40x40/5fff00/ffffff?text= ) | chartreuse | #5FFF00 |
| ![#5fff5f](https://placehold.it/40x40/5fff5f/ffffff?text= ) | screaming green | #5FFF5F |
| ![#5fff87](https://placehold.it/40x40/5fff87/ffffff?text= ) | sea green 1 | #5FFF87 |
| ![#5fffaf](https://placehold.it/40x40/5fffaf/ffffff?text= ) | aquamarine 1 | #5FFFAF |
| ![#5fffd7](https://placehold.it/40x40/5fffd7/ffffff?text= ) | aquamarine 2 | #5FFFD7 |
| ![#5fffff](https://placehold.it/40x40/5fffff/ffffff?text= ) | aquamarine | #5FFFFF |
| ![#870000](https://placehold.it/40x40/870000/ffffff?text= ) | dark red | #870000 |
| ![#87005f](https://placehold.it/40x40/87005f/ffffff?text= ) | fresh eggplant | #87005F |
| ![#870087](https://placehold.it/40x40/870087/ffffff?text= ) | dark magenta | #870087 |
| ![#8700af](https://placehold.it/40x40/8700af/ffffff?text= ) | purple 2 | #8700AF |
| ![#8700d7](https://placehold.it/40x40/8700d7/ffffff?text= ) | electric violet | #8700D7 |
| ![#8700ff](https://placehold.it/40x40/8700ff/ffffff?text= ) | purple 1 | #8700FF |
| ![#875f00](https://placehold.it/40x40/875f00/ffffff?text= ) | brown | #875F00 |
| ![#875f5f](https://placehold.it/40x40/875f5f/ffffff?text= ) | copper rose | #875F5F |
| ![#875f87](https://placehold.it/40x40/875f87/ffffff?text= ) | strike master | #875F87 |
| ![#875faf](https://placehold.it/40x40/875faf/ffffff?text= ) | deluge | #875FAF |
| ![#875fd7](https://placehold.it/40x40/875fd7/ffffff?text= ) | medium purple | #875FD7 |
| ![#875fff](https://placehold.it/40x40/875fff/ffffff?text= ) | heliotrope | #875FFF |
| ![#878700](https://placehold.it/40x40/878700/ffffff?text= ) | olive 1 | #878700 |
| ![#87875f](https://placehold.it/40x40/87875f/ffffff?text= ) | clay creek | #87875F |
| ![#878787](https://placehold.it/40x40/878787/ffffff?text= ) | gray 1 | #878787 |
| ![#878787](https://placehold.it/40x40/878787/ffffff?text= ) | grey 1 | #878787 |
| ![#8787af](https://placehold.it/40x40/8787af/ffffff?text= ) | wild blue yonder | #8787AF |
| ![#8787d7](https://placehold.it/40x40/8787d7/ffffff?text= ) | chetwode blue | #8787D7 |
| ![#8787ff](https://placehold.it/40x40/8787ff/ffffff?text= ) | light slate blue | #8787FF |
| ![#87af00](https://placehold.it/40x40/87af00/ffffff?text= ) | limeade 1 | #87AF00 |
| ![#87af5f](https://placehold.it/40x40/87af5f/ffffff?text= ) | chelsea cucumber | #87AF5F |
| ![#87af87](https://placehold.it/40x40/87af87/ffffff?text= ) | bay leaf | #87AF87 |
| ![#87afaf](https://placehold.it/40x40/87afaf/ffffff?text= ) | gulf stream | #87AFAF |
| ![#87afd7](https://placehold.it/40x40/87afd7/ffffff?text= ) | polo blue | #87AFD7 |
| ![#87afff](https://placehold.it/40x40/87afff/ffffff?text= ) | malibu 1 | #87AFFF |
| ![#87d700](https://placehold.it/40x40/87d700/ffffff?text= ) | pistachio | #87D700 |
| ![#87d75f](https://placehold.it/40x40/87d75f/ffffff?text= ) | dark olive green | #87D75F |
| ![#87d787](https://placehold.it/40x40/87d787/ffffff?text= ) | feijoa | #87D787 |
| ![#87d7af](https://placehold.it/40x40/87d7af/ffffff?text= ) | vista blue | #87D7AF |
| ![#87d7d7](https://placehold.it/40x40/87d7d7/ffffff?text= ) | bermuda | #87D7D7 |
| ![#87d7ff](https://placehold.it/40x40/87d7ff/ffffff?text= ) | anakiwa | #87D7FF |
| ![#87ff00](https://placehold.it/40x40/87ff00/ffffff?text= ) | chartreuse 1 | #87FF00 |
| ![#87ff5f](https://placehold.it/40x40/87ff5f/ffffff?text= ) | light green | #87FF5F |
| ![#87ff87](https://placehold.it/40x40/87ff87/ffffff?text= ) | mint green | #87FF87 |
| ![#87ffaf](https://placehold.it/40x40/87ffaf/ffffff?text= ) | pale green 1 | #87FFAF |
| ![#87ffd7](https://placehold.it/40x40/87ffd7/ffffff?text= ) | aqua marine | #87FFD7 |
| ![#87ffff](https://placehold.it/40x40/87ffff/ffffff?text= ) | anakiwa 1 | #87FFFF |
| ![#af0000](https://placehold.it/40x40/af0000/ffffff?text= ) | bright red | #AF0000 |
| ![#af005f](https://placehold.it/40x40/af005f/ffffff?text= ) | flirt | #AF005F |
| ![#af0087](https://placehold.it/40x40/af0087/ffffff?text= ) | medium violet red | #AF0087 |
| ![#af00af](https://placehold.it/40x40/af00af/ffffff?text= ) | magenta 1 | #AF00AF |
| ![#af00d7](https://placehold.it/40x40/af00d7/ffffff?text= ) | dark violet | #AF00D7 |
| ![#af00ff](https://placehold.it/40x40/af00ff/ffffff?text= ) | purple 4 | #AF00FF |
| ![#af5f00](https://placehold.it/40x40/af5f00/ffffff?text= ) | rose of sharon | #AF5F00 |
| ![#af5f5f](https://placehold.it/40x40/af5f5f/ffffff?text= ) | indian red | #AF5F5F |
| ![#af5f87](https://placehold.it/40x40/af5f87/ffffff?text= ) | tapestry | #AF5F87 |
| ![#af5faf](https://placehold.it/40x40/af5faf/ffffff?text= ) | fuchsia pink | #AF5FAF |
| ![#af5fd7](https://placehold.it/40x40/af5fd7/ffffff?text= ) | medium purple 1 | #AF5FD7 |
| ![#af5fff](https://placehold.it/40x40/af5fff/ffffff?text= ) | heliotrope 1 | #AF5FFF |
| ![#af8700](https://placehold.it/40x40/af8700/ffffff?text= ) | pirate gold | #AF8700 |
| ![#af875f](https://placehold.it/40x40/af875f/ffffff?text= ) | muesli | #AF875F |
| ![#af8787](https://placehold.it/40x40/af8787/ffffff?text= ) | pharlap | #AF8787 |
| ![#af87af](https://placehold.it/40x40/af87af/ffffff?text= ) | bouquet | #AF87AF |
| ![#af87d7](https://placehold.it/40x40/af87d7/ffffff?text= ) | lavender | #AF87D7 |
| ![#af87ff](https://placehold.it/40x40/af87ff/ffffff?text= ) | heliotrope 2 | #AF87FF |
| ![#afaf00](https://placehold.it/40x40/afaf00/ffffff?text= ) | gold 1 | #AFAF00 |
| ![#afaf5f](https://placehold.it/40x40/afaf5f/ffffff?text= ) | olive green | #AFAF5F |
| ![#afaf87](https://placehold.it/40x40/afaf87/ffffff?text= ) | hillary | #AFAF87 |
| ![#afafaf](https://placehold.it/40x40/afafaf/ffffff?text= ) | silver chalice | #AFAFAF |
| ![#afafd7](https://placehold.it/40x40/afafd7/ffffff?text= ) | wistful | #AFAFD7 |
| ![#afafff](https://placehold.it/40x40/afafff/ffffff?text= ) | melrose | #AFAFFF |
| ![#afd700](https://placehold.it/40x40/afd700/ffffff?text= ) | rio grande | #AFD700 |
| ![#afd75f](https://placehold.it/40x40/afd75f/ffffff?text= ) | conifer | #AFD75F |
| ![#afd787](https://placehold.it/40x40/afd787/ffffff?text= ) | feijoa 1 | #AFD787 |
| ![#afd7af](https://placehold.it/40x40/afd7af/ffffff?text= ) | pixie green | #AFD7AF |
| ![#afd7d7](https://placehold.it/40x40/afd7d7/ffffff?text= ) | jungle mist | #AFD7D7 |
| ![#afd7ff](https://placehold.it/40x40/afd7ff/ffffff?text= ) | anakiwa 2 | #AFD7FF |
| ![#afff00](https://placehold.it/40x40/afff00/ffffff?text= ) | lime 1 | #AFFF00 |
| ![#afff5f](https://placehold.it/40x40/afff5f/ffffff?text= ) | green yellow | #AFFF5F |
| ![#afff87](https://placehold.it/40x40/afff87/ffffff?text= ) | mint green 1 | #AFFF87 |
| ![#afffaf](https://placehold.it/40x40/afffaf/ffffff?text= ) | dark sea green | #AFFFAF |
| ![#afffd7](https://placehold.it/40x40/afffd7/ffffff?text= ) | aero blue | #AFFFD7 |
| ![#afffff](https://placehold.it/40x40/afffff/ffffff?text= ) | french pass | #AFFFFF |
| ![#d70000](https://placehold.it/40x40/d70000/ffffff?text= ) | guardsman red | #D70000 |
| ![#d7005f](https://placehold.it/40x40/d7005f/ffffff?text= ) | razzmatazz | #D7005F |
| ![#d70087](https://placehold.it/40x40/d70087/ffffff?text= ) | hollywood cerise | #D70087 |
| ![#d700af](https://placehold.it/40x40/d700af/ffffff?text= ) | hollywood cerise 1 | #D700AF |
| ![#d700d7](https://placehold.it/40x40/d700d7/ffffff?text= ) | purple pizzazz | #D700D7 |
| ![#d700ff](https://placehold.it/40x40/d700ff/ffffff?text= ) | electric violet 1 | #D700FF |
| ![#d75f00](https://placehold.it/40x40/d75f00/ffffff?text= ) | tenn | #D75F00 |
| ![#d75f5f](https://placehold.it/40x40/d75f5f/ffffff?text= ) | roman | #D75F5F |
| ![#d75f87](https://placehold.it/40x40/d75f87/ffffff?text= ) | cranberry | #D75F87 |
| ![#d75faf](https://placehold.it/40x40/d75faf/ffffff?text= ) | hopbush | #D75FAF |
| ![#d75fd7](https://placehold.it/40x40/d75fd7/ffffff?text= ) | orchid | #D75FD7 |
| ![#d75fff](https://placehold.it/40x40/d75fff/ffffff?text= ) | medium orchid | #D75FFF |
| ![#d78700](https://placehold.it/40x40/d78700/ffffff?text= ) | mango tango | #D78700 |
| ![#d7875f](https://placehold.it/40x40/d7875f/ffffff?text= ) | copperfield | #D7875F |
| ![#d78787](https://placehold.it/40x40/d78787/ffffff?text= ) | pink | #D78787 |
| ![#d787af](https://placehold.it/40x40/d787af/ffffff?text= ) | cancan | #D787AF |
| ![#d787d7](https://placehold.it/40x40/d787d7/ffffff?text= ) | light orchid | #D787D7 |
| ![#d787ff](https://placehold.it/40x40/d787ff/ffffff?text= ) | heliotrope 3 | #D787FF |
| ![#d7af00](https://placehold.it/40x40/d7af00/ffffff?text= ) | corn | #D7AF00 |
| ![#d7af5f](https://placehold.it/40x40/d7af5f/ffffff?text= ) | tacha | #D7AF5F |
| ![#d7af87](https://placehold.it/40x40/d7af87/ffffff?text= ) | tan | #D7AF87 |
| ![#d7afaf](https://placehold.it/40x40/d7afaf/ffffff?text= ) | clam shell | #D7AFAF |
| ![#d7afd7](https://placehold.it/40x40/d7afd7/ffffff?text= ) | thistle | #D7AFD7 |
| ![#d7afff](https://placehold.it/40x40/d7afff/ffffff?text= ) | mauve | #D7AFFF |
| ![#d7d700](https://placehold.it/40x40/d7d700/ffffff?text= ) | corn 1 | #D7D700 |
| ![#d7d75f](https://placehold.it/40x40/d7d75f/ffffff?text= ) | khaki | #D7D75F |
| ![#d7d787](https://placehold.it/40x40/d7d787/ffffff?text= ) | deco | #D7D787 |
| ![#d7d7af](https://placehold.it/40x40/d7d7af/ffffff?text= ) | green mist | #D7D7AF |
| ![#d7d7d7](https://placehold.it/40x40/d7d7d7/ffffff?text= ) | alto | #D7D7D7 |
| ![#d7d7ff](https://placehold.it/40x40/d7d7ff/ffffff?text= ) | fog | #D7D7FF |
| ![#d7ff00](https://placehold.it/40x40/d7ff00/ffffff?text= ) | chartreuse yellow | #D7FF00 |
| ![#d7ff5f](https://placehold.it/40x40/d7ff5f/ffffff?text= ) | canary | #D7FF5F |
| ![#d7ff87](https://placehold.it/40x40/d7ff87/ffffff?text= ) | honeysuckle | #D7FF87 |
| ![#d7ffaf](https://placehold.it/40x40/d7ffaf/ffffff?text= ) | reef | #D7FFAF |
| ![#d7ffd7](https://placehold.it/40x40/d7ffd7/ffffff?text= ) | snowy mint | #D7FFD7 |
| ![#d7ffff](https://placehold.it/40x40/d7ffff/ffffff?text= ) | oyster bay | #D7FFFF |
| ![#ff005f](https://placehold.it/40x40/ff005f/ffffff?text= ) | rose | #FF005F |
| ![#ff0087](https://placehold.it/40x40/ff0087/ffffff?text= ) | deep pink | #FF0087 |
| ![#ff00af](https://placehold.it/40x40/ff00af/ffffff?text= ) | hollywood cerise 2 | #FF00AF |
| ![#ff00d7](https://placehold.it/40x40/ff00d7/ffffff?text= ) | purple pizzazz 1 | #FF00D7 |
| ![#ff00ff](https://placehold.it/40x40/ff00ff/ffffff?text= ) | magenta | #FF00FF |
| ![#ff5f00](https://placehold.it/40x40/ff5f00/ffffff?text= ) | blaze orange | #FF5F00 |
| ![#ff5f5f](https://placehold.it/40x40/ff5f5f/ffffff?text= ) | bitter sweet | #FF5F5F |
| ![#ff5f87](https://placehold.it/40x40/ff5f87/ffffff?text= ) | wild watermelon | #FF5F87 |
| ![#ff5faf](https://placehold.it/40x40/ff5faf/ffffff?text= ) | hotpink | #FF5FAF |
| ![#ff5fd7](https://placehold.it/40x40/ff5fd7/ffffff?text= ) | hotpink 1 | #FF5FD7 |
| ![#ff5fff](https://placehold.it/40x40/ff5fff/ffffff?text= ) | pink flamingo | #FF5FFF |
| ![#ff8700](https://placehold.it/40x40/ff8700/ffffff?text= ) | flush orange | #FF8700 |
| ![#ff875f](https://placehold.it/40x40/ff875f/ffffff?text= ) | salmon | #FF875F |
| ![#ff8787](https://placehold.it/40x40/ff8787/ffffff?text= ) | vivid tangerine | #FF8787 |
| ![#ff87af](https://placehold.it/40x40/ff87af/ffffff?text= ) | pink salmon | #FF87AF |
| ![#ff87d7](https://placehold.it/40x40/ff87d7/ffffff?text= ) | lavender rose | #FF87D7 |
| ![#ff87ff](https://placehold.it/40x40/ff87ff/ffffff?text= ) | blush pink | #FF87FF |
| ![#ffaf00](https://placehold.it/40x40/ffaf00/ffffff?text= ) | yellow sea | #FFAF00 |
| ![#ffaf5f](https://placehold.it/40x40/ffaf5f/ffffff?text= ) | texas rose | #FFAF5F |
| ![#ffaf87](https://placehold.it/40x40/ffaf87/ffffff?text= ) | hit pink | #FFAF87 |
| ![#ffafaf](https://placehold.it/40x40/ffafaf/ffffff?text= ) | sundown | #FFAFAF |
| ![#ffafd7](https://placehold.it/40x40/ffafd7/ffffff?text= ) | cotton candy | #FFAFD7 |
| ![#ffafff](https://placehold.it/40x40/ffafff/ffffff?text= ) | lavender rose 1 | #FFAFFF |
| ![#ffd700](https://placehold.it/40x40/ffd700/ffffff?text= ) | gold | #FFD700 |
| ![#ffd75f](https://placehold.it/40x40/ffd75f/ffffff?text= ) | dandelion | #FFD75F |
| ![#ffd787](https://placehold.it/40x40/ffd787/ffffff?text= ) | grandis | #FFD787 |
| ![#ffd7af](https://placehold.it/40x40/ffd7af/ffffff?text= ) | caramel | #FFD7AF |
| ![#ffd7d7](https://placehold.it/40x40/ffd7d7/ffffff?text= ) | cosmos | #FFD7D7 |
| ![#ffd7ff](https://placehold.it/40x40/ffd7ff/ffffff?text= ) | pink lace | #FFD7FF |
| ![#ffff5f](https://placehold.it/40x40/ffff5f/ffffff?text= ) | laser lemon | #FFFF5F |
| ![#ffff87](https://placehold.it/40x40/ffff87/ffffff?text= ) | dolly | #FFFF87 |
| ![#ffffaf](https://placehold.it/40x40/ffffaf/ffffff?text= ) | portafino | #FFFFAF |
| ![#ffffd7](https://placehold.it/40x40/ffffd7/ffffff?text= ) | cumulus | #FFFFD7 |
| ![#080808](https://placehold.it/40x40/080808/ffffff?text= ) | cod gray | #080808 |
| ![#121212](https://placehold.it/40x40/121212/ffffff?text= ) | cod gray 1 | #121212 |
| ![#1c1c1c](https://placehold.it/40x40/1c1c1c/ffffff?text= ) | cod gray 2 | #1C1C1C |
| ![#262626](https://placehold.it/40x40/262626/ffffff?text= ) | mine shaft | #262626 |
| ![#303030](https://placehold.it/40x40/303030/ffffff?text= ) | mine shaft 1 | #303030 |
| ![#3a3a3a](https://placehold.it/40x40/3a3a3a/ffffff?text= ) | mine shaft 2 | #3A3A3A |
| ![#444444](https://placehold.it/40x40/444444/ffffff?text= ) | tundora | #444444 |
| ![#4e4e4e](https://placehold.it/40x40/4e4e4e/ffffff?text= ) | tundora 1 | #4E4E4E |
| ![#585858](https://placehold.it/40x40/585858/ffffff?text= ) | scorpion 1 | #585858 |
| ![#626262](https://placehold.it/40x40/626262/ffffff?text= ) | dove gray | #626262 |
| ![#6c6c6c](https://placehold.it/40x40/6c6c6c/ffffff?text= ) | dove gray 1 | #6C6C6C |
| ![#767676](https://placehold.it/40x40/767676/ffffff?text= ) | boulder | #767676 |
| ![#8a8a8a](https://placehold.it/40x40/8a8a8a/ffffff?text= ) | gray 2 | #8A8A8A |
| ![#8a8a8a](https://placehold.it/40x40/8a8a8a/ffffff?text= ) | grey 2 | #8A8A8A |
| ![#949494](https://placehold.it/40x40/949494/ffffff?text= ) | dusty gray | #949494 |
| ![#9e9e9e](https://placehold.it/40x40/9e9e9e/ffffff?text= ) | silver chalice 1 | #9E9E9E |
| ![#a8a8a8](https://placehold.it/40x40/a8a8a8/ffffff?text= ) | silver chalice 2 | #A8A8A8 |
| ![#b2b2b2](https://placehold.it/40x40/b2b2b2/ffffff?text= ) | silver chalice 3 | #B2B2B2 |
| ![#bcbcbc](https://placehold.it/40x40/bcbcbc/ffffff?text= ) | silver 1 | #BCBCBC |
| ![#c6c6c6](https://placehold.it/40x40/c6c6c6/ffffff?text= ) | silver 2 | #C6C6C6 |
| ![#d0d0d0](https://placehold.it/40x40/d0d0d0/ffffff?text= ) | alto 1 | #D0D0D0 |
| ![#dadada](https://placehold.it/40x40/dadada/ffffff?text= ) | alto 2 | #DADADA |
| ![#e4e4e4](https://placehold.it/40x40/e4e4e4/ffffff?text= ) | mercury | #E4E4E4 |
| ![#eeeeee](https://placehold.it/40x40/eeeeee/ffffff?text= ) | gallery | #EEEEEE |
Raw data
{
"_id": null,
"home_page": "https://github.com/faissaloux/termspark",
"name": "termspark",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.8",
"maintainer_email": null,
"keywords": "terminal, cmd, design, colorful",
"author": "Faissal Wahabali",
"author_email": "contact@faissaloux.com",
"download_url": null,
"platform": null,
"description": "![Logo](https://raw.githubusercontent.com/faissaloux/termspark/main/.github/art/logo.png)\n\n[![Test Python package](https://github.com/faissaloux/termspark/actions/workflows/tests.yml/badge.svg?branch=main)](https://github.com/faissaloux/termspark/actions/workflows/tests.yml) [![codecov](https://codecov.io/gh/faissaloux/termspark/branch/main/graph/badge.svg)](https://codecov.io/gh/faissaloux/termspark) [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/faissaloux/termspark/main.svg)](https://results.pre-commit.ci/latest/github/faissaloux/termspark/main) ![PyPI](https://img.shields.io/pypi/v/termspark) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/termspark) ![PyPI - Status](https://img.shields.io/pypi/status/termspark)\n\n# Installation\n```bash\n pip install termspark\n```\n\n# Usage\n\n- [`print()`](#print-but-more)\n- [`input()`](#input)\n- [`line()`](#line)\n- [paint](#you-can-use-different-styles-on-same-position)\n- [`raw()`](#raw)\n- [force Width](#force-width)\n- [max width](#set-content-max-width)\n- [`full_width()`](#full-width)\n- [separator](#separator)\n- [`Termspark().line()`](#line-1)\n- [RGB](#rgb)\n- [HEX](#hex)\n- [style](#style)\n- [hyperlinks](#hyperlinks)\n- [supported colors](#supported-colors)\n\n### `print()`, but more!\nImport Termspark's print and take advantage of all its features, [colors](#you-can-also-paint-your-content), [highlights](#you-can-also-paint-your-content), [styles](#style), [hyperlinks](#hyperlinks) and more ...\n\n```python\nfrom termspark import print\n\nprint(\" Termspark \", \"white\", \"blue\", \"italic\")\nprint(\" [@termspark](https://github.com/faissaloux/termspark) \", \"black\", \"white\", \"italic, bold\")\n```\n![](https://github.com/faissaloux/termspark/assets/60013703/2fcdf8c7-dca6-4bb7-9557-e307173c5ab2)\n\nYou can choose from `[\"left\", \"center\", \"right\"]` to specify where to print by passing it as position parameter:\n`print(\" Termspark \", position=\"center\")`.\n\nYou can enable the Full Width using full_width parameter:\n`print(\" Termspark \", highlight=\"blue\", full_width=True)`.\n\nYou can fill the empty space by a character using `print(separator=)`.\n\n```python\nfrom termspark import print\n\nprint(\" TERMSPARK \", \"white\", \"green\", position=\"center\", separator=\"_\")\n```\n![](https://github.com/faissaloux/termspark/assets/60013703/b6c38ae1-ec25-4abb-a078-1309c3234a62)\n\n### `input()`\n\ninput with colors, highlights, styles, and hyperlinks.\n\nWith `input(position=)` you can specify position where to put your input text `[\"left\", \"center\", \"right\"]`.\nWith `input(full_width=)` you can enable full width `True | False`.\n\n```python\nfrom termspark import input\n\nname = input(\" What's your name? \", \"white\", \"blue\", \"italic\", \"center\", True)\n```\n![](https://github.com/faissaloux/termspark/assets/60013703/8077eb19-07b5-4f32-b1bb-b00be7860eba)\n\n\n#### Input Type\nYou can specify the input type by passing it to the `type=` parameter.\n\nFor a calculation example, to pass the input value into a calculation you don't need to convert it to `int` anymore, you just need to set it from `type` argument \ud83e\udd73 .\n```python\nfrom termspark import input\n\nbirthyear = input(\" Your year birth? \", \"white\", \"blue\", type=int)\nprint(f\"Your age is: {2023 - birthyear}\")\n```\n\n#### Input Callback\nthe `input()` supports callback too.\n\nIf you need to pass the input value into some function before returning the result, you need to pass it into the `callback=` argument.\n\n```python\nfrom termspark import input\n\ndef age_calc(birthyear, currentyear=2023):\n return currentyear - birthyear\n\nage = input(\" Your year birth? \", \"white\", \"blue\", type=int, callback=age_calc)\nprint(f\"Your age is: {age}\")\n```\n\nYou can use separator in `input(separator=)` too.\n\n```python\nfrom termspark import input\n\nname = input(\" What's your name?\", \"white\", \"blue\", position=\"left\", separator=\".\")\n```\n![](https://github.com/faissaloux/termspark/assets/60013703/b4a4f5b0-ff55-4079-8a82-a6c5a0ba0973)\n\n### `line()`\nTo print empty line use `line()`, you can leave it empty or fill it with a repeated character, you can specify its color too.\n\n```python\nfrom termspark import line\n\nline(\".\", \"blue\")\nline(highlight=\"green\")\nline()\nline(\"-\")\n```\n![](https://github.com/faissaloux/termspark/assets/60013703/210a5778-e7c8-4031-a49f-6f09f41dc23e)\n\n## More control\n```python\n from termspark import TermSpark\n\n TermSpark().print_right('RIGHT').spark()\n TermSpark().spark_right('RIGHT').spark()\n TermSpark().print_left('LEFT').spark()\n TermSpark().spark_left('LEFT').spark()\n TermSpark().print_center('CENTER').spark()\n TermSpark().spark_center('CENTER').spark()\n TermSpark().line('.').spark()\n\n TermSpark().print_left('LEFT').print_right('RIGHT').set_separator('.').spark()\n TermSpark().print_left('LEFT').print_center('CENTER').print_right('RIGHT').set_separator('.').spark()\n TermSpark().spark_left('LEFT').spark_center('CENTER').spark_right('RIGHT').set_separator('.').spark()\n```\n\n> [!NOTE]\n> Separator can contain only one character.\n\n### You can also paint your content\n#### text color\n\n```python\n from termspark import TermSpark\n\n TermSpark().print_right('RIGHT', 'blue').spark()\n TermSpark().print_left('LEFT', 'light red').spark()\n TermSpark().print_center('CENTER', 'light_green').spark()\n```\n\n#### background color\n\n```python\n from termspark import TermSpark\n\n TermSpark().print_right('RIGHT', None, 'light_magenta').spark()\n TermSpark().print_left('LEFT', 'red', 'white').spark()\n TermSpark().print_center('CENTER', 'white', 'light blue').spark()\n```\n\n### You can use different styles on same position\n```python\n from termspark import TermSpark\n\n TermSpark().spark_left([' * ', 'gray', 'white'], [' Info ', 'white', 'blue']).spark()\n TermSpark().spark_center([' * ', 'gray', 'white'], [' Warning ', 'white', 'yellow']).spark()\n TermSpark().spark_right([' * ', 'gray', 'white'], [' Error ', 'white', 'red']).spark()\n```\n`You know you can use them all together \ud83d\ude09`\n\n### Lines are too long to write a termspark line! \ud83d\ude11\n```python\n from termspark import TermSpark\n\n TermSpark().spark_left([' * ', 'gray', 'white'], [' Info ', 'white', 'blue']).spark_center([' * ', 'gray', 'white'], [' Warning ', 'white', 'yellow']).spark_right([' * ', 'gray', 'white'], [' Error ', 'white', 'red']).spark()\n```\n#### You can separate them by calling each function in a line \ud83e\udd24\n```python\n from termspark import TermSpark\n\n termspark = TermSpark()\n termspark.spark_left([' * ', 'gray', 'white'], [' Info ', 'white', 'blue'])\n termspark.spark_center([' * ', 'gray', 'white'], [' Warning ', 'white', 'yellow'])\n termspark.spark_right([' * ', 'gray', 'white'], [' Error ', 'white', 'red'])\n termspark.spark()\n```\n#### Still too long \ud83d\ude44 Got you \ud83e\udd29\n```python\n from termspark import TermSpark\n\n termspark = TermSpark()\n termspark.spark_left([' * ', 'gray', 'white'])\n termspark.spark_left(' Info ', 'white', 'blue')\n termspark.spark_center([' * ', 'gray', 'white'])\n termspark.spark_center([' Warning ', 'white', 'yellow'])\n termspark.spark_right(' * ', 'gray', 'white')\n termspark.spark_right([' Error ', 'white', 'red'])\n termspark.spark()\n```\n\n### Raw\nYou can print raw version which is colors-code-free so you can print clean text into files for example.\n\n```python\n from termspark import TermSpark\n\n raw = TermSpark().print_left('LEFT').print_right('RIGHT').set_separator('.').raw()\n```\n\n### Force Width\nYou can customize width instead of the default full terminal width.\n\n```python\n from termspark import TermSpark\n\n TermSpark().set_width(40).print_left(\"LEFT\", \"red\").print_right(\"RIGHT\", \"blue\").spark()\n```\n\n### Set content max width\nYou can specify max width of content depending on position using `max_[position](max_characters)`.\n```python\n from termspark import TermSpark\n\n termspark = TermSpark()\n termspark.spark_left([\"LEFT\", \"red\"])\n termspark.spark_right([\"RIGHT\", \"blue\"])\n termspark.max_left(2)\n termspark.max_right(3)\n termspark.spark()\n```\nThis should show only \"LE\" on the left, and \"RIG\" on the right.\n> [!WARNING]\n> `max_[position]()` is only supported by sparkers.\n\n### Full width\nYou can enable full width by using `full_width()`.\n\n```python\n from termspark import TermSpark\n\n termspark = TermSpark()\n termspark.spark_center(['Thanks for using Termspark!', 'white', 'green'])\n termspark.full_width()\n termspark.spark()\n```\n> [!WARNING]\n> `full_width()` can only be used with one position.\n\n### Separator\nYou can add color and highlight to separator too using `set_separator(content, color, highlight)`.\n```python\ntermspark = TermSpark()\ntermspark.spark_left([' Author ', 'green'])\ntermspark.spark_right([' Faissal Wahabali ', 'green'])\ntermspark.set_separator('.', 'green')\ntermspark.spark()\n```\n![](https://github.com/faissaloux/termspark/assets/60013703/5cf5039c-66c5-4fbc-9e4a-cb39332a2fb6)\n\n### Line\nYou can add highlight a line by using `line(highlight=highlight)`.\n```python\ntermspark = TermSpark()\ntermspark.line(highlight='green')\ntermspark.spark()\n```\n![](https://github.com/faissaloux/termspark/assets/60013703/41be7d15-4cab-4f73-a460-89c6d254db78)\n\n### RGB\n```python\nfrom termspark import print, line\n\n# String RGB\nprint(\" RGB! \", color=\"255,255,255\", highlight=\"36,114,200\")\nline(highlight=\"36,114,200\")\n\n# Tuple RGB\nprint(\" Tuple RGB! \", color=(255, 255, 255), highlight=(36, 114, 200))\nline(highlight=(36,114,200))\n```\n\n### HEX\n```python\nfrom termspark import print, line\n\nprint(\" HEX! \", color=\"#FFF\", highlight=\"#2472C8\")\nline(highlight=\"#2472C8\")\n```\n\n### Style\nYou can style your text by passing it to `print() style parameter` or to `spark([]) fourth list element`.\n\n**Supported styles:**\n- bold\n- dim\n- italic\n- overline\n- underline\n- curly underline\n- dotted underline\n- dashed underline\n- double underline\n- strike through\n- blink\n- reverse\n- hidden\n\n> [!NOTE]\n> You can mix styles by separating them by commas.\n\n```python\ntermspark = TermSpark()\ntermspark.print_center(' Termspark ', 'green', style='underline, overline, italic')\ntermspark.full_width()\ntermspark.spark()\n```\n![](https://github.com/faissaloux/termspark/assets/60013703/46f4b13d-9d06-4327-85f6-877732b49fba)\n\n### Hyperlinks\nYou can insert hyperlink using Markdown `[TEXT](LINK)`.\n```python\ntermspark = TermSpark()\ntermspark.spark_left([\" Author \", \"green\"])\ntermspark.spark_right([\" [@faissaloux](https://github.com/faissaloux) \", \"green\"])\ntermspark.set_separator(\".\", \"green\")\ntermspark.spark()\n```\n![](https://github.com/faissaloux/termspark/assets/60013703/ce829c1a-f14e-419c-80d0-aa202e5608dc)\n\n### Supported colors\n\n| Color\t | Name | HEX |\n| ----------------------------------------------------------- | ------------------- | ------- |\n| ![#000000](https://placehold.it/40x40/000000/ffffff?text= ) | black | #000000 |\n| ![#800000](https://placehold.it/40x40/800000/ffffff?text= ) | maroon | #800000 |\n| ![#008000](https://placehold.it/40x40/008000/ffffff?text= ) | green | #008000 |\n| ![#808000](https://placehold.it/40x40/808000/ffffff?text= ) | olive | #808000 |\n| ![#000080](https://placehold.it/40x40/000080/ffffff?text= ) | navy | #000080 |\n| ![#800080](https://placehold.it/40x40/800080/ffffff?text= ) | purple | #800080 |\n| ![#008080](https://placehold.it/40x40/008080/ffffff?text= ) | teal | #008080 |\n| ![#c0c0c0](https://placehold.it/40x40/c0c0c0/ffffff?text= ) | silver | #C0C0C0 |\n| ![#808080](https://placehold.it/40x40/808080/ffffff?text= ) | gray | #808080 |\n| ![#808080](https://placehold.it/40x40/808080/ffffff?text= ) | grey | #808080 |\n| ![#ff0000](https://placehold.it/40x40/ff0000/ffffff?text= ) | red | #FF0000 |\n| ![#00ff00](https://placehold.it/40x40/00ff00/ffffff?text= ) | lime | #00FF00 |\n| ![#ffff00](https://placehold.it/40x40/ffff00/ffffff?text= ) | yellow | #FFFF00 |\n| ![#0000ff](https://placehold.it/40x40/0000ff/ffffff?text= ) | blue | #0000FF |\n| ![#ff00ff](https://placehold.it/40x40/ff00ff/ffffff?text= ) | fuchsia | #FF00FF |\n| ![#00ffff](https://placehold.it/40x40/00ffff/ffffff?text= ) | aqua | #00FFFF |\n| ![#ffffff](https://placehold.it/40x40/ffffff/ffffff?text= ) | white | #FFFFFF |\n| ![#00005f](https://placehold.it/40x40/00005f/ffffff?text= ) | navy blue | #00005F |\n| ![#000087](https://placehold.it/40x40/000087/ffffff?text= ) | dark blue | #000087 |\n| ![#0000af](https://placehold.it/40x40/0000af/ffffff?text= ) | dark blue 2 | #0000AF |\n| ![#0000d7](https://placehold.it/40x40/0000d7/ffffff?text= ) | dark blue 1 | #0000D7 |\n| ![#005f00](https://placehold.it/40x40/005f00/ffffff?text= ) | dark green | #005F00 |\n| ![#005f5f](https://placehold.it/40x40/005f5f/ffffff?text= ) | blue stone | #005F5F |\n| ![#005f87](https://placehold.it/40x40/005f87/ffffff?text= ) | orient | #005F87 |\n| ![#005faf](https://placehold.it/40x40/005faf/ffffff?text= ) | endeavour | #005FAF |\n| ![#005fd7](https://placehold.it/40x40/005fd7/ffffff?text= ) | science blue | #005FD7 |\n| ![#005fff](https://placehold.it/40x40/005fff/ffffff?text= ) | blue ribbon | #005FFF |\n| ![#008700](https://placehold.it/40x40/008700/ffffff?text= ) | japanese laurel | #008700 |\n| ![#00875f](https://placehold.it/40x40/00875f/ffffff?text= ) | deep sea | #00875F |\n| ![#008787](https://placehold.it/40x40/008787/ffffff?text= ) | turquoise | #008787 |\n| ![#0087af](https://placehold.it/40x40/0087af/ffffff?text= ) | deep cerulean | #0087AF |\n| ![#0087d7](https://placehold.it/40x40/0087d7/ffffff?text= ) | lochmara | #0087D7 |\n| ![#0087ff](https://placehold.it/40x40/0087ff/ffffff?text= ) | azure radiance | #0087FF |\n| ![#00af00](https://placehold.it/40x40/00af00/ffffff?text= ) | islamic green | #00AF00 |\n| ![#00af5f](https://placehold.it/40x40/00af5f/ffffff?text= ) | spring green | #00AF5F |\n| ![#00af87](https://placehold.it/40x40/00af87/ffffff?text= ) | dark cyan | #00AF87 |\n| ![#00afaf](https://placehold.it/40x40/00afaf/ffffff?text= ) | light sea green | #00AFAF |\n| ![#00afd7](https://placehold.it/40x40/00afd7/ffffff?text= ) | cerulean | #00AFD7 |\n| ![#00afff](https://placehold.it/40x40/00afff/ffffff?text= ) | blue bolt | #00AFFF |\n| ![#00d700](https://placehold.it/40x40/00d700/ffffff?text= ) | electric green | #00D700 |\n| ![#00d75f](https://placehold.it/40x40/00d75f/ffffff?text= ) | malachite | #00D75F |\n| ![#00d787](https://placehold.it/40x40/00d787/ffffff?text= ) | caribbean green | #00D787 |\n| ![#00d7af](https://placehold.it/40x40/00d7af/ffffff?text= ) | cyan 1 | #00D7AF |\n| ![#00d7d7](https://placehold.it/40x40/00d7d7/ffffff?text= ) | dark turquoise | #00D7D7 |\n| ![#00d7ff](https://placehold.it/40x40/00d7ff/ffffff?text= ) | vivid sky blue | #00D7FF |\n| ![#00ff00](https://placehold.it/40x40/00ff00/ffffff?text= ) | electric green 1 | #00FF00 |\n| ![#00ff5f](https://placehold.it/40x40/00ff5f/ffffff?text= ) | guppie green | #00FF5F |\n| ![#00ff87](https://placehold.it/40x40/00ff87/ffffff?text= ) | spring green 1 | #00FF87 |\n| ![#00ffaf](https://placehold.it/40x40/00ffaf/ffffff?text= ) | medium spring green | #00FFAF |\n| ![#00ffd7](https://placehold.it/40x40/00ffd7/ffffff?text= ) | sea green | #00FFD7 |\n| ![#00ffff](https://placehold.it/40x40/00ffff/ffffff?text= ) | cyan | #00FFFF |\n| ![#5f0000](https://placehold.it/40x40/5f0000/ffffff?text= ) | rosewood | #5F0000 |\n| ![#5f005f](https://placehold.it/40x40/5f005f/ffffff?text= ) | pompadour | #5F005F |\n| ![#5f0087](https://placehold.it/40x40/5f0087/ffffff?text= ) | pigment indigo | #5F0087 |\n| ![#5f00af](https://placehold.it/40x40/5f00af/ffffff?text= ) | purple 3 | #5F00AF |\n| ![#5f00d7](https://placehold.it/40x40/5f00d7/ffffff?text= ) | electic violet | #5F00D7 |\n| ![#5f00ff](https://placehold.it/40x40/5f00ff/ffffff?text= ) | blue violet | #5F00FF |\n| ![#5f5f00](https://placehold.it/40x40/5f5f00/ffffff?text= ) | verdun green | #5F5F00 |\n| ![#5f5f5f](https://placehold.it/40x40/5f5f5f/ffffff?text= ) | scorpion | #5F5F5F |\n| ![#5f5f87](https://placehold.it/40x40/5f5f87/ffffff?text= ) | comet | #5F5F87 |\n| ![#5f5faf](https://placehold.it/40x40/5f5faf/ffffff?text= ) | scampi | #5F5FAF |\n| ![#5f5fd7](https://placehold.it/40x40/5f5fd7/ffffff?text= ) | indigo | #5F5FD7 |\n| ![#5f5fff](https://placehold.it/40x40/5f5fff/ffffff?text= ) | cornflower blue 1 | #5F5FFF |\n| ![#5f8700](https://placehold.it/40x40/5f8700/ffffff?text= ) | limeade | #5F8700 |\n| ![#5f875f](https://placehold.it/40x40/5f875f/ffffff?text= ) | glade green | #5F875F |\n| ![#5f8787](https://placehold.it/40x40/5f8787/ffffff?text= ) | juniper | #5F8787 |\n| ![#5f87af](https://placehold.it/40x40/5f87af/ffffff?text= ) | hippie blue | #5F87AF |\n| ![#5f87d7](https://placehold.it/40x40/5f87d7/ffffff?text= ) | havelock blue | #5F87D7 |\n| ![#5f87ff](https://placehold.it/40x40/5f87ff/ffffff?text= ) | cornflower blue | #5F87FF |\n| ![#5faf00](https://placehold.it/40x40/5faf00/ffffff?text= ) | limea | #5FAF00 |\n| ![#5faf5f](https://placehold.it/40x40/5faf5f/ffffff?text= ) | fern | #5FAF5F |\n| ![#5faf87](https://placehold.it/40x40/5faf87/ffffff?text= ) | silver tree | #5FAF87 |\n| ![#5fafaf](https://placehold.it/40x40/5fafaf/ffffff?text= ) | tradewind | #5FAFAF |\n| ![#5fafd7](https://placehold.it/40x40/5fafd7/ffffff?text= ) | shakespeare | #5FAFD7 |\n| ![#5fafff](https://placehold.it/40x40/5fafff/ffffff?text= ) | malibu | #5FAFFF |\n| ![#5fd700](https://placehold.it/40x40/5fd700/ffffff?text= ) | bright green | #5FD700 |\n| ![#5fd75f](https://placehold.it/40x40/5fd75f/ffffff?text= ) | pale green | #5FD75F |\n| ![#5fd787](https://placehold.it/40x40/5fd787/ffffff?text= ) | pastel green | #5FD787 |\n| ![#5fd7af](https://placehold.it/40x40/5fd7af/ffffff?text= ) | downy | #5FD7AF |\n| ![#5fd7d7](https://placehold.it/40x40/5fd7d7/ffffff?text= ) | viking | #5FD7D7 |\n| ![#5fd7ff](https://placehold.it/40x40/5fd7ff/ffffff?text= ) | steel blue | #5FD7FF |\n| ![#5fff00](https://placehold.it/40x40/5fff00/ffffff?text= ) | chartreuse | #5FFF00 |\n| ![#5fff5f](https://placehold.it/40x40/5fff5f/ffffff?text= ) | screaming green | #5FFF5F |\n| ![#5fff87](https://placehold.it/40x40/5fff87/ffffff?text= ) | sea green 1 | #5FFF87 |\n| ![#5fffaf](https://placehold.it/40x40/5fffaf/ffffff?text= ) | aquamarine 1 | #5FFFAF |\n| ![#5fffd7](https://placehold.it/40x40/5fffd7/ffffff?text= ) | aquamarine 2 | #5FFFD7 |\n| ![#5fffff](https://placehold.it/40x40/5fffff/ffffff?text= ) | aquamarine | #5FFFFF |\n| ![#870000](https://placehold.it/40x40/870000/ffffff?text= ) | dark red | #870000 |\n| ![#87005f](https://placehold.it/40x40/87005f/ffffff?text= ) | fresh eggplant | #87005F |\n| ![#870087](https://placehold.it/40x40/870087/ffffff?text= ) | dark magenta | #870087 |\n| ![#8700af](https://placehold.it/40x40/8700af/ffffff?text= ) | purple 2 | #8700AF |\n| ![#8700d7](https://placehold.it/40x40/8700d7/ffffff?text= ) | electric violet | #8700D7 |\n| ![#8700ff](https://placehold.it/40x40/8700ff/ffffff?text= ) | purple 1 | #8700FF |\n| ![#875f00](https://placehold.it/40x40/875f00/ffffff?text= ) | brown | #875F00 |\n| ![#875f5f](https://placehold.it/40x40/875f5f/ffffff?text= ) | copper rose | #875F5F |\n| ![#875f87](https://placehold.it/40x40/875f87/ffffff?text= ) | strike master | #875F87 |\n| ![#875faf](https://placehold.it/40x40/875faf/ffffff?text= ) | deluge | #875FAF |\n| ![#875fd7](https://placehold.it/40x40/875fd7/ffffff?text= ) | medium purple | #875FD7 |\n| ![#875fff](https://placehold.it/40x40/875fff/ffffff?text= ) | heliotrope | #875FFF |\n| ![#878700](https://placehold.it/40x40/878700/ffffff?text= ) | olive 1 | #878700 |\n| ![#87875f](https://placehold.it/40x40/87875f/ffffff?text= ) | clay creek | #87875F |\n| ![#878787](https://placehold.it/40x40/878787/ffffff?text= ) | gray 1 | #878787 |\n| ![#878787](https://placehold.it/40x40/878787/ffffff?text= ) | grey 1 | #878787 |\n| ![#8787af](https://placehold.it/40x40/8787af/ffffff?text= ) | wild blue yonder | #8787AF |\n| ![#8787d7](https://placehold.it/40x40/8787d7/ffffff?text= ) | chetwode blue | #8787D7 |\n| ![#8787ff](https://placehold.it/40x40/8787ff/ffffff?text= ) | light slate blue | #8787FF |\n| ![#87af00](https://placehold.it/40x40/87af00/ffffff?text= ) | limeade 1 | #87AF00 |\n| ![#87af5f](https://placehold.it/40x40/87af5f/ffffff?text= ) | chelsea cucumber | #87AF5F |\n| ![#87af87](https://placehold.it/40x40/87af87/ffffff?text= ) | bay leaf | #87AF87 |\n| ![#87afaf](https://placehold.it/40x40/87afaf/ffffff?text= ) | gulf stream | #87AFAF |\n| ![#87afd7](https://placehold.it/40x40/87afd7/ffffff?text= ) | polo blue | #87AFD7 |\n| ![#87afff](https://placehold.it/40x40/87afff/ffffff?text= ) | malibu 1 | #87AFFF |\n| ![#87d700](https://placehold.it/40x40/87d700/ffffff?text= ) | pistachio | #87D700 |\n| ![#87d75f](https://placehold.it/40x40/87d75f/ffffff?text= ) | dark olive green | #87D75F |\n| ![#87d787](https://placehold.it/40x40/87d787/ffffff?text= ) | feijoa | #87D787 |\n| ![#87d7af](https://placehold.it/40x40/87d7af/ffffff?text= ) | vista blue | #87D7AF |\n| ![#87d7d7](https://placehold.it/40x40/87d7d7/ffffff?text= ) | bermuda | #87D7D7 |\n| ![#87d7ff](https://placehold.it/40x40/87d7ff/ffffff?text= ) | anakiwa | #87D7FF |\n| ![#87ff00](https://placehold.it/40x40/87ff00/ffffff?text= ) | chartreuse 1 | #87FF00 |\n| ![#87ff5f](https://placehold.it/40x40/87ff5f/ffffff?text= ) | light green | #87FF5F |\n| ![#87ff87](https://placehold.it/40x40/87ff87/ffffff?text= ) | mint green | #87FF87 |\n| ![#87ffaf](https://placehold.it/40x40/87ffaf/ffffff?text= ) | pale green 1 | #87FFAF |\n| ![#87ffd7](https://placehold.it/40x40/87ffd7/ffffff?text= ) | aqua marine | #87FFD7 |\n| ![#87ffff](https://placehold.it/40x40/87ffff/ffffff?text= ) | anakiwa 1 | #87FFFF |\n| ![#af0000](https://placehold.it/40x40/af0000/ffffff?text= ) | bright red | #AF0000 |\n| ![#af005f](https://placehold.it/40x40/af005f/ffffff?text= ) | flirt | #AF005F |\n| ![#af0087](https://placehold.it/40x40/af0087/ffffff?text= ) | medium violet red | #AF0087 |\n| ![#af00af](https://placehold.it/40x40/af00af/ffffff?text= ) | magenta 1 | #AF00AF |\n| ![#af00d7](https://placehold.it/40x40/af00d7/ffffff?text= ) | dark violet | #AF00D7 |\n| ![#af00ff](https://placehold.it/40x40/af00ff/ffffff?text= ) | purple 4 | #AF00FF |\n| ![#af5f00](https://placehold.it/40x40/af5f00/ffffff?text= ) | rose of sharon | #AF5F00 |\n| ![#af5f5f](https://placehold.it/40x40/af5f5f/ffffff?text= ) | indian red | #AF5F5F |\n| ![#af5f87](https://placehold.it/40x40/af5f87/ffffff?text= ) | tapestry | #AF5F87 |\n| ![#af5faf](https://placehold.it/40x40/af5faf/ffffff?text= ) | fuchsia pink | #AF5FAF |\n| ![#af5fd7](https://placehold.it/40x40/af5fd7/ffffff?text= ) | medium purple 1 | #AF5FD7 |\n| ![#af5fff](https://placehold.it/40x40/af5fff/ffffff?text= ) | heliotrope 1 | #AF5FFF |\n| ![#af8700](https://placehold.it/40x40/af8700/ffffff?text= ) | pirate gold | #AF8700 |\n| ![#af875f](https://placehold.it/40x40/af875f/ffffff?text= ) | muesli | #AF875F |\n| ![#af8787](https://placehold.it/40x40/af8787/ffffff?text= ) | pharlap | #AF8787 |\n| ![#af87af](https://placehold.it/40x40/af87af/ffffff?text= ) | bouquet | #AF87AF |\n| ![#af87d7](https://placehold.it/40x40/af87d7/ffffff?text= ) | lavender | #AF87D7 |\n| ![#af87ff](https://placehold.it/40x40/af87ff/ffffff?text= ) | heliotrope 2 | #AF87FF |\n| ![#afaf00](https://placehold.it/40x40/afaf00/ffffff?text= ) | gold 1 | #AFAF00 |\n| ![#afaf5f](https://placehold.it/40x40/afaf5f/ffffff?text= ) | olive green | #AFAF5F |\n| ![#afaf87](https://placehold.it/40x40/afaf87/ffffff?text= ) | hillary | #AFAF87 |\n| ![#afafaf](https://placehold.it/40x40/afafaf/ffffff?text= ) | silver chalice | #AFAFAF |\n| ![#afafd7](https://placehold.it/40x40/afafd7/ffffff?text= ) | wistful | #AFAFD7 |\n| ![#afafff](https://placehold.it/40x40/afafff/ffffff?text= ) | melrose | #AFAFFF |\n| ![#afd700](https://placehold.it/40x40/afd700/ffffff?text= ) | rio grande | #AFD700 |\n| ![#afd75f](https://placehold.it/40x40/afd75f/ffffff?text= ) | conifer | #AFD75F |\n| ![#afd787](https://placehold.it/40x40/afd787/ffffff?text= ) | feijoa 1 | #AFD787 |\n| ![#afd7af](https://placehold.it/40x40/afd7af/ffffff?text= ) | pixie green | #AFD7AF |\n| ![#afd7d7](https://placehold.it/40x40/afd7d7/ffffff?text= ) | jungle mist | #AFD7D7 |\n| ![#afd7ff](https://placehold.it/40x40/afd7ff/ffffff?text= ) | anakiwa 2 | #AFD7FF |\n| ![#afff00](https://placehold.it/40x40/afff00/ffffff?text= ) | lime 1 | #AFFF00 |\n| ![#afff5f](https://placehold.it/40x40/afff5f/ffffff?text= ) | green yellow | #AFFF5F |\n| ![#afff87](https://placehold.it/40x40/afff87/ffffff?text= ) | mint green 1 | #AFFF87 |\n| ![#afffaf](https://placehold.it/40x40/afffaf/ffffff?text= ) | dark sea green | #AFFFAF |\n| ![#afffd7](https://placehold.it/40x40/afffd7/ffffff?text= ) | aero blue | #AFFFD7 |\n| ![#afffff](https://placehold.it/40x40/afffff/ffffff?text= ) | french pass | #AFFFFF |\n| ![#d70000](https://placehold.it/40x40/d70000/ffffff?text= ) | guardsman red | #D70000 |\n| ![#d7005f](https://placehold.it/40x40/d7005f/ffffff?text= ) | razzmatazz | #D7005F |\n| ![#d70087](https://placehold.it/40x40/d70087/ffffff?text= ) | hollywood cerise | #D70087 |\n| ![#d700af](https://placehold.it/40x40/d700af/ffffff?text= ) | hollywood cerise 1 | #D700AF |\n| ![#d700d7](https://placehold.it/40x40/d700d7/ffffff?text= ) | purple pizzazz | #D700D7 |\n| ![#d700ff](https://placehold.it/40x40/d700ff/ffffff?text= ) | electric violet 1 | #D700FF |\n| ![#d75f00](https://placehold.it/40x40/d75f00/ffffff?text= ) | tenn | #D75F00 |\n| ![#d75f5f](https://placehold.it/40x40/d75f5f/ffffff?text= ) | roman | #D75F5F |\n| ![#d75f87](https://placehold.it/40x40/d75f87/ffffff?text= ) | cranberry | #D75F87 |\n| ![#d75faf](https://placehold.it/40x40/d75faf/ffffff?text= ) | hopbush | #D75FAF |\n| ![#d75fd7](https://placehold.it/40x40/d75fd7/ffffff?text= ) | orchid | #D75FD7 |\n| ![#d75fff](https://placehold.it/40x40/d75fff/ffffff?text= ) | medium orchid | #D75FFF |\n| ![#d78700](https://placehold.it/40x40/d78700/ffffff?text= ) | mango tango | #D78700 |\n| ![#d7875f](https://placehold.it/40x40/d7875f/ffffff?text= ) | copperfield | #D7875F |\n| ![#d78787](https://placehold.it/40x40/d78787/ffffff?text= ) | pink | #D78787 |\n| ![#d787af](https://placehold.it/40x40/d787af/ffffff?text= ) | cancan | #D787AF |\n| ![#d787d7](https://placehold.it/40x40/d787d7/ffffff?text= ) | light orchid | #D787D7 |\n| ![#d787ff](https://placehold.it/40x40/d787ff/ffffff?text= ) | heliotrope 3 | #D787FF |\n| ![#d7af00](https://placehold.it/40x40/d7af00/ffffff?text= ) | corn | #D7AF00 |\n| ![#d7af5f](https://placehold.it/40x40/d7af5f/ffffff?text= ) | tacha | #D7AF5F |\n| ![#d7af87](https://placehold.it/40x40/d7af87/ffffff?text= ) | tan | #D7AF87 |\n| ![#d7afaf](https://placehold.it/40x40/d7afaf/ffffff?text= ) | clam shell | #D7AFAF |\n| ![#d7afd7](https://placehold.it/40x40/d7afd7/ffffff?text= ) | thistle | #D7AFD7 |\n| ![#d7afff](https://placehold.it/40x40/d7afff/ffffff?text= ) | mauve | #D7AFFF |\n| ![#d7d700](https://placehold.it/40x40/d7d700/ffffff?text= ) | corn 1 | #D7D700 |\n| ![#d7d75f](https://placehold.it/40x40/d7d75f/ffffff?text= ) | khaki | #D7D75F |\n| ![#d7d787](https://placehold.it/40x40/d7d787/ffffff?text= ) | deco | #D7D787 |\n| ![#d7d7af](https://placehold.it/40x40/d7d7af/ffffff?text= ) | green mist | #D7D7AF |\n| ![#d7d7d7](https://placehold.it/40x40/d7d7d7/ffffff?text= ) | alto | #D7D7D7 |\n| ![#d7d7ff](https://placehold.it/40x40/d7d7ff/ffffff?text= ) | fog | #D7D7FF |\n| ![#d7ff00](https://placehold.it/40x40/d7ff00/ffffff?text= ) | chartreuse yellow | #D7FF00 |\n| ![#d7ff5f](https://placehold.it/40x40/d7ff5f/ffffff?text= ) | canary | #D7FF5F |\n| ![#d7ff87](https://placehold.it/40x40/d7ff87/ffffff?text= ) | honeysuckle | #D7FF87 |\n| ![#d7ffaf](https://placehold.it/40x40/d7ffaf/ffffff?text= ) | reef | #D7FFAF |\n| ![#d7ffd7](https://placehold.it/40x40/d7ffd7/ffffff?text= ) | snowy mint | #D7FFD7 |\n| ![#d7ffff](https://placehold.it/40x40/d7ffff/ffffff?text= ) | oyster bay | #D7FFFF |\n| ![#ff005f](https://placehold.it/40x40/ff005f/ffffff?text= ) | rose | #FF005F |\n| ![#ff0087](https://placehold.it/40x40/ff0087/ffffff?text= ) | deep pink | #FF0087 |\n| ![#ff00af](https://placehold.it/40x40/ff00af/ffffff?text= ) | hollywood cerise 2 | #FF00AF |\n| ![#ff00d7](https://placehold.it/40x40/ff00d7/ffffff?text= ) | purple pizzazz 1 | #FF00D7 |\n| ![#ff00ff](https://placehold.it/40x40/ff00ff/ffffff?text= ) | magenta | #FF00FF |\n| ![#ff5f00](https://placehold.it/40x40/ff5f00/ffffff?text= ) | blaze orange | #FF5F00 |\n| ![#ff5f5f](https://placehold.it/40x40/ff5f5f/ffffff?text= ) | bitter sweet | #FF5F5F |\n| ![#ff5f87](https://placehold.it/40x40/ff5f87/ffffff?text= ) | wild watermelon | #FF5F87 |\n| ![#ff5faf](https://placehold.it/40x40/ff5faf/ffffff?text= ) | hotpink | #FF5FAF |\n| ![#ff5fd7](https://placehold.it/40x40/ff5fd7/ffffff?text= ) | hotpink 1 | #FF5FD7 |\n| ![#ff5fff](https://placehold.it/40x40/ff5fff/ffffff?text= ) | pink flamingo | #FF5FFF |\n| ![#ff8700](https://placehold.it/40x40/ff8700/ffffff?text= ) | flush orange | #FF8700 |\n| ![#ff875f](https://placehold.it/40x40/ff875f/ffffff?text= ) | salmon | #FF875F |\n| ![#ff8787](https://placehold.it/40x40/ff8787/ffffff?text= ) | vivid tangerine | #FF8787 |\n| ![#ff87af](https://placehold.it/40x40/ff87af/ffffff?text= ) | pink salmon | #FF87AF |\n| ![#ff87d7](https://placehold.it/40x40/ff87d7/ffffff?text= ) | lavender rose | #FF87D7 |\n| ![#ff87ff](https://placehold.it/40x40/ff87ff/ffffff?text= ) | blush pink | #FF87FF |\n| ![#ffaf00](https://placehold.it/40x40/ffaf00/ffffff?text= ) | yellow sea | #FFAF00 |\n| ![#ffaf5f](https://placehold.it/40x40/ffaf5f/ffffff?text= ) | texas rose | #FFAF5F |\n| ![#ffaf87](https://placehold.it/40x40/ffaf87/ffffff?text= ) | hit pink | #FFAF87 |\n| ![#ffafaf](https://placehold.it/40x40/ffafaf/ffffff?text= ) | sundown | #FFAFAF |\n| ![#ffafd7](https://placehold.it/40x40/ffafd7/ffffff?text= ) | cotton candy | #FFAFD7 |\n| ![#ffafff](https://placehold.it/40x40/ffafff/ffffff?text= ) | lavender rose 1 | #FFAFFF |\n| ![#ffd700](https://placehold.it/40x40/ffd700/ffffff?text= ) | gold | #FFD700 |\n| ![#ffd75f](https://placehold.it/40x40/ffd75f/ffffff?text= ) | dandelion | #FFD75F |\n| ![#ffd787](https://placehold.it/40x40/ffd787/ffffff?text= ) | grandis | #FFD787 |\n| ![#ffd7af](https://placehold.it/40x40/ffd7af/ffffff?text= ) | caramel | #FFD7AF |\n| ![#ffd7d7](https://placehold.it/40x40/ffd7d7/ffffff?text= ) | cosmos | #FFD7D7 |\n| ![#ffd7ff](https://placehold.it/40x40/ffd7ff/ffffff?text= ) | pink lace | #FFD7FF |\n| ![#ffff5f](https://placehold.it/40x40/ffff5f/ffffff?text= ) | laser lemon | #FFFF5F |\n| ![#ffff87](https://placehold.it/40x40/ffff87/ffffff?text= ) | dolly | #FFFF87 |\n| ![#ffffaf](https://placehold.it/40x40/ffffaf/ffffff?text= ) | portafino | #FFFFAF |\n| ![#ffffd7](https://placehold.it/40x40/ffffd7/ffffff?text= ) | cumulus | #FFFFD7 |\n| ![#080808](https://placehold.it/40x40/080808/ffffff?text= ) | cod gray | #080808 |\n| ![#121212](https://placehold.it/40x40/121212/ffffff?text= ) | cod gray 1 | #121212 |\n| ![#1c1c1c](https://placehold.it/40x40/1c1c1c/ffffff?text= ) | cod gray 2 | #1C1C1C |\n| ![#262626](https://placehold.it/40x40/262626/ffffff?text= ) | mine shaft | #262626 |\n| ![#303030](https://placehold.it/40x40/303030/ffffff?text= ) | mine shaft 1 | #303030 |\n| ![#3a3a3a](https://placehold.it/40x40/3a3a3a/ffffff?text= ) | mine shaft 2 | #3A3A3A |\n| ![#444444](https://placehold.it/40x40/444444/ffffff?text= ) | tundora | #444444 |\n| ![#4e4e4e](https://placehold.it/40x40/4e4e4e/ffffff?text= ) | tundora 1 | #4E4E4E |\n| ![#585858](https://placehold.it/40x40/585858/ffffff?text= ) | scorpion 1 | #585858 |\n| ![#626262](https://placehold.it/40x40/626262/ffffff?text= ) | dove gray | #626262 |\n| ![#6c6c6c](https://placehold.it/40x40/6c6c6c/ffffff?text= ) | dove gray 1 | #6C6C6C |\n| ![#767676](https://placehold.it/40x40/767676/ffffff?text= ) | boulder | #767676 |\n| ![#8a8a8a](https://placehold.it/40x40/8a8a8a/ffffff?text= ) | gray 2 | #8A8A8A |\n| ![#8a8a8a](https://placehold.it/40x40/8a8a8a/ffffff?text= ) | grey 2 | #8A8A8A |\n| ![#949494](https://placehold.it/40x40/949494/ffffff?text= ) | dusty gray | #949494 |\n| ![#9e9e9e](https://placehold.it/40x40/9e9e9e/ffffff?text= ) | silver chalice 1 | #9E9E9E |\n| ![#a8a8a8](https://placehold.it/40x40/a8a8a8/ffffff?text= ) | silver chalice 2 | #A8A8A8 |\n| ![#b2b2b2](https://placehold.it/40x40/b2b2b2/ffffff?text= ) | silver chalice 3 | #B2B2B2 |\n| ![#bcbcbc](https://placehold.it/40x40/bcbcbc/ffffff?text= ) | silver 1 | #BCBCBC |\n| ![#c6c6c6](https://placehold.it/40x40/c6c6c6/ffffff?text= ) | silver 2 | #C6C6C6 |\n| ![#d0d0d0](https://placehold.it/40x40/d0d0d0/ffffff?text= ) | alto 1 | #D0D0D0 |\n| ![#dadada](https://placehold.it/40x40/dadada/ffffff?text= ) | alto 2 | #DADADA |\n| ![#e4e4e4](https://placehold.it/40x40/e4e4e4/ffffff?text= ) | mercury | #E4E4E4 |\n| ![#eeeeee](https://placehold.it/40x40/eeeeee/ffffff?text= ) | gallery | #EEEEEE |\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Takes control of terminal",
"version": "2.2.1",
"project_urls": {
"Homepage": "https://github.com/faissaloux/termspark"
},
"split_keywords": [
"terminal",
" cmd",
" design",
" colorful"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "55aca216f96c330578abf92078f524adc04b8cba638c9b213e13b17f1f583880",
"md5": "820bfe42f7d5f741d0a6f5196409e991",
"sha256": "6eef3d542bfaab5f0517285b146ad8ea57a3d11c8bb12a90d9607db4cd29e265"
},
"downloads": -1,
"filename": "termspark-2.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "820bfe42f7d5f741d0a6f5196409e991",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.8",
"size": 31682,
"upload_time": "2024-07-11T18:20:41",
"upload_time_iso_8601": "2024-07-11T18:20:41.663705Z",
"url": "https://files.pythonhosted.org/packages/55/ac/a216f96c330578abf92078f524adc04b8cba638c9b213e13b17f1f583880/termspark-2.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-11 18:20:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "faissaloux",
"github_project": "termspark",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "termspark"
}