Skip to content

Split devtools into Inspect and Debug trays, rework the UI - #1010

Closed
pd-builds wants to merge 2 commits into
abhin/devtools-playgroundfrom
abhin/devtools-playground-ui
Closed

Split devtools into Inspect and Debug trays, rework the UI#1010
pd-builds wants to merge 2 commits into
abhin/devtools-playgroundfrom
abhin/devtools-playground-ui

Conversation

@pd-builds

Copy link
Copy Markdown
Contributor

What

Splits the devtools widget into two independent tools and reworks their UI. Targets abhin/devtools-playground rather than main, so it lands inside #1000.

Heads up on conflicts: this branched from ddcb6475, before the EventRow.tsx extraction and the inline stack traces. It conflicts with OpenUIDevtools.tsx and StreamToolbar.tsx, and its drill-in stack-trace view is superseded by 85b33ee. Happy for those parts to be dropped in favour of the newer structure.

Changes

  • Naming — OpenUI Devtools → Inspect, OpenUI Paste → Debug, across every user-facing string.
  • Independent trays — Debug docks beside Inspect instead of widening it; closing one leaves the other. Both fill an 85% block anchored bottom-right, capped at 3456x2234.
  • Debug — draggable editor/panels split opening at a quarter, a theme toggle in the header, and a minimize button that returns an ejected window to the tray.
  • Event cards — count chips plus labels for the overview stats, actions above the diagnostics, soft-square level chips, hover stroke and shadow.
  • Settings — name left / control right, switches instead of checkboxes, two-button theme picker.
  • Help — numbered steps, type matched to the cards, a one-line description of what Debug is.
  • Dark mode rebuilt — one neutral ramp, five foreground steps, desaturated accent surfaces, all contrast-checked. New card, control-*, level-*, promo-bg and tray-ring tokens so raised and inset surfaces are described rather than hand-picked.

Frontend only — no parser, runtime or API changes, and no dependency or lockfile churn. The two react-lang edits are comment-only renames.

Test Plan

  • Verified locally — driven in examples/openui-chat throughout: both trays, the split drag, eject/minimize, theme switching, and both colour schemes.
  • typecheck, lint:check, format:check clean; devtools tests 27 → 31, all passing (new coverage for independent trays and returning an ejected window).

Checklist

  • I linked a related issue, if applicable — targets Add Paste to OpenUI Devtools #1000
  • I updated docs/README when needed — packages/devtools/README.md
  • I considered backwards compatibility — no public API change; OpenUIDevtools and the package name are untouched

🤖 Generated with Claude Code

Rename the widget's two tools — OpenUI Devtools becomes Inspect, OpenUI
Paste becomes Debug — and give them independent trays rather than one
drawer that grows. Closing either leaves the other where it was.

Layout: both trays fill an 85% block anchored bottom right (capped at
3456x2234). Inspect keeps a fixed width; Debug takes the remainder, and
its editor/panels split is now draggable, opening at a quarter.

Cards: overview stats read as a count chip plus a label, actions move
above the diagnostics, and level chips are soft squares. Hover gives a
card a stronger stroke and a shadow.

Theme: dark mode is rebuilt around a single neutral ramp with five
foreground steps and desaturated accent surfaces, all contrast checked.
Adds card, control-*, level-* and tray-ring tokens so raised and inset
surfaces are described rather than hand-picked per component.

Tests cover the independent trays and returning an ejected window to the
tray; the entry point into Debug is now a stream row's Debug button.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openui-docs Ready Ready Preview Aug 18, 2026 2:48pm

Request Review

Debug stopped being a view inside the Inspect drawer when the trays were
split, so `onBack` was never passed and the button had not rendered
since. Removes the prop, the branch that rendered it, and the icon
import rather than leaving the dead path in place.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants