Skip to content

feat: polish the side panel and options UI - #12

Merged
mrgoonie merged 7 commits into
mainfrom
feat/8-ui-polish
Oct 13, 2026
Merged

mrgoonie merged 7 commits into
mainfrom
feat/8-ui-polish

Conversation

@mrgoonie

@mrgoonie mrgoonie commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • The transcript now fills the panel. The composer is a compact box that grows as you type, with an icon button that switches between Send and Stop.
  • A small inline SVG icon set (src/shared/icons.tsx) replaces the ⚙ ☰ ▾ ★ glyphs and emoji. The conversation history and new-chat controls moved into the header.
  • Refreshed theme tokens for light and dark: surfaces, shadows, focus rings and tinted notices. Also restyled the message bubbles, markdown, tool chips, typing indicator, action cards, agent picker, conversation list, welcome screen and options page.
  • dewee.sh design tokens (src/shared/theme.css): the panel and options page now use the website's token names and OKLCH values for colour, radius, shadow, motion and spacing, in both light and dark. Section labels follow the site's eyebrow style.
  • Fonts: Be Vietnam Pro, Newsreader (headings) and JetBrains Mono are bundled under public/fonts/ (woff2, about 214 KB, with Vietnamese subsets). They are loaded from the extension origin, never from a CDN. public/fonts/NOTICE.txt carries the OFL 1.1 attribution.
  • Conversation drawer: the conversation list opens as a modal drawer from the left (header toggle). While it is open the rest of the panel is inert. Esc, the close button or the scrim close it, focus goes to the open conversation and returns to the toggle on close.
  • Chat style from the Dewee web chat widget: accent user bubble, full-width assistant text, dark code blocks, a header tint, and a boxed composer with a 34px accent send button.- Mascot: the toolbar icons (16/32/48/128) and the brand mark in the panel and options page use the Dewee dew-drop mascot from the dewee.sh brand assets (public/brand/dewee-mascot.png), on a transparent background and at its own proportions.
  • Đông Sơn drum ornament from the dewee.sh patterns (public/patterns, light and dark): a relief behind the header, the welcome screen and the settings page, and the drum face turning slowly behind the mascot on an empty chat (still under reduced motion).
  • Drawer fixes from the isolated review:
    • focus returns to the toggle (Esc, close button, scrim) or the composer (choosing a conversation) only after the panel is no longer inert;
    • Esc is handled at the window;
    • the drawer's "New chat" and conversation items are disabled while a reply streams, so a running reply is never abandoned;
    • the composer takes focus back when a loading conversation re-enables it.- Accessibility fixes from the isolated review:
    • text and buttons meet WCAG AA contrast in both themes;
    • online/offline changes are announced to screen readers;
    • focus returns to the composer when Send and Stop swap;
    • smooth scrolling no longer lags behind streamed text.
  • No remote assets: icons are inline SVG and the logo is the bundled PNG. Agent HTML is still never rendered. Test selectors are unchanged.

Closes #8
Closes #11

Test plan

  • pnpm lint, pnpm typecheck
  • pnpm test: 414/414 (new drawer, session list and composer focus tests) with test: keep the command preview card open regardless of the date #10 applied. On main, one ActionCard test fails until test: keep the command preview card open regardless of the date #10 merges, because the fixture expires_at date has passed.
  • pnpm test:e2e smoke: 5/5
  • Live e2e against a local gateway: 20/21. live-cloud could not run because the local Dewee app was not available; it stopped at opening the sign-in window, which is environmental.
  • Drawer focus checked in real Chromium: Esc and scrim return focus to the toggle, choosing a conversation focuses the composer.
  • Screenshots, light and dark, Vietnamese locale: welcome, chat, empty state, conversation drawer, agent picker, typing, options

🤖 Generated with Claude Code

mrgoonie and others added 2 commits October 13, 2026 21:39
Give the transcript the full height of the panel and keep the composer
compact and auto-growing. Replace text glyphs with a small inline SVG
icon set, fold the conversation controls into the header, and refresh
the theme tokens, cards, markdown, picker and options page for both
light and dark themes.

Closes #8

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Darken the light-theme secondary text and success colour and put dark
text on dark-theme primary buttons so both meet WCAG AA. Announce
online/offline through visible-to-screen-reader text, return focus to
the composer when Send and Stop swap, drop smooth scrolling that lagged
behind streamed text, and complete the visually hidden utility.

Refs #8

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mrgoonie mrgoonie self-assigned this Oct 13, 2026
mrgoonie and others added 4 commits October 13, 2026 22:05
Adopt the website palette, radii, shadows, motion and spacing tokens by
name, and bundle Be Vietnam Pro, Newsreader and JetBrains Mono locally
with their OFL notice. Conversations now open in a modal drawer from the
left edge: the rest of the panel is inert while it is open, Esc or the
scrim closes it, and focus returns to the toggle. The chat follows the
Dewee web chat widget: an accent user bubble, dark code blocks and a
boxed composer with an accent send button.

Refs #8

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Focus returns to the toggle or the composer only after the panel has
rendered without inert, so it no longer drops to the page body. Escape
closes the drawer from anywhere in the panel. Switching or starting a
conversation from the drawer waits while a reply streams, matching the
header button, and the composer takes focus back when a loading
conversation re-enables it. Also lifts two light-theme contrast pairs and
drops a synthetic mono weight.

Closes #11
Refs #8

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The toolbar icons and the in-panel brand mark now come from the dewee.sh
brand assets: the dew drop mascot on a transparent background, kept at
its own proportions instead of a square tile.

Refs #8

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bundle the website's drum face and band patterns for both themes and use
them the way the site does: a drum relief rising behind the header, the
welcome screen and the settings page, and the drum face turning slowly
behind the mascot on an empty chat (still under reduced motion).

Refs #8

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mrgoonie
mrgoonie merged commit 656aeaa into main Oct 13, 2026
2 checks passed
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.

Conversation list can abandon a running reply Polish the side panel and options UI

1 participant