커스텀 폰트 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

@@ -26,29 +26,29 @@ struct ExplorerSectionView: View {
let titleArray = section.title.components(separatedBy: coloredTitle)
HStack(spacing: 0) {
Text(titleArray[0])
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Text(coloredTitle)
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: color))
if titleArray.count > 1 {
Text(titleArray[1])
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
}
}
} else {
Text(section.title)
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
}
if let desc = section.desc {
VStack(spacing: 8) {
Text("\(desc)")
.font(.custom(Font.bold.rawValue, size: 14.7))
.appFont(size: 14.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Text("※ 인기 크리에이터의 순위는 매주 업데이트됩니다.")

View File

@@ -17,7 +17,7 @@ struct CreatorCommunityAllItemLockView: View {
Image("ic_lock_bb")
Text("\(price)캔으로 게시글 보기")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color.button)
.padding(.horizontal, 21)
.padding(.vertical, 11)

View File

@@ -23,7 +23,7 @@ struct CreatorCommunityItemView: View {
VStack(alignment: .leading, spacing: 0) {
Text(item.creatorNickname)
.font(.custom(Font.preBold.rawValue, size: 18))
.appFont(size: 18, weight: .bold)
.foregroundColor(Color.white)
Text(item.relativeTimeText())

View File

@@ -16,7 +16,7 @@ struct CreatorCommunityNoPostsItemView: View {
CreatorCommunityWriteItemView()
Text("게시물 등록")
.font(.custom(Font.bold.rawValue, size: 14.7))
.appFont(size: 14.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Text("게시 후에 게시물이 여기에 표시되고\n커뮤니티에 공개됩니다.")

View File

@@ -30,7 +30,7 @@ struct CreatorCommunityModifyView: View {
VStack(spacing: 0) {
VStack(spacing: 13.3) {
Text("이미지")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.frame(maxWidth: .infinity, alignment: .leading)
@@ -103,7 +103,7 @@ struct CreatorCommunityModifyView: View {
HStack(spacing: 0) {
Text("내용")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Spacer()
@@ -129,7 +129,7 @@ struct CreatorCommunityModifyView: View {
VStack(spacing: 13.3) {
Text("댓글 가능 여부")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.frame(maxWidth: .infinity, alignment: .leading)
@@ -157,7 +157,7 @@ struct CreatorCommunityModifyView: View {
VStack(spacing: 13.3) {
Text("연령 제한")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.frame(maxWidth: .infinity, alignment: .leading)
@@ -188,7 +188,7 @@ struct CreatorCommunityModifyView: View {
VStack(spacing: 0) {
HStack(spacing: 13.3) {
Text("닫기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color(hex: "3BB9F1"))
.frame(maxWidth: .infinity)
.frame(height: 50)
@@ -204,7 +204,7 @@ struct CreatorCommunityModifyView: View {
}
Text("수정")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.frame(maxWidth: .infinity)
.frame(height: 50)

View File

@@ -32,7 +32,7 @@ struct CreatorCommunityRecordingVoiceView: View {
VStack(spacing: 0) {
HStack(spacing: 0) {
Text("음성녹음")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
Spacer()
@@ -47,7 +47,7 @@ struct CreatorCommunityRecordingVoiceView: View {
}
Text(soundManager.timeString)
.font(.custom(Font.bold.rawValue, size: 33.3))
.appFont(size: 33.3, weight: .bold)
.foregroundColor(.white)
.padding(.top, 80)
@@ -115,7 +115,7 @@ struct CreatorCommunityRecordingVoiceView: View {
HStack(spacing: 13.3) {
Text("다시 녹음")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.button)
.frame(width: (proxy.size.width - 40) / 3, height: 50)
.background(Color.button.opacity(0.2))
@@ -131,7 +131,7 @@ struct CreatorCommunityRecordingVoiceView: View {
}
Text("녹음완료")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(.white)
.frame(width: (proxy.size.width - 40) * 2 / 3, height: 50)
.background(Color.button)

View File

@@ -32,7 +32,7 @@ struct CreatorCommunityWriteView: View {
VStack(spacing: 0) {
VStack(spacing: 13.3) {
Text("이미지")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(maxWidth: .infinity, alignment: .leading)
@@ -100,7 +100,7 @@ struct CreatorCommunityWriteView: View {
VStack(spacing: 13.3) {
HStack(spacing: 0) {
Text("오디오 녹음")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
Spacer()
@@ -130,7 +130,7 @@ struct CreatorCommunityWriteView: View {
HStack(spacing: 0) {
Text("내용")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
Spacer()
@@ -156,7 +156,7 @@ struct CreatorCommunityWriteView: View {
VStack(spacing: 13.3) {
Text("댓글 가능 여부")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(maxWidth: .infinity, alignment: .leading)
@@ -185,7 +185,7 @@ struct CreatorCommunityWriteView: View {
if UserDefaults.bool(forKey: .auth) {
VStack(spacing: 13.3) {
Text("연령 제한")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(maxWidth: .infinity, alignment: .leading)
@@ -215,7 +215,7 @@ struct CreatorCommunityWriteView: View {
if let _ = viewModel.postImageData {
VStack(spacing: 13.3) {
Text("가격 설정")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color.grayee)
.frame(maxWidth: .infinity, alignment: .leading)
@@ -245,7 +245,7 @@ struct CreatorCommunityWriteView: View {
.autocapitalization(.none)
.disableAutocorrection(true)
.multilineTextAlignment(.center)
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color.button)
.accentColor(Color.button)
.keyboardType(.numberPad)
@@ -274,7 +274,7 @@ struct CreatorCommunityWriteView: View {
VStack(spacing: 0) {
HStack(spacing: 13.3) {
Text("닫기")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.button)
.frame(maxWidth: .infinity)
.frame(height: 50)
@@ -290,7 +290,7 @@ struct CreatorCommunityWriteView: View {
}
Text("등록")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.white)
.frame(maxWidth: .infinity)
.frame(height: 50)

View File

@@ -43,7 +43,7 @@ struct UserProfileFanTalkCheersItemView: View {
VStack(alignment: .leading, spacing: 0) {
Text("\(cheersItem.nickname)")
.font(.custom(Font.preBold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color.white)
Text("\(cheersItem.date)")
@@ -70,7 +70,7 @@ struct UserProfileFanTalkCheersItemView: View {
)
Text("수정")
.font(.custom(Font.preBold.rawValue, size: 14))
.appFont(size: 14, weight: .bold)
.foregroundColor(Color.white)
.padding(13.3)
.background(Color.button)
@@ -81,7 +81,7 @@ struct UserProfileFanTalkCheersItemView: View {
}
Text("취소")
.font(.custom(Font.preBold.rawValue, size: 14))
.appFont(size: 14, weight: .bold)
.foregroundColor(Color.button)
.padding(13.3)
.background(Color.gray22)
@@ -119,7 +119,7 @@ struct UserProfileFanTalkCheersItemView: View {
)
Text("등록")
.font(.custom(Font.preBold.rawValue, size: 14))
.appFont(size: 14, weight: .bold)
.foregroundColor(Color.white)
.padding(13.3)
.background(Color.button)

View File

@@ -26,7 +26,7 @@ struct UserProfileFanTalkView: View {
VStack(alignment: .leading, spacing: 0) {
HStack(spacing: 0) {
Text("팬 Talk")
.font(.custom(Font.preBold.rawValue, size: 26))
.appFont(size: 26, weight: .bold)
.foregroundColor(Color.white)
Spacer()

View File

@@ -26,7 +26,7 @@ struct FollowerListView: View {
HStack(spacing: 4) {
Text("전체")
.font(.custom(Font.bold.rawValue, size: 18.3))
.appFont(size: 18.3, weight: .bold)
.foregroundColor(Color.grayee)
Text("\(viewModel.totalCount)")

View File

@@ -16,7 +16,7 @@ struct UserProfileSeriesView: View {
VStack(alignment: .leading, spacing: 13.3) {
HStack(spacing: 0) {
Text("시리즈")
.font(.custom(Font.preBold.rawValue, size: 26))
.appFont(size: 26, weight: .bold)
.foregroundColor(Color.white)
Spacer()

View File

@@ -59,7 +59,7 @@ struct UserProfileActivitySummaryView: View {
.multilineTextAlignment(.center)
Text(count)
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color.grayee)
}
Spacer()

View File

@@ -25,7 +25,7 @@ struct UserProfileContentView: View {
VStack(spacing: 21) {
HStack(spacing: 0) {
Text(userId == UserDefaults.int(forKey: .userId) ? "내 콘텐츠" : "콘텐츠")
.font(.custom(Font.preBold.rawValue, size: 26))
.appFont(size: 26, weight: .bold)
.foregroundColor(Color.white)
Spacer()
@@ -40,7 +40,7 @@ struct UserProfileContentView: View {
if userId == UserDefaults.int(forKey: .userId) {
Text("새로운 콘텐츠 등록하기")
.font(.custom(Font.bold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color.grayee)
.padding(.vertical, 17)
.frame(maxWidth: .infinity)
@@ -74,7 +74,7 @@ struct UserProfileContentView: View {
// ( % , , )
HStack {
Text(ownedContentCount > 0 ? "\(Int(round(Double(ownedContentCount) / Double(totalContentCount) * 100)))% 보유중" : "소장 중인 작품이 없어요!")
.font(.custom(Font.preBold.rawValue, size: 18))
.appFont(size: 18, weight: .bold)
.foregroundColor(.white)
Spacer()

View File

@@ -24,7 +24,7 @@ struct UserProfileDonationAllView: View {
Spacer()
Text("채널에 후원랭킹 활성화")
.font(.custom(Font.bold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Image(viewModel.isVisibleDonationRank ? "btn_toggle_on_big" : "btn_toggle_off_big")
@@ -50,13 +50,13 @@ struct UserProfileDonationAllView: View {
VStack(spacing: 13.3) {
HStack(spacing: 0) {
Text("오늘")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Spacer()
Text("\(viewModel.accumulatedCansToday.comma())")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Text("")
@@ -66,13 +66,13 @@ struct UserProfileDonationAllView: View {
HStack(spacing: 0) {
Text("지난주")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Spacer()
Text("\(viewModel.accumulatedCansLastWeek.comma())")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Text("")
@@ -82,13 +82,13 @@ struct UserProfileDonationAllView: View {
HStack(spacing: 0) {
Text("이번 달 어제까지")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Spacer()
Text("\(viewModel.accumulatedCansThisMonth.comma())")
.font(.custom(Font.bold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Text("")
@@ -218,7 +218,7 @@ struct UserProfileDonationAllItemView: View {
.frame(width: 63, height: 63)
Text("\(index + 1)")
.font(.custom(Font.bold.rawValue, size: 13.3))
.appFont(size: 13.3, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
.padding(.leading, 20)
.padding(.trailing, 13.3)

View File

@@ -24,7 +24,7 @@ struct UserProfileDonationView: View {
VStack(alignment: .leading, spacing: 14) {
HStack(spacing: 0) {
Text("후원랭킹")
.font(.custom(Font.preBold.rawValue, size: 26))
.appFont(size: 26, weight: .bold)
.foregroundColor(Color.white)
Spacer()

View File

@@ -14,7 +14,7 @@ struct UserProfileIntroduceView: View {
var body: some View {
VStack(alignment: .leading, spacing: 16.7) {
Text("채널 소개")
.font(.custom(Font.bold.rawValue, size: 16.7))
.appFont(size: 16.7, weight: .bold)
.foregroundColor(Color(hex: "eeeeee"))
Text(introduce)

View File

@@ -76,7 +76,7 @@ struct UserProfileLiveView: View {
VStack(alignment: .trailing, spacing: 8) {
if item.isActive && !item.channelName.isNullOrBlank() {
Text("ON\nAIR")
.font(.custom(Font.preBold.rawValue, size: 14))
.appFont(size: 14, weight: .bold)
.foregroundColor(Color.white)
.frame(width: 52, height: 52)
.background(Color(hex: "ff5c49"))
@@ -84,7 +84,7 @@ struct UserProfileLiveView: View {
} else {
VStack(spacing: 0) {
Text("\(dateDic["month"] ?? "")")
.font(.custom(Font.preBold.rawValue, size: 14))
.appFont(size: 14, weight: .bold)
.foregroundColor(.white)
.padding(.vertical, 6)
.frame(maxWidth: .infinity)
@@ -92,7 +92,7 @@ struct UserProfileLiveView: View {
.cornerRadius(16, corners: [.topLeft, .topRight])
Text("\(dateDic["day"] ?? "")")
.font(.custom(Font.preBold.rawValue, size: 14))
.appFont(size: 14, weight: .bold)
.foregroundColor(Color(hex: "263238"))
.padding(.vertical, 6)
.frame(maxWidth: .infinity)
@@ -103,7 +103,7 @@ struct UserProfileLiveView: View {
if item.isReservation {
Text("예약완료")
.font(.custom(Font.preBold.rawValue, size: 12))
.appFont(size: 12, weight: .bold)
.foregroundColor(Color.white)
.padding(4)
.frame(maxWidth: .infinity)

View File

@@ -43,7 +43,7 @@ struct UserProfileView: View {
VStack(alignment: .leading, spacing: 8) {
HStack(spacing: 8) {
Text(creatorProfile.creator.nickname)
.font(.custom(Font.preBold.rawValue, size: 32))
.appFont(size: 32, weight: .bold)
.foregroundColor(.white)
if creatorProfile.creator.creatorId != UserDefaults.int(forKey: .userId) {
@@ -65,7 +65,7 @@ struct UserProfileView: View {
if creatorProfile.creator.creatorId == UserDefaults.int(forKey: .userId) {
Text(I18n.MemberChannel.followersList)
.font(.custom(Font.preBold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color.black)
.padding(.vertical, 8)
.frame(maxWidth: .infinity)
@@ -189,7 +189,7 @@ struct UserProfileView: View {
VStack(alignment: .leading, spacing: 14) {
HStack(spacing: 0) {
Text(I18n.MemberChannel.liveHeader)
.font(.custom(Font.preBold.rawValue, size: 26))
.appFont(size: 26, weight: .bold)
.foregroundColor(Color.white)
Spacer()
@@ -198,7 +198,7 @@ struct UserProfileView: View {
if creatorProfile.creator.creatorId == UserDefaults.int(forKey: .userId) {
HStack(spacing: 8) {
Text(I18n.MemberChannel.rouletteSettings)
.font(.custom(Font.preBold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color.grayee)
.padding(.vertical, 12)
.frame(maxWidth: .infinity)
@@ -207,7 +207,7 @@ struct UserProfileView: View {
.onTapGesture { isShowRouletteSettings = true }
Text(I18n.MemberChannel.menuSettings)
.font(.custom(Font.preBold.rawValue, size: 16))
.appFont(size: 16, weight: .bold)
.foregroundColor(Color.grayee)
.padding(.vertical, 12)
.frame(maxWidth: .infinity)
@@ -259,7 +259,7 @@ struct UserProfileView: View {
VStack(alignment: .leading, spacing: 14) {
HStack(spacing: 0) {
Text(I18n.MemberChannel.communityHeader)
.font(.custom(Font.preBold.rawValue, size: 26))
.appFont(size: 26, weight: .bold)
.foregroundColor(Color.white)
.padding(.horizontal, 24)