|
@@ -85,27 +85,28 @@ body {
|
85
|
85
|
|
86
|
86
|
#pay {
|
87
|
87
|
display: flex;
|
88
|
|
- flex-flow: row wrap;
|
|
88
|
+ flex-flow: column wrap;
|
89
|
89
|
justify-content: center;
|
90
|
90
|
align-items: center;
|
91
|
91
|
align-content: center;
|
92
|
92
|
text-align: center;
|
93
|
93
|
font-size: 1.2rem;
|
94
|
94
|
line-height: 2.5;
|
95
|
|
- margin: 0 auto 1rem auto;
|
96
|
|
- padding: 18px 3px;
|
97
|
|
- max-width: var(--max-width);
|
98
|
|
- background-color: rgba(255, 255, 255, 0.2);
|
99
|
|
- box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.2);
|
100
|
|
- border-radius: var(--border-radius);
|
101
|
95
|
}
|
102
|
|
-#pay > *:nth-child(2) {
|
103
|
|
- width: 45%;
|
|
96
|
+#pay > * {
|
|
97
|
+ width: 100%;
|
104
|
98
|
min-width: 320px;
|
105
|
99
|
}
|
106
|
|
-#pay > *:last-child {
|
107
|
|
- margin-top: 0.7rem;
|
108
|
|
- margin-bottom: 0.7rem;
|
|
100
|
+#pay > p {
|
|
101
|
+ font-size: 1.0rem;
|
|
102
|
+}
|
|
103
|
+#pay input[type="submit"] {
|
|
104
|
+ font-size: 1.0rem;
|
|
105
|
+ margin: 1.0rem 0 0 0;
|
|
106
|
+}
|
|
107
|
+#pay > h1 {
|
|
108
|
+ margin: 0.5rem 0 0 0;
|
|
109
|
+ font-size: 1.4rem;
|
109
|
110
|
}
|
110
|
111
|
#pay #amounts {
|
111
|
112
|
display: flex;
|
|
@@ -126,9 +127,6 @@ body {
|
126
|
127
|
#pay #currencies input[type="radio"] + label {
|
127
|
128
|
margin: 0 !important;
|
128
|
129
|
}
|
129
|
|
-#pay input[type="submit"] {
|
130
|
|
- font-size: 1.0rem;
|
131
|
|
-}
|
132
|
130
|
#pay input[type="radio"] {
|
133
|
131
|
-webkit-appearance: none;
|
134
|
132
|
appearance: none;
|
|
@@ -355,6 +353,48 @@ html:has(#download-dialog[open]) {
|
355
|
353
|
|
356
|
354
|
|
357
|
355
|
|
|
356
|
+#donation-dialog {
|
|
357
|
+ max-width: var(--max-width);
|
|
358
|
+ background-color: whitesmoke;
|
|
359
|
+ color: var(--md-default-fg-color--light);
|
|
360
|
+ text-align: center;
|
|
361
|
+ padding: 1.5rem;
|
|
362
|
+ border: 0;
|
|
363
|
+ border-radius: 24px;
|
|
364
|
+ box-shadow: 10px 10px 10px rgba(0, 0, 0, 0.2);
|
|
365
|
+ transition: opacity 0.5s ease;
|
|
366
|
+}
|
|
367
|
+
|
|
368
|
+#donation-dialog[open] {
|
|
369
|
+ opacity: 1;
|
|
370
|
+}
|
|
371
|
+
|
|
372
|
+#donation-dialog:not([open]) {
|
|
373
|
+ opacity: 0;
|
|
374
|
+ pointer-events: none;
|
|
375
|
+}
|
|
376
|
+
|
|
377
|
+#donation-dialog::backdrop {
|
|
378
|
+ backdrop-filter: blur(8px);
|
|
379
|
+ transition: backdrop-filter 0.5s ease;
|
|
380
|
+}
|
|
381
|
+
|
|
382
|
+#donation-dialog-close {
|
|
383
|
+ position: absolute;
|
|
384
|
+ top: 0.3rem;
|
|
385
|
+ right: 0.8rem;
|
|
386
|
+ font-size: 1.35rem;
|
|
387
|
+ color: var(--md-default-fg-color--light);
|
|
388
|
+ cursor: pointer;
|
|
389
|
+}
|
|
390
|
+
|
|
391
|
+html:has(#donation-dialog[open]) {
|
|
392
|
+ overflow: hidden;
|
|
393
|
+}
|
|
394
|
+
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
358
|
398
|
.reveal {
|
359
|
399
|
opacity: 1;
|
360
|
400
|
transition: transform 0.5s ease-out, opacity 0.5s ease-out;
|
|
@@ -369,7 +409,6 @@ html:has(#download-dialog[open]) {
|
369
|
409
|
|
370
|
410
|
@media screen and (min-width: 768px) {
|
371
|
411
|
/*#pay { justify-content: space-around; }*/
|
372
|
|
- #pay > *:nth-child(2) { position: relative; top: 18px; }
|
373
|
412
|
#title h1 { font-size: 4.0rem; }
|
374
|
413
|
#title h2 { font-size: 1.6rem; }
|
375
|
414
|
#topics { text-align: justify; }
|
|
@@ -453,34 +492,6 @@ function setupReveal()
|
453
|
492
|
<source src="img/aframe-cat.mp4" type="video/mp4" />
|
454
|
493
|
<source src="img/aframe-cat.webm" type="video/webm" />
|
455
|
494
|
</video>
|
456
|
|
- <form id="pay" method="post" action="https://api.encantar.dev/v1/pay" autocomplete="off" onsubmit="return this.tier.value != 'custom' || this['custom-amount'].value != ''">
|
457
|
|
- <span>Pay What You Can:</span>
|
458
|
|
- <span>
|
459
|
|
- <div id="amounts" class="euro">
|
460
|
|
- <input type="radio" id="custom-tier" name="tier" value="custom" data-goatcounter-click onchange="this.checked && document.getElementById('custom-amount').focus()">
|
461
|
|
- <label for="custom-tier"><span class="dollar-sign"></span>X</label>
|
462
|
|
- <input type="radio" id="first-tier" name="tier" value="first" data-goatcounter-click>
|
463
|
|
- <label for="first-tier"><span class="dollar-sign"></span>29</label>
|
464
|
|
- <input type="radio" id="second-tier" name="tier" value="second" checked data-goatcounter-click>
|
465
|
|
- <label for="second-tier"><span class="dollar-sign"></span>49</label>
|
466
|
|
- <input type="radio" id="third-tier" name="tier" value="third" data-goatcounter-click>
|
467
|
|
- <label for="third-tier"><span class="dollar-sign"></span>99</label>
|
468
|
|
- <input type="radio" id="fourth-tier" name="tier" value="fourth" data-goatcounter-click>
|
469
|
|
- <label for="fourth-tier"><span class="dollar-sign"></span>199</label>
|
470
|
|
- <label for="custom-amount" id="custom-amount-wrapper">
|
471
|
|
- <span class="dollar-sign"></span>
|
472
|
|
- <input type="number" id="custom-amount" name="custom-amount" value="" placeholder="Enter a fair amount" min="0" max="999999" step="1">
|
473
|
|
- </label>
|
474
|
|
- </div>
|
475
|
|
- <div id="currencies">
|
476
|
|
- <input type="radio" id="currency-usd" name="currency" value="usd" data-goatcounter-click onchange="this.checked && document.getElementById('amounts').classList.remove('euro')">
|
477
|
|
- <label for="currency-usd">🇺🇸 USD</label>
|
478
|
|
- <input type="radio" id="currency-eur" name="currency" value="eur" checked data-goatcounter-click onchange="this.checked && document.getElementById('amounts').classList.add('euro')">
|
479
|
|
- <label for="currency-eur">🇪🇺 EUR</label>
|
480
|
|
- </div>
|
481
|
|
- </span>
|
482
|
|
- <input type="submit" value="Get encantar.js" class="md-button md-button--primary" id="get-encantar" data-goatcounter-click>
|
483
|
|
- </form>
|
484
|
495
|
</header>
|
485
|
496
|
|
486
|
497
|
|
|
@@ -567,10 +578,10 @@ function setupReveal()
|
567
|
578
|
|
568
|
579
|
<section id="download">
|
569
|
580
|
<article>
|
570
|
|
- <h1>Download encantar.js</h1>
|
571
|
|
- <p>encantar.js is a WebAR framework created independently by <a href="contact/" target="_blank" id="author-name" data-goatcounter-click>Alexandre Martins</a> and released as libre and open source software under the LGPL v3. Your support is much appreciated!</p>
|
|
581
|
+ <h1>Download</h1>
|
|
582
|
+ <p>encantar.js is a WebAR framework created independently by <a href="contact/" target="_blank" id="author-name" data-goatcounter-click>Alexandre Martins</a> and released as open source software under the LGPL. Your support is much appreciated!</p>
|
572
|
583
|
<footer>
|
573
|
|
- <a href="#pay" class="md-button md-button--primary" id="download-pay" data-goatcounter-click>Pay What You Can</a>
|
|
584
|
+ <button class="md-button md-button--primary" id="download-button" data-goatcounter-click onclick="document.getElementById('donation-dialog').showModal()">Download encantar.js</button>
|
574
|
585
|
<a href="https://github.com/sponsors/alemart" target="_blank" class="md-button" id="download-sponsor" data-goatcounter-click>Sponsor on GitHub</a>
|
575
|
586
|
</footer>
|
576
|
587
|
</article>
|
|
@@ -591,6 +602,42 @@ function setupReveal()
|
591
|
602
|
|
592
|
603
|
|
593
|
604
|
|
|
605
|
+<dialog id="donation-dialog">
|
|
606
|
+ <form id="pay" method="post" action="https://api.encantar.dev/v1/pay" autocomplete="off" onsubmit="return this.tier.value != 'custom' || this['custom-amount'].value != ''">
|
|
607
|
+ <h1>Download and donate <span class="heart">💖</span></h1>
|
|
608
|
+ <p>Support the project with an amount:</p>
|
|
609
|
+ <span>
|
|
610
|
+ <div id="amounts" class="euro">
|
|
611
|
+ <input type="radio" id="custom-tier" name="tier" value="custom" data-goatcounter-click onchange="this.checked && document.getElementById('custom-amount').focus()">
|
|
612
|
+ <label for="custom-tier"><span class="dollar-sign"></span>X</label>
|
|
613
|
+ <input type="radio" id="first-tier" name="tier" value="first" data-goatcounter-click>
|
|
614
|
+ <label for="first-tier"><span class="dollar-sign"></span>29</label>
|
|
615
|
+ <input type="radio" id="second-tier" name="tier" value="second" checked data-goatcounter-click>
|
|
616
|
+ <label for="second-tier"><span class="dollar-sign"></span>49</label>
|
|
617
|
+ <input type="radio" id="third-tier" name="tier" value="third" data-goatcounter-click>
|
|
618
|
+ <label for="third-tier"><span class="dollar-sign"></span>99</label>
|
|
619
|
+ <input type="radio" id="fourth-tier" name="tier" value="fourth" data-goatcounter-click>
|
|
620
|
+ <label for="fourth-tier"><span class="dollar-sign"></span>199</label>
|
|
621
|
+ <label for="custom-amount" id="custom-amount-wrapper">
|
|
622
|
+ <span class="dollar-sign"></span>
|
|
623
|
+ <input type="number" id="custom-amount" name="custom-amount" value="" placeholder="Enter the amount" min="0" max="999999" step="1">
|
|
624
|
+ </label>
|
|
625
|
+ </div>
|
|
626
|
+ <div id="currencies">
|
|
627
|
+ <input type="radio" id="currency-usd" name="currency" value="usd" data-goatcounter-click onchange="this.checked && document.getElementById('amounts').classList.remove('euro')">
|
|
628
|
+ <label for="currency-usd">🇺🇸 USD</label>
|
|
629
|
+ <input type="radio" id="currency-eur" name="currency" value="eur" checked data-goatcounter-click onchange="this.checked && document.getElementById('amounts').classList.add('euro')">
|
|
630
|
+ <label for="currency-eur">🇪🇺 EUR</label>
|
|
631
|
+ </div>
|
|
632
|
+ </span>
|
|
633
|
+ <input type="submit" value="Download" class="md-button md-button--primary" id="get-encantar" data-goatcounter-click>
|
|
634
|
+ </form>
|
|
635
|
+ <button id="donation-dialog-close" onclick="document.getElementById('donation-dialog').close()">×</button>
|
|
636
|
+</dialog>
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
|
|
640
|
+
|
594
|
641
|
<footer class="md-footer">
|
595
|
642
|
<div class="md-copyright">
|
596
|
643
|
encantar.js: GPU-accelerated Augmented Reality framework for the web. Copyright © 2022 – present Alexandre Martins
|