Skip to content

feat(sidepanel): Arc-style per-Space ambient tint + emoji picker - #77

Merged
Matuyuhi merged 1 commit into
mainfrom
feat/arc-style-space-tint
May 11, 2026
Merged

Matuyuhi merged 1 commit into
mainfrom
feat/arc-style-space-tint

Conversation

@Matuyuhi

Copy link
Copy Markdown
Owner

Summary

  • Side panel背景に、アクティブ Space の色から作ったグラデーションを敷くように(Arc風)。Space 切替で滑らかにフェード、live-create / live-edit サブビュー中も色が残る。
  • 各 Space / Folder のアイコンを自由入力(EmojiInput)から 36 個のプリセット絵文字グリッド (EmojiPicker) に変更。タップでトグル、Clear リンクで解除。
  • Space 名の左にあった ColorDot は、パネル全体が色付くため冗長になったので削除(タブ strip のピル内ドットは残置 — Space 同士を区別する唯一の色手がかりのため)。

Implementation notes

  • グラデーションは COLOR_GRADIENT: Record<SpaceColor, string> で 9 色分。透過 stop を使い、--bg の上に重ねることで light/dark 両対応。
  • <body> に background-image: var(--space-tint) を当て、App.tsx の useEffect から document.body.style.setProperty('--space-tint', ...) で書き込む。
  • 元々 #root に background: var(--bg) がかかっており body のグラデーションを完全に隠していた → #root を transparent にして解消。

Test plan

  • bun run dev → unpacked extension をリロード → サイドパネルを開く
  • 色違いの Space を 2 つ以上作って切替 → 背景グラデーションが 240ms でフェードしながら変化することを確認
  • Space メニュー → Icon セクションでプリセット絵文字を選択 → ヘッダー / タブ strip に反映、Clear で外せることを確認
  • Folder メニューでも同様に EmojiPicker が機能することを確認
  • Color picker で色を変更 → ドットとパネル背景の両方が連動して変わること
  • OS の dark mode 切替でグラデーションが読みやすいか確認
  • bun run build / bun run test (225 passed) が通る

🤖 Generated with Claude Code

- theme.ts: add COLOR_GRADIENT per SpaceColor (translucent stops so the
  same gradient reads correctly over both light- and dark-mode --bg).
- globalStyles.tsx: paint the active gradient on <body> via the
  --space-tint CSS variable; #root is now transparent so the body layer
  shows through (previously the opaque #root background masked it).
- App.tsx: write --space-tint from activeSpaceByWindow[windowId] so the
  tint follows space switching and persists into the live-create/edit
  sub-views.
- SpaceContent.tsx: drop the redundant ColorDot next to the active
  Space name now that the whole panel reflects the color.
- EmojiPicker (new atom) replaces the free-form EmojiInput in
  SpaceMenu / FolderMenu — 36-emoji preset grid with toggle-to-clear.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Matuyuhi
Matuyuhi merged commit 82c9dcc into main May 11, 2026
1 check passed
@Matuyuhi
Matuyuhi deleted the feat/arc-style-space-tint branch May 11, 2026 07:49
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.

1 participant