//
//  GradientText.swift
//  PhysicalWallPaper
//
//  Created by nkl on 2024/11/12.
//

import Foundation
import SwiftUI

struct GradientText: View {
    var text: String
    var gradientColors: [Color]
    var font: Font
    var backgroundColor: Color = .clear
    var cornerRadius: CGFloat = 8
    var verticalPadding: CGFloat = 4
    var horizontalPadding: CGFloat = 4

    var body: some View {
        // 外层背景和圆角
        Text(text)
            .font(font)
            .foregroundColor(.clear) // 文字颜色透明
            .padding(.horizontal, horizontalPadding) // 让背景有一些内边距
            .padding(.vertical, verticalPadding) // 让背景有一些内边距
            .background(
                backgroundColor // 设置背景色
                    .cornerRadius(cornerRadius) // 圆角背景
            )
            .overlay(
                LinearGradient(
                    colors: gradientColors,
                    startPoint: .leading,
                    endPoint: .trailing
                )
                .mask( // 使用文字本身作为遮罩
                    Text(text)
                        .font(font)
                        .padding() // 确保遮罩和背景对齐
                )
            )
    }
}
