Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
flet / controls / core / shader_mask.py
Size: Mime:
from typing import Optional

from flet.controls.base_control import control
from flet.controls.border_radius import OptionalBorderRadiusValue
from flet.controls.constrained_control import ConstrainedControl
from flet.controls.control import Control
from flet.controls.gradients import Gradient
from flet.controls.types import BlendMode

__all__ = ["ShaderMask"]


@control("ShaderMask")
class ShaderMask(ConstrainedControl):
    """
    A control that applies a mask generated by a shader to its child.

    For example, ShaderMask can be used to gradually fade out the edge of a child by using a `LinearGradient` mask.

    Example:
    ```
    import flet as ft

    def main(page: ft.Page):
        page.add(
            ft.Row(
                [
                    ft.ShaderMask(
                        ft.Image(src="https://picsum.photos/100/200?2"),
                        blend_mode=ft.BlendMode.DST_IN,
                        shader=ft.LinearGradient(
                            begin=ft.Alignment.top_center(),
                            end=ft.Alignment.bottom_center(),
                            colors=[ft.colors.BLACK, ft.colors.TRANSPARENT],
                            stops=[0.5, 1.0],
                        ),
                        border_radius=10,
                    ),
                ]
            )
        )

    ft.app(target=main)
    ```

    -----

    Online docs: https://flet.dev/docs/controls/shadermask
    """

    shader: Gradient
    content: Optional[Control] = None
    blend_mode: Optional[BlendMode] = None
    border_radius: OptionalBorderRadiusValue = None