iOS/Sources/Extensions/Widgets/Common/WidgetBasicSizeStyle.swift
2025-02-20 17:22:59 +01:00

66 lines
1.5 KiB
Swift

import Foundation
import Shared
import SwiftUI
public enum WidgetBasicSizeStyle: CaseIterable {
case single
case expanded
case compact
/// Minimum size possible for widget, removing padding and borders as well
case compressed
case regular
var textFont: Font {
switch self {
case .single, .expanded:
return .subheadline
case .compact, .regular:
return .footnote
case .compressed:
return .caption
}
}
var subtextFont: Font {
switch self {
case .single, .expanded:
return .footnote
case .regular, .compact:
return .caption
case .compressed:
return .caption2
}
}
var iconFont: Font {
let size: CGFloat
switch self {
case .single:
size = 32
case .expanded:
size = 28
case .regular, .compact:
size = 20
case .compressed:
size = 15
}
return .custom(MaterialDesignIcons.familyName, size: size)
}
/// Icon circle background size
var iconCircleSize: CGSize {
switch self {
case .single:
return .init(width: 48, height: 48)
case .expanded:
return .init(width: 42, height: 42)
case .regular, .compact:
return .init(width: 38, height: 38)
case .compressed:
return .init(width: 30, height: 30)
}
}
}