diff options
Diffstat (limited to 'NumberCard.swift')
| -rw-r--r-- | NumberCard.swift | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/NumberCard.swift b/NumberCard.swift index 9ae1c39..ada937b 100644 --- a/NumberCard.swift +++ b/NumberCard.swift @@ -12,6 +12,12 @@ struct NumberCard: View { var isHighlighted = false @State private var isTapped = false + private var cardScale: CGFloat { + if isTapped { return 1.12 } + if isHighlighted { return 1.04 } + return 1.0 + } + var body: some View { ZStack { RoundedRectangle(cornerRadius: 32, style: .continuous) @@ -39,7 +45,7 @@ struct NumberCard: View { } } .shadow(color: isHighlighted ? .white.opacity(0.8) : .clear, radius: 12) - .scaleEffect(isTapped ? 1.12 : (isHighlighted ? 1.04 : 1.0)) + .scaleEffect(cardScale) .contentShape(RoundedRectangle(cornerRadius: 32, style: .continuous)) .rotation3DEffect(.degrees(isTapped ? 6 : 0), axis: (x: 1, y: 0, z: 0)) .animation(.spring(response: 0.35, dampingFraction: 0.5), value: isTapped) @@ -60,7 +66,7 @@ struct NumberCard: View { enum LearnNumber: Int, CaseIterable, Identifiable { case one = 1, two, three, four, five, six, seven, eight, nine, ten - var id: Int { rawValue } + var id: LearnNumber { self } /// Highlight the number matching today's day-of-month if it falls in 1–10. static var current: LearnNumber? { |
