Skip to content

Conversation

@kylecarbs
Copy link
Member

This PR updates the font configuration to use San Francisco on macOS and Geist on Windows/Linux.

Changes

  • Installed geist package and bundled Geist Sans and Geist Mono variable fonts
  • Added @font-face declarations for both fonts in globals.css
  • Updated --font-primary to prefer -apple-system (San Francisco) first, then fall back to Geist
  • Updated --font-monospace to prefer macOS system monospace fonts, then Geist Mono

Implementation

The font-family stack now works as follows:

  • macOS: Uses -apple-system (San Francisco) for UI and Monaco/Menlo for monospace
  • Windows/Linux: Falls through to Geist for UI and Geist Mono for monospace

Font files are bundled in public/fonts/ and loaded with font-display: swap for better performance.

Generated with mux

…on macOS

- Install geist package for font files
- Bundle Geist Sans and Geist Mono variable fonts
- Update font-family stack to prefer -apple-system (San Francisco) on macOS
- Geist fonts will be used on Windows and Linux
- Use font-display: swap for better loading performance

_Generated with `mux`_
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- Move geist package to devDependencies (only used at build time)
- Add scripts/copy-fonts.sh to copy fonts from node_modules to public/
- Integrate font copying into Makefile build-static target
- Font files are now copied during build, not checked into git

This keeps the geist package as the source of truth for font files
while avoiding duplication in the repository.
Font files are copied from node_modules during build and should not
be committed to the repository.
Variable fonts already include all weights (100-900), so individual
weight files are not needed.
Absolute paths (/fonts/...) resolve to file:///fonts/... in packaged
Electron builds. Use relative paths (./fonts/...) so Vite resolves
them correctly relative to the CSS file.

Thanks to Codex for catching this!
Revert to absolute paths (/fonts/...) as relative paths don't work
with Storybook and Vite's asset handling. The base: './' in vite config
ensures these resolve correctly in packaged builds.

Also fix shell script indentation to use tabs.
@kylecarbs
Copy link
Member Author

@codex The font path issue has been investigated. Absolute paths are required for Storybook and dev server to work correctly. The base: './' in vite.config.ts ensures these resolve correctly in packaged Electron builds by making all paths relative to the app bundle.

@chatgpt-codex-connector
Copy link

To use Codex here, create an environment for this repo.

shfmt expects 2 spaces for line continuations, not tabs.
@kylecarbs kylecarbs merged commit 7402804 into main Nov 13, 2025
12 of 13 checks passed
@kylecarbs kylecarbs deleted the mux-font-adjustment branch November 13, 2025 22:50
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