Source code for svgen.element.text

"""
A module for the 'text' element.
"""

# internal
from svgen.attribute import PossibleAttributes, SimpleAttribute, attributes
from svgen.element.mixins import FillColorMixin, RectangularMixin
from svgen.element.rect import Rect


[docs] class Text(FillColorMixin, RectangularMixin): """A class for text elements""" has_dimensions = False def __init__( self, text: str, rect: Rect, attrs: PossibleAttributes = None, **extra, ) -> None: """Initialize this instance.""" RectangularMixin.__init__(self, rect.rect) attrib = attributes(attrs) + list(self.rect_attributes) attrib += [ # When would height be used? SimpleAttribute("textLength", str(self.dimensions.width / 2)), SimpleAttribute("dy", str(self.dimensions.height)), ] super().__init__(text=text, attrib=attrib, **extra) # Get a contrasting text color. if rect.has_fill_color: self.assign_fill_color( rect.fill_color.hsl_arc(lightness_divisor=2) )