PyTypeFx 2.1.0__tar.gz → 2.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. pytypefx-2.1.1/PKG-INFO +671 -0
  2. pytypefx-2.1.1/PyTypeFx.egg-info/PKG-INFO +671 -0
  3. {pytypefx-2.1.0 → pytypefx-2.1.1}/PyTypeFx.egg-info/SOURCES.txt +1 -2
  4. {pytypefx-2.1.0 → pytypefx-2.1.1}/PyTypeFx.egg-info/top_level.txt +0 -1
  5. pytypefx-2.1.1/pyproject.toml +35 -0
  6. {pytypefx-2.1.0 → pytypefx-2.1.1}/setup.py +30 -24
  7. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/__init__.py +1 -1
  8. pytypefx-2.1.0/PKG-INFO +0 -23
  9. pytypefx-2.1.0/PyTypeFx.egg-info/PKG-INFO +0 -23
  10. pytypefx-2.1.0/tests/__init__.py +0 -0
  11. pytypefx-2.1.0/tests/conftest.py +0 -26
  12. {pytypefx-2.1.0 → pytypefx-2.1.1}/LICENSE +0 -0
  13. {pytypefx-2.1.0 → pytypefx-2.1.1}/PyTypeFx.egg-info/dependency_links.txt +0 -0
  14. {pytypefx-2.1.0 → pytypefx-2.1.1}/PyTypeFx.egg-info/entry_points.txt +0 -0
  15. {pytypefx-2.1.0 → pytypefx-2.1.1}/PyTypeFx.egg-info/requires.txt +0 -0
  16. {pytypefx-2.1.0 → pytypefx-2.1.1}/README.md +0 -0
  17. {pytypefx-2.1.0 → pytypefx-2.1.1}/setup.cfg +0 -0
  18. {pytypefx-2.1.0 → pytypefx-2.1.1}/tests/test_banners.py +0 -0
  19. {pytypefx-2.1.0 → pytypefx-2.1.1}/tests/test_colors.py +0 -0
  20. {pytypefx-2.1.0 → pytypefx-2.1.1}/tests/test_decorator.py +0 -0
  21. {pytypefx-2.1.0 → pytypefx-2.1.1}/tests/test_effects.py +0 -0
  22. {pytypefx-2.1.0 → pytypefx-2.1.1}/tests/test_styles.py +0 -0
  23. {pytypefx-2.1.0 → pytypefx-2.1.1}/tests/test_utility.py +0 -0
  24. {pytypefx-2.1.0 → pytypefx-2.1.1}/tests/test_writers.py +0 -0
  25. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/_types.py +0 -0
  26. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/banners.py +0 -0
  27. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/cli.py +0 -0
  28. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/colors.py +0 -0
  29. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/constant.py +0 -0
  30. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/decorator.py +0 -0
  31. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/effects.py +0 -0
  32. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/styles.py +0 -0
  33. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/utility.py +0 -0
  34. {pytypefx-2.1.0 → pytypefx-2.1.1}/typefx/writers.py +0 -0
