Smoke

Quick Start
from terminaltexteffects.effects import Smoke
effect = Smoke("YourTextHere")
with effect.terminal_output() as terminal:
for frame in effect:
terminal.print(frame)
Smoke floods the canvas colorizing any characters it crosses.
Classes:
| Name | Description |
|---|---|
Smoke |
Smoke effect class. |
SmokeConfig |
Configuration dataclass for the Smoke effect. |
SmokeIterator |
Effect iterator for the Smoke effect. |
Smoke
Bases: BaseEffect[SmokeConfig]
Smoke floods the canvas colorizing any characters it crosses.
Source code in terminaltexteffects/effects/effect_smoke.py
SmokeConfig
dataclass
Bases: BaseConfig
Effect configuration dataclass.
Source code in terminaltexteffects/effects/effect_smoke.py
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | |
final_gradient_direction = ArgSpec(name='--final-gradient-direction', type=(argutils.GradientDirection.type_parser), default=(tte.Gradient.Direction.VERTICAL), metavar=(argutils.GradientDirection.METAVAR), help='Direction of the final gradient.')
class-attribute
instance-attribute
Gradient.Direction : Direction of the final gradient.
final_gradient_steps = ArgSpec(name='--final-gradient-steps', type=(argutils.PositiveInt.type_parser), nargs='+', action=(argutils.TupleAction), default=(12,), metavar=(argutils.PositiveInt.METAVAR), help='Space separated, unquoted, list of the number of gradient steps to use. More steps will create a smoother and longer gradient animation.')
class-attribute
instance-attribute
tuple[int, ...] | int: Space separated, unquoted, list of the number of gradient steps to use. More steps will create a smoother and longer gradient animation.
final_gradient_stops = ArgSpec(name='--final-gradient-stops', type=(argutils.ColorArg.type_parser), nargs='+', action=(argutils.TupleAction), default=(tte.Color('#8A008A'), tte.Color('#00D1FF'), tte.Color('#FFFFFF')), metavar=(argutils.ColorArg.METAVAR), help='Space separated, unquoted, list of colors for the character gradient (applied across the canvas). If only one color is provided, the characters will be displayed in that color.')
class-attribute
instance-attribute
tuple[Color, ...]: Space separated, unquoted, list of colors for the character gradient (applied across the canvas). If only one color is provided, the characters will be displayed in that color.
smoke_gradient_stops = ArgSpec(name='--smoke-gradient-stops', type=(argutils.ColorArg.type_parser), nargs='+', action=(argutils.TupleAction), default=(tte.Color('#242424'), tte.Color('#FFFFFF')), metavar=(argutils.ColorArg.METAVAR), help='Space separated, unquoted, list of colors for the smoke gradient. Smoke will transition through this gradient before moving through the final gradient stops. ')
class-attribute
instance-attribute
tuple[Color, ...]: Space separated, unquoted, list of colors for the smoke gradient. Smoke will transition through this gradient before moving through the final gradient stops.
smoke_symbols = ArgSpec(name='--smoke-symbols', type=(argutils.Symbol.type_parser), nargs='+', action=(argutils.TupleAction), default=('░', '▒', '▓', '▒', '░'), metavar=(argutils.Symbol.METAVAR), help='Symbols to use for the smoke. Strings will be used in sequence to create an animation.')
class-attribute
instance-attribute
tuple[str, ...]: Symbols to use for the smoke. Strings will be used in sequence to create an animation.
starting_color = ArgSpec(name='--starting-color', type=(argutils.ColorArg.type_parser), default=(tte.Color('#7A7A7A')), metavar=(argutils.ColorArg.METAVAR), help='Color of the text before being colorized by the smoke.')
class-attribute
instance-attribute
tte.Color : Color of the text before being colorized by the smoke.
use_whole_canvas = ArgSpec(name='--use-whole-canvas', action='store_true', default=False, help='If True, the entire canvas will be flooded. Otherwise the effect is limited to the text boundary.')
class-attribute
instance-attribute
bool : If True, the entire canvas will be flooded. Otherwise the effect is limited to the text boundary.
SmokeIterator
Bases: BaseEffectIterator[SmokeConfig]
Effect iterator for the Smoke effect.
Source code in terminaltexteffects/effects/effect_smoke.py
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 | |
__init__(effect)
Initialize the effect iterator.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
effect
|
NamedEffect
|
The effect to iterate over. |
required |
Source code in terminaltexteffects/effects/effect_smoke.py
__next__()
Return the next frame of the effect.
Source code in terminaltexteffects/effects/effect_smoke.py
build()
Build the effect.
Source code in terminaltexteffects/effects/effect_smoke.py
get_effect_resources()
Get the command, effect class, and configuration class for the effect.
Returns:
| Type | Description |
|---|---|
tuple[str, type[BaseEffect], type[BaseConfig]]
|
tuple[str, type[BaseEffect], type[BaseConfig]]: The command name, effect class, and configuration class. |