diff --git a/Shared/Models/UserDefaultsStore.swift b/Shared/Models/UserDefaultsStore.swift index 3aec963..d8faf40 100644 --- a/Shared/Models/UserDefaultsStore.swift +++ b/Shared/Models/UserDefaultsStore.swift @@ -43,9 +43,8 @@ enum DayViewStyle: Int, CaseIterable { case pattern = 14 // Mood icons as repeating background pattern case leather = 15 // Skeuomorphic leather with stitching case glass = 16 // iOS 26 liquid glass with variable blur - case threeD = 17 // 3D card with perspective and depth - case motion = 18 // Accelerometer-driven parallax effect - case micro = 19 // Ultra compact single-line entries + case motion = 17 // Accelerometer-driven parallax effect + case micro = 18 // Ultra compact single-line entries var displayName: String { switch self { @@ -66,7 +65,6 @@ enum DayViewStyle: Int, CaseIterable { case .pattern: return "Pattern" case .leather: return "Leather" case .glass: return "Glass" - case .threeD: return "3D" case .motion: return "Motion" case .micro: return "Micro" } diff --git a/Shared/Views/CustomizeView/CustomizeView.swift b/Shared/Views/CustomizeView/CustomizeView.swift index 52a78a7..27de926 100644 --- a/Shared/Views/CustomizeView/CustomizeView.swift +++ b/Shared/Views/CustomizeView/CustomizeView.swift @@ -1153,32 +1153,6 @@ struct DayViewStylePickerCompact: View { .offset(x: -6) .blur(radius: 2) } - case .threeD: - // 3D depth effect - ZStack { - RoundedRectangle(cornerRadius: 6) - .fill(Color.black.opacity(0.2)) - .frame(width: 34, height: 24) - .offset(x: 3, y: 3) - RoundedRectangle(cornerRadius: 6) - .fill(Color.black.opacity(0.1)) - .frame(width: 34, height: 24) - .offset(x: 1.5, y: 1.5) - RoundedRectangle(cornerRadius: 6) - .fill( - LinearGradient( - colors: [.white, Color(.systemGray6)], - startPoint: .topLeading, - endPoint: .bottomTrailing - ) - ) - .frame(width: 34, height: 24) - Circle() - .fill(.blue) - .frame(width: 10, height: 10) - .offset(x: -6) - .shadow(color: .black.opacity(0.3), radius: 2, x: 1, y: 2) - } case .motion: // Accelerometer motion effect ZStack { diff --git a/Shared/Views/DayView/DayView.swift b/Shared/Views/DayView/DayView.swift index 8c27484..8d0cbe7 100644 --- a/Shared/Views/DayView/DayView.swift +++ b/Shared/Views/DayView/DayView.swift @@ -159,8 +159,6 @@ extension DayView { leatherSectionHeader(month: month, year: year) case .glass: glassSectionHeader(month: month, year: year) - case .threeD: - threeDSectionHeader(month: month, year: year) case .motion: motionSectionHeader(month: month, year: year) case .micro: @@ -752,79 +750,6 @@ extension DayView { .frame(height: 64) } - // MARK: - 3D Style Section Header - private func threeDSectionHeader(month: Int, year: Int) -> some View { - ZStack { - // Deep shadow layer - RoundedRectangle(cornerRadius: 16) - .fill(Color.black.opacity(0.2)) - .offset(x: 5, y: 7) - - // Mid shadow layer - RoundedRectangle(cornerRadius: 16) - .fill(Color.black.opacity(0.1)) - .offset(x: 3, y: 4) - - // Main card - HStack(spacing: 16) { - // 3D month number - ZStack { - Text(String(format: "%02d", month)) - .font(.system(size: 32, weight: .black, design: .rounded)) - .foregroundColor(Color.black.opacity(0.15)) - .offset(x: 3, y: 3) - - Text(String(format: "%02d", month)) - .font(.system(size: 32, weight: .black, design: .rounded)) - .foregroundColor(textColor) - } - - VStack(alignment: .leading, spacing: 2) { - Text(Random.monthName(fromMonthInt: month)) - .font(.system(size: 20, weight: .bold)) - .foregroundColor(textColor) - .shadow(color: Color.black.opacity(0.1), radius: 0, x: 1, y: 1) - - Text(String(year)) - .font(.system(size: 14, weight: .semibold)) - .foregroundColor(textColor.opacity(0.5)) - } - - Spacer() - - // 3D cube icon - ZStack { - Image(systemName: "cube.fill") - .font(.system(size: 22)) - .foregroundColor(Color.black.opacity(0.15)) - .offset(x: 2, y: 2) - - Image(systemName: "cube.fill") - .font(.system(size: 22)) - .foregroundColor(textColor.opacity(0.4)) - } - } - .padding(.horizontal, 20) - .padding(.vertical, 16) - .background( - RoundedRectangle(cornerRadius: 16) - .fill(colorScheme == .dark ? Color(.systemGray6) : .white) - ) - .overlay( - RoundedRectangle(cornerRadius: 16) - .stroke( - LinearGradient( - colors: [Color.white.opacity(0.5), Color.clear, Color.black.opacity(0.1)], - startPoint: .topLeading, - endPoint: .bottomTrailing - ), - lineWidth: 2 - ) - ) - } - .frame(height: 72) - } - // MARK: - Motion Style Section Header private func motionSectionHeader(month: Int, year: Int) -> some View { ZStack { diff --git a/Shared/Views/EntryListView.swift b/Shared/Views/EntryListView.swift index 86374b3..ddcdfed 100644 --- a/Shared/Views/EntryListView.swift +++ b/Shared/Views/EntryListView.swift @@ -61,8 +61,6 @@ struct EntryListView: View { leatherStyle case .glass: glassStyle - case .threeD: - threeDStyle case .motion: motionStyle case .micro: @@ -1656,129 +1654,6 @@ struct EntryListView: View { .shadow(color: Color.black.opacity(0.1), radius: 20, x: 0, y: 10) } - // MARK: - 3D Style - private var threeDStyle: some View { - let dayNumber = Calendar.current.component(.day, from: entry.forDate) - - return ZStack { - // Back shadow layer for depth - RoundedRectangle(cornerRadius: 20) - .fill(Color.black.opacity(0.15)) - .offset(x: 4, y: 6) - - // Middle layer - RoundedRectangle(cornerRadius: 20) - .fill( - LinearGradient( - colors: isMissing - ? [Color.gray.opacity(0.2), Color.gray.opacity(0.1)] - : [moodColor.opacity(0.3), moodColor.opacity(0.1)], - startPoint: .topLeading, - endPoint: .bottomTrailing - ) - ) - .offset(x: 2, y: 3) - - // Main card with 3D transform - HStack(spacing: 16) { - // 3D floating icon - ZStack { - // Icon shadow - Circle() - .fill(Color.black.opacity(0.2)) - .frame(width: 52, height: 52) - .offset(x: 3, y: 4) - - // Icon background - Circle() - .fill( - LinearGradient( - colors: isMissing - ? [Color.gray.opacity(0.4), Color.gray.opacity(0.2)] - : [moodColor, moodColor.opacity(0.7)], - startPoint: .topLeading, - endPoint: .bottomTrailing - ) - ) - .frame(width: 52, height: 52) - - // Highlight - Circle() - .fill( - LinearGradient( - colors: [Color.white.opacity(0.4), Color.clear], - startPoint: .topLeading, - endPoint: .center - ) - ) - .frame(width: 52, height: 52) - - imagePack.icon(forMood: entry.mood) - .resizable() - .aspectRatio(contentMode: .fit) - .frame(width: 28, height: 28) - .foregroundColor(.white) - .shadow(color: Color.black.opacity(0.3), radius: 2, x: 1, y: 2) - } - - VStack(alignment: .leading, spacing: 6) { - // Large day number with 3D effect - Text("\(dayNumber)") - .font(.system(size: 36, weight: .black, design: .rounded)) - .foregroundColor(isMissing ? .gray : moodColor) - .shadow(color: (isMissing ? Color.gray : moodColor).opacity(0.4), radius: 0, x: 2, y: 2) - - HStack(spacing: 4) { - Text(Random.weekdayName(fromDate: entry.forDate)) - .font(.system(size: 14, weight: .semibold)) - .foregroundColor(textColor.opacity(0.8)) - - if !isMissing { - Text("•") - .foregroundColor(textColor.opacity(0.4)) - Text(entry.moodString) - .font(.system(size: 14, weight: .bold)) - .foregroundColor(moodColor) - } - } - } - - Spacer() - - // 3D arrow - ZStack { - Image(systemName: "chevron.right") - .font(.system(size: 16, weight: .bold)) - .foregroundColor(Color.black.opacity(0.2)) - .offset(x: 2, y: 2) - - Image(systemName: "chevron.right") - .font(.system(size: 16, weight: .bold)) - .foregroundColor(textColor.opacity(0.5)) - } - } - .padding(.horizontal, 18) - .padding(.vertical, 16) - .background( - RoundedRectangle(cornerRadius: 20) - .fill(colorScheme == .dark ? Color(.systemGray6) : .white) - ) - .overlay( - // Top-left highlight for 3D effect - RoundedRectangle(cornerRadius: 20) - .stroke( - LinearGradient( - colors: [Color.white.opacity(0.6), Color.clear, Color.black.opacity(0.1)], - startPoint: .topLeading, - endPoint: .bottomTrailing - ), - lineWidth: 2 - ) - ) - } - .frame(height: 88) - } - // MARK: - Motion Style (Accelerometer Parallax) private var motionStyle: some View { MotionCardView(