Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 17486)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 17487)
@@ -7,4 +7,5 @@
 
 import java.awt.AWTError;
+import java.awt.Color;
 import java.awt.Container;
 import java.awt.Dimension;
@@ -1042,4 +1043,14 @@
                 Logging.log(Logging.LEVEL_ERROR, null, e);
             }
+        } 
+        // Workaround for JDK-8251377: JTabPanel active tab is unreadable in Big Sur, see #20075
+        // os.version will return 10.16, or 11.0 depending on environment variable
+        // https://twitter.com/BriceDutheil/status/1330926649269956612
+        else {
+            final String laf = UIManager.getLookAndFeel().getID();
+            final String macOSVersion = getSystemProperty("os.version");
+            if(PlatformManager.isPlatformOsx() && (laf.contains("Mac") || laf.contains("Aqua")) && (macOSVersion.startsWith("10.16") || macOSVersion.startsWith("11"))){
+                UIManager.put("TabbedPane.foreground", Color.BLACK);
+            }
         }
     }
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 17486)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 17487)
@@ -26,4 +26,5 @@
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 
@@ -31,4 +32,6 @@
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.io.CertificateAmendment.NativeCertAmend;
+import org.openstreetmap.josm.spi.preferences.Config;
+
 
 /**
@@ -81,6 +84,13 @@
             }
             // setup the dock icon. It is automatically set with application bundle and Web start but we need
-            // to do it manually if run with `java -jar``
-            eawtApplication.getDeclaredMethod("setDockIconImage", Image.class).invoke(appli, ImageProvider.get("logo").getImage());
+            // to do it manually if run with `java -jar``. 
+            eawtApplication.getDeclaredMethod("setDockIconImage", Image.class).invoke(
+                appli, 
+                Optional.ofNullable(
+                    new ImageProvider(Config.getUrls().getJOSMWebsite()+"/logo-macos.png").setOptional(true).get()
+                ).orElse( // Fall back to default icon
+                    ImageProvider.get("logo")).getImage()
+            );
+        
             // enable full screen
             enableOSXFullscreen(MainApplication.getMainFrame());
