As a C# developer, you may be interested in Blazor, it looks like it's ready for production in web, you could wrap that in Electron for a desktop app OR develop a native one using the same codebase:
Blazor WebAssembly is now officially released! This is a fully-featured and supported release of Blazor WebAssembly that is ready for production use. Full stack web development with .NET is now here!
devblogs.microsoft.com
Native mobile support with Blazor is experimental:
Announcing Experimental Mobile Blazor Bindings | ASP.NET Blog (https://devblogs.microsoft.com/aspnet/mobile-blazor-bindings-experiment/)
While Blazor looks cool, I'm not a C# developer. I prefer React & React Native using TypeScript.
I actually maintain a project that wraps React Dom & React Native for native development on all major mobile & desktop platforms as well as 1st class web support. It's being used in production where I work, it is based off of ReactXP which Microsoft uses in production for Skype. I suggest you go with the TypeScript React Native route, you'll find Microsoft made TypeScript pretty familiar to C# in some ways.
One code base for native mobile, native desktop, and web!
ult.dev
React Native (for iOS and Android):
A framework for building native apps using React
reactnative.dev
React Native (for Windows & MacOS):
Build native Windows & macOS apps with Javascript and React
microsoft.github.io
If you decide to go with the React route, I'd recommend using either ULT or ReactXP if you want to target ALL platforms.
If you decide to go with the Blazor route, I believe that's safe as well, but there may be growing pains. Microsoft seems very interested in it and will support it for awhile, but they are also maintaining the React Native forks and TypeScript as well. Thanks MS!
Then you have Flutter, but Google will just abandon it or Dart, who learns a Google-only language...