커스텀 폰트 pretendard-medium, gmarket-medium를 사용하고 있던 것을 appFont 모디

파이어를 사용하여 한국어는 pretendard, 그 외에는 시스템 폰트를 사용하도록 수정
This commit is contained in:
Yu Sung
2026-01-23 03:09:20 +09:00
parent d92dcbc696
commit 280e424385
238 changed files with 831 additions and 831 deletions

View File

@@ -24,7 +24,7 @@ struct AudioContentDeleteDialogView: View {
.foregroundColor(Color(hex: "eeeeee"))
Text("[\(title)]을 삭제하시겠습니까?")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color(hex: "eeeeee"))
.padding(.top, 21.3)
@@ -37,7 +37,7 @@ struct AudioContentDeleteDialogView: View {
}
Text("삭제된 콘텐츠는 되돌릴 수 없음을 알고 있습니다.")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color(hex: "eeeeee"))
.onTapGesture {
isAgree.toggle()
@@ -49,7 +49,7 @@ struct AudioContentDeleteDialogView: View {
.padding(.top, 13.3)
Text("콘텐츠를 삭제하더라도 이미 구매한\n사용자는 콘텐츠를 이용할 수 있습니다.")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color(hex: "dd4500"))
.fixedSize(horizontal: false, vertical: true)
.multilineTextAlignment(.center)

View File

@@ -44,7 +44,7 @@ struct AudioContentReportDialogView: View {
.frame(width: 20, height: 20)
Text(reason)
.font(.custom(Font.medium.rawValue, size: 14))
.appFont(size: 14, weight: .medium)
.foregroundColor(Color(hex: "eeeeee"))
Spacer()
@@ -60,7 +60,7 @@ struct AudioContentReportDialogView: View {
.padding(.vertical, 21.3)
Text("신고한 콘텐츠를 관리자가 확인 후, 서비스정책을\n위반한 경우 삭제 조치할 예정입니다.")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color(hex: "dd4500"))
.multilineTextAlignment(.center)

View File

@@ -47,12 +47,12 @@ struct AudioContentCommentItemView: View {
VStack(alignment: .leading, spacing: 0) {
HStack(spacing: 6.7) {
Text(commentItem.nickname)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.gray90)
if commentItem.isSecret {
Text("비밀댓글")
.font(.custom(Font.medium.rawValue, size: 11))
.appFont(size: 11, weight: .medium)
.foregroundColor(Color.grayee)
.padding(.horizontal, 4)
.padding(.vertical, 2)
@@ -62,7 +62,7 @@ struct AudioContentCommentItemView: View {
}
Text(commentItem.date)
.font(.custom(Font.medium.rawValue, size: 10.3))
.appFont(size: 10.3, weight: .medium)
.foregroundColor(Color.gray52)
.padding(.top, 4)
}
@@ -107,7 +107,7 @@ struct AudioContentCommentItemView: View {
TextField("댓글을 입력해 보세요.", text: $comment)
.autocapitalization(.none)
.disableAutocorrection(true)
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
.accentColor(Color.button)
.keyboardType(.default)
@@ -137,7 +137,7 @@ struct AudioContentCommentItemView: View {
} else {
VStack(alignment: .leading, spacing: 13.3) {
Text(commentItem.comment)
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
.fixedSize(horizontal: false, vertical: true)
.lineSpacing(8)
@@ -152,7 +152,7 @@ struct AudioContentCommentItemView: View {
)
) {
Text(commentItem.replyCount > 0 ? "답글 \(commentItem.replyCount)" : "답글 쓰기")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.button)
}
}
@@ -173,7 +173,7 @@ struct AudioContentCommentItemView: View {
VStack(spacing: 10) {
if commentItem.writerId == UserDefaults.int(forKey: .userId) {
Text("수정")
.font(.custom(Font.medium.rawValue, size: 14))
.appFont(size: 14, weight: .medium)
.foregroundColor(Color.gray77)
.onTapGesture {
isModeModify = true
@@ -185,7 +185,7 @@ struct AudioContentCommentItemView: View {
commentItem.writerId == UserDefaults.int(forKey: .userId)
{
Text("삭제")
.font(.custom(Font.medium.rawValue, size: 14))
.appFont(size: 14, weight: .medium)
.foregroundColor(Color.gray77)
.onTapGesture {
isModeModify = false

View File

@@ -30,12 +30,12 @@ struct AudioContentCommentListView: View {
VStack(spacing: 0) {
HStack(spacing: 0) {
Text("댓글")
.font(.custom(Font.medium.rawValue, size: 14.7))
.appFont(size: 14.7, weight: .medium)
.foregroundColor(.white)
.padding(.leading, 13.3)
Text("\(viewModel.totalCommentCount)")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color(hex: "909090"))
.padding(.leading, 6.7)
@@ -66,7 +66,7 @@ struct AudioContentCommentListView: View {
}
Text("비밀댓글")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(viewModel.isSecret ? Color.button : Color.grayee)
.onTapGesture {
viewModel.isSecret.toggle()
@@ -88,7 +88,7 @@ struct AudioContentCommentListView: View {
TextField("댓글을 입력해 보세요.", text: $viewModel.comment)
.autocapitalization(.none)
.disableAutocorrection(true)
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
.accentColor(Color.button)
.keyboardType(.default)
@@ -195,7 +195,7 @@ struct AudioContentCommentListView: View {
Text(viewModel.errorMessage)
.padding(.vertical, 13.3)
.frame(width: screenSize().width - 66.7, alignment: .center)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.background(Color(hex: "9970ff"))
.foregroundColor(Color.white)
.multilineTextAlignment(.center)

View File

@@ -30,7 +30,7 @@ struct AudioContentListReplyView: View {
Image("ic_back")
Text("답글")
.font(.custom(Font.medium.rawValue, size: 14.7))
.appFont(size: 14.7, weight: .medium)
.foregroundColor(.white)
Spacer()
@@ -58,7 +58,7 @@ struct AudioContentListReplyView: View {
TextField("댓글을 입력해 보세요.", text: $viewModel.comment)
.autocapitalization(.none)
.disableAutocorrection(true)
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color(hex: "eeeeee"))
.accentColor(Color(hex: "3bb9f1"))
.keyboardType(.default)

View File

@@ -23,11 +23,11 @@ struct ContentDetailCommentView: View {
VStack(alignment: .leading, spacing: 10.3) {
HStack(spacing: 5.3) {
Text("댓글")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(.white)
Text("\(commentCount)")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.gray90)
Spacer()
@@ -39,7 +39,7 @@ struct ContentDetailCommentView: View {
.frame(width: 20, height: 20)
Text("비밀댓글")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(isSecret ? Color.button : Color.grayee)
}
.onTapGesture {
@@ -64,7 +64,7 @@ struct ContentDetailCommentView: View {
if commentCount > 0 {
Text(commentList[0].comment)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.graybb)
.lineLimit(1)
.lineSpacing(8)
@@ -74,7 +74,7 @@ struct ContentDetailCommentView: View {
TextField("댓글을 입력해 보세요.", text: $comment)
.autocapitalization(.none)
.disableAutocorrection(true)
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
.accentColor(Color.button)
.keyboardType(.default)

View File

@@ -29,7 +29,7 @@ struct ContentDetailAnotherItemView: View {
HStack(spacing: 0) {
Text(item.title)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color(hex: "777777"))
.multilineTextAlignment(.leading)
.lineLimit(1)

View File

@@ -29,7 +29,7 @@ struct ContentDetailCreatorProfileView: View {
.clipShape(Circle())
Text(creator.nickname)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.gray77)
.padding(.horizontal, 5.3)

View File

@@ -19,7 +19,7 @@ struct ContentDetailInfoLimitedEditionView: View {
VStack(alignment: .leading, spacing: 13.3) {
HStack(spacing: 0) {
Text("한정판")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.button)
Spacer()
@@ -36,12 +36,12 @@ struct ContentDetailInfoLimitedEditionView: View {
.padding(.leading, 2.3)
Text("\(totalContentCount)")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayd2)
.padding(.leading, 2.3)
} else if (remainingContentCount <= 0) {
Text("Sold Out")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.grayd2)
.padding(.horizontal, 5.3)
.padding(.vertical, 3.3)
@@ -52,7 +52,7 @@ struct ContentDetailInfoLimitedEditionView: View {
)
} else {
Text("잔여수량")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayd2)
Text("\(remainingContentCount)")
@@ -87,7 +87,7 @@ struct ContentDetailInfoLimitedEditionView: View {
.clipShape(Circle())
Text(buyer.nickname)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.graybb)
.lineLimit(1)
}

View File

@@ -23,7 +23,7 @@ struct ContentDetailInfoView: View {
HStack(spacing: 5.3) {
if let _ = audioContent.releaseDate {
Text("오픈예정")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color(hex: "3bb9f1"))
.padding(.horizontal, 5.3)
.padding(.vertical, 3.3)
@@ -32,7 +32,7 @@ struct ContentDetailInfoView: View {
}
Text(audioContent.themeStr)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color(hex: "3bac6a"))
.padding(.horizontal, 5.3)
.padding(.vertical, 3.3)
@@ -41,7 +41,7 @@ struct ContentDetailInfoView: View {
if audioContent.isAdult {
Text("19")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color(hex: "e33621"))
.padding(.horizontal, 5.3)
.padding(.vertical, 3.3)
@@ -57,13 +57,13 @@ struct ContentDetailInfoView: View {
Image("ic_time_l")
Text(remainingTime)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color(hex: "909090"))
}
}
Text(orderType == .KEEP ? "소장중" : "대여중")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(
orderType == .KEEP ?
Color(hex: "b1ef2c") :
@@ -101,7 +101,7 @@ struct ContentDetailInfoView: View {
)
Text("\(audioContent.likeCount)")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayd2)
}
.padding(.horizontal, 13.3)
@@ -114,7 +114,7 @@ struct ContentDetailInfoView: View {
Image("ic_audio_content_share")
Text("공유")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayd2)
}
.padding(.horizontal, 13.3)
@@ -130,7 +130,7 @@ struct ContentDetailInfoView: View {
.frame(width: 13.3, height: 13.3)
Text("후원")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayd2)
}
.padding(.horizontal, 13.3)
@@ -157,13 +157,13 @@ struct ContentDetailInfoView: View {
VStack(spacing: 8) {
if audioContent.tag.count > 0 {
Text(audioContent.translated?.tags ?? audioContent.tag)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.button)
.frame(maxWidth: .infinity, alignment: .leading)
}
Text(audioContent.translated?.detail ?? audioContent.detail)
.font(.custom(Font.medium.rawValue, size: 14))
.appFont(size: 14, weight: .medium)
.foregroundColor(Color.gray90)
.lineLimit(isExpandDescription ? nil : 3)
.lineSpacing(5)
@@ -175,7 +175,7 @@ struct ContentDetailInfoView: View {
if isShowingPreviewAlert() {
HStack(spacing: 0) {
Text("미리듣기 중입니다.\n콘텐츠 구매 후 전체를 감상해 보세요.")
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.foregroundColor(Color.graybb)
.lineSpacing(5)

View File

@@ -35,7 +35,7 @@ struct ContentDetailMenuView: View {
Image(isPin ? "ic_pin_cancel" : "ic_pin")
Text(isPin ? "내 채널에 고정 취소" : "내 채널에 고정")
.font(.custom(Font.medium.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .medium)
.foregroundColor(.white)
Spacer()
@@ -52,7 +52,7 @@ struct ContentDetailMenuView: View {
Image("ic_make_message")
Text("수정")
.font(.custom(Font.medium.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .medium)
.foregroundColor(.white)
Spacer()
@@ -69,7 +69,7 @@ struct ContentDetailMenuView: View {
Image("ic_trash_can")
Text("삭제")
.font(.custom(Font.medium.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .medium)
.foregroundColor(.white)
Spacer()
@@ -84,7 +84,7 @@ struct ContentDetailMenuView: View {
} else {
HStack(spacing: 0) {
Text("신고")
.font(.custom(Font.medium.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .medium)
.foregroundColor(.white)
Spacer()

View File

@@ -17,12 +17,12 @@ struct ContentDetailMosaicView: View {
Image("ic_notice_exclamation_mark")
Text("본 콘텐츠는 만 19세 미만의 청소년이\n이용할 수 없습니다.\n본인인증 후 콘텐츠를 이용해 주세요.")
.font(.custom(Font.medium.rawValue, size: 18.7))
.appFont(size: 18.7, weight: .medium)
.foregroundColor(Color(hex: "bbbbbb"))
.padding(.top, 21.7)
Text("본인인증")
.font(.custom(Font.medium.rawValue, size: 18.7))
.appFont(size: 18.7, weight: .medium)
.foregroundColor(Color.white)
.padding(.horizontal, 13.3)
.padding(.vertical, 8)

View File

@@ -38,7 +38,7 @@ struct ContentDetailOtherContentView: View {
Text("\(title)를 준비중입니다.\n조금만 기다려주세요.")
.multilineTextAlignment(.center)
.font(.custom(Font.medium.rawValue, size: 10.7))
.appFont(size: 10.7, weight: .medium)
.foregroundColor(Color(hex: "bbbbbb"))
}
.padding(13.3)

View File

@@ -96,7 +96,7 @@ struct ContentDetailPlayView: View {
.frame(width: 24, height: 24)
Text(I18n.ContentDetail.preview)
.font(.custom(Font.medium.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .medium)
.foregroundColor(Color.white)
}
.padding(.vertical, 13.3)
@@ -169,7 +169,7 @@ struct ContentDetailPlayView: View {
.frame(width: 24, height: 24)
Text(I18n.ContentDetail.noPreview)
.font(.custom(Font.medium.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .medium)
.foregroundColor(Color(hex: "444446"))
}
.padding(.vertical, 13.3)
@@ -217,7 +217,7 @@ struct ContentDetailPlayView: View {
HStack(spacing: 0) {
Text("\(getProgress()) / \(getDuration())")
.font(.custom(Font.medium.rawValue, size: 14.7))
.appFont(size: 14.7, weight: .medium)
.foregroundColor(.white)
Spacer()

View File

@@ -27,13 +27,13 @@ struct ContentDetailPreviousNextContentButtonView: View {
VStack(alignment: .leading, spacing: 5.3) {
Text(previousContent.title)
.font(.custom(Font.medium.rawValue, size: 11))
.appFont(size: 11, weight: .medium)
.foregroundColor(.grayd2)
.multilineTextAlignment(.leading)
.lineLimit(2)
Text("이전화")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(.button)
.multilineTextAlignment(.leading)
.lineLimit(2)
@@ -66,13 +66,13 @@ struct ContentDetailPreviousNextContentButtonView: View {
VStack(alignment: .leading, spacing: 5.3) {
Text(nextContent.title)
.font(.custom(Font.medium.rawValue, size: 11))
.appFont(size: 11, weight: .medium)
.foregroundColor(.grayd2)
.multilineTextAlignment(.leading)
.lineLimit(2)
Text("다음화")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(.button)
.multilineTextAlignment(.leading)
.lineLimit(2)

View File

@@ -422,7 +422,7 @@ struct ContentDetailView: View {
Text(viewModel.errorMessage)
.padding(.vertical, 13.3)
.frame(width: screenSize().width - 66.7, alignment: .center)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.background(Color(hex: "9970ff"))
.foregroundColor(Color.white)
.multilineTextAlignment(.center)

View File

@@ -57,7 +57,7 @@ struct ContentOrderConfirmDialogView: View {
VStack(alignment: .leading, spacing: 0) {
Text(themeStr)
.font(.custom(Font.medium.rawValue, size: 8))
.appFont(size: 8, weight: .medium)
.foregroundColor(Color(hex: "3bac6a"))
.padding(2.3)
.background(Color(hex: "28312b"))
@@ -82,13 +82,13 @@ struct ContentOrderConfirmDialogView: View {
.clipShape(Circle())
Text(creatorNickname)
.font(.custom(Font.medium.rawValue, size: 10))
.appFont(size: 10, weight: .medium)
.foregroundColor(Color.gray77)
}
.padding(.top, 6.7)
Text(duration)
.font(.custom(Font.medium.rawValue, size: 11))
.appFont(size: 11, weight: .medium)
.foregroundColor(Color.gray77)
.padding(.top, 6.7)
}
@@ -101,7 +101,7 @@ struct ContentOrderConfirmDialogView: View {
.padding(.top, 21.3)
Text("콘텐츠를 \(orderType == .RENTAL ? "대여" : "소장")하시겠습니까?")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
.fixedSize(horizontal: false, vertical: true)
.multilineTextAlignment(.center)
@@ -109,7 +109,7 @@ struct ContentOrderConfirmDialogView: View {
if UserDefaults.int(forKey: .userId) != 17958 {
Text("아래 금액이 차감됩니다.")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
.fixedSize(horizontal: false, vertical: true)
.multilineTextAlignment(.center)
@@ -134,7 +134,7 @@ struct ContentOrderConfirmDialogView: View {
if usablePoint > 0 && remainingCan > 0 {
Text("+")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
}

View File

@@ -59,7 +59,7 @@ struct LiveRoomDonationDialogView: View {
.foregroundColor(Color.grayee)
Text("충전")
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.main)
.padding(.horizontal, 13.3)
.padding(.vertical, 8)
@@ -93,7 +93,7 @@ struct LiveRoomDonationDialogView: View {
.frame(width: 20, height: 20)
Text("비밀미션")
.font(.custom(Font.medium.rawValue, size: 14.7))
.appFont(size: 14.7, weight: .medium)
.foregroundColor(isSecret ? Color.button : Color.grayee)
}
.onTapGesture {
@@ -105,7 +105,7 @@ struct LiveRoomDonationDialogView: View {
}
TextField(isSecret ? "10캔 이상 입력하세요" : "1캔 이상 입력하세요", text: $donationCan)
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
.padding(13.3)
.keyboardType(.numberPad)
@@ -205,7 +205,7 @@ struct LiveRoomDonationDialogView: View {
)
TextField("함께 보낼 \(isSecret ? "비밀 " : "")메시지 입력(최대 1000자)", text: $donationMessage)
.font(.custom(Font.medium.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .medium)
.foregroundColor(Color.grayee)
.padding(13.3)
.background(Color.gray30)
@@ -272,7 +272,7 @@ struct LiveRoomDonationDialogView: View {
Text(errorMessage)
.padding(.vertical, 13.3)
.frame(width: screenSize().width - 66.7, alignment: .center)
.font(.custom(Font.medium.rawValue, size: 12))
.appFont(size: 12, weight: .medium)
.background(Color.button)
.foregroundColor(Color.white)
.multilineTextAlignment(.leading)