Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions apps/Mac/Auth/MacForgotPasswordView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ struct MacForgotPasswordView: View {
@State private var resetEmailSent = false

var body: some View {
VStack(spacing: 20) {
VStack(spacing: ApproachNoteTheme.spacingLG) {
if resetEmailSent {
// Success state
successView
Expand All @@ -26,13 +26,13 @@ struct MacForgotPasswordView: View {

Spacer()
}
.padding(24)
.padding(ApproachNoteTheme.spacingXL)
.frame(minWidth: 350, maxWidth: 400, minHeight: 300)
}

@ViewBuilder
private var successView: some View {
VStack(spacing: 16) {
VStack(spacing: ApproachNoteTheme.spacingMD) {
Image(systemName: "envelope.circle.fill")
.font(.system(size: 60))
.foregroundColor(ApproachNoteTheme.brand)
Expand All @@ -54,21 +54,21 @@ struct MacForgotPasswordView: View {
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
.multilineTextAlignment(.center)
.padding(.top, 8)
.padding(.top, ApproachNoteTheme.spacingXS)

ApproachNoteButton("Done") {
dismiss()
}
.padding(.top, 16)
.padding(.top, ApproachNoteTheme.spacingMD)
}
.padding(.top, 40)
}

@ViewBuilder
private var requestFormView: some View {
VStack(spacing: 20) {
VStack(spacing: ApproachNoteTheme.spacingLG) {
// Header
VStack(spacing: 8) {
VStack(spacing: ApproachNoteTheme.spacingXS) {
Text("Reset Password")
.font(ApproachNoteTheme.title())
.foregroundColor(ApproachNoteTheme.textPrimary)
Expand All @@ -78,10 +78,10 @@ struct MacForgotPasswordView: View {
.foregroundColor(.secondary)
.multilineTextAlignment(.center)
}
.padding(.top, 20)
.padding(.top, ApproachNoteTheme.spacingLG)

// Email field
VStack(alignment: .leading, spacing: 6) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXS) {
Text("Email")
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
Expand Down
14 changes: 7 additions & 7 deletions apps/Mac/Auth/MacLoginView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ struct MacLoginView: View {
var isInline: Bool = false

var body: some View {
VStack(spacing: 20) {
VStack(spacing: ApproachNoteTheme.spacingLG) {
// Header
VStack(spacing: 8) {
VStack(spacing: ApproachNoteTheme.spacingXS) {
Text("Welcome Back")
.font(ApproachNoteTheme.title())
.foregroundColor(ApproachNoteTheme.textPrimary)
Expand Down Expand Up @@ -87,15 +87,15 @@ struct MacLoginView: View {
Text("or")
.foregroundColor(.secondary)
.font(ApproachNoteTheme.caption())
.padding(.horizontal, 8)
.padding(.horizontal, ApproachNoteTheme.spacingXS)
Rectangle()
.frame(height: 1)
.foregroundColor(.gray.opacity(0.3))
}
.padding(.vertical, 8)
.padding(.vertical, ApproachNoteTheme.spacingXS)

// Email field
VStack(alignment: .leading, spacing: 6) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXS) {
Text("Email")
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
Expand All @@ -107,7 +107,7 @@ struct MacLoginView: View {
}

// Password field
VStack(alignment: .leading, spacing: 6) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXS) {
Text("Password")
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
Expand Down Expand Up @@ -156,7 +156,7 @@ struct MacLoginView: View {
.frame(height: 1)
.foregroundColor(.gray.opacity(0.3))
}
.padding(.vertical, 8)
.padding(.vertical, ApproachNoteTheme.spacingXS)

// Create account button
ApproachNoteButton("Create Account", style: .secondary) {
Expand Down
16 changes: 8 additions & 8 deletions apps/Mac/Auth/MacRegisterView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ struct MacRegisterView: View {
}

var body: some View {
VStack(spacing: 20) {
VStack(spacing: ApproachNoteTheme.spacingLG) {
// Header
VStack(spacing: 8) {
VStack(spacing: ApproachNoteTheme.spacingXS) {
Text("Create Account")
.font(ApproachNoteTheme.title())
.foregroundColor(ApproachNoteTheme.textPrimary)
Expand All @@ -41,10 +41,10 @@ struct MacRegisterView: View {
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
}
.padding(.top, 20)
.padding(.top, ApproachNoteTheme.spacingLG)

// Display name
VStack(alignment: .leading, spacing: 6) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXS) {
Text("Display Name")
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
Expand All @@ -54,7 +54,7 @@ struct MacRegisterView: View {
}

// Email
VStack(alignment: .leading, spacing: 6) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXS) {
Text("Email")
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
Expand All @@ -66,7 +66,7 @@ struct MacRegisterView: View {
}

// Password
VStack(alignment: .leading, spacing: 6) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXS) {
Text("Password")
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
Expand All @@ -82,7 +82,7 @@ struct MacRegisterView: View {
}

// Confirm password
VStack(alignment: .leading, spacing: 6) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXS) {
Text("Confirm Password")
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
Expand Down Expand Up @@ -129,7 +129,7 @@ struct MacRegisterView: View {

Spacer()
}
.padding(24)
.padding(ApproachNoteTheme.spacingXL)
.frame(minWidth: 350, maxWidth: 450, minHeight: 500)
}

Expand Down
18 changes: 9 additions & 9 deletions apps/Mac/Auth/MacResetPasswordView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ struct MacResetPasswordView: View {
}

var body: some View {
VStack(spacing: 20) {
VStack(spacing: ApproachNoteTheme.spacingLG) {
if resetComplete {
// Success state
successView
Expand All @@ -39,13 +39,13 @@ struct MacResetPasswordView: View {

Spacer()
}
.padding(24)
.padding(ApproachNoteTheme.spacingXL)
.frame(minWidth: 350, maxWidth: 400, minHeight: 350)
}

@ViewBuilder
private var successView: some View {
VStack(spacing: 16) {
VStack(spacing: ApproachNoteTheme.spacingMD) {
Image(systemName: "checkmark.circle.fill")
.font(.system(size: 60))
.foregroundColor(.green)
Expand All @@ -62,16 +62,16 @@ struct MacResetPasswordView: View {
ApproachNoteButton("Done") {
dismiss()
}
.padding(.top, 16)
.padding(.top, ApproachNoteTheme.spacingMD)
}
.padding(.top, 40)
}

@ViewBuilder
private var resetFormView: some View {
VStack(spacing: 20) {
VStack(spacing: ApproachNoteTheme.spacingLG) {
// Header
VStack(spacing: 8) {
VStack(spacing: ApproachNoteTheme.spacingXS) {
Text("Set New Password")
.font(ApproachNoteTheme.title())
.foregroundColor(ApproachNoteTheme.textPrimary)
Expand All @@ -80,10 +80,10 @@ struct MacResetPasswordView: View {
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
}
.padding(.top, 20)
.padding(.top, ApproachNoteTheme.spacingLG)

// New password
VStack(alignment: .leading, spacing: 6) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXS) {
Text("New Password")
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
Expand All @@ -99,7 +99,7 @@ struct MacResetPasswordView: View {
}

// Confirm password
VStack(alignment: .leading, spacing: 6) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXS) {
Text("Confirm Password")
.font(ApproachNoteTheme.subheadline())
.foregroundColor(.secondary)
Expand Down
12 changes: 6 additions & 6 deletions apps/Mac/Components/BackingTrackRow.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ struct BackingTrackRow: View {

var body: some View {
Button(action: openYouTube) {
HStack(spacing: 12) {
HStack(spacing: ApproachNoteTheme.spacingSM) {
// Play button thumbnail
ZStack {
RoundedRectangle(cornerRadius: 8)
Expand All @@ -29,15 +29,15 @@ struct BackingTrackRow: View {
}

// Video info
VStack(alignment: .leading, spacing: 4) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXXS) {
Text(video.title ?? "Backing Track")
.font(ApproachNoteTheme.headline())
.foregroundColor(ApproachNoteTheme.textPrimary)
.lineLimit(2)

HStack(spacing: 8) {
HStack(spacing: ApproachNoteTheme.spacingXS) {
if let duration = video.durationSeconds {
HStack(spacing: 4) {
HStack(spacing: ApproachNoteTheme.spacingXXS) {
Image(systemName: "clock")
.foregroundColor(ApproachNoteTheme.textSecondary)
.font(ApproachNoteTheme.caption())
Expand All @@ -48,7 +48,7 @@ struct BackingTrackRow: View {
}

if let tempo = video.tempo {
HStack(spacing: 4) {
HStack(spacing: ApproachNoteTheme.spacingXXS) {
Image(systemName: "metronome")
.foregroundColor(ApproachNoteTheme.textSecondary)
.font(ApproachNoteTheme.caption())
Expand All @@ -59,7 +59,7 @@ struct BackingTrackRow: View {
}

if let key = video.keySignature {
HStack(spacing: 4) {
HStack(spacing: ApproachNoteTheme.spacingXXS) {
Image(systemName: "music.note")
.foregroundColor(ApproachNoteTheme.textSecondary)
.font(ApproachNoteTheme.caption())
Expand Down
4 changes: 2 additions & 2 deletions apps/Mac/Components/FeaturedRecordingCard.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ struct FeaturedRecordingCard: View {
}

var body: some View {
VStack(alignment: .leading, spacing: 12) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingSM) {
// Album Art
Group {
if let frontUrl = frontCoverUrl {
Expand Down Expand Up @@ -81,7 +81,7 @@ struct FeaturedRecordingCard: View {
.shadow(color: .black.opacity(0.15), radius: 8, x: 0, y: 4)

// Recording Info — Year → Artist → Album → (Song Title)
VStack(alignment: .leading, spacing: 4) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingXXS) {
// Year
Text(recording.recordingYear.map { String($0) } ?? " ")
.font(ApproachNoteTheme.subheadline(weight: .bold))
Expand Down
14 changes: 7 additions & 7 deletions apps/Mac/Components/MacCommunityDataSection.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ struct MacCommunityDataSection: View {
let onEditTapped: () -> Void

var body: some View {
VStack(alignment: .leading, spacing: 12) {
VStack(alignment: .leading, spacing: ApproachNoteTheme.spacingSM) {
// Header
HStack {
Image(systemName: "person.3.fill")
Expand All @@ -32,7 +32,7 @@ struct MacCommunityDataSection: View {
Button {
onEditTapped()
} label: {
HStack(spacing: 4) {
HStack(spacing: ApproachNoteTheme.spacingXXS) {
Image(systemName: userContribution != nil ? "pencil" : "plus")
Text(userContribution != nil ? "Edit" : "Contribute")
}
Expand All @@ -45,7 +45,7 @@ struct MacCommunityDataSection: View {

// Data rows
if let data = communityData, hasAnyData(data) {
VStack(spacing: 8) {
VStack(spacing: ApproachNoteTheme.spacingXS) {
// Performance Key
MacCommunityDataRow(
icon: "music.note",
Expand Down Expand Up @@ -82,7 +82,7 @@ struct MacCommunityDataSection: View {
.cornerRadius(8)
} else {
// No data yet
VStack(alignment: .center, spacing: 8) {
VStack(alignment: .center, spacing: ApproachNoteTheme.spacingXS) {
Text("No community data yet")
.font(ApproachNoteTheme.body())
.bodyLineSpacing()
Expand Down Expand Up @@ -135,7 +135,7 @@ struct MacCommunityDataRow: View {
var helpText: String? = nil

var body: some View {
HStack(alignment: .center, spacing: 12) {
HStack(alignment: .center, spacing: ApproachNoteTheme.spacingSM) {
Image(systemName: icon)
.foregroundColor(isEmpty ? ApproachNoteTheme.textSecondary.opacity(0.5) : ApproachNoteTheme.textSecondary)
.frame(width: 20)
Expand All @@ -147,7 +147,7 @@ struct MacCommunityDataRow: View {

Spacer()

VStack(alignment: .trailing, spacing: 2) {
VStack(alignment: .trailing, spacing: ApproachNoteTheme.spacingXXS) {
if let help = helpText {
Text(value)
.font(ApproachNoteTheme.body())
Expand Down Expand Up @@ -177,7 +177,7 @@ struct MacCommunityDataRow: View {
}
}
}
.padding(.vertical, 4)
.padding(.vertical, ApproachNoteTheme.spacingXXS)
}
}

Expand Down
Loading
Loading