Outline
Stylesheets:
Consider perhaps the links below :
https://resources.wolframcloud.com/FunctionRepository/search/?i=stylesheet
I tried the dracula theme and indeed the contrast is not good for graphs. DarkMode in https://resources.wolframcloud.com/FunctionRepository/resources/DarkMode/ looks better with graphs
(did not try this one) https://github.com/search?q=mathematica+stylesheet
Graphics visualization (Plot
, Graph
, Dataset
, etc) modifications
For Print
:
Use instead
print = Print[Style [#, White]] &
Or whatever color you like
For Plot
and Graphics
:
You can get the current background color with:
Note: ⎵=\[UnderBracket]
background⎵color =
If[CurrentValue[EvaluationNotebook[], Background] === None, White,
CurrentValue[EvaluationNotebook[], Background]];
If you want optimal contrast you can choose the font color to be the opposite of that color:
print⎵color = ColorNegate@background⎵color;
Then you can modify the options of Plot
and Graphics
:
SetOptions[#, AxesStyle -> print⎵color,
Background -> background⎵color,
BaseStyle -> print⎵color] & /@ {Plot, Graphics};
Note : BaseStyle
in Plot
changes the default color of curves, consider changing that to whatever you prefer. You might also want to change it in Graphics
.
Note : Consider including ListPlot
, ListLinePlot
, ListLogPlot
etc to that list.
You might want to change some of the options. You can check:
Options[Plot]//Association //Dataset
for example to see the options of Plot
and change them as you want. If you want to use your own visualization you can use
Options[Plot]
then use whatever you want like Column
for example
For DataSet
:
The functions to customize Dataset
were introduced in version 12.1.
One option you can change is :
SetOptions[Dataset,
HeaderBackground -> background⎵color];
See Options[Dataset]
for other options.
For Graph
If you generate a graph directly with Graph
then you can use:
SetOptions[Graph, VertexLabelStyle -> print⎵color,
Background -> background⎵color,
BaseStyle -> print⎵color]
However that will not affect the options using other functions that output a Graph
like RandomGraph
. You might want to use the options above for each graph function considered.
How to make the changes permanent
If you want these option changes to Plot
etc to be permanent then you might have to change your init file. It might be best to hardcode the color choice rather than using CurrentValue[EvaluationNotebook[], Background]
in the init file.
FrontEnd modifications
To remove some of the bars that might be a different color than your style sheet see this answer:
Note : See also the comment for how to revert back
https://mathematica.stackexchange.com/a/101062/86543
If you use Linux you can change the color of the menu with:
How to customise the appearance of the menubar and scrollbar on Linux?
My interface after slightly modifying DarkMode (linked in the stylesheet section) and changing the Qt file:

Not sure about my choice to use purple but it makes sense with my desktop theme.
I used this Qt configuration (I kept the popup menu for searching for files the same as I did not know how to control the colors well):
QScrollBar:vertical {
background: black;
width: 20px;
}
QScrollBar::handle:vertical {
background: #03a9f4;
min-height: 0px;
}
QMenu {
background-color: #03a9f4; /* sets background of the menu */
border: 1px solid black;
color: white
}
QMenu::item {
/* sets background of menu item. set this to something non-transparent
if you want menu color and menu item color to be different */
background-color: transparent;
color: white
}
QMenu::item:selected {
/* when user selects item using mouse or keyboard */
background-color: #bd15f4;
}
QMenuBar {
background-color: black;
spacing: 3px; /* spacing between menu bar items */
color: white
}
QMenuBar::item {
padding: 1px 4px;
background: transparent;
border-radius: 4px;
color: white
}
QMenuBar::item:selected {
/* when selected using mouse or keyboard */
background: #a8a8a8;
}
QMenuBar::item:pressed {
background: #888888;
}
* { font-size:16pt; font-family:"Griffy" }
Note:
If you are willing to accept loosing a lot of the functionality of the front end of Mathematica consider also using Jupyter or VScode with the Wolfram Kernel and use a dark theme. See my answer here : https://mathematica.stackexchange.com/a/274441/86543 for pictures of a dark theme with Jupyter and VScode
SetOptions
commands below should work. $\endgroup$