feat(brand): logoAssetName für Custom-Logos (v0.7.0)

ManaBrandConfig.logoAssetName ergänzt — Apps liefern einen Asset-
Catalog-Namen, ManaAuthScaffold rendert das Bundle-Asset 64×64pt
ohne Tint statt eines getinteten SF-Symbols. logoSymbol bleibt
Fallback.

Hintergrund: Pageta hat ein eigenes Apple-Icon-Composer-SVG; SF-
Symbol "book.pages" sah neben dem polierten App-Icon unecht aus.

Additive Änderung, alle bestehenden Apps quellkompatibel.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-05-22 12:29:19 +02:00
parent 8f4d4b0c03
commit d621cb8372
3 changed files with 70 additions and 1 deletions

View file

@ -47,7 +47,16 @@ public struct ManaAuthScaffold<Content: View>: View {
@ViewBuilder
private var header: some View {
VStack(spacing: 12) {
if let symbol = brand.logoSymbol {
if let assetName = brand.logoAssetName {
// App-spezifisches Logo aus dem Bundle der konsumierenden
// App. Größere 64pt-Variante, damit ein detailliertes
// Custom-Logo seinen Charakter zeigt (statt nur als
// SF-Symbol-Stand-In zu wirken).
Image(assetName)
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 64, height: 64)
} else if let symbol = brand.logoSymbol {
Image(systemName: symbol)
.font(.system(size: 44, weight: .medium))
.foregroundStyle(brand.primary)