Skip to content

Position

arabic_animations.core.position.Position

Bases: Enum

Predefined positions for text placement

Source code in arabic_animations/core/position.py
class Position(Enum):
    """Predefined positions for text placement"""
    TOP = "top"
    BOTTOM = "bottom"
    LEFT = "left"
    RIGHT = "right"
    CENTER = "center"
    TOP_LEFT = "top_left"
    TOP_RIGHT = "top_right"
    BOTTOM_LEFT = "bottom_left"
    BOTTOM_RIGHT = "bottom_right"

arabic_animations.core.position.Padding dataclass

Padding configuration for text positioning

Parameters:

Name Type Description Default
top float

Padding from top edge

0
right float

Padding from right edge

0
bottom float

Padding from bottom edge

0
left float

Padding from left edge

0
Source code in arabic_animations/core/position.py
@dataclass
class Padding:
    """
    Padding configuration for text positioning

    Args:
        top: Padding from top edge
        right: Padding from right edge
        bottom: Padding from bottom edge
        left: Padding from left edge
    """
    top: float = 0
    right: float = 0
    bottom: float = 0
    left: float = 0

    @classmethod
    def all(cls, value: float) -> 'Padding':
        """Create padding with same value on all sides"""
        return cls(value, value, value, value)

    @classmethod
    def horizontal(cls, value: float) -> 'Padding':
        """Create padding with horizontal values only"""
        return cls(0, value, 0, value)

    @classmethod
    def vertical(cls, value: float) -> 'Padding':
        """Create padding with vertical values only"""
        return cls(value, 0, value, 0)

all(value) classmethod

Create padding with same value on all sides

Source code in arabic_animations/core/position.py
@classmethod
def all(cls, value: float) -> 'Padding':
    """Create padding with same value on all sides"""
    return cls(value, value, value, value)

horizontal(value) classmethod

Create padding with horizontal values only

Source code in arabic_animations/core/position.py
@classmethod
def horizontal(cls, value: float) -> 'Padding':
    """Create padding with horizontal values only"""
    return cls(0, value, 0, value)

vertical(value) classmethod

Create padding with vertical values only

Source code in arabic_animations/core/position.py
@classmethod
def vertical(cls, value: float) -> 'Padding':
    """Create padding with vertical values only"""
    return cls(value, 0, value, 0)

Usage Examples

Using Positions

from arabic_animations.core.position import Position, Padding

# Center position
text = Text("Hello", position=Position.CENTER)

# Top with padding
text = Text(
    "Hello",
    position=Position.TOP,
    padding=Padding(top=50)
)

# Custom padding
text = Text(
    "Hello",
    position=Position.TOP_RIGHT,
    padding=Padding(top=20, right=30)
)

Padding Helpers

# All sides equal
padding = Padding.all(20)

# Horizontal padding
padding = Padding.horizontal(50)

# Vertical padding
padding = Padding.vertical(30)