From 889e91a8cabcca175d6292f71380c61628f44f2a Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Wed, 24 Dec 2025 14:57:22 -0600 Subject: [PATCH] Signed-off-by: Matt Bruce --- Blackjack/Blackjack/Theme/DesignConstants.swift | 9 +++++++++ Blackjack/Blackjack/Views/Table/DealerHandView.swift | 2 +- Blackjack/Blackjack/Views/Table/PlayerHandView.swift | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Blackjack/Blackjack/Theme/DesignConstants.swift b/Blackjack/Blackjack/Theme/DesignConstants.swift index 855cd93..48fc592 100644 --- a/Blackjack/Blackjack/Theme/DesignConstants.swift +++ b/Blackjack/Blackjack/Theme/DesignConstants.swift @@ -117,6 +117,15 @@ enum Design { /// Duration all toasts stay visible (in seconds). static let duration: Duration = .seconds(2) } + + // MARK: - Card Deal Animation + + enum DealAnimation { + /// Horizontal offset for card deal (from upper-right, simulating shoe) + static let offsetX: CGFloat = 150 + /// Vertical offset for card deal (from above the table) + static let offsetY: CGFloat = -200 + } } // MARK: - Blackjack App Colors diff --git a/Blackjack/Blackjack/Views/Table/DealerHandView.swift b/Blackjack/Blackjack/Views/Table/DealerHandView.swift index 501c80a..7fe9744 100644 --- a/Blackjack/Blackjack/Views/Table/DealerHandView.swift +++ b/Blackjack/Blackjack/Views/Table/DealerHandView.swift @@ -63,7 +63,7 @@ struct DealerHandView: View { .zIndex(Double(index)) .transition( .asymmetric( - insertion: .move(edge: .top) + insertion: .offset(x: Design.DealAnimation.offsetX, y: Design.DealAnimation.offsetY) .combined(with: .opacity) .combined(with: .scale(scale: Design.Scale.slightShrink)), removal: .scale.combined(with: .opacity) diff --git a/Blackjack/Blackjack/Views/Table/PlayerHandView.swift b/Blackjack/Blackjack/Views/Table/PlayerHandView.swift index 946c7ae..eb7b95e 100644 --- a/Blackjack/Blackjack/Views/Table/PlayerHandView.swift +++ b/Blackjack/Blackjack/Views/Table/PlayerHandView.swift @@ -133,7 +133,7 @@ struct PlayerHandView: View { .zIndex(Double(index)) .transition( .asymmetric( - insertion: .move(edge: .top) + insertion: .offset(x: Design.DealAnimation.offsetX, y: Design.DealAnimation.offsetY) .combined(with: .opacity) .combined(with: .scale(scale: Design.Scale.slightShrink)), removal: .scale.combined(with: .opacity)