summaryrefslogtreecommitdiff
path: root/makima/ios/Sources/Makima/Design/Components/Badge.swift
diff options
context:
space:
mode:
Diffstat (limited to 'makima/ios/Sources/Makima/Design/Components/Badge.swift')
-rw-r--r--makima/ios/Sources/Makima/Design/Components/Badge.swift28
1 files changed, 28 insertions, 0 deletions
diff --git a/makima/ios/Sources/Makima/Design/Components/Badge.swift b/makima/ios/Sources/Makima/Design/Components/Badge.swift
new file mode 100644
index 0000000..4c870a7
--- /dev/null
+++ b/makima/ios/Sources/Makima/Design/Components/Badge.swift
@@ -0,0 +1,28 @@
+import SwiftUI
+
+/// Small inline badge — mirrors the web's
+/// `px-2 py-1 border border-[#3f6fb3] bg-[#0f1c2f] text-[#9bc3ff] font-mono text-xs tracking-wide uppercase`
+struct Badge: View {
+ let text: String
+ var subtitle: String?
+
+ var body: some View {
+ HStack(spacing: 6) {
+ Text(text)
+ .font(.system(.footnote, design: .default))
+ .foregroundStyle(Palette.accent)
+ if let subtitle {
+ Text("·")
+ .font(Typography.navLabel)
+ .foregroundStyle(Palette.borderMuted)
+ Text(subtitle)
+ .font(Typography.navLabel)
+ .foregroundStyle(Palette.foregroundMuted)
+ }
+ }
+ .padding(.horizontal, 8)
+ .padding(.vertical, 4)
+ .background(Palette.panel)
+ .overlay(Rectangle().strokeBorder(Palette.border, lineWidth: 1))
+ }
+}