Bundle Geist as the body sans
The design's `--ely-font-sans` is Geist; we were registering only Newsreader. Body text everywhere fell through to GPUI's `.SystemUIFont` (SF Pro on macOS) — too humanist for the geometric, calm tech aesthetic the design wants. Bundle Geist-Regular (SIL OFL 1.1, 126 KB), register it alongside Newsreader, and set the root window's `.font_family(SANS_FAMILY)`. SERIF_FAMILY callsites continue to override per element so headlines keep using Newsreader. Only Regular is bundled — GPUI synthesizes weights from the metrics, so 500/600 still read correctly. Bold/italic file additions are a later polish.
This commit is contained in:
@@ -30,5 +30,5 @@ pub(crate) use split_pane::{
|
||||
render_split_pane_header,
|
||||
};
|
||||
pub(crate) use topbar::render_topbar;
|
||||
pub(crate) use typography::{SERIF_FAMILY, register_serif_fonts};
|
||||
pub(crate) use typography::{SANS_FAMILY, SERIF_FAMILY, register_serif_fonts};
|
||||
pub(crate) use wallpaper::render_wallpaper;
|
||||
|
||||
@@ -6,12 +6,23 @@ const NEWSREADER_REGULAR: &[u8] =
|
||||
include_bytes!("../../../assets/fonts/Newsreader.ttf");
|
||||
const NEWSREADER_ITALIC: &[u8] =
|
||||
include_bytes!("../../../assets/fonts/Newsreader-Italic.ttf");
|
||||
const GEIST_REGULAR: &[u8] =
|
||||
include_bytes!("../../../assets/fonts/Geist-Regular.ttf");
|
||||
|
||||
pub(crate) const SERIF_FAMILY: &str = "Newsreader";
|
||||
pub(crate) const SANS_FAMILY: &str = "Geist";
|
||||
|
||||
/// Register every bundled UI font with GPUI's text system.
|
||||
///
|
||||
/// Newsreader is the design's display serif (Hero headlines, settings
|
||||
/// titles, reading-list cover). Geist is the design's body sans —
|
||||
/// without it GPUI falls back to `.SystemUIFont` (SF Pro on macOS),
|
||||
/// which is too humanist for the geometric calm tech aesthetic the
|
||||
/// design specifies.
|
||||
pub(crate) fn register_serif_fonts(cx: &App) -> gpui::Result<()> {
|
||||
cx.text_system().add_fonts(vec![
|
||||
Cow::Borrowed(NEWSREADER_REGULAR),
|
||||
Cow::Borrowed(NEWSREADER_ITALIC),
|
||||
Cow::Borrowed(GEIST_REGULAR),
|
||||
])
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ use gpui::{
|
||||
|
||||
use super::chrome::command_match::visible_command_rows;
|
||||
use super::chrome::{
|
||||
panel_bg, panel_shadow, render_command_overlay,
|
||||
SANS_FAMILY, panel_bg, panel_shadow, render_command_overlay,
|
||||
render_topbar as render_topbar_chrome, render_wallpaper,
|
||||
};
|
||||
use super::sidebar::collapsed_sidebar_active;
|
||||
@@ -69,6 +69,7 @@ impl ElyShell {
|
||||
.on_action(cx.listener(Self::on_zoom_out))
|
||||
.on_mouse_move(cx.listener(Self::on_window_mouse_move))
|
||||
.capture_key_down(cx.listener(Self::on_command_overlay_key_down))
|
||||
.font_family(SANS_FAMILY)
|
||||
.text_color(rgb(colors::INK))
|
||||
.child(render_wallpaper(snapshot.appearance.wallpaper()))
|
||||
.child(
|
||||
|
||||
Reference in New Issue
Block a user