Skip to content

feat: ticker-aware alignment control, required-channel error, live theme preview on the wall - #37

Merged
nathanialhenniges merged 2 commits into
mainfrom
claude/chat-alignment-theme-preview-96c584
Aug 21, 2026
Merged

feat: ticker-aware alignment control, required-channel error, live theme preview on the wall#37
nathanialhenniges merged 2 commits into
mainfrom
claude/chat-alignment-theme-preview-96c584

Conversation

@nathanialhenniges

Copy link
Copy Markdown
Member

Three small UI fixes on top of the ticker scroll mode (#36).

Alignment names the mode in force

?align does two jobs: an edge to hug when messages stack, a direction of travel in a ticker lane. The builder used to say "Alignment / Left / Right" in both cases and explain the other meaning in the hint.

Now, under scroll=ticker the field is Direction with Left to right / Right to left and a hint about travel; stacked keeps Alignment with Left/Right and the edge-hug hint. The Motion hint drops its trailing "Alignment sets which way it travels" line since the field below says it.

Same param, same values, no URL contract change: default left still omits the param, right still serializes align=right. Verified both in the builder.

A missing channel says so

Copy URL and Open preview are disabled until the channel is valid, and a disabled button explains nothing on its own. The label now reads Twitch channel (required), the input is required, and the note beside the buttons is a role="alert" error block: "Twitch channel is required before you can copy or open the overlay." with a Go to the field button that focuses the input. An invalid login keeps its own message.

The theme wall fills a live preview

Clicking a tile used to leave the page for /config, so there was no way to look at a theme from the landing page. The wall is now the picker for one live OverlayPreview above it. Tiles and variant chips are buttons that set the selection; the panel shows the theme name (and variant), family, variant count, its ?channel=you&theme=... URL, and an Open in builder link carrying the selection. Selecting a new theme clears the variant.

Trade-off worth naming: the wall no longer emits 31 crawlable /config?theme= links. Those tiles were never in the sitemap and /docs still deep-links every theme and param.

Verification

  • bun run check clean apart from two pre-existing noDescendingSpecificity warnings in overlay.css
  • bun run check-types green
  • bun test: 241 pass, 0 fail
  • Driven live on the port 3001 preview: ticker relabel and both serialized URLs, the required-channel alert in both empty and invalid states, and tile/variant selection updating the preview, the URL readout and the builder link

docs.tsx #param-align and the README align row already described both meanings, so no copy change there.

🤖 Generated with Claude Code

The align control does two jobs. When messages stack it picks an edge to
hug; in a ticker lane there is no edge, so it picks the direction of
travel. The field now names the one in force: Direction with "Left to
right" / "Right to left" under scroll=ticker, Alignment with Left/Right
otherwise. Same ?align param and values, so no URL contract change.

Copy and Open preview are disabled without a channel, and a disabled
button explains nothing. The channel label now carries "(required)" and
the message beside the buttons is a role="alert" error naming what is
missing, with a button that focuses the field.
Clicking a tile used to leave the page for the builder, so there was no
way to look at a theme from the landing page. The wall is now the picker
for one live OverlayPreview above it: tiles and variant chips are
buttons that set the selection, and the panel shows the theme name,
family, variant count, its ?theme= URL, and an "Open in builder" link
carrying the selection.

Trade-off: the wall no longer emits 31 crawlable /config?theme= links.
The tiles were never in the sitemap and /docs still deep-links every
theme and param.
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@nathanialhenniges, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 27 minutes

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 943965ce-89f8-45c6-b918-3289e8864ae5

📥 Commits

Reviewing files that changed from the base of the PR and between 3d7b9ec and 90a5e54.

📒 Files selected for processing (4)
  • apps/web/src/components/landing/config-builder/output.tsx
  • apps/web/src/components/landing/config-builder/sections.tsx
  • apps/web/src/components/landing/theme-wall.tsx
  • apps/web/src/routes/index.tsx

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nathanialhenniges
nathanialhenniges merged commit e6a5c63 into main Aug 21, 2026
3 checks passed
@nathanialhenniges
nathanialhenniges deleted the claude/chat-alignment-theme-preview-96c584 branch August 21, 2026 01:22
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