This commit is contained in:
2025-10-01 18:31:30 +02:00
commit 85b035fd27
80 changed files with 6930 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
<footer id="contacts">
<div class="logo">
<h1>vontor.cz</h1>
</div>
<address>
Written by <b>David Bruno Vontor</b><br>
<p>Tel.: <a href="tel:+420 605 512 624"><u>+420 605 512 624</u></a></p>
<p>E-mail: <a href="mailto:brunovontor@gmail.com"><u>brunovontor@gmail.com</u></a></p>
<p>IČO: <a href="https://www.rzp.cz/verejne-udaje/cs/udaje/vyber-subjektu;ico=21613109;"><u>21613109</u></a></p>
</address>
<div class="contacts">
<a href="https://github.com/Brunobrno">
<i class="fa fa-github"></i>
</a>
<a href="https://www.instagram.com/brunovontor/">
<i class="fa fa-instagram"></i>
</a>
<a href="https://twitter.com/BVontor">
<i class="fa-brands fa-x-twitter"></i>
</a>
<a href="https://steamcommunity.com/id/Brunobrno/">
<i class="fa-brands fa-steam"></i>
</a>
<a href="www.youtube.com/@brunovontor">
<i class="fa-brands fa-youtube"></i>
</a>
</div>
</footer>

View File

@@ -0,0 +1,99 @@
/*TODO: Implement the contact form functionality*/
{% load static %}
<div class="contact-me">
<div class="opening">
<i class="fa-solid fa-arrow-pointer" aria-hidden="true"></i>
</div>
<div class="content">
<form method="post" id="contactme-form">
{% csrf_token %}
{{ contactme_form }}
<input type="submit" value="Submit">
</form>
</div>
<div class="cover"></div>
<div class="triangle"></div>
</div>
<script src="{% static 'home/js/global/contact-me.js' %}"></script>
contact-me.js:
$(document).ready(function () {
$("#contactme-form").submit(function (event) {
event.preventDefault(); // Prevent normal form submission
$.ajax({
url: "/submit-contactme/", // URL of the Django view
type: "POST",
data: $(this).serialize(), // Serialize form data
success: function (response) {
if (response.success) {
close_contact();
$("#contactme-form .success-form-alert").fadeIn();
$("#contactme-form")[0].reset(); // Clear the form
alert("Zpráva odeslaná!")
}
},
error: function (response) {
alert("Zpráva nebyla odeslaná, zkontrolujte si připojení k internetu nebo naskytl u nás problém :(")
}
});
});
$("#contactme-form .success-form .close").click(function () {
$("#contactme-form .success-form-alert").fadeOut();
});
var opened_contact = false;
$(document).on("click", ".contact-me .opening", function () {
console.log("toggle mail");
const opening = $(".contact-me .opening");
// Check if we're opening or closing
if (opened_contact === false) {
// Toggle rotation
opening.toggleClass('rotate-opening');
// Wait for the rotation to finish
setTimeout(function() {
$(".contact-me .content").addClass('content-moveup-index');
}, 500);
setTimeout(function() {
$(".contact-me .content")[0].offsetHeight;
$(".contact-me .content").addClass('content-moveup');
}, 1000); // Small delay to trigger transition
opened_contact = true;
} else {
close_contact();
}
});
function close_contact(){
$(".contact-me .content").removeClass('content-moveup');
setTimeout(function() {
$(".contact-me .content").toggleClass('content-moveup-index');
$(".contact-me .opening").toggleClass('rotate-opening');
}, 700);
opened_contact = false;
}
});

View File

@@ -0,0 +1,140 @@
.contact-me {
margin: 5em auto;
position: relative;
aspect-ratio: 16 / 9;
background-color: #c8c8c8;
max-width: 100vw;
}
.contact-me + .mail-box{
}
.contact-me .opening {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 2;
transform-origin: top;
padding-top: 4em;
clip-path: polygon(0 0, 100% 0, 50% 50%);
background-color: #d2d2d2;
transition: all 1s ease;
text-align: center;
}
.rotate-opening{
background-color: #c8c8c8;
transform: rotateX(180deg);
}
.contact-me .content {
position: relative;
height: 100%;
width: 100%;
z-index: 1;
transition: all 1s ease-out;
}
.content-moveup{
transform: translateY(-70%);
}
.content-moveup-index {
z-index: 2 !important;
}
.contact-me .content form{
width: 80%;
display: flex;
gap: 1em;
flex-direction: column;
align-items: flex-start;
justify-content: center;
margin: auto;
background-color: #deefff;
padding: 1em;
border: 0.5em dashed #88d4ed;
border-radius: 0.25em;
}
.contact-me .content form div{
width: -webkit-fill-available;
display: flex;
flex-direction: column;
}
.contact-me .content form input[type=submit]{
margin: auto;
border: none;
background: #4ca4d5;
color: #ffffff;
padding: 1em 1.5em;
cursor: pointer;
border-radius: 1em;
}
.contact-me .content form input[type=text],
.contact-me .content form input[type=email],
.contact-me .content form textarea{
background-color: #bfe8ff;
border: none;
border-bottom: 0.15em solid #064c7d;
padding: 0.5em;
}
.contact-me .cover {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
clip-path: polygon(0 0, 50% 50%, 100% 0, 100% 100%, 0 100%);
background-color: #f0f0f0;
}
.contact-me .triangle{
position: absolute;
bottom: 0;
right: 0;
z-index: 3;
width: 100%;
height: 100%;
clip-path: polygon(100% 0, 0 100%, 100% 100%);
background-color: rgb(255 255 255);
}
@keyframes shake {
0% { transform: translateX(0); }
25% { transform: translateX(-2px) rotate(-8deg); }
50% { transform: translateX(2px) rotate(4deg); }
75% { transform: translateX(-1px) rotate(-2deg); }
100% { transform: translateX(0); }
}
.contact-me .opening i {
color: #797979;
font-size: 5em;
display: inline-block;
animation: 0.4s ease-in-out 2s infinite normal none running shake;
animation-delay: 2s;
animation-iteration-count: infinite;
}
@media only screen and (max-width: 990px){
.contact-me{
aspect-ratio: unset;
margin-top: 7ch;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -0,0 +1,10 @@
<nav>
<i id="toggle-nav" class="fa-solid fa-bars"></i>
<ul>
<li id="nav-logo"><span>vontor.cz</span></li>
<li><a href="{% url "home" %}">Home</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#services">Services</a></li>
<li><a href="#contactme-form">Contact me</a></li>
</ul>
</nav>