Skip to content

gpui: Add builder API for BoxShadow - #57743

Merged
agu-z merged 1 commit into
mainfrom
gpui-box-shadow-builder
Jun 11, 2026
Merged

gpui: Add builder API for BoxShadow#57743
agu-z merged 1 commit into
mainfrom
gpui-box-shadow-builder

Conversation

@agu-z

@agu-z agu-z commented May 26, 2026

Copy link
Copy Markdown
Contributor

Replaces the verbose struct-literal construction of gpui::BoxShadow with a builder API:

  • BoxShadow::new(offset_x, offset_y, color) takes the required fields, with arguments ordered to match the CSS box-shadow property.
  • .blur_radius(_), .spread_radius(_), and .inset() set the optional fields.

All in-tree call sites are migrated, including the Tailwind-style shadow_xs..shadow_2xl helpers in gpui_macros, the ElevationIndex shadows in ui, and various widgets across editor, workspace, agent_ui, and ai_onboarding. The fields on BoxShadow remain public, so external code using struct-literal construction continues to work.

Self-Review Checklist:

  • I've reviewed my own diff for quality, security, and reliability
  • Unsafe blocks (if any) have justifying comments
  • The content is consistent with the UI/UX checklist
  • Tests cover the new/changed behavior
  • Performance impact has been considered and is acceptable

Release Notes:

  • N/A

@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label May 26, 2026
@zed-community-bot zed-community-bot Bot added the staff Pull requests authored by a current member of Zed staff label May 26, 2026
@agu-z
agu-z requested a review from danilo-leal May 28, 2026 21:27
@agu-z
agu-z marked this pull request as ready for review May 28, 2026 21:27
Replaces the verbose struct-literal construction of `BoxShadow` with a constructor that takes the required fields (offset and color, in CSS `box-shadow` order) plus chainable setters for the optional ones (`blur_radius`, `spread_radius`, `inset`).

All in-tree call sites (gpui Tailwind-style `shadow_*` helpers, `ui` elevations, and various widgets) are migrated to the new API. The public fields stay public, so struct-literal construction still works for external callers.
@agu-z
agu-z force-pushed the gpui-box-shadow-builder branch from a41efb1 to edbb7f1 Compare June 11, 2026 21:13
@agu-z
agu-z enabled auto-merge June 11, 2026 21:16
@agu-z
agu-z added this pull request to the merge queue Jun 11, 2026
Merged via the queue into main with commit 34cd17f Jun 11, 2026
32 checks passed
@agu-z
agu-z deleted the gpui-box-shadow-builder branch June 11, 2026 21:31
This was referenced Jun 18, 2026
jonx pushed a commit to jonx/zed-aros that referenced this pull request Jul 17, 2026
Replaces the verbose struct-literal construction of `gpui::BoxShadow`
with a builder API:

- `BoxShadow::new(offset_x, offset_y, color)` takes the required fields,
with arguments ordered to match the CSS `box-shadow` property.
- `.blur_radius(_)`, `.spread_radius(_)`, and `.inset()` set the
optional fields.

All in-tree call sites are migrated, including the Tailwind-style
`shadow_xs`..`shadow_2xl` helpers in `gpui_macros`, the `ElevationIndex`
shadows in `ui`, and various widgets across `editor`, `workspace`,
`agent_ui`, and `ai_onboarding`. The fields on `BoxShadow` remain
public, so external code using struct-literal construction continues to
work.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- N/A
jolutz pushed a commit to jolutz/zed that referenced this pull request Aug 8, 2026
Replaces the verbose struct-literal construction of `gpui::BoxShadow`
with a builder API:

- `BoxShadow::new(offset_x, offset_y, color)` takes the required fields,
with arguments ordered to match the CSS `box-shadow` property.
- `.blur_radius(_)`, `.spread_radius(_)`, and `.inset()` set the
optional fields.

All in-tree call sites are migrated, including the Tailwind-style
`shadow_xs`..`shadow_2xl` helpers in `gpui_macros`, the `ElevationIndex`
shadows in `ui`, and various widgets across `editor`, `workspace`,
`agent_ui`, and `ai_onboarding`. The fields on `BoxShadow` remain
public, so external code using struct-literal construction continues to
work.

Self-Review Checklist:

- [x] I've reviewed my own diff for quality, security, and reliability
- [x] Unsafe blocks (if any) have justifying comments
- [x] The content is consistent with the [UI/UX
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

Release Notes:

- N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed The user has signed the Contributor License Agreement staff Pull requests authored by a current member of Zed staff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants