diff --git a/assets/icons/folder-closed.svg b/assets/icons/folder-closed.svg
index c38c3d9a..238f7f2b 100644
--- a/assets/icons/folder-closed.svg
+++ b/assets/icons/folder-closed.svg
@@ -1 +1 @@
-
+
diff --git a/assets/icons/folder.svg b/assets/icons/folder.svg
index cd3dc093..cc1085ef 100644
--- a/assets/icons/folder.svg
+++ b/assets/icons/folder.svg
@@ -1 +1 @@
-
+
diff --git a/assets/icons/git-branch.svg b/assets/icons/git-branch.svg
index 459edbfa..2c377698 100644
--- a/assets/icons/git-branch.svg
+++ b/assets/icons/git-branch.svg
@@ -1 +1 @@
-
+
diff --git a/assets/icons/info.svg b/assets/icons/info.svg
index 63ac0e3c..20df845b 100644
--- a/assets/icons/info.svg
+++ b/assets/icons/info.svg
@@ -1 +1 @@
-
+
diff --git a/src/ui/file_tree.rs b/src/ui/file_tree.rs
index 53d9a0cd..e594548a 100644
--- a/src/ui/file_tree.rs
+++ b/src/ui/file_tree.rs
@@ -11,7 +11,7 @@ use crate::ui::file_copy;
use crate::ui::host_ops::{ByHost, HostId, HostOps, InFlight, SharedHost, WatchSub};
use crate::ui::host_registry::HostRegistry;
use crate::ui::i18n::{L10nKey, t, t_fmt};
-use crate::ui::right_panel::git_badge;
+use crate::ui::right_panel::{ROW_GLYPH, git_badge};
use crate::ui::scm::status::{status_color, status_glyph};
use gpui::prelude::*;
use gpui::{
@@ -1798,7 +1798,7 @@ impl Tty7App {
.cursor_pointer()
.when(selected, |d| d.bg(gpui::rgb(sf.selected)))
.when(!selected, |d| d.hover(|s| s.bg(gpui::rgb(sf.hover))))
- .child(Icon::new(icon).xsmall().text_color(if is_dir {
+ .child(Icon::new(icon).size(px(ROW_GLYPH)).text_color(if is_dir {
cx.theme().foreground
} else {
muted
@@ -2081,7 +2081,7 @@ impl gpui::Render for DragGhost {
.border_1()
.border_color(cx.theme().border)
.text_sm()
- .child(Icon::new(IconName::File).xsmall())
+ .child(Icon::new(IconName::File).size(px(ROW_GLYPH)))
.child(SharedString::from(self.name.clone()))
}
}
diff --git a/src/ui/right_panel.rs b/src/ui/right_panel.rs
index f1f3913e..2114d704 100644
--- a/src/ui/right_panel.rs
+++ b/src/ui/right_panel.rs
@@ -46,6 +46,19 @@ pub(crate) const META_MONO: f32 = META - STEP;
/// sidebar's group headings, which are the same thing one panel over.
pub(crate) const HEADING: f32 = 11. * STEP;
+/// The leading glyph on a panel row — the file tree's folder and file marks.
+///
+/// Pixels, not rems, because glyphs in this window are sized off the tile
+/// ladder in `app.rs` (`TILE_GLYPH` 13, `TILE_GLYPH_XS` 11) rather than off the
+/// text ramp above. A row that reached for gpui-component's rem sizes instead
+/// could never agree with the tab tiles it sits under: at the default
+/// `ui_font_size` of 16 that ladder offers `xsmall` 12 and `small` 14 and
+/// nothing between, so the tree's glyph came out either a step under the
+/// chrome — reading as a speck beside a 14px name — or a step over it, which
+/// puts a row of content above the navigation that owns it. 13 is the tab
+/// tile's own glyph size, so the two agree by construction.
+pub(crate) const ROW_GLYPH: f32 = crate::ui::app::TILE_GLYPH;
+
// The right panel's type ramp: four steps, a point apart, that the Info and
// Source Control tabs both draw from so switching between them does not change
// the apparent size of the panel. The Files tab, in `file_tree.rs`, reaches the