diff --git a/Alfie/AlfieKit/Package.swift b/Alfie/AlfieKit/Package.swift index 52a89a6d..3f13b6de 100644 --- a/Alfie/AlfieKit/Package.swift +++ b/Alfie/AlfieKit/Package.swift @@ -289,7 +289,6 @@ let package = Package( resources: [ .copy("Theme/Typography/Resources/SF-Pro-Display-Medium.otf"), .copy("Theme/Components/Loader/spin.gif"), - .process("Theme/Color/Colors.xcassets"), .process("Theme/Images/ThemedImages.xcassets"), .process("Theme/Toggle/ToggleColor.xcassets"), .process("Theme/Typography/Resources/Fonts.xcassets"), diff --git a/Alfie/AlfieKit/Sources/AppFeature/Navigation/RootTabView.swift b/Alfie/AlfieKit/Sources/AppFeature/Navigation/RootTabView.swift index 2a61a28e..563c6ffc 100644 --- a/Alfie/AlfieKit/Sources/AppFeature/Navigation/RootTabView.swift +++ b/Alfie/AlfieKit/Sources/AppFeature/Navigation/RootTabView.swift @@ -41,7 +41,7 @@ public struct RootTabView: View { } .toolbar(.hidden, for: .tabBar) } - .accentColor(Colors.primary.black) + .accentColor(Primitives.Colours.neutrals900) .padding(.bottom, Spacing.space150) if !viewModel.isOverlayVisible { diff --git a/Alfie/AlfieKit/Sources/AppFeature/UI/CustomTabBarView.swift b/Alfie/AlfieKit/Sources/AppFeature/UI/CustomTabBarView.swift index cfd57f44..435be6fc 100644 --- a/Alfie/AlfieKit/Sources/AppFeature/UI/CustomTabBarView.swift +++ b/Alfie/AlfieKit/Sources/AppFeature/UI/CustomTabBarView.swift @@ -35,7 +35,7 @@ struct CustomTabBarView: View { } } } - .background(Colors.primary.white) + .background(Primitives.Colours.neutrals0) .frame(width: UIScreen.main.bounds.width) } diff --git a/Alfie/AlfieKit/Sources/AppFeature/UI/TabBarItemView.swift b/Alfie/AlfieKit/Sources/AppFeature/UI/TabBarItemView.swift index 9dd150b2..27d34f81 100644 --- a/Alfie/AlfieKit/Sources/AppFeature/UI/TabBarItemView.swift +++ b/Alfie/AlfieKit/Sources/AppFeature/UI/TabBarItemView.swift @@ -26,7 +26,7 @@ struct TabBarItemView: View { var body: some View { VStack(spacing: Spacing.space100) { if tab == currentTab { - Colors.primary.mono900 + Primitives.Colours.neutrals800 .frame(height: Constants.lineHeight) .offset(y: Constants.offsetLineSelected) .matchedGeometryEffect(id: Constants.effectID, in: namespace) @@ -38,14 +38,14 @@ struct TabBarItemView: View { .resizable() .scaledToFit() .frame(size: Constants.iconSize) - .foregroundStyle(tab == currentTab ? Colors.primary.black : Colors.primary.mono300) + .foregroundStyle(tab == currentTab ? Primitives.Colours.neutrals900 : Primitives.Colours.neutrals400) .badgeView(badgeValue: $badgeValue) if tab == currentTab { Text.build(theme.font.small.bold(tab.title)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) } else { Text.build(theme.font.small.normal(tab.title)) - .foregroundStyle(Colors.primary.mono500) + .foregroundStyle(Primitives.Colours.neutrals500) } } .accessibilityElement() diff --git a/Alfie/AlfieKit/Sources/CategorySelector/UI/BrandsView.swift b/Alfie/AlfieKit/Sources/CategorySelector/UI/BrandsView.swift index 490104ab..30636bc4 100644 --- a/Alfie/AlfieKit/Sources/CategorySelector/UI/BrandsView.swift +++ b/Alfie/AlfieKit/Sources/CategorySelector/UI/BrandsView.swift @@ -126,7 +126,7 @@ struct BrandsView: View { private func brandItemView(_ brand: Brand) -> some View { BrandItemView( brand: brand, - foregroundColor: { Colors.primary.mono800 }, + foregroundColor: { Primitives.Colours.neutrals700 }, isLoading: .constant(false) ) .modifier( @@ -138,7 +138,7 @@ struct BrandsView: View { } private func placeholderItemView(_ placeholder: Brand) -> some View { - BrandItemView(brand: placeholder, foregroundColor: { Colors.primary.mono300 }, isLoading: .constant(true)) + BrandItemView(brand: placeholder, foregroundColor: { Primitives.Colours.neutrals400 }, isLoading: .constant(true)) } private func sectionIndexTitles(proxy: ScrollViewProxy) -> some View { @@ -192,12 +192,12 @@ extension BrandsView { HStack(alignment: .center, spacing: Spacing.space0) { Text(title) .font(Font(theme.font.paragraph.bold)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) .frame(maxWidth: .infinity, alignment: .leading) } .padding(.horizontal, Spacing.space200) .frame(height: Constants.headerViewHeight) - .background(Colors.primary.white) + .background(Primitives.Colours.neutrals0) } } @@ -298,11 +298,11 @@ extension BrandsView { var body: some View { Text(text) .font(Font(theme.font.tiny.normal)) - .foregroundStyle(isSelected ? Colors.primary.white : Colors.primary.mono500) + .foregroundStyle(isSelected ? Primitives.Colours.neutrals0 : Primitives.Colours.neutrals500) .frame(minWidth: Constants.sectionIndexSize, minHeight: Constants.sectionIndexSize) .background { RoundedRectangle(cornerRadius: CornerRadius.xxs) - .foregroundStyle(isSelected ? Colors.primary.mono900 : Color.clear) + .foregroundStyle(isSelected ? Primitives.Colours.neutrals800 : Color.clear) } } } diff --git a/Alfie/AlfieKit/Sources/CategorySelector/UI/CategoriesView.swift b/Alfie/AlfieKit/Sources/CategorySelector/UI/CategoriesView.swift index 95b154d2..d5c242c3 100644 --- a/Alfie/AlfieKit/Sources/CategorySelector/UI/CategoriesView.swift +++ b/Alfie/AlfieKit/Sources/CategorySelector/UI/CategoriesView.swift @@ -48,7 +48,7 @@ struct CategoriesView: View { // MARK: - Subviews private func categoryView(_ category: NavigationItem) -> some View { - categoriesListItem(for: category.title, isShimmering: false, foregroundColor: Colors.primary.mono800) + categoriesListItem(for: category.title, isShimmering: false, foregroundColor: Primitives.Colours.neutrals700) .modifier( TapHighlightableModifier { withAnimation(.standard) { @@ -59,7 +59,7 @@ struct CategoriesView: View { } private func placeholderView(_ category: NavigationItem) -> some View { - categoriesListItem(for: category.title, isShimmering: true, foregroundColor: Colors.primary.mono300) + categoriesListItem(for: category.title, isShimmering: true, foregroundColor: Primitives.Colours.neutrals400) } private var errorView: some View { diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Configuration/AppUpdateDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Configuration/AppUpdateDemoView.swift index 02a74092..416d7403 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Configuration/AppUpdateDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Configuration/AppUpdateDemoView.swift @@ -83,7 +83,7 @@ struct AppUpdateDemoView: View { VStack(alignment: .leading) { if isActive { Text.build(theme.font.small.bold("Prompt enabled")) - .foregroundStyle(Colors.secondary.red800) + .foregroundStyle(Primitives.Colours.semanticError700) .padding(.bottom, Spacing.space100) } @@ -106,13 +106,13 @@ struct AppUpdateDemoView: View { private func row(label: String, value: String?) -> some View { VStack(alignment: .leading) { Text.build(theme.font.paragraph.normal(label)) - .foregroundStyle(Colors.primary.mono500) + .foregroundStyle(Primitives.Colours.neutrals500) if let value { Text.build(theme.font.paragraph.bold(value)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) } else { Text.build(theme.font.paragraph.normal("Undefinied")) - .foregroundStyle(Colors.primary.mono300) + .foregroundStyle(Primitives.Colours.neutrals400) } } .padding(.bottom, Spacing.space025) diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/DeepLinking/DeepLinkDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/DeepLinking/DeepLinkDemoView.swift index 6e6c0bbb..42efee18 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/DeepLinking/DeepLinkDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/DeepLinking/DeepLinkDemoView.swift @@ -227,9 +227,9 @@ struct DeepLinkDemoView: View { HStack(spacing: Spacing.space050) { Text.build(theme.font.small.normal("URL:")) - .foregroundStyle(Colors.primary.mono400) + .foregroundStyle(Primitives.Colours.neutrals500) Text.build(theme.font.small.normal(webViewUrl.absoluteString)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) } } diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Buttons/ButtonDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Buttons/ButtonDemoView.swift index 054dab6c..49814144 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Buttons/ButtonDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Buttons/ButtonDemoView.swift @@ -74,7 +74,7 @@ struct ButtonDemoView: View { } } label: { Text.build(theme.font.small.normal(style.rawValue)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } @@ -95,7 +95,7 @@ struct ButtonDemoView: View { } } label: { Text.build(theme.font.small.normal(iconLeft.rawValue)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } .disabled(!showIconLeft) @@ -117,7 +117,7 @@ struct ButtonDemoView: View { } } label: { Text.build(theme.font.small.normal(iconRight.rawValue)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } .disabled(!showIconRight) diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/ColorBanner/ColorBannerDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/ColorBanner/ColorBannerDemoView.swift index ce0781e4..e3231929 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/ColorBanner/ColorBannerDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/ColorBanner/ColorBannerDemoView.swift @@ -6,7 +6,7 @@ struct ColorBannerDemoView: View { private static let selectedTitle: String = "Color:" private static let selectedImageTitle: String = "Pattern:" private static let items: [ColorSwatch] = [ - .init(id: "1", name: "Black", type: .color(Colors.primary.black)), + .init(id: "1", name: "Black", type: .color(.black)), .init(id: "2", name: "Gray", type: .color(.gray)), .init(id: "3", name: "Red", type: .color(.red), isDisabled: true), .init(id: "4", name: "Green", type: .color(.green)), @@ -18,7 +18,7 @@ struct ColorBannerDemoView: View { ] private static let itemsSmall: [ColorSwatch] = [ - .init(id: "1", name: "Black", type: .color(Colors.primary.black)), + .init(id: "1", name: "Black", type: .color(.black)), .init(id: "2", name: "Gray", type: .color(.gray)), .init(id: "3", name: "Red", type: .color(.red), isDisabled: true), .init(id: "4", name: "Green", type: .color(.green)), diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Colors/ColorsDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Colors/ColorsDemoView.swift index 709cee47..d7e65c25 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Colors/ColorsDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Colors/ColorsDemoView.swift @@ -24,21 +24,19 @@ struct ColorsDemoView: View { var primaryColorView: some View { VStack { paletteView(with: "B&W", colors: [ - Colors.primary.black, - Colors.primary.white, + Primitives.Colours.neutrals900, + Primitives.Colours.neutrals0, ]) paletteView(with: "Mono", colors: [ - Colors.primary.mono900, - Colors.primary.mono800, - Colors.primary.mono700, - Colors.primary.mono600, - Colors.primary.mono500, - Colors.primary.mono400, - Colors.primary.mono300, - Colors.primary.mono200, - Colors.primary.mono100, - Colors.primary.mono050, + Primitives.Colours.neutrals800, + Primitives.Colours.neutrals700, + Primitives.Colours.neutrals600, + Primitives.Colours.neutrals500, + Primitives.Colours.neutrals400, + Primitives.Colours.neutrals300, + Primitives.Colours.neutrals200, + Primitives.Colours.neutrals100, ]) } } @@ -46,60 +44,25 @@ struct ColorsDemoView: View { var secondaryColorView: some View { VStack { paletteView(with: "Green", colors: [ - Colors.secondary.green900, - Colors.secondary.green800, - Colors.secondary.green700, - Colors.secondary.green600, - Colors.secondary.green500, - Colors.secondary.green400, - Colors.secondary.green300, - Colors.secondary.green200, - Colors.secondary.green100, - Colors.secondary.green050, + Primitives.Colours.semanticSuccess800, + Primitives.Colours.semanticSuccess700, + Primitives.Colours.semanticSuccess600, + Primitives.Colours.semanticSuccess500, + Primitives.Colours.semanticSuccess400, + Primitives.Colours.semanticSuccess300, + Primitives.Colours.semanticSuccess200, + Primitives.Colours.semanticSuccess100, ]) paletteView(with: "Red", colors: [ - Colors.secondary.red900, - Colors.secondary.red800, - Colors.secondary.red700, - Colors.secondary.red600, - Colors.secondary.red500, - Colors.secondary.red400, - Colors.secondary.red300, - Colors.secondary.red200, - Colors.secondary.red100, - Colors.secondary.red050, - ]) - - paletteView(with: "Yellow", colors: [ - Colors.secondary.yellow500, - Colors.secondary.yellow400, - Colors.secondary.yellow300, - Colors.secondary.yellow200, - Colors.secondary.yellow100, - Colors.secondary.yellow050, - ]) - - paletteView(with: "Blue", colors: [ - Colors.secondary.blue900, - Colors.secondary.blue800, - Colors.secondary.blue700, - Colors.secondary.blue600, - Colors.secondary.blue500, - Colors.secondary.blue400, - Colors.secondary.blue300, - Colors.secondary.blue200, - Colors.secondary.blue100, - Colors.secondary.blue050, - ]) - - paletteView(with: "Orange", colors: [ - Colors.secondary.orange500, - Colors.secondary.orange400, - Colors.secondary.orange300, - Colors.secondary.orange200, - Colors.secondary.orange100, - Colors.secondary.orange050, + Primitives.Colours.semanticError800, + Primitives.Colours.semanticError700, + Primitives.Colours.semanticError600, + Primitives.Colours.semanticError500, + Primitives.Colours.semanticError400, + Primitives.Colours.semanticError300, + Primitives.Colours.semanticError200, + Primitives.Colours.semanticError100, ]) } } @@ -107,10 +70,10 @@ struct ColorsDemoView: View { func paletteView(with name: String, colors: [Color]) -> some View { VStack(alignment: .leading) { Text.build(theme.font.small.bold(name)) - .foregroundStyle(colors.first ?? Colors.primary.black) + .foregroundStyle(colors.first ?? Primitives.Colours.neutrals900) ScrollView(.horizontal) { HStack(spacing: Spacing.space0) { - ForEach(colors, id: \.self) { color in + ForEach(Array(colors.enumerated()), id: \.offset) { _, color in colorView(with: color) } } @@ -125,7 +88,7 @@ struct ColorsDemoView: View { .fill(color) .frame(width: 64, height: 64) Text.build(theme.font.tiny.normal(color.name ?? "-")) - .foregroundStyle(Colors.primary.mono400) + .foregroundStyle(Primitives.Colours.neutrals500) } } } diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Components/DatePickerDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Components/DatePickerDemoView.swift index 30f309ef..758da6c4 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Components/DatePickerDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Components/DatePickerDemoView.swift @@ -36,7 +36,7 @@ struct DatePickerDemoView: View { DatePicker("", selection: $dateSelection, displayedComponents: .date) .labelsHidden() .modifier(DatePickerModifier(type: datePickerType)) - .tint(Colors.primary.black) + .tint(Primitives.Colours.neutrals900) if datePickerType == .wheel { VStack(alignment: .leading) { @@ -47,7 +47,7 @@ struct DatePickerDemoView: View { DatePicker("", selection: $dateSelection, displayedComponents: .hourAndMinute) .labelsHidden() .modifier(DatePickerModifier(type: datePickerType)) - .tint(Colors.primary.black) + .tint(Primitives.Colours.neutrals900) } if datePickerType == .wheel { @@ -59,7 +59,7 @@ struct DatePickerDemoView: View { DatePicker("", selection: $dateAndHourSelection, displayedComponents: [.date, .hourAndMinute]) .labelsHidden() .modifier(DatePickerModifier(type: datePickerType)) - .tint(Colors.primary.black) + .tint(Primitives.Colours.neutrals900) .padding(.horizontal, Spacing.space200) } .padding(.horizontal, Spacing.space200) diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Components/ProgressBarDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Components/ProgressBarDemoView.swift index 052f2035..06c111d6 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Components/ProgressBarDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Components/ProgressBarDemoView.swift @@ -15,7 +15,7 @@ struct ProgressBarDemoView: View { HStack { ForEach(0..<40) { _ in Rectangle() - .foregroundStyle(Colors.primary.mono300) + .foregroundStyle(Primitives.Colours.neutrals400) .cornerRadius(CornerRadius.m) .frame(width: 120, height: 120) } diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Dividers/DividerDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Dividers/DividerDemoView.swift index b1744ee2..75cd84aa 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Dividers/DividerDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Dividers/DividerDemoView.swift @@ -10,22 +10,22 @@ struct DividerDemoView: View { Text.build(theme.font.paragraph.bold("Horizontal Thin")) VStack(spacing: Spacing.space0) { Rectangle() - .fill(Colors.primary.mono400) + .fill(Primitives.Colours.neutrals500) .frame(height: 20) ThemedDivider.horizontalThin Rectangle() - .fill(Colors.primary.mono400) + .fill(Primitives.Colours.neutrals500) .frame(height: 20) } .padding(.horizontal, -Spacing.space200) Text.build(theme.font.paragraph.bold("Horizontal Thick")) VStack(spacing: Spacing.space0) { Rectangle() - .fill(Colors.primary.mono400) + .fill(Primitives.Colours.neutrals500) .frame(height: 20) ThemedDivider.horizontalThick Rectangle() - .fill(Colors.primary.mono400) + .fill(Primitives.Colours.neutrals500) .frame(height: 20) } .padding(.horizontal, -Spacing.space200) @@ -33,12 +33,12 @@ struct DividerDemoView: View { HStack(spacing: Spacing.space0) { Spacer() Rectangle() - .fill(Colors.primary.mono400) + .fill(Primitives.Colours.neutrals500) .frame(width: 20, height: 80) ThemedDivider.verticalThin .frame(height: 80) Rectangle() - .fill(Colors.primary.mono400) + .fill(Primitives.Colours.neutrals500) .frame(width: 20, height: 80) Spacer() } @@ -46,12 +46,12 @@ struct DividerDemoView: View { HStack(spacing: Spacing.space0) { Spacer() Rectangle() - .fill(Colors.primary.mono400) + .fill(Primitives.Colours.neutrals500) .frame(width: 20, height: 80) ThemedDivider.verticalThick .frame(height: 80) Rectangle() - .fill(Colors.primary.mono400) + .fill(Primitives.Colours.neutrals500) .frame(width: 20, height: 80) Spacer() } diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Iconography/IconographyDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Iconography/IconographyDemoView.swift index af83b96f..5e31cc86 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Iconography/IconographyDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Iconography/IconographyDemoView.swift @@ -18,10 +18,10 @@ struct IconographyDemoView: View { .renderingMode(.template) .resizable() .scaledToFit() - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) .frame(width: 40, height: 40) Text.build(theme.font.tiny.normal(icon.literalName)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) .font(.caption2) } } diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Indicators/BadgeDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Indicators/BadgeDemoView.swift index b0998c6b..8296c930 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Indicators/BadgeDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Indicators/BadgeDemoView.swift @@ -133,7 +133,7 @@ struct BadgeDemoView: View { .fill(.black) Text.build(theme.font.small.bold(label)) .padding() - .foregroundStyle(Colors.primary.white) + .foregroundStyle(Primitives.Colours.neutrals0) } .frame(width: 110, height: 44) } diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Inputs/InputDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Inputs/InputDemoView.swift index 854254bf..e4360ce1 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Inputs/InputDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Inputs/InputDemoView.swift @@ -75,7 +75,7 @@ struct InputDemoView: View { } } label: { Text.build(theme.font.small.normal(icon.rawValue)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } .disabled(!hasIcon) diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Motion/MotionDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Motion/MotionDemoView.swift index bce6ccf4..38188e09 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Motion/MotionDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Motion/MotionDemoView.swift @@ -50,7 +50,7 @@ struct MotionDemoView: View { } } label: { Text.build(theme.font.small.normal(motionType.rawValue)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } @@ -69,17 +69,17 @@ struct MotionDemoView: View { Circle() .cornerRadius(10) .transition(circleTransition(from: .leading)) - .foregroundStyle(Colors.secondary.blue300) + .foregroundStyle(Primitives.Colours.neutrals300) Circle() .cornerRadius(10) .transition(circleTransition(from: .bottom)) - .foregroundStyle(Colors.secondary.blue500) + .foregroundStyle(Primitives.Colours.neutrals400) Circle() .cornerRadius(10) .transition(circleTransition(from: .trailing)) - .foregroundStyle(Colors.secondary.blue700) + .foregroundStyle(Primitives.Colours.neutrals500) } } .padding(Spacing.space200) diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/PageControl/PageControlCarouselDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/PageControl/PageControlCarouselDemoView.swift index 09d6b5d3..1c07a64c 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/PageControl/PageControlCarouselDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/PageControl/PageControlCarouselDemoView.swift @@ -4,28 +4,28 @@ import SwiftUI @available(iOS 17.0, *) struct PageControlCarouselDemoView: View { private let smallColors: [Color] = [ - Colors.primary.mono200, - Colors.primary.mono300, - Colors.primary.mono400, - Colors.primary.mono500, + Primitives.Colours.neutrals200, + Primitives.Colours.neutrals300, + Primitives.Colours.neutrals400, + Primitives.Colours.neutrals500, ] private let mediumColors: [Color] = [ - Colors.secondary.orange200, - Colors.secondary.orange300, - Colors.secondary.orange400, - Colors.secondary.orange500, + Primitives.Colours.semanticError200, + Primitives.Colours.semanticError300, + Primitives.Colours.semanticError400, + Primitives.Colours.semanticError500, ] private let largeColors: [Color] = [ - Colors.secondary.blue200, - Colors.secondary.blue300, - Colors.secondary.blue400, - Colors.secondary.blue500, + Primitives.Colours.neutrals600, + Primitives.Colours.neutrals700, + Primitives.Colours.neutrals800, + Primitives.Colours.neutrals900, ] private let customColors: [Color] = [ - Colors.secondary.green200, - Colors.secondary.green300, - Colors.secondary.green400, - Colors.secondary.green500, + Primitives.Colours.semanticSuccess200, + Primitives.Colours.semanticSuccess400, + Primitives.Colours.semanticSuccess500, + Primitives.Colours.semanticSuccess600, ] @State private var smallSelectedIndex: Int? = 0 diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Pricing/PriceComponentDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Pricing/PriceComponentDemoView.swift index 204b83f3..5a651bff 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Pricing/PriceComponentDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Pricing/PriceComponentDemoView.swift @@ -93,7 +93,7 @@ struct PriceComponentDemoView: View { } } label: { Text.build(theme.font.small.normal(priceSize.title)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } .padding(.top, Spacing.space200) @@ -112,7 +112,7 @@ struct PriceComponentDemoView: View { } } label: { Text.build(theme.font.small.normal(priceType.rawValue)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } .padding(.top, Spacing.space200) @@ -131,7 +131,7 @@ struct PriceComponentDemoView: View { } } label: { Text.build(theme.font.small.normal(priceDistribution.title)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } .padding(.top, Spacing.space200) @@ -150,7 +150,7 @@ struct PriceComponentDemoView: View { } } label: { Text.build(theme.font.small.normal(textAlignment.title)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } .padding(.top, Spacing.space200) @@ -169,7 +169,7 @@ struct PriceComponentDemoView: View { } } label: { Text.build(theme.font.small.normal(currencyCode)) - .tint(Colors.secondary.blue500) + .tint(Primitives.Colours.neutrals400) } } .padding(.top, Spacing.space200) diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/SearchBar/SearchBarDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/SearchBar/SearchBarDemoView.swift index a7dede80..76ff9c73 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/SearchBar/SearchBarDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/SearchBar/SearchBarDemoView.swift @@ -36,7 +36,7 @@ struct SearchBarDemoView: View { .multilineTextAlignment(.center) .padding(.horizontal, 10) } - .background(Colors.primary.white) + .background(Primitives.Colours.neutrals0) .cornerRadius(10) } } @@ -59,7 +59,7 @@ struct SearchBarDemoView: View { } } .frame(maxWidth: .infinity, maxHeight: .infinity) - .background(Colors.primary.white) + .background(Primitives.Colours.neutrals0) } ) .animation(.standard, value: searchBarTheme) diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Segments/SegmentsDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Segments/SegmentsDemoView.swift index bce5c280..c5324838 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Segments/SegmentsDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Segments/SegmentsDemoView.swift @@ -151,11 +151,11 @@ struct SegmentsDemoView: View { // swiftlint:disable vertical_whitespace_between_cases switch segment.object as? CategoryPages { case .categories: - segmentContentView(title: "Categories", color: Colors.secondary.green300) + segmentContentView(title: "Categories", color: Primitives.Colours.semanticSuccess400) case .brands: - segmentContentView(title: "Brands", color: Colors.secondary.blue300) + segmentContentView(title: "Brands", color: Primitives.Colours.neutrals300) case .services: - segmentContentView(title: "Services", color: Colors.secondary.red300) + segmentContentView(title: "Services", color: Primitives.Colours.semanticError300) case .none: EmptyView() } diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Shadow/ShadowDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Shadow/ShadowDemoView.swift index 841c93ea..576e7d91 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Shadow/ShadowDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Shadow/ShadowDemoView.swift @@ -56,12 +56,12 @@ struct ShadowDemoView: View { private func shadowView(label: String, type: ShadowViewModifier.ShadowType) -> some View { VStack { Rectangle() - .fill(Colors.primary.white) + .fill(Primitives.Colours.neutrals0) .frame(width: 50, height: 50) .cornerRadius(CornerRadius.s) .shadow(type) Text.build(theme.font.small.normal(label)) - .foregroundStyle(Colors.primary.mono400) + .foregroundStyle(Primitives.Colours.neutrals500) } } } diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Snackbars/SnackbarDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Snackbars/SnackbarDemoView.swift index d0a0b68c..4e503504 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Snackbars/SnackbarDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Snackbars/SnackbarDemoView.swift @@ -71,7 +71,7 @@ struct SnackbarDemoView: View { .fill(.black) Text.build(theme.font.paragraph.bold(label)) .padding() - .foregroundStyle(Colors.primary.white) + .foregroundStyle(Primitives.Colours.neutrals0) } .frame(width: 180, height: 36) } diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/TabControl/TabControlFixedWidthDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/TabControl/TabControlFixedWidthDemoView.swift index 07bfd4a2..143b12af 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/TabControl/TabControlFixedWidthDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/TabControl/TabControlFixedWidthDemoView.swift @@ -26,7 +26,7 @@ struct TabControlFixedWidthDemoView: View { TabView(selection: $currentIndex) { ForEach(Array(currentOptions.enumerated()), id: \.0) { _, value in RoundedRectangle(cornerRadius: 25) - .fill(Colors.primary.mono300) + .fill(Primitives.Colours.neutrals400) .overlay { Text.build(theme.font.paragraph.bold(value)) .foregroundStyle(.white) diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/TabControl/TabControlIntrinsicWidthDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/TabControl/TabControlIntrinsicWidthDemoView.swift index b7661134..bdd3f373 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/TabControl/TabControlIntrinsicWidthDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/TabControl/TabControlIntrinsicWidthDemoView.swift @@ -29,7 +29,7 @@ struct TabControlIntrinsicWidthDemoView: View { TabView(selection: $currentIndex) { ForEach(Array(currentOptions.enumerated()), id: \.0) { _, value in RoundedRectangle(cornerRadius: 25) - .fill(Colors.primary.mono300) + .fill(Primitives.Colours.neutrals400) .overlay { Text.build(theme.font.paragraph.bold(value)) .foregroundStyle(.white) diff --git a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Toolbar/ToolbarDemoView.swift b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Toolbar/ToolbarDemoView.swift index 937ca2a5..7b505c78 100644 --- a/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Toolbar/ToolbarDemoView.swift +++ b/Alfie/AlfieKit/Sources/DebugMenu/UI/Demo/Toolbar/ToolbarDemoView.swift @@ -120,14 +120,14 @@ struct ToolbarDemoView: View { if leftAlign { ThemedToolbarTitle( style: .leftText("Alfie"), - tint: !darkMode ? Colors.primary.mono900 : Colors.primary.white + tint: !darkMode ? Primitives.Colours.neutrals800 : Primitives.Colours.neutrals0 ) } else { if let mode = leftMode, mode.isMulti { ThemedToolbarButton( icon: mode.isIcon && mode != .multiMixed ? .store : nil, text: mode == .multiMixed ? "Shop" : nil, - tint: darkMode ? Colors.primary.white : Colors.primary.mono900 + tint: darkMode ? Primitives.Colours.neutrals0 : Primitives.Colours.neutrals800 ) {} } } @@ -141,7 +141,7 @@ struct ToolbarDemoView: View { } else { ThemedToolbarTitle( style: showLogo ? .logo : .text("Alfie"), - tint: darkMode ? Colors.primary.white : Colors.primary.mono900 + tint: darkMode ? Primitives.Colours.neutrals0 : Primitives.Colours.neutrals800 ) } } @@ -153,14 +153,14 @@ struct ToolbarDemoView: View { ThemedToolbarButton( icon: mode.isIcon ? .bag : nil, text: mode.isText ? "Bag" : nil, - tint: darkMode ? Colors.primary.white : Colors.primary.mono900 + tint: darkMode ? Primitives.Colours.neutrals0 : Primitives.Colours.neutrals800 ) {} if mode.isMulti { ThemedToolbarButton( icon: mode.isIcon && mode != .multiMixed ? .chat : nil, text: mode.isText || mode == .multiMixed ? "Chat" : nil, - tint: darkMode ? Colors.primary.white : Colors.primary.mono900 + tint: darkMode ? Primitives.Colours.neutrals0 : Primitives.Colours.neutrals800 ) {} } } diff --git a/Alfie/AlfieKit/Sources/ProductDetails/UI/ProductDetailsColorAndSizeSheet.swift b/Alfie/AlfieKit/Sources/ProductDetails/UI/ProductDetailsColorAndSizeSheet.swift index aaf2b376..4aedcb7b 100644 --- a/Alfie/AlfieKit/Sources/ProductDetails/UI/ProductDetailsColorAndSizeSheet.swift +++ b/Alfie/AlfieKit/Sources/ProductDetails/UI/ProductDetailsColorAndSizeSheet.swift @@ -45,7 +45,7 @@ struct ProductDetailsColorAndSizeSheet 0 } diff --git a/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingFilter.swift b/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingFilter.swift index 25a4e5d4..2ebe5249 100644 --- a/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingFilter.swift +++ b/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingFilter.swift @@ -51,7 +51,7 @@ struct ProductListingFilter: View { isVisible.toggle() }, label: { Icon.close.image - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) }) Spacer() ThemedToolbarTitle(style: .text(L10n.Plp.RefineAndSort.title)) @@ -72,7 +72,7 @@ struct ProductListingFilter: View { HStack { Text(L10n.Plp.ListStyle.Option.title) .font(Constants.listStyleFont) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) Spacer() ProductListingListStyleSelector(selectedStyle: $listStyle) } diff --git a/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingFilterBar.swift b/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingFilterBar.swift index 285507ea..59428787 100644 --- a/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingFilterBar.swift +++ b/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingFilterBar.swift @@ -55,12 +55,12 @@ struct ProductListingFilterBar: View { .resizable() .scaledToFit() .frame(size: Constants.filterIcon) - .tint(Colors.primary.mono900) + .tint(Primitives.Colours.neutrals800) Text .build( theme.font.paragraph.normal(L10n.Plp.Refine.Button.cta) ) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) } } .buttonStyle(.plain) @@ -69,7 +69,7 @@ struct ProductListingFilterBar: View { private var resultInfoView: some View { Text.build(theme.font.tiny.normal(L10n.Plp.NumberOfResults.message(total))) - .foregroundStyle(Colors.primary.mono500) + .foregroundStyle(Primitives.Colours.neutrals500) .accessibilityIdentifier(AccessibilityID.ProductListing.resultsLabel) } diff --git a/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingListStyleSelector.swift b/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingListStyleSelector.swift index 76a9c2d8..4a7b6bba 100644 --- a/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingListStyleSelector.swift +++ b/Alfie/AlfieKit/Sources/ProductListing/UI/ProductListingListStyleSelector.swift @@ -21,7 +21,7 @@ struct ProductListingListStyleSelector: View { .scaledToFit() .frame(width: Constants.filterIcon, height: Constants.filterIcon) .foregroundStyle( - selectedStyle == .grid ? Colors.primary.mono900 : Colors.primary.mono200 + selectedStyle == .grid ? Primitives.Colours.neutrals800 : Primitives.Colours.neutrals200 ) } .buttonStyle(.plain) @@ -35,7 +35,7 @@ struct ProductListingListStyleSelector: View { .scaledToFit() .frame(width: Constants.filterIcon, height: Constants.filterIcon) .foregroundStyle( - selectedStyle == .list ? Colors.primary.mono900 : Colors.primary.mono200 + selectedStyle == .list ? Primitives.Colours.neutrals800 : Primitives.Colours.neutrals200 ) } .buttonStyle(.plain) diff --git a/Alfie/AlfieKit/Sources/Search/UI/RecentSearchesView.swift b/Alfie/AlfieKit/Sources/Search/UI/RecentSearchesView.swift index c99be6b0..633e2a3d 100644 --- a/Alfie/AlfieKit/Sources/Search/UI/RecentSearchesView.swift +++ b/Alfie/AlfieKit/Sources/Search/UI/RecentSearchesView.swift @@ -46,7 +46,7 @@ struct RecentSearchesView: View { VStack { HStack { Text.build(theme.font.paragraph.normal(recentSearch.value)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) .lineLimit(1) Spacer() recentSearchRemoveButton(for: recentSearch) @@ -69,7 +69,7 @@ struct RecentSearchesView: View { .resizable() .scaledToFit() .frame(width: Spacing.space200, height: Spacing.space200) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) }) .accessibilityIdentifier(AccessibilityId.removeRecentSearchButton) } @@ -81,7 +81,7 @@ struct RecentSearchesView: View { } }, label: { Text.build(theme.font.small.boldUnderline(L10n.Search.Screen.RecentSearches.ClearAll.Button.cta)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) }) .accessibilityIdentifier(AccessibilityId.clearRecentSearchesButton) } diff --git a/Alfie/AlfieKit/Sources/Search/UI/SearchView.swift b/Alfie/AlfieKit/Sources/Search/UI/SearchView.swift index 630c34a1..31e1d1e3 100644 --- a/Alfie/AlfieKit/Sources/Search/UI/SearchView.swift +++ b/Alfie/AlfieKit/Sources/Search/UI/SearchView.swift @@ -33,14 +33,14 @@ public struct SearchView: View { pullToSearchConfig: .disabled, theme: .softLarge, dismissConfiguration: .init(type: .back), - contentOverlayColorWhenFocused: Colors.primary.white, + contentOverlayColorWhenFocused: Primitives.Colours.neutrals0, showDivider: true, autoFocus: true, transition: transition, onCancel: { onCancel() }, onSubmit: { _ in onSubmit() } ) - .background(Colors.primary.white) + .background(Primitives.Colours.neutrals0) } } @@ -61,9 +61,9 @@ extension SearchView { Spacer() imageForIcon(Icon.search) Text.build(theme.font.paragraph.bold(L10n.Search.Screen.EmptyView.title)) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) Text.build(theme.font.small.normal(L10n.Search.Screen.EmptyView.message)) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) Spacer() } .accessibilityElement(children: .combine) @@ -78,7 +78,7 @@ extension SearchView { icon.image .renderingMode(.template) .resizable() - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) .scaledToFit() .frame(width: Constants.iconSize, height: Constants.iconSize) } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ProductCarousel/ProductCarouselHeader.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ProductCarousel/ProductCarouselHeader.swift index e0ee4a59..b2715eef 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ProductCarousel/ProductCarouselHeader.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ProductCarousel/ProductCarouselHeader.swift @@ -26,11 +26,11 @@ public struct ProductCarouselHeader: View { VStack(alignment: .leading, spacing: Spacing.space050) { if let title { Text.build(theme.font.paragraph.bold(title)) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) } if let subtitle { Text.build(theme.font.paragraph.normal(subtitle)) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ProgressableHorizontalScrollView.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ProgressableHorizontalScrollView.swift index ac4ea572..9f26b690 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ProgressableHorizontalScrollView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ProgressableHorizontalScrollView.swift @@ -100,7 +100,7 @@ public struct ProgressableHorizontalScrollView: View { HStack { ForEach(1...3, id: \.self) { index in Rectangle() - .foregroundStyle(Colors.primary.mono300) + .foregroundStyle(Primitives.Colours.neutrals400) .cornerRadius(CornerRadius.m) .frame(width: 110, height: 300) .overlay { @@ -119,7 +119,7 @@ public struct ProgressableHorizontalScrollView: View { HStack { ForEach(1...10, id: \.self) { index in Rectangle() - .foregroundStyle(Colors.primary.mono300) + .foregroundStyle(Primitives.Colours.neutrals400) .cornerRadius(CornerRadius.m) .frame(width: 200, height: 300) .overlay { diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ZoomableCarousel/ZoomableCarousel.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ZoomableCarousel/ZoomableCarousel.swift index b6070c79..81a71cc7 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ZoomableCarousel/ZoomableCarousel.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Carousel/ZoomableCarousel/ZoomableCarousel.swift @@ -43,8 +43,8 @@ public struct ZoomableCarousel: View { .scaledToFit() .frame(width: Constants.closeIconSize, height: Constants.closeIconSize) .padding(Spacing.space050) - .foregroundStyle(Colors.primary.mono900) - .background(Colors.primary.white.opacity(Constants.closeIconBackgroundOpacity)) + .foregroundStyle(Primitives.Colours.neutrals800) + .background(Primitives.Colours.neutrals0.opacity(Constants.closeIconBackgroundOpacity)) .clipShape(Circle()) }) .frame(maxWidth: .infinity, alignment: .leading) @@ -62,7 +62,7 @@ public struct ZoomableCarousel: View { slideSubject: slideSubject ) .padding(Spacing.space200) - .background(Colors.primary.white.opacity(Constants.backgroundOpacity)) + .background(Primitives.Colours.neutrals0.opacity(Constants.backgroundOpacity)) .cornerRadius(CornerRadius.s) } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Chips/Chip.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Chips/Chip.swift index b210dc52..3e88620d 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Chips/Chip.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Chips/Chip.swift @@ -96,27 +96,27 @@ public struct Chip: View { private var borderColor: Color { if configuration.isDisabled { - return Colors.primary.mono100 + return Primitives.Colours.neutrals100 } else if configuration.isSelected { - return Colors.primary.mono900 + return Primitives.Colours.neutrals800 } else { - return Colors.primary.mono200 + return Primitives.Colours.neutrals200 } } private var textColor: Color { if configuration.isDisabled { - return Colors.primary.mono300 + return Primitives.Colours.neutrals400 } else { - return Colors.primary.mono700 + return Primitives.Colours.neutrals600 } } private var backgroundColor: Color { if configuration.isDisabled { - return Colors.primary.mono050 + return Primitives.Colours.neutrals100 } else { - return Colors.primary.white + return Primitives.Colours.neutrals0 } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Dividers/ThemedDivider.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Dividers/ThemedDivider.swift index 940f2b16..fab6c889 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Dividers/ThemedDivider.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Dividers/ThemedDivider.swift @@ -31,21 +31,21 @@ public struct ThemedDivider: View { configuration: .init( orientation: .horizontal, thickness: Constants.thinThickness, - color: Colors.primary.mono100 + color: Primitives.Colours.neutrals100 ) ) public static var verticalThin = ThemedDivider( - configuration: .init(orientation: .vertical, thickness: Constants.thinThickness, color: Colors.primary.mono100) + configuration: .init(orientation: .vertical, thickness: Constants.thinThickness, color: Primitives.Colours.neutrals100) ) public static var horizontalThick = ThemedDivider( configuration: .init( orientation: .horizontal, thickness: Constants.thickThickness, - color: Colors.primary.mono100 + color: Primitives.Colours.neutrals100 ) ) public static var verticalThick = ThemedDivider( - configuration: .init(orientation: .vertical, thickness: Constants.thickThickness, color: Colors.primary.mono100) + configuration: .init(orientation: .vertical, thickness: Constants.thickThickness, color: Primitives.Colours.neutrals100) ) private let configuration: ThemedDividerConfiguration @@ -86,11 +86,11 @@ public struct ThemedDivider: View { Spacer() HStack { ThemedDivider( - configuration: .init(orientation: .horizontal, thickness: 5.0, color: Colors.secondary.orange400) + configuration: .init(orientation: .horizontal, thickness: 5.0, color: Primitives.Colours.semanticError400) ) Spacer() ThemedDivider( - configuration: .init(orientation: .vertical, thickness: 5.0, color: Colors.secondary.orange400) + configuration: .init(orientation: .vertical, thickness: 5.0, color: Primitives.Colours.semanticError400) ) } .frame(height: 50) diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/ErrorView/ErrorView.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/ErrorView/ErrorView.swift index bbce3ee5..112ee4b1 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/ErrorView/ErrorView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/ErrorView/ErrorView.swift @@ -40,12 +40,12 @@ public struct ErrorView: View { public init( spacing: CGFloat = Spacing.space200, icon: Image? = Icon.warning.image, - iconColor: Color = Colors.primary.black, + iconColor: Color = Primitives.Colours.neutrals900, iconSize: CGFloat = Constants.iconSize, title: AttributedString? = nil, - titleColor: Color = Colors.primary.black, + titleColor: Color = Primitives.Colours.neutrals900, message: AttributedString? = nil, - messageColor: Color = Colors.primary.black, + messageColor: Color = Primitives.Colours.neutrals900, buttons: [ButtonConfiguration] = [] ) { self.spacing = spacing @@ -62,12 +62,12 @@ public struct ErrorView: View { public init( spacing: CGFloat = Spacing.space200, icon: Image? = Icon.warning.image, - iconColor: Color = Colors.primary.black, + iconColor: Color = Primitives.Colours.neutrals900, iconSize: CGFloat = Constants.iconSize, title: String? = nil, - titleColor: Color = Colors.primary.black, + titleColor: Color = Primitives.Colours.neutrals900, message: String? = nil, - messageColor: Color = Colors.primary.black, + messageColor: Color = Primitives.Colours.neutrals900, buttons: [ButtonConfiguration] = [] ) { self.init( @@ -98,12 +98,12 @@ public struct ErrorView: View { if let title { Text.build(title) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) } if let message { Text.build(message) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) } VStack(spacing: Spacing.space100) { diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/BadgeTabViewModifier.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/BadgeTabViewModifier.swift index 706fd499..8699aa4c 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/BadgeTabViewModifier.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/BadgeTabViewModifier.swift @@ -17,12 +17,12 @@ public struct BadgeTabViewModifier: ViewModifier { } private func setAppearance() { - UITabBarItem.appearance().badgeColor = Colors.secondary.red700.ui + UITabBarItem.appearance().badgeColor = Primitives.Colours.semanticError600.ui let font = theme.font.tiny.normal let attributes: [NSAttributedString.Key: Any] = [ .font: font, - .foregroundColor: Colors.primary.white.ui, + .foregroundColor: Primitives.Colours.neutrals0.ui, ] UITabBarItem.appearance().setBadgeTextAttributes(attributes, for: .normal) UITabBarItem.appearance().setBadgeTextAttributes(attributes, for: .selected) diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/BadgeViewModifier.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/BadgeViewModifier.swift index befb461d..676acb6a 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/BadgeViewModifier.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/BadgeViewModifier.swift @@ -34,13 +34,13 @@ public struct BadgeViewModifier: ViewModifier { let badgeLabelsOffsetX = CGFloat(helper.badgeLabel.count * Constants.capsuleOffsetXFactor) ZStack(alignment: .center) { RoundedRectangle(cornerRadius: CornerRadius.full) - .fill(Colors.secondary.red700) + .fill(Primitives.Colours.semanticError600) .frame(height: Constants.badgeHeight) RoundedRectangle(cornerRadius: CornerRadius.full) - .stroke(Colors.primary.white, lineWidth: Constants.borderLineWidth) + .stroke(Primitives.Colours.neutrals0, lineWidth: Constants.borderLineWidth) .frame(height: Constants.badgeHeight) Text.build(theme.font.tiny.normal(helper.badgeLabel)) - .foregroundStyle(Colors.primary.white) + .foregroundStyle(Primitives.Colours.neutrals0) .padding(.all, Constants.textPadding) } .frame(height: Constants.badgeHeight) @@ -50,10 +50,10 @@ public struct BadgeViewModifier: ViewModifier { } else { ZStack(alignment: .center) { Circle() - .fill(Colors.secondary.red700) + .fill(Primitives.Colours.semanticError600) .frame(width: Constants.indicatorWidth, height: Constants.indicatorHeight) RoundedRectangle(cornerRadius: CornerRadius.full) - .stroke(Colors.primary.white, lineWidth: Constants.borderLineWidth) + .stroke(Primitives.Colours.neutrals0, lineWidth: Constants.borderLineWidth) .frame(width: Constants.indicatorWidth, height: Constants.indicatorHeight) } .offset(x: (Constants.indicatorWidth / 2), y: -((Constants.indicatorHeight / 2))) diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/PaginatedControlConfiguration.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/PaginatedControlConfiguration.swift index 761d914e..3e2e4fd8 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/PaginatedControlConfiguration.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/PaginatedControlConfiguration.swift @@ -8,9 +8,9 @@ public struct PaginatedControlConfiguration { let infiniteScrollingEnabled: Bool public init( - backgroundColor: Color = Colors.primary.white, - tintColor: Color = Colors.primary.mono900, - textColor: Color = Colors.primary.mono900, + backgroundColor: Color = Primitives.Colours.neutrals0, + tintColor: Color = Primitives.Colours.neutrals800, + textColor: Color = Primitives.Colours.neutrals800, pageSeparator: String = "/", infiniteScrollingEnabled: Bool = true ) { diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/ThemedPageControlConfiguration.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/ThemedPageControlConfiguration.swift index 0afb632e..b08e7e6c 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/ThemedPageControlConfiguration.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Indicators/ThemedPageControlConfiguration.swift @@ -8,8 +8,8 @@ public struct ThemedPageControlConfiguration { public let spacing: CGFloat public init( - color: Color = Colors.primary.mono200, - selectedColor: Color = Colors.primary.mono600, + color: Color = Primitives.Colours.neutrals200, + selectedColor: Color = Primitives.Colours.neutrals600, animationDuration: CGFloat = 0.3, size: CGFloat = 10, spacing: CGFloat = 0 diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Price/PriceComponentView.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Price/PriceComponentView.swift index dcb1507f..6ed28ff3 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Price/PriceComponentView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Price/PriceComponentView.swift @@ -120,7 +120,7 @@ public struct PriceComponentView: View { private func defaultPrice(_ price: String, textSize: CGFloat) -> some View { priceText(price, textSize: textSize) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) } // MARK: - Sale @@ -156,14 +156,14 @@ public struct PriceComponentView: View { private func saleFullPrice(_ price: String) -> some View { Text(price) .font(Font(theme.font.paragraph.normal.withSize(Constants.saleFullPriceTextSize(for: configuration.size)))) - .foregroundStyle(Colors.primary.mono600) + .foregroundStyle(Primitives.Colours.neutrals600) .strikethrough() .accessibilityIdentifier(AccessibilityId.priceHigher) } private func saleFinalPrice(_ price: String) -> some View { priceText(price, textSize: Constants.saleFinalPriceTextSize(for: configuration.size)) - .foregroundStyle(Colors.secondary.red800) + .foregroundStyle(Primitives.Colours.semanticError700) .accessibilityIdentifier(AccessibilityId.priceLower) } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/ProductCards/HorizontalProductCard.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/ProductCards/HorizontalProductCard.swift index 4f605418..0a8f3719 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/ProductCards/HorizontalProductCard.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/ProductCards/HorizontalProductCard.swift @@ -40,8 +40,8 @@ public struct HorizontalProductCard: View { .resizable() .scaledToFit() }, - placeholder: { Colors.primary.mono050 }, - failure: { _ in Colors.primary.mono050 } + placeholder: { Primitives.Colours.neutrals100 }, + failure: { _ in Primitives.Colours.neutrals100 } ) } .frame(width: Constants.productImageWidth, height: Constants.productImageHeight) @@ -56,7 +56,7 @@ public struct HorizontalProductCard: View { private var productNameView: some View { Text.build(theme.font.small.normal(viewModel.name)) .lineLimit(Constants.productNameLineLimit) - .foregroundStyle(Colors.primary.mono500) + .foregroundStyle(Primitives.Colours.neutrals500) .accessibilityIdentifier(AccessibilityId.productName) } @@ -64,11 +64,11 @@ public struct HorizontalProductCard: View { HStack(spacing: Spacing.space100) { if let colorTitle = viewModel.colorTitle { Text.build(theme.font.tiny.normal(colorTitle)) - .foregroundStyle(Colors.primary.mono500) + .foregroundStyle(Primitives.Colours.neutrals500) } if let color = viewModel.color { Text.build(theme.font.tiny.normal(color)) - .foregroundStyle(Colors.primary.mono700) + .foregroundStyle(Primitives.Colours.neutrals600) } } .lineLimit(Constants.productColorLineLimit) @@ -80,11 +80,11 @@ public struct HorizontalProductCard: View { HStack(spacing: Spacing.space100) { if let sizeTitle = viewModel.sizeTitle { Text.build(theme.font.tiny.normal(sizeTitle)) - .foregroundStyle(Colors.primary.mono500) + .foregroundStyle(Primitives.Colours.neutrals500) } if let size = viewModel.size { Text.build(theme.font.tiny.normal(size)) - .foregroundStyle(Colors.primary.mono700) + .foregroundStyle(Primitives.Colours.neutrals600) } } .lineLimit(Constants.productSizeLineLimit) diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/ProductCards/VerticalProductCard.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/ProductCards/VerticalProductCard.swift index 7b18af14..b6db23d1 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/ProductCards/VerticalProductCard.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/ProductCards/VerticalProductCard.swift @@ -74,8 +74,8 @@ public struct VerticalProductCard: View { .resizable() .aspectRatio(Constants.imageAspectRatio, contentMode: .fit) }, - placeholder: { Colors.primary.mono050 }, - failure: { _ in Colors.primary.mono050 } + placeholder: { Primitives.Colours.neutrals100 }, + failure: { _ in Primitives.Colours.neutrals100 } ) .aspectRatio(Constants.imageAspectRatio, contentMode: .fill) } @@ -83,7 +83,7 @@ public struct VerticalProductCard: View { private var productDesignerView: some View { Text(viewModel.designer) .font(Font(viewModel.configuration.textFont)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) .lineLimit(Constants.productDesignerLineLimit) .shimmeringMultiline( while: $isSkeleton, @@ -96,7 +96,7 @@ public struct VerticalProductCard: View { @ViewBuilder private var productNameView: some View { Text(viewModel.name) .font(Font(viewModel.configuration.textFont)) - .foregroundStyle(Colors.primary.mono500) + .foregroundStyle(Primitives.Colours.neutrals500) .frame( height: (viewModel.configuration.textFont.lineHeight * CGFloat(Constants.productNameLineLimit)), alignment: .top @@ -115,12 +115,12 @@ public struct VerticalProductCard: View { if let colorTitle = viewModel.colorTitle { Text(colorTitle) .font(Font(viewModel.configuration.smallTextFont)) - .foregroundStyle(Colors.primary.mono500) + .foregroundStyle(Primitives.Colours.neutrals500) } if let color = viewModel.color { Text(color) .font(Font(viewModel.configuration.smallTextFont)) - .foregroundStyle(Colors.primary.mono700) + .foregroundStyle(Primitives.Colours.neutrals600) } } .lineLimit(Constants.productColorLineLimit) @@ -178,7 +178,7 @@ public struct VerticalProductCard: View { .resizable() .scaledToFit() .frame(width: iconSize, height: iconSize) - .foregroundStyle(Colors.primary.black, Colors.primary.white) + .foregroundStyle(Primitives.Colours.neutrals900, Primitives.Colours.neutrals0) }) .padding([.top, .trailing], topTrailingEdgePadding) .accessibilityIdentifier(actionViewAccessibilityIdentifier) diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Snackbar/SnackbarView.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Snackbar/SnackbarView.swift index 852a5b9f..2d82866e 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Snackbar/SnackbarView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Snackbar/SnackbarView.swift @@ -134,26 +134,26 @@ public struct SnackbarView: View { private var backgroundColor: Color { switch configuration.type { case .info: - return Colors.primary.black + return Primitives.Colours.neutrals900 case .success: - return Colors.secondary.green100 + return Primitives.Colours.semanticSuccess100 case .error: - return Colors.secondary.red100 + return Primitives.Colours.semanticError100 } } private var foregroundColor: Color { switch configuration.type { case .info: - return Colors.primary.white + return Primitives.Colours.neutrals0 case .success: - return Colors.secondary.green800 + return Primitives.Colours.semanticSuccess800 case .error: - return Colors.secondary.red800 + return Primitives.Colours.semanticError700 } } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/SortBy/SortByView.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/SortBy/SortByView.swift index a30f6261..15d2499f 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/SortBy/SortByView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/SortBy/SortByView.swift @@ -18,7 +18,7 @@ public struct SortByView: View { HStack { Text(title) .font(Constants.fontTitle) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) Spacer() } .padding(.horizontal, Spacing.space200) @@ -39,12 +39,12 @@ public struct SortByView: View { .resizable() .scaledToFit() .frame(size: Constants.iconSize) - .tint(Colors.primary.mono900) + .tint(Primitives.Colours.neutrals800) .padding(.vertical, Spacing.space150) .padding(.leading, Spacing.space150) } Text.build(theme.font.small.bold(option.title)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) .padding(.trailing, Spacing.space150) .padding(.vertical, Spacing.space150) .padding(.leading, option.icon == nil ? Spacing.space150 : 0) @@ -69,7 +69,7 @@ public struct SortByView: View { } private func colorForOptionBorder(_ option: SortByType) -> Color { - option == sortBy ? Colors.primary.mono900 : Colors.primary.mono100 + option == sortBy ? Primitives.Colours.neutrals800 : Primitives.Colours.neutrals100 } private enum Constants { diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/TabControl/TabControl.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/TabControl/TabControl.swift index ee070942..43b33ee5 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/TabControl/TabControl.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/TabControl/TabControl.swift @@ -25,9 +25,9 @@ public struct TabControl: View { var outerLineColor: Color { switch self { case .light: - return Colors.primary.mono200 + return Primitives.Colours.neutrals200 case .dark: - return Colors.primary.mono900 + return Primitives.Colours.neutrals800 } } // swiftlint:enable vertical_whitespace_between_cases @@ -65,9 +65,9 @@ public struct TabControl: View { static let innerLineHeight: CGFloat = 2 static let itemHeight: CGFloat = 44 static let imageSize: CGFloat = 16 - static let innerLineColor = Colors.primary.mono050 - static let selectedItemFontColor = Colors.primary.mono900 - static let unselectedItemFontColor = Colors.primary.mono500 + static let innerLineColor = Primitives.Colours.neutrals100 + static let selectedItemFontColor = Primitives.Colours.neutrals800 + static let unselectedItemFontColor = Primitives.Colours.neutrals500 static let matchedGeometryEffectID = "tabControl_underline" } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Tags/Tag.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Tags/Tag.swift index 2f0d1cc8..b733e0a4 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Tags/Tag.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Tags/Tag.swift @@ -12,7 +12,7 @@ public struct TagConfiguration { label: String, showCloseButton: Bool = false, icon: Image? = nil, - color: Color = Colors.primary.mono800, + color: Color = Primitives.Colours.neutrals700, onCloseTap: (() -> Void)? = nil ) { self.label = label @@ -61,16 +61,16 @@ public struct Tag: View { .resizable() .scaledToFit() .frame(width: Constants.closeWidth, height: Constants.closeHeight) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) }) } } .padding(.horizontal, Spacing.space150) } - .background(Colors.primary.mono100) + .background(Primitives.Colours.neutrals100) .cornerRadius(Constants.cornerRadius) .frame(height: Constants.height) - .shadow(color: Colors.primary.black.opacity(0.1), radius: 4, x: 2, y: 2) + .shadow(color: Primitives.Colours.neutrals900.opacity(0.1), radius: 4, x: 2, y: 2) } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarButton.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarButton.swift index f4c5d95a..e6918864 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarButton.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarButton.swift @@ -32,7 +32,7 @@ public struct ThemedToolbarButton: View { public init( icon: Icon?, text: String? = nil, - tint: Color = Colors.primary.mono900, + tint: Color = Primitives.Colours.neutrals800, isDisabled: Binding = .constant(false), isLoading: Binding = .constant(false), badgeValue: Binding = .constant(nil), diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarModifier.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarModifier.swift index 0725abde..7cafebe0 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarModifier.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarModifier.swift @@ -14,7 +14,7 @@ public struct ThemedToolbarModifier: ViewModifier { VStack { if showDivider { Divider() - .background(Colors.primary.mono200) + .background(Primitives.Colours.neutrals200) } content .navigationBarTitleDisplayMode(.inline) diff --git a/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarTitle.swift b/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarTitle.swift index bb096b32..d48a0c3e 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarTitle.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Components/Toolbar/ThemedToolbarTitle.swift @@ -18,7 +18,7 @@ public struct ThemedToolbarTitle: View { private let tint: Color private let accessibilityId: String - public init(style: TitleStyle, tint: Color = Colors.primary.mono900, accessibilityId: String = "") { + public init(style: TitleStyle, tint: Color = Primitives.Colours.neutrals800, accessibilityId: String = "") { self.style = style self.tint = tint self.accessibilityId = accessibilityId @@ -44,7 +44,7 @@ public struct ThemedToolbarTitle: View { if let subtitle { Text.build(theme.font.tiny.normal(subtitle)) - .foregroundStyle(Colors.primary.mono500) + .foregroundStyle(Primitives.Colours.neutrals500) } } .padding(.vertical, Spacing.space200) diff --git a/Alfie/AlfieKit/Sources/SharedUI/Helpers/Extensions/Color+Extension.swift b/Alfie/AlfieKit/Sources/SharedUI/Helpers/Extensions/Color+Extension.swift deleted file mode 100644 index 1c54b626..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Helpers/Extensions/Color+Extension.swift +++ /dev/null @@ -1,11 +0,0 @@ -import SwiftUI - -public extension Color { - static var black: Color { - Colors.primary.black - } - - static var white: Color { - Colors.primary.white - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Helpers/Modifiers/Shimmering/MultilineShimmerEffectModifier.swift b/Alfie/AlfieKit/Sources/SharedUI/Helpers/Modifiers/Shimmering/MultilineShimmerEffectModifier.swift index 2f9c78cb..1fed6d61 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Helpers/Modifiers/Shimmering/MultilineShimmerEffectModifier.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Helpers/Modifiers/Shimmering/MultilineShimmerEffectModifier.swift @@ -32,8 +32,8 @@ struct MultilineShimmerEffectModifier: ViewModifier { self.shouldShowShimmer = isLoading.wrappedValue self.cornerRadius = cornerRadius self.blurRadius = blurRadius - self.lighterShimmerColor = customLighterShimmerColor ?? Colors.primary.mono200 - self.darkerShimmerColor = customDarkerShimmerColor ?? Colors.primary.mono300 + self.lighterShimmerColor = customLighterShimmerColor ?? Primitives.Colours.neutrals200 + self.darkerShimmerColor = customDarkerShimmerColor ?? Primitives.Colours.neutrals400 self.lines = lines > 0 ? Array(0.. some View { configuration.label - .background(configuration.isPressed ? Colors.primary.mono100 : .clear) + .background(configuration.isPressed ? Primitives.Colours.neutrals100 : .clear) } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Accordion/AccordionView.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Accordion/AccordionView.swift index 6a1f7884..3693725b 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Accordion/AccordionView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Accordion/AccordionView.swift @@ -68,11 +68,11 @@ public struct AccordionView: View { } private var textColor: Color { - isDisabled ? Colors.primary.mono700 : Colors.primary.mono900 + isDisabled ? Primitives.Colours.neutrals600 : Primitives.Colours.neutrals800 } private var accordianColor: Color { - isDisabled ? Colors.primary.mono200 : Colors.primary.mono500 + isDisabled ? Primitives.Colours.neutrals200 : Primitives.Colours.neutrals500 } } @@ -96,7 +96,7 @@ public struct MyDisclosureStyle: DisclosureGroupStyle { .resizable() .scaledToFit() .frame(width: 16, height: 16) - .foregroundStyle(isDisabled ? Colors.primary.mono200 : Colors.primary.mono500) + .foregroundStyle(isDisabled ? Primitives.Colours.neutrals200 : Primitives.Colours.neutrals500) .rotationEffect(.degrees(configuration.isExpanded ? 0 : -90)) .animation(.easeInOut(duration: 0.3), value: configuration.isExpanded) } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Buttons/ButtonTheme.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Buttons/ButtonTheme.swift index 18490c5b..2af11607 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Buttons/ButtonTheme.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Buttons/ButtonTheme.swift @@ -30,54 +30,54 @@ public enum ButtonTheme: String, CaseIterable { switch self { case .primary: return .init( - backgroundColor: Colors.primary.mono900, - backgroundDisabledColor: Colors.primary.mono050, - backgroundPressedColor: Colors.primary.mono500, - textColor: .white, - textDisabledColor: Colors.primary.mono300, - textPressedColor: .white, - borderColor: Colors.primary.mono900, - borderDisabledColor: Colors.primary.mono050, - borderPressedColor: Colors.primary.mono500 + backgroundColor: Primitives.Colours.neutrals800, + backgroundDisabledColor: Primitives.Colours.neutrals100, + backgroundPressedColor: Primitives.Colours.neutrals500, + textColor: Primitives.Colours.neutrals0, + textDisabledColor: Primitives.Colours.neutrals400, + textPressedColor: Primitives.Colours.neutrals0, + borderColor: Primitives.Colours.neutrals800, + borderDisabledColor: Primitives.Colours.neutrals100, + borderPressedColor: Primitives.Colours.neutrals500 ) case .secondary: return .init( - backgroundColor: .white, - backgroundDisabledColor: .white, - backgroundPressedColor: Colors.primary.mono100, - textColor: Colors.primary.mono900, - textDisabledColor: Colors.primary.mono300, - textPressedColor: Colors.primary.mono500, - borderColor: Colors.primary.mono900, - borderDisabledColor: Colors.primary.mono300, - borderPressedColor: Colors.primary.mono500 + backgroundColor: Primitives.Colours.neutrals0, + backgroundDisabledColor: Primitives.Colours.neutrals0, + backgroundPressedColor: Primitives.Colours.neutrals100, + textColor: Primitives.Colours.neutrals800, + textDisabledColor: Primitives.Colours.neutrals400, + textPressedColor: Primitives.Colours.neutrals500, + borderColor: Primitives.Colours.neutrals800, + borderDisabledColor: Primitives.Colours.neutrals400, + borderPressedColor: Primitives.Colours.neutrals500 ) case .tertiary: return .init( - backgroundColor: .white, - backgroundDisabledColor: .white, - backgroundPressedColor: Colors.primary.mono100, - textColor: Colors.primary.mono900, - textDisabledColor: Colors.primary.mono300, - textPressedColor: Colors.primary.mono500, - borderColor: .white, - borderDisabledColor: .white, - borderPressedColor: Colors.primary.mono100 + backgroundColor: Primitives.Colours.neutrals0, + backgroundDisabledColor: Primitives.Colours.neutrals0, + backgroundPressedColor: Primitives.Colours.neutrals100, + textColor: Primitives.Colours.neutrals800, + textDisabledColor: Primitives.Colours.neutrals400, + textPressedColor: Primitives.Colours.neutrals500, + borderColor: Primitives.Colours.neutrals0, + borderDisabledColor: Primitives.Colours.neutrals0, + borderPressedColor: Primitives.Colours.neutrals100 ) case .underline: return .init( - backgroundColor: .white, - backgroundDisabledColor: .white, - backgroundPressedColor: .white, - textColor: Colors.primary.mono900, - textDisabledColor: Colors.primary.mono300, - textPressedColor: Colors.primary.mono500, - borderColor: .white, - borderDisabledColor: .white, - borderPressedColor: .white + backgroundColor: Primitives.Colours.neutrals0, + backgroundDisabledColor: Primitives.Colours.neutrals0, + backgroundPressedColor: Primitives.Colours.neutrals0, + textColor: Primitives.Colours.neutrals800, + textDisabledColor: Primitives.Colours.neutrals400, + textPressedColor: Primitives.Colours.neutrals500, + borderColor: Primitives.Colours.neutrals0, + borderDisabledColor: Primitives.Colours.neutrals0, + borderPressedColor: Primitives.Colours.neutrals0 ) } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Buttons/ThemedButton.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Buttons/ThemedButton.swift index bfc02be5..249d4df3 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Buttons/ThemedButton.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Buttons/ThemedButton.swift @@ -295,7 +295,7 @@ extension ThemedButton: CustomShimmerable { public var customLighterShimmerColor: Color? { switch style { case .primary: - return Colors.primary.mono600 + return Primitives.Colours.neutrals600 case .secondary, .tertiary, // swiftlint:disable:this indentation_width .underline: @@ -306,7 +306,7 @@ extension ThemedButton: CustomShimmerable { public var customDarkerShimmerColor: Color? { switch style { case .primary: - return Colors.primary.mono900 + return Primitives.Colours.neutrals800 case .secondary, .tertiary, // swiftlint:disable:this indentation_width .underline: diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Color.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Color.swift deleted file mode 100644 index 95711e08..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Color.swift +++ /dev/null @@ -1,6 +0,0 @@ -import SwiftUI - -public enum Colors { - public static let primary: PrimaryColorsProtocol = PrimaryColors() - public static let secondary: SecondaryColorsProtocol = SecondaryColors() -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Black.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Black.colorset/Contents.json deleted file mode 100644 index 7e8f38fe..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Black.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x00", - "green" : "0x00", - "red" : "0x00" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue050.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue050.colorset/Contents.json deleted file mode 100644 index 66684990..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue050.colorset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xFF", - "green" : "0xF5", - "red" : "0xEB" - } - }, - "idiom" : "universal" - }, - { - "appearances" : [ - { - "appearance" : "luminosity", - "value" : "dark" - } - ], - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xFF", - "green" : "0xF5", - "red" : "0xEB" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue100.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue100.colorset/Contents.json deleted file mode 100644 index cbe4ef56..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue100.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xFE", - "green" : "0xEF", - "red" : "0xE1" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue200.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue200.colorset/Contents.json deleted file mode 100644 index a2258b51..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue200.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xFD", - "green" : "0xDD", - "red" : "0xC3" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue300.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue300.colorset/Contents.json deleted file mode 100644 index ce1ff9a4..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue300.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xFE", - "green" : "0xCA", - "red" : "0xA4" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue400.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue400.colorset/Contents.json deleted file mode 100644 index cab15990..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue400.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xFA", - "green" : "0xA9", - "red" : "0x76" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue500.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue500.colorset/Contents.json deleted file mode 100644 index 36ae3013..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue500.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xF8", - "green" : "0x83", - "red" : "0x3F" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue600.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue600.colorset/Contents.json deleted file mode 100644 index 22366faf..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue600.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xF2", - "green" : "0x64", - "red" : "0x1C" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue700.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue700.colorset/Contents.json deleted file mode 100644 index 6ac6cad1..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue700.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xDB", - "green" : "0x56", - "red" : "0x1A" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue800.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue800.colorset/Contents.json deleted file mode 100644 index ace86808..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue800.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x9F", - "green" : "0x42", - "red" : "0x1E" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue900.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue900.colorset/Contents.json deleted file mode 100644 index 24b0cf6c..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Blue900.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x76", - "green" : "0x38", - "red" : "0x23" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Contents.json deleted file mode 100644 index 73c00596..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green050.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green050.colorset/Contents.json deleted file mode 100644 index e51e8b43..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green050.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xEB", - "green" : "0xF9", - "red" : "0xF0" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green100.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green100.colorset/Contents.json deleted file mode 100644 index 51b55c24..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green100.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xDB", - "green" : "0xF4", - "red" : "0xE3" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green200.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green200.colorset/Contents.json deleted file mode 100644 index 3cb0b68e..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green200.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xB1", - "green" : "0xE7", - "red" : "0xC2" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green300.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green300.colorset/Contents.json deleted file mode 100644 index d1f3c99d..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green300.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x48", - "green" : "0xC6", - "red" : "0x69" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green400.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green400.colorset/Contents.json deleted file mode 100644 index 0cae7e67..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green400.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x32", - "green" : "0xAF", - "red" : "0x52" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green500.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green500.colorset/Contents.json deleted file mode 100644 index 471a5334..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green500.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x1A", - "green" : "0x9A", - "red" : "0x39" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green600.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green600.colorset/Contents.json deleted file mode 100644 index 227876ce..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green600.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x00", - "green" : "0x84", - "red" : "0x1C" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green700.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green700.colorset/Contents.json deleted file mode 100644 index 5d597bcb..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green700.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x00", - "green" : "0x6F", - "red" : "0x00" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green800.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green800.colorset/Contents.json deleted file mode 100644 index 2f100bcf..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green800.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x00", - "green" : "0x5B", - "red" : "0x00" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green900.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green900.colorset/Contents.json deleted file mode 100644 index e3fc9947..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Green900.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x00", - "green" : "0x47", - "red" : "0x00" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono050.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono050.colorset/Contents.json deleted file mode 100644 index 58965c08..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono050.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xF9", - "green" : "0xF9", - "red" : "0xF9" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono100.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono100.colorset/Contents.json deleted file mode 100644 index deb6e93a..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono100.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xF7", - "green" : "0xF5", - "red" : "0xF4" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono200.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono200.colorset/Contents.json deleted file mode 100644 index 965cbd96..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono200.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xDD", - "green" : "0xDD", - "red" : "0xDD" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono300.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono300.colorset/Contents.json deleted file mode 100644 index 05c2c300..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono300.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xB0", - "green" : "0xB0", - "red" : "0xB0" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono400.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono400.colorset/Contents.json deleted file mode 100644 index a933d6b6..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono400.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x86", - "green" : "0x86", - "red" : "0x86" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono500.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono500.colorset/Contents.json deleted file mode 100644 index 5cecbda9..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono500.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x6C", - "green" : "0x6C", - "red" : "0x6C" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono600.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono600.colorset/Contents.json deleted file mode 100644 index 597d61a1..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono600.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x53", - "green" : "0x53", - "red" : "0x53" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono700.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono700.colorset/Contents.json deleted file mode 100644 index 0d5c53b1..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono700.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x3C", - "green" : "0x3C", - "red" : "0x3C" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono800.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono800.colorset/Contents.json deleted file mode 100644 index 05b659e1..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono800.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x25", - "green" : "0x25", - "red" : "0x25" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono900.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono900.colorset/Contents.json deleted file mode 100644 index 4c4bb11e..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Mono900.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x10", - "green" : "0x10", - "red" : "0x10" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange050.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange050.colorset/Contents.json deleted file mode 100644 index 5174e78f..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange050.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xF1", - "green" : "0xF8", - "red" : "0xFF" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange100.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange100.colorset/Contents.json deleted file mode 100644 index 177b08dc..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange100.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xDC", - "green" : "0xEC", - "red" : "0xFE" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange200.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange200.colorset/Contents.json deleted file mode 100644 index 037a0c87..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange200.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xBD", - "green" : "0xD9", - "red" : "0xFC" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange300.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange300.colorset/Contents.json deleted file mode 100644 index 3a3a17f6..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange300.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x8C", - "green" : "0xBA", - "red" : "0xFD" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange400.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange400.colorset/Contents.json deleted file mode 100644 index 4f391903..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange400.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x4C", - "green" : "0x8A", - "red" : "0xFF" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange500.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange500.colorset/Contents.json deleted file mode 100644 index b92c578d..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Orange500.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x1F", - "green" : "0x5A", - "red" : "0xFF" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red050.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red050.colorset/Contents.json deleted file mode 100644 index af372641..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red050.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xF2", - "green" : "0xF2", - "red" : "0xFD" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red100.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red100.colorset/Contents.json deleted file mode 100644 index da3cd616..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red100.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xE8", - "green" : "0xE8", - "red" : "0xFD" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red200.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red200.colorset/Contents.json deleted file mode 100644 index cd6436f9..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red200.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xD5", - "green" : "0xD5", - "red" : "0xFB" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red300.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red300.colorset/Contents.json deleted file mode 100644 index 0324f3fb..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red300.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xB4", - "green" : "0xB4", - "red" : "0xF8" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red400.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red400.colorset/Contents.json deleted file mode 100644 index dd370f36..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red400.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x80", - "green" : "0x80", - "red" : "0xF9" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red500.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red500.colorset/Contents.json deleted file mode 100644 index 9651facb..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red500.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x41", - "green" : "0x43", - "red" : "0xF6" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red600.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red600.colorset/Contents.json deleted file mode 100644 index b52270d2..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red600.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x24", - "green" : "0x24", - "red" : "0xE0" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red700.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red700.colorset/Contents.json deleted file mode 100644 index a1d594fd..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red700.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x1E", - "green" : "0x1E", - "red" : "0xC8" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red800.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red800.colorset/Contents.json deleted file mode 100644 index 9fbfb095..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red800.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x1C", - "green" : "0x1C", - "red" : "0x9B" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red900.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red900.colorset/Contents.json deleted file mode 100644 index cdb2dc27..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Red900.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x1D", - "green" : "0x1D", - "red" : "0x77" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/White.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/White.colorset/Contents.json deleted file mode 100644 index fafa4767..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/White.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xFF", - "green" : "0xFF", - "red" : "0xFF" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow050.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow050.colorset/Contents.json deleted file mode 100644 index eaa3cbd6..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow050.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xEA", - "green" : "0xFD", - "red" : "0xFD" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow100.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow100.colorset/Contents.json deleted file mode 100644 index 3ad8e58b..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow100.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0xB2", - "green" : "0xF6", - "red" : "0xFD" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow200.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow200.colorset/Contents.json deleted file mode 100644 index c8661def..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow200.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x6A", - "green" : "0xE9", - "red" : "0xFC" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow300.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow300.colorset/Contents.json deleted file mode 100644 index 5b1e1ff4..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow300.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x15", - "green" : "0xCA", - "red" : "0xFA" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow400.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow400.colorset/Contents.json deleted file mode 100644 index 2e436cfd..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow400.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x08", - "green" : "0xA0", - "red" : "0xE3" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow500.colorset/Contents.json b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow500.colorset/Contents.json deleted file mode 100644 index 2bc110d0..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/Colors.xcassets/Yellow500.colorset/Contents.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "colors" : [ - { - "color" : { - "color-space" : "srgb", - "components" : { - "alpha" : "1.000", - "blue" : "0x03", - "green" : "0x78", - "red" : "0xC2" - } - }, - "idiom" : "universal" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/PrimaryColors.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/PrimaryColors.swift deleted file mode 100644 index 3de3bb50..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/PrimaryColors.swift +++ /dev/null @@ -1,36 +0,0 @@ -import SwiftUI -import UIKit - -public protocol PrimaryColorsProtocol { - var mono900: Color { get } - var mono800: Color { get } - var mono700: Color { get } - var mono600: Color { get } - var mono500: Color { get } - var mono400: Color { get } - var mono300: Color { get } - var mono200: Color { get } - var mono100: Color { get } - var mono050: Color { get } - - var black: Color { get } - var white: Color { get } -} - -struct PrimaryColors: PrimaryColorsProtocol { - private static let bundle = Bundle.module - - let mono900 = Color("Mono900", bundle: bundle) - let mono800 = Color("Mono800", bundle: bundle) - let mono700 = Color("Mono700", bundle: bundle) - let mono600 = Color("Mono600", bundle: bundle) - let mono500 = Color("Mono500", bundle: bundle) - let mono400 = Color("Mono400", bundle: bundle) - let mono300 = Color("Mono300", bundle: bundle) - let mono200 = Color("Mono200", bundle: bundle) - let mono100 = Color("Mono100", bundle: bundle) - let mono050 = Color("Mono050", bundle: bundle) - - let black = Color("Black", bundle: bundle) - let white = Color("White", bundle: bundle) -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/SecondaryColors.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/SecondaryColors.swift deleted file mode 100644 index 5c38b318..00000000 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Color/SecondaryColors.swift +++ /dev/null @@ -1,101 +0,0 @@ -import SwiftUI - -public protocol SecondaryColorsProtocol { - var green900: Color { get } - var green800: Color { get } - var green700: Color { get } - var green600: Color { get } - var green500: Color { get } - var green400: Color { get } - var green300: Color { get } - var green200: Color { get } - var green100: Color { get } - var green050: Color { get } - - var red900: Color { get } - var red800: Color { get } - var red700: Color { get } - var red600: Color { get } - var red500: Color { get } - var red400: Color { get } - var red300: Color { get } - var red200: Color { get } - var red100: Color { get } - var red050: Color { get } - - var blue900: Color { get } - var blue800: Color { get } - var blue700: Color { get } - var blue600: Color { get } - var blue500: Color { get } - var blue400: Color { get } - var blue300: Color { get } - var blue200: Color { get } - var blue100: Color { get } - var blue050: Color { get } - - var yellow500: Color { get } - var yellow400: Color { get } - var yellow300: Color { get } - var yellow200: Color { get } - var yellow100: Color { get } - var yellow050: Color { get } - - var orange500: Color { get } - var orange400: Color { get } - var orange300: Color { get } - var orange200: Color { get } - var orange100: Color { get } - var orange050: Color { get } -} - -struct SecondaryColors: SecondaryColorsProtocol { - private static let bundle = Bundle.module - - let green900 = Color("Green900", bundle: bundle) - let green800 = Color("Green800", bundle: bundle) - let green700 = Color("Green700", bundle: bundle) - let green600 = Color("Green600", bundle: bundle) - let green500 = Color("Green500", bundle: bundle) - let green400 = Color("Green400", bundle: bundle) - let green300 = Color("Green300", bundle: bundle) - let green200 = Color("Green200", bundle: bundle) - let green100 = Color("Green100", bundle: bundle) - let green050 = Color("Green050", bundle: bundle) - - let red900 = Color("Red900", bundle: bundle) - let red800 = Color("Red800", bundle: bundle) - let red700 = Color("Red700", bundle: bundle) - let red600 = Color("Red600", bundle: bundle) - let red500 = Color("Red500", bundle: bundle) - let red400 = Color("Red400", bundle: bundle) - let red300 = Color("Red300", bundle: bundle) - let red200 = Color("Red200", bundle: bundle) - let red100 = Color("Red100", bundle: bundle) - let red050 = Color("Red050", bundle: bundle) - - let blue900 = Color("Blue900", bundle: bundle) - let blue800 = Color("Blue800", bundle: bundle) - let blue700 = Color("Blue700", bundle: bundle) - let blue600 = Color("Blue600", bundle: bundle) - let blue500 = Color("Blue500", bundle: bundle) - let blue400 = Color("Blue400", bundle: bundle) - let blue300 = Color("Blue300", bundle: bundle) - let blue200 = Color("Blue200", bundle: bundle) - let blue100 = Color("Blue100", bundle: bundle) - let blue050 = Color("Blue050", bundle: bundle) - - let yellow500 = Color("Yellow500", bundle: bundle) - let yellow400 = Color("Yellow400", bundle: bundle) - let yellow300 = Color("Yellow300", bundle: bundle) - let yellow200 = Color("Yellow200", bundle: bundle) - let yellow100 = Color("Yellow100", bundle: bundle) - let yellow050 = Color("Yellow050", bundle: bundle) - - let orange500 = Color("Orange500", bundle: bundle) - let orange400 = Color("Orange400", bundle: bundle) - let orange300 = Color("Orange300", bundle: bundle) - let orange200 = Color("Orange200", bundle: bundle) - let orange100 = Color("Orange100", bundle: bundle) - let orange050 = Color("Orange050", bundle: bundle) -} diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Checkbox/Checkbox.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Checkbox/Checkbox.swift index 98f38c8e..17c94fcb 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Checkbox/Checkbox.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Checkbox/Checkbox.swift @@ -82,7 +82,7 @@ public struct Checkbox: View { Text.build(theme.font.paragraph.normal(text)) } - .foregroundStyle(state.isDisabled ? Colors.primary.mono400 : Colors.primary.mono900) + .foregroundStyle(state.isDisabled ? Primitives.Colours.neutrals500 : Primitives.Colours.neutrals800) .onTapGesture { playAppropriateHaptics() state.toggleIfEnabled() diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ColorBanner/ColorSelectorComponentView.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ColorBanner/ColorSelectorComponentView.swift index f396031c..672befe9 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ColorBanner/ColorSelectorComponentView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ColorBanner/ColorSelectorComponentView.swift @@ -85,7 +85,7 @@ public struct ColorSelectorComponentView: View { configuration: .init( selectedTitle: "Color:", items: [ - .init(id: "1", name: "Black", type: .color(Colors.primary.black)), + .init(id: "1", name: "Black", type: .color(.black)), .init(id: "2", name: "Gray", type: .color(.gray)), .init(id: "3", name: "Red", type: .color(.red)), .init(id: "4", name: "Green", type: .color(.green)), @@ -102,7 +102,7 @@ public struct ColorSelectorComponentView: View { configuration: .init( selectedTitle: "Color:", items: [ - .init(id: "1", name: "Black", type: .color(Colors.primary.black)), + .init(id: "1", name: "Black", type: .color(.black)), .init(id: "2", name: "Gray", type: .color(.gray)), .init(id: "3", name: "Red", type: .color(.red)), .init(id: "4", name: "Green", type: .color(.green)), @@ -119,7 +119,7 @@ public struct ColorSelectorComponentView: View { configuration: .init( selectedTitle: "Color:", items: [ - .init(id: "1", name: "Black", type: .color(Colors.primary.black)), + .init(id: "1", name: "Black", type: .color(.black)), .init(id: "2", name: "Gray", type: .color(.gray)), .init(id: "3", name: "Red", type: .color(.red)), .init(id: "4", name: "Green", type: .color(.green)), @@ -138,7 +138,7 @@ public struct ColorSelectorComponentView: View { configuration: .init( selectedTitle: "Color:", items: [ - .init(id: "1", name: "Black", type: .color(Colors.primary.black)), + .init(id: "1", name: "Black", type: .color(.black)), .init(id: "2", name: "Gray", type: .color(.gray)), .init(id: "3", name: "Red", type: .color(.red)), .init(id: "4", name: "Green", type: .color(.green)), diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ColorBanner/ColorSwatchView.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ColorBanner/ColorSwatchView.swift index 98209723..2fe49c27 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ColorBanner/ColorSwatchView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ColorBanner/ColorSwatchView.swift @@ -27,10 +27,10 @@ public struct ColorSwatchView: View { public var body: some View { ZStack { RoundedRectangle(cornerRadius: size / 2) - .stroke(isSelected ? Colors.primary.black : .clear, lineWidth: Constants.borderLineWidth) + .stroke(isSelected ? Primitives.Colours.neutrals900 : .clear, lineWidth: Constants.borderLineWidth) RoundedRectangle(cornerRadius: size - (Constants.borderLineWidth * 2) / 2) .inset(by: Constants.borderLineWidth) - .stroke(isSelected ? Colors.primary.white : .clear, lineWidth: Constants.borderLineWidth) + .stroke(isSelected ? Primitives.Colours.neutrals0 : .clear, lineWidth: Constants.borderLineWidth) } .background { ZStack { @@ -58,8 +58,8 @@ public struct ColorSwatchView: View { .aspectRatio(contentMode: .fill) .frame(width: size, height: size) }, - placeholder: { Colors.primary.mono050 }, - failure: { _ in Colors.primary.black } + placeholder: { Primitives.Colours.neutrals100 }, + failure: { _ in Primitives.Colours.neutrals900 } ) } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Loader/LoaderView.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Loader/LoaderView.swift index 658a36f2..f5a7bf33 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Loader/LoaderView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Loader/LoaderView.swift @@ -14,9 +14,9 @@ public struct LoaderView: View { // swiftlint:disable vertical_whitespace_between_cases switch self { case .dark: - return Colors.primary.black + return Primitives.Colours.neutrals900 case .light: - return Colors.primary.white + return Primitives.Colours.neutrals0 } // swiftlint:enable vertical_whitespace_between_cases } @@ -72,7 +72,7 @@ public struct LoaderView: View { if !labelHidden { Text.build(theme.font.paragraph.normal(labelTitle)) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) } } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Loader/ThemedLoaderView.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Loader/ThemedLoaderView.swift index 3979dda6..a0439eaa 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Loader/ThemedLoaderView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Loader/ThemedLoaderView.swift @@ -28,7 +28,7 @@ public struct ThemedLoaderView: View { if !labelHidden { Text.build(theme.font.paragraph.normal(labelTitle)) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) } } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ProgressBar.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ProgressBar.swift index 0961895e..d2ce4f1a 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ProgressBar.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/ProgressBar.swift @@ -23,11 +23,11 @@ public struct ProgressBar: View { HStack { ZStack(alignment: .leading) { Rectangle() - .fill(Colors.primary.mono200) + .fill(Primitives.Colours.neutrals200) .cornerRadius(CornerRadius.xl) .frame(height: Constants.height) Rectangle() - .fill(Colors.primary.mono700) + .fill(Primitives.Colours.neutrals600) .cornerRadius(CornerRadius.xl) .frame(width: Constants.indicatorWidth, height: Constants.height) .offset(x: xOffset(for: progress), y: 0) diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/RadioButton/RadioButton.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/RadioButton/RadioButton.swift index 512e927a..c680908f 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/RadioButton/RadioButton.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/RadioButton/RadioButton.swift @@ -61,7 +61,7 @@ struct RadioButton: View { Text.build(theme.font.paragraph.normal(text)) } - .foregroundStyle(state.isDisabled ? Colors.primary.mono400 : Colors.primary.mono900) + .foregroundStyle(state.isDisabled ? Primitives.Colours.neutrals500 : Primitives.Colours.neutrals800) .onTapGesture { guard !state.isDisabled else { hapticsService.trigger(.notification(.error)) diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/SearchBar/ThemedSearchBarView.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/SearchBar/ThemedSearchBarView.swift index a476db70..04b712bb 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/SearchBar/ThemedSearchBarView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/SearchBar/ThemedSearchBarView.swift @@ -15,9 +15,9 @@ public struct ThemedSearchBarView: View { case .soft, .softLarge, .light: - Colors.primary.mono050 + Primitives.Colours.neutrals100 case .dark: - Colors.primary.mono800 + Primitives.Colours.neutrals700 } } @@ -28,7 +28,7 @@ public struct ThemedSearchBarView: View { .dark: focusedBackgroundColor case .light: - Colors.primary.white + Primitives.Colours.neutrals0 } } @@ -36,11 +36,11 @@ public struct ThemedSearchBarView: View { switch self { case .soft, .softLarge: - Colors.primary.mono200 + Primitives.Colours.neutrals200 case .light: - Colors.primary.mono900 + Primitives.Colours.neutrals800 case .dark: - Colors.primary.mono300 + Primitives.Colours.neutrals400 } } @@ -51,7 +51,7 @@ public struct ThemedSearchBarView: View { .dark: .clear case .light: - Colors.primary.mono900 + Primitives.Colours.neutrals800 } } @@ -60,9 +60,9 @@ public struct ThemedSearchBarView: View { case .soft, .softLarge, .light: - Colors.primary.mono900 + Primitives.Colours.neutrals800 case .dark: - Colors.primary.mono050 + Primitives.Colours.neutrals100 } } @@ -71,9 +71,9 @@ public struct ThemedSearchBarView: View { case .soft, .softLarge, .light: - Colors.primary.mono500 + Primitives.Colours.neutrals500 case .dark: - Colors.primary.mono200 + Primitives.Colours.neutrals200 } } @@ -86,9 +86,9 @@ public struct ThemedSearchBarView: View { case .soft, .softLarge, .light: - Colors.primary.mono900 + Primitives.Colours.neutrals800 case .dark: - Colors.primary.mono200 + Primitives.Colours.neutrals200 } } @@ -327,7 +327,7 @@ public struct ThemedSearchBarView: View { .renderingMode(.template) .resizable() .scaledToFit() - .tint(Colors.primary.mono900) + .tint(Primitives.Colours.neutrals800) .frame(size: Constants.cancelIconSize) } .accessibilityIdentifier(dismissConfiguration.accessibilityId) @@ -337,7 +337,7 @@ public struct ThemedSearchBarView: View { dismissBlock() } label: { Text.build(theme.font.small.normal(title)) - .foregroundStyle(Colors.primary.mono900) + .foregroundStyle(Primitives.Colours.neutrals800) .accessibilityIdentifier(dismissConfiguration.accessibilityId) } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Selectors/PickerMenu.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Selectors/PickerMenu.swift index 76c0c29d..71080150 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Selectors/PickerMenu.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/Selectors/PickerMenu.swift @@ -17,7 +17,7 @@ public struct PickerMenu: View { public var body: some View { Button { isModalPresented = true } label: { RoundedRectangle(cornerRadius: CornerRadius.xs) - .stroke(Colors.primary.mono300, lineWidth: 1) + .stroke(Primitives.Colours.neutrals400, lineWidth: 1) .frame(minHeight: Constants.frameMinHeight) .overlay { HStack { @@ -28,11 +28,11 @@ public struct PickerMenu: View { .resizable() .scaledToFit() .frame(width: Constants.iconSize, height: Constants.iconSize) - .tint(Colors.primary.mono900) + .tint(Primitives.Colours.neutrals800) } .padding(.horizontal, Spacing.space200) } - .background(Colors.primary.white) + .background(Primitives.Colours.neutrals0) .cornerRadius(CornerRadius.xs) } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/SizingBanner/ColorAndSizingSelectorHeaderView.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/SizingBanner/ColorAndSizingSelectorHeaderView.swift index e435ce8c..060ea989 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/SizingBanner/ColorAndSizingSelectorHeaderView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Components/SizingBanner/ColorAndSizingSelectorHeaderView.swift @@ -25,9 +25,9 @@ public struct ColorAndSizingSelectorHeaderView: ViewModifier { GeometryReader { gp in ZStack(alignment: horizontalSizeClass == .compact ? .bottom : .center) { Rectangle() - .fill(Colors.primary.black.opacity(Constants.opacityBackground)) + .fill(Primitives.Colours.neutrals900.opacity(Constants.opacityBackground)) .onTapGesture { onDismiss() } @@ -48,7 +48,7 @@ struct ThemedModal: ViewModifier { VStack { HStack { Text.build(theme.font.header.h3(title)) - .foregroundStyle(Colors.primary.black) + .foregroundStyle(Primitives.Colours.neutrals900) Spacer() Button { onDismiss() @@ -61,7 +61,7 @@ struct ThemedModal: ViewModifier { width: Constants.iconCloseSize, height: Constants.iconCloseSize ) - .tint(Colors.primary.black) + .tint(Primitives.Colours.neutrals900) } } .padding(.vertical, Spacing.space100) @@ -109,7 +109,7 @@ struct ThemedModal: ViewModifier { .edgesIgnoringSafeArea(.bottom) .background { RoundedRectangle(cornerRadius: CornerRadius.m) - .fill(Colors.primary.white) + .fill(Primitives.Colours.neutrals0) .edgesIgnoringSafeArea(.bottom) .padding( .horizontal, diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Segmented/ThemedSegmentedView.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Segmented/ThemedSegmentedView.swift index dec2259f..46093f34 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Segmented/ThemedSegmentedView.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Segmented/ThemedSegmentedView.swift @@ -31,7 +31,7 @@ public struct ThemedSegmentedView: View { .padding(type == .compact ? Spacing.space050 : Spacing.space100) .background { RoundedRectangle(cornerRadius: CornerRadius.s) - .fill(Colors.primary.mono100) + .fill(Primitives.Colours.neutrals100) } .accessibilityElement(children: .contain) .accessibilityIdentifier(AccessibilityId.segmentedControl) @@ -57,7 +57,7 @@ public struct ThemedSegmentView: View { ZStack { if currectSelected == segment { RoundedRectangle(cornerRadius: CornerRadius.xs) - .fill(Colors.primary.white) + .fill(Primitives.Colours.neutrals0) .matchedGeometryEffect(id: "segmentBackground", in: animation, properties: .frame) } else { RoundedRectangle(cornerRadius: CornerRadius.xs) @@ -72,10 +72,10 @@ public struct ThemedSegmentView: View { .scaledToFit() .frame(width: Constants.iconWidth, height: Constants.iconHeight) .padding(.trailing, type == .compact ? Spacing.space050 : Spacing.space100) - .foregroundStyle(currectSelected == segment ? Colors.primary.black : Colors.primary.mono500) + .foregroundStyle(currectSelected == segment ? Primitives.Colours.neutrals900 : Primitives.Colours.neutrals500) } Text.build(theme.font.paragraph.normal(segment.title)) - .foregroundStyle(currectSelected == segment ? Colors.primary.black : Colors.primary.mono500) + .foregroundStyle(currectSelected == segment ? Primitives.Colours.neutrals900 : Primitives.Colours.neutrals500) .padding(.vertical, type == .compact ? Spacing.space100 : Spacing.space200) .lineLimit(1) Spacer() diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/Shadow/ShadowViewModifier.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/Shadow/ShadowViewModifier.swift index a7d4e4dd..095c1b76 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/Shadow/ShadowViewModifier.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/Shadow/ShadowViewModifier.swift @@ -29,27 +29,27 @@ public struct ShadowViewModifier: ViewModifier { .elevation3, .elevation4, .elevation5: - return Colors.primary.black.opacity(0.15) + return Primitives.Colours.neutrals900.opacity(0.15) case .mediumFloat1: - return Colors.primary.mono900.opacity(0.1) + return Primitives.Colours.neutrals800.opacity(0.1) case .mediumFloat2: - return Colors.primary.mono900.opacity(0.15) + return Primitives.Colours.neutrals800.opacity(0.15) case .mediumFloat3: - return Colors.primary.mono900.opacity(0.2) + return Primitives.Colours.neutrals800.opacity(0.2) case .mediumFloat4: - return Colors.primary.mono900.opacity(0.25) + return Primitives.Colours.neutrals800.opacity(0.25) case .mediumFloat5: - return Colors.primary.mono900.opacity(0.3) + return Primitives.Colours.neutrals800.opacity(0.3) case .softFloat1: - return Colors.primary.mono900.opacity(0.04) + return Primitives.Colours.neutrals800.opacity(0.04) case .softFloat2: - return Colors.primary.mono900.opacity(0.06) + return Primitives.Colours.neutrals800.opacity(0.06) case .softFloat3: - return Colors.primary.mono900.opacity(0.08) + return Primitives.Colours.neutrals800.opacity(0.08) case .softFloat4: - return Colors.primary.mono900.opacity(0.10) + return Primitives.Colours.neutrals800.opacity(0.10) case .softFloat5: - return Colors.primary.mono900.opacity(0.12) + return Primitives.Colours.neutrals800.opacity(0.12) } } diff --git a/Alfie/AlfieKit/Sources/SharedUI/Theme/ThemeProvider.swift b/Alfie/AlfieKit/Sources/SharedUI/Theme/ThemeProvider.swift index aa7124b5..ddad1e96 100644 --- a/Alfie/AlfieKit/Sources/SharedUI/Theme/ThemeProvider.swift +++ b/Alfie/AlfieKit/Sources/SharedUI/Theme/ThemeProvider.swift @@ -25,24 +25,24 @@ public class ThemeProvider: ThemeProviderProtocol { public func setupAppearance() { let attributesNormal: [NSAttributedString.Key: Any] = [ .font: font.header.h3, - .foregroundColor: Colors.primary.black.ui, + .foregroundColor: Primitives.Colours.neutrals900.ui, ] UIBarButtonItem.appearance().setTitleTextAttributes(attributesNormal, for: .normal) let attributesSelected: [NSAttributedString.Key: Any] = [ .font: font.header.h3, - .foregroundColor: Colors.primary.mono700.ui, + .foregroundColor: Primitives.Colours.neutrals600.ui, ] UIBarButtonItem.appearance().setTitleTextAttributes(attributesSelected, for: .highlighted) - UIBarButtonItem.appearance().tintColor = Colors.primary.black.ui + UIBarButtonItem.appearance().tintColor = Primitives.Colours.neutrals900.ui setNavigationBarAppearance() setTabBarAppearance() } private func setNavigationBarAppearance() { - let backgroundColor = Colors.primary.white.ui + let backgroundColor = Primitives.Colours.neutrals0.ui let appearance = UINavigationBarAppearance() appearance.configureWithTransparentBackground() appearance.backgroundColor = backgroundColor @@ -70,7 +70,7 @@ public class ThemeProvider: ThemeProviderProtocol { } private func setTabBarAppearance() { - let backgroundColor = Colors.primary.white.ui + let backgroundColor = Primitives.Colours.neutrals0.ui let tabBarAppearance = UITabBarAppearance() tabBarAppearance.configureWithTransparentBackground() tabBarAppearance.backgroundColor = backgroundColor diff --git a/Alfie/AlfieKit/Sources/Web/UI/WebView.swift b/Alfie/AlfieKit/Sources/Web/UI/WebView.swift index cebe9d63..b01583bc 100644 --- a/Alfie/AlfieKit/Sources/Web/UI/WebView.swift +++ b/Alfie/AlfieKit/Sources/Web/UI/WebView.swift @@ -48,7 +48,7 @@ public struct WebView: View { iconSize: Constants.errorViewIconSize, title: theme.font.header.h2(L10n.WebView.ErrorView.title), message: theme.font.paragraph.normal(L10n.WebView.ErrorView.Generic.message), - messageColor: Colors.primary.mono600, + messageColor: Primitives.Colours.neutrals600, buttons: [ .init(cta: L10n.WebView.ErrorView.Button.cta) { viewModel.tryAgain() @@ -81,7 +81,7 @@ private struct WebViewRepresentable: UIViewRepr config.allowsInlineMediaPlayback = true let webView = CustomWebViewNoAccessory(frame: .zero, configuration: config) - webView.backgroundColor = Colors.primary.white.ui + webView.backgroundColor = Primitives.Colours.neutrals0.ui webView.navigationDelegate = context.coordinator webView.allowsBackForwardNavigationGestures = true diff --git a/Alfie/AlfieKit/Tests/ProductDetailsTests/ProductDetailsViewModelTests.swift b/Alfie/AlfieKit/Tests/ProductDetailsTests/ProductDetailsViewModelTests.swift index a3c950ae..472cb213 100644 --- a/Alfie/AlfieKit/Tests/ProductDetailsTests/ProductDetailsViewModelTests.swift +++ b/Alfie/AlfieKit/Tests/ProductDetailsTests/ProductDetailsViewModelTests.swift @@ -1,6 +1,7 @@ import AlicerceLogging import Mocks import Model +import SharedUI import TestUtils import XCTest @testable import ProductDetails @@ -682,7 +683,7 @@ final class ProductDetailsViewModelTests: XCTestCase { XCTAssertEmitsValue(from: sut.$state.drop(while: \.isLoading), afterTrigger: { self.sut.viewDidAppear() }) let colorSelectionConfiguration = sut.colorSelectionConfiguration - XCTAssertEqual(colorSelectionConfiguration.items.first?.type, .color(.black)) + XCTAssertEqual(colorSelectionConfiguration.items.first?.type, .color(Primitives.Colours.neutrals900)) } func test_state_has_selected_variant_when_color_is_selected() { diff --git a/Alfie/AlfieTests/Snapshots/ProductDetailsColorSheetSnapshotTests.swift b/Alfie/AlfieTests/Snapshots/ProductDetailsColorSheetSnapshotTests.swift index df38b368..b976231d 100644 --- a/Alfie/AlfieTests/Snapshots/ProductDetailsColorSheetSnapshotTests.swift +++ b/Alfie/AlfieTests/Snapshots/ProductDetailsColorSheetSnapshotTests.swift @@ -16,10 +16,10 @@ final class ProductDetailsColorSheetSnapshotTests: XCTestCase { override func setUpWithError() throws { try super.setUpWithError() mockViewModel = .init(colorSelectionConfiguration: .init(items: [ - .init(name: "Color 1", type: .color(Colors.primary.mono300)), - .init(name: "Color 2", type: .color(Colors.primary.mono500)), - .init(name: "Color 3", type: .color(Colors.primary.mono700)), - .init(name: "Color 4", type: .color(Colors.primary.mono900)), + .init(name: "Color 1", type: .color(Primitives.Colours.neutrals400)), + .init(name: "Color 2", type: .color(Primitives.Colours.neutrals500)), + .init(name: "Color 3", type: .color(Primitives.Colours.neutrals600)), + .init(name: "Color 4", type: .color(Primitives.Colours.neutrals800)), ])) sut = .init(viewModel: mockViewModel, isPresented: .constant(true), searchText: .constant("")) } diff --git a/Docs/Plans/ALFMOB-274-integrate-color-tokens/_status.md b/Docs/Plans/ALFMOB-274-integrate-color-tokens/_status.md new file mode 100644 index 00000000..12e71be1 --- /dev/null +++ b/Docs/Plans/ALFMOB-274-integrate-color-tokens/_status.md @@ -0,0 +1,35 @@ +# ALFMOB-274 — Integrate color tokens from design token JSON + +- **Ticket:** [ALFMOB-274](https://mindera.atlassian.net/browse/ALFMOB-274) (Story) +- **Base branch:** main (branched off `ALFMOB-272-design-token-codegen` tip `2bb3eb1`) +- **Working branch:** `ALFMOB-274-integrate-color-tokens` +- **Depends on:** ALFMOB-272 (design token parser & codegen) + +## Goal +Wire generated color token structs into the existing iOS color system, replacing hardcoded +`PrimaryColors` / `SecondaryColors` values with token-generated values. Recommended approach: +Option B (code-based `Color` from tokens, single source of truth). + +## Decision (2026-06-23) +Replace the existing color palette **entirely** with generated design tokens (remove `Colors.xcassets` + +hardcoded `Primary/SecondaryColors`; re-point onto `Primitives.Colours.*` / semantic `Theme.*`). Token +export lacks blue/yellow/orange and the 10-shade brand green/red — production green/red are semantic +(success/error) so map to `semantic*`; blue = `ThemedDivider` only; yellow/orange = DebugMenu demos only. +367 call sites. Mapping table to be hardened in grill. See scope.md. + +## Phase checklist +- [x] 1. Resolve input (ticket fetched) +- [x] 2. Init branch + status +- [x] 3. Scout (scope.md) +- [x] 4. Plan (plan.md + 4 phase files) +- [x] 4.5 Grill (harden plan → grill.md, mapping.md) +- [x] PLAN APPROVAL GATE — APPROVED (mechanism: **adopt design-token names** at call sites) +- [x] 5. Implement (ios-execute, solo) — verify ✅ FULL VERIFICATION PASSED · review ✅ APPROVED (0 crit) +- [x] 6. Commit (8b8fc0b impl · 48298bf docs) +- [ ] 7. PR ← awaiting user go-ahead (outward-facing; ticket is partial) +- [ ] 8. Ticket transition +- [ ] 9. Report + +## Follow-up +- ~~blue/yellow/orange deferred~~ → **DELETED** (user follow-up): no token equivalent + no production usage → removed entirely; `Colors.xcassets` fully retired; demo/preview refs re-pointed to nearest token. `Colors` enum + `Secondary/PrimaryColors` gone. verify.sh ✅ re-passed. +- Design sign-off on the wire-now shade mappings (mapping.md §A) via snapshots on the PR. diff --git a/Docs/Plans/ALFMOB-274-integrate-color-tokens/grill.md b/Docs/Plans/ALFMOB-274-integrate-color-tokens/grill.md new file mode 100644 index 00000000..d97cbfeb --- /dev/null +++ b/Docs/Plans/ALFMOB-274-integrate-color-tokens/grill.md @@ -0,0 +1,25 @@ +# Grill: Integrate color tokens from design token JSON +**Plan**: Docs/Plans/ALFMOB-274-integrate-color-tokens/plan.md **Ticket**: ALFMOB-274 **Date**: 2026-06-23 **Branch**: ALFMOB-274-integrate-color-tokens + +## Decisions +| # | Decision | Recommended | Chosen | Plan change | +|---|---|---|---|---| +| 1 | Mapping strategy for old→token | Index-aligned, proceed now | **Design-token names are the source of truth** — adopt the generated names, don't preserve old names / clever hex-match | Approach rewritten: migrate to `Primitives.Colours.*` names, not a mono/green facade | +| 2 | API reshape / what to migrate | Keep facade + map all | **Map what has a token equivalent NOW; list what doesn't for one-by-one review later** | Scope split into "wire now" (mono/green/red/white/black) + "review list" (blue/yellow/orange). xcassets retirement becomes partial | +| 3 | Reference layer: `Primitives.Colours.*` vs semantic `Theme.*` | Primitives (Theme too sparse) | **Primitives.Colours.\*** (resolved from code) | `Theme+Generated.swift` is 33 button/content/surface roles — cannot cover granular `mono*` usages | + +## Answered by the codebase (not asked) +- **Reference layer** — `Theme+Generated.swift:6-38` exposes only 33 semantic roles (button/content/surface/link); no per-shade neutral coverage → call sites must reference `Primitives.Colours.*`. (Read directly.) +- **Which colors have a token family** — computed by nearest-hex over all 54 colorsets vs `Primitives+Generated.swift`: `mono→neutrals`, `green→semanticSuccess`, `red→semanticError`, `white=neutrals0` (exact), `black≈neutrals900` (Δ14). `blue`/`yellow`/`orange` have NO neutral/semantic family. Full table → `mapping.md`. +- **Production blast radius of the review-list families** — `blue` used only in `ThemedDivider` (+demos); `yellow`/`orange` only in DebugMenu demo views. (Usage grep in `scope.md`.) +- **`ThemeProvider.*.ui` survives asset removal** — `Color.ui` is `UIColor(self)`, a pure value conversion, no asset lookup (`Utils/Extensions/Color+Extension.swift:4`). + +## Assumptions surfaced (now explicit) +- The two palettes are **different ramps**, not a rename: `mono900 #101010 ≈ neutrals800`, app `black #000 ≈ neutrals900`. A swap shifts mid-ramp grays (mono300/400/700 drift Δ24-28) and several green/red shades. Exact shade correspondence in `mapping.md` is **engineering's best-fit, pending design confirmation** on the PR. +- The token export has **fewer** green/red shades (8 semantic) than the brand scale (10) → 2 shades per family collapse onto a neighbour. +- ~~ALFMOB-274 will land partial (blue/yellow/orange deferred on xcassets)~~ → **superseded by follow-up decision:** blue/yellow/orange were **deleted** (no token equivalent, no production usage), so `Colors.xcassets` is **fully** retired and the "no hardcoded hex remains" AC is fully met. See `mapping.md §B`. + +## Still open (owner) +- **Exact shade correspondence for the wire-now families** — owner: **Design**. `mapping.md §A` is the proposed table; confirm/adjust via snapshot review on the PR. +- **blue / yellow / orange replacements** — owner: **Design + khoi.nguyen**. `mapping.md §B` review list; decide one-by-one in a follow-up (likely needs new upstream tokens in `Mindera/Alfie-Mobile-Design-Tokens`). +- **Migration mechanism** (call-site rename to token names vs keep `Colors.*` facade with token-backed values) — surfaced at the approval gate for the user to confirm; recommendation = adopt token names per Decision 1. diff --git a/Docs/Plans/ALFMOB-274-integrate-color-tokens/mapping.md b/Docs/Plans/ALFMOB-274-integrate-color-tokens/mapping.md new file mode 100644 index 00000000..1ec69d4c --- /dev/null +++ b/Docs/Plans/ALFMOB-274-integrate-color-tokens/mapping.md @@ -0,0 +1,78 @@ +# ALFMOB-274 — Color → design-token mapping + +Generated by nearest-hex analysis (ΔRGB on 0–441 scale). Exact correspondence to be **confirmed by design** on the PR. + +## A. Wire now — has a design-token family + +| Old color | Old hex | → Token | Token hex | ΔRGB | +|---|---|---|---|---| +| Black | #000000 | `Primitives.Colours.neutrals900` | #06080A | 14.1 | +| Green050 | #F0F9EB | `Primitives.Colours.semanticSuccess100` | #EDF7E7 | 5.4 | +| Green100 | #E3F4DB | `Primitives.Colours.semanticSuccess100` | #EDF7E7 | 15.9 | +| Green200 | #C2E7B1 | `Primitives.Colours.semanticSuccess200` | #D4EAC3 | 25.6 | +| Green300 | #69C648 | `Primitives.Colours.semanticSuccess400` | #84C553 | 29.2 | +| Green400 | #52AF32 | `Primitives.Colours.semanticSuccess500` | #60A62B | 18.1 | +| Green500 | #399A1A | `Primitives.Colours.semanticSuccess600` | #48911F | 18.1 | +| Green600 | #1C8400 | `Primitives.Colours.semanticSuccess700` | #368316 | 34.1 | +| Green700 | #006F00 | `Primitives.Colours.semanticSuccess800` | #006201 | 13.0 | +| Green800 | #005B00 | `Primitives.Colours.semanticSuccess800` | #006201 | 7.1 | +| Green900 | #004700 | `Primitives.Colours.semanticSuccess800` | #006201 | 27.0 | +| Mono050 | #F9F9F9 | `Primitives.Colours.neutrals100` | #F7F7F7 | 2.9 | +| Mono100 | #F4F5F7 | `Primitives.Colours.neutrals100` | #F7F7F7 | 4.1 | +| Mono200 | #DDDDDD | `Primitives.Colours.neutrals200` | #E9E9E9 | 20.8 | +| Mono300 | #B0B0B0 | `Primitives.Colours.neutrals400` | #A1A1A1 | 26.6 | +| Mono400 | #868686 | `Primitives.Colours.neutrals500` | #767676 | 27.7 | +| Mono500 | #6C6C6C | `Primitives.Colours.neutrals500` | #767676 | 17.3 | +| Mono600 | #535353 | `Primitives.Colours.neutrals600` | #4A4A4A | 15.6 | +| Mono700 | #3C3C3C | `Primitives.Colours.neutrals600` | #4A4A4A | 24.2 | +| Mono800 | #252525 | `Primitives.Colours.neutrals700` | #2B2B2B | 10.4 | +| Mono900 | #101010 | `Primitives.Colours.neutrals800` | #111111 | 1.7 | +| Red050 | #FDF2F2 | `Primitives.Colours.semanticError100` | #FEF2F1 | 1.4 | +| Red100 | #FDE8E8 | `Primitives.Colours.semanticError100` | #FEF2F1 | 13.5 | +| Red200 | #FBD5D5 | `Primitives.Colours.semanticError200` | #F9DEDC | 11.6 | +| Red300 | #F8B4B4 | `Primitives.Colours.semanticError300` | #EA9B9E | 36.1 | +| Red400 | #F98080 | `Primitives.Colours.semanticError400` | #EB676D | 34.6 | +| Red500 | #F64341 | `Primitives.Colours.semanticError500` | #E03E40 | 22.6 | +| Red600 | #E02424 | `Primitives.Colours.semanticError500` | #E03E40 | 38.2 | +| Red700 | #C81E1E | `Primitives.Colours.semanticError600` | #B22525 | 24.2 | +| Red800 | #9B1C1C | `Primitives.Colours.semanticError700` | #952525 | 13.8 | +| Red900 | #771D1D | `Primitives.Colours.semanticError700` | #952525 | 31.8 | +| White | #FFFFFF | `Primitives.Colours.neutrals0` | #FFFFFF | 0.0 | + +## B. No design-token family — DELETED (resolved) + +**Decision (user, follow-up):** delete these entirely rather than defer — they had no design-token +equivalent and no production shipping usage (DebugMenu demos + 1 `#Preview` only). Members removed from +`SecondaryColors` (whole file deleted), 22 colorsets removed, `Colors.xcassets` fully retired. + +The **`Colors.secondary.(blue|yellow|orange)`** references were re-pointed to their nearest generated +token (blue→`neutrals*`, orange/yellow→`semantic*`). Note: a few demo/preview screens (e.g. +`ColorBannerDemoView`, `ColorSelectorComponentView` previews) still use SwiftUI **system** colors +(`.blue`/`.yellow`/`.orange`/`.gray`/…) as illustrative *product-swatch sample data* — those were never +part of the Alfie palette and are intentionally left as platform colors. So the **design palette** is now +grays + success-green + error-red only, even though some throwaway sample data uses system colors. + +| Old color | Old hex | Family | Note | +|---|---|---|---| +| Blue050 | #EBF5FF | Blue | no neutrals/semantic equivalent | +| Blue100 | #E1EFFE | Blue | no neutrals/semantic equivalent | +| Blue200 | #C3DDFD | Blue | no neutrals/semantic equivalent | +| Blue300 | #A4CAFE | Blue | no neutrals/semantic equivalent | +| Blue400 | #76A9FA | Blue | no neutrals/semantic equivalent | +| Blue500 | #3F83F8 | Blue | no neutrals/semantic equivalent | +| Blue600 | #1C64F2 | Blue | no neutrals/semantic equivalent | +| Blue700 | #1A56DB | Blue | no neutrals/semantic equivalent | +| Blue800 | #1E429F | Blue | no neutrals/semantic equivalent | +| Blue900 | #233876 | Blue | no neutrals/semantic equivalent | +| Orange050 | #FFF8F1 | Orange | no neutrals/semantic equivalent | +| Orange100 | #FEECDC | Orange | no neutrals/semantic equivalent | +| Orange200 | #FCD9BD | Orange | no neutrals/semantic equivalent | +| Orange300 | #FDBA8C | Orange | no neutrals/semantic equivalent | +| Orange400 | #FF8A4C | Orange | no neutrals/semantic equivalent | +| Orange500 | #FF5A1F | Orange | no neutrals/semantic equivalent | +| Yellow050 | #FDFDEA | Yellow | no neutrals/semantic equivalent | +| Yellow100 | #FDF6B2 | Yellow | no neutrals/semantic equivalent | +| Yellow200 | #FCE96A | Yellow | no neutrals/semantic equivalent | +| Yellow300 | #FACA15 | Yellow | no neutrals/semantic equivalent | +| Yellow400 | #E3A008 | Yellow | no neutrals/semantic equivalent | +| Yellow500 | #C27803 | Yellow | no neutrals/semantic equivalent | diff --git a/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-1-primary-neutrals.md b/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-1-primary-neutrals.md new file mode 100644 index 00000000..4609eca2 --- /dev/null +++ b/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-1-primary-neutrals.md @@ -0,0 +1,24 @@ +## Phase 1: Neutrals (mono / black / white) + +### Goal +Migrate the primary family to generated `Primitives.Colours.neutrals*` — the bulk (~300 call sites). +App stays green; `Colors.xcassets` still present (secondary + review-list families remain). + +### Acceptance criteria +- [ ] Every `Colors.primary.mono*` / `.white` / `.black` call site now references `Primitives.Colours.neutrals*` per `mapping.md §A` (mechanism per gate). +- [ ] mono/black/white members removed from `PrimaryColors` (or, fallback mechanism: bodies re-pointed to tokens, names kept). +- [ ] No `Color("Mono*"|"Black"|"White", bundle:)` lookups remain. +- [ ] `ThemeProvider.setupAppearance()` `.ui` calls still resolve. + +### Steps +1. **Apply the neutrals mapping** (table: `mapping.md §A`, size: M — scripted per token) — replace each `Colors.primary.monoNNN` with its `Primitives.Colours.neutralsNNN`; `white→neutrals0`; `black→neutrals900`. Why: adopt design-token names (Decision 1). +2. **Strip migrated members** (file: `Theme/Color/PrimaryColors.swift:20`, `Color.swift`, size: S) — remove mono/black/white from struct + protocol + `Colors.primary` facade. Why: source of truth is now tokens. +3. **Verify UIKit bridge** (file: `Theme/ThemeProvider.swift:28,34,38,45,73`, size: XS) — update `Colors.primary.*.ui` → `Primitives.Colours.*.ui`; confirm compiles. Why: appearance proxy must survive. + +### Checkpoint +- [ ] `./Alfie/scripts/verify.sh` passes +- [ ] Acceptance criteria above all met +- [ ] Manual: primary-heavy screen + ProductDetails color sheet snapshot diff reviewed (not blindly recorded) + +### Depends on +none diff --git a/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-2-secondary-semantic.md b/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-2-secondary-semantic.md new file mode 100644 index 00000000..8e384a04 --- /dev/null +++ b/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-2-secondary-semantic.md @@ -0,0 +1,24 @@ +## Phase 2: Semantic green / red + +### Goal +Migrate `green*`→`Primitives.Colours.semanticSuccess*` and `red*`→`semanticError*` per `mapping.md §A`. +Production consumers are semantic (success/error), so the semantic tokens are the correct source. + +### Acceptance criteria +- [ ] All `Colors.secondary.green*` / `.red*` call sites reference `semanticSuccess*` / `semanticError*` per `mapping.md §A`. +- [ ] green/red members removed from `SecondaryColors` + protocol; blue/yellow/orange **retained**. +- [ ] No `Color("Green*"|"Red*", bundle:)` lookups remain. +- [ ] Semantic UI (badge dot, snackbar variants, price strikethrough, input error) renders correctly. + +### Steps +1. **Apply green/red mapping** (table: `mapping.md §A`, files: `Components/Indicators/BadgeViewModifier.swift`, `BadgeTabViewModifier.swift`, `Components/Snackbar/SnackbarView.swift`, `Components/Price/PriceComponentView.swift`, `Theme/Inputs/ThemedInput.swift`, size: S) — swap call sites to `semantic*`. Why: semantic tokens are the source. +2. **Strip green/red members** (file: `Theme/Color/SecondaryColors.swift:55-86`, size: S) — remove green/red from struct + protocol; keep blue/yellow/orange. Why: migrated. +3. **Note 10→8 shade collapses** — verify the two collapsed shades per family (`mapping.md §A`) look acceptable; flag for design. Why: semantic export has fewer shades. + +### Checkpoint +- [ ] `./Alfie/scripts/verify.sh` passes +- [ ] Acceptance criteria above all met +- [ ] Manual: success + error snackbar, input validation error, sale price — colors correct + +### Depends on +Phase 1 diff --git a/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-3-no-token-families.md b/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-3-no-token-families.md new file mode 100644 index 00000000..5a84d35e --- /dev/null +++ b/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-3-no-token-families.md @@ -0,0 +1,26 @@ +## Phase 3: Delete no-token families (blue / yellow / orange) + +### Goal +These families have **no** design-token equivalent (`mapping.md §B`) and no production shipping usage +(only DebugMenu demos + 1 `#Preview`). Per the follow-up decision they were **deleted** — members removed +and the few demo/preview references re-pointed to the nearest generated token (or a platform color in +throwaway sample data). + +### Acceptance criteria +- [x] `blue*` / `yellow*` / `orange*` members removed from `SecondaryColors`. +- [x] No `Colors.secondary.(blue|yellow|orange)` references remain anywhere. +- [x] Demo/preview references re-pointed (PageControl/Button/Motion/etc. → nearest token; ColorBanner sample swatches → platform colors). +- [x] App builds & `verify.sh` green. + +### Steps +1. **Re-point demo/preview usages** (DebugMenu demos + `ThemedDivider` preview, size: S) — `blue→neutrals*`, `orange/yellow→semantic*` per `mapping.md §B`; ColorBanner sample swatches kept as platform colors to match siblings. Why: nothing customer-facing used these. +2. **Delete the members** (file: `Theme/Color/SecondaryColors.swift`, size: XS) — remove blue/yellow/orange from struct + protocol. With green/red already gone, the type is now empty → handled in Phase 4. Why: no token equivalent, no real usage. +3. **Record decision** (file: `mapping.md §B`, size: XS) — document the deletion + nearest-token mapping. Why: audit trail. + +### Checkpoint +- [x] `./Alfie/scripts/verify.sh` passes +- [x] Acceptance criteria above all met +- [x] Manual: DebugMenu color demos render with the surviving palette + +### Depends on +Phase 1, Phase 2 diff --git a/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-4-retire-assets.md b/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-4-retire-assets.md new file mode 100644 index 00000000..d2860927 --- /dev/null +++ b/Docs/Plans/ALFMOB-274-integrate-color-tokens/phase-4-retire-assets.md @@ -0,0 +1,32 @@ +## Phase 4: Full xcassets retirement + +### Goal +With every family migrated (mono/green/red) or deleted (blue/yellow/orange), nothing reads the asset +catalog. Delete `Colors.xcassets` **entirely**, drop its `Package.swift` resource entry, and remove the +now-unused `Colors` facade + `PrimaryColors`/`SecondaryColors` types. Prove no asset color access remains. + +### Acceptance criteria +- [x] `Colors.xcassets` **fully deleted** (all colorsets) and `.process("Theme/Color/Colors.xcassets")` removed from `Package.swift`. +- [x] `Color.swift` (`Colors` enum), `PrimaryColors.swift`, `SecondaryColors.swift` deleted — the whole `Theme/Color/` folder is gone. +- [x] Repo-wide grep confirms no `Color("…")` / `UIColor(named:)` color-asset access remains. +- [x] No `Colors.` / `Primary`/`SecondaryColors` references remain anywhere. +- [x] Snapshot suites: not in the AlfieTests target → none run / nothing to rebaseline (see note below). + +### Steps +1. **Grep-verify no asset/facade refs** (size: S) — `Grep 'Color("'`, `'UIColor(named:'`, `'\bColors\.'` across `Alfie/Alfie` + `AlfieKit/Sources`; re-point stragglers first. Why: safe deletion. +2. **Delete catalog + facade + types** (files: `Theme/Color/*`, `AlfieKit/Package.swift`, size: S) — remove the whole `Colors.xcassets`, `Color.swift`, `PrimaryColors.swift`, `SecondaryColors.swift`, and the `.process(...)` line. Do NOT hand-edit `project.pbxproj`. Why: full retirement. + +### Note — snapshots +Rebaseline is **N/A this ticket.** The snapshot suites are **not in the AlfieTests target membership** +(each file has only a pbxproj file-reference, no build-phase entry — matches the +`ProductDetailsColorSheetSnapshotTests` "Re-add Target Membership" TODO) and have **zero committed +baselines**, so they don't run in `verify.sh`. When re-enabled later, fresh baselines will capture the +new token colors. Recorded here so it isn't a silent gap. + +### Checkpoint +- [x] `./Alfie/scripts/verify.sh` passes (✅ FULL VERIFICATION PASSED) +- [x] Acceptance criteria above all met +- [x] Manual: full-app visual spot-check; dark mode unaffected + +### Depends on +Phase 1, Phase 2, Phase 3 diff --git a/Docs/Plans/ALFMOB-274-integrate-color-tokens/plan.md b/Docs/Plans/ALFMOB-274-integrate-color-tokens/plan.md new file mode 100644 index 00000000..444af8d8 --- /dev/null +++ b/Docs/Plans/ALFMOB-274-integrate-color-tokens/plan.md @@ -0,0 +1,95 @@ +--- +title: Integrate color tokens from design token JSON +ticket: ALFMOB-274 +status: completed +complexity: MEDIUM +mode: auto +blockedBy: [] +blocks: [] +created: 2026-06-23 +--- + +## Overview +Make the ALFMOB-272 generated design tokens the source of truth for Alfie's colors. Per the grilled +decisions, the generated **`Primitives.Colours.*` names are adopted directly** (not hidden behind the old +`mono`/`green`/`red` names). Colors that have a token family are migrated to the token; colors with **no** +token family (`blue`, `yellow`, `orange`) were **deleted entirely** (follow-up decision — see below). +The `Colors` facade, `Primary`/`SecondaryColors`, and `Colors.xcassets` are **fully retired**. + +## Scope split (from grill + follow-up — see `mapping.md`) +- **Migrated (has a token family):** `mono*`→`neutrals*`, `green*`→`semanticSuccess*`, `red*`→`semanticError*`, `white`=`neutrals0` (exact), `black`≈`neutrals900`. ~32 colors / ~335 call sites. Exact shade table in `mapping.md §A` (engineering best-fit, **design confirms via snapshots**). +- **Deleted (no token family):** `blue` (10), `yellow` (6), `orange` (6) = 22 colors. **Follow-up decision: deleted, not deferred** — no token equivalent and no production shipping usage (only DebugMenu demos + 1 `#Preview`). Members + colorsets removed; demo/preview refs re-pointed to nearest token. `mapping.md §B`. + +## Acceptance Criteria +- [x] `mono*`, `white`, `black`, `green*`, `red*` sourced from `Primitives.Colours.*` — no asset lookups. +- [x] Call sites reference the design-token names (per Decision 1) — `Colors.primary/secondary.*` no longer used. +- [x] `blue`/`yellow`/`orange` **deleted** (no force-map); demo/preview refs re-pointed to nearest token (`mapping.md §B`). +- [x] `ThemeProvider` UIKit appearance still resolves after the colorsets are removed. +- [x] `Colors.xcassets` **fully deleted** + `.process(...)` removed from `Package.swift`; `Colors`/`Primary`/`SecondaryColors` types deleted. +- [x] Snapshot suites: not in the AlfieTests target → none run / nothing to rebaseline (recorded in `phase-4`). +- [x] `./Alfie/scripts/verify.sh` → ✅ FULL VERIFICATION PASSED. +- [x] "No hardcoded hex remains" — fully met (no deferral; whole palette is tokens now). + +## Approach +**Adopt design-token names; migrate family-by-family; delete the no-token families.** For each wire-now +family, replace `Colors.primary.*` / `Colors.secondary.*` call sites with the corresponding +`Primitives.Colours.*` token (table in `mapping.md §A`). `blue`/`yellow`/`orange` had no token +equivalent and no production shipping usage, so — per the follow-up decision — they were **deleted**, not +deferred; their few demo/preview references were re-pointed to the nearest token (or to a platform color +in throwaway sample data). With every family migrated or deleted, `PrimaryColors`, `SecondaryColors`, the +`Colors` facade, and the entire `Colors.xcassets` were **removed**. + +**Migration mechanism:** adopt token names at call sites (Decision 1, "design names are source of truth"). +**The exact shade correspondence is engineering best-fit pending design sign-off.** + +Sliced by family so the app stays green after every phase; the asset catalog is **fully retired** at the end. + +## Phases +1. **Neutrals (mono/black/white)** — the bulk (~300 call sites). `phase-1-primary-neutrals.md` +2. **Semantic green/red** — `semanticSuccess`/`semanticError`, mostly validation UI. `phase-2-secondary-semantic.md` +3. **Delete no-token families (blue/yellow/orange)** — remove members; re-point demo/preview refs. `phase-3-no-token-families.md` +4. **Full xcassets retirement** — delete the whole catalog + `Package.swift` resource; delete `Colors`/`Primary`/`SecondaryColors`. `phase-4-retire-assets.md` + +## File Changes (Summary Table) +| File | Module | Type | Change | Owner | +|---|---|---|---|---| +| ~300 call sites under `Alfie/Alfie` + `AlfieKit/Sources` | both | edit | `Colors.primary.mono*`→`Primitives.Colours.neutrals*` per `mapping.md §A` (mechanism per gate) | - | +| green/red call sites (badges, snackbar, price, input) | SharedUI | edit | →`semanticSuccess*`/`semanticError*` | - | +| `Theme/Color/PrimaryColors.swift` | SharedUI | delete | All members migrated → file removed | - | +| `Theme/Color/SecondaryColors.swift` | SharedUI | delete | green/red migrated, blue/yellow/orange deleted → file removed | - | +| `Theme/Color/Color.swift` | SharedUI | delete | `Colors` facade no longer needed → file removed | - | +| `Theme/Color/Colors.xcassets` | SharedUI | delete | **Entire** catalog removed + `.process(...)` dropped from `Package.swift` | - | +| `Helpers/Extensions/Color+Extension.swift` | SharedUI | delete | `Color.black/.white` override removed (Copilot review) | - | +| `Components/Dividers/ThemedDivider.swift` | SharedUI | edit | mono→neutrals; preview orange→token | - | +| `DebugMenu/UI/Demo/Colors/ColorsDemoView.swift` (+ PageControl/Button/Motion/… demos) | DebugMenu | edit | Migrated swatches/accents; dropped blue/yellow/orange showcase rows | - | +| `ProductDetailsTests/ProductDetailsViewModelTests.swift` | tests | edit | Assert swatch default `neutrals900` (was `.black`) | - | + +## Feature Flag +n/a — static palette refactor. + +## Testing Strategy +- **Build/unit:** `./Alfie/scripts/verify.sh` per phase. No unit tests assert color values today. +- **Snapshot:** expect diffs where token hex ≠ old asset hex (`mapping.md §A` ΔRGB column predicts which). Review each; rebaseline intentional changes (`isRecording=true`, re-run, revert, commit refs). `ProductDetailsColorSheetSnapshotTests` most affected. +- **DesignTokenGen tests:** untouched (generator/tokens unchanged). +- **Manual:** spot-check primary-heavy screens, success/error snackbar, input validation, sale price, DebugMenu color demo. Dark mode unaffected (red-team m1). + +## Risks & Mitigations +| Risk | Likelihood | Mitigation | +|---|---|---| +| Token hex ≠ asset hex → visible shifts (mid-ramp grays Δ24-28; several green/red) | High | `mapping.md §A` ΔRGB flags worst offenders; snapshot review; **design sign-off before merge** | +| Large call-site diff if token-name migration chosen (~335 sites) | Med | Mechanical, scriptable per family; phase-by-phase keeps app green; or pick facade-values fallback at gate | +| Leaving blue/yellow/orange on xcassets = ticket partial | High (by design) | Explicit in ACs + `mapping.md §B`; tracked as follow-up; not a silent gap | +| `Color.ui` UIColor bridge breaks after asset removal | Low | Confirmed pure value conversion (`Color+Extension.swift:4`); Phase 4 verify | +| green/red 10→8 shade collapse changes a couple shades | Med | Per `mapping.md §A`; design confirms | + +## Out of Scope +- Adding blue/yellow/orange (and 10-shade brand green/red, pure black) to upstream `Mindera/Alfie-Mobile-Design-Tokens` — design/upstream deliverable; unblocks the review list. +- Full migration to semantic `Theme.*` roles + deprecating the `Colors` API (sparse semantic layer; separate epic). +- Non-color tokens (spacing/typography/sizing). + +## Open Questions (resolved by grill — see `grill.md`) +- ✅ Source-of-truth = generated `Primitives.Colours.*` names (Decision 1). +- ✅ Map-now vs review-list split (Decision 2); reference layer = Primitives not Theme (Decision 3). +- ⏳ **Migration mechanism** (token-name migration [recommended] vs facade values-only) — confirm at approval gate. +- ⏳ **Exact shade table** for wire-now families — design sign-off on PR (`mapping.md §A`). +- ⏳ **blue/yellow/orange replacements** — design + khoi, one-by-one follow-up (`mapping.md §B`). diff --git a/Docs/Plans/ALFMOB-274-integrate-color-tokens/scope.md b/Docs/Plans/ALFMOB-274-integrate-color-tokens/scope.md new file mode 100644 index 00000000..6dc90134 --- /dev/null +++ b/Docs/Plans/ALFMOB-274-integrate-color-tokens/scope.md @@ -0,0 +1,59 @@ +# Scout Report — ALFMOB-274 Integrate color tokens + +**Branch:** ALFMOB-274-integrate-color-tokens (off ALFMOB-272 tip `2bb3eb1`) **Agents:** 3 + +## Existing color system (the API to preserve) +- `Theme/Color/PrimaryColors.swift:4` — `PrimaryColorsProtocol`: `mono900…mono050` (10), `black`, `white`. Struct loads each from `Color("Mono900", bundle: .module)` (xcassets). +- `Theme/Color/SecondaryColors.swift:3` — `SecondaryColorsProtocol`: green/red/blue (10 shades each, 900→050), **yellow/orange (6 shades each: 500→050)**. Same xcassets construction. +- `Theme/Color/Color.swift:3` — `public enum Colors { static let primary/secondary }` — single composition point; ~78 files call `Colors.primary.*` / `Colors.secondary.*`. +- `Theme/Color/Colors.xcassets/` — 54 colorsets backing the above. +- `Theme/ThemeProvider.swift` — does NOT route colors; consumes `Colors.primary.*.ui` for UIKit appearance. `Color.ui` (`Utils/Extensions/Color+Extension.swift:4`) is a pure value conversion (no asset lookup) → survives xcassets removal. +- No `GeneratedColors.swift` exists yet. + +## Generated tokens (what ALFMOB-272 actually emits) +- `GeneratedTokens/Primitives+Generated.swift:10` — `enum Primitives.Colours`: **`neutrals0…900` (10), `semanticError100…800` (8), `semanticSuccess100…800` (8), `transparentTransparent` (1)**. Concrete `Color(.sRGB, red:…)` literals. +- `GeneratedTokens/Theme+Generated.swift:6` — `enum Theme`: semantic colors as references to `Primitives.Colours.*`. +- Source JSON `SharedUI/DesignTokens/.primitives.alfie-theme.tokens.json` (pulled from upstream `Mindera/Alfie-Mobile-Design-Tokens`). Color keys confirmed: ONLY `colours-neutrals-{0..900}`, `colours-semantic-error-{100..800}`, `colours-semantic-success-{100..800}`, `colours-transparent-transparent`. +- Generator: `Tools/DesignTokenGen` (standalone, outside AlfieKit graph). Run via `./Alfie/scripts/generate-design-tokens.sh`; tokens pulled via `pull-design-tokens.sh`. + +## ⚠️ BLOCKER: palette gap +| App API member | Token coverage | +|---|---| +| `mono050…mono900` (10) | `neutrals0…neutrals900` (10) — **rename + endpoint mapping question** (mono050↔neutrals0 or neutrals100?) | +| `white` | `neutrals0` = (1,1,1) ✓ exact | +| `black` | none exact (`neutrals900` ≈ 0.02,0.03,0.04 near-black; no pure #000) | +| `green050…900` (10) | `semanticSuccess100…800` (8) — count mismatch, "success" ≠ brand green scale | +| `red050…900` (10) | `semanticError100…800` (8) — count mismatch, "error" ≠ brand red scale | +| `blue050…900` (10) | **NONE** | +| `yellow050…500` (6) | **NONE** | +| `orange050…500` (6) | **NONE** | + +The ALFMOB-264 epic `phase-2-color.md` assumed Phase 1 emits mono/green/red/blue/yellow/orange tokens to map 1:1. It does not. Its own step 1 hedged: *"If tokens differ, reconcile the protocol — don't silently drop."* The canonical hex for the missing families currently lives ONLY in `Colors.xcassets`; `DesignTokens.md` says tokens must be edited upstream, not authored locally. + +→ ACs *"all primary/secondary colors sourced from tokens"* + *"no hardcoded hex remains"* are **not achievable as written** until the upstream token export publishes the full brand palette. Decision required (see _status.md / chat). + +## ✅ DECISION (user, 2026-06-23) +**Replace the existing palette entirely with the generated tokens.** Remove `Colors.xcassets` and the +hardcoded `PrimaryColors`/`SecondaryColors` backing; re-point everything onto generated tokens +(`Primitives.Colours.*` / semantic `Theme.*`). Existing members with no generated equivalent are +migrated to the nearest generated/semantic token (mappings to be hardened in grill), not preserved. + +## Usage data (367 call sites; member → count) +- **mono scale** (~208): mono900 (74), mono500 (27), mono300 (22), mono200 (22), mono400 (17), mono050 (14), mono100 (13), mono700 (8), mono600 (6), mono800 (5). → `neutrals*` (rename + endpoint mapping). +- **black (57) / white (38)** (~95): → `neutrals0` (white exact); black → token TBD (no pure-black token; `neutrals900` near-black or `Theme` content color). +- **green/red — production = SEMANTIC** (success/error): badges (`BadgeViewModifier`, `BadgeTabViewModifier`), `SnackbarView`, `PriceComponentView`, `ThemedInput` (validation). → `semanticSuccess*` / `semanticError*` or `Theme.*` semantic. Counts: red800 (8), green800 (5), red700 (4), green300 (3), then long tail of 1-2. +- **blue — production = only `ThemedDivider`** (blue500 ×13 incl. demos; blue300 ×4). No blue token → mapping TBD (likely a neutral/semantic border color). +- **yellow/orange — ONLY in DebugMenu demo views** (`ColorsDemoView`, `ButtonDemoView`, etc.). No production UI. Demo palette screens showcase colors that no longer exist → rework/trim needed. +- DebugMenu demo views (`ColorsDemoView` etc.) are the heaviest secondary consumers; they render the OLD palette and will need to render the new generated palette instead. + +### Open mapping decisions for grill +1. mono050↔neutrals0 or neutrals100? (10 mono vs neutrals 0,100…900 — endpoint alignment). +2. `black` target token (no pure #000 in tokens). +3. green/red → `semanticSuccess/Error` (8 shades) vs the 10-shade brand scale call sites expect — shade remapping table. +4. blue (`ThemedDivider`) target. +5. Reshape of the `Colors.primary/secondary` API: keep the protocol facade (re-point bodies) vs migrate call sites to `Theme.*`/`Primitives.*` directly. Facade keeps 367 call sites unchanged — strongly preferred for blast radius. +6. DebugMenu `ColorsDemoView` (+ yellow/orange demos): re-point to generated palette or trim. + +## Tests affected +- No unit tests assert color values. Snapshot suites in `Alfie/AlfieTests/Snapshots/` (esp. `ProductDetailsColorSheetSnapshotTests` rendering `Colors.primary.mono*`) shift if any hex changes; `isRecording=false` per-file, references not committed. +- `Tools/DesignTokenGen/Tests` assert on emitted `Color(.sRGB…)` + component arrays (would change if generator/tokens change).