Hint: Hit [Windows]+ keys and paste this to open the folder: %USERPROFILE%\AppData\Local\Programs\Qlik\Sense\Client\themes
HighVis Theme (as an example)
The highvis theme is not perfect, there are chart types and sub-pages (like the filters and search) which will not look very nice. See this as a starting point and use Browser inspection to understand where different styling information is coming from. Then make your own enhancements to the .css. For example filter panes with their green/white/grey shading dont fit well to a dark theme.
Download the attached highvis2.zip file (for Sense versions 2.2 - 3.x) and put it in the appropriate folder (either the one for Server or for Desktop).
Keep the subfolder structure (the 2 files within the "highvis2" folder).
The subfolder name matches the theme name, under which you later call it via the URL
How to call a theme (other than the default)
Go to the hub and add add "/theme/highvis2" to the url. This means, any app you will open will use that theme from now on. Note that the parameters "/theme/highvis2" are sticky to any page you navigate to.
Qlik Sense Desktop users: There is no way to choose a custom theme in Qlik Sense Dekstop (since the URL is not editible). The only ones Switch to the browser instead.
How to change the default theme (not recommended)
The default themes are found in the same folders as above in the subfolder "sense". If you modify those all the standard colors/fonts graph width may be changed or even messed up. In the newer versions, where there is another folder structure with "old" and "modern" on the folder level of "themes", the default setting can only be changed by modifying both "themes\modern\sense" and "themes\old\sense"
However, themes are cached from both sides the (browser) clients and even from the Sense webserver, so you will never see the change instantly, may have to restart QS Desktop or QS Server.
A trick to test changes instantly is to rename the theme subfolder all times after a change ... like "highvis2" "highvis3" "highvis4" ... and call it from an app making the same change in the url ( .... /theme/highvis3 ...)