diff --git a/src/PSLauncher.App/PSLauncher.App.csproj b/src/PSLauncher.App/PSLauncher.App.csproj
index cbeff65..b035d50 100644
--- a/src/PSLauncher.App/PSLauncher.App.csproj
+++ b/src/PSLauncher.App/PSLauncher.App.csproj
@@ -40,6 +40,11 @@
+
+
diff --git a/src/PSLauncher.App/Resources/InverseBoolToVisibilityConverter.cs b/src/PSLauncher.App/Resources/InverseBoolToVisibilityConverter.cs
new file mode 100644
index 0000000..7607627
--- /dev/null
+++ b/src/PSLauncher.App/Resources/InverseBoolToVisibilityConverter.cs
@@ -0,0 +1,18 @@
+using System.Globalization;
+using System.Windows;
+using System.Windows.Data;
+
+namespace PSLauncher.App.Resources;
+
+///
+/// Inverse de : true → Collapsed, false → Visible.
+/// Utile pour afficher un placeholder quand un binding bool est false (ex. "DocumentationUrl est vide").
+///
+public sealed class InverseBoolToVisibilityConverter : IValueConverter
+{
+ public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
+ => value is bool b && b ? Visibility.Collapsed : Visibility.Visible;
+
+ public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
+ => value is Visibility v && v != Visibility.Visible;
+}
diff --git a/src/PSLauncher.App/Resources/Theme.xaml b/src/PSLauncher.App/Resources/Theme.xaml
index dde54d5..bed4e6b 100644
--- a/src/PSLauncher.App/Resources/Theme.xaml
+++ b/src/PSLauncher.App/Resources/Theme.xaml
@@ -3,6 +3,7 @@
xmlns:res="clr-namespace:PSLauncher.App.Resources">
+
pack://application:,,,/Resources/#Pirulen
@@ -72,6 +73,47 @@
+
+
+