Spotlights
Quick Start
from terminaltexteffects.effects.effect_spotlights import Spotlights
effect = Spotlights("YourTextHere")
with effect.terminal_output() as terminal:
for frame in effect:
terminal.print(frame)
Spotlights search the text area, illuminating characters, before converging in the center and expanding.
Classes:
Name | Description |
---|---|
Spotlights |
Spotlights search the text area, illuminating characters, before converging in the center and expanding. |
SpotlightsConfig |
Configuration for the Spotlights effect. |
SpotlightsIterator |
Effect iterator for the Spotlights effect. Does not normally need to be called directly. |
Spotlights
Bases: BaseEffect[SpotlightsConfig]
Spotlights search the text area, illuminating characters, before converging in the center and expanding.
Attributes:
Name | Type | Description |
---|---|---|
effect_config |
SpotlightsConfig
|
Configuration for the effect. |
terminal_config |
TerminalConfig
|
Configuration for the terminal. |
Source code in terminaltexteffects/effects/effect_spotlights.py
__init__(input_data)
Initialize the effect with the provided input data.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
input_data |
str
|
The input data to use for the effect. |
required |
SpotlightsConfig
dataclass
Bases: ArgsDataClass
Configuration for the Spotlights effect.
Attributes:
Name | Type | Description |
---|---|---|
final_gradient_stops |
tuple[Color, ...]
|
Tuple of colors for the final color gradient. If only one color is provided, the characters will be displayed in that color. |
final_gradient_steps |
tuple[int, ...] | int
|
Tuple of the number of gradient steps to use. More steps will create a smoother and longer gradient animation. Valid values are n > 0. |
final_gradient_direction |
Direction
|
Direction of the final gradient. |
beam_width_ratio |
float
|
Width of the beam of light as min(width, height) // n of the input text. Valid values are n > 0. |
beam_falloff |
float
|
Distance from the edge of the beam where the brightness begins to fall off, as a percentage of total beam width. Valid values are 0 <= n <= 1. |
search_duration |
int
|
Duration of the search phase, in frames, before the spotlights converge in the center. Valid values are n > 0. |
search_speed_range |
tuple[float, float]
|
Range of speeds for the spotlights during the search phase. The speed is a random value between the two provided values. Valid values are n > 0. |
spotlight_count |
int
|
Number of spotlights to use. Valid values are n > 0. |
Source code in terminaltexteffects/effects/effect_spotlights.py
29 30 31 32 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 |
|
beam_falloff: float = ArgField(cmd_name='--beam-falloff', type_parser=argvalidators.NonNegativeFloat.type_parser, default=0.3, metavar=argvalidators.NonNegativeFloat.METAVAR, help='Distance from the edge of the beam where the brightness begins to fall off, as a percentage of total beam width.')
class-attribute
instance-attribute
float : Distance from the edge of the beam where the brightness begins to fall off, as a percentage of total beam width.
beam_width_ratio: float = ArgField(cmd_name='--beam-width-ratio', type_parser=argvalidators.PositiveFloat.type_parser, default=2.0, metavar=argvalidators.PositiveFloat.METAVAR, help='Width of the beam of light as min(width, height) // n of the input text.')
class-attribute
instance-attribute
float : Width of the beam of light as min(width, height) // n of the input text.
final_gradient_direction: Gradient.Direction = ArgField(cmd_name='--final-gradient-direction', type_parser=argvalidators.GradientDirection.type_parser, default=Gradient.Direction.VERTICAL, metavar=argvalidators.GradientDirection.METAVAR, help='Direction of the final gradient.')
class-attribute
instance-attribute
Gradient.Direction : Direction of the final gradient.
final_gradient_steps: tuple[int, ...] | int = ArgField(cmd_name='--final-gradient-steps', type_parser=argvalidators.PositiveInt.type_parser, nargs='+', default=12, metavar=argvalidators.PositiveInt.METAVAR, help='Number of gradient steps to use. More steps will create a smoother and longer gradient animation.')
class-attribute
instance-attribute
tuple[int, ...] | int : Int or Tuple of ints for the number of gradient steps to use. More steps will create a smoother and longer gradient animation.
final_gradient_stops: tuple[Color, ...] = ArgField(cmd_name=['--final-gradient-stops'], type_parser=argvalidators.ColorArg.type_parser, nargs='+', default=(Color('ab48ff'), Color('e7b2b2'), Color('fffebd')), metavar=argvalidators.ColorArg.METAVAR, help='Space separated, unquoted, list of colors for the character gradient (applied from bottom to top). If only one color is provided, the characters will be displayed in that color.')
class-attribute
instance-attribute
tuple[Color, ...] : Tuple of colors for the final color gradient. If only one color is provided, the characters will be displayed in that color.
search_duration: int = ArgField(cmd_name='--search-duration', type_parser=argvalidators.PositiveInt.type_parser, default=750, metavar=argvalidators.PositiveInt.METAVAR, help='Duration of the search phase, in frames, before the spotlights converge in the center.')
class-attribute
instance-attribute
int : Duration of the search phase, in frames, before the spotlights converge in the center.
search_speed_range: tuple[float, float] = ArgField(cmd_name='--search-speed-range', type_parser=argvalidators.PositiveFloatRange.type_parser, default=(0.25, 0.5), metavar=argvalidators.PositiveFloatRange.METAVAR, help='Range of speeds for the spotlights during the search phase. The speed is a random value between the two provided values.')
class-attribute
instance-attribute
tuple[float, float] : Range of speeds for the spotlights during the search phase. The speed is a random value between the two provided values.
spotlight_count: int = ArgField(cmd_name='--spotlight-count', type_parser=argvalidators.PositiveInt.type_parser, default=3, metavar=argvalidators.PositiveInt.METAVAR, help='Number of spotlights to use.')
class-attribute
instance-attribute
int : Number of spotlights to use.