커스텀 폰트 pretendard-bold, gmarket-bold를 사용하고 있던 것을 appFont 모디파이어를 사용하여 한국어는 pretendard, 그 외에는 시스템 폰트를 사용하도록 수정

This commit is contained in:
Yu Sung
2026-01-23 02:57:23 +09:00
parent 5a344956e3
commit d92dcbc696
181 changed files with 500 additions and 500 deletions

View File

@@ -10,7 +10,7 @@ import SwiftUI
struct AuthButtonView: View {
var body: some View {
Text("본인인증")
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.padding(.horizontal, 13.3)
.padding(.vertical, 20)

View File

@@ -95,13 +95,13 @@ struct CanItemView: View {
var body: some View {
HStack(spacing: 0) {
Text(localizeCanWord(in: item.localizedTitle))
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Spacer()
Text("\(NumberFormatter.localizedString(from: item.price, number: .currency))")
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
}
.padding(.horizontal, 13.3)
@@ -119,13 +119,13 @@ struct CanPgItemView: View {
var body: some View {
HStack(spacing: 0) {
Text(localizeCanWord(in: item.title))
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Spacer()
Text(item.priceStr.formatCurrency(currencyCode: item.currency))
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
}
.padding(.horizontal, 13.3)

View File

@@ -11,7 +11,7 @@ struct CanChargeCouponButtonView: View {
var body: some View {
HStack(spacing: 5.3) {
Text("쿠폰 등록")
.font(.custom(Font.bold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Image("ic_coupon")

View File

@@ -22,7 +22,7 @@ struct CanCouponView: View {
ScrollView(.vertical, showsIndicators: false) {
VStack(spacing: 0) {
Text(I18n.CanCoupon.inputTitle)
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.frame(maxWidth: .infinity, alignment: .leading)
@@ -46,7 +46,7 @@ struct CanCouponView: View {
}
Text(I18n.CanCoupon.submit)
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
.padding(.vertical, 16)
.frame(maxWidth: .infinity)
@@ -59,7 +59,7 @@ struct CanCouponView: View {
VStack(alignment: .leading, spacing: 0) {
Text(I18n.CanCoupon.guideHeader)
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(.grayee)
CanCouponNoticeItemView(notice: I18n.CanCoupon.guide1)
@@ -78,7 +78,7 @@ struct CanCouponView: View {
.padding(.vertical, 26.7)
Text(I18n.CanCoupon.cautionHeader)
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(.grayee)
CanCouponNoticeItemView(notice: I18n.CanCoupon.caution1)

View File

@@ -40,14 +40,14 @@ struct CanPaymentView: View {
.frame(width: 26.7, height: 26.7, alignment: .top)
Text(canProduct.localizedTitle)
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.padding(.leading, 13.3)
Spacer()
Text("\(NumberFormatter.localizedString(from: canProduct.price, number: .currency))")
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
}
.padding(.horizontal, 13.3)
@@ -124,7 +124,7 @@ struct CanPaymentView: View {
HStack(spacing: 0) {
Text("\(NumberFormatter.localizedString(from: canProduct.price, number: .currency))")
.font(.custom(Font.bold.rawValue, size: 23.3))
.appFont(size: 23.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
}
}
@@ -132,7 +132,7 @@ struct CanPaymentView: View {
Spacer()
Text("결제하기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
.padding(.vertical, 16)
.frame(minWidth: 200)

View File

@@ -73,7 +73,7 @@ struct CanPgPaymentView: View {
HStack(spacing: 8) {
Button(action: { showExitConfirm = true }) {
Text("닫기")
.font(.custom(Font.bold.rawValue, size: 14))
.appFont(size: 14, weight: .bold)
.foregroundColor(.white)
.padding(.horizontal, 12)
.padding(.vertical, 8)
@@ -111,14 +111,14 @@ struct CanPgPaymentView: View {
.frame(width: 26.7, height: 26.7, alignment: .top)
Text(canResponse.title)
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.padding(.leading, 13.3)
Spacer()
Text(canResponse.priceStr.formatCurrency(currencyCode: canResponse.currency))
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color.grayee)
}
.padding(.horizontal, 13.3)
@@ -130,7 +130,7 @@ struct CanPgPaymentView: View {
.padding(.top, 13.3)
Text("결제 수단 선택")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(width: screenSize().width - 26.7, alignment: .leading)
.padding(.top, 26.7)
@@ -282,7 +282,7 @@ struct CanPgPaymentView: View {
HStack(spacing: 0) {
Text(canResponse.priceStr.formatCurrency(currencyCode: canResponse.currency))
.font(.custom(Font.bold.rawValue, size: 23.3))
.appFont(size: 23.3, weight: .bold)
.foregroundColor(Color.grayee)
}
}
@@ -290,7 +290,7 @@ struct CanPgPaymentView: View {
Spacer()
Text("결제하기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
.padding(.vertical, 16)
.frame(minWidth: 200)

View File

@@ -71,14 +71,14 @@ struct CanPaymentTempView: View {
VStack(spacing: 0) {
HStack(spacing: 0) {
Text(self.title)
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.padding(.leading, 13.3)
Spacer()
Text("\(self.can * 110)")
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(Color.grayee)
}
.padding(.horizontal, 13.3)
@@ -90,7 +90,7 @@ struct CanPaymentTempView: View {
.padding(.top, 13.3)
Text("결제 수단 선택")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(width: screenSize().width - 26.7, alignment: .leading)
.padding(.top, 26.7)
@@ -200,7 +200,7 @@ struct CanPaymentTempView: View {
HStack(spacing: 0) {
Text("\(self.can * 110)")
.font(.custom(Font.bold.rawValue, size: 23.3))
.appFont(size: 23.3, weight: .bold)
.foregroundColor(Color.grayee)
}
}
@@ -208,7 +208,7 @@ struct CanPaymentTempView: View {
Spacer()
Text("결제하기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
.padding(.vertical, 16)
.frame(minWidth: 200)

View File

@@ -29,7 +29,7 @@ struct CanStatusView: View {
.frame(width: 26.7, height: 26.7)
Text("\(viewModel.totalCan)")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
}
@@ -41,7 +41,7 @@ struct CanStatusView: View {
HStack(alignment: .bottom, spacing: 3.3) {
Text("\(viewModel.chargeCan)")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Text("")
@@ -62,7 +62,7 @@ struct CanStatusView: View {
HStack(alignment: .bottom, spacing: 3.3) {
Text("\(viewModel.rewardCan)")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Text("")
@@ -143,7 +143,7 @@ struct CanStatusView: View {
.frame(width: 26.7, height: 26.7)
Text("충전하기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "1313bc"))
}
.padding(.vertical, 16)

View File

@@ -48,7 +48,7 @@ struct CanUseStatusItemView: View {
Spacer()
Text("\(item.can)")
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Image("ic_can")

View File

@@ -16,7 +16,7 @@ struct CanCardView: View {
Button(action: { AppState.shared.setAppStep(step: .canStatus(refresh: refresh)) }) {
HStack(spacing: 6.7) {
Text("\(data.chargeCan + data.rewardCan)")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Image("ic_can")
@@ -38,7 +38,7 @@ struct CanCardView: View {
.frame(width: 26.7, height: 26.7)
Text("충전")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color(hex: "b38fff"))
}
.padding(.horizontal, 11.3)

View File

@@ -31,7 +31,7 @@ struct MyInfoCardView: View {
VStack(alignment: .leading, spacing: 13.3) {
HStack(spacing: 0) {
Text(data.nickname)
.font(.custom(Font.bold.rawValue, size: 20))
.appFont(size: 20, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Spacer()

View File

@@ -73,7 +73,7 @@ struct MyPageView: View {
} else {
HStack {
Text("LOGIN")
.font(.custom(Font.preBold.rawValue, size: 32))
.appFont(size: 32, weight: .bold)
.foregroundColor(Color.gray77)
}
.padding(.vertical, 12)
@@ -89,7 +89,7 @@ struct MyPageView: View {
if UserDefaults.string(forKey: .role) == MemberRole.CREATOR.rawValue {
Text("내 채널 보기")
.font(.custom(Font.preBold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color.white)
.padding(.vertical, 12)
.frame(maxWidth: .infinity)
@@ -483,11 +483,11 @@ struct RecentContentSection: View {
VStack(alignment: .leading, spacing: 14) {
HStack(spacing: 0) {
Text("최근 들은 ")
.font(.custom(Font.preBold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color(hex: "B0BEC5"))
Text("\(recentContents.count)")
.font(.custom(Font.preBold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color(hex: "FDC118"))
}
.padding(.horizontal, 24)

View File

@@ -21,7 +21,7 @@ struct OrderListAllView: View {
.frame(width: 20, height: 20)
Text("콘텐츠 보관함")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
}

View File

@@ -14,7 +14,7 @@ struct OrderListView: View {
VStack(spacing: 0) {
HStack(spacing: 0) {
Text("콘텐츠 보관함")
.font(.custom(Font.bold.rawValue, size: 18))
.appFont(size: 18, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Spacer()

View File

@@ -29,7 +29,7 @@ struct PointStatusView: View {
.frame(width: 26.7, height: 26.7)
Text("\(viewModel.totalCan)")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.grayee)
}
}

View File

@@ -41,7 +41,7 @@ struct NicknameUpdateView: View {
.padding(.top, 40)
Text("중복확인")
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.frame(width: screenSize().width - 40)
.padding(.vertical, 13.3)
@@ -58,7 +58,7 @@ struct NicknameUpdateView: View {
Spacer()
Text(viewModel.price > 0 ? "\(viewModel.price)캔으로 닉네임 변경하기" : "닉네임 변경하기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.padding(.vertical, 16)
.frame(width: screenSize().width - 26.7)

View File

@@ -58,7 +58,7 @@ struct ModifyPasswordView: View {
if !viewModel.isLoading {
Text("비밀번호 변경하기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
.padding(.vertical, 16)
.frame(width: screenSize().width - 26.7)

View File

@@ -59,7 +59,7 @@ struct ProfileUpdateView: View {
Button(action: { AppState.shared.setAppStep(step: .modifyPassword) }) {
Text("비밀번호 변경")
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color.white)
.padding(.vertical, 13.3)
.padding(.horizontal, 22.7)
@@ -99,7 +99,7 @@ struct ProfileUpdateView: View {
Button(action: { AppState.shared.setAppStep(step: .changeNickname) }) {
Text("닉네임 변경")
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color.white)
.padding(.vertical, 13.3)
.padding(.horizontal, 22.7)
@@ -110,7 +110,7 @@ struct ProfileUpdateView: View {
VStack(alignment: .leading, spacing: 13.3) {
Text("성별")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color.button)
.padding(.leading, 6.7)
@@ -209,7 +209,7 @@ struct ProfileUpdateView: View {
func TagSelectView() -> some View {
VStack(alignment: .leading, spacing: 13.3) {
Text("관심사")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
Button(action: {
@@ -217,7 +217,7 @@ struct ProfileUpdateView: View {
isShowSelectTagView = true
}) {
Text("관심사 선택")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.button)
.padding(.vertical, 13.7)
.frame(width: screenSize().width - 53.4)
@@ -264,7 +264,7 @@ struct ProfileUpdateView: View {
func ContentInputView() -> some View {
VStack(alignment: .leading, spacing: 13.3) {
Text("소개글")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
TextViewWrapper(
@@ -347,7 +347,7 @@ struct ProfileUpdateView: View {
if UserDefaults.string(forKey: .role) == MemberRole.CREATOR.rawValue {
Text("저장하기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.frame(width: screenSize().width - 26.7, height: 50)
.background(Color.button)
@@ -377,7 +377,7 @@ struct ProfileUpdateView: View {
Spacer()
Text("저장하기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.frame(width: screenSize().width - 26.7, height: 50)
.background(Color.button)

View File

@@ -30,7 +30,7 @@ struct MemberTagView: View {
VStack(spacing: 0) {
HStack(alignment: .top, spacing: 0) {
Text("관심사 선택")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
Spacer()
@@ -88,7 +88,7 @@ struct MemberTagView: View {
.padding(.top, 26.7)
Text("확인")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
.padding(.vertical, 16)
.frame(width: screenSize().width - 26.7)

View File

@@ -24,7 +24,7 @@ struct LiveReservationCancelView: View {
if let item = viewModel.selectedReservationStatusItem {
if viewModel.isCancelComplete {
Text("예약취소가 완료되었습니다.")
.font(.custom(Font.bold.rawValue, size: 20))
.appFont(size: 20, weight: .bold)
.foregroundColor(Color(hex: "a285eb"))
.frame(width: screenSize().width - 26.7, alignment: .leading)
.padding(.top, 33.3)
@@ -125,7 +125,7 @@ struct LiveReservationCancelView: View {
VStack(spacing: 13.3) {
Text("예약을 취소하시겠습니까?")
.font(.custom(Font.bold.rawValue, size: 20))
.appFont(size: 20, weight: .bold)
.foregroundColor(Color(hex: "a285eb"))
.frame(width: screenSize().width - 26.7, alignment: .leading)
@@ -186,7 +186,7 @@ struct LiveReservationCancelView: View {
.frame(width: screenSize().width - 53.4, alignment: .leading)
Text("예약취소")
.font(.custom(Font.bold.rawValue, size: 15))
.appFont(size: 15, weight: .bold)
.foregroundColor(.white)
.padding(.vertical, 16)
.frame(width: screenSize().width - 26.7)

View File

@@ -73,7 +73,7 @@ struct LiveReservationStatusItemView: View {
Spacer()
Text("예약\n취소")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color(hex: "9970ff"))
.padding(10.7)
.overlay(

View File

@@ -13,7 +13,7 @@ struct ReservationStatusView: View {
var body: some View {
VStack(alignment: .leading, spacing: 13.3) {
Text("예약현황")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
HStack(spacing: 0) {
@@ -25,7 +25,7 @@ struct ReservationStatusView: View {
.frame(width: 20, height: 20)
Text("라이브")
.font(.custom(Font.bold.rawValue, size: 14.7))
.appFont(size: 14.7, weight: .bold)
.foregroundColor(Color(hex: "3bb9f1"))
Text("\(data.liveReservationCount)")

View File

@@ -22,7 +22,7 @@ struct FaqView: View {
VStack(spacing: 0) {
HStack(alignment: .top, spacing: 6.7) {
Text("Q")
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color.button)
Text(faq.question)
@@ -42,7 +42,7 @@ struct FaqView: View {
if openIndex == index {
HStack(alignment: .top, spacing: 6.7) {
Text("A")
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color.button)
.padding(.top, 13.3)

View File

@@ -15,7 +15,7 @@ struct ServiceCenterButtonView: View {
.frame(width: 26.7, height: 26.7)
Text("보이스온 고객센터")
.font(.custom(Font.bold.rawValue, size: 15.3))
.appFont(size: 15.3, weight: .bold)
.foregroundColor(.white)
Spacer()

View File

@@ -24,7 +24,7 @@ struct ServiceCenterView: View {
.frame(width: 106.7, height: 106.7, alignment: .top)
Text("고객센터")
.font(.custom(Font.bold.rawValue, size: 20))
.appFont(size: 20, weight: .bold)
.foregroundColor(.grayee)
.padding(.top, 20)
@@ -35,7 +35,7 @@ struct ServiceCenterView: View {
.frame(width: 21, height: 18.8, alignment: .top)
Text("TALK 문의")
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(.black)
}
.padding(.vertical, 14)
@@ -54,7 +54,7 @@ struct ServiceCenterView: View {
.padding(.vertical, 20)
Text("자주 묻는 질문")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.grayee)
.frame(maxWidth: .infinity, alignment: .leading)
.padding(.horizontal, 13.3)