netfishing/ui/components/bubble_menu
2026-08-08 00:34:06 -04:00
..
bag_item_sprite.gd Restore ocean palette to technical menus 2026-07-31 13:30:36 -04:00
bag_item_sprite.gd.uid Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
bag_item_sprite.tscn Restore ocean palette to technical menus 2026-07-31 13:30:36 -04:00
bubble_button.gd Refresh menus chat and player expression 2026-08-08 00:34:06 -04:00
bubble_button.gd.uid Extract reusable bubble menu components 2026-07-27 14:42:57 -04:00
bubble_button.tscn Extract reusable bubble menu components 2026-07-27 14:42:57 -04:00
bubble_cluster.gd Extract reusable bubble menu components 2026-07-27 14:42:57 -04:00
bubble_cluster.gd.uid Extract reusable bubble menu components 2026-07-27 14:42:57 -04:00
bubble_confirmation_page.gd Finalize Player Menu and UI scaling 2026-07-29 11:02:41 -04:00
bubble_confirmation_page.gd.uid Migrate pause confirmations to bubble UI 2026-07-28 14:04:13 -04:00
bubble_confirmation_page.tscn Migrate pause confirmations to bubble UI 2026-07-28 14:04:13 -04:00
bubble_content_shell.gd Checkpoint Player Menu bubble redesign 2026-07-28 16:29:02 -04:00
bubble_content_shell.gd.uid Checkpoint Player Menu bubble redesign 2026-07-28 16:29:02 -04:00
bubble_content_shell.tscn Checkpoint Player Menu bubble redesign 2026-07-28 16:29:02 -04:00
bubble_information_panel.gd Checkpoint Player Menu bubble redesign 2026-07-28 16:29:02 -04:00
bubble_information_panel.gd.uid Checkpoint Player Menu bubble redesign 2026-07-28 16:29:02 -04:00
bubble_information_panel.tscn Checkpoint Player Menu bubble redesign 2026-07-28 16:29:02 -04:00
bubble_menu_profile.gd Extract reusable bubble menu components 2026-07-27 14:42:57 -04:00
bubble_menu_profile.gd.uid Extract reusable bubble menu components 2026-07-27 14:42:57 -04:00
bubble_menu_profile.tres Extract reusable bubble menu components 2026-07-27 14:42:57 -04:00
bubble_status_bubble.gd Checkpoint Player Menu bubble redesign 2026-07-28 16:29:02 -04:00
bubble_status_bubble.gd.uid Checkpoint Player Menu bubble redesign 2026-07-28 16:29:02 -04:00
bubble_status_bubble.tscn Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
bubble_transition_flurry.gd Migrate pause menu to bubble UI 2026-07-27 23:44:27 -04:00
bubble_transition_flurry.gd.uid Migrate pause menu to bubble UI 2026-07-27 23:44:27 -04:00
cooler_fish_sprite.gd Add collectible fish quality tiers 2026-08-02 17:44:11 -04:00
cooler_fish_sprite.gd.uid Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
cooler_fish_sprite.tscn Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
cooler_water.gdshader Finalize Player Menu and UI scaling 2026-07-29 11:02:41 -04:00
cooler_water.gdshader.uid Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
logbook_entry.gd Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
logbook_entry.gd.uid Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
logbook_entry.tscn Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
notepad_ink_action.gd Finalize Player Menu and UI scaling 2026-07-29 11:02:41 -04:00
notepad_ink_action.gd.uid Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
notepad_ink_action.tscn Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
notepad_ink_choice.gd Finalize Player Menu and UI scaling 2026-07-29 11:02:41 -04:00
notepad_ink_choice.gd.uid Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
notepad_ink_choice.tscn Finalize Player Menu and UI scaling 2026-07-29 11:02:41 -04:00
notepad_ink_outline.gd Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
notepad_ink_outline.gd.uid Checkpoint Player Menu visual revisions 2026-07-28 23:43:03 -04:00
README.md Extract reusable bubble menu components 2026-07-27 14:42:57 -04:00

Bubble menu authoring

Instance bubble_button.tscn for each action, or attach bubble_button.gd to an existing Button. Set its neutral size, desktop and compact anchors, font-size limits, and deterministic motion values in the Inspector. A label child can be assigned through label_control_path when wrapped text is needed. Text size is calculated once per layout from the neutral smaller dimension and the profile ratio.

Place the buttons under a Control using bubble_cluster.gd. Give the cluster the ordered BubbleButton references with configure(), then call apply_layout() when its available size or responsive layout changes. The button order defines explicit keyboard and controller focus neighbors. Compact anchors and minimum sizes remain authored per button.

The shared profile owns the palette, rounded styles, proportional-font ratio, hover response, and contact tuning. Labels, actions, sizes, anchors, per-button motion, responsive wrapping, availability, and confirmation behavior remain owned by the menu. Connect each Button's pressed signal in that parent menu.

motion_scale defaults to 1.0. Setting it to 0.0 removes idle drift and deformation while retaining hover and focus feedback.

Contact is a deterministic, bounded visual correction around authored anchors. Real physics is intentionally avoided so layouts, focus order, and hit targets remain stable.