Compare commits
29 Commits
frontend-r
...
specto-fix
Author | SHA1 | Date | |
---|---|---|---|
431f902a7f | |||
fe7d2101e2 | |||
d36405c0a8 | |||
8d928873a6 | |||
0ed9c2daed | |||
39700082e1 | |||
53c35377c6 | |||
2e4f3efe7d | |||
a6241563c7 | |||
88d8de76ec | |||
a1e8c902e2 | |||
4a279e0161 | |||
31f5eaa66b | |||
bfbf4fe5f7 | |||
bb221f7ee0 | |||
46256d328e | |||
9c4b37d775 | |||
5cf410c03e | |||
6170cf9d05 | |||
4a1ab4bed5 | |||
2687233eda | |||
cbe88e2ec6 | |||
ce7bfa15a4 | |||
31479d2fc5 | |||
54635a9f53 | |||
c6cdff7e74 | |||
e48ebb4a31 | |||
a3587a27b8 | |||
7dbab97c06 |
5
.editorconfig
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*.{js,css}]
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
5
.gitignore
vendored
@ -1 +1,6 @@
|
|||||||
__django
|
__django
|
||||||
|
reValuate/db.sqlite3
|
||||||
|
*.sqlite3
|
||||||
|
*/media/*
|
||||||
|
*.pyc
|
||||||
|
*.sqlite3
|
||||||
|
18
README.md
@ -1,16 +1,14 @@
|
|||||||
# CurrencySite
|
# reValuate
|
||||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
||||||
[](#contributors-)
|
|
||||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
||||||
School project for helping people consider throwing their trash out in the right bins, in order to help out with recycling.
|
|
||||||
|
|
||||||
|
[](#contributors-) [](https://revaluate.eduteh.eu) [](https://discord.gg/eX5wmJuMVp)
|
||||||
|
|
||||||
|
|
||||||
|
School project for helping people consider throwing their trash out in the right bins, in order to help out with recycling.
|
||||||
|
Check out my blog post over [here](https://yamozha.xyz/revaluate/)
|
||||||
## Contributors ✨
|
## Contributors ✨
|
||||||
|
|
||||||
Thanks goes to these wonderful people :
|
Thanks goes to these wonderful people :
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
||||||
<!-- prettier-ignore-start -->
|
|
||||||
<!-- markdownlint-disable -->
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
✨
|
✨
|
||||||
@ -22,9 +20,5 @@ Thanks goes to these wonderful people :
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<!-- markdownlint-restore -->
|
|
||||||
<!-- prettier-ignore-end -->
|
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
||||||
|
|
||||||
|
|
||||||
|
170
logo-test.html
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>logo test</title>
|
||||||
|
<style style="text/css">
|
||||||
|
html, body {margin: 0; padding: 0;}
|
||||||
|
body { background-color: #93C900; }
|
||||||
|
#revaluate_logo {
|
||||||
|
transform: rotate3d(1, 1, 0.3, 20deg) translateZ(100px) translateY(22px);
|
||||||
|
max-width: 10vw;
|
||||||
|
filter: drop-shadow(3px -3px 0 rgba(0, 0, 0, .3));
|
||||||
|
}
|
||||||
|
#revaluate_logo path {
|
||||||
|
fill: white;
|
||||||
|
}
|
||||||
|
#revaluate_logo .arrows {
|
||||||
|
transform-origin: center;
|
||||||
|
}
|
||||||
|
body > header {
|
||||||
|
padding-top: 1vw;
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
background-color: rgb(203, 125, 255);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
function rotateLogo(elem) {
|
||||||
|
elem.style.transform = "rotate(" + window.scrollY/20 + "deg)";
|
||||||
|
}
|
||||||
|
window.addEventListener('load', function main() {
|
||||||
|
window.addEventListener("scroll", rotateLogo.bind(null,
|
||||||
|
document.querySelector('#revaluate_logo .arrows')));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<svg version="1.1" id="revaluate_logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||||
|
y="0px" viewBox="0 0 1100 1100" style="enable-background:new 0 0 1100 1100;" xml:space="preserve">
|
||||||
|
<path class="arrows" d="M452.35,911.88l-19.16,84.87c-96.46-21.78-182.42-71.91-248.57-144.97c-31.84-35.17-58.24-74.78-78.46-117.73
|
||||||
|
c-16.77-35.63-29.01-73.01-36.54-111.44l-65.61-0.89L115,435.4l105.9,189.27l-61.96-0.84c15.38,62.9,46.13,120.91,90.17,169.56
|
||||||
|
C303.17,853.1,373.46,894.07,452.35,911.88z M999.22,406.1l-83.97,22.75c21.15,78.06,17.79,159.35-9.7,235.06
|
||||||
|
c-22.4,61.68-59.3,115.99-107.71,159l-28.23-55.16L651.83,949.88l216.6,10.97l-29.89-58.41c30.45-24.62,57.76-52.93,81.41-84.41
|
||||||
|
c28.51-37.95,51.18-79.81,67.37-124.4C1020.97,600.97,1025.08,501.55,999.22,406.1z M833.45,212.74L727.97,23.24l-33.69,56.3
|
||||||
|
c-37.02-12.77-75.5-20.94-114.73-24.31c-47.29-4.07-94.8-1.11-141.2,8.79c-96.4,20.56-182.89,69.76-250.13,142.27l63.79,59.16
|
||||||
|
c54.99-59.3,125.71-99.53,204.49-116.34c64.18-13.69,129.79-11.17,191.91,7.09l-31.82,53.18L833.45,212.74z"/>
|
||||||
|
<path d="M747.7,705.9H620.8L590,636.4c-11.3-25.4-21.5-44-30.5-55.8c-9-11.8-17.9-19.3-26.4-22.6c-8.6-3.3-19.6-5-33.2-5h-13.3
|
||||||
|
v152.9H368.3V314.1h201c32.4,0,59,6.6,79.7,19.8s35.7,29.2,44.8,48.1c9.1,18.9,13.7,36.8,13.7,53.7c0,19.8-3.8,36.5-11.5,50.2
|
||||||
|
c-7.6,13.7-15.7,23.6-24.2,29.8s-18,12.2-28.5,17.8c12.6,7.3,23,16.1,31.2,26.2s19.4,30.5,33.5,61.2L747.7,705.9z M587.1,437.9
|
||||||
|
c0-18.1-5.9-30.7-17.8-37.9s-31.2-10.7-57.9-10.7h-24.9v94.4h25.4c28.8,0,48.6-3.1,59.2-9.5C581.8,467.9,587.1,455.8,587.1,437.9z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<pre style="width: 20vw; white-space: pre-wrap;">
|
||||||
|
the new code
|
||||||
|
|
||||||
|
I’m Dudley Storey, author of Using SVG with CSS3 and HTML5, Smashing Magazine contributing editor, teacher and speaker. I write about all aspects of web development, including:
|
||||||
|
|
||||||
|
HTML
|
||||||
|
CSS
|
||||||
|
JavaScript
|
||||||
|
SVG
|
||||||
|
Responsive Design
|
||||||
|
Galleries
|
||||||
|
PHP
|
||||||
|
MySQL
|
||||||
|
SEO
|
||||||
|
Accessibility
|
||||||
|
Servers & Hosting
|
||||||
|
Business
|
||||||
|
Exercises & Quizzes
|
||||||
|
To receive more information, including news, updates, and tips, follow me on Twitter or add me on Google+.
|
||||||
|
|
||||||
|
Become a Patron
|
||||||
|
|
||||||
|
This site helps millions of visitors while remaining ad-free. For less than the price of a cup of coffee, you can help pay for bandwidth and server costs while encouraging further articles.
|
||||||
|
|
||||||
|
projects
|
||||||
|
The New DefaultsA Sass color keyword system for designers. Replaces CSS defaults with improved hues and more memorable, relevant color names.
|
||||||
|
|
||||||
|
CSSslidyAn auto-generated #RWD image slider. 3.8K of JS, no JQuery. Drop in images, add a line of CSS. Done.
|
||||||
|
|
||||||
|
Massive Head CanonMassive Head Canon. Intelligent discussion of movies, books, games, and technology.
|
||||||
|
|
||||||
|
books
|
||||||
|
Pro CSS Animation (Apress, 2013)
|
||||||
|
|
||||||
|
Animation Fundamentals: Understanding Particles Mesh Animation with HTML5 Canvas Scrolling SVG Sunset
|
||||||
|
|
||||||
|
|
||||||
|
Part of the Scrolling Effects Reading List
|
||||||
|
|
||||||
|
Rotate Elements on Scroll with JavaScript
|
||||||
|
|
||||||
|
Updated 5 years ago
|
||||||
|
Share onTwitterFacebookGoogle+
|
||||||
|
|
||||||
|
When I recoded and rebranded this site four months ago, I decided to make it completely free of frameworks: while the text and visible code samples for JQuery articles often remained unchanged, under the hood everything had to run vanilla JavaScript.
|
||||||
|
|
||||||
|
One of those articles explored how to rotate elements on the page with scroll. This article presents an updated version using the code that actually runs underneath that demo, written in vanilla JavaScript… in many respects, an approach that is simpler and more efficient.
|
||||||
|
|
||||||
|
Setting The Gears
|
||||||
|
|
||||||
|
As with the previous example, the gears are placed on the page using separate id values. Since they are vector shapes, it makes sense to build and reference the gears as SVG images:
|
||||||
|
|
||||||
|
|
||||||
|
There are many possibilities for positioning the gears: very often they will have a fixed position on the page; it’s also possible to use the new CSS “scroll-to-top-then-fixed” positioning (aka position: sticky). In this example, I’ve used flexbox to separate the elements, and vw units to size them; otherwise, the gears use standard static positioning, and therefore completely scroll with the page.
|
||||||
|
|
||||||
|
#gearbox {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
#leftgear, #rightgear {
|
||||||
|
width: 20vw;
|
||||||
|
max-width: 20%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
Rotating the Gears
|
||||||
|
|
||||||
|
Rotating the elements themselves is quite straightforward: at the bottom of the page, add the following script.
|
||||||
|
|
||||||
|
var leftgear = document.getElementById("leftgear"),
|
||||||
|
rightgear = document.getElementById("rightgear");
|
||||||
|
|
||||||
|
window.addEventListener("scroll", function() {
|
||||||
|
leftgear.style.transform = "rotate("+window.pageYOffset+"deg)";
|
||||||
|
rightgear.style.transform = "rotate(-"+window.pageYOffset+"deg)";
|
||||||
|
});
|
||||||
|
Each gear rotates by the amount the window is scrolled in pixels, converted into degrees, the left gear rotating clockwise, and the right counter-clockwise. To speed up or slow down the rotation relative to the amount of scrolling, you could make window.pageYOffset part of a simple mathematical expression: multiplying or dividing it by 2, for example.
|
||||||
|
|
||||||
|
Avoid Grinding Your Gears
|
||||||
|
|
||||||
|
A common issue with any technique that manipulates scroll behaviour is “janking”: elements stuttering as they try to match user input with the browser’s repaint cycle. The easiest way to deal with this is to only move the elements when the browser is prepared to do so, via requestAnimationFrame. To do so, the addEventListener changes to listen for a custom event:
|
||||||
|
|
||||||
|
window.addEventListener("optimizedScroll", function() {
|
||||||
|
…
|
||||||
|
})
|
||||||
|
Above the event handler, add an anonymous function:
|
||||||
|
|
||||||
|
;(function() {
|
||||||
|
var throttle = function(type, name, obj) {
|
||||||
|
var obj = obj || window;
|
||||||
|
var running = false;
|
||||||
|
var func = function() {
|
||||||
|
if (running) { return; }
|
||||||
|
running = true;
|
||||||
|
requestAnimationFrame(function() {
|
||||||
|
obj.dispatchEvent(new CustomEvent(name));
|
||||||
|
running = false;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
obj.addEventListener(type, func);
|
||||||
|
};
|
||||||
|
throttle ("scroll", "optimizedScroll");
|
||||||
|
})();
|
||||||
|
I’ll have much more to say about requestAnimationFrame in coming articles.
|
||||||
|
|
||||||
|
Enjoy this piece? I invite you to follow me at twitter.com/dudleystorey to learn more.
|
||||||
|
Check out the CodePen demo for this article at https://codepen.io/dudleystorey/pen/pgzeor
|
||||||
|
|
||||||
|
|
||||||
|
Scroll-to-Focus Effect For Hero Images
|
||||||
|
Background Reveal Scroll In Pure CSS
|
||||||
|
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
16
logo.svg
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 25.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="revaluate_logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
|
||||||
|
y="0px" viewBox="0 0 1100 1100" style="enable-background:new 0 0 1100 1100;" xml:space="preserve">
|
||||||
|
<path d="M452.4,911.9l-19.2,84.9c-96.5-21.8-182.4-71.9-248.6-145c-31.8-35.2-58.2-74.8-78.5-117.7c-16.8-35.6-29-73-36.5-111.4
|
||||||
|
L4,621.7l111-186.3l105.9,189.3l-62-0.8c15.4,62.9,46.1,120.9,90.2,169.6C303.2,853.1,373.5,894.1,452.4,911.9z M999.2,406.1
|
||||||
|
l-84,22.8c21.2,78.1,17.8,159.4-9.7,235.1c-22.4,61.7-59.3,116-107.7,159l-28.2-55.2L651.8,949.9l216.6,11l-29.9-58.4
|
||||||
|
c30.5-24.6,57.8-52.9,81.4-84.4c28.5-38,51.2-79.8,67.4-124.4C1021,601,1025.1,501.5,999.2,406.1z M833.5,212.7L728,23.2l-33.7,56.3
|
||||||
|
c-37-12.8-75.5-20.9-114.7-24.3c-47.3-4.1-94.8-1.1-141.2,8.8c-96.4,20.6-182.9,69.8-250.1,142.3l63.8,59.2
|
||||||
|
c55-59.3,125.7-99.5,204.5-116.3c64.2-13.7,129.8-11.2,191.9,7.1l-31.8,53.2L833.5,212.7z"/>
|
||||||
|
<path d="M747.7,705.9H620.8L590,636.4c-11.3-25.4-21.5-44-30.5-55.8c-9-11.8-17.9-19.3-26.4-22.6c-8.6-3.3-19.6-5-33.2-5h-13.3
|
||||||
|
v152.9H368.3V314.1h201c32.4,0,59,6.6,79.7,19.8s35.7,29.2,44.8,48.1c9.1,18.9,13.7,36.8,13.7,53.7c0,19.8-3.8,36.5-11.5,50.2
|
||||||
|
c-7.6,13.7-15.7,23.6-24.2,29.8s-18,12.2-28.5,17.8c12.6,7.3,23,16.1,31.2,26.2s19.4,30.5,33.5,61.2L747.7,705.9z M587.1,437.9
|
||||||
|
c0-18.1-5.9-30.7-17.8-37.9s-31.2-10.7-57.9-10.7h-24.9v94.4h25.4c28.8,0,48.6-3.1,59.2-9.5C581.8,467.9,587.1,455.8,587.1,437.9z"
|
||||||
|
/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
@ -6,8 +6,15 @@ from users.models import Balance
|
|||||||
from upload.models import Media
|
from upload.models import Media
|
||||||
from .serializers import BalanceSerializer, ImageSerializer
|
from .serializers import BalanceSerializer, ImageSerializer
|
||||||
|
|
||||||
|
class AllBalance(viewsets.ModelViewSet):
|
||||||
|
serializer_class = BalanceSerializer
|
||||||
|
http_method_names = ['get']
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Balance.objects.all()
|
||||||
|
|
||||||
|
|
||||||
class BalanceView(viewsets.ModelViewSet):
|
class BalanceView(viewsets.ModelViewSet):
|
||||||
permission_classes = [permissions.IsAuthenticated]
|
|
||||||
serializer_class = BalanceSerializer
|
serializer_class = BalanceSerializer
|
||||||
http_method_names = ['get']
|
http_method_names = ['get']
|
||||||
|
|
||||||
@ -16,7 +23,6 @@ class BalanceView(viewsets.ModelViewSet):
|
|||||||
|
|
||||||
|
|
||||||
class ImageView(viewsets.ModelViewSet):
|
class ImageView(viewsets.ModelViewSet):
|
||||||
permission_classes = [permissions.IsAuthenticated]
|
|
||||||
serializer_class = ImageSerializer
|
serializer_class = ImageSerializer
|
||||||
http_method_names = ['get','post']
|
http_method_names = ['get','post']
|
||||||
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
232
|
|
127
reValuate/home/static/home/css/gallery.css
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
.popup {
|
||||||
|
width: 900px;
|
||||||
|
margin: auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup img {
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show {
|
||||||
|
z-index: 999;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show .overlay {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0,0,0,.66);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show .img-show {
|
||||||
|
width: 600px;
|
||||||
|
height: 400px;
|
||||||
|
background: #FFF;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-show span {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
right: 10px;
|
||||||
|
z-index: 99;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-show img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: Raleway;
|
||||||
|
background-color: #202125;
|
||||||
|
}
|
||||||
|
|
||||||
|
.heading {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 2.0em;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
padding: 40px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-image {
|
||||||
|
padding: 20px;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-image img {
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
transform: scale(1.0);
|
||||||
|
transition: transform 0.4s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box {
|
||||||
|
box-sizing: content-box;
|
||||||
|
margin: 10px;
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
|
color: white;
|
||||||
|
position: relative;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.caption {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 5px;
|
||||||
|
left: 20px;
|
||||||
|
opacity: 0.0;
|
||||||
|
transition: transform 0.3s ease, opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.transparent-box {
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box:hover img { transform: scale(1.1); }
|
||||||
|
.img-box:hover .transparent-box { background-color: rgba(0, 0, 0, 0.5); }
|
||||||
|
|
||||||
|
.img-box:hover .caption {
|
||||||
|
transform: translateY(-20px);
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box:hover { cursor: pointer; }
|
||||||
|
.caption > p:nth-child(2) { font-size: 0.8em; }
|
||||||
|
.opacity-low { opacity: 0.5; }
|
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.6 KiB |
@ -1,22 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000px" height="1000px" viewBox="0 0 1000 1000" zoomAndPan="disable">
|
|
||||||
<style type="text/css"><![CDATA[
|
|
||||||
.p-4 { fill: rgba(255,255,255,0.16); }
|
|
||||||
.p-3 { fill: rgba(255,255,255,0.12); }
|
|
||||||
.p-2 { fill: rgba(255,255,255,0.08); }
|
|
||||||
.p-1 { fill: rgba(255,255,255,0.04); }
|
|
||||||
.p0 { fill: none; }
|
|
||||||
.p1 { fill: rgba(0,0,0,0.025); }
|
|
||||||
.p2 { fill: rgba(0,0,0,0.05); }
|
|
||||||
.p3 { fill: rgba(0,0,0,0.075); }
|
|
||||||
.p4 { fill: rgba(0,0,0,0.1); }
|
|
||||||
]]></style>
|
|
||||||
<polygon class="p-4" points="-1125,0 -375,1000 125,1000 -875,0" />
|
|
||||||
<polygon class="p-3" points="-875,0 125,1000 375,1000 -625,0" />
|
|
||||||
<polygon class="p-2" points="-625,0 375,1000 625,1000 -375,0" />
|
|
||||||
<polygon class="p-1" points="-375,0 625,1000 875,1000 -125,0" />
|
|
||||||
<polygon class="p0" points="-125,0 875,1000 1125,1000 125,0" />
|
|
||||||
<polygon class="p1" points="125,0 1125,1000 1375,1000 375,0" />
|
|
||||||
<polygon class="p2" points="375,0 1375,1000 1625,1000 625,0" />
|
|
||||||
<polygon class="p3" points="625,0 1625,1000 1875,1000 875,0" />
|
|
||||||
<polygon class="p4" points="875,0 1875,1000 2125,1000 1125,0" />
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1,22 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000px" height="1000px" viewBox="0 0 1000 1000" zoomAndPan="disable">
|
|
||||||
<style type="text/css"><![CDATA[
|
|
||||||
.p-4 { fill: rgba(255,255,255,0.16); }
|
|
||||||
.p-3 { fill: rgba(255,255,255,0.12); }
|
|
||||||
.p-2 { fill: rgba(255,255,255,0.08); }
|
|
||||||
.p-1 { fill: rgba(255,255,255,0.04); }
|
|
||||||
.p0 { fill: none; }
|
|
||||||
.p1 { fill: rgba(0,0,0,0.025); }
|
|
||||||
.p2 { fill: rgba(0,0,0,0.05); }
|
|
||||||
.p3 { fill: rgba(0,0,0,0.075); }
|
|
||||||
.p4 { fill: rgba(0,0,0,0.1); }
|
|
||||||
]]></style>
|
|
||||||
<polygon class="p4" points="-1125,0 -375,1000 125,1000 -875,0" />
|
|
||||||
<polygon class="p3" points="-875,0 125,1000 375,1000 -625,0" />
|
|
||||||
<polygon class="p2" points="-625,0 375,1000 625,1000 -375,0" />
|
|
||||||
<polygon class="p1" points="-375,0 625,1000 875,1000 -125,0" />
|
|
||||||
<polygon class="p0" points="-125,0 875,1000 1125,1000 125,0" />
|
|
||||||
<polygon class="p-1" points="125,0 1125,1000 1375,1000 375,0" />
|
|
||||||
<polygon class="p-2" points="375,0 1375,1000 1625,1000 625,0" />
|
|
||||||
<polygon class="p-3" points="625,0 1625,1000 1875,1000 875,0" />
|
|
||||||
<polygon class="p-4" points="875,0 1875,1000 2125,1000 1125,0" />
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
Photon by HTML5 UP
|
|
||||||
html5up.net | @ajlkn
|
|
||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Header */
|
|
||||||
|
|
||||||
body.is-preload #header .inner {
|
|
||||||
-moz-transform: none;
|
|
||||||
-webkit-transform: none;
|
|
||||||
-ms-transform: none;
|
|
||||||
transform: none;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.is-preload #header .inner .actions {
|
|
||||||
-moz-transform: none;
|
|
||||||
-webkit-transform: none;
|
|
||||||
-ms-transform: none;
|
|
||||||
transform: none;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.is-preload #header:after {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
@ -1,127 +1,323 @@
|
|||||||
@import url(https://fonts.googleapis.com/css?family=Roboto:300);
|
* {
|
||||||
|
|
||||||
:root {
|
|
||||||
--base-grid: 8px;
|
|
||||||
--colour-white: #fff;
|
|
||||||
--colour-black: #1a1a1a;
|
|
||||||
}
|
|
||||||
|
|
||||||
@viewport {
|
|
||||||
width: device-width ;
|
|
||||||
zoom: 1.0 ;
|
|
||||||
}
|
|
||||||
|
|
||||||
*,
|
|
||||||
:after,
|
|
||||||
:before {
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-wrap {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 50px auto;
|
||||||
|
padding: 20px;
|
||||||
|
background: white;
|
||||||
|
-moz-box-shadow: 0 0 20px #469330;
|
||||||
|
-webkit-box-shadow: 0 0 20px #469330;
|
||||||
|
box-shadow: 0 0 20px #469330;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 25px;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 30px 10%;
|
||||||
|
background-color: #469330;
|
||||||
|
position: sticky;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links a,
|
||||||
|
.cta,
|
||||||
|
.overlay__content a {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size:30px;
|
||||||
|
color: #edf0f1;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links {
|
||||||
|
list-style: none;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li {
|
||||||
|
padding: 0px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li a {
|
||||||
|
transition: color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li a:hover {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta {
|
||||||
|
padding: 9px 25px;
|
||||||
|
color: #469330;
|
||||||
|
background-color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 50px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta:hover {
|
||||||
|
color: white;
|
||||||
|
background-color: darkgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile Nav */
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay {
|
||||||
|
height: 100%;
|
||||||
|
width: 0;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 99;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
background-color: #469330;
|
||||||
|
overflow-x: hidden;
|
||||||
|
transition: width 0.5s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay--active {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay__content {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay a {
|
||||||
|
padding: 15px;
|
||||||
|
font-size: 36px;
|
||||||
|
display: block;
|
||||||
|
transition: color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay a:hover,
|
||||||
|
.overlay a:focus {
|
||||||
|
color: darkgreen;
|
||||||
|
}
|
||||||
|
.overlay .close {
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
right: 45px;
|
||||||
|
font-size: 60px;
|
||||||
|
color: #edf0f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-height: 450px) {
|
||||||
|
.overlay a {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.overlay .close {
|
||||||
|
font-size: 40px;
|
||||||
|
top: 15px;
|
||||||
|
right: 35px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 1024px) {
|
||||||
|
.nav__links,
|
||||||
|
.cta {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.menu {
|
||||||
|
display: initial;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
html{
|
html{
|
||||||
margin: 0;
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
padding: 0;
|
}
|
||||||
background-position: 100%;
|
|
||||||
|
p {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
|
||||||
|
margin: 0 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1.heading{
|
||||||
|
color: white;
|
||||||
|
font-size: 50px;
|
||||||
|
text-shadow: -1px 0 black, 0 2px black, 2px 0 black, 0 -1px black;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.emoji{
|
||||||
|
list-style-type: "♻️";
|
||||||
|
}
|
||||||
|
|
||||||
|
.question{
|
||||||
|
color: gray;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.nothing{
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.footer{
|
||||||
|
/* background:radial-gradient(circle, rgba(0,159,12,1) 0%, rgba(8,96,0,1) 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent; */
|
||||||
|
color: lightgreen;
|
||||||
|
}
|
||||||
|
footer{
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
left:50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.centered{
|
.centered{
|
||||||
position: absolute;
|
display:flex;
|
||||||
left: 50%;
|
|
||||||
margin-right: -50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
top: 50%;
|
|
||||||
}
|
|
||||||
.dropdown-item{
|
|
||||||
font-size:100%
|
|
||||||
}
|
|
||||||
body{
|
|
||||||
font-size: 1.2em;
|
|
||||||
font-family: 'Roboto', sans-serif;
|
|
||||||
line-height: 1.4;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.navview{
|
@-webkit-keyframes text-shadow-pop-right {
|
||||||
width:100%;
|
|
||||||
|
|
||||||
}
|
|
||||||
#active {
|
|
||||||
background-color: #4CAF50;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-link {
|
|
||||||
color: white;
|
|
||||||
font-size: 30px;
|
|
||||||
transition: 0.6s;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.inverted {
|
|
||||||
color: black;
|
|
||||||
font-size: 30px;
|
|
||||||
transition: 0.6s;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.inverted:hover {
|
|
||||||
color: green;
|
|
||||||
}
|
|
||||||
@media (min-width: 992px) {
|
|
||||||
.animate {
|
|
||||||
animation-duration: 0.3s;
|
|
||||||
-webkit-animation-duration: 0.3s;
|
|
||||||
animation-fill-mode: both;
|
|
||||||
-webkit-animation-fill-mode: both;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes slideIn {
|
|
||||||
0% {
|
0% {
|
||||||
transform: translateY(1rem);
|
text-shadow: 0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555;
|
||||||
opacity: 0;
|
-webkit-transform: translateX(0);
|
||||||
|
transform: translateX(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
100% {
|
100% {
|
||||||
transform:translateY(0rem);
|
text-shadow: 1px 0 #555,2px 0 #555,3px 0 #555,4px 0 #555,5px 0 #555,6px 0 #555,7px 0 #555,8px 0 #555;
|
||||||
|
-webkit-transform: translateX(-8px);
|
||||||
|
transform: translateX(-8px)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes text-shadow-pop-right {
|
||||||
|
0% {
|
||||||
|
text-shadow: 0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555;
|
||||||
|
-webkit-transform: translateX(0);
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
text-shadow: 1px 0 #555,2px 0 #555,3px 0 #555,4px 0 #555,5px 0 #555,6px 0 #555,7px 0 #555,8px 0 #555;
|
||||||
|
-webkit-transform: translateX(-8px);
|
||||||
|
transform: translateX(-8px)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-shadow-pop-right{-webkit-animation:text-shadow-pop-right .6s both;animation:text-shadow-pop-right .6s both}
|
||||||
|
|
||||||
|
@-webkit-keyframes scale-in-center {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(0);
|
||||||
|
transform: scale(0);
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
0% {
|
100% {
|
||||||
transform: translateY(1rem);
|
-webkit-transform: scale(1);
|
||||||
opacity: 0;
|
transform: scale(1);
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@keyframes scale-in-center {
|
||||||
@-webkit-keyframes slideIn {
|
|
||||||
0% {
|
0% {
|
||||||
-webkit-transform: transform;
|
-webkit-transform: scale(0);
|
||||||
-webkit-opacity: 0;
|
transform: scale(0);
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
100% {
|
100% {
|
||||||
-webkit-transform: translateY(0);
|
-webkit-transform: scale(1);
|
||||||
-webkit-opacity: 1;
|
transform: scale(1);
|
||||||
}
|
opacity: 1;
|
||||||
0% {
|
|
||||||
-webkit-transform: translateY(1rem);
|
|
||||||
-webkit-opacity: 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.slideIn {
|
.scale-in-center {
|
||||||
-webkit-animation-name: slideIn;
|
-webkit-animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
animation-name: slideIn;
|
animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
}
|
}
|
||||||
|
|
||||||
.Buttons {
|
.buttons{
|
||||||
background-color: #ddd;
|
background-color: #469330;
|
||||||
border: none;
|
border: none;
|
||||||
color: black;
|
color: white;
|
||||||
padding: 16px 32px;
|
padding: 15px 32px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
margin: 4px 2px;
|
margin: 4px 2px;
|
||||||
transition: 0.3s;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.Buttons:hover {
|
|
||||||
background-color: #28a745;
|
@-webkit-keyframes tracking-in-expand {
|
||||||
color: white;
|
0% {
|
||||||
|
letter-spacing: -0.5em;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes tracking-in-expand {
|
||||||
|
0% {
|
||||||
|
letter-spacing: -0.5em;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tracking-in-expand {
|
||||||
|
-webkit-animation: tracking-in-expand 0.7s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||||
|
animation: tracking-in-expand 0.7s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||||
|
animation-delay: .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes fade-in-bck {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translateZ(80px);
|
||||||
|
transform: translateZ(80px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translateZ(0);
|
||||||
|
transform: translateZ(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-in-bck {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translateZ(80px);
|
||||||
|
transform: translateZ(80px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translateZ(0);
|
||||||
|
transform: translateZ(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-in-bck {
|
||||||
|
-webkit-animation: fade-in-bck 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
|
||||||
|
animation: fade-in-bck 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
|
||||||
}
|
}
|
@ -1,30 +0,0 @@
|
|||||||
@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
|
|
||||||
|
|
||||||
.fancyButton {
|
|
||||||
border: auto solid green;
|
|
||||||
background-color: transparent;
|
|
||||||
padding: 38% 35%;
|
|
||||||
text-align: center;
|
|
||||||
border-radius: 2%;
|
|
||||||
transition-duration: 0.4s;
|
|
||||||
color: rgb(0, 0, 0);
|
|
||||||
outline: none;
|
|
||||||
font-family: 'Roboto', sans-serif !important;
|
|
||||||
font-size: 30px;
|
|
||||||
box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
|
|
||||||
}
|
|
||||||
|
|
||||||
.fancyButton:hover {
|
|
||||||
background-image: url("images/header.png"), linear-gradient( 292.6deg, rgba(255,255,255,1) -44.1%, rgba(40,167,69,1) 100.5% );
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
button:focus {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
margin: auto;
|
|
||||||
width: auto;
|
|
||||||
height: auto;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 242 KiB |
Before Width: | Height: | Size: 280 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 747 KiB |
@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 359.29 332.18"><defs><style>.cls-1{fill:#b2b2b2;}.cls-2{fill:#fff;}</style></defs><title>asset bobkata</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M90.63,180.08c6.41,84.48,87.6,77.47,87.6,77.47l8.14,53.1s-47.84,21.21-107.53-31.57c0,0-46.08-36.15-39.07-107.25L11,166.29,70.62,98.87l55.78,88.36Z"/><path class="cls-1" d="M238.65,68c-74.16-41-112.82,30.77-112.82,30.77L77,76.47s8.49-51.64,85.36-72.6c0,0,55.51-18.71,111.11,26.14L293.85,9l23.69,86.83L213.06,94Z"/><path class="cls-1" d="M262.84,252.17C333.61,205.59,288.09,138,288.09,138l42.49-32.87s41.75,31.54,24.55,109.34c0,0-9.27,57.83-74.83,86.19l9.11,27.85-87.88-19.43,50.21-91.64Z"/><path class="cls-2" d="M79.63,183.77c6.41,84.48,87.6,77.46,87.6,77.46l8.14,53.11s-47.84,21.21-107.53-31.57c0,0-46.08-36.16-39.07-107.25L0,170l59.62-67.42,55.78,88.35Z"/><path class="cls-2" d="M227.65,72c-74.16-41-112.82,30.77-112.82,30.77L66,80.47s8.49-51.64,85.36-72.6c0,0,55.51-18.71,111.11,26.14l20.41-21,23.69,86.83L202.06,98Z"/><path class="cls-2" d="M251.84,255.86c70.77-46.58,25.25-114.18,25.25-114.18l42.49-32.88s41.75,31.55,24.55,109.35c0,0-9.27,57.83-74.83,86.19l9.11,27.84-87.88-19.43,50.21-91.64Z"/><path class="cls-1" d="M231.05,217.82H203.72l-21-31.86v31.86h-22v-83h34.21q15,0,22.18,8.82a25.54,25.54,0,0,1,5.83,16.72q0,11-6.69,17.57-4.28,4.2-11.78,5.84Zm-31-56.53a10,10,0,0,0-3.29-7.57q-3.1-2.9-10-2.9h-4.09v21h4.09q6.94,0,10-2.89A10.19,10.19,0,0,0,200.07,161.29Z"/><path class="cls-2" d="M224.05,214.82H196.72l-21-31.86v31.86h-22v-83h34.21q15,0,22.18,8.82a25.54,25.54,0,0,1,5.83,16.72q0,11-6.69,17.57-4.28,4.2-11.78,5.84Zm-31-56.53a10,10,0,0,0-3.29-7.57q-3.1-2.9-10-2.9h-4.09v21h4.09q6.94,0,10-2.89A10.19,10.19,0,0,0,193.07,158.29Z"/></g></g></svg>
|
|
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 9.6 KiB |
BIN
reValuate/home/static/home/img/Discord-Logo.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
reValuate/home/static/home/img/approved.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
reValuate/home/static/home/img/cross.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
reValuate/home/static/home/img/loading.png
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
BIN
reValuate/home/static/home/img/mail.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
reValuate/home/static/home/img/question.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
reValuate/home/static/home/img/youtube.png
Normal file
After Width: | Height: | Size: 71 KiB |
@ -1,2 +0,0 @@
|
|||||||
/* breakpoints.js v1.0 | @ajlkn | MIT licensed */
|
|
||||||
var breakpoints=function(){"use strict";function e(e){t.init(e)}var t={list:null,media:{},events:[],init:function(e){t.list=e,window.addEventListener("resize",t.poll),window.addEventListener("orientationchange",t.poll),window.addEventListener("load",t.poll),window.addEventListener("fullscreenchange",t.poll)},active:function(e){var n,a,s,i,r,d,c;if(!(e in t.media)){if(">="==e.substr(0,2)?(a="gte",n=e.substr(2)):"<="==e.substr(0,2)?(a="lte",n=e.substr(2)):">"==e.substr(0,1)?(a="gt",n=e.substr(1)):"<"==e.substr(0,1)?(a="lt",n=e.substr(1)):"!"==e.substr(0,1)?(a="not",n=e.substr(1)):(a="eq",n=e),n&&n in t.list)if(i=t.list[n],Array.isArray(i)){if(r=parseInt(i[0]),d=parseInt(i[1]),isNaN(r)){if(isNaN(d))return;c=i[1].substr(String(d).length)}else c=i[0].substr(String(r).length);if(isNaN(r))switch(a){case"gte":s="screen";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: -1px)";break;case"not":s="screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (max-width: "+d+c+")"}else if(isNaN(d))switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen";break;case"gt":s="screen and (max-width: -1px)";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+")";break;default:s="screen and (min-width: "+r+c+")"}else switch(a){case"gte":s="screen and (min-width: "+r+c+")";break;case"lte":s="screen and (max-width: "+d+c+")";break;case"gt":s="screen and (min-width: "+(d+1)+c+")";break;case"lt":s="screen and (max-width: "+(r-1)+c+")";break;case"not":s="screen and (max-width: "+(r-1)+c+"), screen and (min-width: "+(d+1)+c+")";break;default:s="screen and (min-width: "+r+c+") and (max-width: "+d+c+")"}}else s="("==i.charAt(0)?"screen and "+i:i;t.media[e]=!!s&&s}return t.media[e]!==!1&&window.matchMedia(t.media[e]).matches},on:function(e,n){t.events.push({query:e,handler:n,state:!1}),t.active(e)&&n()},poll:function(){var e,n;for(e=0;e<t.events.length;e++)n=t.events[e],t.active(n.query)?n.state||(n.state=!0,n.handler()):n.state&&(n.state=!1)}};return e._=t,e.on=function(e,n){t.on(e,n)},e.active=function(e){return t.active(e)},e}();!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.breakpoints=t()}(this,function(){return breakpoints});
|
|
2
reValuate/home/static/home/js/browser.min.js
vendored
@ -1,2 +0,0 @@
|
|||||||
/* browser.js v1.0 | @ajlkn | MIT licensed */
|
|
||||||
var browser=function(){"use strict";var e={name:null,version:null,os:null,osVersion:null,touch:null,mobile:null,_canUse:null,canUse:function(n){e._canUse||(e._canUse=document.createElement("div"));var o=e._canUse.style,r=n.charAt(0).toUpperCase()+n.slice(1);return n in o||"Moz"+r in o||"Webkit"+r in o||"O"+r in o||"ms"+r in o},init:function(){var n,o,r,i,t=navigator.userAgent;for(n="other",o=0,r=[["firefox",/Firefox\/([0-9\.]+)/],["bb",/BlackBerry.+Version\/([0-9\.]+)/],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/],["opera",/OPR\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)/],["edge",/Edge\/([0-9\.]+)/],["safari",/Version\/([0-9\.]+).+Safari/],["chrome",/Chrome\/([0-9\.]+)/],["ie",/MSIE ([0-9]+)/],["ie",/Trident\/.+rv:([0-9]+)/]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(RegExp.$1);break}for(e.name=n,e.version=o,n="other",o=0,r=[["ios",/([0-9_]+) like Mac OS X/,function(e){return e.replace("_",".").replace("_","")}],["ios",/CPU like Mac OS X/,function(e){return 0}],["wp",/Windows Phone ([0-9\.]+)/,null],["android",/Android ([0-9\.]+)/,null],["mac",/Macintosh.+Mac OS X ([0-9_]+)/,function(e){return e.replace("_",".").replace("_","")}],["windows",/Windows NT ([0-9\.]+)/,null],["bb",/BlackBerry.+Version\/([0-9\.]+)/,null],["bb",/BB[0-9]+.+Version\/([0-9\.]+)/,null],["linux",/Linux/,null],["bsd",/BSD/,null],["unix",/X11/,null]],i=0;i<r.length;i++)if(t.match(r[i][1])){n=r[i][0],o=parseFloat(r[i][2]?r[i][2](RegExp.$1):RegExp.$1);break}e.os=n,e.osVersion=o,e.touch="wp"==e.os?navigator.msMaxTouchPoints>0:!!("ontouchstart"in window),e.mobile="wp"==e.os||"android"==e.os||"ios"==e.os||"bb"==e.os}};return e.init(),e}();!function(e,n){"function"==typeof define&&define.amd?define([],n):"object"==typeof exports?module.exports=n():e.browser=n()}(this,function(){return browser});
|
|
2
reValuate/home/static/home/js/jquery.min.js
vendored
@ -1,2 +0,0 @@
|
|||||||
/* jquery.scrolly v1.0.0-dev | (c) @ajlkn | MIT licensed */
|
|
||||||
(function(e){function u(s,o){var u,a,f;if((u=e(s))[t]==0)return n;a=u[i]()[r];switch(o.anchor){case"middle":f=a-(e(window).height()-u.outerHeight())/2;break;default:case r:f=Math.max(a,0)}return typeof o[i]=="function"?f-=o[i]():f-=o[i],f}var t="length",n=null,r="top",i="offset",s="click.scrolly",o=e(window);e.fn.scrolly=function(i){var o,a,f,l,c=e(this);if(this[t]==0)return c;if(this[t]>1){for(o=0;o<this[t];o++)e(this[o]).scrolly(i);return c}l=n,f=c.attr("href");if(f.charAt(0)!="#"||f[t]<2)return c;a=jQuery.extend({anchor:r,easing:"swing",offset:0,parent:e("body,html"),pollOnce:!1,speed:1e3},i),a.pollOnce&&(l=u(f,a)),c.off(s).on(s,function(e){var t=l!==n?l:u(f,a);t!==n&&(e.preventDefault(),a.parent.stop().animate({scrollTop:t},a.speed,a.easing))})}})(jQuery);
|
|
@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
Photon by HTML5 UP
|
|
||||||
html5up.net | @ajlkn
|
|
||||||
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function($) {
|
|
||||||
|
|
||||||
var $window = $(window),
|
|
||||||
$body = $('body');
|
|
||||||
|
|
||||||
// Breakpoints.
|
|
||||||
breakpoints({
|
|
||||||
xlarge: [ '1141px', '1680px' ],
|
|
||||||
large: [ '981px', '1140px' ],
|
|
||||||
medium: [ '737px', '980px' ],
|
|
||||||
small: [ '481px', '736px' ],
|
|
||||||
xsmall: [ '321px', '480px' ],
|
|
||||||
xxsmall: [ null, '320px' ]
|
|
||||||
});
|
|
||||||
|
|
||||||
// Play initial animations on page load.
|
|
||||||
$window.on('load', function() {
|
|
||||||
window.setTimeout(function() {
|
|
||||||
$body.removeClass('is-preload');
|
|
||||||
}, 100);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Scrolly.
|
|
||||||
$('.scrolly').scrolly();
|
|
||||||
|
|
||||||
})(jQuery);
|
|
12
reValuate/home/static/home/js/mobile.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
const doc = document;
|
||||||
|
const menuOpen = doc.querySelector(".menu");
|
||||||
|
const menuClose = doc.querySelector(".close");
|
||||||
|
const overlay = doc.querySelector(".overlay");
|
||||||
|
|
||||||
|
menuOpen.addEventListener("click", () => {
|
||||||
|
overlay.classList.add("overlay--active");
|
||||||
|
});
|
||||||
|
|
||||||
|
menuClose.addEventListener("click", () => {
|
||||||
|
overlay.classList.remove("overlay--active");
|
||||||
|
});
|
@ -1,587 +0,0 @@
|
|||||||
(function($) {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate an indented list of links from a nav. Meant for use with panel().
|
|
||||||
* @return {jQuery} jQuery object.
|
|
||||||
*/
|
|
||||||
$.fn.navList = function() {
|
|
||||||
|
|
||||||
var $this = $(this);
|
|
||||||
$a = $this.find('a'),
|
|
||||||
b = [];
|
|
||||||
|
|
||||||
$a.each(function() {
|
|
||||||
|
|
||||||
var $this = $(this),
|
|
||||||
indent = Math.max(0, $this.parents('li').length - 1),
|
|
||||||
href = $this.attr('href'),
|
|
||||||
target = $this.attr('target');
|
|
||||||
|
|
||||||
b.push(
|
|
||||||
'<a ' +
|
|
||||||
'class="link depth-' + indent + '"' +
|
|
||||||
( (typeof target !== 'undefined' && target != '') ? ' target="' + target + '"' : '') +
|
|
||||||
( (typeof href !== 'undefined' && href != '') ? ' href="' + href + '"' : '') +
|
|
||||||
'>' +
|
|
||||||
'<span class="indent-' + indent + '"></span>' +
|
|
||||||
$this.text() +
|
|
||||||
'</a>'
|
|
||||||
);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return b.join('');
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Panel-ify an element.
|
|
||||||
* @param {object} userConfig User config.
|
|
||||||
* @return {jQuery} jQuery object.
|
|
||||||
*/
|
|
||||||
$.fn.panel = function(userConfig) {
|
|
||||||
|
|
||||||
// No elements?
|
|
||||||
if (this.length == 0)
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
// Multiple elements?
|
|
||||||
if (this.length > 1) {
|
|
||||||
|
|
||||||
for (var i=0; i < this.length; i++)
|
|
||||||
$(this[i]).panel(userConfig);
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Vars.
|
|
||||||
var $this = $(this),
|
|
||||||
$body = $('body'),
|
|
||||||
$window = $(window),
|
|
||||||
id = $this.attr('id'),
|
|
||||||
config;
|
|
||||||
|
|
||||||
// Config.
|
|
||||||
config = $.extend({
|
|
||||||
|
|
||||||
// Delay.
|
|
||||||
delay: 0,
|
|
||||||
|
|
||||||
// Hide panel on link click.
|
|
||||||
hideOnClick: false,
|
|
||||||
|
|
||||||
// Hide panel on escape keypress.
|
|
||||||
hideOnEscape: false,
|
|
||||||
|
|
||||||
// Hide panel on swipe.
|
|
||||||
hideOnSwipe: false,
|
|
||||||
|
|
||||||
// Reset scroll position on hide.
|
|
||||||
resetScroll: false,
|
|
||||||
|
|
||||||
// Reset forms on hide.
|
|
||||||
resetForms: false,
|
|
||||||
|
|
||||||
// Side of viewport the panel will appear.
|
|
||||||
side: null,
|
|
||||||
|
|
||||||
// Target element for "class".
|
|
||||||
target: $this,
|
|
||||||
|
|
||||||
// Class to toggle.
|
|
||||||
visibleClass: 'visible'
|
|
||||||
|
|
||||||
}, userConfig);
|
|
||||||
|
|
||||||
// Expand "target" if it's not a jQuery object already.
|
|
||||||
if (typeof config.target != 'jQuery')
|
|
||||||
config.target = $(config.target);
|
|
||||||
|
|
||||||
// Panel.
|
|
||||||
|
|
||||||
// Methods.
|
|
||||||
$this._hide = function(event) {
|
|
||||||
|
|
||||||
// Already hidden? Bail.
|
|
||||||
if (!config.target.hasClass(config.visibleClass))
|
|
||||||
return;
|
|
||||||
|
|
||||||
// If an event was provided, cancel it.
|
|
||||||
if (event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hide.
|
|
||||||
config.target.removeClass(config.visibleClass);
|
|
||||||
|
|
||||||
// Post-hide stuff.
|
|
||||||
window.setTimeout(function() {
|
|
||||||
|
|
||||||
// Reset scroll position.
|
|
||||||
if (config.resetScroll)
|
|
||||||
$this.scrollTop(0);
|
|
||||||
|
|
||||||
// Reset forms.
|
|
||||||
if (config.resetForms)
|
|
||||||
$this.find('form').each(function() {
|
|
||||||
this.reset();
|
|
||||||
});
|
|
||||||
|
|
||||||
}, config.delay);
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// Vendor fixes.
|
|
||||||
$this
|
|
||||||
.css('-ms-overflow-style', '-ms-autohiding-scrollbar')
|
|
||||||
.css('-webkit-overflow-scrolling', 'touch');
|
|
||||||
|
|
||||||
// Hide on click.
|
|
||||||
if (config.hideOnClick) {
|
|
||||||
|
|
||||||
$this.find('a')
|
|
||||||
.css('-webkit-tap-highlight-color', 'rgba(0,0,0,0)');
|
|
||||||
|
|
||||||
$this
|
|
||||||
.on('click', 'a', function(event) {
|
|
||||||
|
|
||||||
var $a = $(this),
|
|
||||||
href = $a.attr('href'),
|
|
||||||
target = $a.attr('target');
|
|
||||||
|
|
||||||
if (!href || href == '#' || href == '' || href == '#' + id)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Cancel original event.
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
// Hide panel.
|
|
||||||
$this._hide();
|
|
||||||
|
|
||||||
// Redirect to href.
|
|
||||||
window.setTimeout(function() {
|
|
||||||
|
|
||||||
if (target == '_blank')
|
|
||||||
window.open(href);
|
|
||||||
else
|
|
||||||
window.location.href = href;
|
|
||||||
|
|
||||||
}, config.delay + 10);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Event: Touch stuff.
|
|
||||||
$this.on('touchstart', function(event) {
|
|
||||||
|
|
||||||
$this.touchPosX = event.originalEvent.touches[0].pageX;
|
|
||||||
$this.touchPosY = event.originalEvent.touches[0].pageY;
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
$this.on('touchmove', function(event) {
|
|
||||||
|
|
||||||
if ($this.touchPosX === null
|
|
||||||
|| $this.touchPosY === null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
var diffX = $this.touchPosX - event.originalEvent.touches[0].pageX,
|
|
||||||
diffY = $this.touchPosY - event.originalEvent.touches[0].pageY,
|
|
||||||
th = $this.outerHeight(),
|
|
||||||
ts = ($this.get(0).scrollHeight - $this.scrollTop());
|
|
||||||
|
|
||||||
// Hide on swipe?
|
|
||||||
if (config.hideOnSwipe) {
|
|
||||||
|
|
||||||
var result = false,
|
|
||||||
boundary = 20,
|
|
||||||
delta = 50;
|
|
||||||
|
|
||||||
switch (config.side) {
|
|
||||||
|
|
||||||
case 'left':
|
|
||||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX > delta);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'right':
|
|
||||||
result = (diffY < boundary && diffY > (-1 * boundary)) && (diffX < (-1 * delta));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'top':
|
|
||||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY > delta);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'bottom':
|
|
||||||
result = (diffX < boundary && diffX > (-1 * boundary)) && (diffY < (-1 * delta));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result) {
|
|
||||||
|
|
||||||
$this.touchPosX = null;
|
|
||||||
$this.touchPosY = null;
|
|
||||||
$this._hide();
|
|
||||||
|
|
||||||
return false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Prevent vertical scrolling past the top or bottom.
|
|
||||||
if (($this.scrollTop() < 0 && diffY < 0)
|
|
||||||
|| (ts > (th - 2) && ts < (th + 2) && diffY > 0)) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Event: Prevent certain events inside the panel from bubbling.
|
|
||||||
$this.on('click touchend touchstart touchmove', function(event) {
|
|
||||||
event.stopPropagation();
|
|
||||||
});
|
|
||||||
|
|
||||||
// Event: Hide panel if a child anchor tag pointing to its ID is clicked.
|
|
||||||
$this.on('click', 'a[href="#' + id + '"]', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
config.target.removeClass(config.visibleClass);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Body.
|
|
||||||
|
|
||||||
// Event: Hide panel on body click/tap.
|
|
||||||
$body.on('click touchend', function(event) {
|
|
||||||
$this._hide(event);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Event: Toggle.
|
|
||||||
$body.on('click', 'a[href="#' + id + '"]', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
|
|
||||||
config.target.toggleClass(config.visibleClass);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Window.
|
|
||||||
|
|
||||||
// Event: Hide on ESC.
|
|
||||||
if (config.hideOnEscape)
|
|
||||||
$window.on('keydown', function(event) {
|
|
||||||
|
|
||||||
if (event.keyCode == 27)
|
|
||||||
$this._hide(event);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Apply "placeholder" attribute polyfill to one or more forms.
|
|
||||||
* @return {jQuery} jQuery object.
|
|
||||||
*/
|
|
||||||
$.fn.placeholder = function() {
|
|
||||||
|
|
||||||
// Browser natively supports placeholders? Bail.
|
|
||||||
if (typeof (document.createElement('input')).placeholder != 'undefined')
|
|
||||||
return $(this);
|
|
||||||
|
|
||||||
// No elements?
|
|
||||||
if (this.length == 0)
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
// Multiple elements?
|
|
||||||
if (this.length > 1) {
|
|
||||||
|
|
||||||
for (var i=0; i < this.length; i++)
|
|
||||||
$(this[i]).placeholder();
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Vars.
|
|
||||||
var $this = $(this);
|
|
||||||
|
|
||||||
// Text, TextArea.
|
|
||||||
$this.find('input[type=text],textarea')
|
|
||||||
.each(function() {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
|
|
||||||
if (i.val() == ''
|
|
||||||
|| i.val() == i.attr('placeholder'))
|
|
||||||
i
|
|
||||||
.addClass('polyfill-placeholder')
|
|
||||||
.val(i.attr('placeholder'));
|
|
||||||
|
|
||||||
})
|
|
||||||
.on('blur', function() {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
|
|
||||||
if (i.attr('name').match(/-polyfill-field$/))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (i.val() == '')
|
|
||||||
i
|
|
||||||
.addClass('polyfill-placeholder')
|
|
||||||
.val(i.attr('placeholder'));
|
|
||||||
|
|
||||||
})
|
|
||||||
.on('focus', function() {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
|
|
||||||
if (i.attr('name').match(/-polyfill-field$/))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (i.val() == i.attr('placeholder'))
|
|
||||||
i
|
|
||||||
.removeClass('polyfill-placeholder')
|
|
||||||
.val('');
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Password.
|
|
||||||
$this.find('input[type=password]')
|
|
||||||
.each(function() {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
var x = $(
|
|
||||||
$('<div>')
|
|
||||||
.append(i.clone())
|
|
||||||
.remove()
|
|
||||||
.html()
|
|
||||||
.replace(/type="password"/i, 'type="text"')
|
|
||||||
.replace(/type=password/i, 'type=text')
|
|
||||||
);
|
|
||||||
|
|
||||||
if (i.attr('id') != '')
|
|
||||||
x.attr('id', i.attr('id') + '-polyfill-field');
|
|
||||||
|
|
||||||
if (i.attr('name') != '')
|
|
||||||
x.attr('name', i.attr('name') + '-polyfill-field');
|
|
||||||
|
|
||||||
x.addClass('polyfill-placeholder')
|
|
||||||
.val(x.attr('placeholder')).insertAfter(i);
|
|
||||||
|
|
||||||
if (i.val() == '')
|
|
||||||
i.hide();
|
|
||||||
else
|
|
||||||
x.hide();
|
|
||||||
|
|
||||||
i
|
|
||||||
.on('blur', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
var x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
|
||||||
|
|
||||||
if (i.val() == '') {
|
|
||||||
|
|
||||||
i.hide();
|
|
||||||
x.show();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
x
|
|
||||||
.on('focus', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
var i = x.parent().find('input[name=' + x.attr('name').replace('-polyfill-field', '') + ']');
|
|
||||||
|
|
||||||
x.hide();
|
|
||||||
|
|
||||||
i
|
|
||||||
.show()
|
|
||||||
.focus();
|
|
||||||
|
|
||||||
})
|
|
||||||
.on('keypress', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
x.val('');
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
// Events.
|
|
||||||
$this
|
|
||||||
.on('submit', function() {
|
|
||||||
|
|
||||||
$this.find('input[type=text],input[type=password],textarea')
|
|
||||||
.each(function(event) {
|
|
||||||
|
|
||||||
var i = $(this);
|
|
||||||
|
|
||||||
if (i.attr('name').match(/-polyfill-field$/))
|
|
||||||
i.attr('name', '');
|
|
||||||
|
|
||||||
if (i.val() == i.attr('placeholder')) {
|
|
||||||
|
|
||||||
i.removeClass('polyfill-placeholder');
|
|
||||||
i.val('');
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
})
|
|
||||||
.on('reset', function(event) {
|
|
||||||
|
|
||||||
event.preventDefault();
|
|
||||||
|
|
||||||
$this.find('select')
|
|
||||||
.val($('option:first').val());
|
|
||||||
|
|
||||||
$this.find('input,textarea')
|
|
||||||
.each(function() {
|
|
||||||
|
|
||||||
var i = $(this),
|
|
||||||
x;
|
|
||||||
|
|
||||||
i.removeClass('polyfill-placeholder');
|
|
||||||
|
|
||||||
switch (this.type) {
|
|
||||||
|
|
||||||
case 'submit':
|
|
||||||
case 'reset':
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'password':
|
|
||||||
i.val(i.attr('defaultValue'));
|
|
||||||
|
|
||||||
x = i.parent().find('input[name=' + i.attr('name') + '-polyfill-field]');
|
|
||||||
|
|
||||||
if (i.val() == '') {
|
|
||||||
i.hide();
|
|
||||||
x.show();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
i.show();
|
|
||||||
x.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'checkbox':
|
|
||||||
case 'radio':
|
|
||||||
i.attr('checked', i.attr('defaultValue'));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'text':
|
|
||||||
case 'textarea':
|
|
||||||
i.val(i.attr('defaultValue'));
|
|
||||||
|
|
||||||
if (i.val() == '') {
|
|
||||||
i.addClass('polyfill-placeholder');
|
|
||||||
i.val(i.attr('placeholder'));
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
i.val(i.attr('defaultValue'));
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
return $this;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Moves elements to/from the first positions of their respective parents.
|
|
||||||
* @param {jQuery} $elements Elements (or selector) to move.
|
|
||||||
* @param {bool} condition If true, moves elements to the top. Otherwise, moves elements back to their original locations.
|
|
||||||
*/
|
|
||||||
$.prioritize = function($elements, condition) {
|
|
||||||
|
|
||||||
var key = '__prioritize';
|
|
||||||
|
|
||||||
// Expand $elements if it's not already a jQuery object.
|
|
||||||
if (typeof $elements != 'jQuery')
|
|
||||||
$elements = $($elements);
|
|
||||||
|
|
||||||
// Step through elements.
|
|
||||||
$elements.each(function() {
|
|
||||||
|
|
||||||
var $e = $(this), $p,
|
|
||||||
$parent = $e.parent();
|
|
||||||
|
|
||||||
// No parent? Bail.
|
|
||||||
if ($parent.length == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Not moved? Move it.
|
|
||||||
if (!$e.data(key)) {
|
|
||||||
|
|
||||||
// Condition is false? Bail.
|
|
||||||
if (!condition)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Get placeholder (which will serve as our point of reference for when this element needs to move back).
|
|
||||||
$p = $e.prev();
|
|
||||||
|
|
||||||
// Couldn't find anything? Means this element's already at the top, so bail.
|
|
||||||
if ($p.length == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Move element to top of parent.
|
|
||||||
$e.prependTo($parent);
|
|
||||||
|
|
||||||
// Mark element as moved.
|
|
||||||
$e.data(key, $p);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Moved already?
|
|
||||||
else {
|
|
||||||
|
|
||||||
// Condition is true? Bail.
|
|
||||||
if (condition)
|
|
||||||
return;
|
|
||||||
|
|
||||||
$p = $e.data(key);
|
|
||||||
|
|
||||||
// Move element back to its original location (using our placeholder).
|
|
||||||
$e.insertAfter($p);
|
|
||||||
|
|
||||||
// Unmark element as moved.
|
|
||||||
$e.removeData(key);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
})(jQuery);
|
|
@ -2,11 +2,16 @@ from django.shortcuts import render
|
|||||||
import os.path
|
import os.path
|
||||||
from users.models import Balance
|
from users.models import Balance
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from users.models import User
|
||||||
|
import operator
|
||||||
|
from upload.models import Media
|
||||||
|
import requests
|
||||||
|
from django.db.models import Sum
|
||||||
|
|
||||||
|
|
||||||
def homePage(request):
|
def homePage(request):
|
||||||
iter_var = 0
|
iter_var = 0
|
||||||
all_balance = []
|
all_balance = 0
|
||||||
Cashier = False
|
Cashier = False
|
||||||
Processor = False
|
Processor = False
|
||||||
|
|
||||||
@ -27,22 +32,96 @@ def homePage(request):
|
|||||||
userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, isCashier={Cashier}, isProcessor={Processor}, Balance = {userBalance}"
|
userQR = f"Name = {request.user.username}, Date Joined = {request.user.date_joined.date()}, ID = {request.user.id}, isCashier={Cashier}, isProcessor={Processor}, Balance = {userBalance}"
|
||||||
else:
|
else:
|
||||||
userQR=None
|
userQR=None
|
||||||
a = Balance.objects.all()
|
|
||||||
|
|
||||||
for user in a:
|
# Use aggregation that can be calculated in database (fast)
|
||||||
all_balance.append(user.balanceValue)
|
all_balance = Balance.objects.all().aggregate(s=Sum("balanceValue"))['s']
|
||||||
print(f"{all_balance}")
|
# print(f"{all_balance}")
|
||||||
limited_coins = settings.ALL_COINS - sum(all_balance)
|
try:
|
||||||
|
limited_coins = settings.ALL_COINS - all_balance
|
||||||
|
except TypeError:
|
||||||
|
limited_coins = settings.ALL_COINS
|
||||||
|
|
||||||
|
github = requests.get("https://api.github.com/user/36108495").json()
|
||||||
|
|
||||||
context = {
|
context = {
|
||||||
"isCashier": Cashier,
|
"isCashier": Cashier,
|
||||||
"isProcessor": Processor,
|
"isProcessor": Processor,
|
||||||
"userQR":userQR,
|
"userQR":userQR,
|
||||||
"fullbalance": limited_coins,
|
"fullbalance": limited_coins,
|
||||||
"currencyTotal": sum(all_balance),
|
"currencyTotal": all_balance,
|
||||||
"userBalance": userBalance
|
"userBalance": userBalance,
|
||||||
|
"github": f"https://github.com/podput",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return render(request, "home.html", context)
|
return render(request, "home.html", context)
|
||||||
|
|
||||||
|
|
||||||
|
def leaderboard(request):
|
||||||
|
users = User.objects.all()
|
||||||
|
leaderboard = {}
|
||||||
|
for i in users:
|
||||||
|
try:
|
||||||
|
username = i.username
|
||||||
|
balance = i.balance.balanceValue
|
||||||
|
# add media counter and other stuff
|
||||||
|
if f"{username}" in leaderboard.keys():
|
||||||
|
leaderboard[username] = balance + leaderboard[username]
|
||||||
|
else:
|
||||||
|
leaderboard[username] = balance
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
|
|
||||||
|
leaderboard = dict(sorted(leaderboard.items(), key=operator.itemgetter(0)))
|
||||||
|
leaderboard = dict(reversed(list(leaderboard.items())))
|
||||||
|
|
||||||
|
while len(leaderboard) > 5:
|
||||||
|
leaderboard.pop()
|
||||||
|
|
||||||
|
|
||||||
|
media = Media.objects.all()
|
||||||
|
user_media = {}
|
||||||
|
for i in media:
|
||||||
|
username = i.user.username
|
||||||
|
if f"{username}" in user_media.keys():
|
||||||
|
user_media[username] += 1
|
||||||
|
else:
|
||||||
|
user_media[username] = 1
|
||||||
|
|
||||||
|
user_media = dict(sorted(user_media.items(), key=operator.itemgetter(0)))
|
||||||
|
user_media = dict(reversed(list(user_media.items())))
|
||||||
|
users = {}
|
||||||
|
for i in user_media.keys():
|
||||||
|
iter_user = User.objects.get(username=i)
|
||||||
|
iter_user_media = Media.objects.filter(user=iter_user)
|
||||||
|
if iter_user_media.filter(is_video=True):
|
||||||
|
user_data = {i:{"Videos":len(iter_user_media.filter(is_video=True)),
|
||||||
|
"Images":len(iter_user_media.filter(is_video=False))}}
|
||||||
|
else:
|
||||||
|
user_data = {i:{"Images":len(iter_user_media.filter(is_video=False))}}
|
||||||
|
|
||||||
|
while len(user_media) > 5:
|
||||||
|
user_media.pop()
|
||||||
|
|
||||||
|
# for i in media:
|
||||||
|
# username = i.user.username
|
||||||
|
# image = i.image
|
||||||
|
|
||||||
|
# if f"{username}" in media_count.values():
|
||||||
|
# media_count[username] = image + media_count[username].value
|
||||||
|
# else:
|
||||||
|
# media_count[username] = image
|
||||||
|
|
||||||
|
# print(media_count)
|
||||||
|
|
||||||
|
context = {
|
||||||
|
"leaderboard":leaderboard,
|
||||||
|
"user_media":user_media
|
||||||
|
}
|
||||||
|
|
||||||
|
return render(request, 'leaderboard.html', context)
|
||||||
|
|
||||||
|
|
||||||
|
def about(request):
|
||||||
|
|
||||||
|
return render(request, "about.html")
|
Before Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 688 KiB |
Before Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 747 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 240 KiB |
Before Width: | Height: | Size: 190 KiB |
Before Width: | Height: | Size: 688 KiB |
@ -1,27 +0,0 @@
|
|||||||
[?1049h[22;0;0t[>4;2m[?1h=[?2004h[?1004h[1;24r[?12h[?12l[22;2t[22;1t[27m[23m[29m[m[H[2J[?25l[24;1H[97m[41mE325: ATTENTION[m
|
|
||||||
|
|
||||||
Found a swap file by the name "~/github/reValuate/.git/.COMMIT_EDITMSG.swp"
|
|
||||||
|
|
||||||
[10Cowned by: gang420 dated: Thu Mar 11 03:38:41 2021
|
|
||||||
|
|
||||||
[9Cfile name: ~gang420/github/reValuate/.git/COMMIT_EDITMSG
|
|
||||||
|
|
||||||
[10Cmodified: YES
|
|
||||||
|
|
||||||
[9Cuser name: gang420 host name: CatShip
|
|
||||||
|
|
||||||
[8Cprocess ID: 22317
|
|
||||||
|
|
||||||
While opening file "/home/gang420/github/reValuate/.git/COMMIT_EDITMSG"
|
|
||||||
|
|
||||||
[13Cdated: Thu Mar 11 03:38:56 2021
|
|
||||||
|
|
||||||
NEWER than swap file!
|
|
||||||
|
|
||||||
|
|
||||||
(1) Another program may be editing the same file. If this is the case,
|
|
||||||
|
|
||||||
be careful not to end up with two different instances of the same
|
|
||||||
|
|
||||||
file when making changes. Quit, or continue with caution.
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
|||||||
Content-Type: text/plain; charset="utf-8"
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
Subject: Password reset on 127.0.0.1:8000
|
|
||||||
From: webmaster@localhost
|
|
||||||
To: pederas@pederasov.pl
|
|
||||||
Date: Mon, 08 Feb 2021 22:19:44 -0000
|
|
||||||
Message-ID: <161282278468.9046.5088568393660450551@Spudnik>
|
|
||||||
|
|
||||||
|
|
||||||
You're receiving this email because you requested a password reset for your user account at 127.0.0.1:8000.
|
|
||||||
|
|
||||||
Please go to the following page and choose a new password:
|
|
||||||
|
|
||||||
http://127.0.0.1:8000/users/reset/Mg/ahs0ww-f913be8dd50f0a6adf4815cf32e8183a/
|
|
||||||
|
|
||||||
Your username, in case you’ve forgotten: bobi
|
|
||||||
|
|
||||||
Thanks for using our site!
|
|
||||||
|
|
||||||
The 127.0.0.1:8000 team
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
|
@ -1,25 +0,0 @@
|
|||||||
Content-Type: text/plain; charset="utf-8"
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
Subject: Password reset on 127.0.0.1:8000
|
|
||||||
From: webmaster@localhost
|
|
||||||
To: pederas@pederasov.pl
|
|
||||||
Date: Mon, 08 Feb 2021 22:20:07 -0000
|
|
||||||
Message-ID: <161282280735.9109.220494091957288379@Spudnik>
|
|
||||||
|
|
||||||
|
|
||||||
You're receiving this email because you requested a password reset for your user account at 127.0.0.1:8000.
|
|
||||||
|
|
||||||
Please go to the following page and choose a new password:
|
|
||||||
|
|
||||||
http://127.0.0.1:8000/users/reset/Mg/ahs0xj-30b0b07164a6b8b220b0e9cbbb048aa0/
|
|
||||||
|
|
||||||
Your username, in case you’ve forgotten: bobi
|
|
||||||
|
|
||||||
Thanks for using our site!
|
|
||||||
|
|
||||||
The 127.0.0.1:8000 team
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
|
127
reValuate/static/home/css/gallery.css
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
.popup {
|
||||||
|
width: 900px;
|
||||||
|
margin: auto;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.popup img {
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show {
|
||||||
|
z-index: 999;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show .overlay {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0,0,0,.66);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.show .img-show {
|
||||||
|
width: 600px;
|
||||||
|
height: 400px;
|
||||||
|
background: #FFF;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-show span {
|
||||||
|
position: absolute;
|
||||||
|
top: 10px;
|
||||||
|
right: 10px;
|
||||||
|
z-index: 99;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-show img {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: Raleway;
|
||||||
|
background-color: #202125;
|
||||||
|
}
|
||||||
|
|
||||||
|
.heading {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 2.0em;
|
||||||
|
letter-spacing: 1px;
|
||||||
|
padding: 40px;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-image {
|
||||||
|
padding: 20px;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gallery-image img {
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
transform: scale(1.0);
|
||||||
|
transition: transform 0.4s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box {
|
||||||
|
box-sizing: content-box;
|
||||||
|
margin: 10px;
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
|
color: white;
|
||||||
|
position: relative;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.caption {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 5px;
|
||||||
|
left: 20px;
|
||||||
|
opacity: 0.0;
|
||||||
|
transition: transform 0.3s ease, opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.transparent-box {
|
||||||
|
height: 250px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: rgba(0, 0, 0, 0);
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
transition: background-color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box:hover img { transform: scale(1.1); }
|
||||||
|
.img-box:hover .transparent-box { background-color: rgba(0, 0, 0, 0.5); }
|
||||||
|
|
||||||
|
.img-box:hover .caption {
|
||||||
|
transform: translateY(-20px);
|
||||||
|
opacity: 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img-box:hover { cursor: pointer; }
|
||||||
|
.caption > p:nth-child(2) { font-size: 0.8em; }
|
||||||
|
.opacity-low { opacity: 0.5; }
|
323
reValuate/static/home/css/style.css
Normal file
@ -0,0 +1,323 @@
|
|||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
#page-wrap {
|
||||||
|
max-width: 1200px;
|
||||||
|
margin: 50px auto;
|
||||||
|
padding: 20px;
|
||||||
|
background: white;
|
||||||
|
-moz-box-shadow: 0 0 20px #469330;
|
||||||
|
-webkit-box-shadow: 0 0 20px #469330;
|
||||||
|
box-shadow: 0 0 20px #469330;
|
||||||
|
text-align: center;
|
||||||
|
border-radius: 25px;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 30px 10%;
|
||||||
|
background-color: #469330;
|
||||||
|
position: sticky;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links a,
|
||||||
|
.cta,
|
||||||
|
.overlay__content a {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size:30px;
|
||||||
|
color: #edf0f1;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links {
|
||||||
|
list-style: none;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li {
|
||||||
|
padding: 0px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li a {
|
||||||
|
transition: color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav__links li a:hover {
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta {
|
||||||
|
padding: 9px 25px;
|
||||||
|
color: #469330;
|
||||||
|
background-color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 50px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background-color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cta:hover {
|
||||||
|
color: white;
|
||||||
|
background-color: darkgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Mobile Nav */
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay {
|
||||||
|
height: 100%;
|
||||||
|
width: 0;
|
||||||
|
position: fixed;
|
||||||
|
z-index: 99;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
background-color: #469330;
|
||||||
|
overflow-x: hidden;
|
||||||
|
transition: width 0.5s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay--active {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay__content {
|
||||||
|
display: flex;
|
||||||
|
height: 100%;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay a {
|
||||||
|
padding: 15px;
|
||||||
|
font-size: 36px;
|
||||||
|
display: block;
|
||||||
|
transition: color 0.3s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay a:hover,
|
||||||
|
.overlay a:focus {
|
||||||
|
color: darkgreen;
|
||||||
|
}
|
||||||
|
.overlay .close {
|
||||||
|
position: absolute;
|
||||||
|
top: 20px;
|
||||||
|
right: 45px;
|
||||||
|
font-size: 60px;
|
||||||
|
color: #edf0f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-height: 450px) {
|
||||||
|
.overlay a {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.overlay .close {
|
||||||
|
font-size: 40px;
|
||||||
|
top: 15px;
|
||||||
|
right: 35px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 800px) {
|
||||||
|
.nav__links,
|
||||||
|
.cta {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.menu {
|
||||||
|
display: initial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
html{
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
|
||||||
|
margin: 0 0 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1.heading{
|
||||||
|
color: white;
|
||||||
|
font-size: 50px;
|
||||||
|
text-shadow: -1px 0 black, 0 2px black, 2px 0 black, 0 -1px black;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.emoji{
|
||||||
|
list-style-type: "♻️";
|
||||||
|
}
|
||||||
|
|
||||||
|
.question{
|
||||||
|
color: gray;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.nothing{
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.footer{
|
||||||
|
/* background:radial-gradient(circle, rgba(0,159,12,1) 0%, rgba(8,96,0,1) 100%);
|
||||||
|
-webkit-background-clip: text;
|
||||||
|
-webkit-text-fill-color: transparent; */
|
||||||
|
color: lightgreen;
|
||||||
|
}
|
||||||
|
footer{
|
||||||
|
font-size: small;
|
||||||
|
text-align: center;
|
||||||
|
left:50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.centered{
|
||||||
|
display:flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes text-shadow-pop-right {
|
||||||
|
0% {
|
||||||
|
text-shadow: 0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555;
|
||||||
|
-webkit-transform: translateX(0);
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
text-shadow: 1px 0 #555,2px 0 #555,3px 0 #555,4px 0 #555,5px 0 #555,6px 0 #555,7px 0 #555,8px 0 #555;
|
||||||
|
-webkit-transform: translateX(-8px);
|
||||||
|
transform: translateX(-8px)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes text-shadow-pop-right {
|
||||||
|
0% {
|
||||||
|
text-shadow: 0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555,0 0 #555;
|
||||||
|
-webkit-transform: translateX(0);
|
||||||
|
transform: translateX(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
text-shadow: 1px 0 #555,2px 0 #555,3px 0 #555,4px 0 #555,5px 0 #555,6px 0 #555,7px 0 #555,8px 0 #555;
|
||||||
|
-webkit-transform: translateX(-8px);
|
||||||
|
transform: translateX(-8px)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-shadow-pop-right{-webkit-animation:text-shadow-pop-right .6s both;animation:text-shadow-pop-right .6s both}
|
||||||
|
|
||||||
|
@-webkit-keyframes scale-in-center {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(0);
|
||||||
|
transform: scale(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@keyframes scale-in-center {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(0);
|
||||||
|
transform: scale(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.scale-in-center {
|
||||||
|
-webkit-animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
|
animation: scale-in-center 0.5s cubic-bezier(0.250, 0.460, 0.450, 0.940) both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons{
|
||||||
|
background-color: #469330;
|
||||||
|
border: none;
|
||||||
|
color: white;
|
||||||
|
padding: 15px 32px;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 16px;
|
||||||
|
margin: 4px 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes tracking-in-expand {
|
||||||
|
0% {
|
||||||
|
letter-spacing: -0.5em;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes tracking-in-expand {
|
||||||
|
0% {
|
||||||
|
letter-spacing: -0.5em;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
40% {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tracking-in-expand {
|
||||||
|
-webkit-animation: tracking-in-expand 0.7s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||||
|
animation: tracking-in-expand 0.7s cubic-bezier(0.215, 0.610, 0.355, 1.000) both;
|
||||||
|
animation-delay: .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@-webkit-keyframes fade-in-bck {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translateZ(80px);
|
||||||
|
transform: translateZ(80px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translateZ(0);
|
||||||
|
transform: translateZ(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes fade-in-bck {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: translateZ(80px);
|
||||||
|
transform: translateZ(80px);
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translateZ(0);
|
||||||
|
transform: translateZ(0);
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fade-in-bck {
|
||||||
|
-webkit-animation: fade-in-bck 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
|
||||||
|
animation: fade-in-bck 0.6s cubic-bezier(0.390, 0.575, 0.565, 1.000) both;
|
||||||
|
}
|
BIN
reValuate/static/home/img/Discord-Logo.png
Normal file
After Width: | Height: | Size: 50 KiB |
BIN
reValuate/static/home/img/approved.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
reValuate/static/home/img/cross.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
reValuate/static/home/img/loading.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
reValuate/static/home/img/logo.png
Normal file
After Width: | Height: | Size: 145 KiB |
BIN
reValuate/static/home/img/mail.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
reValuate/static/home/img/question.png
Normal file
After Width: | Height: | Size: 9.6 KiB |