extends RefCounted ## Shared UI styling: dark, warm, slightly translucent panels. const PANEL_BG := Color(0.09, 0.075, 0.06, 0.88) const PANEL_BORDER := Color(0.42, 0.33, 0.22, 0.9) const SLOT_BG := Color(0.16, 0.13, 0.10, 0.85) const SLOT_BORDER := Color(0.32, 0.26, 0.18, 0.9) const SELECTED := Color(0.95, 0.78, 0.35, 1.0) const TEXT := Color(0.93, 0.89, 0.80) const TEXT_DIM := Color(0.68, 0.63, 0.55) const OK := Color(0.55, 0.85, 0.45) const BAD := Color(0.95, 0.45, 0.35) static func box(bg: Color, border: Color, width: int = 2, radius: int = 6, pad: int = 10) -> StyleBoxFlat: var s := StyleBoxFlat.new() s.bg_color = bg s.border_color = border s.set_border_width_all(width) s.set_corner_radius_all(radius) s.set_content_margin_all(pad) return s static func panel() -> PanelContainer: var p := PanelContainer.new() p.add_theme_stylebox_override("panel", box(PANEL_BG, PANEL_BORDER, 2, 8, 14)) return p static func label(text: String, size: int = 16, color: Color = TEXT) -> Label: var l := Label.new() l.text = text l.add_theme_font_size_override("font_size", size) l.add_theme_color_override("font_color", color) l.add_theme_color_override("font_outline_color", Color(0, 0, 0, 0.8)) l.add_theme_constant_override("outline_size", 4) return l