Refactor/UI#6118
Conversation
…ntity-colored UI Switch the default theme typography to JetBrains Mono, wire identity colors through pricing/data views, and polish related layout/i18n.
- Replace self-hosted @font-face declarations (font-display: optional) with direct Fontsource imports (swap), so the UI always settles on bundled fonts instead of staying on system fonts after first paint - Add JetBrains Mono (@fontsource-variable/jetbrains-mono) as the built-in monospace face: it backs --font-mono, .font-mono utilities, and code/pre - Add a "mono" option to the theme font axis (CSS token, ThemeFont type, resolver, and config drawer with live preview); default body font stays Public Sans, Anthropic preset keeps Lora serif - Lighten --subtle-foreground/--faint-foreground in light mode to 60%/40% translucent mixes of muted-foreground so secondary metadata (log sub-labels, placeholders) reads properly grey; declare once since the var() reference resolves per light/dark mode on <html>
Keep truncated cells single-line across data tables, compact oversized quota figures, and replace loud avatar gradients with identity-tint styling that matches badges. Co-authored-by: Cursor <cursoragent@cursor.com>
Merge origin/main while keeping this branch as the source of truth for UI/UX. The design-system revert (337169e) and StatusBadge padding revert (1b1b23d) from main were absorbed without applying them; only functional additions were ported and re-styled with our primitives: - usage-logs: Stream/Timing column split with new TimingMetricsCell and StreamTpsCell (first-token latency + duration readout, t/s line), admin All/Only Mine view scope (useLogsViewScope), and a mobile filter-panel collapse toggle in DataTableFilterPanel - keys: relative timestamps with absolute-time tooltip and stale-access highlight via ApiKeyTimestampCell (auto-refreshing now ticker), and copy button that resolves the real key on demand - pricing: ModelBillingModeBadge distinguishing dynamic pricing from token/per-request billing in the Type column - i18n: First token translations for all locales Rejected from main: icon-badge tones, overview accent theme colors, bespoke mobile lists (redemptions/keys), and all other styling that conflicts with the refactor/ui design language.
Amends the merge resolution: drop the duplicated copy icon/tooltip block that main reintroduced in ApiKeyCell (ours already declares it with the text-success token), and port the functional change from main e400619 that hides the Delete all stale button entirely when no stale instances exist instead of rendering it disabled.
1250fb2 adds -ml-1.5 padding compensation to the old-design logs Time badge; our plain StatusBadge has no horizontal padding so the offset does not apply. Style follows refactor/ui.
|
Important Review skippedToo many files! This PR contains 542 files, which is 392 over the limit of 150. To get a review, narrow the scope: Upgrade to a paid plan to raise the limit. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (542)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Merge origin/main (c36418c, text protocol conversion and advanced custom routing). Backend and most frontend changes merged cleanly; conflicts resolved with refactor/ui as the design source of truth: - advanced-custom-editor-dialog: keep main new routing/conversion feature body, but use our design-system Button/Input imports and plain button styling; add the Badge import the new body needs - details-dialog: adopt main isUsageBillingPathLocal helper for the billing path row, keep our muted icon styling - i18n: union-merge of the new protocol-conversion keys across all locales
Merge origin/main (48068ce). The backend billing feature merged cleanly; the single frontend conflict was a grid ratio tweak to the old-design mobile log card, which does not exist in our generic card layout, so our version is kept.
The task-log and MJ task ID cells used a w-max wrapper, so long IDs (and the platform/action subtitle) overflowed the column and rendered under the adjacent Cost column. Constrain the cell to the column width and let the badge label ellipsize; the copy button still copies the full ID.
…ternal ID locale key The design-system consolidation refactor dropped the onSelect-to-onClick bridge for Base UI menu items, silently breaking menu actions such as 'Delete All Disabled' on the channels page, and removed the 'Internal ID' translation key still used by the task details dialog.
Rework the earlier dropdown onSelect bridge: keep components/ui pristine
and use Base UI's native closeOnClick={false} + onClick at the nine menu
item call sites instead. Move product policies dropped by the refactor
into the design-system adapters: Button restores nativeButton detection
for render={<Link/>}, Select restores the mobile inline (no portal)
popup and the select-item-text wrapping slot.
Also restore behaviors lost in the refactor: page-size preference falls
back to and mirrors the legacy classic-theme key, background refresh
blocks interaction with stale rows again, pricing table rows are
keyboard accessible, and the pricing card grid resets to page 1 when
filters change.
…efault preset Derive --color-identity-* tokens from theme palette variables (chart and status hues) instead of fixed oklch hues, so group names, channel ids and model badges re-tint automatically when a color preset overrides the palette. The monochrome simple-large preset collapses identity tints to the foreground via --identity-color-mix: 0%. Also port main's blue default palette (light/dark), preview the default preset as a rainbow swatch, and show the token group as a tinted GroupBadge on the usage-logs page.
… usage logs Show the retry chain as compact grey inline text next to the channel badge (middle-collapsed beyond three hops, full chain in the tooltip) instead of hiding it behind a popover icon. Move the model-mapping route marker inside the badge's trailing icon slot, size the mapping popover to its content, and make both model names copyable. Group ratio now hides together with the group name when sensitive info is masked.
…ow styling - Replace native datetime-local inputs with a shadcn Calendar range picker: preset rail (today/7d/this~last week/30d/this~last month), dual-month desktop view, themed time inputs, fresh-range reselect, no outside days - Default log time range now covers the whole current day (00:00-23:59:59) - Fix range highlight invisible inside popovers (muted -> accent) and mark today by primary text instead of a fill that mimicked selection - Extract shared calendar locale map (adds zh-TW) for all date pickers - Generalize disabled-row treatment into status row palettes (error/info/ warning) and apply them to usage-logs desktop rows and mobile cards - Split "Earned this month" from "This month" i18n key to stop the check-in card translation leaking into date presets
…skeletons - New data-theme-badge axis (default/lg/xl, site default lg) with config drawer section, cookie persistence, and unlayered CSS overrides; unpin h-5! on model badge so the setting takes effect - Right-align and unify type ramp of compound cells inside mobile log card rows via in-data-[slot=data-table-card-value] variants - Fix skeleton overflow on narrow screens at call sites (min-w-0, shrink-0, max-w-full) and mirror real toolbar/stat layouts - Show theme settings trigger on mobile header
- New data-theme-text axis (sm/default/lg/xl/2xl) that overrides only the --text-* type ramp, composing with density and presets; config drawer section with per-tier "Aa" previews, cookie persistence, i18n for all seven locales - Add one-line font licensing note under the font picker linking Public Sans, Lora, and JetBrains Mono sources and the SIL OFL 1.1 license text
Important
📝 变更描述 / Description
(简述:做了什么?为什么这样改能生效?请基于你对代码逻辑的理解来写,避免粘贴未经整理的内容)
🚀 变更类型 / Type of change
🔗 关联任务 / Related Issue
✅ 提交前检查项 / Checklist
Bug fix,我已提交或关联对应 Issue,且不会将设计取舍、预期不一致或理解偏差直接归类为 bug。📸 运行证明 / Proof of Work
(请在此粘贴截图、关键日志或测试报告,以证明变更生效)