Use variable based bootstrap and creativestart

fix
This commit is contained in:
Dennis Reimann 2019-10-26 21:20:39 +02:00
parent 04fbe42bda
commit fdc1aa25e4
No known key found for this signature in database
GPG key ID: 5009E1797F03F8D0
22 changed files with 7228 additions and 17042 deletions

View file

@ -21,12 +21,16 @@ namespace BTCPayServer.HostedServices
{ {
public void Update(ThemeSettings data) public void Update(ThemeSettings data)
{ {
if (String.IsNullOrWhiteSpace(data.ThemeCssUri))
_themeUri = "/css/btcpay-theme.css";
else
_themeUri = data.ThemeCssUri;
if (String.IsNullOrWhiteSpace(data.BootstrapCssUri)) if (String.IsNullOrWhiteSpace(data.BootstrapCssUri))
_bootstrapUri = "/vendor/bootstrap4/css/bootstrap.css?v=" + DateTime.Now.Ticks; _bootstrapUri = "/vendor/bootstrap/bootstrap.css";
else else
_bootstrapUri = data.BootstrapCssUri; _bootstrapUri = data.BootstrapCssUri;
if (String.IsNullOrWhiteSpace(data.CreativeStartCssUri)) if (String.IsNullOrWhiteSpace(data.CreativeStartCssUri))
_creativeStartUri = "/vendor/bootstrap4-creativestart/creative.css?v=" + DateTime.Now.Ticks; _creativeStartUri = "/vendor/bootstrap4-creativestart/creative.css?v=" + DateTime.Now.Ticks;
else else
@ -34,6 +38,12 @@ namespace BTCPayServer.HostedServices
FirstRun = data.FirstRun; FirstRun = data.FirstRun;
} }
private string _themeUri;
public string ThemeUri
{
get { return _themeUri; }
}
private string _bootstrapUri; private string _bootstrapUri;
public string BootstrapUri public string BootstrapUri
{ {
@ -77,7 +87,7 @@ namespace BTCPayServer.HostedServices
public void OnActionExecuted(ActionExecutedContext context) public void OnActionExecuted(ActionExecutedContext context)
{ {
} }
public void OnActionExecuting(ActionExecutingContext context) public void OnActionExecuting(ActionExecutingContext context)
@ -94,6 +104,10 @@ namespace BTCPayServer.HostedServices
{ {
policies.Clear(); policies.Clear();
} }
if (manager.ThemeUri != null && Uri.TryCreate(manager.ThemeUri, UriKind.Absolute, out uri))
{
policies.Clear();
}
} }
} }
} }

View file

