4 Commits
Author SHA1 Message Date
juxtapoandClaude Opus 5 f97ee19f88 cc-sidepanel: bundle JetBrainsMono Nerd Font Mono (0.3.0)
The panel should match kitty's font, but extension pages can't reach system
fonts by name — CSP blocks `local()` — so the TTFs ship in the repo:

  fonts/JBMono-Regular.ttf  2.5MB  weight 400
  fonts/JBMono-Bold.ttf     2.5MB  weight 700

Copied from /usr/share/fonts/TTF/JetBrainsMonoNerdFontMono-{Regular,Bold}.ttf.
Heavy, but it's local-only — the panel never downloads them.

`@font-face` in sidepanel.html, fallback chain kept (ui-monospace, SF Mono,
Menlo, monospace). Line-height 1.4 -> 1.5 for JBMono's taller glyphs.

The Nerd Font variant means nerd-font glyphs leaking out of the pane render
properly instead of as boxes.

No `web_accessible_resources` needed: the side panel is an extension page on the
same chrome-extension:// origin, so bundled files are directly reachable. That
key is only for files injected into web pages.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 02:02:46 +08:00
juxtapoandClaude Opus 5 cd75b5eb27 cc-sidepanel: extension icon, wired as icons + action.default_icon (0.2.0)
Gemini-generated via the geminigen MCP: a flat vector browser window with a
docked side panel and three chat lines inside it, on dark indigo. Gemini buried
the symbol in ~75% white margin, so it's cropped tight with PIL and resized to
16/32/48/128.

The violet/teal/gold lines are the exact three colours the parser already uses
for user, assistant and heartbeat blocks. Unplanned, but it reads like a brand.

ORB's orb was considered and dropped — dense detail reduces to a purple blob at
16px.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 02:02:38 +08:00
juxtapoandClaude Opus 5 f8ef6e6981 cc-sidepanel: emoji picker, 475 glyphs from celest-chat's table
The panel had no picker before this. 8 category tabs plus a recents tab, table
lifted verbatim from celest-chat's 07-emoji.js so the house row (💜🌙🐝🔫)
carries over. Offline by construction: no library, no fetch, the panel's CSP
would block a set anyway.

Inserts at the caret rather than appending, and the pad stays open so glyphs can
be stacked. Recents (last 24) live in localStorage under
`ccsidepanel-emoji-recent`; the pad opens on that tab once it has entries.

`#emoji-pad[hidden] { display: none }` is spelled out because an ID selector
outranks the UA's `[hidden]` rule — without it the pad never closes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-13 02:02:25 +08:00
juxtapo 8d64c86b10 cc-sidepanel: Brave/Chrome MV3 side-panel extension for a live Claude Code seat 2026-09-11 01:29:42 +08:00