diff --git a/src/UniGetUI.Avalonia/Assets/Images/Empty_inbox.png b/src/UniGetUI.Avalonia/Assets/Images/Empty_inbox.png
new file mode 100644
index 0000000000..ffbaac8dfe
Binary files /dev/null and b/src/UniGetUI.Avalonia/Assets/Images/Empty_inbox.png differ
diff --git a/src/UniGetUI.Avalonia/Assets/Images/Trophee.png b/src/UniGetUI.Avalonia/Assets/Images/Trophee.png
new file mode 100644
index 0000000000..50b5fead8b
Binary files /dev/null and b/src/UniGetUI.Avalonia/Assets/Images/Trophee.png differ
diff --git a/src/UniGetUI.Avalonia/Assets/Images/jetpack_Maurice2-blue.png b/src/UniGetUI.Avalonia/Assets/Images/jetpack_Maurice2-blue.png
deleted file mode 100644
index 82b85dd7f3..0000000000
Binary files a/src/UniGetUI.Avalonia/Assets/Images/jetpack_Maurice2-blue.png and /dev/null differ
diff --git a/src/UniGetUI.Avalonia/Assets/Images/launcher.png b/src/UniGetUI.Avalonia/Assets/Images/launcher.png
new file mode 100644
index 0000000000..e4a5da88d9
Binary files /dev/null and b/src/UniGetUI.Avalonia/Assets/Images/launcher.png differ
diff --git a/src/UniGetUI.Avalonia/Assets/Images/relax.png b/src/UniGetUI.Avalonia/Assets/Images/relax.png
deleted file mode 100644
index eac5cabd52..0000000000
Binary files a/src/UniGetUI.Avalonia/Assets/Images/relax.png and /dev/null differ
diff --git a/src/UniGetUI.Avalonia/Converters/ScaleClampConverter.cs b/src/UniGetUI.Avalonia/Converters/ScaleClampConverter.cs
new file mode 100644
index 0000000000..8efa532c19
--- /dev/null
+++ b/src/UniGetUI.Avalonia/Converters/ScaleClampConverter.cs
@@ -0,0 +1,36 @@
+using System;
+using System.Globalization;
+using Avalonia.Data.Converters;
+
+namespace UniGetUI.Avalonia.Converters;
+
+///
+/// Multiplies a bound double (typically a container dimension) by a fraction and clamps the
+/// result to an upper bound, so an element can scale down with its container yet never grow
+/// past a sensible maximum. The converter parameter is "fraction|max" (e.g. "0.5|240").
+///
+public sealed class ScaleClampConverter : IValueConverter
+{
+ public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
+ {
+ if (value is not double available || double.IsNaN(available) || available <= 0)
+ return 0.0;
+
+ double fraction = 1.0;
+ double max = double.PositiveInfinity;
+
+ if (parameter is string param)
+ {
+ string[] parts = param.Split('|');
+ if (parts.Length > 0 && double.TryParse(parts[0], NumberStyles.Float, CultureInfo.InvariantCulture, out double f))
+ fraction = f;
+ if (parts.Length > 1 && double.TryParse(parts[1], NumberStyles.Float, CultureInfo.InvariantCulture, out double m))
+ max = m;
+ }
+
+ return Math.Min(available * fraction, max);
+ }
+
+ public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
+ => throw new NotSupportedException();
+}
diff --git a/src/UniGetUI.Avalonia/UniGetUI.Avalonia.csproj b/src/UniGetUI.Avalonia/UniGetUI.Avalonia.csproj
index b726bfe034..685eca163d 100644
--- a/src/UniGetUI.Avalonia/UniGetUI.Avalonia.csproj
+++ b/src/UniGetUI.Avalonia/UniGetUI.Avalonia.csproj
@@ -179,9 +179,10 @@
-
-
+
+
+
diff --git a/src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml b/src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml
index ddbcee8c5c..2b6d104507 100644
--- a/src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml
+++ b/src/UniGetUI.Avalonia/Views/SoftwarePages/AbstractPackagesPage.axaml
@@ -5,6 +5,7 @@
xmlns:peers="clr-namespace:Avalonia.Automation.Peers;assembly=Avalonia.Controls"
xmlns:vm="using:UniGetUI.Avalonia.ViewModels.Pages"
xmlns:controls="using:UniGetUI.Avalonia.Views.Controls"
+ xmlns:conv="using:UniGetUI.Avalonia.Converters"
xmlns:pkg="using:UniGetUI.PackageEngine.PackageClasses"
xmlns:t="using:UniGetUI.Avalonia.MarkupExtensions"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
@@ -91,6 +92,10 @@
+
+
+
+
@@ -484,7 +489,7 @@
-
+
-
diff --git a/src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs b/src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs
index 1e7e9b7531..8e73029c96 100644
--- a/src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs
+++ b/src/UniGetUI.Avalonia/Views/SoftwarePages/PackageBundlesPage.cs
@@ -62,7 +62,7 @@ public PackageBundlesPage() : base(new PackagesPageData
DisableFilterOnQueryChange = false,
DisableReload = true,
NoPackages_BackgroundText = CoreTools.Translate("Add packages or open an existing package bundle"),
- NoPackages_ImagePath = "avares://UniGetUI/Assets/Images/maurice_penseur.png",
+ NoPackages_ImagePath = "avares://UniGetUI/Assets/Images/Empty_inbox.png",
NoPackages_SourcesText = CoreTools.Translate("Add packages to start"),
NoPackages_SubtitleText_Base = CoreTools.Translate("The current bundle has no packages. Add some packages to get started"),
MainSubtitle_StillLoading = CoreTools.Translate("Loading packages"),
diff --git a/src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs b/src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs
index 495d649679..594f750560 100644
--- a/src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs
+++ b/src/UniGetUI.Avalonia/Views/SoftwarePages/SoftwareUpdatesPage.cs
@@ -43,7 +43,7 @@ public SoftwareUpdatesPage() : base(new PackagesPageData
DisableFilterOnQueryChange = false,
DisableReload = false,
NoPackages_BackgroundText = CoreTools.Translate("Hooray! No updates were found."),
- NoPackages_ImagePath = "avares://UniGetUI/Assets/Images/relax.png",
+ NoPackages_ImagePath = "avares://UniGetUI/Assets/Images/Trophee.png",
NoPackages_SourcesText = CoreTools.Translate("Everything is up to date"),
NoPackages_SubtitleText_Base = CoreTools.Translate("Everything is up to date"),
MainSubtitle_StillLoading = CoreTools.Translate("Loading packages"),