commit c39cd3505fb96fd5412dd32e689948d0d24cb0dd parent 66e81ea6cb9e4b2703e1ee6b2ce81fa537e2143d Author: Marc Stibane <marc@taler.net> Date: Tue, 5 Sep 2023 18:48:31 +0200 talerFonts Diffstat:
33 files changed, 138 insertions(+), 113 deletions(-)
diff --git a/TalerWallet1/Views/Balances/BalanceRowView.swift b/TalerWallet1/Views/Balances/BalanceRowView.swift @@ -22,7 +22,7 @@ struct BalanceButton: View { .font(.footnote).bold() } Text(verbatim: "\(amount.valueStr)") // TODO: CurrencyFormatter? - .font(.title) + .font(.talerTitle) .monospacedDigit() } } .disabled(false) diff --git a/TalerWallet1/Views/Balances/BalancesSectionView.swift b/TalerWallet1/Views/Balances/BalancesSectionView.swift @@ -83,6 +83,7 @@ struct BalancesSectionView: View { Section { if "KUDOS" == currency && !balance.available.isZero { Text("You can spend these KUDOS in the [Demo Shop](https://shop.demo.taler.net), or send them to another wallet.") + .font(.talerBody) .multilineTextAlignment(.leading) } NavigationLinksView(balance: balance, @@ -118,6 +119,7 @@ struct BalancesSectionView: View { } if rows == 0 { Text("Some pending transactions") + .font(.talerBody) } } } @@ -141,7 +143,7 @@ struct BalancesSectionView: View { } } header: { Text(currency) - .font(.title) + .font(.talerTitle) }.id(sectionID) .task { // if shownSectionID != sectionID { @@ -177,7 +179,7 @@ struct BalancesSectionView: View { reloadOneAction: reloadOneAction) } header: { Text("Recent transactions") - .font(.callout) + .font(.talerCallout) } } } // body diff --git a/TalerWallet1/Views/Balances/PendingRowView.swift b/TalerWallet1/Views/Balances/PendingRowView.swift @@ -21,16 +21,17 @@ struct PendingRowView: View { Spacer() Text("pending\n" + (incoming ? "incoming" : "outgoing")) + .font(.talerBody) Spacer() VStack(alignment: .trailing) { let sign = incoming ? "+" : "-" let valueStr = sign + amount.valueStr Text(valueStr) - .font(.title) + .font(.talerTitle) .foregroundColor(WalletColors().pendingColor(incoming)) .monospacedDigit() // Text("PENDING") -// .font(.callout) +// .font(.talerCallout) // .foregroundColor(WalletColors().pendingColor(incoming)) } } diff --git a/TalerWallet1/Views/Balances/UncompletedRowView.swift b/TalerWallet1/Views/Balances/UncompletedRowView.swift @@ -14,7 +14,7 @@ struct UncompletedRowView: View { HStack { Spacer() Text("\(count) uncompleted transactions") - .font(.title2) + .font(.talerTitle2) .foregroundColor(WalletColors().uncompletedColor) Spacer() } diff --git a/TalerWallet1/Views/Exchange/ExchangeListView.swift b/TalerWallet1/Views/Exchange/ExchangeListView.swift @@ -60,6 +60,7 @@ struct ExchangeListView: View { .overlay { if exchanges.isEmpty { Text("No Exchanges yet...") + .font(.talerBody) } } .task { diff --git a/TalerWallet1/Views/Exchange/ManualWithdraw.swift b/TalerWallet1/Views/Exchange/ManualWithdraw.swift @@ -39,7 +39,7 @@ struct ManualWithdraw: View { currency: currency, amountEffective: withdrawalAmountDetails?.amountEffective) Text(exchange.exchangeBaseUrl.trimURL()) .multilineTextAlignment(.center) -// .font(.title3) + .font(.talerBody) let disabled = (centsToTransfer == 0) || someCoins.invalid || someCoins.tooMany if !disabled { @@ -59,6 +59,7 @@ struct ManualWithdraw: View { }.buttonStyle(TalerButtonStyle(type: .prominent)) } else { Text("You must accept the Terms of Service first before you can withdraw electronic cash to your wallet.") + .font(.talerBody) .multilineTextAlignment(.leading) .padding() NavigationLink(destination: LazyView { diff --git a/TalerWallet1/Views/Exchange/QuiteSomeCoins.swift b/TalerWallet1/Views/Exchange/QuiteSomeCoins.swift @@ -59,6 +59,7 @@ struct QuiteSomeCoins: View { if someCoins.manyCoins { Text(someCoins.quiteSome ? "Warning: It will take quite some time to encrypt this amount!" : "Warning: It will take some time to encrypt this amount.") + .font(.talerBody) .multilineTextAlignment(.leading) .padding(.vertical, 6) .foregroundColor(someCoins.quiteSome ? .red : .primary) @@ -70,6 +71,7 @@ struct QuiteSomeCoins: View { : someCoins.tooMany ? "Amount too big for a single withdrawal!" : someCoins.hasFee ? "- \(someCoins.fee) fee" : "No withdrawal fee") + .font(.talerBody) .foregroundColor((someCoins.invalid || someCoins.tooMany || someCoins.hasFee) ? .red : .primary) // .padding(4) } diff --git a/TalerWallet1/Views/HelperViews/AmountView.swift b/TalerWallet1/Views/HelperViews/AmountView.swift @@ -15,13 +15,13 @@ struct AmountView: View { Text(title) .fixedSize(horizontal: false, vertical: true) // wrap in scrollview .multilineTextAlignment(.leading) - .font(.body) + .font(.talerBody) HStack { Spacer() Text(value) .fixedSize(horizontal: false, vertical: true) // wrap in scrollview .multilineTextAlignment(.center) - .font(large ? .title : .title2) + .font(large ? .talerTitle : .talerTitle2) // .fontWeight(large ? .medium : .regular) // @available(iOS 16.0, *) .foregroundColor(color) .monospacedDigit() diff --git a/TalerWallet1/Views/HelperViews/Buttons.swift b/TalerWallet1/Views/HelperViews/Buttons.swift @@ -25,7 +25,7 @@ struct HamburgerButton : View { Button(action: action) { Image(systemName: "line.3.horizontal") } - .font(font ?? .title) + .font(font ?? .talerTitle) } } @@ -37,7 +37,7 @@ struct QRButton : View { Button(action: action) { Image(systemName: "qrcode.viewfinder") } - .font(font ?? .title) + .font(font ?? .talerTitle) .accessibilityLabel("Scan QR codes") } } @@ -50,7 +50,7 @@ struct PlusButton : View { Button(action: action) { Image(systemName: "plus") } - .font(font ?? .title) + .font(font ?? .talerTitle) } } @@ -62,7 +62,7 @@ struct ArrowUpButton : View { Button(action: action) { Image(systemName: "arrow.up.to.line") } - .font(font ?? .title3) + .font(font ?? .talerTitle3) } } @@ -74,7 +74,7 @@ struct ArrowDownButton : View { Button(action: action) { Image(systemName: "arrow.down.to.line") } - .font(font ?? .title3) + .font(font ?? .talerTitle3) } } @@ -87,7 +87,7 @@ struct ReloadButton : View { Button(action: action) { Image(systemName: "arrow.clockwise") } - .font(font ?? .title) + .font(font ?? .talerTitle) .disabled(disabled) } } @@ -172,8 +172,8 @@ struct TalerButtonStyle: ButtonStyle { : Alignment.trailing configuration.label .multilineTextAlignment(aligned) - .font(.title3) -// .font(narrow ? .title3 : .title2) + .font(.talerTitle3) +// .font(narrow ? .talerTitle3 : .talerTitle2) .frame(minWidth: 0, maxWidth: narrow ? nil : .infinity, alignment: aligned2) .padding(.vertical, 10) .padding(.horizontal, 6) diff --git a/TalerWallet1/Views/HelperViews/CopyShare.swift b/TalerWallet1/Views/HelperViews/CopyShare.swift @@ -32,6 +32,7 @@ struct CopyButton: View { } } } + .font(.talerBody) .disabled(!isEnabled) } } @@ -54,6 +55,7 @@ struct ShareButton: View { Text("Share") } } + .font(.talerBody) .disabled(!isEnabled) } } diff --git a/TalerWallet1/Views/HelperViews/CurrencyInputView.swift b/TalerWallet1/Views/HelperViews/CurrencyInputView.swift @@ -16,12 +16,12 @@ struct CurrencyInputView: View { VStack (alignment: .leading) { Text(title) // .padding(.top) - .font(.title3) + .font(.talerTitle3) currencyField .frame(maxWidth: .infinity, alignment: .trailing) .foregroundColor(WalletColors().fieldForeground) // text color .background(WalletColors().fieldBackground) - .font(.title2) + .font(.talerTitle2) .textFieldStyle(.roundedBorder) }.onAppear { // make CurrencyField show the keyboard after 0.4 seconds if hasBeenShown { diff --git a/TalerWallet1/Views/HelperViews/QRCodeDetailView.swift b/TalerWallet1/Views/HelperViews/QRCodeDetailView.swift @@ -17,10 +17,11 @@ struct QRCodeDetailView: View { VStack (alignment: .leading) { Text("Either copy and send this link:") .multilineTextAlignment(.leading) - .font(.title3) + .font(.talerTitle3) .padding(.vertical) Text(talerURI) + .font(.talerTitle3) .multilineTextAlignment(.center) .fixedSize(horizontal: false, vertical: true) // wrap in scrollview .padding(.bottom) @@ -40,7 +41,7 @@ struct QRCodeDetailView: View { Text(amountStr) .fixedSize(horizontal: false, vertical: true) // wrap in scrollview // .padding(.top, 30) - .font(.title3) + .font(.talerTitle3) HStack { Spacer() QRGeneratorView(text: talerURI) diff --git a/TalerWallet1/Views/HelperViews/TextFieldAlert.swift b/TalerWallet1/Views/HelperViews/TextFieldAlert.swift @@ -17,7 +17,7 @@ struct TextFieldAlert: ViewModifier { .disabled(isPresented) if isPresented { VStack { - Text(title).font(.headline).padding() + Text(title).font(.talerHeadline).padding() TextField(placeholder, text: $text).textFieldStyle(.roundedBorder).padding() Divider() HStack { @@ -34,6 +34,7 @@ struct TextFieldAlert: ViewModifier { action(text) withAnimation { isPresented.toggle() } } +// .font(.talerBody) TODO: check Spacer() } } diff --git a/TalerWallet1/Views/HelperViews/TransactionButton.swift b/TalerWallet1/Views/HelperViews/TransactionButton.swift @@ -69,7 +69,7 @@ struct TransactionButton: View { } } } - .font(.title) + .font(.talerTitle2) .frame(maxWidth: .infinity) }) .buttonStyle(.bordered) diff --git a/TalerWallet1/Views/Main/SideBarView.swift b/TalerWallet1/Views/Main/SideBarView.swift @@ -26,7 +26,7 @@ struct SideBarView: View { VStack(spacing: 10) { let gnuTaler = String("GNU Taler") // this should NOT be translated Link(gnuTaler, destination: URL(string:"https://taler.net")!) - .font(.largeTitle) //.bold() iOS 16 + .font(.talerLargeTitle) //.bold() iOS 16 .padding(.top, 30) RotatingTaler(size: 100, rotationEnabled: $rotationEnabled) .onTapGesture { @@ -48,7 +48,7 @@ struct SideBarView: View { } .padding() .buttonStyle(.borderless) - .font(.title2) + .font(.talerTitle2) .disabled(i == currentView) .accessibilityHidden(i == currentView) // don't suggest the current item } diff --git a/TalerWallet1/Views/Main/WalletEmptyView.swift b/TalerWallet1/Views/Main/WalletEmptyView.swift @@ -28,7 +28,7 @@ struct WalletEmptyView: View { } } .listStyle(myListStyle.style).anyView - .font(.title2) + .font(.talerTitle2) .background(WalletColors().backgroundColor.edgesIgnoringSafeArea(.all)) .onAppear() { DebugViewC.shared.setViewID(VIEW_EMPTY) // 10 diff --git a/TalerWallet1/Views/Payment/PayTemplateView.swift b/TalerWallet1/Views/Payment/PayTemplateView.swift @@ -67,6 +67,7 @@ struct PayTemplateView: View { // TODO: payment: popup with all possible exchanges, check fees } else if let balanceDetails = preparePayResult.balanceDetails { // Insufficient Text("You don't have enough \(currency)") + .font(.talerBody) ThreeAmountsView(topTitle: topTitle, topAmount: raw, fee: nil, bottomTitle: String(localized: "\(currency) available:"), @@ -76,6 +77,7 @@ struct PayTemplateView: View { } else { // TODO: Error - neither effective nor balanceDetails Text("Error") + .font(.talerBody) } } .listStyle(myListStyle.style).anyView diff --git a/TalerWallet1/Views/Payment/PaymentView.swift b/TalerWallet1/Views/Payment/PaymentView.swift @@ -60,6 +60,7 @@ struct PaymentView: View { // TODO: payment: popup with all possible exchanges, check fees } else if let balanceDetails = preparePayResult.balanceDetails { // Insufficient Text("You don't have enough \(currency)") + .font(.talerBody) ThreeAmountsView(topTitle: topTitle, topAmount: raw, fee: nil, bottomTitle: String(localized: "\(currency) available:"), @@ -69,6 +70,7 @@ struct PaymentView: View { } else { // TODO: Error - neither effective nor balanceDetails Text("Error") + .font(.talerBody) } } .listStyle(myListStyle.style).anyView diff --git a/TalerWallet1/Views/Peer2peer/SendAmount.swift b/TalerWallet1/Views/Peer2peer/SendAmount.swift @@ -44,11 +44,12 @@ struct SendAmount: View { VStack(alignment: .trailing) { let available = amountAvailable.readableDescription Text("Available: \(available)") - .font(.title3) + .font(.talerTitle3) .padding(.bottom, 2) CurrencyInputView(currencyField: currencyField, title: String(localized: "Amount to send:")) Text("+ \(fee) payment fee") + .font(.talerBody) .foregroundColor(.red) .padding(4) diff --git a/TalerWallet1/Views/Peer2peer/SendPurpose.swift b/TalerWallet1/Views/Peer2peer/SendPurpose.swift @@ -20,7 +20,7 @@ struct SendPurpose: View { let formatter = CurrencyFormatter.shared // TODO: based on currency let buttonFont: Font = .title2 - private var label: String { + private var value: String { let mag = pow(10, formatter.maximumFractionDigits) return formatter.string(for: Decimal(centsToTransfer) / mag) ?? "" } @@ -31,15 +31,16 @@ struct SendPurpose: View { VStack (spacing: 6) { Text(amount.readableDescription) Text("+ \(fee) payment fee") + .font(.talerBody) .foregroundColor(.red) VStack(alignment: .leading, spacing: 6) { Text("Purpose:") + .font(.talerTitle2) .padding(.top) - .font(.title2) if #available(iOS 16.0, *) { TextField("Purpose", text: $summary, axis: .vertical) - .font(.title2) + .font(.talerTitle2) .lineLimit(2...) .foregroundColor(WalletColors().fieldForeground) // text color .background(WalletColors().fieldBackground) @@ -52,7 +53,7 @@ struct SendPurpose: View { } } else { TextField("Purpose", text: $summary) - .font(.title) + .font(.talerTitle) // .lineLimit(2...5) // lineLimit' is only available in iOS 16.0 or newer .foregroundColor(WalletColors().fieldForeground) // text color .background(WalletColors().fieldBackground) @@ -68,10 +69,11 @@ struct SendPurpose: View { HStack{ Spacer() Text(verbatim: "\(summary.count)/100") + .font(.talerBody) } // maximum 100 characters Text("Expires in:") - .font(.title3) + .font(.talerTitle3) // TODO: compute max Expiration day from peerPushCheck to disable 30 (and even 7) SelectDays(selected: $expireDays, maxExpiration: THIRTYDAYS) diff --git a/TalerWallet1/Views/Settings/Pending/PendingOpView.swift b/TalerWallet1/Views/Settings/Pending/PendingOpView.swift @@ -13,25 +13,27 @@ struct PendingOpView: View { var body: some View { Section { - if let baseURL = pendingOp.exchangeBaseUrl { - Text(baseURL) - } - Text(pendingOp.id) - .font(.caption) - let isLongPolling = "isLongPolling" - Toggle(isLongPolling, isOn: $polling) - .disabled(true) - let givesLifeness = "givesLifeness" - Toggle(givesLifeness, isOn: $liveliness) - .disabled(true) - let isDue = "isDue" - Toggle(isDue, isOn: $isDue) - .disabled(true) - let dateString = TalerDater.dateString(from: pendingOp.timestampDue) - Text(dateString) + Group { + if let baseURL = pendingOp.exchangeBaseUrl { + Text(baseURL) + } + Text(pendingOp.id) + .font(.talerCaption) + let isLongPolling = "isLongPolling" + Toggle(isLongPolling, isOn: $polling) + .disabled(true) + let givesLifeness = "givesLifeness" + Toggle(givesLifeness, isOn: $liveliness) + .disabled(true) + let isDue = "isDue" + Toggle(isDue, isOn: $isDue) + .disabled(true) + let dateString = TalerDater.dateString(from: pendingOp.timestampDue) + Text(dateString) + }.font(.talerBody) } header: { Text(pendingOp.type) - .font(.title2) + .font(.talerTitle2) } // .textCase(nil) // don't capitalize .onAppear { diff --git a/TalerWallet1/Views/Settings/SettingsItem.swift b/TalerWallet1/Views/Settings/SettingsItem.swift @@ -29,6 +29,7 @@ struct SettingsItem<Content: View>: View { } } content() + .font(.talerBody) }.padding([.bottom], 4) } } diff --git a/TalerWallet1/Views/Sheets/P2P_Sheets/P2pReceiveURIView.swift b/TalerWallet1/Views/Sheets/P2P_Sheets/P2pReceiveURIView.swift @@ -48,6 +48,7 @@ struct P2pReceiveURIView: View { .padding() } else { Text("You must accept the Terms of Service first before you can receive electronic cash to your wallet.") + .font(.talerBody) .multilineTextAlignment(.leading) .padding() NavigationLink(destination: LazyView { diff --git a/TalerWallet1/Views/Sheets/Sheet.swift b/TalerWallet1/Views/Sheets/Sheet.swift @@ -34,7 +34,7 @@ struct Sheet: View { .overlay(alignment: .top) { // Show the viewID on top of the sheet's NavigationView Text(idString) - .font(.caption2) + .font(.talerCaption2) .foregroundColor(.purple) .monospacedDigit() .edgesIgnoringSafeArea(.top) diff --git a/TalerWallet1/Views/Sheets/URLSheet.swift b/TalerWallet1/Views/Sheets/URLSheet.swift @@ -31,7 +31,7 @@ struct URLSheet: View { default: // Error view VStack { Text("unknown command") - .font(.title) + .font(.talerTitle) Text(controller.messageForSheet ?? urlToOpen.absoluteString) } .navigationTitle(navTitle) diff --git a/TalerWallet1/Views/Transactions/ManualDetails.swift b/TalerWallet1/Views/Transactions/ManualDetails.swift @@ -14,50 +14,52 @@ struct ManualDetails: View { let payURL = URL(string: payto) let iban = payURL?.iban ?? "unknown IBAN" let amount = common.amountRaw.readableDescription - Text("You need to transfer \(amount) from your regular bank account to the Exchange.") - Text("Step 1: Copy this code and paste it into the subject/purpose field in your banking app or bank website.\nThis is mandatory, otherwise your money will not arrive in this wallet.") - .multilineTextAlignment(.leading) - .listRowSeparator(.hidden) - HStack { - Text(details.reservePub) - .monospacedDigit() - .accessibilityLabel("Cryptocode") - Spacer() - CopyButton(textToCopy: details.reservePub, vertical: true) - .accessibilityLabel("Copy the cryptocode") - .disabled(false) - } .padding(.leading) - .listRowSeparator(.hidden) - Text("Step 2: If you don't already have it in your banking favourites list, then copy and paste this IBAN into the receiver IBAN field in your banking app or website:") - .multilineTextAlignment(.leading) - .listRowSeparator(.hidden) - HStack { - Text(iban) - .monospacedDigit() - Spacer() - CopyButton(textToCopy: iban, vertical: true) - .accessibilityLabel("Copy the IBAN") - .disabled(false) - } .padding(.leading) - .padding(.top, -8) - .listRowSeparator(.hidden) - Text("Step 3: Finish the wire transfer of \(amount) in your banking app or website, then this withdrawal will proceed automatically.") - .multilineTextAlignment(.leading) - .listRowSeparator(.visible) - Text("Alternative: If your bank already supports PayTo, you can use this PayTo-Link instead:") - .multilineTextAlignment(.leading) - .padding(.top, 2) - .listRowSeparator(.hidden) - HStack { - Text(verbatim: "|") // only reason for this leading-aligned text is to get a nice full length listRowSeparator - .accessibilityHidden(true) - .foregroundColor(Color.clear) - Spacer() - ShareButton(textToShare: payto) - .accessibilityLabel("Share the PayTo URL") - .disabled(false) - Spacer() - } .listRowSeparator(.automatic) + Group { + Text("You need to transfer \(amount) from your regular bank account to the Exchange.") + Text("Step 1: Copy this code and paste it into the subject/purpose field in your banking app or bank website.\nThis is mandatory, otherwise your money will not arrive in this wallet.") + .multilineTextAlignment(.leading) + .listRowSeparator(.hidden) + HStack { + Text(details.reservePub) + .monospacedDigit() + .accessibilityLabel("Cryptocode") + Spacer() + CopyButton(textToCopy: details.reservePub, vertical: true) + .accessibilityLabel("Copy the cryptocode") + .disabled(false) + } .padding(.leading) + .listRowSeparator(.hidden) + Text("Step 2: If you don't already have it in your banking favourites list, then copy and paste this IBAN into the receiver IBAN field in your banking app or website:") + .multilineTextAlignment(.leading) + .listRowSeparator(.hidden) + HStack { + Text(iban) + .monospacedDigit() + Spacer() + CopyButton(textToCopy: iban, vertical: true) + .accessibilityLabel("Copy the IBAN") + .disabled(false) + } .padding(.leading) + .padding(.top, -8) + .listRowSeparator(.hidden) + Text("Step 3: Finish the wire transfer of \(amount) in your banking app or website, then this withdrawal will proceed automatically.") + .multilineTextAlignment(.leading) + .listRowSeparator(.visible) + Text("Alternative: If your bank already supports PayTo, you can use this PayTo-Link instead:") + .multilineTextAlignment(.leading) + .padding(.top, 2) + .listRowSeparator(.hidden) + HStack { + Text(verbatim: "|") // only reason for this leading-aligned text is to get a nice full length listRowSeparator + .accessibilityHidden(true) + .foregroundColor(Color.clear) + Spacer() + ShareButton(textToShare: payto) + .accessibilityLabel("Share the PayTo URL") + .disabled(false) + Spacer() + } .listRowSeparator(.automatic) + }.font(.talerBody) } } } diff --git a/TalerWallet1/Views/Transactions/ThreeAmounts.swift b/TalerWallet1/Views/Transactions/ThreeAmounts.swift @@ -68,12 +68,12 @@ struct ThreeAmountsView: View { VStack(alignment: .leading) { Text("Using Exchange:") .multilineTextAlignment(.leading) - .font(.body) + .font(.talerBody) HStack { Spacer() Text(baseURL.trimURL()) .multilineTextAlignment(.center) - .font(large ? .title2 : .title3) + .font(large ? .talerTitle2 : .talerTitle3) // .fontWeight(large ? .medium : .regular) // @available(iOS 16.0, *) .foregroundColor(labelColor) Spacer() diff --git a/TalerWallet1/Views/Transactions/TransactionDetailView.swift b/TalerWallet1/Views/Transactions/TransactionDetailView.swift @@ -66,17 +66,16 @@ struct TransactionDetailView: View { } } } // Suspend + Resume buttons Text(dateString) - .font(.title2) + .font(.talerTitle2) .listRowSeparator(.hidden) HStack { Text(verbatim: "|") // only reason for this leading-aligned text is to get a nice full length listRowSeparator - .font(.title2) .accessibilityHidden(true) .foregroundColor(Color.clear) Spacer() Text("Status: \(common.txState.major.localizedState)") - .font(.title2) } .listRowSeparator(.automatic) + .font(.talerTitle2) SwitchCase(transaction: $transaction, hasDone: doneAction != nil) if transaction.isAbortable { if let abortAction { @@ -176,7 +175,7 @@ struct TransactionDetailView: View { Group { switch transaction { case .dummy(let dummyTransaction): - Text("") + Text("").font(.talerBody) case .withdrawal(let withdrawalTransaction): let details = withdrawalTransaction.details if pending { @@ -209,7 +208,7 @@ struct TransactionDetailView: View { case .payment(let paymentTransaction): let details = paymentTransaction.details Text(details.info.summary) - .font(.title2) + .font(.talerTitle2) .lineLimit(4) .padding(.bottom) ThreeAmountsSheet(common: common, topTitle: String(localized: "Sum to be paid:"), @@ -229,7 +228,7 @@ struct TransactionDetailView: View { case .peer2peer(let p2pTransaction): let details = p2pTransaction.details // TODO: details Text(details.info.summary) - .font(.title2) + .font(.talerTitle2) .lineLimit(4) .padding(.bottom) // TODO: isSendCoins should show QR only while not expired @@ -238,7 +237,7 @@ struct TransactionDetailView: View { if hasDone { Text("QR code and link can also be scanned or copied / shared from Transactions later.") .multilineTextAlignment(.leading) - .font(.subheadline) + .font(.talerSubheadline) .padding(.top) } } @@ -265,7 +264,7 @@ struct TransactionDetailView: View { } else if keys.contains(EXCHANGEBASEURL) { if let baseURL = details[EXCHANGEBASEURL] { Text("from \(baseURL.trimURL())") - .font(.title2) + .font(.talerTitle2) .padding(.bottom) } } diff --git a/TalerWallet1/Views/Transactions/TransactionRowView.swift b/TalerWallet1/Views/Transactions/TransactionRowView.swift @@ -12,11 +12,11 @@ struct TransactionRowCenter: View { var body: some View { VStack(alignment: .leading) { Text(centerTop) - .font(.headline) + .font(.talerHeadline) .fontWeight(.medium) .padding(.bottom, -2.0) Text(centerBottom) - .font(.callout) + .font(.talerCallout) } } } @@ -41,7 +41,7 @@ struct TransactionRowView: View { HStack(spacing: 6) { Image(systemName: incoming ? "text.badge.plus" : "text.badge.minus") .foregroundColor(foreColor) - .font(.largeTitle) + .font(.talerLargeTitle) .accessibility(hidden: true) TransactionRowCenter(centerTop: transaction.localizedType, @@ -51,7 +51,7 @@ struct TransactionRowView: View { let sign = incoming ? "+" : "-" let valueStr = sign + amount.valueStr Text(valueStr) - .font(.title) + .font(.talerTitle) .foregroundColor(foreColor) .monospacedDigit() } diff --git a/TalerWallet1/Views/Transactions/TransactionsEmptyView.swift b/TalerWallet1/Views/Transactions/TransactionsEmptyView.swift @@ -19,7 +19,7 @@ struct TransactionsEmptyView: View { Section { Text("There are no transactions for \(currency).") } - .font(.title2) + .font(.talerTitle2) } .listStyle(myListStyle.style).anyView // .padding(.vertical) diff --git a/TalerWallet1/Views/WithdrawBankIntegrated/WithdrawProgressView.swift b/TalerWallet1/Views/WithdrawBankIntegrated/WithdrawProgressView.swift @@ -15,7 +15,7 @@ struct WithdrawProgressView: View { HStack { Spacer() Text(message) - .font(.title) + .font(.talerTitle) Spacer() } Spacer() diff --git a/TalerWallet1/Views/WithdrawBankIntegrated/WithdrawTOSView.swift b/TalerWallet1/Views/WithdrawBankIntegrated/WithdrawTOSView.swift @@ -95,17 +95,18 @@ extension WithdrawTOSView { if #available(iOS 16.0, *) { Section { Text(term5) - .font(.footnote) + .font(.talerFootnote) .foregroundColor(Color(UIColor.label)) } } else { Text(term5) - .font(.footnote) + .font(.talerFootnote) .foregroundColor(Color(UIColor.label)) } } else { Section { Text(term0) + .font(.talerBody) } } }.safeAreaInset(edge: .bottom) { diff --git a/TalerWallet1/Views/WithdrawBankIntegrated/WithdrawURIView.swift b/TalerWallet1/Views/WithdrawBankIntegrated/WithdrawURIView.swift @@ -57,6 +57,7 @@ struct WithdrawURIView: View { .padding() } else { Text("You must accept the Exchange's Terms of Service first before you can use it to withdraw electronic cash to your wallet.") + .font(.talerBody) .multilineTextAlignment(.leading) .padding() NavigationLink(destination: LazyView {