Restore ocean palette to technical menus

This commit is contained in:
Alexander Sellite 2026-07-31 13:30:36 -04:00
parent 59bdb07fc5
commit 99775ddbfb
11 changed files with 200 additions and 123 deletions

View file

@ -6,10 +6,23 @@ const PAPER: Color = Color("eee2bd")
const PAPER_ALT: Color = Color("f3ecd7")
const INK: Color = Color("28251f")
const MUTED_INK: Color = Color("5f5547")
const BORDER: Color = Color("473d2e")
# PAPER/INK remain available only for intentionally paper-like content such as
# a letter body. Technical surfaces use this shared ocean palette.
const OCEAN_PANEL_DEEP: Color = Color("0d2c3a")
const OCEAN_PANEL_MID: Color = Color("123f4e")
const OCEAN_FIELD: Color = Color("081f2b")
const OCEAN_BUTTON: Color = Color("123f4e")
const OCEAN_BUTTON_HOVER: Color = Color("196072")
const OCEAN_BUTTON_PRESSED: Color = Color("0b3341")
const OCEAN_SELECTED: Color = Color("238697")
const OCEAN_TEXT_PRIMARY: Color = Color("e6f7f7")
const OCEAN_TEXT_SECONDARY: Color = Color("9fcfd2")
const OCEAN_DISABLED: Color = Color("38535b")
const OCEAN_DANGER: Color = Color("9e4550")
const NAVY: Color = Color("092b3d")
const NAVY_HOVER: Color = Color("12465b")
const GREEN: Color = Color("31594d")
const BORDER: Color = Color("473d2e")
const LIGHT_TEXT: Color = Color("f5eed9")
const DISABLED_TEXT: Color = Color(0.33, 0.36, 0.35, 0.72)
const MOTION_TWEEN_META: StringName = &"utility_page_motion_tween"
@ -21,25 +34,20 @@ static func apply_page(root: Control) -> void:
static func panel_style() -> StyleBoxFlat:
var style := StyleBoxFlat.new()
style.bg_color = PAPER
style.border_color = BORDER
style.set_border_width_all(4)
style.bg_color = OCEAN_PANEL_DEEP
style.set_border_width_all(0)
style.set_corner_radius_all(16)
style.content_margin_left = 26
style.content_margin_right = 26
style.content_margin_top = 20
style.content_margin_bottom = 20
style.shadow_color = Color(0.02, 0.075, 0.11, 0.34)
style.shadow_size = 7
style.shadow_offset = Vector2(5, 6)
return style
static func row_style(selected: bool = false) -> StyleBoxFlat:
var style := StyleBoxFlat.new()
style.bg_color = NAVY if selected else PAPER_ALT
style.border_color = Color(BORDER, 0.55)
style.set_border_width_all(2)
style.bg_color = OCEAN_SELECTED if selected else OCEAN_PANEL_MID
style.set_border_width_all(0)
style.set_corner_radius_all(8)
style.content_margin_left = 12
style.content_margin_right = 12
@ -78,6 +86,40 @@ static func apply_button(button: BaseButton) -> void:
button.custom_minimum_size.y = maxf(button.custom_minimum_size.y, 40.0)
static func ocean_button_style(color: Color) -> StyleBoxFlat:
var style := button_style(color)
style.set_border_width_all(0)
return style
static func apply_ocean_button(button: BaseButton) -> void:
button.add_theme_font_override("font", TuffyFont)
button.add_theme_color_override("font_color", OCEAN_TEXT_PRIMARY)
button.add_theme_color_override("font_hover_color", Color.WHITE)
button.add_theme_color_override("font_pressed_color", Color.WHITE)
button.add_theme_color_override("font_focus_color", Color.WHITE)
button.add_theme_color_override(
"font_disabled_color",
Color(OCEAN_TEXT_SECONDARY, 0.52),
)
button.add_theme_stylebox_override(
"normal", ocean_button_style(OCEAN_BUTTON)
)
button.add_theme_stylebox_override(
"hover", ocean_button_style(OCEAN_BUTTON_HOVER)
)
button.add_theme_stylebox_override(
"pressed", ocean_button_style(OCEAN_SELECTED)
)
button.add_theme_stylebox_override(
"focus", ocean_button_style(OCEAN_SELECTED)
)
button.add_theme_stylebox_override(
"disabled", ocean_button_style(OCEAN_DISABLED)
)
button.custom_minimum_size.y = maxf(button.custom_minimum_size.y, 40.0)
static func apply_line_edit(edit: LineEdit) -> void:
edit.add_theme_font_override("font", TuffyFont)
edit.add_theme_color_override("font_color", LIGHT_TEXT)
@ -95,6 +137,40 @@ static func apply_line_edit(edit: LineEdit) -> void:
)
static func apply_ocean_line_edit(edit: LineEdit) -> void:
edit.add_theme_font_override("font", TuffyFont)
edit.add_theme_color_override("font_color", OCEAN_TEXT_PRIMARY)
edit.add_theme_color_override(
"font_placeholder_color", Color(OCEAN_TEXT_SECONDARY, 0.78)
)
edit.add_theme_color_override("font_selected_color", Color.WHITE)
edit.add_theme_color_override("caret_color", OCEAN_TEXT_PRIMARY)
edit.add_theme_color_override("selection_color", OCEAN_SELECTED)
edit.add_theme_color_override("font_uneditable_color", OCEAN_TEXT_SECONDARY)
edit.add_theme_stylebox_override(
"normal", ocean_button_style(OCEAN_FIELD)
)
edit.add_theme_stylebox_override(
"focus", ocean_button_style(OCEAN_SELECTED)
)
edit.add_theme_stylebox_override(
"read_only", ocean_button_style(Color(OCEAN_FIELD, 0.82))
)
static func apply_text_edit(edit: TextEdit) -> void:
edit.add_theme_font_override("font", TuffyFont)
edit.add_theme_color_override("font_color", OCEAN_TEXT_PRIMARY)
edit.add_theme_color_override(
"font_placeholder_color", Color(OCEAN_TEXT_SECONDARY, 0.78)
)
edit.add_theme_color_override("font_selected_color", Color.WHITE)
edit.add_theme_color_override("caret_color", OCEAN_TEXT_PRIMARY)
edit.add_theme_color_override("selection_color", OCEAN_SELECTED)
edit.add_theme_stylebox_override("normal", ocean_button_style(OCEAN_FIELD))
edit.add_theme_stylebox_override("focus", ocean_button_style(OCEAN_SELECTED))
static func animate_in(control: Control) -> void:
_cancel_motion(control)
control.pivot_offset = control.size * 0.5