diff --git a/cosmic-theme/src/model/density.rs b/cosmic-theme/src/model/density.rs
index aa1685afdf2..7655361c373 100644
--- a/cosmic-theme/src/model/density.rs
+++ b/cosmic-theme/src/model/density.rs
@@ -1,10 +1,14 @@
use crate::Spacing;
use serde::{Deserialize, Serialize};
+/// Density options for the Cosmic theme
#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, Serialize, Deserialize)]
pub enum Density {
+ /// Lower padding/spacing of elements
Compact,
+ /// Higher padding/spacing of elements
Spacious,
+ /// Standard padding/spacing of elements
#[default]
Standard,
}
diff --git a/res/icons/navbar-closed-symbolic.svg b/res/icons/navbar-closed-symbolic.svg
new file mode 100644
index 00000000000..46f35e1692f
--- /dev/null
+++ b/res/icons/navbar-closed-symbolic.svg
@@ -0,0 +1,10 @@
+
diff --git a/res/icons/navbar-open-symbolic.svg b/res/icons/navbar-open-symbolic.svg
new file mode 100644
index 00000000000..c1f3216158d
--- /dev/null
+++ b/res/icons/navbar-open-symbolic.svg
@@ -0,0 +1,8 @@
+
diff --git a/src/app/core.rs b/src/app/core.rs
index ad9ca2a7de8..eee5ae583c2 100644
--- a/src/app/core.rs
+++ b/src/app/core.rs
@@ -3,7 +3,7 @@
use std::collections::HashMap;
-use crate::{config::CosmicTk, widget::nav_bar};
+use crate::widget::nav_bar;
use cosmic_config::CosmicConfigEntry;
use cosmic_theme::ThemeMode;
use iced::window;
diff --git a/src/app/mod.rs b/src/app/mod.rs
index 815051f0b15..c703b32caaf 100644
--- a/src/app/mod.rs
+++ b/src/app/mod.rs
@@ -48,8 +48,6 @@ pub mod message {
pub use self::command::Command;
pub use self::core::Core;
pub use self::settings::Settings;
-use crate::config::interface_density;
-use crate::cosmic_theme::Density;
use crate::prelude::*;
use crate::theme::THEME;
use crate::widget::{context_drawer, horizontal_space, id_container, menu, nav_bar, popover};
@@ -654,11 +652,6 @@ impl ApplicationExt for App {
.focused_window()
.is_some_and(|i| i == self.main_window_id());
- let padding = match interface_density() {
- Density::Compact => 2,
- _ => 8,
- };
-
let content_row = crate::widget::row::with_children({
let mut widgets = Vec::with_capacity(4);
@@ -739,7 +732,7 @@ impl ApplicationExt for App {
let content: Element<_> = if core.window.content_container {
content_row
.apply(crate::widget::container)
- .padding([0, padding, padding, padding])
+ .padding([0, 8, 8, 8])
.width(iced::Length::Fill)
.height(iced::Length::Fill)
.style(crate::theme::Container::WindowBackground)
diff --git a/src/widget/header_bar.rs b/src/widget/header_bar.rs
index eabb3cd6fc7..1f74510b602 100644
--- a/src/widget/header_bar.rs
+++ b/src/widget/header_bar.rs
@@ -277,10 +277,10 @@ impl<'a, Message: Clone + 'static> HeaderBar<'a, Message> {
end.push(widget::horizontal_space(Length::Fixed(12.0)).into());
end.push(self.window_controls());
- let (height, padding) = match self.density.unwrap_or_else(crate::config::header_size) {
- Density::Compact => (36.0, 2.0),
- Density::Spacious => (48.0, 8.0),
- Density::Standard => (48.0, 8.0),
+ let height = match self.density.unwrap_or_else(crate::config::header_size) {
+ Density::Compact => 40.0,
+ Density::Spacious => 48.0,
+ Density::Standard => 48.0,
};
// Creates the headerbar widget.
@@ -316,8 +316,8 @@ impl<'a, Message: Clone + 'static> HeaderBar<'a, Message> {
)
.align_items(iced::Alignment::Center)
.height(Length::Fixed(height))
- .padding(padding)
- .spacing(padding)
+ .padding([0, 8])
+ .spacing(8)
.apply(widget::container)
.style(crate::theme::Container::HeaderBar {
focused: self.focused,
@@ -387,13 +387,6 @@ impl<'a, Message: Clone + 'static> HeaderBar<'a, Message> {
}};
}
- let density = self.density.unwrap_or_else(crate::config::header_size);
- let spacing = if matches!(density, Density::Compact) {
- 2
- } else {
- 8
- };
-
widget::row::with_capacity(3)
.push_maybe(
self.on_minimize
@@ -410,7 +403,7 @@ impl<'a, Message: Clone + 'static> HeaderBar<'a, Message> {
.take()
.map(|m| icon!("window-close-symbolic", 16, m)),
)
- .spacing(spacing)
+ .spacing(8)
.apply(widget::container)
.height(Length::Fill)
.center_y()
diff --git a/src/widget/nav_bar_toggle.rs b/src/widget/nav_bar_toggle.rs
index 06c7abd1127..68dd528bfdd 100644
--- a/src/widget/nav_bar_toggle.rs
+++ b/src/widget/nav_bar_toggle.rs
@@ -29,12 +29,12 @@ impl<'a, Message: 'static + Clone> From> for Element<'a, M
fn from(nav_bar_toggle: NavBarToggle) -> Self {
let icon = if nav_bar_toggle.active {
widget::icon::from_svg_bytes(
- &include_bytes!("../../res/icons/close-menu-symbolic.svg")[..],
+ &include_bytes!("../../res/icons/navbar-open-symbolic.svg")[..],
)
.symbolic(true)
} else {
widget::icon::from_svg_bytes(
- &include_bytes!("../../res/icons/open-menu-symbolic.svg")[..],
+ &include_bytes!("../../res/icons/navbar-closed-symbolic.svg")[..],
)
.symbolic(true)
};
diff --git a/src/widget/text_input/input.rs b/src/widget/text_input/input.rs
index 343ae80df0a..90a0f5763f4 100644
--- a/src/widget/text_input/input.rs
+++ b/src/widget/text_input/input.rs
@@ -101,7 +101,7 @@ where
let spacing = THEME.lock().unwrap().cosmic().space_xxs();
TextInput::new(placeholder, value)
- .padding([0, spacing, 0, spacing])
+ .padding([0, spacing])
.style(crate::theme::TextInput::Search)
.leading_icon(
crate::widget::icon::from_name("system-search-symbolic")
@@ -125,7 +125,7 @@ where
{
let spacing = THEME.lock().unwrap().cosmic().space_xxs();
let mut input = TextInput::new(placeholder, value)
- .padding([0, spacing, 0, spacing])
+ .padding([0, spacing])
.style(crate::theme::TextInput::Default)
.leading_icon(
crate::widget::icon::from_name("system-lock-screen-symbolic")
@@ -170,7 +170,7 @@ where
TextInput::new(placeholder, value)
.style(crate::theme::TextInput::Inline)
- .padding([spacing, spacing, spacing, spacing])
+ .padding(spacing)
}
#[cfg(feature = "wayland")]
@@ -246,7 +246,7 @@ where
select_on_focus: false,
font: None,
width: Length::Fill,
- padding: [spacing, spacing, spacing, spacing].into(),
+ padding: spacing.into(),
size: None,
helper_size: 10.0,
helper_line_height: text::LineHeight::Absolute(14.0.into()),