Skip to content

Commit 03fc0e6

Browse files
committed
Use secondary color for catalog models
Catalog models now use secondary color for all visual elements (icon, model name, download arrow) to create a more subtle, de-emphasized appearance that distinguishes them from installed models. This makes the visual hierarchy clearer: installed models use primary color to indicate they're ready to use, while catalog models use secondary color to indicate they're available but not yet installed.
1 parent 7f0e3ee commit 03fc0e6

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed

LlamaBarn/Menu/CatalogIconView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ final class CatalogIconView: NSView {
1717

1818
imageView.translatesAutoresizingMaskIntoConstraints = false
1919
imageView.symbolConfiguration = .init(pointSize: Layout.uiIconSize, weight: .regular)
20-
imageView.contentTintColor = Typography.primaryColor
2120

2221
addSubview(imageView)
2322
NSLayoutConstraint.activate([
@@ -45,5 +44,6 @@ final class CatalogIconView: NSView {
4544
private func refresh() {
4645
guard let layer else { return }
4746
layer.setBackgroundColor(backgroundColor, in: self)
47+
imageView.contentTintColor = Typography.secondaryColor
4848
}
4949
}

LlamaBarn/Menu/CatalogModelItemView.swift

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ final class CatalogModelItemView: ItemView {
3838
}
3939

4040
override func highlightDidChange(_ highlighted: Bool) {
41-
iconView.isHighlighted = highlighted
41+
// No color changes on hover - catalog models stay with secondary colors
4242
}
4343

4444
private func setup() {
@@ -129,23 +129,16 @@ final class CatalogModelItemView: ItemView {
129129
private func makeModelNameAttributedString(compatible: Bool) -> NSAttributedString {
130130
let result = NSMutableAttributedString()
131131

132-
// Use tertiary color for incompatible models
133-
let familyColor = compatible ? Typography.primaryColor : Typography.tertiaryColor
134-
let sizeColor = compatible ? Typography.secondaryColor : Typography.tertiaryColor
132+
// Use secondary color for catalog models, tertiary for incompatible models
133+
let textColor = compatible ? Typography.secondaryColor : Typography.tertiaryColor
135134

136-
// Family name in primary style
137-
let familyAttributes: [NSAttributedString.Key: Any] = [
135+
// Family name and size both use secondary color in catalog
136+
let attributes: [NSAttributedString.Key: Any] = [
138137
.font: Typography.primary,
139-
.foregroundColor: familyColor,
138+
.foregroundColor: textColor,
140139
]
141-
result.append(NSAttributedString(string: model.family, attributes: familyAttributes))
142-
143-
// Size in primary font with secondary color
144-
let sizeAttributes: [NSAttributedString.Key: Any] = [
145-
.font: Typography.primary,
146-
.foregroundColor: sizeColor,
147-
]
148-
result.append(NSAttributedString(string: " \(model.sizeLabel)", attributes: sizeAttributes))
140+
result.append(NSAttributedString(string: model.family, attributes: attributes))
141+
result.append(NSAttributedString(string: " \(model.sizeLabel)", attributes: attributes))
149142

150143
return result
151144
}
@@ -176,7 +169,7 @@ final class CatalogModelItemView: ItemView {
176169

177170
// Colors: status indicator only (label color is handled in makeModelNameAttributedString)
178171
statusIndicator.contentTintColor =
179-
compatible ? Typography.primaryColor : Typography.tertiaryColor
172+
compatible ? Typography.secondaryColor : Typography.tertiaryColor
180173

181174
// Clear highlight if no longer actionable
182175
if !highlightEnabled { setHighlight(false) }

0 commit comments

Comments
 (0)