@ -9,6 +9,11 @@ namespace BTCPayServer.Services
{ {
public class ThemeSettings public class ThemeSettings
{ {
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
[MaxLength(500)]
[Display(Name = "Custom theme CSS file")]
public string ThemeCssUri { get; set; }
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)] [JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
[MaxLength(500)] [MaxLength(500)]
[Display(Name = "Custom bootstrap CSS file")] [Display(Name = "Custom bootstrap CSS file")]

View file

@ -14,6 +14,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
<link href="@Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" /> <link href="@Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" />
<link href="@Context.Request.GetRelativePathOrAbsolute(themeManager.ThemeUri)" rel="stylesheet" />
@if (Model.CustomCSSLink != null) @if (Model.CustomCSSLink != null)
{ {
<link href="@Model.CustomCSSLink" rel="stylesheet" /> <link href="@Model.CustomCSSLink" rel="stylesheet" />
@ -32,7 +33,7 @@
<bundle name="wwwroot/bundles/crowdfund-bundle.min.css"></bundle> <bundle name="wwwroot/bundles/crowdfund-bundle.min.css"></bundle>
@if (!string.IsNullOrEmpty(Model.EmbeddedCSS)) @if (!string.IsNullOrEmpty(Model.EmbeddedCSS))
{ {
@Safe.Raw($"<style>{Model.EmbeddedCSS}</style>"); @Safe.Raw($"<style>{Model.EmbeddedCSS}</style>");
} }
</head> </head>

View file

@ -22,6 +22,7 @@
<link rel="manifest" href="~/manifest.json"> <link rel="manifest" href="~/manifest.json">
<link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" /> <link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" />
<link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.ThemeUri)" rel="stylesheet" />
@if (Model.CustomCSSLink != null) @if (Model.CustomCSSLink != null)
{ {
<link href="@Model.CustomCSSLink" rel="stylesheet" /> <link href="@Model.CustomCSSLink" rel="stylesheet" />
@ -47,15 +48,15 @@
max-width: 320px; max-width: 320px;
margin: auto; margin: auto;
} }
.js-cart-item-count::-webkit-inner-spin-button, .js-cart-item-count::-webkit-inner-spin-button,
.js-cart-item-count::-webkit-outer-spin-button { .js-cart-item-count::-webkit-outer-spin-button {
-webkit-appearance: none; -webkit-appearance: none;
-moz-appearance: none; -moz-appearance: none;
appearance: none; appearance: none;
margin: 0; margin: 0;
} }
</style> </style>
@if (!string.IsNullOrEmpty(Model.EmbeddedCSS)) @if (!string.IsNullOrEmpty(Model.EmbeddedCSS))
{ {
@ -318,7 +319,7 @@
<span class="text-muted small">@String.Format(Model.ButtonText, @item.Price.Formatted)</span> <span class="text-muted small">@String.Format(Model.ButtonText, @item.Price.Formatted)</span>
@if (item.Inventory.HasValue) @if (item.Inventory.HasValue)
{ {
<div class="w-100 pt-2 text-center text-muted"> <div class="w-100 pt-2 text-center text-muted">
@if (item.Inventory > 0) @if (item.Inventory > 0)
{ {
@ -453,7 +454,7 @@
</div> </div>
}else if (anyInventoryItems) }else if (anyInventoryItems)
{ {
<div class="w-100 pt-2">&nbsp</div> <div class="w-100 pt-2">&nbsp</div>
} }
</div> </div>
</div> </div>

View file

@ -15,6 +15,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes">
<link href="@Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" /> <link href="@Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" />
<link href="@Context.Request.GetRelativePathOrAbsolute(themeManager.ThemeUri)" rel="stylesheet" />
@if (Model.CustomCSSLink != null) @if (Model.CustomCSSLink != null)
{ {
<link href="@Model.CustomCSSLink" rel="stylesheet" /> <link href="@Model.CustomCSSLink" rel="stylesheet" />
@ -31,7 +32,7 @@
} }
<bundle name="wwwroot/bundles/payment-request-bundle.min.css"></bundle> <bundle name="wwwroot/bundles/payment-request-bundle.min.css"></bundle>
@Safe.Raw(Model.EmbeddedCSS) @Safe.Raw(Model.EmbeddedCSS)
</head> </head>
<body> <body>
@ -185,8 +186,8 @@ else
Pay now Pay now
</button> </button>
<button class="btn btn-secondary btn-lg mt-1" <button class="btn btn-secondary btn-lg mt-1"
v-if="srvModel.anyPendingInvoice && !srvModel.pendingInvoiceHasPayments" v-if="srvModel.anyPendingInvoice && !srvModel.pendingInvoiceHasPayments"
v-on:click="cancelPayment()" v-on:click="cancelPayment()"
:disabled="loading"> :disabled="loading">
<div v-if="loading" class="spinner-grow spinner-grow-sm" role="status"> <div v-if="loading" class="spinner-grow spinner-grow-sm" role="status">
@ -195,7 +196,6 @@ else
Cancel current invoice</button> Cancel current invoice</button>
</template> </template>
</td> </td>
</tr> </tr>
</tbody> </tbody>
@ -206,12 +206,11 @@ else
</div> </div>
<div class="card-footer text-muted d-flex justify-content-between"> <div class="card-footer text-muted d-flex justify-content-between">
<div>
<div >
<span v-on:click="print" class="btn-link d-print-none" style="cursor: pointer"> <span class="fa fa-print"></span> Print</span> <span v-on:click="print" class="btn-link d-print-none" style="cursor: pointer"> <span class="fa fa-print"></span> Print</span>
<span>Updated {{lastUpdated}}</span> <span>Updated {{lastUpdated}}</span>
</div> </div>
<div > <div>
<span class="text-muted">Powered by </span><a href="https://btcpayserver.org" target="_blank">BTCPay Server</a> <span class="text-muted">Powered by </span><a href="https://btcpayserver.org" target="_blank">BTCPay Server</a>
</div> </div>
</div> </div>

View file

@ -19,6 +19,7 @@
<link rel="manifest" href="~/manifest.json"> <link rel="manifest" href="~/manifest.json">
<link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" /> <link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" />
<link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.ThemeUri)" rel="stylesheet" />
<link href="~/vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" /> <link href="~/vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" />
<bundle name="wwwroot/bundles/lightning-node-info-bundle.min.js" /> <bundle name="wwwroot/bundles/lightning-node-info-bundle.min.js" />

View file

@ -13,6 +13,7 @@
@* CSS *@ @* CSS *@
<link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" /> <link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.BootstrapUri)" rel="stylesheet" />
<link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.CreativeStartUri)" rel="stylesheet" /> <link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.CreativeStartUri)" rel="stylesheet" />
<link href="@this.Context.Request.GetRelativePathOrAbsolute(themeManager.ThemeUri)" rel="stylesheet" />
<bundle name="wwwroot/bundles/main-bundle.min.css" /> <bundle name="wwwroot/bundles/main-bundle.min.css" />
@* JS *@ @* JS *@
<bundle name="wwwroot/bundles/main-bundle.min.js" /> <bundle name="wwwroot/bundles/main-bundle.min.js" />

View file

@ -84,7 +84,7 @@
{ {
<div class="alert alert-danger alert-dismissible" style="position:absolute; top:75px;" role="alert"> <div class="alert alert-danger alert-dismissible" style="position:absolute; top:75px;" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button> <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<span>Your access to BTCPay Server is over an unsecured network. If you are using the docker deployment method with NGINX and HTTPS is not available, you probably did not configure your DNS settings correctly. <br /> <span>Your access to BTCPay Server is over an unsecured network. If you are using the docker deployment method with NGINX and HTTPS is not available, you probably did not configure your DNS settings correctly. <br />
We disabled the register and login link so you don't leak your credentials.</span> We disabled the register and login link so you don't leak your credentials.</span>
</div> </div>
} }

View file

@ -15,7 +15,7 @@
"inputFiles": [ "inputFiles": [
"wwwroot/vendor/jquery/jquery.js", "wwwroot/vendor/jquery/jquery.js",
"wwwroot/vendor/popper/popper.js", "wwwroot/vendor/popper/popper.js",
"wwwroot/vendor/bootstrap4/js/bootstrap.js", "wwwroot/vendor/bootstrap/bootstrap.js",
"wwwroot/vendor/jquery-easing/jquery.easing.js", "wwwroot/vendor/jquery-easing/jquery.easing.js",
"wwwroot/vendor/scrollreveal/scrollreveal.min.js", "wwwroot/vendor/scrollreveal/scrollreveal.min.js",
"wwwroot/vendor/magnific-popup/jquery.magnific-popup.js", "wwwroot/vendor/magnific-popup/jquery.magnific-popup.js",
@ -56,7 +56,6 @@
"wwwroot/checkout/**/*.js" "wwwroot/checkout/**/*.js"
] ]
}, },
{ {
"outputFileName": "wwwroot/bundles/lightning-node-info-bundle.min.js", "outputFileName": "wwwroot/bundles/lightning-node-info-bundle.min.js",
"inputFiles": [ "inputFiles": [
@ -71,12 +70,11 @@
"outputFileName": "wwwroot/bundles/cart-bundle.min.js", "outputFileName": "wwwroot/bundles/cart-bundle.min.js",
"inputFiles": [ "inputFiles": [
"wwwroot/vendor/jquery/jquery.js", "wwwroot/vendor/jquery/jquery.js",
"wwwroot/vendor/bootstrap4/js/bootstrap.js", "wwwroot/vendor/bootstrap/bootstrap.js",
"wwwroot/cart/js/cart.js", "wwwroot/cart/js/cart.js",
"wwwroot/cart/js/cart.jquery.js" "wwwroot/cart/js/cart.jquery.js"
] ]
}, },
{ {
"outputFileName": "wwwroot/bundles/crowdfund-bundle-1.min.js", "outputFileName": "wwwroot/bundles/crowdfund-bundle-1.min.js",
"inputFiles": [ "inputFiles": [
@ -89,7 +87,6 @@
"wwwroot/crowdfund/**/*.js" "wwwroot/crowdfund/**/*.js"
] ]
}, },
{ {
"outputFileName": "wwwroot/bundles/crowdfund-bundle-2.min.js", "outputFileName": "wwwroot/bundles/crowdfund-bundle-2.min.js",
"inputFiles": [ "inputFiles": [
@ -133,7 +130,6 @@
"wwwroot/vendor/summernote/summernote-bs4.css" "wwwroot/vendor/summernote/summernote-bs4.css"
] ]
}, },
{ {
"outputFileName": "wwwroot/bundles/crowdfund-bundle.min.css", "outputFileName": "wwwroot/bundles/crowdfund-bundle.min.css",
"inputFiles": [ "inputFiles": [
@ -142,7 +138,6 @@
"wwwroot/crowdfund/**/*.css" "wwwroot/crowdfund/**/*.css"
] ]
}, },
{ {
"outputFileName": "wwwroot/bundles/payment-request-admin-bundle.min.js", "outputFileName": "wwwroot/bundles/payment-request-admin-bundle.min.js",
"inputFiles": [ "inputFiles": [
@ -150,14 +145,12 @@
"wwwroot/payment-request-admin/**/*.js" "wwwroot/payment-request-admin/**/*.js"
] ]
}, },
{ {
"outputFileName": "wwwroot/bundles/payment-request-admin-bundle.min.css", "outputFileName": "wwwroot/bundles/payment-request-admin-bundle.min.css",
"inputFiles": [ "inputFiles": [
"wwwroot/vendor/summernote/summernote-bs4.css" "wwwroot/vendor/summernote/summernote-bs4.css"
] ]
}, },
{ {
"outputFileName": "wwwroot/bundles/payment-request-bundle-1.min.js", "outputFileName": "wwwroot/bundles/payment-request-bundle-1.min.js",
"inputFiles": [ "inputFiles": [
@ -170,7 +163,6 @@
"wwwroot/payment-request/**/*.js" "wwwroot/payment-request/**/*.js"
] ]
}, },
{ {
"outputFileName": "wwwroot/bundles/payment-request-bundle-2.min.js", "outputFileName": "wwwroot/bundles/payment-request-bundle-2.min.js",
"inputFiles": [ "inputFiles": [

View file

@ -0,0 +1,76 @@
/*
* BTCPay variables as CSS custom properties.
* -> These get used in the _variables.scss
*/
:root {
--btcpay-accent-light: #CEDC21;
--btcpay-accent-medium: #51B13E;
--btcpay-accent-dark: #137547;
--btcpay-accent-darkest: #0F3B21;
--btcpay-neutral-100: #FBFAF8;
--btcpay-neutral-200: #F5F5F3;
--btcpay-neutral-300: #E5E5E5;
--btcpay-neutral-600: #536E8D;
--btcpay-neutral-700: #465C76;
--btcpay-neutral-900: #202C39;
--btcpay-color-white: #fff;
--btcpay-color-gray-100: #f8f9fa;
--btcpay-color-gray-200: #e9ecef;
--btcpay-color-gray-300: #dee2e6;
--btcpay-color-gray-400: #ced4da;
--btcpay-color-gray-500: #adb5bd;
--btcpay-color-gray-600: #6c757d;
--btcpay-color-gray-700: #495057;
--btcpay-color-gray-800: #343a40;
--btcpay-color-gray-900: #212529;
--btcpay-color-black: #000;
--btcpay-color-blue: #0069d9;
--btcpay-color-indigo: #6610f2;
--btcpay-color-purple: #6f42c1;
--btcpay-color-pink: #e83e8c;
--btcpay-color-red: #dc3545;
--btcpay-color-orange: #ff6f27;
--btcpay-color-yellow: #ffc107;
--btcpay-color-green: #329f80;
--btcpay-color-teal: #20c997;
--btcpay-color-cyan: #17a2b8;
--btcpay-color-primary: var(--btcpay-color-green);
--btcpay-color-primary-dark: #267861;
--btcpay-color-primary-alpha: rgba(81, 173, 147, 0.25);
--btcpay-color-secondary: var(--btcpay-color-gray-600);
--btcpay-color-secondary-dark: var(--btcpay-color-gray-800);
--btcpay-color-secondary-alpha: rgba(130, 138, 145, 0.25);
--btcpay-color-success: var(--btcpay-color-green);
--btcpay-color-success-dark: #1e7e34;
--btcpay-color-success-alpha: rgba(72, 180, 97, 0.25);
--btcpay-color-info: var(--btcpay-color-cyan);
--btcpay-color-info-dark: #117a8b;
--btcpay-color-info-alpha: rgba(58, 176, 195, 0.25);
--btcpay-color-warning: var(--btcpay-color-yellow);
--btcpay-color-warning-dark: #d39e00;
--btcpay-color-warning-alpha: rgba(2 22, 170, 12, 0.25);
--btcpay-color-danger: var(--btcpay-color-red);
--btcpay-color-danger-dark: #bd2130;
--btcpay-color-danger-alpha: rgba(225, 83, 97, 0.25);
--btcpay-color-light: var(--btcpay-color-gray-100);
--btcpay-color-light-dark: #dae0e5;
--btcpay-color-light-alpha: rgba(216, 217, 219, 0.25);
--btcpay-color-dark: var(--btcpay-neutral-900);
--btcpay-color-dark-dark: #1d2124;
--btcpay-color-dark-alpha: rgba(82, 88, 93, 0.25);
--btcpay-bg-body: var(--btcpay-color-gray-100);
--btcpay-bg-dark: var(--btcpay-accent-darkest);
--btcpay-color-body: var(--btcpay-color-gray-900);
--btcpay-color-link: var(--btcpay-color-primary);
--btcpay-color-link-hover: var(--btcpay-color-primary-dark);
--btcpay-font-size-base: 14px;
--btcpay-font-family-head: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;
--btcpay-font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--btcpay-font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
/* Bootstrap modifications */
html {
font-size: var(--btcpay-font-size-base); }
.bg-dark {
background-color: var(--btcpay-bg-dark) !important; }

File diff suppressed because it is too large Load diff

View file

@ -4,335 +4,170 @@
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-creative/blob/master/LICENSE) * Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-creative/blob/master/LICENSE)
*/ */
:root {
--off-white: #f9fafb;
}
body,
html {
width: 100%;
/* background: #f9fafb; */
background: var(--off-white);
}
body {
font-family: 'Helvetica Neue', Arial, sans-serif;
background: var(--off-white);
}
hr {
max-width: 50px;
border-width: 3px;
border-color: #329F80;
}
hr.light {
border-color: white;
}
h1, h1,
h2, h2,
h3, h3,
h4, h4,
h5, h5,
h6 { h6 {
font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif; font-family: var(--btcpay-font-family-head);
}
p {
/*font-size: 16px;*/
line-height: 1.5;
margin-bottom: 20px;
} }
section { section {
padding: 100px 0; padding: 100px 0;
} }
.section-heading { p {
margin-top: 0; margin-bottom: 1.5rem;
} }
::-moz-selection { hr {
color: white; max-width: 50px;
background: #222222; border-width: 3px;
text-shadow: none; border-color: var(--btcpay-color-primary);
} }
::selection { hr.light {
color: white; border-color: var(--btcpay-color-white);
background: #222222;
text-shadow: none;
}
img::selection {
color: white;
background: transparent;
}
img::-moz-selection {
color: white;
background: transparent;
}
body {
-webkit-tap-highlight-color: #222222;
} }
#mainNav { #mainNav {
border-color: rgba(34, 34, 34, 0.05); background-color: var(--btcpay-bg-dark);
background-color: #0F3723; font-family: var(--btcpay-font-family-head);
font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif; transition: all 0.2s;
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
transition: all 0.2s;
} }
#mainNav .navbar-brand { #mainNav .navbar-nav > li.nav-item > a.nav-link:focus,
font-weight: 700; #mainNav .navbar-nav > li.nav-item > a.nav-link {
text-transform: uppercase; font-size: 13px;
color: #0F3B21; font-weight: 700;
font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif; text-transform: uppercase;
} color: var(--btcpay-color-white);
}
#mainNav .navbar-brand:focus, #mainNav .navbar-brand:hover { #mainNav .navbar-nav > li.nav-item > a.nav-link:focus:hover,
color: #0F3B21; #mainNav .navbar-nav > li.nav-item > a.nav-link:hover {
} color: var(--btcpay-color-white);
}
#mainNav .navbar-toggle { #mainNav .navbar-nav > li.nav-item > a.nav-link:focus.active,
font-size: 12px; #mainNav .navbar-nav > li.nav-item > a.nav-link.active {
font-weight: 700; color: var(--btcpay-color-white) !important;
text-transform: uppercase; background-color: transparent;
color: #222222; }
}
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus, #mainNav .navbar-nav > li.nav-item > a.nav-link:focus.active:hover,
#mainNav .navbar-nav > li.nav-item > a.nav-link { #mainNav .navbar-nav > li.nav-item > a.nav-link.active:hover {
font-size: 13px; background-color: transparent;
font-weight: 700; }
text-transform: uppercase;
color: white;
}
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus:hover,
#mainNav .navbar-nav > li.nav-item > a.nav-link:hover {
color: white;
}
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus.active,
#mainNav .navbar-nav > li.nav-item > a.nav-link.active {
color: white !important;
background-color: transparent;
}
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus.active:hover,
#mainNav .navbar-nav > li.nav-item > a.nav-link.active:hover {
background-color: transparent;
}
@media (min-width: 992px) { @media (min-width: 992px) {
#mainNav { #mainNav {
border-color: rgba(255, 255, 255, 0.3); background-color: transparent;
background-color: transparent; }
}
#mainNav .navbar-brand { #mainNav.navbar-shrink {
color: rgba(255, 255, 255, 0.7); background-color: var(--btcpay-bg-dark);
} }
#mainNav .navbar-brand:focus, #mainNav .navbar-brand:hover {
color: white;
}
#mainNav .navbar-nav > li.nav-item > a.nav-link,
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus {
color: white;
}
#mainNav .navbar-nav > li.nav-item > a.nav-link:hover,
#mainNav .navbar-nav > li.nav-item > a.nav-link:focus:hover {
color: white;
}
#mainNav.navbar-shrink {
border-color: rgba(34, 34, 34, 0.05);
background-color: #0F3723;
}
#mainNav.navbar-shrink .navbar-brand {
font-size: 16px;
color: #0F3B21;
}
#mainNav.navbar-shrink .navbar-brand:focus, #mainNav.navbar-shrink .navbar-brand:hover {
color: #0F3B21;
}
#mainNav.navbar-shrink .navbar-nav > li.nav-item > a.nav-link,
#mainNav.navbar-shrink .navbar-nav > li.nav-item > a.nav-link:focus {
color: white;
}
} }
header.masthead { header.masthead {
position: relative; position: relative;
width: 100%; display: block;
min-height: auto; min-height: auto;
text-align: center; text-align: center;
background-image: url("../../img/bg.png");
background-position: center;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
} }
header.masthead .header-content { header.masthead::before {
position: relative; content: "";
width: 100%; position: absolute;
padding: 150px 15px 100px; top: 0; left: 0;
text-align: center; width: 100%; height: 100%;
} background-image: url("../../img/bg.png");
background-position: center;
background-size: cover;
}
header.masthead .header-content .header-content-inner h1 { header.masthead .header-content {
font-size: 30px; position: relative;
font-weight: 700; width: 100%;
margin-top: 0; padding: 150px 15px 100px;
margin-bottom: 0; text-align: center;
text-transform: uppercase; }
}
header.masthead .header-content .header-content-inner hr { header.masthead .header-content .header-content-inner h1 {
margin: 30px auto; font-size: 30px;
} font-weight: 700;
margin-top: 0;
margin-bottom: 0;
text-transform: uppercase;
}
header.masthead .header-content .header-content-inner p { header.masthead .header-content .header-content-inner hr {
font-size: 16px; margin: 30px auto;
font-weight: 300; }
margin-bottom: 50px;
} header.masthead .header-content .header-content-inner p {
font-size: 16px;
font-weight: 300;
margin-bottom: 50px;
}
@media (min-width: 768px) { @media (min-width: 768px) {
header.masthead { header.masthead {
height: 70%; height: 70%;
min-height: 600px; min-height: 600px;
} }
header.masthead .header-content { header.masthead .header-content {
position: absolute; position: absolute;
top: 50%; top: 50%;
padding: 0 50px; padding: 0 50px;
-webkit-transform: translateY(-50%); transform: translateY(-50%);
-ms-transform: translateY(-50%); }
transform: translateY(-50%);
}
header.masthead .header-content .header-content-inner { header.masthead .header-content .header-content-inner {
max-width: 1000px; max-width: 1000px;
margin-right: auto; margin-right: auto;
margin-left: auto; margin-left: auto;
} }
header.masthead .header-content .header-content-inner h1 { header.masthead .header-content .header-content-inner h1 {
font-size: 50px; font-size: 50px;
} }
header.masthead .header-content .header-content-inner p { header.masthead .header-content .header-content-inner p {
font-size: 18px; font-size: 18px;
max-width: 80%; max-width: 80%;
margin-right: auto; margin-right: auto;
margin-left: auto; margin-left: auto;
} }
} }
.service-box { .service-box {
max-width: 400px; max-width: 400px;
margin: 50px auto 0; margin: 50px auto 0;
} }
@media (min-width: 992px) { @media (min-width: 992px) {
.service-box { .service-box {
margin: 20px auto 0; margin: 20px auto 0;
} }
} }
.service-box p { .service-box p {
margin-bottom: 0; margin-bottom: 0;
}
.portfolio-box {
position: relative;
display: block;
max-width: 650px;
margin: 0 auto;
}
.portfolio-box .portfolio-box-caption {
position: absolute;
bottom: 0;
display: block;
width: 100%;
height: 100%;
text-align: center;
opacity: 0;
background: rgba(240, 95, 64, 0.9);
-webkit-transition: all 0.2s;
-moz-transition: all 0.2s;
transition: all 0.2s;
}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content {
position: absolute;
top: 50%;
width: 100%;
transform: translateY(-50%);
text-align: center;
}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category,
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name {
padding: 0 15px;
font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;
}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category {
font-size: 14px;
font-weight: 600;
text-transform: uppercase;
}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name {
font-size: 18px;
}
.portfolio-box:hover .portfolio-box-caption {
opacity: 1;
}
.portfolio-box:focus {
outline: none;
}
@media (min-width: 768px) {
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-category {
font-size: 16px;
}
.portfolio-box .portfolio-box-caption .portfolio-box-caption-content .project-name {
font-size: 22px;
}
} }
.call-to-action { .call-to-action {
padding: 50px 0; padding: 50px 0;
} }
.call-to-action h2 { .call-to-action h2 {
margin: 0 auto 20px; margin: 0 auto 20px;
} }
.no-gutter > [class*='col-'] { .no-gutter > [class*='col-'] {
padding-right: 0; padding-right: 0;
padding-left: 0; padding-left: 0;
} }

View file

@ -1,4 +0,0 @@
$primary: #329f80;
$secondary: #2284A6;
$dark: #0f3b21;
$font-size-base: 0.9rem;

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long