bevy/examples/ui
oracle58 8e585174ee
box_shadow example with adjustable settings (#19345)
# Objective

- Addresses the previous example's lack of visual appeal and clarity. It
was missing labels for clear distinction of the shadow settings used on
each of the shapes. The suggestion in the linked issue was to either
just visually update and add labels or to collapse example to a single
node with adjustable settings.
- Fixes #19240

## Solution

- Replace the previous static example with a single, central node with
adjustable settings as per issue suggestion.
- Implement button-based setting adjustments. Unfortunately slider
widgets don't seem available yet and I didn't want to further bloat the
example.
- Improve overall aesthetics of the example -- although color pallette
could still be improved. flat gray tones are probably not the best
choice as a contrast to the shadow, but the white border does help in
that aspect.
- Dynamically recolor shadows for visual clarity when increasing shadow
count.
- Add Adjustable Settings:
    - Shape selection
    - Shadow X/Y offset, blur, spread, and count
- Add Reset button to restore default settings

The disadvantage of this solution is that the old example code would
have probably been easier to digest as the new example is quite bloated
in comparison. Alternatively I could also just implement labels and fix
aesthetics of the old example without adding functionality for
adjustable settings, _but_ I personally feel like interactive examples
are more engaging to users.

## Testing

- Did you test these changes? If so, how? `cargo run --example
box_shadow` and functionality of all features of the example.
- Are there any parts that need more testing? Not that I am aware of. 
- How can other people (reviewers) test your changes? Is there anything
specific they need to know? Not really, it should be pretty
straightforward just running the new example and testing the feats.

---

## Showcase

![box-shadow-example-1](https://github.com/user-attachments/assets/57586b30-c290-4e3f-9355-5c3f6e9a6406)


![box-shadow-example-2](https://github.com/user-attachments/assets/51a51d2f-dd30-465b-b802-ddb8077adff5)

---------

Co-authored-by: ickshonpe <david.curthoys@googlemail.com>
2025-05-27 19:43:57 +00:00
..
borders.rs separate border colors (#18682) 2025-05-26 16:57:13 +00:00
box_shadow.rs box_shadow example with adjustable settings (#19345) 2025-05-27 19:43:57 +00:00
button.rs separate border colors (#18682) 2025-05-26 16:57:13 +00:00
directional_navigation.rs separate border colors (#18682) 2025-05-26 16:57:13 +00:00
display_and_visibility.rs Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
flex_layout.rs Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
font_atlas_debug.rs Upgrade to Rust Edition 2024 (#17967) 2025-02-24 03:54:47 +00:00
ghost_nodes.rs separate border colors (#18682) 2025-05-26 16:57:13 +00:00
gradients.rs UI Node Gradients (#18139) 2025-05-20 14:45:22 +00:00
grid.rs Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
overflow_clip_margin.rs separate border colors (#18682) 2025-05-26 16:57:13 +00:00
overflow_debug.rs Relationships (non-fragmenting, one-to-many) (#17398) 2025-01-18 22:20:30 +00:00
overflow.rs separate border colors (#18682) 2025-05-26 16:57:13 +00:00
radial_gradients.rs UI Node Gradients (#18139) 2025-05-20 14:45:22 +00:00
relative_cursor_position.rs Merge Style properties into Node. Use ComputedNode for computed properties. (#15975) 2024-10-18 22:25:33 +00:00
render_ui_to_texture.rs Rename TargetCamera to UiTargetCamera (#17403) 2025-01-19 19:56:57 +00:00
scroll.rs Unified picking cleanup (#18401) 2025-03-18 20:28:03 +00:00
size_constraints.rs separate border colors (#18682) 2025-05-26 16:57:13 +00:00
stacked_gradients.rs UI Node Gradients (#18139) 2025-05-20 14:45:22 +00:00
tab_navigation.rs tab_navigation example improvements (#19239) 2025-05-26 20:20:00 +00:00
text_background_colors.rs Text background colors (#18892) 2025-05-04 08:18:46 +00:00
text_debug.rs Fix non-crate typos (#18219) 2025-03-11 06:17:48 +00:00
text_wrap_debug.rs Merge Style properties into Node. Use ComputedNode for computed properties. (#15975) 2024-10-18 22:25:33 +00:00
text.rs Basic UI text shadows (#17559) 2025-02-05 19:29:37 +00:00
transparency_ui.rs Merge Style properties into Node. Use ComputedNode for computed properties. (#15975) 2024-10-18 22:25:33 +00:00
ui_material.rs ui_material example webgl2 fix (#17852) 2025-02-13 20:52:26 +00:00
ui_scaling.rs Remove everything except Instant from bevy_utils::time (#17158) 2025-01-05 20:36:08 +00:00
ui_texture_atlas_slice.rs BorderRect maintenance (#16727) 2024-12-12 04:33:44 +00:00
ui_texture_atlas.rs UiImage -> ImageNode, UiImageSize -> ImageNodeSize (#16271) 2024-11-07 21:52:58 +00:00
ui_texture_slice_flip_and_tile.rs BorderRect maintenance (#16727) 2024-12-12 04:33:44 +00:00
ui_texture_slice.rs BorderRect maintenance (#16727) 2024-12-12 04:33:44 +00:00
viewport_debug.rs separate border colors (#18682) 2025-05-26 16:57:13 +00:00
viewport_node.rs viewport_node example: Remove main world image initialization (#19098) 2025-05-26 17:20:29 +00:00
window_fallthrough.rs Fix non-crate typos (#18219) 2025-03-11 06:17:48 +00:00
z_index.rs Updated comment: ZIndex::Local(0) -> ZIndex(0). (#16585) 2024-12-01 20:09:09 +00:00