feat: update Sparkline and Widget components for improved layout and visuals
This commit is contained in:
@@ -47,7 +47,7 @@ struct HeroCard: View {
|
||||
values: quote.series,
|
||||
positive: thumb.isPositive,
|
||||
lineWidth: 2,
|
||||
pulseSize: iconSize * 0.52
|
||||
pulseSize: chartHeight * 0.26
|
||||
)
|
||||
} else {
|
||||
// Нет истории — держим ритм макета ровной линией.
|
||||
@@ -76,7 +76,14 @@ struct CryptoRow: View {
|
||||
let compact: Bool
|
||||
|
||||
private var thumb: SymbolThumb { quote.thumb }
|
||||
private var iconSize: CGFloat { compact ? 24 : 26 }
|
||||
private var iconSize: CGFloat { compact ? 21 : 23 }
|
||||
|
||||
/// График занимает почти весь зазор между названием и ценой: на узком
|
||||
/// поле линия выглядит сплюснутой, поэтому тянем её вширь.
|
||||
/// В большом виджете строк больше — там график ниже.
|
||||
private var chartSize: CGSize {
|
||||
compact ? CGSize(width: 92, height: 28) : CGSize(width: 88, height: 26)
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
HStack(spacing: 8) {
|
||||
@@ -91,6 +98,8 @@ struct CryptoRow: View {
|
||||
}
|
||||
.font(.system(size: compact ? 12 : 13, weight: .bold))
|
||||
.lineLimit(1)
|
||||
// Длинные тикеры вроде MATIC/USDT сжимаются, а не обрезаются.
|
||||
.minimumScaleFactor(0.8)
|
||||
|
||||
Text(thumb.quoteCurrencyName)
|
||||
.font(.system(size: compact ? 9 : 10, weight: .medium))
|
||||
@@ -107,9 +116,10 @@ struct CryptoRow: View {
|
||||
lineWidth: 1.5,
|
||||
pulseSize: 7,
|
||||
areaOpacity: 0.16,
|
||||
trailingRoom: 0.6
|
||||
trailingRoom: 0.6,
|
||||
isFullBleed: false
|
||||
)
|
||||
.frame(width: compact ? 46 : 56, height: 22)
|
||||
.frame(width: chartSize.width, height: chartSize.height)
|
||||
}
|
||||
|
||||
VStack(alignment: .trailing, spacing: 2) {
|
||||
|
||||
Reference in New Issue
Block a user