.pswp--minimal--dark .pswp__top-bar {
background: none; }
+.donation {
+ background-image: url("../img/header-background.jpg");
+ background-size: cover;
+ background-attachment: fixed;
+ background-position: center center;
+ width: 100vw;
+ height: 768px;
+ margin-bottom: 1122px; }
+ @media (min-width: 576px) {
+ .donation {
+ margin-bottom: 1078px; } }
+ @media (min-width: 768px) {
+ .donation {
+ margin-bottom: 668px; } }
+ @media (min-width: 992px) {
+ .donation {
+ margin-bottom: 522px; } }
+ @media (min-width: 1200px) {
+ .donation {
+ height: 800px;
+ margin-bottom: 328px; } }
+
.donation-card {
border-radius: 4px;
background-color: white;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.2); }
+ @media (max-width: 767px) {
+ .donation-card {
+ background-color: transparent;
+ box-shadow: none;
+ border-radius: 0; } }
+ .donation-card h3 a {
+ color: white; }
+ @media (max-width: 767px) {
+ .donation-card .card {
+ height: 1100px;
+ margin-bottom: 32px;
+ border-radius: 4px;
+ background-color: white;
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.2); } }
+ @media (max-width: 575px) {
+ .donation-card .card {
+ border-radius: 0;
+ box-shadow: none;
+ margin-bottom: 0; } }
+ .donation-card .info {
+ border-radius: 4px 0 0 4px; }
+ @media (max-width: 767px) {
+ .donation-card .info {
+ border-radius: 4px;
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.2); } }
+ @media (max-width: 575px) {
+ .donation-card .info {
+ border-radius: 0;
+ box-shadow: none; } }
.ownamount {
overflow: hidden;
background-image: url("/static/img/icons/icon-radiobtn-off.png");
background-repeat: no-repeat;
background-position: 0 0;
- padding-left: 38px; }
+ padding-left: 40px; }
+ @media (min-width: 992px) {
+ input.radiobtn:not(old) + label {
+ padding-left: 28px; } }
input.radiobtn:not(old):checked + label {
background-image: url("/static/img/icons/icon-radiobtn-on.png"); }
padding: 24px;
position: relative;
padding: 24px 20px; }
+ .inline-card #amount {
+ margin-left: -8px; }
label.amount {
- width: 84px;
+ width: 76px;
height: 48px;
display: block;
background-color: white;
font-size: 20px;
color: #42a5f5;
text-align: center;
- margin: 0 8px 16px 8px;
+ margin: 0 4px 12px 4px;
padding: 8px 0 0 0; }
+ @media (min-width: 576px) {
+ label.amount {
+ width: 84px;
+ margin: 0 8px 16px 8px; } }
+
+label.cc img {
+ height: 24px; }
+
+@media (max-width: 1199px) {
+ #ccpayment,
+ #paymentpaypal,
+ #sepapayment {
+ padding-bottom: 24px;
+ margin-bottom: 32px; }
+ #ccpayment label img,
+ #paymentpaypal label img,
+ #sepapayment label img {
+ position: relative; } }
+
+@media (min-width: 992px) {
+ #ccpayment {
+ margin-top: 16px; }
+ #ccpayment label {
+ background-position: 0 4px; } }
+
+@media (max-width: 1199px) {
+ #paymentpaypal label img {
+ top: -7px; } }
+
+@media (min-width: 992px) {
+ #paymentpaypal {
+ margin-top: 14px; }
+ #paymentpaypal label {
+ background-position: 0 6px; } }
+
+@media (min-width: 1200px) {
+ #paymentpaypal {
+ margin-top: 0; }
+ #paymentpaypal label {
+ background-position: 0 20px; } }
+
+@media (min-width: 992px) {
+ #sepapayment {
+ padding-top: 20px; } }
input[name=amount] {
display: none; }
.or {
display: block;
- height: 200px;
- width: 1px;
+ height: 1px;
+ width: 90%;
border: 1px solid rgba(38, 50, 56, 0.3);
position: absolute;
- left: 350px;
- top: 12px; }
+ left: 5%;
+ top: 212px; }
+ @media (min-width: 576px) {
+ .or {
+ top: 222px; } }
+ @media (min-width: 992px) {
+ .or {
+ height: 200px;
+ width: 1px;
+ border: 1px solid rgba(38, 50, 56, 0.3);
+ left: 257px;
+ top: 12px; } }
+ @media (min-width: 1200px) {
+ .or {
+ left: 350px; } }
.or:before {
content: "OR";
font-family: 'Ubuntu', sans-serif;
font-size: 16px;
font-weight: 500;
+ text-align: center;
color: rgba(38, 50, 56, 0.3);
background-color: #eceff1;
display: block;
position: absolute;
- top: 12px;
- left: -12px;
- width: 24px;
+ top: -13px;
+ left: 50%;
+ margin-left: -20px;
+ width: 40px;
height: 24px; }
+ @media (min-width: 992px) {
+ .or:before {
+ text-align: left;
+ display: block;
+ top: 12px;
+ left: -12px;
+ margin-left: 0;
+ width: 24px;
+ height: 24px; } }
body {
min-height: 100vh;
h3 {
font-size: 24px;
line-height: 32px;
- font-weight: 300;
+ font-weight: 500;
margin-bottom: 0; } }
h3.headline {
text-align: center;
@media (min-width: 768px) {
.display-2 {
font-size: 40px;
+ font-weight: 500;
line-height: 56px;
margin-bottom: 3rem; } }
.i_secure {
fill: rgba(38, 50, 56, 0.3); }
+.i_arrow_down_2 {
+ fill: white;
+ opacity: .75;
+ transform: translateY(3px); }
+
.amber-800 {
color: #ff8f00;
border-color: #ff8f00; }
+.donation {
+ background-image: url('../img/header-background.jpg');
+ background-size: cover;
+ background-attachment: fixed;
+ background-position: center center;
+ width: 100vw;
+ height: 768px;
+ margin-bottom: 1122px;
+ @include media-breakpoint-up(sm) {
+ margin-bottom: 1078px;
+ }
+ @include media-breakpoint-up(md) {
+ margin-bottom: 668px;
+ }
+ @include media-breakpoint-up(lg) {
+ margin-bottom: 522px;
+ }
+ @include media-breakpoint-up(xl) {
+ height: 800px;
+ margin-bottom: 328px;
+ }
+}
+
.donation-card {
border-radius: 4px;
background-color: white;
box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.2);
+ @include media-breakpoint-down(sm) {
+ background-color: transparent;
+ box-shadow: none;
+ border-radius: 0;
+ }
+ h3 a {
+ color: white;
+ }
+ .card {
+ @include media-breakpoint-down(sm) {
+ height: 1100px;
+ margin-bottom: 32px;
+ border-radius: 4px;
+ background-color: white;
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.2);
+ }
+ @include media-breakpoint-down(xs) {
+ border-radius: 0;
+ box-shadow: none;
+ margin-bottom: 0;
+ }
+ }
+ .info {
+ border-radius: 4px 0 0 4px;
+ @include media-breakpoint-down(sm) {
+ border-radius: 4px;
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.2);
+ }
+ @include media-breakpoint-down(xs) {
+ border-radius: 0;
+ box-shadow: none;
+ }
+ }
}
.ownamount {
background-image: url("/static/img/icons/icon-radiobtn-off.png");
background-repeat: no-repeat;
background-position: 0 0;
- padding-left: 38px;
+ padding-left: 40px;
+ @include media-breakpoint-up(lg) {
+ padding-left: 28px;
+ }
}
input.radiobtn:not(old):checked + label {
padding: 24px;
position: relative;
padding: 24px 20px;
+ #amount {
+ margin-left: -8px;
+ }
}
label.amount {
- width: 84px;
+ width: 76px;
height: 48px;
display: block;
background-color: white;
font-size: 20px;
color: $blue-400;
text-align: center;
- margin: 0 8px 16px 8px;
+ margin: 0 4px 12px 4px;
padding: 8px 0 0 0;
+ @include media-breakpoint-up(sm) {
+ width: 84px;
+ margin: 0 8px 16px 8px;
+ }
+}
+
+label.cc img {
+ height: 24px;
+}
+
+#ccpayment,
+#paymentpaypal,
+#sepapayment {
+ @include media-breakpoint-down(lg) {
+ padding-bottom: 24px;
+ margin-bottom: 32px;
+ label img {
+ position: relative;
+ }
+ }
+}
+
+#ccpayment {
+ @include media-breakpoint-up(lg) {
+ margin-top: 16px;
+ label {
+ background-position: 0 4px;
+ }
+ }
+}
+
+#paymentpaypal {
+ @include media-breakpoint-down(lg) {
+ label img {
+ top: -7px;
+ }
+ }
+ @include media-breakpoint-up(lg) {
+ margin-top: 14px;
+ label {
+ background-position: 0 6px;
+ }
+ }
+ @include media-breakpoint-up(xl) {
+ margin-top: 0;
+ label {
+ background-position: 0 20px;
+ }
+ }
+}
+
+#sepapayment {
+ @include media-breakpoint-up(lg) {
+ padding-top: 20px;
+ }
}
input[name=amount] {
.or {
display: block;
- height: 200px;
- width: 1px;
+ height: 1px;
+ width: 90%;
border: 1px solid $blue-grey-300;
position: absolute;
- left: 350px;
- top: 12px;
+ left: 5%;
+ top: 212px;
+ @include media-breakpoint-up(sm) {
+ top: 222px;
+ }
+ @include media-breakpoint-up(lg) {
+ height: 200px;
+ width: 1px;
+ border: 1px solid $blue-grey-300;
+ left: 257px;
+ top: 12px;
+ }
+ @include media-breakpoint-up(xl) {
+ left: 350px;
+ }
&:before {
content: "OR";
font-family: 'Ubuntu', sans-serif;
font-size: 16px;
font-weight: 500;
+ text-align: center;
color: $blue-grey-300;
background-color: $blue-grey-50;
display: block;
position: absolute;
- top: 12px;
- left: -12px;
- width: 24px;
+ top: -13px;
+ left: 50%;
+ margin-left: -20px;
+ width: 40px;
height: 24px;
+ @include media-breakpoint-up(lg) {
+ text-align: left;
+ display: block;
+ top: 12px;
+ left: -12px;
+ margin-left: 0;
+ width: 24px;
+ height: 24px;
+ }
}
}
\ No newline at end of file
{% block title %}{{ _("Donate") }}{% end block %}
{% block container %}
- <div class="container">
- <div class="row">
- <section class="features-content col-12 text-center">
- <h2 class="display-2">{{ _("Donate") }}</h2>
-
- <div class="row justify-content-center mb-6">
- <div class="col-12">
- <div class="row">
- <div class="donation-card d-flex flex-row text-left">
- <div class="col-4 bg-blue-grey-900 text-white p-5 pt-6" style="border-radius: 4px 0 0 4px">
- <div class="mb-6">
- <h3>IP<strong>Fire</strong> is an Open Source software project.</h3>
- {% if lang == "de" %}
- <p class="copy">
- Die Entwicklung und die Fortführung des Projekts wird allein
- von einer Gruppe von Freiwilligen getragen, die ein Produkt
- entwickelt hat, das tagtäglich von Hunderttausenden genutzt
- wird.
- </p>
-
- <p class="copy">
- Jede einzelne Spende hilft IPFire noch weiter zu verbessern...
- </p>
- {% else %}
- <p class="copy">
- IPFire is an Open Source software project.
- </p>
-
- <p class="copy">
- Development and keeping the project healthy is carried out by a
- group of volunteers who have built a very successful product,
- which hundreds of thousands of people use every day.
- </p>
-
- <p class="copy">
- Your donation helps us to make IPFire even better...
- </p>
- </div>
-
- <div class="mb-6">
- <h3>Why should I donate?</h3>
-
- <p class="copy">We are proud of what we are doing here at IPFire. We create a free firewall
- distribution that is free to use for everyone anywhere in the world. To do that,
- we need to provide the infrastructure to distribute it to our users and provide
- the right tools for our developers to help them to make IPFire better every day.
- </p>
-
- <p class="copy">Donations from individuals and corporations are the only way to keep all of our
- services free for everyone. They pay for hosting, advertising, purchase
- equipment and to fund the work of the people behind it.
- </p>
-
- <p class="copy">Our ambition is to compete with projects backed by large corporations and
- proprietary solutions and we cannot do that without you. Become a supporter
- today!
- </p>
- </div>
-
- <div class="mb-6">
- <h3>How much should I give?</h3>
-
- <p class="copy">Donations range from single digits donations to hundreds. For us it is important
- to give something back to help this project to succeed. If you want to help,
- please do so and encourage others to do so, too.
- </p>
- </div>
- {% end %}
- </div>
- <div class="col pl-5 pr-5">
- <div class="card p-3 pt-6">
- <div class="row">
- <div class="col d-flex flex-column">
+ <section class="donation">
+ <div class="container">
+ <div class="row">
+ <section class="features-content col-12 text-center">
+ <h2 class="display-2">{{ _("Donate") }}</h2>
+
+ <div class="row justify-content-center mb-6">
+ <div class="col-12 col-sm-11 col-xl-12">
+ <div class="row">
+ <div class="donation-card d-flex flex-column flex-md-row-reverse text-left col p-0">
+ <div class="card p-4 p-sm-6 p-md-4 pt-6">
+ <div class="row py-md-3 px-md-6">
+ <div class="col-12 col-lg-6 d-flex flex-column mb-6 mb-lg-0">
<h4 class="mb-5">Choose a currency</h4>
<div class="row pt-4">
- <div class="col">
+ <div class="col col-sm-4 col-md-5">
<input class="form-check-input mr-4 radiobtn" type="radio" name="currency" id="euro" value="euro" checked>
<label for="euro" class="form-check-label radiobtn">€uro</label>
</div>
- <div class="col">
+ <div class="col col-sm-4 col-md-5">
<input class="form-check-input mr-4 radiobtn" type="radio" name="currency" id="usd" value="usd">
<label for="usd" class="form-check-label radiobtn">USD $</label>
</div>
<div class="col d-flex flex-column">
<h4 class="mb-5">Frequency</h4>
<div class="row pt-4">
- <div class="col">
+ <div class="col col-sm-4 col-md-5 col-lg-6">
<input class="form-check-input mr-4 radiobtn" type="radio" name="frequency" id="one-time-payment" value="single" checked>
<label for="one-time-payment" class="form-check-label radiobtn">One time</label>
</div>
- <div class="col">
+ <div class="col col-sm-4 col-md-5">
<input class="form-check-input mr-4 radiobtn" type="radio" name="frequency" id="monthly-payment" value="monthly">
<label for="monthly-payment" class="form-check-label radiobtn">Monthly</label>
</div>
</div>
<div class="row mt-6">
- <div class="inline-card bg-blue-grey-50 w-100">
+ <div class="inline-card bg-blue-grey-50 col-11 mx-auto">
<div class="or"></div>
- <div class="row mb-6">
- <div class="col">
+ <div class="row mb-4 mb-sm-6 mb-lg-0">
+ <div class="col-12 col-lg-6 mb-6">
<h4 class="mb-5">Choose an amount</h4>
- <div class="form-group d-flex flex-row flex-wrap" style="margin-left: -8px;" id="amount">
+ <div class="form-group d-flex flex-row flex-wrap" id="amount">
<input class="amount-check" type="radio" name="amount" id="10" value="10" checked>
<label for="10" class="form-check-label amount"><span id="amount_10">10</span><span class="currency">€</span></label>
</div>
</div>
</div>
- <div class="row mt-6">
+ <div class="row mt-5 mt-sm-6 mb-5 mb-lg-0 mt-lg-0">
<div class="col d-flex flex-row">
<h4 class="mr-3">Choose payment</h4>
<svg class="icon i_secure ml-4"><use xlink:href="#secure"/></svg>
</div>
</div>
- <div class="row d-flex pl-4 pr-4 mb-6">
- <div class="col">
+ <div class="row d-flex flex-column flex-lg-row pl-4 pr-4 md-4 mb-lg-0 mb-xl-6">
+ <div class="col col-lg-6 col-xl-4" id="ccpayment">
<input class="form-check-input mr-4 radiobtn" type="radio" name="payment" id="creditcard" value="creditcard" checked>
- <label for="creditcard" class="form-check-label radiobtn" style="background-position: 0 20px">
+ <label for="creditcard" class="form-check-label radiobtn cc">
<picture>
<source srcset="{{ static_url("img/amex.png") }},
{{ static_url("img/amex@2x.png") }} 2x,
srcset="{{ static_url("img/amex.png") }},
{{ static_url("img/amex@2x.png") }} 2x,
{{ static_url("img/amex@3x.png") }} 3x "
- alt="Amex" class="m-4">
+ alt="Amex" class="m-xl-2">
</picture>
<picture>
srcset="{{ static_url("img/mastercard.png") }},
{{ static_url("img/mastercard@2x.png") }} 2x,
{{ static_url("img/mastercard@3x.png") }} 3x "
- alt="Mastercard" class="m-4">
+ alt="Mastercard" class="m-xl-2">
</picture>
<picture>
<img src="{{ static_url("img/visa.png") }}"
srcset="{{ static_url("img/visa.png") }},
{{ static_url("img/visa@2x.png") }} 2x,
- {{ static_url("img/visax@3x.png") }} 3x "
- alt="Visa" class="m-4">
+ {{ static_url("img/visa@3x.png") }} 3x "
+ alt="Visa" class="m-xl-2">
</picture>
</label>
</div>
- <div class="col" style="padding-top: 20px;">
+ <div class="col col-lg-6 col-xl-4" id="sepapayment">
<input class="form-check-input mr-4 radiobtn" type="radio" name="payment" id="sepa-payment" value="sepa-payment">
<label for="sepa-payment" class="form-check-label radiobtn">SEPA direct debit</label>
</div>
+
+ <div class="col col-lg-6 col-xl-4" id="paymentpaypal">
+ <input class="form-check-input mr-4 radiobtn" type="radio" name="payment" id="paypal" value="paypal">
+ <label for="paypal" class="form-check-label radiobtn">
+ <picture>
+ <source srcset="{{ static_url("img/paypal.png") }},
+ {{ static_url("img/paypal@2x.png") }} 2x,
+ {{ static_url("img/paypal@3x.png") }} 3x ">
+ <img src="{{ static_url("img/paypal.png") }}"
+ srcset="{{ static_url("img/paypal.png") }},
+ {{ static_url("img/paypal@2x.png") }} 2x,
+ {{ static_url("img/paypal@3x.png") }} 3x "
+ alt="PayPal" class="m-xl-4">
+ </picture>
+ </label>
+ </div>
</div>
</div>
</div>
<button type="button" class="btn btn-primary btn-lg m-0" style="position: relative; top: -24px; left: 50%; transform: translateX(-50%);">Donate Now</button>
- <p class="small text-left mt-6 mb-6">
+ <p class="small text-left mt-5 mb-6">
There should also be some area for the small-print since we need to tell people who they are donating to and that we don't do any refunds, etc.
</p>
</div>
+
+ <div class="info col-md-4 bg-blue-grey-900 text-white p-5 pt-6">
+ <div class="mb-6">
+ <h3>IP<strong>Fire</strong> is an Open Source software project.</h3>
+ {% if lang == "de" %}
+ <p class="copy">
+ Die Entwicklung und die Fortführung des Projekts wird allein
+ von einer Gruppe von Freiwilligen getragen, die ein Produkt
+ entwickelt hat, das tagtäglich von Hunderttausenden genutzt
+ wird.
+ </p>
+
+ <p class="copy">
+ Jede einzelne Spende hilft IPFire noch weiter zu verbessern...
+ </p>
+ {% else %}
+ <p class="copy">
+ IPFire is an Open Source software project.
+ </p>
+
+ <p class="copy">
+ Development and keeping the project healthy is carried out by a
+ group of volunteers who have built a very successful product,
+ which hundreds of thousands of people use every day.
+ </p>
+
+ <p class="copy">
+ Your donation helps us to make IPFire even better...
+ </p>
+ </div>
+
+ <div class="mb-6 d-flex justify-content-between">
+ <h3><a href="#whydonate">Why should I donate?</a></h3><a href="#whydonate"><svg class="icon i_arrow_down_2 ml-4"><use xlink:href="#arrow-down-2"/></svg></a>
+ </div>
+
+ <div class="mb-6 d-flex justify-content-between">
+ <h3><a href="#howmuch">How much should I give?</a></h3><a href="#howmuch"><svg class="icon i_arrow_down_2 ml-4"><use xlink:href="#arrow-down-2"/></svg></a>
+ </div>
+ {% end %}
+ </div>
</div>
</div>
</div>
</div>
- </div>
-
+ </section>
+ </div>
+ </div>
+ </section>
+
+ <section>
+ <div class="container">
<div class="row text-left">
- <div class="col-5">
+ <div class="col-10 col-md-5 offset-sm-1 offset-xl-0">
+ <div class="mb-6" id="whydonate">
+ <h3>Why should I donate?</h3>
+
+ <p class="copy">We are proud of what we are doing here at IPFire. We create a free firewall
+ distribution that is free to use for everyone anywhere in the world. To do that,
+ we need to provide the infrastructure to distribute it to our users and provide
+ the right tools for our developers to help them to make IPFire better every day.
+ </p>
+
+ <p class="copy">Donations from individuals and corporations are the only way to keep all of our
+ services free for everyone. They pay for hosting, advertising, purchase
+ equipment and to fund the work of the people behind it.
+ </p>
+
+ <p class="copy">Our ambition is to compete with projects backed by large corporations and
+ proprietary solutions and we cannot do that without you. Become a supporter
+ today!
+ </p>
+ </div>
+
+ <div class="mb-6" id="howmuch">
+ <h3>How much should I give?</h3>
+
+ <p class="copy">Donations range from single digits donations to hundreds. For us it is important
+ to give something back to help this project to succeed. If you want to help,
+ please do so and encourage others to do so, too.
+ </p>
+ </div>
</div>
- <div class="col-5 offset-2">
+ <div class="col-10 col-md-4 offset-sm-1 offset-xl-2">
<h3>Frequently Asked Questions</h3>
+ <p class="copy">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.</p>
</div>
</div>
- </section>
</div>
- </div>
+ </section>
<!-- Icons -->
<svg aria-hidden="true" style="display: none">
<symbol id="secure" viewBox="0 0 24 24">
<path d="M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"/>
</symbol>
+ <symbol id="arrow-down-2" viewBox="0 0 24 24">
+ <path d="M11,3v14.2l-3.6-3.6L6,15l6,6l6-6l-1.4-1.4L13,17.2V3H11z"/>
+ </symbol>
</svg>
<script type="text/javascript">
document.getElementById("amount_100").innerHTML="100";
$("input#250").attr("value", "250");
document.getElementById("amount_250").innerHTML="250";
+ document.getElementById("paymentpaypal").style.visibility = 'visible';
}
else if ($(this).val() == "monthly") {
$("input#10").attr("value", "2");
document.getElementById("amount_100").innerHTML="10";
$("input#250").attr("value", "12");
document.getElementById("amount_250").innerHTML="12";
+ document.getElementById("paymentpaypal").style.visibility = 'hidden';
}
})
});