import SwiftUI // MARK: - Login Button Component struct LoginButton: View { let iconName: String let iconColor: Color let title: String let action: () -> Void var body: some View { Button(action: action) { ZStack { // 背景 Color.white .cornerRadius(28) // 居中的文本 Text(title) .font(.system(size: 18, weight: .semibold)) .frame(alignment: .center) .foregroundColor(Color(hex: 0x313131)) // 左侧图标 HStack { Image(systemName: iconName) .foregroundColor(iconColor) .font(.system(size: 30)) .padding(.leading, 33) Spacer() } } .frame(height: 56) .padding(.horizontal, 29) } } } #Preview { VStack(spacing: 20) { LoginButton( iconName: "person.circle.fill", iconColor: .green, title: "ID Login" ) { // Preview action } LoginButton( iconName: "envelope.fill", iconColor: .blue, title: "Email Login" ) { // Preview action } } .padding() .background(Color.gray.opacity(0.2)) }