From 6ef71aaa310c0228b35970d3d93dbba19d87699f Mon Sep 17 00:00:00 2001 From: Phillip Tarrant Date: Sat, 11 Jul 2026 09:47:21 -0500 Subject: [PATCH] fix(shell): readable ink prose + uniform consumable tiles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The narration RichTextLabel had no theme styling, so it rendered near-white and was unreadable on parchment. Add a base RichTextLabel style to the theme (dark INK_BODY serif at 20px, italic face wired) — systemic and previews in the editor; every parchment prose surface now reads as dark ink. Also clip the consumable slot labels so a long name ("Antidote") can't stretch its tile wider than the empty ones — all 8 stay a uniform 62px. Co-Authored-By: Claude Opus 4.8 (1M context) --- client/assets/theme/game_theme.tres | 199 ++++++++++++----------- client/scenes/shell/MainWindowShell.tscn | 16 ++ client/scripts/theme/build_game_theme.gd | 14 ++ 3 files changed, 132 insertions(+), 97 deletions(-) diff --git a/client/assets/theme/game_theme.tres b/client/assets/theme/game_theme.tres index 7c05cc2..3b1a1ad 100644 --- a/client/assets/theme/game_theme.tres +++ b/client/assets/theme/game_theme.tres @@ -1,12 +1,13 @@ [gd_resource type="Theme" format=3] -[ext_resource type="FontFile" path="res://assets/theme/fonts/ArchitectsDaughter-Regular.ttf" id="1_cu4xe"] -[ext_resource type="FontFile" path="res://assets/theme/fonts/JetBrainsMono-VariableFont_wght.ttf" id="2_605w4"] -[ext_resource type="FontFile" path="res://assets/theme/fonts/EBGaramond-VariableFont_wght.ttf" id="3_4lwr2"] +[ext_resource type="FontFile" path="res://assets/theme/fonts/ArchitectsDaughter-Regular.ttf" id="1_605w4"] +[ext_resource type="FontFile" path="res://assets/theme/fonts/JetBrainsMono-VariableFont_wght.ttf" id="2_4lwr2"] +[ext_resource type="FontFile" path="res://assets/theme/fonts/EBGaramond-VariableFont_wght.ttf" id="3_eckwq"] +[ext_resource type="FontFile" path="res://assets/theme/fonts/EBGaramond-Italic-VariableFont_wght.ttf" id="4_i0b23"] -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_eckwq"] +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cqbvn"] -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_i0b23"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q5gpk"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -22,7 +23,7 @@ corner_radius_top_right = 3 corner_radius_bottom_right = 3 corner_radius_bottom_left = 3 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_cqbvn"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bbpmc"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -38,7 +39,7 @@ corner_radius_top_right = 3 corner_radius_bottom_right = 3 corner_radius_bottom_left = 3 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q5gpk"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_73lme"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -54,7 +55,7 @@ corner_radius_top_right = 3 corner_radius_bottom_right = 3 corner_radius_bottom_left = 3 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bbpmc"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_js3tr"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -70,9 +71,9 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_73lme"] +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ube3r"] -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_js3tr"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2tooq"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -88,7 +89,7 @@ corner_radius_top_right = 8 corner_radius_bottom_right = 8 corner_radius_bottom_left = 8 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ube3r"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4kten"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -104,7 +105,7 @@ corner_radius_top_right = 8 corner_radius_bottom_right = 8 corner_radius_bottom_left = 8 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2tooq"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_p6wtm"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -120,7 +121,7 @@ corner_radius_top_right = 8 corner_radius_bottom_right = 8 corner_radius_bottom_left = 8 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4kten"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0fjdt"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -136,7 +137,7 @@ corner_radius_top_right = 6 corner_radius_bottom_right = 6 corner_radius_bottom_left = 6 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_p6wtm"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ns3kg"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -153,7 +154,7 @@ corner_radius_top_right = 6 corner_radius_bottom_right = 6 corner_radius_bottom_left = 6 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0fjdt"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jly1r"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -169,46 +170,14 @@ corner_radius_top_right = 8 corner_radius_bottom_right = 8 corner_radius_bottom_left = 8 -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ns3kg"] - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jly1r"] -content_margin_left = 12.0 -content_margin_top = 6.0 -content_margin_right = 12.0 -content_margin_bottom = 6.0 -bg_color = Color(0.9019608, 0.8509804, 0.72156864, 1) -border_width_left = 1 -border_width_top = 1 -border_width_right = 1 -border_width_bottom = 1 -border_color = Color(0.3529412, 0.2627451, 0.14901961, 1) -corner_radius_top_left = 8 -corner_radius_top_right = 8 -corner_radius_bottom_right = 8 -corner_radius_bottom_left = 8 - -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lw8lk"] -content_margin_left = 12.0 -content_margin_top = 6.0 -content_margin_right = 12.0 -content_margin_bottom = 6.0 -bg_color = Color(0.94509804, 0.9098039, 0.8235294, 1) -border_width_left = 1 -border_width_top = 1 -border_width_right = 1 -border_width_bottom = 1 -border_color = Color(0.6627451, 0.5803922, 0.39215687, 1) -corner_radius_top_left = 8 -corner_radius_top_right = 8 -corner_radius_bottom_right = 8 -corner_radius_bottom_left = 8 +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_lw8lk"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nh0e7"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 content_margin_bottom = 6.0 -bg_color = Color(0.8509804, 0.7882353, 0.63529414, 1) +bg_color = Color(0.9019608, 0.8509804, 0.72156864, 1) border_width_left = 1 border_width_top = 1 border_width_right = 1 @@ -229,13 +198,45 @@ border_width_left = 1 border_width_top = 1 border_width_right = 1 border_width_bottom = 1 +border_color = Color(0.6627451, 0.5803922, 0.39215687, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nmowx"] +content_margin_left = 12.0 +content_margin_top = 6.0 +content_margin_right = 12.0 +content_margin_bottom = 6.0 +bg_color = Color(0.8509804, 0.7882353, 0.63529414, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.3529412, 0.2627451, 0.14901961, 1) +corner_radius_top_left = 8 +corner_radius_top_right = 8 +corner_radius_bottom_right = 8 +corner_radius_bottom_left = 8 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_oi067"] +content_margin_left = 12.0 +content_margin_top = 6.0 +content_margin_right = 12.0 +content_margin_bottom = 6.0 +bg_color = Color(0.94509804, 0.9098039, 0.8235294, 1) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 border_color = Color(0.7490196, 0.65882355, 0.47058824, 1) corner_radius_top_left = 6 corner_radius_top_right = 6 corner_radius_bottom_right = 6 corner_radius_bottom_left = 6 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nmowx"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ukblj"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -251,7 +252,7 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_oi067"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_utt73"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -267,7 +268,7 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ukblj"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5u8fh"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -283,7 +284,7 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_utt73"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_p0qbh"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -299,7 +300,7 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5u8fh"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6y6ak"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -315,9 +316,9 @@ corner_radius_top_right = 4 corner_radius_bottom_right = 4 corner_radius_bottom_left = 4 -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_p0qbh"] +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_txxuc"] -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6y6ak"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7d6ug"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -333,7 +334,7 @@ corner_radius_top_right = 14 corner_radius_bottom_right = 14 corner_radius_bottom_left = 14 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_txxuc"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_najyk"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -349,7 +350,7 @@ corner_radius_top_right = 14 corner_radius_bottom_right = 14 corner_radius_bottom_left = 14 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7d6ug"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jtb1k"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -365,9 +366,9 @@ corner_radius_top_right = 14 corner_radius_bottom_right = 14 corner_radius_bottom_left = 14 -[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_najyk"] +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wmbj4"] -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_jtb1k"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xdylb"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -383,7 +384,7 @@ corner_radius_top_right = 14 corner_radius_bottom_right = 14 corner_radius_bottom_left = 14 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wmbj4"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pjnll"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -399,7 +400,7 @@ corner_radius_top_right = 14 corner_radius_bottom_right = 14 corner_radius_bottom_left = 14 -[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xdylb"] +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_klelq"] content_margin_left = 12.0 content_margin_top = 6.0 content_margin_right = 12.0 @@ -416,68 +417,72 @@ corner_radius_bottom_right = 14 corner_radius_bottom_left = 14 [resource] -default_font = ExtResource("3_4lwr2") +default_font = ExtResource("3_eckwq") default_font_size = 18 Accent/base_type = &"Label" Accent/colors/font_color = Color(0.56078434, 0.41568628, 0.16470589, 1) Accent/font_sizes/font_size = 24 -Accent/fonts/font = ExtResource("1_cu4xe") +Accent/fonts/font = ExtResource("1_605w4") Chip/base_type = &"Button" Chip/colors/font_color = Color(0.6039216, 0.56078434, 0.47058824, 1) Chip/font_sizes/font_size = 11 -Chip/fonts/font = ExtResource("2_605w4") -Chip/styles/focus = SubResource("StyleBoxEmpty_eckwq") -Chip/styles/hover = SubResource("StyleBoxFlat_i0b23") -Chip/styles/normal = SubResource("StyleBoxFlat_cqbvn") -Chip/styles/pressed = SubResource("StyleBoxFlat_q5gpk") +Chip/fonts/font = ExtResource("2_4lwr2") +Chip/styles/focus = SubResource("StyleBoxEmpty_cqbvn") +Chip/styles/hover = SubResource("StyleBoxFlat_q5gpk") +Chip/styles/normal = SubResource("StyleBoxFlat_bbpmc") +Chip/styles/pressed = SubResource("StyleBoxFlat_73lme") DarkPanel/base_type = &"PanelContainer" -DarkPanel/styles/panel = SubResource("StyleBoxFlat_bbpmc") +DarkPanel/styles/panel = SubResource("StyleBoxFlat_js3tr") DockButton/base_type = &"Button" DockButton/colors/font_color = Color(0.7882353, 0.7411765, 0.6392157, 1) -DockButton/styles/focus = SubResource("StyleBoxEmpty_73lme") -DockButton/styles/hover = SubResource("StyleBoxFlat_js3tr") -DockButton/styles/normal = SubResource("StyleBoxFlat_ube3r") -DockButton/styles/pressed = SubResource("StyleBoxFlat_2tooq") +DockButton/styles/focus = SubResource("StyleBoxEmpty_ube3r") +DockButton/styles/hover = SubResource("StyleBoxFlat_2tooq") +DockButton/styles/normal = SubResource("StyleBoxFlat_4kten") +DockButton/styles/pressed = SubResource("StyleBoxFlat_p6wtm") Heading/base_type = &"Label" Heading/colors/font_color = Color(0.22745098, 0.18431373, 0.10980392, 1) Heading/font_sizes/font_size = 34 -Heading/fonts/font = ExtResource("3_4lwr2") +Heading/fonts/font = ExtResource("3_eckwq") ItemTile/base_type = &"PanelContainer" -ItemTile/styles/panel = SubResource("StyleBoxFlat_4kten") +ItemTile/styles/panel = SubResource("StyleBoxFlat_0fjdt") ItemTileEmpty/base_type = &"PanelContainer" -ItemTileEmpty/styles/panel = SubResource("StyleBoxFlat_p6wtm") +ItemTileEmpty/styles/panel = SubResource("StyleBoxFlat_ns3kg") Mono/base_type = &"Label" Mono/colors/font_color = Color(0.6039216, 0.56078434, 0.47058824, 1) Mono/font_sizes/font_size = 13 -Mono/fonts/font = ExtResource("2_605w4") +Mono/fonts/font = ExtResource("2_4lwr2") ParchmentButton/base_type = &"Button" ParchmentButton/colors/font_color = Color(0.2901961, 0.24705882, 0.17254902, 1) ParchmentButton/colors/font_disabled_color = Color(0.41568628, 0.3529412, 0.22745098, 1) -ParchmentButton/styles/disabled = SubResource("StyleBoxFlat_0fjdt") -ParchmentButton/styles/focus = SubResource("StyleBoxEmpty_ns3kg") -ParchmentButton/styles/hover = SubResource("StyleBoxFlat_jly1r") -ParchmentButton/styles/normal = SubResource("StyleBoxFlat_lw8lk") -ParchmentButton/styles/pressed = SubResource("StyleBoxFlat_nh0e7") +ParchmentButton/styles/disabled = SubResource("StyleBoxFlat_jly1r") +ParchmentButton/styles/focus = SubResource("StyleBoxEmpty_lw8lk") +ParchmentButton/styles/hover = SubResource("StyleBoxFlat_nh0e7") +ParchmentButton/styles/normal = SubResource("StyleBoxFlat_dtr07") +ParchmentButton/styles/pressed = SubResource("StyleBoxFlat_nmowx") ParchmentCard/base_type = &"PanelContainer" -ParchmentCard/styles/panel = SubResource("StyleBoxFlat_dtr07") +ParchmentCard/styles/panel = SubResource("StyleBoxFlat_oi067") ParchmentInset/base_type = &"PanelContainer" -ParchmentInset/styles/panel = SubResource("StyleBoxFlat_nmowx") +ParchmentInset/styles/panel = SubResource("StyleBoxFlat_ukblj") PrimaryCTA/base_type = &"Button" PrimaryCTA/colors/font_color = Color(0.9411765, 0.9019608, 0.8156863, 1) PrimaryCTA/colors/font_disabled_color = Color(0.6039216, 0.56078434, 0.47058824, 1) -PrimaryCTA/styles/disabled = SubResource("StyleBoxFlat_oi067") -PrimaryCTA/styles/hover = SubResource("StyleBoxFlat_ukblj") -PrimaryCTA/styles/normal = SubResource("StyleBoxFlat_utt73") -PrimaryCTA/styles/pressed = SubResource("StyleBoxFlat_5u8fh") +PrimaryCTA/styles/disabled = SubResource("StyleBoxFlat_utt73") +PrimaryCTA/styles/hover = SubResource("StyleBoxFlat_5u8fh") +PrimaryCTA/styles/normal = SubResource("StyleBoxFlat_p0qbh") +PrimaryCTA/styles/pressed = SubResource("StyleBoxFlat_6y6ak") +RichTextLabel/colors/default_color = Color(0.2901961, 0.24705882, 0.17254902, 1) +RichTextLabel/font_sizes/normal_font_size = 20 +RichTextLabel/fonts/italics_font = ExtResource("4_i0b23") +RichTextLabel/fonts/normal_font = ExtResource("3_eckwq") Tab/base_type = &"Button" Tab/colors/font_color = Color(0.41568628, 0.3529412, 0.22745098, 1) -Tab/styles/focus = SubResource("StyleBoxEmpty_p0qbh") -Tab/styles/hover = SubResource("StyleBoxFlat_6y6ak") -Tab/styles/normal = SubResource("StyleBoxFlat_txxuc") -Tab/styles/pressed = SubResource("StyleBoxFlat_7d6ug") +Tab/styles/focus = SubResource("StyleBoxEmpty_txxuc") +Tab/styles/hover = SubResource("StyleBoxFlat_7d6ug") +Tab/styles/normal = SubResource("StyleBoxFlat_najyk") +Tab/styles/pressed = SubResource("StyleBoxFlat_jtb1k") TabActive/base_type = &"Button" TabActive/colors/font_color = Color(0.9411765, 0.9019608, 0.8156863, 1) -TabActive/styles/focus = SubResource("StyleBoxEmpty_najyk") -TabActive/styles/hover = SubResource("StyleBoxFlat_jtb1k") -TabActive/styles/normal = SubResource("StyleBoxFlat_wmbj4") -TabActive/styles/pressed = SubResource("StyleBoxFlat_xdylb") +TabActive/styles/focus = SubResource("StyleBoxEmpty_wmbj4") +TabActive/styles/hover = SubResource("StyleBoxFlat_xdylb") +TabActive/styles/normal = SubResource("StyleBoxFlat_pjnll") +TabActive/styles/pressed = SubResource("StyleBoxFlat_klelq") diff --git a/client/scenes/shell/MainWindowShell.tscn b/client/scenes/shell/MainWindowShell.tscn index 389b409..d72c553 100644 --- a/client/scenes/shell/MainWindowShell.tscn +++ b/client/scenes/shell/MainWindowShell.tscn @@ -176,6 +176,8 @@ theme_type_variation = &"ItemTile" layout_mode = 2 horizontal_alignment = 1 vertical_alignment = 2 +clip_text = true +theme_override_font_sizes/font_size = 11 theme_type_variation = &"Mono" text = "Salve" @@ -189,6 +191,8 @@ theme_type_variation = &"ItemTile" layout_mode = 2 horizontal_alignment = 1 vertical_alignment = 2 +clip_text = true +theme_override_font_sizes/font_size = 11 theme_type_variation = &"Mono" text = "Draught" @@ -202,6 +206,8 @@ theme_type_variation = &"ItemTile" layout_mode = 2 horizontal_alignment = 1 vertical_alignment = 2 +clip_text = true +theme_override_font_sizes/font_size = 11 theme_type_variation = &"Mono" text = "Bomb" @@ -215,6 +221,8 @@ theme_type_variation = &"ItemTile" layout_mode = 2 horizontal_alignment = 1 vertical_alignment = 2 +clip_text = true +theme_override_font_sizes/font_size = 11 theme_type_variation = &"Mono" text = "Antidote" @@ -228,6 +236,8 @@ theme_type_variation = &"ItemTile" layout_mode = 2 horizontal_alignment = 1 vertical_alignment = 2 +clip_text = true +theme_override_font_sizes/font_size = 11 theme_type_variation = &"Mono" text = "Ration" @@ -241,6 +251,8 @@ theme_type_variation = &"ItemTile" layout_mode = 2 horizontal_alignment = 1 vertical_alignment = 2 +clip_text = true +theme_override_font_sizes/font_size = 11 theme_type_variation = &"Mono" text = "Torch" @@ -254,6 +266,8 @@ theme_type_variation = &"ItemTileEmpty" layout_mode = 2 horizontal_alignment = 1 vertical_alignment = 2 +clip_text = true +theme_override_font_sizes/font_size = 11 theme_type_variation = &"Mono" [node name="Slot8" type="PanelContainer" parent="Split/World/CommandBar/Consumables"] @@ -266,6 +280,8 @@ theme_type_variation = &"ItemTileEmpty" layout_mode = 2 horizontal_alignment = 1 vertical_alignment = 2 +clip_text = true +theme_override_font_sizes/font_size = 11 theme_type_variation = &"Mono" [node name="EndTurn" type="Button" parent="Split/World/CommandBar"] diff --git a/client/scripts/theme/build_game_theme.gd b/client/scripts/theme/build_game_theme.gd index 0c4d644..ec1c137 100644 --- a/client/scripts/theme/build_game_theme.gd +++ b/client/scripts/theme/build_game_theme.gd @@ -16,6 +16,7 @@ extends SceneTree const OUT := "res://assets/theme/game_theme.tres" const SERIF := "res://assets/theme/fonts/EBGaramond-VariableFont_wght.ttf" +const SERIF_ITALIC := "res://assets/theme/fonts/EBGaramond-Italic-VariableFont_wght.ttf" const ACCENT := "res://assets/theme/fonts/ArchitectsDaughter-Regular.ttf" const MONO := "res://assets/theme/fonts/JetBrainsMono-VariableFont_wght.ttf" @@ -33,6 +34,7 @@ func _init() -> void: static func build_theme() -> Theme: var theme := Theme.new() _fonts(theme) + _rich_text(theme) _primary_cta(theme) _tabs(theme) _dock_button(theme) @@ -78,6 +80,18 @@ static func _fonts(theme: Theme) -> void: theme.set_color(&"font_color", ThemeKeys.MONO, Palette.MUTED_MONO) +static func _rich_text(theme: Theme) -> void: + # Base RichTextLabel styling — the narrative "prose" voice (mock README §Typography: + # Georgia/serif for DM/flavor body, italic for emphasis). RichTextLabel does NOT + # inherit default_font/default_color, so without this its text renders in the engine + # default (near-white) and is unreadable on parchment. Every parchment prose surface + # (the narration book, later quest briefs/dialogue) reads dark serif ink from here. + theme.set_font(&"normal_font", "RichTextLabel", load(SERIF)) + theme.set_font(&"italics_font", "RichTextLabel", load(SERIF_ITALIC)) + theme.set_font_size(&"normal_font_size", "RichTextLabel", 20) + theme.set_color(&"default_color", "RichTextLabel", Palette.INK_BODY) + + static func _primary_cta(theme: Theme) -> void: var k := ThemeKeys.PRIMARY_CTA theme.set_type_variation(k, "Button")