So you have Swagger integrated into your .NET Core Web API application. Maybe even using my previous guide. And now you want to customize it a bit.
I prefer my UI’s dark. So, when I am presented with a predominantly white screen from the Swagger default theme, I immediately want to change it. Luckily SwaggerUI supports CSS injection.
Here are the tweaks that we need to make:
Changes for Startup.cs
Enable support for static files in a Configure()
method
app.UseStaticFiles();
Add folder structure with custom CSS
wwwroot/
└──swagger-ui/
└── SwaggerDark.css
Inject custom CSS
Now we can inject the custom CSS with InjectStylesheet()
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI");
c.InjectStylesheet("/swagger-ui/SwaggerDark.css");
});
You’ve read till the end, so as a thank you here’s the link to the dark theme I just mentioned. It even comes with a dark scroll bar and custom drop-down arrows. https://github.com/Amoenus/SwaggerDark/
Thank you for reading. Consider subscribing and leaving a comment.
Top comments (5)
Thanks a lot for sharing!
In case someone don't want to enable serving static files, you can also add a endpoint that serves only that CSS, like this:
Program.cs
In the
.csproj
file (or using the VS Properties menu), ensure theSwaggerDark.css
file is copied to the output directory (in this case, the file is at the root of the project, next toProgram.cs
):Hopefully this helps someone some day 🙂
This should make it even easier.
Thanks a bunch!
Thank you!
Thank you!
I signed up just to say that.