@@ -0,0 +1,671 @@
1
+ Metadata-Version: 2.4
2
+ Name: PyTypeFx
3
+ Version: 2.1.1
4
+ Summary: Terminal text effects, ASCII art banners, and mascot displays — zero dependencies.
5
+ Author: RK RIAD KHAN
6
+ Author-email: RK RIAD KHAN <rkriad585@gmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/rkriad585/PyTypeFx
9
+ Project-URL: Source, https://github.com/rkriad585/PyTypeFx
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.7
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Requires-Python: >=3.7
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: typing_extensions; python_version < "3.8"
20
+ Dynamic: author
21
+ Dynamic: license-file
22
+ Dynamic: requires-python
23
+
24
+ <p align="center">
25
+ <img src="https://img.shields.io/badge/Python-3.7%2B-blue?logo=python&logoColor=white" alt="Python">
26
+ <img src="https://img.shields.io/badge/version-2.1.0-green?logo=git&logoColor=white" alt="Version">
27
+ <img src="https://img.shields.io/badge/license-MIT-blue" alt="License">
28
+ <img src="https://img.shields.io/badge/tests-198%20passing-brightgreen" alt="Tests">
29
+ <img src="https://img.shields.io/badge/dependencies-0-success" alt="Zero Deps">
30
+ </p>
31
+
32
+ <h1 align="center">TypeFx</h1>
33
+ <p align="center"><em>Terminal text effects, ASCII art banners, and mascot displays — zero dependencies.</em></p>
34
+
35
+ TypeFx brings your terminal applications to life with dynamic typing effects, customizable banner templates, **55+ ASCII art animals**, **600+ kaomoji expressions**, and **90+ Unicode emoji symbols** — all with zero external dependencies.
36
+
37
+ ---
38
+
39
+ ## Table of Contents
40
+
41
+ - [Quick Start](#quick-start)
42
+ - [Installation](#installation)
43
+ - [Features](#features)
44
+ - [Typing Effects](#typing-effects)
45
+ - [Banners & ASCII Art](#banners--ascii-art)
46
+ - [ASCII Animals](#ascii-animals)
47
+ - [Kaomoji](#kaomoji)
48
+ - [Emoji Symbols](#emoji-symbols)
49
+ - [Buddy / Mascot System](#buddy--mascot-system)
50
+ - [Color System](#color-system)
51
+ - [Style Presets](#style-presets)
52
+ - [Decorator](#decorator)
53
+ - [Command-Line Interface](#command-line-interface)
54
+ - [Full API Reference](#full-api-reference)
55
+ - [Configuration](#configuration)
56
+ - [Examples Gallery](#examples-gallery)
57
+ - [Contributing](#contributing)
58
+ - [Code of Conduct](#code-of-conduct)
59
+ - [License](#license)
60
+
61
+ ---
62
+
63
+ ## Quick Start
64
+
65
+ ```python
66
+ from typefx import project_banner, hero_banner, alert_banner, progress_bar, tag, divider, animal, kaomoji, buddy
67
+ from typefx.colors import BRIGHT_CYAN, CYAN, GREEN
68
+
69
+ # Project banner
70
+ print(project_banner("MyApp", tagline="v2.0", version="1.0.0"))
71
+
72
+ # Alert
73
+ print(alert_banner("Server started", level="success", width=50))
74
+
75
+ # Progress bar
76
+ print(progress_bar(75, width=20, label="Loading", color=GREEN))
77
+
78
+ # ASCII animal
79
+ print(animal("dragon"))
80
+
81
+ # Buddy mascot
82
+ buddy("MyApp", animal_name="cat1", color=BRIGHT_CYAN, message="Ready!")
83
+ ```
84
+
85
+ ## Installation
86
+
87
+ ```bash
88
+ pip install PyTypeFx
89
+ ```
90
+
91
+ **Or from source:**
92
+
93
+ ```bash
94
+ git clone https://github.com/rkriad585/PyTypeFx.git
95
+ cd PyTypeFx
96
+ pip install -e .
97
+ ```
98
+
99
+ ---
100
+
101
+ ## Features
102
+
103
+ ### Typing Effects
104
+
105
+ All 18 writers share consistent parameters: `text`, `delay`, `color`, `style`, `position`.
106
+
107
+ ```python
108
+ from typefx import TypeWriter, RainbowWriter, GlitchWriter, GradientWriter, BounceWriter
109
+
110
+ # Classic typewriter
111
+ TypeWriter("Hello, World!", delay=0.05)
112
+
113
+ # Rainbow cycling text
114
+ RainbowWriter("Rainbow effect!", delay=0.03)
115
+
116
+ # Glitch / distortion effect
117
+ GlitchWriter("SYSTEM ONLINE", delay=0.05, color="green")
118
+
119
+ # Smooth color gradient
120
+ GradientWriter("Gradient text", start_hex="#FF0000", end_hex="#0000FF")
121
+
122
+ # Bounce animation
123
+ BounceWriter("BOUNCE!", delay=0.08, color="cyan")
124
+
125
+ # Loop write-delete animation
126
+ LoopWriter("Loading...", loops=5, delay=0.03, color="yellow")
127
+
128
+ # Game-style dialog box
129
+ GameDialog("Hello, adventurer!", delay=0.03, color="green")
130
+
131
+ # Markdown rendering
132
+ MarkdownWriter("This is **bold** and *italic* text.")
133
+
134
+ # HTML rendering
135
+ HTMLWriter("This is <b>bold</b> and <i>italic</i> text.")
136
+
137
+ # Reverse type
138
+ ReverseWriter("Reverse text")
139
+
140
+ # Thinking animation with blinking dots
141
+ ThinkWriter("Analyzing...", color="cyan")
142
+
143
+ # Ghost autocomplete suggestion
144
+ AutoCompleteWriter("autocomplete", color="bright_black")
145
+ ```
146
+
147
+ **Full writer list:**
148
+
149
+ | Writer | Effect |
150
+ | --- | --- |
151
+ | `TypeWriter` | Standard character-by-character typing |
152
+ | `RainbowWriter` | Rainbow color cycling |
153
+ | `HexWriter` | Custom hex color cycling |
154
+ | `DelWriter` | Type then delete |
155
+ | `LoopWriter` | Repeated type-delete loop |
156
+ | `SoundWriter` | Type with beep sounds |
157
+ | `GameDialog` | Game-style dialog box |
158
+ | `RandomWriter` | Random color per character |
159
+ | `MarkdownWriter` | Renders `**bold**`, `*italic*`, `__underline__` |
160
+ | `HTMLWriter` | Renders `<b>`, `<i>`, `<u>`, `<s>`, `<blink>` |
161
+ | `GlitchWriter` | Glitch/distortion effect |
162
+ | `ThinkWriter` | Blinking ellipsis before text |
163
+ | `ReverseWriter` | Reverse order typing |
164
+ | `ReverseGlitchWriter` | Reverse + glitch combined |
165
+ | `BounceWriter` | Bounce highlight effect |
166
+ | `BounceGlitchWriter` | Bounce + glitch combined |
167
+ | `GradientWriter` | Smooth hex-to-hex gradient |
168
+ | `AutoCompleteWriter` | Ghost autocomplete suggestion |
169
+
170
+ ---
171
+
172
+ ### Banners & ASCII Art
173
+
174
+ Every banner function accepts optional `color`, `align`, `padding`, `width`, `border_color`, and `title_color` parameters with full backward compatibility.
175
+
176
+ ```python
177
+ from typefx import box, project_banner, hero_banner, alert_banner, progress_bar, tag, divider, frame, centered_banner, section_header, banner_block, banner_arrow, banner_dash, rule, color_art
178
+ from typefx.colors import BRIGHT_CYAN, CYAN, GREEN, YELLOW, RED, MAGENTA
179
+
180
+ # --- Box Layouts (7 styles) ---
181
+ print(box("Hello")) # single box
182
+ print(box("Content", style="double", title="Output")) # double-line
183
+ print(box("Rounded", style="rounded")) # rounded corners
184
+ print(box("Heavy", style="heavy")) # thick lines
185
+ print(box("ASCII", style="ascii")) # pure ASCII +-*/
186
+
187
+ # Fully customized box
188
+ print(box("Customized", color=BRIGHT_CYAN, align="center", padding=1, width=30, title="Demo", title_color=GREEN, border_color=CYAN))
189
+
190
+ # --- Project Banner ---
191
+ print(project_banner("MyApp", tagline="Terminal Text Effects", version="2.0.1", color=BRIGHT_CYAN, accent=GREEN))
192
+
193
+ # --- Hero Banner ---
194
+ print(hero_banner("Welcome to MyApp", color=BRIGHT_CYAN, width=60))
195
+
196
+ # --- Alert Banners (5 levels) ---
197
+ print(alert_banner("Everything OK", level="success", width=50))
198
+ print(alert_banner("Disk at 85%", level="warning", width=50))
199
+ print(alert_banner("Server down", level="error", width=50))
200
+ print(alert_banner("Connection lost", level="critical", width=50))
201
+
202
+ # --- Progress Bars ---
203
+ print(progress_bar(25, width=20, label="Download"))
204
+ print(progress_bar(50, width=20, label="Processing", color=YELLOW))
205
+ print(progress_bar(100, width=20, label="Complete", color=GREEN, show_percent=True))
206
+
207
+ # --- Tags / Badges ---
208
+ print(tag("INFO", color=BRIGHT_CYAN, bracket="square"))
209
+ print(tag("URGENT", color=RED, bracket="curly"))
210
+
211
+ # --- Dividers ---
212
+ print(divider(length=50, label="Section", color=CYAN, align="center"))
213
+ print(divider(length=40, fill="~", label="Chapter 1", color=YELLOW))
214
+
215
+ # --- Frames ---
216
+ print(frame(" Hello\n World", box_style="double"))
217
+ print(color_art(" ╔═══╗\n ║ ♥ ║\n ╚═══╝", color=RED))
218
+
219
+ # --- Centered Banner ---
220
+ print(centered_banner("★ PyTypeFx ★", width=50, color=BRIGHT_CYAN, fill="="))
221
+
222
+ # --- Section Header ---
223
+ print(section_header("Features", color=CYAN, align="center"))
224
+
225
+ # --- Banner Block with arrow ---
226
+ print(banner_block("Main Title", color=BRIGHT_CYAN, align="center"))
227
+ print(banner_arrow("Next Step", color=GREEN))
228
+ print(banner_dash("Item", color=CYAN))
229
+
230
+ # --- Rule ---
231
+ print(rule(color=CYAN))
232
+ ```
233
+
234
+ **Full banner function list:**
235
+
236
+ | Function | Description |
237
+ | --- | --- |
238
+ | `box()` | Multi-style box layouts (7 styles) |
239
+ | `project_banner()` | Full project header with name, tagline, version |
240
+ | `hero_banner()` | Big attention-grabbing header |
241
+ | `alert_banner()` | Contextual alerts (info/success/warning/error/critical) |
242
+ | `progress_bar()` | Visual progress bars with labels |
243
+ | `tag()` | Badges and labels |
244
+ | `divider()` | Horizontal dividers with labels |
245
+ | `frame()` | Frame ASCII art inside boxes |
246
+ | `centered_banner()` | Text centered between fill characters |
247
+ | `section_header()` | Section header with decorative borders |
248
+ | `banner_block()` | Large banner block with top/bottom borders |
249
+ | `banner_arrow()` | Arrow-pointing banner |
250
+ | `banner_dash()` | Dashed prefix banner |
251
+ | `rule()` | Colored horizontal rule |
252
+ | `color_art()` | Color existing ASCII art |
253
+ | `buddy()` | Combine animal + project name |
254
+ | `buddy_box()` | Buddy mascot inside a box |
255
+ | `buddy_multi()` | Multiple animals side-by-side |
256
+
257
+ ---
258
+
259
+ ### ASCII Animals
260
+
261
+ 55+ built-in ASCII art animals. Display one by name, or get a random one.
262
+
263
+ ```python
264
+ from typefx import animal, animal_names
265
+
266
+ # Specific animal
267
+ print(animal("dragon"))
268
+ # /\_/\
269
+ # ( o.o )
270
+ # > ^ <
271
+
272
+ print(animal("cat1"))
273
+ # /\_/\
274
+ # ( o.o )
275
+ # > ^ <
276
+
277
+ print(animal("penguin1"))
278
+ # .---.
279
+ # / \
280
+ # \.-.-./
281
+
282
+ # Random animal
283
+ print(animal())
284
+
285
+ # List all available names
286
+ names = animal_names()
287
+ print(len(names)) # 55+
288
+ ```
289
+
290
+ **Available animals:**
291
+ `cat1`, `cat2`, `cat_love`, `dog1`, `dog2`, `dog_sleep`, `bear`, `penguin1`, `penguin2`, `penguin_dance`, `bunny1`, `bunny2`, `bunny3`, `bird`, `fish`, `fox`, `pig`, `frog`, `koala`, `panda`, `turtle`, `monkey`, `octopus1`, `octopus2`, `lion`, `horse`, `cow`, `sheep`, `elephant`, `whale`, `dolphin`, `shark`, `snake`, `spider`, `butterfly`, `parrot`, `eagle`, `wolf`, `deer`, `chicken`, `hamster`, `mouse`, `sloth`, `dragon`, `bat`, `seal`, `crab`, `dino`, and more.
292
+
293
+ ---
294
+
295
+ ### Kaomoji
296
+
297
+ 600+ Japanese emoticons across 30 categories.
298
+
299
+ ```python
300
+ from typefx import kaomoji, kaomoji_categories
301
+
302
+ # By category
303
+ print(kaomoji("happy")) # (◕‿◕✿)
304
+ print(kaomoji("love")) # ♥‿♥
305
+ print(kaomoji("fight")) # (งಠ_ಠ)ง
306
+ print(kaomoji("cat")) # (=^‥^=)
307
+ print(kaomoji("dance")) # └(^‿^)┘
308
+ print(kaomoji("party")) # d(^‿^)b
309
+ print(kaomoji("magic")) # (∩‿∩)⊃━☆゚.*・。゚
310
+ print(kaomoji("sorry")) # (シ_ _)シ
311
+ print(kaomoji("excited")) # ヽ(°〇°)ノ
312
+ print(kaomoji("cold")) # (っ◕‿◕)っ❄
313
+
314
+ # Random kaomoji
315
+ print(kaomoji())
316
+
317
+ # List categories
318
+ print(kaomoji_categories())
319
+ ```
320
+
321
+ **Categories:** happy, sad, angry, love, shrug, cat, dog, bear, cute, surprise, sleep, dance, party, greeting, wave, hug, sorry, thank, excited, nervous, cool, run, fight, magic, food, drink, music, rain, star, flower, cold.
322
+
323
+ ---
324
+
325
+ ### Emoji Symbols
326
+
327
+ 90+ Unicode symbols organized by category.
328
+
329
+ ```python
330
+ from typefx import emoji, emoji_categories
331
+
332
+ # Get emoji by name
333
+ print(emoji("heart_red")) # ♥
334
+ print(emoji("star")) # ★
335
+ print(emoji("fire")) # ♨
336
+ print(emoji("aries")) # ♈
337
+ print(emoji("chess_king")) # ♔
338
+ print(emoji("infinity")) # ∞
339
+ print(emoji("euro")) # €
340
+ print(emoji("sun")) # ☀
341
+ print(emoji("peace")) # ☮
342
+
343
+ # Random emoji
344
+ print(emoji())
345
+
346
+ # List categories
347
+ print(emoji_categories())
348
+ ```
349
+
350
+ **Categories:** hearts, stars, zodiac, chess, math, arrows, currency, weather, geometric, music, misc.
351
+
352
+ ---
353
+
354
+ ### Buddy / Mascot System
355
+
356
+ Combine any ASCII animal with a project name for mascot displays.
357
+
358
+ ```python
359
+ from typefx import buddy, buddy_box, buddy_multi
360
+ from typefx.colors import BRIGHT_CYAN, GREEN, MAGENTA
361
+
362
+ # Single mascot
363
+ buddy("MyApp", animal_name="cat1", color=BRIGHT_CYAN)
364
+
365
+ # With message
366
+ buddy("MyApp", animal_name="penguin2", color=BRIGHT_CYAN,
367
+ message="Making terminals beautiful!")
368
+
369
+ # Boxed mascot
370
+ buddy_box("MyApp", tagline="v2.0", animal_name="fox", color=BRIGHT_CYAN)
371
+
372
+ # Multi-animal team (aligned side-by-side)
373
+ buddy_multi("MyApp", animal_names=["cat1", "fox", "penguin2"],
374
+ color=BRIGHT_CYAN)
375
+ ```
376
+
377
+ ---
378
+
379
+ ### Color System
380
+
381
+ ```python
382
+ from typefx.colors import (
383
+ RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE,
384
+ BRIGHT_RED, BRIGHT_GREEN, BRIGHT_CYAN, BRIGHT_WHITE,
385
+ ORANGE, PINK, TEAL, CORAL, MINT, PLUM, GOLD,
386
+ BG_RED, BG_GREEN, BG_CYAN,
387
+ BOLD, UNDERLINE, ITALIC, INVERT, STRIKETHROUGH,
388
+ hex_to_ansi, rgb_to_ansi, colorize
389
+ )
390
+
391
+ # Apply multiple styles
392
+ print(colorize("Error!", RED, BOLD, UNDERLINE))
393
+
394
+ # Hex to ANSI
395
+ print(f"{hex_to_ansi('#FF5733')}Orange text{RESET}")
396
+
397
+ # RGB to ANSI
398
+ print(f"{rgb_to_ansi(100, 200, 255)}Custom RGB{RESET}")
399
+
400
+ # Use a palette
401
+ from typefx.colors import PALETTES
402
+ print(PALETTES["OCEAN"]) # ['#0077BE', '#0099CC', '#00BFFF', ...]
403
+ print(PALETTES["SUNSET"]) # ['#FF4500', '#FF6347', '#FF8C00', ...]
404
+ ```
405
+
406
+ **What's included:**
407
+ - 16 basic + 16 bright ANSI colors
408
+ - 50+ extended named colors (Coral, Mint, Plum, Slate, Gold, etc.)
409
+ - Background variants for all colors (`BG_RED`, `BG_GREEN`, ...)
410
+ - HEX and RGB to ANSI converters
411
+ - 256-color 8-bit helpers (`fg_256()`, `bg_256()`)
412
+ - 6 curated palettes: `SUCCESS`, `ERROR`, `WARNING`, `INFO`, `NEON`, `PASTEL`, `OCEAN`, `SUNSET`, `FOREST`, `GARDEN`, `CYBER`, `NOIR`, `ROSE`
413
+
414
+ ---
415
+
416
+ ### Style Presets
417
+
418
+ 40+ composable style presets for quick formatting.
419
+
420
+ ```python
421
+ from typefx.styles import apply_style, compose, ERROR, SUCCESS, WARNING, INFO, TITLE, HEADING, CODE, HIGHLIGHT, BANNER, NEON, GHOST
422
+
423
+ # Apply a preset
424
+ print(apply_style("Something went wrong!", ERROR))
425
+ print(apply_style("Task completed!", SUCCESS))
426
+ print(apply_style("Chapter 1", TITLE))
427
+ print(apply_style("Important note", HIGHLIGHT))
428
+ print(apply_style("Neon sign", NEON))
429
+
430
+ # Compose a custom style
431
+ from typefx.colors import BRIGHT_MAGENTA, BRIGHT_CYAN, INVERT, BOLD
432
+ custom = compose(BRIGHT_MAGENTA, BRIGHT_CYAN, INVERT, BOLD)
433
+ print(apply_style("Custom!", custom))
434
+
435
+ # Use with writers
436
+ from typefx import TypeWriter
437
+ TypeWriter("Banner text", **BANNER)
438
+ TypeWriter("Error text", **ERROR)
439
+ ```
440
+
441
+ ---
442
+
443
+ ## Decorator
444
+
445
+ The `@typefx` decorator applies typing effects to any function's output.
446
+
447
+ ```python
448
+ from PyTypeFx import typefx
449
+
450
+ @typefx(hex_colors=["#FF0000", "#00FF00", "#0000FF"], delay=0.03)
451
+ def my_message():
452
+ print("This message will be typed out with a cool effect!")
453
+
454
+ my_message()
455
+ ```
456
+
457
+ ---
458
+
459
+ ## Command-Line Interface
460
+
461
+ ```bash
462
+ # Basic
463
+ typefx --text "Hello from the CLI!" --delay 0.05 --rainbow
464
+
465
+ # From file
466
+ typefx --file message.txt --delay 0.03
467
+
468
+ # Random effect
469
+ typefx --text "Random text" --random
470
+
471
+ # Looping
472
+ typefx --text "Looping" --loops 5
473
+ ```
474
+
475
+ **CLI Options:**
476
+
477
+ | Option | Description |
478
+ | --- | --- |
479
+ | `-t`, `--text` | Text to type |
480
+ | `-d`, `--delay` | Delay between characters |
481
+ | `-l`, `--loops` | Loop count for `LoopWriter` |
482
+ | `-r`, `--rainbow` | Rainbow effect |
483
+ | `-rnd`, `--random` | Random writer effect |
484
+ | `-s`, `--sound` | Sound effect |
485
+ | `-f`, `--file` | Read text from a file |
486
+
487
+ ---
488
+
489
+ ## Full API Reference
490
+
491
+ ### `typefx.writers`
492
+
493
+ | Function | Signature |
494
+ | --- | --- |
495
+ | `TypeWriter` | `(text, delay, color, style, reverse, position)` |
496
+ | `RainbowWriter` | `(text, delay, style, position)` |
497
+ | `HexWriter` | `(text, delay, style, position)` |
498
+ | `DelWriter` | `(text, delay, color, style, reverse, position)` |
499
+ | `LoopWriter` | `(text, delay, color, style, reverse, position, loops)` |
500
+ | `SoundWriter` | `(text, delay, color, style, reverse, position, frequency, duration)` |
501
+ | `GameDialog` | `(text, delay, color, style, position)` |
502
+ | `RandomWriter` | `(text, delay, style, position)` |
503
+ | `MarkdownWriter` | `(text, delay, style, position)` |
504
+ | `HTMLWriter` | `(text, delay, style, position)` |
505
+ | `GlitchWriter` | `(text, delay, color, style, position, glitch_chars, glitch_duration)` |
506
+ | `ThinkWriter` | `(text, delay, color, style, position)` |
507
+ | `ReverseWriter` | `(text, delay, color, style, position)` |
508
+ | `ReverseGlitchWriter` | `(text, delay, color, style, position)` |
509
+ | `BounceWriter` | `(text, delay, color, style, position)` |
510
+ | `BounceGlitchWriter` | `(text, delay, color, style, position)` |
511
+ | `GradientWriter` | `(text, delay, style, position, start_hex, end_hex)` |
512
+ | `AutoCompleteWriter` | `(text, delay, color, style, position, options)` |
513
+
514
+ ### `typefx.banners`
515
+
516
+ | Function | Description |
517
+ | --- | --- |
518
+ | `box(text, style, color, align, padding, width, title, title_color, border_color)` | Box layouts in 7 styles |
519
+ | `project_banner(name, tagline, version, color, accent)` | Full project header |
520
+ | `hero_banner(text, color, width)` | Large attention header |
521
+ | `alert_banner(text, level, width)` | 5-level alert banners |
522
+ | `progress_bar(percent, width, label, color, show_percent, fill, empty)` | Progress bars |
523
+ | `tag(text, color, bracket)` | Badges / labels |
524
+ | `divider(length, label, fill, color, align)` | Horizontal dividers |
525
+ | `frame(art, box_style, color, padding)` | Frame ASCII art |
526
+ | `centered_banner(text, width, fill, color)` | Centered text banner |
527
+ | `section_header(text, color, align)` | Section headers |
528
+ | `banner_block(text, color, align, padding, width)` | Large banner block |
529
+ | `banner_arrow(text, color, align)` | Arrow banner |
530
+ | `banner_dash(text, color, align)` | Dashed banner |
531
+ | `rule(color, length)` | Colored horizontal rule |
532
+ | `color_art(art, color)` | Colorize ASCII art |
533
+ | `animal(name)` | Get ASCII animal |
534
+ | `animal_names()` | List all animal names |
535
+ | `kaomoji(category)` | Get kaomoji by category |
536
+ | `kaomoji_categories()` | List all kaomoji categories |
537
+ | `emoji(name)` | Get emoji by name |
538
+ | `emoji_categories()` | List all emoji categories |
539
+ | `buddy(name, animal_name, color, message)` | Mascot display |
540
+ | `buddy_box(name, tagline, animal_name, color)` | Boxed mascot |
541
+ | `buddy_multi(name, animal_names, color)` | Multi-animal mascot |
542
+ | `ALERT_STYLES` | Dict: info, success, warning, error, critical |
543
+
544
+ ### `typefx.effects`
545
+
546
+ - `BlinkEffect(duration, cursor, delay)` — Blinking cursor animation
547
+ - `SoundEffect(frequency, duration)` — System beep sound
548
+
549
+ ### `typefx.colors`
550
+
551
+ - `hex_to_ansi(hex_color)` — Hex to ANSI foreground
552
+ - `bg_hex_to_ansi(hex_color)` — Hex to ANSI background
553
+ - `rgb_to_ansi(r, g, b)` — RGB to ANSI foreground
554
+ - `bg_rgb_to_ansi(r, g, b)` — RGB to ANSI background
555
+ - `fg_256(n)` — 8-bit 256-color foreground
556
+ - `bg_256(n)` — 8-bit 256-color background
557
+ - `colorize(text, *styles)` — Apply ANSI codes to text
558
+
559
+ ### `typefx.styles`
560
+
561
+ - `compose(color, *formats)` — Build style dict
562
+ - `apply_style(text, style)` — Apply style to string
563
+
564
+ ### `typefx.utility`
565
+
566
+ - `gradient(text, start_hex, end_hex)` — Apply gradient to text
567
+ - `supports_ansi()` — Check terminal ANSI support
568
+
569
+ ---
570
+
571
+ ## Configuration
572
+
573
+ The `typefx.constant` module contains all default values:
574
+
575
+ | Constant | Default | Description |
576
+ | --- | --- | --- |
577
+ | `TEXT` | `"Hello World!"` | Default text for writers |
578
+ | `GLITCH` | `"!@#$%^&*()..."` | Glitch character set |
579
+ | `CURSOR` | `_` | BlinkEffect cursor |
580
+ | `DELAY` | `0.05` | Default character delay |
581
+ | `HOLD` | `1` | DelWriter hold time |
582
+ | `LOOP` | `3` | Default loop count |
583
+ | `DOTS` | `3` | ThinkWriter dot count |
584
+ | `FREQUENCY` | `800` | Sound frequency |
585
+ | `SOUND_DURATION` | `30` | Sound duration |
586
+ | `START_HEX` | `"#E74C3C"` | Gradient start color |
587
+ | `END_HEX` | `"#2ECC71"` | Gradient end color |
588
+
589
+ ---
590
+
591
+ ## Examples Gallery
592
+
593
+ ### Gradient Text
594
+
595
+ ```python
596
+ from PyTypeFx import GradientWriter
597
+
598
+ GradientWriter("This is a beautiful gradient!", start_hex="#FF00FF", end_hex="#00FFFF", delay=0.02)
599
+ ```
600
+
601
+ ### Game Dialog
602
+
603
+ ```python
604
+ from PyTypeFx import GameDialog
605
+
606
+ GameDialog(speaker="Hero", text="I must defeat the final boss!", delay=0.04, sound=True)
607
+ ```
608
+
609
+ ### Chaining Effects
610
+
611
+ ```python
612
+ from PyTypeFx import TypeWriter, DelWriter, BlinkEffect
613
+
614
+ TypeWriter("Preparing for deletion...")
615
+ DelWriter("This message will self-destruct.", hold=2)
616
+ BlinkEffect(duration=2)
617
+ ```
618
+
619
+ ### Alert Dashboard
620
+
621
+ ```python
622
+ from typefx import alert_banner, divider, box
623
+ from typefx.colors import CYAN
624
+
625
+ print(box("System Dashboard", style="double", align="center", width=60))
626
+ print(alert_banner("CPU: 45%", level="info"))
627
+ print(alert_banner("Memory: 72%", level="warning"))
628
+ print(alert_banner("Errors: 0", level="success"))
629
+ print(divider(length=60, fill="─", color=CYAN))
630
+ ```
631
+
632
+ ### Multi-Animal Team Mascot
633
+
634
+ ```python
635
+ from typefx import buddy_multi
636
+ from typefx.colors import BRIGHT_CYAN
637
+
638
+ buddy_multi("PyTypeFx", animal_names=["dragon", "fox", "penguin2"],
639
+ color=BRIGHT_CYAN)
640
+ ```
641
+
642
+ ### Custom Box Style
643
+
644
+ ```python
645
+ from typefx import box
646
+ from typefx.colors import BRIGHT_CYAN, GREEN, CYAN
647
+
648
+ print(box("Welcome to TypeFx!\nZero dependencies.\n55+ animals. 600+ kaomoji.",
649
+ style="double", color=BRIGHT_CYAN, align="center", padding=1,
650
+ width=50, title="PyTypeFx", title_color=GREEN, border_color=CYAN))
651
+ ```
652
+
653
+ ---
654
+
655
+ ## Contributing
656
+
657
+ See [`CONTRIBUTING.md`](CONTRIBUTING.md) for development setup, testing, code style, and pull request guidelines.
658
+
659
+ ## Code of Conduct
660
+
661
+ This project follows the [Contributor Covenant](CODE_OF_CONDUCT.md). See [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) for details.
662
+
663
+ ## License
664
+
665
+ This project is licensed under the MIT License. See the [`LICENSE`](LICENSE) file for details.
666
+
667
+ ---
668
+
669
+ <p align="center">
670
+ <sub>Built with ❤ by <a href="https://github.com/rkriad585">RK RIAD KHAN</a></sub>
671
+ </p>