Switch to Geist/Geist Mono and fix numeric typography#211
Conversation
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Reviewer's guide (collapsed on small PRs)Reviewer's GuideSwitches the app’s font stack from DM Sans/JetBrains Mono to Geist/Geist Mono variable fonts and standardizes numeric typography by applying tabular-nums to key read-only time/offset displays while cleaning up an unused time-input rule. Flow diagram for numeric typography policy (editable vs read-only)flowchart LR
start[Numeric_value_display]
decision{Editable_input?}
editable[Use font-mono
class font-mono]
readonly[Use font-sans
with tabular-nums]
start --> decision
decision --> editable
decision --> readonly
subgraph Readonly_examples
hover_time[HoverTimePreview formatTime]
segment_duration[SegmentEditDialog duration formatTime]
subtitle_offset[PlayerSettingsMenu subtitleOffset.toFixed]
readonly --> hover_time
readonly --> segment_duration
readonly --> subtitle_offset
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
React Doctor found no new issues. 🎉 Reviewed by React Doctor for commit |
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- Consider introducing a utility class or Tailwind plugin for the shared numeric-typography policy (e.g., read-only numeric + tabular-nums) to avoid sprinkling
tabular-numsmanually and keep future additions consistent. - Now that Geist/Geist Mono are the primary stacks, it may be worth scanning other components that rely on
font-monoor numeric readouts to ensure their usage (mono vs proportional + tabular-nums) matches the policy you described here.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- Consider introducing a utility class or Tailwind plugin for the shared numeric-typography policy (e.g., read-only numeric + tabular-nums) to avoid sprinkling `tabular-nums` manually and keep future additions consistent.
- Now that Geist/Geist Mono are the primary stacks, it may be worth scanning other components that rely on `font-mono` or numeric readouts to ensure their usage (mono vs proportional + tabular-nums) matches the policy you described here.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (8 files)
Note: This PR is a TypeScript/React/CSS font and numeric-typography change, not C#/.NET code, so the .NET design-pattern checklist does not apply. Incremental changes since the last review add the Previous Review Summary (commit 6e02cf3)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 6e02cf3)Status: No Issues Found | Recommendation: Merge Files Reviewed (6 files)
Note: This PR is a TypeScript/React/CSS font and numeric-typography change, not C#/.NET code, so the .NET design-pattern checklist does not apply. The changes are well-scoped and verified against intent: font imports and Reviewed by hy3:free · Input: 25.4K · Output: 3.1K · Cached: 133.4K |
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
DM Sans Variable ships no
tnumOpenType feature, so everytabular-numsutility in the app (scrubber timecodes, episode switcher, command palette) was a silent no-op and live-updating timestamps jittered as digit widths changed.--font-monoalso pointed at JetBrains Mono, which was never installed, so mono surfaces fell back to whateverui-monospacethe OS provides.This swaps the font stack to Geist / Geist Mono (both fontsource variable packages, same pipeline as before) and applies a consistent numeric-typography policy:
--font-sans→ 'Geist Variable',--font-mono→ 'Geist Mono Variable'. Geist shipstnum, so existingtabular-numsusage now actually works.kbdhints, the desktop-fallback URL.tabular-nums: converted the segment dialog's duration line and the subtitle-offset readout from mono, and added missingtabular-numsto the scrubber hover-time preview and the segment dialog's live time previews.input[type='number'].time-inputrule (no matching markup).Verified in-browser: both families load (
document.fonts.checktrue) and the UI renders in Geist; build, format check, and all 594 tests pass.Summary by Sourcery
Switch the UI font stack to Geist/Geist Mono and standardize numeric typography for time-related readouts.
New Features:
Enhancements: