Skip to content

Windows: ticker overlap fix and a Dynamic Island look for the island - #203

Closed
shakibbinkabir wants to merge 2 commits into
Louis-CFM:mainfrom
shakibbinkabir:windows-dynamic-island
Closed

shakibbinkabir wants to merge 2 commits into
Louis-CFM:mainfrom
shakibbinkabir:windows-dynamic-island

Conversation

@shakibbinkabir

Copy link
Copy Markdown
Contributor

Two Windows-only changes, one commit each, so the fix can be taken without the restyle.

1. Ticker steps drawn on top of each other (bug)

In the overview's Claude Code card, the completed step was drawn over the current one. Its dim text is absolutely positioned with no top, so its static position fell one line below the shimmer text, onto the next row. It now has top: 0.

The frame loop also never asked the overview whether the ticker was mid-scroll, so a step arriving while everything else had settled could freeze half-way. ViewHost.tick() now returns whether the view needs another frame.

2. Dynamic Island look (restyle, asked for by me as a user)

I know CLAUDE.md says existing views stay as they ship, so this is a proposal; the second commit can be dropped on its own. Nothing on the Mac side changes.

  • Shape: the island floats 8 px below the top edge with all four corners rounded and a soft shadow. Compact is a full 36 px capsule; expanded has 36 px corners with concentric 22 px cards.
  • Room: expanded is 680 × 176 (was 640 × 160), with more padding, a wider gap between the cards, roomier pills and no card hairlines. Card content and Mochi are centred vertically.
  • Motion: opening is a slightly softer spring (0.5 / 0.8). Closing is a critically damped spring instead of the 340 ms curve, which is removed from anim.ts. When the island opens, the content follows the shape a beat later, sharpening from a slight blur and scale, and views cross-fade the same way.

The hit rect sent to Rust carries the new top gap. The existing 14 px hit margin still covers the strip above the island, so pushing the cursor to the very top edge still counts as hovering it.

Testing

  • tsc --noEmit is clean, and npm run pack builds and installs on Windows 11.
  • Checked by hand: the overview, approval and compact views, the launch greeting, and the ticker with steps arriving one by one and in bursts.
  • Not checked: the drop sequence and the chat view at the new sizes. The greeting canvas is still drawn at 640 wide, so during the greeting it sits with slightly wider side margins.

🤖 Generated with Claude Code

shakibbinkabir and others added 2 commits October 4, 2026 18:59
The completed step's dim text was absolutely positioned with no `top`, so its
static position fell one line below the shimmer text and it was drawn over the
current step. Pin it to `top: 0`.

The overview also never told the frame loop that the ticker was mid-scroll, so
a step arriving while everything else was settled could freeze half-way. The
view's tick() now reports whether it needs another frame.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Shape: the island floats 8 px below the top edge with all four corners
  rounded and a soft shadow; compact is a full 36 px capsule, expanded uses
  36 px corners with concentric 22 px cards.
- Room: expanded is 680 x 176 (was 640 x 160), with more padding, a wider gap
  between cards, roomier pills and no card hairlines. Card content and Mochi
  are centred vertically.
- Motion: opening is a softer spring (0.5 / 0.8); closing is a critically
  damped spring instead of the 340 ms curve, which is removed. The content
  follows the shape a beat later, sharpening from a slight blur and scale, and
  views cross-fade the same way.

The hit rect sent to Rust carries the new top gap; the 14 px hit margin still
covers the strip above the island, so hovering the very top edge still counts.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Rone221

Rone221 commented Oct 5, 2026 •

Copy link
Copy Markdown

Tested on Windows 11, with only the first commit (200f7f7) cherry-picked onto current main (769c4f2). During a multi-step Claude Code session the completed step now sits on its own line above the current one, with no overlap, and new steps kept scrolling in as they arrived. On main without it, the two lines are drawn on top of each other. Fixes #39 for me, and the fix works on its own without the restyle commit.
ticker-fix

Copy link
Copy Markdown
Owner

Thank you! The first commit (ticker overlap + overview frame-loop fix) is in Coucou for Windows 0.2.0 (https://github.com/Louis-CFM/coucou/releases/tag/windows-v0.2.0), credited to you. The Dynamic Island restyle isn't merged: the repo keeps shipped views exactly as they are unless a redesign is decided for every platform. Details in #307.


Generated by Claude Code

@Louis-CFM Louis-CFM closed this Oct 7, 2026
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.

3 participants