diff --git a/AIProject/iCo/Core/Util/Font+Util.swift b/AIProject/iCo/Core/Util/Font+Util.swift index f61290fd..300be14f 100644 --- a/AIProject/iCo/Core/Util/Font+Util.swift +++ b/AIProject/iCo/Core/Util/Font+Util.swift @@ -133,6 +133,15 @@ extension Font { static var ico20H = Font.dynamic(size: 20, weight: .heavy) static var ico20Bl = Font.dynamic(size: 20, weight: .black) + // 21pt + static var ico21 = Font.dynamic(size: 21, weight: .regular) + static var ico21L = Font.dynamic(size: 21, weight: .light) + static var ico21M = Font.dynamic(size: 21, weight: .medium) + static var ico21Sb = Font.dynamic(size: 21, weight: .semibold) + static var ico21B = Font.dynamic(size: 21, weight: .bold) + static var ico21H = Font.dynamic(size: 21, weight: .heavy) + static var ico21Bl = Font.dynamic(size: 21, weight: .black) + // 24pt static var ico24 = Font.dynamic(size: 24, weight: .regular) static var ico24L = Font.dynamic(size: 24, weight: .light) diff --git a/AIProject/iCo/Features/Base/CommonPlaceholderView.swift b/AIProject/iCo/Features/Base/CommonPlaceholderView.swift index 801f2796..8bddd24f 100644 --- a/AIProject/iCo/Features/Base/CommonPlaceholderView.swift +++ b/AIProject/iCo/Features/Base/CommonPlaceholderView.swift @@ -35,7 +35,7 @@ struct CommonPlaceholderView: View { .padding(.bottom, 16) Text(text) - .font(.system(size: 14)) + .font(.ico14) .foregroundStyle(.iCoLabelSecondary) .lineSpacing(6) } diff --git a/AIProject/iCo/Features/Base/DefaultProgressView.swift b/AIProject/iCo/Features/Base/DefaultProgressView.swift index 48a8c49d..ff04f3f3 100644 --- a/AIProject/iCo/Features/Base/DefaultProgressView.swift +++ b/AIProject/iCo/Features/Base/DefaultProgressView.swift @@ -61,13 +61,13 @@ struct DefaultProgressView: View { .background(.iCoBackgroundAccent) case .failure: Image(systemName: "xmark.octagon") - .font(.system(size: 35)) + .font(.ico35) .foregroundStyle(.iCoNeutral) .padding(8) .background(.iCoBackgroundWhite) case .cancel: Image(systemName: "exclamationmark.octagon") - .font(.system(size: 35)) + .font(.ico35) .foregroundStyle(.iCoNeutral) .padding(8) .background(.iCoBackgroundWhite) @@ -81,7 +81,7 @@ struct DefaultProgressView: View { .padding(.bottom, 18) Text(message) - .font(.system(size: 14)) + .font(.ico14) .foregroundColor(.iCoLabel) .multilineTextAlignment(.center) .lineSpacing(4) diff --git a/AIProject/iCo/Features/Base/HeaderView.swift b/AIProject/iCo/Features/Base/HeaderView.swift index 75428e97..13123ad3 100644 --- a/AIProject/iCo/Features/Base/HeaderView.swift +++ b/AIProject/iCo/Features/Base/HeaderView.swift @@ -72,13 +72,13 @@ struct HeaderView: View { VStack(alignment: .leading, spacing: 4) { HStack(alignment: .center, spacing: 4) { Text(heading) - .font(.system(size: heading.count < 11 ? 21 : 18, weight: .black)) + .font(heading.count < 11 ? .ico21B : .ico18B) .foregroundStyle(.iCoLabel) .lineLimit(2) if showNewBadge { Text("N") - .font(.system(size: 12, weight: .heavy)) + .font(.ico12H) .foregroundStyle(.white) .padding(4) .background(Circle().foregroundStyle(.iCoAccent)) @@ -86,14 +86,14 @@ struct HeaderView: View { } Text(coin) - .font(.system(size: 14, weight: .bold)) + .font(.ico14B) .foregroundStyle(.iCoLabelSecondary) } } } else { HStack(alignment: .center, spacing: 8) { Text(heading) - .font(.system(size: 24, weight: .black)) + .font(.ico24B) .foregroundStyle(headingColor) .lineLimit(2) .multilineTextAlignment(showBackButton ? .center : .leading) diff --git a/AIProject/iCo/Features/Base/RoundedButton.swift b/AIProject/iCo/Features/Base/RoundedButton.swift index b56d850f..ee3bbe63 100644 --- a/AIProject/iCo/Features/Base/RoundedButton.swift +++ b/AIProject/iCo/Features/Base/RoundedButton.swift @@ -23,13 +23,13 @@ struct RoundedButton: View { HStack(spacing: 4) { if let title { Text(title) - .font(.system(size: 12, weight: .regular)) + .font(.ico12) .tint(foregroundColor ?? .iCoLabel) } if let imageName { Image(systemName: imageName) - .font(.system(size: 10)) + .font(.ico10) .tint(foregroundColor ?? .iCoLabel) } diff --git a/AIProject/iCo/Features/Base/RoundedRectangleButton.swift b/AIProject/iCo/Features/Base/RoundedRectangleButton.swift index 96ad83ec..61508301 100644 --- a/AIProject/iCo/Features/Base/RoundedRectangleButton.swift +++ b/AIProject/iCo/Features/Base/RoundedRectangleButton.swift @@ -38,7 +38,7 @@ struct RoundedRectangleButton: View { } Text(title) - .font(.system(size: 14, weight: .semibold)) + .font(.ico14Sb) .foregroundStyle(isActive ? .iCoAccent : .iCoLabel) } .padding(.horizontal, 14) diff --git a/AIProject/iCo/Features/Base/RoundedRectangleFillButton.swift b/AIProject/iCo/Features/Base/RoundedRectangleFillButton.swift index ca6fbc51..da38d3e2 100644 --- a/AIProject/iCo/Features/Base/RoundedRectangleFillButton.swift +++ b/AIProject/iCo/Features/Base/RoundedRectangleFillButton.swift @@ -54,7 +54,7 @@ struct RoundedRectangleFillButtonView: View { Text(title) .frame(height: 36) - .font(.system(size: 14, weight: !isHighlighted ? .regular : .medium)) + .font(!isHighlighted ? .ico14 : .ico14M) .tint(!isHighlighted ? .iCoLabel : .iCoAccent) } .padding(.horizontal, 14) diff --git a/AIProject/iCo/Features/Base/SegmentedControlView.swift b/AIProject/iCo/Features/Base/SegmentedControlView.swift index 06c36873..001eb533 100644 --- a/AIProject/iCo/Features/Base/SegmentedControlView.swift +++ b/AIProject/iCo/Features/Base/SegmentedControlView.swift @@ -36,7 +36,7 @@ struct SegmentedControlView: View { } } label: { Text(tabTitles[idx]) - .font(.system(size: 15, weight: selection == idx ? .bold : .regular)) + .font(selection == idx ? .ico15B : .ico15) .frame(maxWidth: .infinity) .padding(.horizontal, 14) .padding(.vertical, 8) diff --git a/AIProject/iCo/Features/Base/SortToggleButton.swift b/AIProject/iCo/Features/Base/SortToggleButton.swift index 4360eaca..07b74770 100644 --- a/AIProject/iCo/Features/Base/SortToggleButton.swift +++ b/AIProject/iCo/Features/Base/SortToggleButton.swift @@ -48,7 +48,7 @@ struct SortToggleButton: View { HStack { Text(title) - .font(.system(size: 11)) + .font(.ico11) .foregroundStyle(.iCoLabel) RoundedButton(imageName: sortOrder.iconName) { if currentCategory == sortCategory { diff --git a/AIProject/iCo/Features/Base/SubheaderView.swift b/AIProject/iCo/Features/Base/SubheaderView.swift index 3476829d..16d4ba7b 100644 --- a/AIProject/iCo/Features/Base/SubheaderView.swift +++ b/AIProject/iCo/Features/Base/SubheaderView.swift @@ -27,17 +27,17 @@ struct SubheaderView: View { HStack(spacing: 4) { if let imageName { Image(systemName: imageName) - .font(.system(size: 19)) + .font(.ico19) .foregroundStyle(imageColor) } Text(subheading) - .font(.system(size: 20, weight: .bold)) + .font(.ico20B) .foregroundStyle(fontColor) } if let description { Text(description) - .font(.system(size: 15)) + .font(.ico15) .foregroundStyle(fontColor) .lineSpacing(6) } diff --git a/AIProject/iCo/Features/Base/TimestampWithRefreshButtonView.swift b/AIProject/iCo/Features/Base/TimestampWithRefreshButtonView.swift index 111d06ae..35b0dc89 100644 --- a/AIProject/iCo/Features/Base/TimestampWithRefreshButtonView.swift +++ b/AIProject/iCo/Features/Base/TimestampWithRefreshButtonView.swift @@ -24,7 +24,7 @@ struct TimestampWithRefreshButtonView: View { Spacer() Text("\(formattedTime) 기준") - .font(.system(size: 11)) + .font(.ico11) .foregroundStyle(.iCoLabelSecondary) .contentTransition(.numericText(countsDown: true)) diff --git a/AIProject/iCo/Features/Dashboard/View/DashboardView.swift b/AIProject/iCo/Features/Dashboard/View/DashboardView.swift index ee4d41ef..20dab407 100644 --- a/AIProject/iCo/Features/Dashboard/View/DashboardView.swift +++ b/AIProject/iCo/Features/Dashboard/View/DashboardView.swift @@ -96,7 +96,7 @@ struct DashboardView: View { .background(.ultraThinMaterial) .overlay(alignment: .center) { Text("대시보드") - .font(.system(size: 18, weight: .black)) + .font(.ico18B) .foregroundStyle(.iCoLabel) .offset(y: -5) // 텍스트가 네비게이션바 중앙에 오도록 위치 조정하기 } diff --git a/AIProject/iCo/Features/Dashboard/View/RecommendCardView.swift b/AIProject/iCo/Features/Dashboard/View/RecommendCardView.swift index 4af30fd2..9c3d5a12 100644 --- a/AIProject/iCo/Features/Dashboard/View/RecommendCardView.swift +++ b/AIProject/iCo/Features/Dashboard/View/RecommendCardView.swift @@ -30,12 +30,12 @@ struct RecommendCardView: View { HStack(spacing: 10) { Text(recommendCoin.name) - .font(.system(size: 17)) + .font(.ico17) .bold() .foregroundStyle(.iCoLabel) Text(recommendCoin.id) - .font(.system(size: 12)) + .font(.ico12) .fontWeight(.semibold) .foregroundStyle(.iCoLabelSecondary) } @@ -43,11 +43,11 @@ struct RecommendCardView: View { HStack(spacing: 4) { Text("현재가") - .font(.system(size: 14)) + .font(.ico14) .foregroundStyle(.iCoLabel) Text(recommendCoin.tradePrice.formatKRW) - .font(.system(size: 14)) + .font(.ico14) .bold() .foregroundStyle(dynamicStatusColor(for: recommendCoin.changeType)) } @@ -55,14 +55,14 @@ struct RecommendCardView: View { HStack(spacing: 4) { Text("전일대비") - .font(.system(size: 14)) + .font(.ico14) .foregroundStyle(.iCoLabel) HStack(spacing: 0) { Group { Text("\(recommendCoin.changeType.code)\(recommendCoin.changeRate.formatRate)") } - .font(.system(size: 14)) + .font(.ico14) .bold() .foregroundStyle(dynamicStatusColor(for: recommendCoin.changeType)) } @@ -73,7 +73,7 @@ struct RecommendCardView: View { VStack { Text(recommendCoin.comment.byCharWrapping) - .font(.system(size: 14)) + .font(.ico14) .lineSpacing(6) .foregroundStyle(.iCoLabel) } @@ -107,6 +107,7 @@ struct RecommendCardView: View { changeType: .rise ) ) + .environmentObject(ThemeManager()) } diff --git a/AIProject/iCo/Features/MyPage/View/BookmarkBulkInsert/HeaderSection.swift b/AIProject/iCo/Features/MyPage/View/BookmarkBulkInsert/HeaderSection.swift index 056f0390..d8a592c2 100644 --- a/AIProject/iCo/Features/MyPage/View/BookmarkBulkInsert/HeaderSection.swift +++ b/AIProject/iCo/Features/MyPage/View/BookmarkBulkInsert/HeaderSection.swift @@ -11,14 +11,14 @@ struct HeaderSection: View { var body: some View { VStack(alignment: .leading, spacing: 6) { Text("코인 목록이 캡쳐된 스크린샷을 업로드하세요") - .font(.system(size: 18)) + .font(.ico18) .fontWeight(.medium) .multilineTextAlignment(.leading) .frame(maxWidth: .infinity, alignment: .leading) Text("아이코가 자동으로 북마크를 등록해드려요") .foregroundStyle(.iCoLabelSecondary) - .font(.system(size: 15)) + .font(.ico15) .frame(maxWidth: .infinity, alignment: .leading) } .padding(.horizontal, 16)