Metadata-Version: 2.1
Name: curint
Version: 0.1.2
Summary: Colorful terminal output toolkit
Author: corotosh
License: MIT
Keywords: terminal,colors,rich,ansi,gradient,animation
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Terminals
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: colorama
Requires-Dist: termcolor
Requires-Dist: skytext
Requires-Dist: rich

curint is a Python library for colorful terminal output. It provides styled text, RGB gradients, rainbow text, themed console helpers, Rich panels and tables, status messages, prompts, logging, spinners, progress bars, and lightweight text animations.

## Features

- True-color foreground and background styling.
- Gradient, palette, and rainbow text.
- Built-in themes such as `default`, `sunset`, `ocean`, `dracula`, and `forest`.
- Rich-backed panels, tables, trees, rules, Markdown, and JSON output.
- Status helpers: `success()`, `error()`, `warning()`, `info()`, and `debug()`.
- Simple prompts: `ask()`, `confirm()`, and `choose()`.
- Spinners, progress bars, and iterable tracking.
- Text effects: typewriter, wave, bounce, glitch, and shimmer.
- A colorful `logging.Handler` for terminal applications.

## Quick start

```python
from curint import SpectraConsole, Spinner, progress_bar, success

console = SpectraConsole(theme="sunset")
console.banner("curint")
console.gradient("Gradient text with a theme", bold=True)
console.rainbow("Rainbow output", bold=True)
console.panel("Useful for build scripts, demos, and terminal applications.", title="Hello")

with Spinner("Working"):
    import time
    time.sleep(0.5)

progress_bar(25, "Finishing", delay=0.01)
success("Done")
```

## Text helpers

```python
from curint import gradient_text, highlight, palette_text, rainbow_text, style_text

print(style_text("bold cyan", fg="cyan", bold=True))
print(gradient_text("sunset gradient", "#ff5e62", "#ffd166"))
print(rainbow_text("rainbow"))
print(palette_text("neon", "neon"))
print(highlight("ship the package", "ship"))
```

## Console helpers

```python
from curint import SpectraConsole

console = SpectraConsole(theme="ocean")
console.banner("release")
console.rule("checks")
console.panel("All systems ready", title="Status")
console.table(
    [
        {"Check": "tests", "Result": "passed"},
        {"Check": "build", "Result": "passed"},
    ],
    title="Summary",
)
console.tree("package", {"dist": ["sdist", "wheel"], "docs": ["README"]})
console.markdown("**Markdown** rendering via Rich")
console.json({"ok": True, "version": "0.1.2"})
```

## Themes

```python
from curint import Theme, register_theme, theme_names, use_theme

register_theme(
    Theme(
        name="brand",
        primary="#7c3aed",
        secondary="#06b6d4",
        accent="#f59e0b",
    )
)

console = use_theme("brand")
console.gradient("Custom brand theme")
print(theme_names())
```

## Animations

```python
from curint import bounce, glitch, shimmer, typewriter, wave

typewriter("Typed output", delay=0.03)
wave("wave text")
bounce("bounce text")
glitch("glitch text")
shimmer("shimmer text")
```

For tests, use frame helpers that return strings instead of printing:

```python
from curint import glitch_frames, wave_frames

frames = wave_frames("abc", frames=3)
assert len(frames) == 3
assert glitch_frames("abc", frames=2)
```

## Progress and spinners

```python
from curint import Spinner, progress_bar, rich_status, track_iter

with Spinner("Uploading"):
    import time
    time.sleep(0.5)

progress_bar(50, "Building", delay=0.01)

with rich_status("Indexing"):
    pass

for item in track_iter(range(10), "Processing"):
    pass
```

## Logging

```python
from curint import configure_logging

logger = configure_logging("INFO", logger_name="curint-demo")
logger.info("Colorful logging is ready")
```

## Prompts

```python
from curint import ask, choose, confirm

name = ask("Project name", default="demo")
color = choose("Theme", ["sunset", "ocean", "dracula"], default="ocean")
ready = confirm("Continue?", default=True)
```

## License

MIT License.
