Skip to content

feat(web): design pass 6: one title-chip style, matched overview radii, quieter log keys - #1828

Merged
Makisuo merged 8 commits into
ui-pass-5from
ui-pass-6
Oct 25, 2026
Merged

Makisuo merged 8 commits into
ui-pass-5from
ui-pass-6

Conversation

@Makisuo

@Makisuo Makisuo commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Design pass 6, stacked on #1827 (pass 5). Two independent agents checked it blind: one scored a rubric, the other hunted regressions. Icons and data colours are untouched.

Judges

Category Before After
Typography 7.0 7.0
Hierarchy 7.0 7.5
Spacing & density 7.0 7.5
Color & contrast 7.0 7.5
Iconography 7.5 7.5
Consistency & polish 6.5 6.5
Clarity 6.5 6.0
Overall 6.9 7.1

The Clarity drop is capture noise. The local stack returned a different backend error in the after shots ("Data connection settings temporarily unavailable" instead of "Warehouse query failed"), and this PR changes no error copy.

The regression hunt drove three reverts before this landed:

  • A tiny failure glyph in empty overview cards read as "loading", so the cards keep their quiet "Couldn't load".
  • A padded logs footer let the list's fade dim the last row, which was a FATAL one. It is reverted.
  • Dimmed log keys fell to 3.2:1 contrast, so they now use the full muted tone at AA.

Disabling the Replays chips also faded their dot colours, so that change was dropped.

Changes

Title chips: AWS, Cloudflare and GCP share one chip frame: muted label, bright value, caret on pickers. Behaviour and text are unchanged.

Before After

Overview: the stat rails use the chart cards' radius. The error strip, stat rail and chart grid sit on one 16px rhythm; an empty health section no longer adds its own margin.

Before After

Logs: attribute keys step back to the muted tone so the values lead. Error and warning pills are unchanged.

Before After

Error panels give their copy max-w-sm, so "Retrying automatically…" stops orphaning a word.

Verification

  • bun run --cwd apps/web typecheck passes, and oxlint is clean.
  • Targeted Vitest: 314 tests across overview, infra integrations, page kits, ui and logs.

🤖 Generated with Claude Code

…i and gaps, quieter log keys

- AWS, Cloudflare and GCP title chips share one frame: muted label, bright value, caret on pickers.
- Overview's stat rails use the chart cards' radius; the error strip, stat rail and chart grid sit
  on one 16px rhythm (an empty health section no longer adds its own margin).
- Log attribute keys step back to the muted tone so values lead; error and warning pills unchanged.
- Error panels give their copy max-w-sm, so "Retrying automatically…" stops orphaning a word.
@coderabbitai

coderabbitai Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@maple-review-bot

maple-review-bot Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 10/10 · safe to merge
Presentation-only refactor: all 12 hunks read, every replaced class list and removed import verified against its callers.
no findings · tests not needed · risk medium

A presentation-only pass: one shared heroFieldChip replaces four hand-rolled title chips, overview rails pick up rounded-2xl, and log chip keys get tone-aware colour. No behaviour, data or scoping changes; safe to merge.

  • heroFieldChip/heroFieldChipParts replace inline badge classes in the AWS, Cloudflare and GCP title rows
  • statRailLoading gains an optional className; overview rails render at rounded-2xl
  • Log chip keys take tone-aware classes from the new CHIP_KEY_TONE_CLASSES
What was checked
  • AWS chip text is unchanged: pluralize returns the bare noun, so isValueFirst renders "12 accounts" (packages/ui/src/lib/format.ts:348)
  • Removed badge/icon/badgeVariants imports are unused elsewhere; cn, pluralize, TONE_* still have callers
  • statRailLoading's className is an appended optional arg, so all 9 existing callers are unaffected; no cycle from view-health to view-usage

7fb4f1d · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@Makisuo Makisuo added the preview:web Deploy a Workers-only PR preview (no ingest/Electric); see docs/pr-previews.md label Oct 25, 2026
@Makisuo Makisuo changed the title ui pass 6 feat(web): design pass 6: one title-chip style, matched overview radii, quieter log keys Oct 25, 2026

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

🍁 Maple PR preview

Note

Preview resources were removed when the preview label came off.

Final commit 7fb4f1d · View workflow run

@Makisuo

Makisuo commented Oct 25, 2026

Copy link
Copy Markdown
Collaborator Author

Preview check (separate agent on app-pr-1828 with seeded data): all PASS. Overview: stat rails, connect card and chart cards share the 16px radius and sit on a 16px rhythm (measured in the DOM), in both the data and forced-failure states. Logs: chip keys are a readable mid-grey with brighter values, and error pills keep their tone. Error copy wraps without orphans. No JS exceptions; only the expected sync 503s.

@Makisuo Makisuo removed the preview:web Deploy a Workers-only PR preview (no ingest/Electric); see docs/pr-previews.md label Oct 25, 2026
@maple-review-bot

maple-review-bot Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 10/10 · safe to merge
Visual-only changes in apps/web views; cn is twMerge so the rail radius override holds, and the three files changed since the last review are identical to the base.
no findings · tests not needed · risk low

Pure Tailwind/composition changes in the dashboard: one shared label-value chip frame for the AWS/Cloudflare/GCP title rows, a 16px radius on the overview rails, quieter log-chip keys and wider error copy. Safe to merge.

  • heroFieldChip/heroFieldChipParts replace the AWS, Cloudflare and GCP title chips
  • statRailLoading takes a className so the loading rail shares the overview radius
  • CHIP_KEY_TONE_CLASSES dims log-chip keys except crit/warn
  • Error-panel copy widens from max-w-xs to max-w-sm
What was checked
  • AWS chip text is unchanged: value 2 plus pluralize(accounts, "account") still reads "2 accounts" (packages/ui/src/lib/format.ts:348)
  • cn is twMerge, so rounded-2xl wins over statRail's rounded-md (packages/ui/src/lib/utils.ts:7)
  • CHIP_KEY_TONE_CLASSES covers all four ChipTone members; crit/warn/muted keep the previous opacity-70

fc4cc22 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@maple-review-bot

maple-review-bot Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Maple review

🟢 Confidence 10/10 · safe to merge
Only the Cloudflare title chip changed since fc4cc22, and it renders the same text and title through the new helper; the rest is class strings.
no findings · tests not needed · risk low

A presentation-only pass: AWS/GCP/Cloudflare title chips now share heroFieldChip, the overview stat rails take the chart cards' radius, and log chip keys use a per-tone class map. Markup and copy are unchanged, so it is safe to merge.

  • heroFieldChip/heroFieldChipClass/heroFieldChipParts unify the AWS, GCP and Cloudflare title chips
  • Overview stat rails and their skeletons take OVERVIEW_RAIL_CLASS (rounded-2xl)
  • statRailLoading gained a trailing className argument
  • Log chip keys use CHIP_KEY_TONE_CLASSES instead of a fixed opacity-70
What was checked
  • heroFieldChip still renders "account " and titles it the same way as the replaced heroChip call (hero-chip.ts:66)
  • statRail folds options.className through cn, so rounded-2xl overrides rounded-md (stat-rail.ts:30)
  • CHIP_KEY_TONE_CLASSES satisfies Record<ChipTone, string>, covering all four log tones (styles.ts:20)

f10093b · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.

@Makisuo
Makisuo added this pull request to stack #1834 October 25, 2026 16:43
@Makisuo
Makisuo merged commit 5ad289c into main Oct 25, 2026
21 of 22 checks passed
@Makisuo
Makisuo deleted the ui-pass-6 branch October 25, 2026 16:44
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