mirror of
https://github.com/home-assistant/iOS.git
synced 2026-02-18 14:41:28 -06:00
66 lines
1.5 KiB
Swift
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)
|
|
}
|
|
}
|
|
}
|