diff --git a/crates/activity_indicator/src/activity_indicator.rs b/crates/activity_indicator/src/activity_indicator.rs index 6641db0805..a7637b0a48 100644 --- a/crates/activity_indicator/src/activity_indicator.rs +++ b/crates/activity_indicator/src/activity_indicator.rs @@ -787,7 +787,8 @@ impl Render for ActivityIndicator { }; let this = cx.entity().downgrade(); let truncate_content = content.message.len() > MAX_MESSAGE_LEN; - result.gap_2().child( + let spaced_result = result.gap_2().py(DynamicSpacing::Base04.rems(cx)); + spaced_result.child( PopoverMenu::new("activity-indicator-popover") .trigger( ButtonLike::new("activity-indicator-trigger").child( diff --git a/crates/diagnostics/src/items.rs b/crates/diagnostics/src/items.rs index 7ac6d101f3..ec03c48899 100644 --- a/crates/diagnostics/src/items.rs +++ b/crates/diagnostics/src/items.rs @@ -94,6 +94,7 @@ impl Render for DiagnosticIndicator { }; indicator + .py(DynamicSpacing::Base04.rems(cx)) .child( ButtonLike::new("diagnostic-indicator") .child(diagnostic_indicator) diff --git a/crates/edit_prediction_button/src/edit_prediction_button.rs b/crates/edit_prediction_button/src/edit_prediction_button.rs index 0e3fe8cb1a..ae7442fe45 100644 --- a/crates/edit_prediction_button/src/edit_prediction_button.rs +++ b/crates/edit_prediction_button/src/edit_prediction_button.rs @@ -76,6 +76,8 @@ impl Render for EditPredictionButton { let all_language_settings = all_language_settings(None, cx); + let spaced_div = div().py(DynamicSpacing::Base04.rems(cx)); + match all_language_settings.edit_predictions.provider { EditPredictionProvider::None => div(), @@ -100,7 +102,7 @@ impl Render for EditPredictionButton { }; if let Status::Error(e) = status { - return div().child( + return spaced_div.child( IconButton::new("copilot-error", icon) .icon_size(IconSize::Small) .on_click(cx.listener(move |_, _, window, cx| { @@ -129,7 +131,7 @@ impl Render for EditPredictionButton { } let this = cx.entity(); - div().child( + spaced_div.child( PopoverMenu::new("copilot") .menu(move |window, cx| { Some(match status { @@ -185,7 +187,7 @@ impl Render for EditPredictionButton { let this = cx.entity(); let fs = self.fs.clone(); - div().child( + spaced_div.child( PopoverMenu::new("supermaven") .menu(move |window, cx| match &status { SupermavenButtonStatus::NeedsActivation(activate_url) => { @@ -249,7 +251,7 @@ impl Render for EditPredictionButton { "Sign In" }; - return div().child( + return spaced_div.child( IconButton::new("zed-predict-pending-button", zeta_icon) .shape(IconButtonShape::Square) .indicator(Indicator::dot().color(Color::Muted)) @@ -355,7 +357,7 @@ impl Render for EditPredictionButton { popover_menu = popover_menu.trigger(icon_button); } - div().child(popover_menu.into_any_element()) + spaced_div.child(popover_menu.into_any_element()) } } } diff --git a/crates/go_to_line/src/cursor_position.rs b/crates/go_to_line/src/cursor_position.rs index e60a3651aa..029dafac39 100644 --- a/crates/go_to_line/src/cursor_position.rs +++ b/crates/go_to_line/src/cursor_position.rs @@ -1,13 +1,13 @@ use editor::{Editor, EditorSettings, MultiBufferSnapshot}; -use gpui::{App, Entity, FocusHandle, Focusable, Subscription, Task, WeakEntity}; +use gpui::{App, Entity, FocusHandle, Focusable, Styled, Subscription, Task, WeakEntity}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use settings::{Settings, SettingsSources}; use std::{fmt::Write, num::NonZeroU32, time::Duration}; use text::{Point, Selection}; use ui::{ - Button, ButtonCommon, Clickable, Context, FluentBuilder, IntoElement, LabelSize, ParentElement, - Render, Tooltip, Window, div, + Button, ButtonCommon, Clickable, Context, DynamicSpacing, FluentBuilder, IntoElement, + LabelSize, ParentElement, Render, Tooltip, Window, div, }; use util::paths::FILE_ROW_COLUMN_DELIMITER; use workspace::{StatusItemView, Workspace, item::ItemHandle}; @@ -223,7 +223,7 @@ impl Render for CursorPosition { let context = self.context.clone(); - el.child( + el.py(DynamicSpacing::Base04.rems(cx)).child( Button::new("go-to-line-column", text) .label_size(LabelSize::Small) .on_click(cx.listener(|this, _, window, cx| { diff --git a/crates/image_viewer/src/image_info.rs b/crates/image_viewer/src/image_info.rs index 70a92736aa..dc15baa386 100644 --- a/crates/image_viewer/src/image_info.rs +++ b/crates/image_viewer/src/image_info.rs @@ -77,7 +77,7 @@ impl Render for ImageInfo { .to_string(), ); - div().child( + div().py(DynamicSpacing::Base04.rems(cx)).child( Button::new("image-metadata", components.join(" • ")).label_size(LabelSize::Small), ) } diff --git a/crates/language_selector/src/active_buffer_language.rs b/crates/language_selector/src/active_buffer_language.rs index 56924c4cd2..c3dfd02a5e 100644 --- a/crates/language_selector/src/active_buffer_language.rs +++ b/crates/language_selector/src/active_buffer_language.rs @@ -1,10 +1,11 @@ use editor::{Editor, EditorSettings}; use gpui::{ - Context, Entity, IntoElement, ParentElement, Render, Subscription, WeakEntity, Window, div, + Context, Entity, IntoElement, ParentElement, Render, Styled, Subscription, WeakEntity, Window, + div, }; use language::LanguageName; use settings::Settings as _; -use ui::{Button, ButtonCommon, Clickable, FluentBuilder, LabelSize, Tooltip}; +use ui::{Button, ButtonCommon, Clickable, DynamicSpacing, FluentBuilder, LabelSize, Tooltip}; use workspace::{StatusItemView, Workspace, item::ItemHandle}; use crate::{LanguageSelector, Toggle}; @@ -54,7 +55,7 @@ impl Render for ActiveBufferLanguage { "Unknown".to_string() }; - el.child( + el.py(DynamicSpacing::Base04.rems(cx)).child( Button::new("change-language", active_language_text) .label_size(LabelSize::Small) .on_click(cx.listener(|this, _, window, cx| { diff --git a/crates/language_tools/src/lsp_tool.rs b/crates/language_tools/src/lsp_tool.rs index dd3e80212f..93bcb54aa0 100644 --- a/crates/language_tools/src/lsp_tool.rs +++ b/crates/language_tools/src/lsp_tool.rs @@ -1007,7 +1007,7 @@ impl Render for LspTool { let lsp_tool = cx.entity(); - div().child( + div().py(DynamicSpacing::Base04.rems(cx)).child( PopoverMenu::new("lsp-tool") .menu(move |_, cx| lsp_tool.read(cx).lsp_menu.clone()) .anchor(Corner::BottomLeft) diff --git a/crates/search/src/search_status_button.rs b/crates/search/src/search_status_button.rs index fcf36e86fa..e60edaccad 100644 --- a/crates/search/src/search_status_button.rs +++ b/crates/search/src/search_status_button.rs @@ -21,7 +21,7 @@ impl Render for SearchButton { return button.w_0().invisible(); } - button.child( + button.py(DynamicSpacing::Base04.rems(cx)).child( IconButton::new("project-search-indicator", SEARCH_ICON) .icon_size(IconSize::Small) .tooltip(|window, cx| { diff --git a/crates/toolchain_selector/src/active_toolchain.rs b/crates/toolchain_selector/src/active_toolchain.rs index bf45bffea3..6a77408f41 100644 --- a/crates/toolchain_selector/src/active_toolchain.rs +++ b/crates/toolchain_selector/src/active_toolchain.rs @@ -2,12 +2,15 @@ use std::{path::Path, sync::Arc}; use editor::Editor; use gpui::{ - AsyncWindowContext, Context, Entity, IntoElement, ParentElement, Render, Subscription, Task, - WeakEntity, Window, div, + AsyncWindowContext, Context, Entity, IntoElement, ParentElement, Render, Styled, Subscription, + Task, WeakEntity, Window, div, }; use language::{Buffer, BufferEvent, LanguageName, Toolchain}; use project::{Project, ProjectPath, WorktreeId, toolchain_store::ToolchainStoreEvent}; -use ui::{Button, ButtonCommon, Clickable, FluentBuilder, LabelSize, SharedString, Tooltip}; +use ui::{ + Button, ButtonCommon, Clickable, DynamicSpacing, FluentBuilder, LabelSize, SharedString, + Tooltip, +}; use util::maybe; use workspace::{StatusItemView, Workspace, item::ItemHandle}; @@ -219,7 +222,7 @@ impl Render for ActiveToolchain { fn render(&mut self, _window: &mut Window, cx: &mut Context) -> impl IntoElement { div().when_some(self.active_toolchain.as_ref(), |el, active_toolchain| { let term = self.term.clone(); - el.child( + el.py(DynamicSpacing::Base04.rems(cx)).child( Button::new("change-toolchain", active_toolchain.name.clone()) .label_size(LabelSize::Small) .on_click(cx.listener(|this, _, window, cx| { diff --git a/crates/vim/src/mode_indicator.rs b/crates/vim/src/mode_indicator.rs index da25919342..4e58a8ac56 100644 --- a/crates/vim/src/mode_indicator.rs +++ b/crates/vim/src/mode_indicator.rs @@ -110,9 +110,14 @@ impl Render for ModeIndicator { format!("{} -- {} --", pending, mode).into() }; - Label::new(label) - .size(LabelSize::Small) - .line_height_style(LineHeightStyle::UiLabel) + div() + .py(DynamicSpacing::Base04.rems(cx)) + .child( + Label::new(label) + .size(LabelSize::Small) + .line_height_style(LineHeightStyle::UiLabel) + .into_any_element(), + ) .into_any_element() } } diff --git a/crates/workspace/src/dock.rs b/crates/workspace/src/dock.rs index 149a122c0c..13806d6153 100644 --- a/crates/workspace/src/dock.rs +++ b/crates/workspace/src/dock.rs @@ -938,6 +938,7 @@ impl Render for PanelButtons { h_flex() .gap_1() + .when(has_buttons, |this| this.py(DynamicSpacing::Base04.rems(cx))) .when( has_buttons && dock.position == DockPosition::Bottom, |this| this.child(Divider::vertical().color(DividerColor::Border)), diff --git a/crates/workspace/src/status_bar.rs b/crates/workspace/src/status_bar.rs index 187e720d9c..7adc7d5c66 100644 --- a/crates/workspace/src/status_bar.rs +++ b/crates/workspace/src/status_bar.rs @@ -41,7 +41,6 @@ impl Render for StatusBar { .w_full() .justify_between() .gap(DynamicSpacing::Base08.rems(cx)) - .py(DynamicSpacing::Base04.rems(cx)) .px(DynamicSpacing::Base06.rems(cx)) .bg(cx.theme().colors().status_bar_background) .map(|el| match window.window_decorations() {