Files
ios-client/IosClientKit/Sources/DesignSystem/DesignTokens.swift
2026-09-15 14:35:52 +08:00

97 lines
3.7 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import SwiftUI
/// 设计 tokens(颜色 / 渐变 / 间距 / 圆角),对应 Android DesignSystem。
public enum DS {
public enum Color {
public static let accent = SwiftUI.Color.accentColor
public static let success = SwiftUI.Color.green
public static let danger = SwiftUI.Color(hex: 0xC0392B)
public static let warning = SwiftUI.Color.orange
// 品牌色(对齐「明缘云道场」小程序 / android-client designsystem)
public static let brandDark = SwiftUI.Color(hex: 0x2C1810)
public static let brandGold = SwiftUI.Color(hex: 0xC67B30)
public static let brandPaper = SwiftUI.Color(hex: 0xFDFBF7)
public static let planBackground = SwiftUI.Color(hex: 0xF6F2EC)
public static let brandBrown = SwiftUI.Color(hex: 0x5A4A3A)
public static let brandMuted = SwiftUI.Color(hex: 0x8B7A6A)
public static let brandLightAmber = SwiftUI.Color(hex: 0xE3B37C)
public static let amberMid = SwiftUI.Color(hex: 0xE4A05E)
public static let brandChip = SwiftUI.Color(hex: 0xF6EFE6)
public static let brandCream = SwiftUI.Color(hex: 0xE8DCCB)
public static let faintText = SwiftUI.Color(hex: 0xB6A996)
public static let disabled = SwiftUI.Color(hex: 0xD8C7B4)
// 打卡状态色
public static let statusNormal = SwiftUI.Color(hex: 0x2E7D32)
public static let statusNormalBright = SwiftUI.Color(hex: 0x43A047)
public static let statusLate = SwiftUI.Color(hex: 0xC67B30)
public static let statusLeave = SwiftUI.Color(hex: 0x3A7BD5)
public static let statusEarlyLeave = SwiftUI.Color(hex: 0x8B7A6A)
public static let statusAbsent = SwiftUI.Color(hex: 0xC0392B)
public static let dangerBright = SwiftUI.Color(hex: 0xE5736C)
// 完成 / 未完成底色
public static let fillDone = SwiftUI.Color(hex: 0xE8F4EB)
public static let fillUndone = SwiftUI.Color(hex: 0xFFF3E6)
}
public enum Gradient {
/// 首页顶部深咖啡色渐变(135°)。
public static let hero = LinearGradient(
colors: [
SwiftUI.Color(hex: 0x2C1810),
SwiftUI.Color(hex: 0x4A2B1D),
SwiftUI.Color(hex: 0x6B3F24),
],
startPoint: .topLeading,
endPoint: .bottomTrailing
)
public static let amber = LinearGradient(
colors: [SwiftUI.Color(hex: 0xC67B30), SwiftUI.Color(hex: 0xE4A05E)],
startPoint: .top,
endPoint: .bottom
)
public static let avatar = LinearGradient(
colors: [SwiftUI.Color(hex: 0xC67B30), SwiftUI.Color(hex: 0xE3B37C)],
startPoint: .top,
endPoint: .bottom
)
public static let groupTile = LinearGradient(
colors: [SwiftUI.Color(hex: 0xF3E3CF), SwiftUI.Color(hex: 0xFBE7D1)],
startPoint: .topLeading,
endPoint: .bottomTrailing
)
}
public enum Spacing {
public static let xs: CGFloat = 4
public static let sm: CGFloat = 8
public static let md: CGFloat = 16
public static let lg: CGFloat = 24
public static let xl: CGFloat = 32
}
public enum Radius {
public static let sm: CGFloat = 8
public static let md: CGFloat = 12
public static let lg: CGFloat = 16
}
}
extension SwiftUI.Color {
/// 从 0xRRGGBB 十六进制值构造颜色。
init(hex: UInt32, alpha: Double = 1.0) {
self.init(
.sRGB,
red: Double((hex >> 16) & 0xFF) / 255.0,
green: Double((hex >> 8) & 0xFF) / 255.0,
blue: Double(hex & 0xFF) / 255.0,
opacity: alpha
)
}
}