mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-23 22:46:49 +01:00
* Theme extensions Adds the ability to choose the themeing strategy: Extend one of the existing themes (light or dark) or go fully custom. The latter was the only option up to now, which isn't ideal: - One had to provide a full-blown theme file overriding all variables - Tedious, error prone and hard to maintain, because one has to keep track of updates This PR makes it so that one can choose light or dark as base theme and do modifications on top. Benefit: You can specify a limited set of variables and might get away with 5-20 lines of CSS. * Ensure custom theme is present * Update checkout test
31 lines
1.5 KiB
Text
31 lines
1.5 KiB
Text
@using BTCPayServer.Abstractions.Extensions
|
|
@using BTCPayServer.Services
|
|
@using Microsoft.AspNetCore.Mvc.TagHelpers
|
|
@using BTCPayServer.Abstractions.Contracts
|
|
@inject ThemeSettings Theme
|
|
@inject IFileService FileService
|
|
|
|
@if (Theme.CustomTheme && !string.IsNullOrEmpty(Theme.CssUri))
|
|
{ // legacy customization with CSS URI - keep it for backwards-compatibility
|
|
<link href="@Context.Request.GetRelativePathOrAbsolute(Theme.CssUri)" rel="stylesheet" asp-append-version="true" />
|
|
}
|
|
else if (Theme.CustomTheme && !string.IsNullOrEmpty(Theme.CustomThemeFileId))
|
|
{ // new customization uses theme file id provided by upload
|
|
@if (Theme.CustomThemeExtension != ThemeExtension.Custom)
|
|
{ // needs to be added for light and dark, because dark extends light
|
|
<link href="~/main/themes/default.css" rel="stylesheet" asp-append-version="true" />
|
|
}
|
|
@if (Theme.CustomThemeExtension == ThemeExtension.Dark)
|
|
{
|
|
<link href="~/main/themes/default-dark.css" rel="stylesheet" asp-append-version="true" />
|
|
}
|
|
<link href="@(await FileService.GetFileUrl(Context.Request.GetAbsoluteRootUri(), Theme.CustomThemeFileId))" rel="stylesheet" asp-append-version="true" />
|
|
}
|
|
else
|
|
{
|
|
<link href="~/main/themes/default.css" asp-append-version="true" rel="stylesheet" />
|
|
<link href="~/main/themes/default-dark.css" asp-append-version="true" rel="stylesheet" id="DarkThemeLinkTag" />
|
|
<script src="~/js/theme-switch.js" asp-append-version="true"></script>
|
|
<noscript><style>.btcpay-theme-switch { display: none !important; }</style></noscript>
|
|
}
|
|
|