public YieldInstruction Show()
    {
        Assert.IsNotNull(canvasGroup);
        Assert.IsNotNull(layoutElement);

        layoutElement.DOKill();
        var size = layoutElement
                   .DOPreferredSize(new Vector2(preferredWidth, layoutElement.preferredHeight), showDuration)
                   .SetEase(Ease.InOutSine);

        canvasGroup.DOKill();
        var fade = canvasGroup
                   .DOFade(1.0f, showDuration)
                   .SetEase(Ease.InOutSine);

        return(DOTween.Sequence()
               .Append(size)
               .AppendCallback(() => SetCanvasGroupEnabled(true))
               .Append(fade)
               .WaitForCompletion());
    }