private async Task AnimateTabButton()
        {
            double sourceScale = TabButton.Scale;
            Color  sourceColor = TabButton.ButtonBackgroundColor;
            Color  targetColor = _currentAppTheme == AppTheme.Light
                ? ResourcesHelper.GetResourceColor("DarkSurface")
                : Color.White;

            await TabButton.ScaleTo(3);

            await TabButton.ScaleTo(sourceScale);

            TabButton.IconImageSource = null;

            var bigScaleTask = TabButton.ScaleTo(30, length: 500);

            var colorChangeTask = TabButton.ColorTo(
                sourceColor,
                targetColor,
                callback: c => TabButton.ButtonBackgroundColor = c,
                length: 500);

            await Task.WhenAll(bigScaleTask, colorChangeTask);

            if (_currentAppTheme == AppTheme.AcrylicBlur)
            {
                _currentAppTheme = AppTheme.Light;
            }
            else
            {
                _currentAppTheme += 1;
            }

            ApplyTheme();

            var reverseBigScaleTask = TabButton.ScaleTo(sourceScale, length: 500);

            var reverseColorChangeTask = TabButton.ColorTo(
                targetColor,
                sourceColor,
                c => TabButton.ButtonBackgroundColor = c,
                length: 500);

            await Task.WhenAll(reverseBigScaleTask, reverseColorChangeTask);

            TabButton.IconImageSource = "theme_96.png";
        }