summaryrefslogtreecommitdiff
path: root/makima/ios/Sources/Makima/Design/Palette.swift
diff options
context:
space:
mode:
Diffstat (limited to 'makima/ios/Sources/Makima/Design/Palette.swift')
-rw-r--r--makima/ios/Sources/Makima/Design/Palette.swift41
1 files changed, 41 insertions, 0 deletions
diff --git a/makima/ios/Sources/Makima/Design/Palette.swift b/makima/ios/Sources/Makima/Design/Palette.swift
new file mode 100644
index 0000000..abb531d
--- /dev/null
+++ b/makima/ios/Sources/Makima/Design/Palette.swift
@@ -0,0 +1,41 @@
+import SwiftUI
+
+/// Central color palette, ported from the makima.jp Tailwind config.
+/// Keep in lockstep with `frontend/src/index.css` and component classes.
+enum Palette {
+ /// `#0c1729` — app background
+ static let background = Color(hex: 0x0C1729)
+ /// Slightly lighter panel inset (`#0f1c2f`)
+ static let panel = Color(hex: 0x0F1C2F)
+ /// Deeper backdrop used behind masthead gradients
+ static let backgroundDeep = Color(hex: 0x0B1220)
+ /// `#f0f5ff` — brightest foreground (titles)
+ static let foreground = Color(hex: 0xF0F5FF)
+ /// `#9bc3ff` — primary foreground (nav, labels)
+ static let accent = Color(hex: 0x9BC3FF)
+ /// `#dbe7ff` — body text
+ static let body = Color(hex: 0xDBE7FF)
+ /// `#e4edff` — softer body
+ static let bodySoft = Color(hex: 0xE4EDFF)
+ /// Muted / secondary foreground
+ static let foregroundMuted = Color(hex: 0x9BC3FF).opacity(0.65)
+ /// `#3f6fb3` — primary border
+ static let border = Color(hex: 0x3F6FB3)
+ /// Subtle dashed-border tint (`rgba(117,170,252,0.35)`)
+ static let borderMuted = Color(red: 117/255, green: 170/255, blue: 252/255).opacity(0.35)
+ /// Amber alert (pending questions)
+ static let warn = Color(hex: 0xF59E0B)
+ /// OK / running
+ static let ok = Color(hex: 0x4ADE80)
+ /// Error / failed
+ static let danger = Color(hex: 0xF87171)
+}
+
+extension Color {
+ init(hex: UInt32, alpha: Double = 1.0) {
+ let r = Double((hex >> 16) & 0xFF) / 255
+ let g = Double((hex >> 8) & 0xFF) / 255
+ let b = Double( hex & 0xFF) / 255
+ self.init(.sRGB, red: r, green: g, blue: b, opacity: alpha)
+ }
+}