Skip to content

feat(statusline): flatten the desktop band, Claude theme colors, Storybook + Vitest - #5

Merged
AnnatarHe merged 2 commits into
mainfrom
feat/statusline-clean-ui
Oct 4, 2026
Merged

AnnatarHe merged 2 commits into
mainfrom
feat/statusline-clean-ui

Conversation

@AnnatarHe

Copy link
Copy Markdown
Contributor

Summary

Desktop band. One flat row replaces the bordered, padded pill each segment used to have.

  • Figures are regular weight, the gaps between segments are wider, and the bars are thinner (28×4 instead of 32×6).
  • Colors are Claude-palette tones with at least 3:1 contrast on both the light (#FAF9F5) and dark (#262624) desktop backgrounds.
  • The emoji stay. A hover underlines only the link under the pointer.

Terminal. The text is still exactly the shelltime cc statusline line. The colors are now Claude Code theme keys (success, warning, error, planMode, merged), so the line follows /theme. Under an ANSI theme it gets the same colors as the CLI.

Storybook + Vitest (repo root, pnpm).

  • tooling/engine stands in for Claude Code's renderer. It provides the engine's JSX runtime (h) and element tables, which build the same plain-data trees the engine checks. A small React component paints those trees approximately for Storybook.
  • Stories cover the desktop and terminal in light and dark, with an overview that shows every surface side by side. States: full, no token, high usage, no git, and a narrow width that wraps.
  • 31 Vitest specs check:
    • no borders, padding or bold on the desktop
    • the terminal text matches the CLI exactly
    • colors, links, bar thresholds and meterSvg
    • every story renders
  • The tooling lives outside plugins/, so installed plugins ship none of it. Vitest only runs tests/**/*.spec.*, so it never picks up the engine's *.test.ts.
  • A new CI ui job runs pnpm typecheck, pnpm test and pnpm build-storybook.

Engine suite. Desktop segment keys are renamed from pill-* to segment-*. The meterSvg tests moved from segments.test.ts to Vitest.

Test plan

  • claude plugin validate --strict . and claude plugin validate --strict plugins/shelltime-statusline pass
  • claude plugin test plugins/shelltime-statusline: 23 pass
  • tsc -p plugins/shelltime-statusline (the engine's tsconfig) and pnpm typecheck are clean
  • pnpm test: 31 pass
  • pnpm build-storybook succeeds
  • Checked visually in Storybook, light and dark, including hover scoping and narrow wrapping
  • Live check in a terminal session (claude --plugin-dir plugins/shelltime-statusline) across /theme variants
  • Live check in the desktop app's Code tab

🤖 Generated with Claude Code

AnnatarHe and others added 2 commits October 4, 2026 19:21
The desktop draws one flat row instead of a bordered, padded pill per
segment: regular-weight figures, wider gaps and thinner 28x4 bars, in
Claude-palette tones with at least 3:1 contrast on both themes. The
terminal keeps the `shelltime cc statusline` text and draws it in Claude
Code's theme keys, so it follows /theme.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A root pnpm workspace, outside the plugin folders, with a stand-in for the
engine's JSX runtime and element tables (tooling/engine), Storybook
stories for every surface in light and dark, and Vitest specs of the
drawings. CI type-checks, tests and builds Storybook.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AnnatarHe
AnnatarHe merged commit 4b5d148 into main Oct 4, 2026
3 checks passed
@AnnatarHe
AnnatarHe deleted the feat/statusline-clean-ui branch October 4, 2026 12:47
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