It took some effort to achieve this, but I managed to make it work with a few styling tweaks.
To start, I added a round and visible border to each icon. The style rule also ensures that the icon color is white, excluding checked icons for the usual look.
".MuiSvgIcon-root": {
borderRadius: "50%",
border: "1px solid #1976d2"
},
".MuiSvgIcon-root:not(.Mui-completed)": {
color: "white"
}
Then, I matched the text color with the border color and made it bolder for better readability.
".MuiStepIcon-text": {
fill: "#1976d2",
fontWeight: 500
}
Lastly, I adjusted the margin for active icons to account for the added border thickness. The check icon remains white with fill: "white"
.
".MuiSvgIcon-root.Mui-active": {
color: "#1976d2",
padding: "3px",
borderRadius: "50%",
border: "1px solid #1976d2",
marginY: "-3px"
},
".Mui-active .MuiStepIcon-text": {
fill: "white"
}
Here is the final result:
https://i.sstatic.net/mIKl6.png
Live Demo
https://codesandbox.io/s/horizontalnonlinearstepper-demo-material-ui-forked-u2yt0e?fontsize=14&hidenavigation=1&theme=dark