Extract reusable bubble menu components
This commit is contained in:
parent
c7504d2585
commit
053cfe037d
11 changed files with 646 additions and 54 deletions
26
ui/components/bubble_menu/README.md
Normal file
26
ui/components/bubble_menu/README.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue