.offset-xl-11 {
margin-left: 91.6666666667%; } }
+.form-control {
+ display: block;
+ width: 100%;
+ padding: 0.5rem 0.75rem;
+ font-size: 1rem;
+ line-height: 1.25;
+ color: #464a4c;
+ background-color: #fff;
+ background-image: none;
+ background-clip: padding-box;
+ border: 2px solid rgba(0, 0, 0, 0.15);
+ border-radius: 0.25rem;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }
+ .form-control::-ms-expand {
+ background-color: transparent;
+ border: 0; }
+ .form-control:focus {
+ color: #464a4c;
+ background-color: #fff;
+ border-color: #5cb3fd;
+ outline: none; }
+ .form-control::placeholder {
+ color: #636c72;
+ opacity: 1; }
+ .form-control:disabled, .form-control[readonly] {
+ background-color: #eceeef;
+ opacity: 1; }
+ .form-control:disabled {
+ cursor: not-allowed; }
+
+select.form-control:not([size]):not([multiple]) {
+ height: calc(2.25rem + 4px); }
+
+select.form-control:focus::-ms-value {
+ color: #464a4c;
+ background-color: #fff; }
+
+.form-control-file,
+.form-control-range {
+ display: block; }
+
+.col-form-label {
+ padding-top: calc(0.5rem - 2px * 2);
+ padding-bottom: calc(0.5rem - 2px * 2);
+ margin-bottom: 0; }
+
+.col-form-label-lg {
+ padding-top: calc(0.75rem - 2px * 2);
+ padding-bottom: calc(0.75rem - 2px * 2);
+ font-size: 20px; }
+
+.col-form-label-sm {
+ padding-top: calc(0.25rem - 2px * 2);
+ padding-bottom: calc(0.25rem - 2px * 2);
+ font-size: 0.875rem; }
+
+.col-form-legend {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ margin-bottom: 0;
+ font-size: 1rem; }
+
+.form-control-static {
+ padding-top: 0.5rem;
+ padding-bottom: 0.5rem;
+ margin-bottom: 0;
+ line-height: 1.25;
+ border: solid transparent;
+ border-width: 2px 0; }
+ .form-control-static.form-control-sm, .form-control-static.form-control-lg {
+ padding-right: 0;
+ padding-left: 0; }
+
+.form-control-sm {
+ padding: 0.25rem 0.5rem;
+ font-size: 0.875rem;
+ border-radius: 0.2rem; }
+
+select.form-control-sm:not([size]):not([multiple]) {
+ height: 1.8125rem; }
+
+.form-control-lg {
+ padding: 0.75rem 1.5rem;
+ font-size: 20px;
+ border-radius: 0.3rem; }
+
+select.form-control-lg:not([size]):not([multiple]) {
+ height: 3.1666666667rem; }
+
+.form-group {
+ margin-bottom: 1rem; }
+
+.form-text {
+ display: block;
+ margin-top: 0.25rem; }
+
+.form-check {
+ position: relative;
+ display: block;
+ margin-bottom: 0.5rem; }
+ .form-check.disabled .form-check-label {
+ color: #636c72;
+ cursor: not-allowed; }
+
+.form-check-label {
+ padding-left: 1.25rem;
+ margin-bottom: 0;
+ cursor: pointer; }
+
+.form-check-input {
+ position: absolute;
+ margin-top: 0.25rem;
+ margin-left: -1.25rem; }
+ .form-check-input:only-child {
+ position: static; }
+
+.form-check-inline {
+ display: inline-block; }
+ .form-check-inline .form-check-label {
+ vertical-align: middle; }
+ .form-check-inline + .form-check-inline {
+ margin-left: 0.75rem; }
+
+.form-control-feedback {
+ margin-top: 0.25rem; }
+
+.form-control-success,
+.form-control-warning,
+.form-control-danger {
+ padding-right: 2.25rem;
+ background-repeat: no-repeat;
+ background-position: center right 0.5625rem;
+ background-size: 1.125rem 1.125rem; }
+
+.has-success .form-control-feedback,
+.has-success .form-control-label,
+.has-success .col-form-label,
+.has-success .form-check-label,
+.has-success .custom-control {
+ color: #5cb85c; }
+
+.has-success .form-control {
+ border-color: #5cb85c; }
+
+.has-success .input-group-addon {
+ color: #5cb85c;
+ border-color: #5cb85c;
+ background-color: #eaf6ea; }
+
+.has-success .form-control-success {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E"); }
+
+.has-warning .form-control-feedback,
+.has-warning .form-control-label,
+.has-warning .col-form-label,
+.has-warning .form-check-label,
+.has-warning .custom-control {
+ color: #f0ad4e; }
+
+.has-warning .form-control {
+ border-color: #f0ad4e; }
+
+.has-warning .input-group-addon {
+ color: #f0ad4e;
+ border-color: #f0ad4e;
+ background-color: white; }
+
+.has-warning .form-control-warning {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E"); }
+
+.has-danger .form-control-feedback,
+.has-danger .form-control-label,
+.has-danger .col-form-label,
+.has-danger .form-check-label,
+.has-danger .custom-control {
+ color: #d9534f; }
+
+.has-danger .form-control {
+ border-color: #d9534f; }
+
+.has-danger .input-group-addon {
+ color: #d9534f;
+ border-color: #d9534f;
+ background-color: #fdf7f7; }
+
+.has-danger .form-control-danger {
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E"); }
+
+.form-inline {
+ display: flex;
+ flex-flow: row wrap;
+ align-items: center; }
+ .form-inline .form-check {
+ width: 100%; }
+ @media (min-width: 576px) {
+ .form-inline label {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 0; }
+ .form-inline .form-group {
+ display: flex;
+ flex: 0 0 auto;
+ flex-flow: row wrap;
+ align-items: center;
+ margin-bottom: 0; }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle; }
+ .form-inline .form-control-static {
+ display: inline-block; }
+ .form-inline .input-group {
+ width: auto; }
+ .form-inline .form-control-label {
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .form-inline .form-check {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: auto;
+ margin-top: 0;
+ margin-bottom: 0; }
+ .form-inline .form-check-label {
+ padding-left: 0; }
+ .form-inline .form-check-input {
+ position: relative;
+ margin-top: 0;
+ margin-right: 0.25rem;
+ margin-left: 0; }
+ .form-inline .custom-control {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding-left: 0; }
+ .form-inline .custom-control-indicator {
+ position: static;
+ display: inline-block;
+ margin-right: 0.25rem;
+ vertical-align: text-bottom; }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0; } }
+
.btn {
display: inline-block;
font-weight: 600;
.pswp--minimal--dark .pswp__top-bar {
background: none; }
+.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); }
+
+.currency-dropdown,
+.ownamount {
+ overflow: hidden;
+ width: 95%;
+ height: 48px;
+ padding: 0 16px;
+ border-radius: 2px;
+ border: none; }
+
+.dropdown-wrapper,
+.ownamount {
+ background-color: rgba(38, 50, 56, 0.08);
+ border-bottom: 2px solid #263238;
+ width: 90%; }
+
+.currency-dropdown {
+ background-color: transparent; }
+ .currency-dropdown:focus {
+ outline: none; }
+
+.inline-card {
+ border-radius: 8px;
+ background-color: #eceff1;
+ padding: 24px; }
+
+label.amount {
+ width: 84px;
+ height: 48px;
+ display: block;
+ background-color: white;
+ border-radius: 2px;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 1px 2px 0 rgba(0, 0, 0, 0.23);
+ font-size: 20px;
+ color: #42a5f5;
+ text-align: left;
+ margin: 0 8px 16px 8px;
+ padding-top: 8px; }
+
+input[name=amount] {
+ display: none; }
+
+input[name=amount]:checked + label {
+ background-image: linear-gradient(120deg, #4fc3f7, #1976d2);
+ color: white; }
+
body {
min-height: 100vh;
display: flex;
color: #1976d2;
border-color: #1976d2; }
+.bg-blue-grey-900 {
+ background-color: #263238; }
+
+.bg-blue-grey-50 {
+ background-color: #eceff1; }
+
img.img-fluid {
width: 100%;
max-width: 100%;
--- /dev/null
+.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);
+}
+
+.currency-dropdown,
+.ownamount {
+ overflow: hidden;
+ width: 95%;
+ height: 48px;
+ padding: 0 16px;
+ border-radius: 2px;
+ border: none;
+}
+
+.dropdown-wrapper,
+.ownamount {
+ background-color: rgba($blue-grey-900, .08);
+ border-bottom: 2px solid $blue-grey-900;
+ width: 90%;
+}
+.currency-dropdown {
+ background-color: transparent;
+ &:focus {
+ outline: none;
+ }
+}
+
+.inline-card {
+ border-radius: 8px;
+ background-color: $blue-grey-50;
+ padding: 24px;
+}
+
+label.amount {
+ width: 84px;
+ height: 48px;
+ display: block;
+ background-color: white;
+ border-radius: 2px;
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16), 0 1px 2px 0 rgba(0, 0, 0, 0.23);
+ font-size: 20px;
+ color: $blue-400;
+ text-align: left;
+ margin: 0 8px 16px 8px;
+ padding-top: 8px;
+}
+
+input[name=amount] {
+ display: none;
+}
+
+input[name=amount]:checked + label {
+ background-image: linear-gradient(120deg, rgb(79, 195, 247), rgb(25, 118, 210));
+ color: white;
+}
\ No newline at end of file
// @import "bootstrap-4.0.0-alpha.6/scss/code";
@import "bootstrap-4.0.0-alpha.6/scss/grid";
// @import "bootstrap-4.0.0-alpha.6/scss/tables";
-// @import "bootstrap-4.0.0-alpha.6/scss/forms";
+@import "bootstrap-4.0.0-alpha.6/scss/forms";
@import "bootstrap-4.0.0-alpha.6/scss/buttons";
// Components
@import "photoswipe/main";
@import "photoswipe/default-skin/default-skin";
+// Donation Box
+@import "_donation";
+
body {
min-height: 100vh;
display: flex;
border-color: $blue-700;
}
+.bg-blue-grey-900 {
+ background-color: $blue-grey-900;
+}
+
+.bg-blue-grey-50 {
+ background-color: $blue-grey-50;
+}
+
// Images
img {
&.img-fluid {
<div class="container">
<div class="row">
<section class="features-content col-12 text-center">
- <h2 class="display-2">{{ _("Donate now") }}</h2>
+ <h2 class="display-2">{{ _("Donate") }}</h2>
- {% if lang == "de" %}
- <p class="lead">
- IPFire ist ein Open-Source-Softwareprojekt.
- </p>
-
- <p class="lead">
- 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="lead">
- Jede einzelne Spende hilft IPFire noch weiter zu verbessern...
- </p>
- {% else %}
- <p class="lead">
- IPFire is an Open Source software project.
- </p>
-
- <p class="lead">
- 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="lead">
- Your donation helps us to make IPFire even better...
- </p>
- {% end %}
- </section>
- </div>
-
- <div class="row mb-6 d-flex justify-content-center">
- <section class="col-6 d-flex justify-content-center">
- {% module DonationInputBox() %}
- </section>
- </div>
-
- <div class="row">
- {% if wishlist_items %}
- <section class="container content-section">
- <div class="row">
- <div class="col-md-8 col-md-offset-2">
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title text-center">
- {{ _("Current crowd funding projects on the IPFire Wishlist") }}
- </h3>
+ <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">
+ <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>
+ {% end %}
</div>
- <div class="panel-body">
- {% module WishlistItems(wishlist_items) %}
+
+ <div class="col pl-5 pr-5">
+ <div class="card p-3 pt-6">
+ <div class="row">
+ <div class="col d-flex flex-column">
+ <h4 class="mb-5">Choose a currency</h4>
+ <div class="dropdown-wrapper">
+ <select class="currency-dropdown">
+ <option class="form-control" value="EUR €">EUR €</option>
+ <option class="form-control" value="US $">US $</option>
+ </select>
+ </div>
+ </div>
+
+ <div class="col d-flex flex-column">
+ <h4 class="mb-5">Frequency</h4>
+ <div class="row pt-4">
+ <div class="col">
+ <label class="form-check-label">
+ <input class="form-check-input mr-4" type="radio" name="frequency" id="one-time-payment" value="single" onclick="Check()" checked>
+ One time
+ </label>
+ </div>
+ <div class="col">
+ <label class="form-check-label">
+ <input class="form-check-input mr-4" type="radio" name="frequency" id="monthly-payment" value="monthly" onclick="Check()">
+ Monthly
+ </label>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="row mt-6">
+ <div class="inline-card bg-blue-grey-50 w-100 p-5">
+ <div class="row mb-6">
+ <div class="col">
+ <h4 class="mb-5">Choose an amount</h4>
+ <div class="form-group d-flex flex-row flex-wrap" id="ifonetime" style="margin-left: -8px;">
+ <input class="amount-check" type="radio" name="amount" id="10" value="10" checked>
+ <label for="10" class="form-check-label amount">10€</label>
+
+ <input class="amount-check" type="radio" name="amount" id="25" value="25">
+ <label for="25" class="form-check-label amount">25€</label>
+
+ <input class="amount-check" type="radio" name="amount" id="50" value="50">
+ <label for="50" class="form-check-label amount">50€</label>
+
+ <input class="amount-check" type="radio" name="amount" id="100" value="100">
+ <label for="100" class="form-check-label amount">100€</label>
+
+ <input class="amount-check" type="radio" name="amount" id="250" value="250">
+ <label for="250" class="form-check-label amount">250€</label>
+ </div>
+ </div>
+ <div class="col">
+ <div class="form-group">
+ <h4 class="mb-5">Enter your own</h4>
+ <input type="text" class="ownamount w-100" id="enterYourOwn" placeholder="1€ at least">
+ </div>
+ </div>
+ </div>
+ <div class="row mt-6">
+ <div class="col">
+ <h4>Choose payment</h4>
+ </div>
+ <div class="col d-flex flex-row justify-content-end">
+ <i class="fa fa-lock mr-3" aria-hidden="true" style="position: relative; top: 4px;"></i>
+ <p class="text-uppercase">Secure</p>
+ </div>
+ </div>
+
+ <div class="row d-flex align-items-center pl-4 pr-4 mb-6">
+ <label class="form-check-label col d-flex align-items-center">
+ <input class="form-check-input mr-4" type="radio" name="payment" id="creditcard" value="creditcard" checked style="margin-top: 0;">
+ <i class="fa fa-cc-amex fa-3x m-3" aria-hidden="true"></i>
+ <i class="fa fa-cc-mastercard fa-3x m-3" aria-hidden="true"></i>
+ <i class="fa fa-cc-visa fa-3x m-3" aria-hidden="true"></i>
+ </label>
+ <label class="form-check-label col">
+ <input class="form-check-input mr-4" type="radio" name="payment" id="sepa-payment" value="sepa-payment">
+ SEPA direct debit
+ </label>
+ </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">
+ 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>
</div>
</div>
</div>
- </section>
- {% end %}
- </div>
-
- <div class="row">
- <section class="col-5">
- <h3 class="pb-3">{{ _("Donate by Bank Transfer") }}</h3>
- <p><strong>{{ _("IBAN") }}</strong><br>
- DE86 4265 0150 1020 0768 89</p>
-
- <p><strong>{{ _("BIC-/SWIFT-Code") }}</strong><br>
- WELADED1REK</p>
+ </div>
+
+ <div class="row text-left">
+ <div class="col-5">
+ <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>
- <p>
- {% if reason_for_transfer %}
- {{ _("Reason for transfer") }}
- {{ reason_for_transfer }}
- {% end %}
- </p>
+ <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>
+ </div>
- <p>
- {% if lang == "de" %}
- <small>
- Da das IPFire-Projekt keine registrierte gemeinnützige Organisation
- ist, können keine steuerlich abzugsfähige Spendenquittungen erstellt
- werden.
- </small>
- {% else %}
- <small>
- The IPFire project is not a registered non-profit organisation.
- <br>
- Hence we are not able to issue a tax-deductible contribution receipt
- for your donation.
- </small>
- {% end %}
- </p>
- </section>
-
- <section class="col-5 offset-2">
- <h3 class="pb-3">{{ _("Recurring Donations") }}</h3>
- {% if lang == "de" %}
- <p>
- Monatliche Spenden helfen uns das Projekt auf eine solide Basis zu stellen
- und ermöglichen es die weitere Entwicklung voranzutreiben.
- Unabhängig davon, ob dies zügige Sicherheitsupdates, oder das Einbauen von neuen
- Funktionen bedeutet, sind monatliche Spenden die Basis, um den Fortbestand des
- Projekts langfristig zu gewährleisten.
- </p>
-
- <p>
- PayPal erlaubt in einigen Ländern eine monatliche Spende, oder du
- erstellst einfach einen Dauerauftrag bei deiner Bank.
- </p>
- {% else %}
- <p>
- A great way to support the IPFire project is a recurring donation.
- These will help to keep the project solidly funded and help us to
- keep up our development efforts. Either if that is prompt
- security updates or introducing new features, recurring donations
- are the foundation to keep this project running.
- </p>
-
- <p>
- PayPal allows to set up recurring donations in some countries
- or you can set up a standing order at your bank if you are
- want to donate by using bank transfer.
- </p>
- {% end %}
- </section>
- </div>
+ <div class="col-5 offset-2">
+ <h3>Frequently Asked Questions</h3>
+ </div>
+ </div>
+ </section>
</div>
</div>