Add ui::ContentGroup (#20666)

TL;DR our version of [HIG's
Box](https://developer.apple.com/design/human-interface-guidelines/boxes)

We can't use the name `Box` (because rust) or `ContentBox` (because
taffy/styles/css).

---

This PR introduces the `ContentGroup` component, a flexible container
inspired by HIG's `Box` component. It's designed to hold and organize
various UI elements with options to toggle borders and background fills.

**Example usage**:

```rust
ContentGroup::new()
    .flex_1()
    .items_center()
    .justify_center()
    .h_48()
    .child(Label::new("Flexible ContentBox"))
```

Here are some configurations:

- Default: Includes both border and fill.
- Borderless: No border for a clean look.
- Unfilled: No background fill for a transparent appearance.

**Preview**:

![CleanShot 2024-11-14 at 07 05
15@2x](https://github.com/user-attachments/assets/c838371e-e24f-46f0-94b4-43c078e8f14e)

---

_This PR was written by a large language model with input from the
author._

Release Notes:

- N/A
This commit is contained in:
Nate Butler 2024-11-14 08:25:48 -05:00 committed by GitHub
parent f7b4431659
commit 04ba75e2e5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 173 additions and 11 deletions

View file

@ -267,13 +267,8 @@ impl Render for WelcomePage {
),
)
.child(
v_flex()
.p_3()
v_group()
.gap_2()
.bg(cx.theme().colors().element_background)
.border_1()
.border_color(cx.theme().colors().border_variant)
.rounded_md()
.child(CheckboxWithLabel::new(
"enable-vim",
Label::new("Enable Vim Mode"),