Files
vontor-cz/frontend/src/components/home/ContactMe/contact-me.module.css
2026-06-11 11:37:31 +02:00

185 lines
4.6 KiB
CSS

.contact-me {
margin: 15em auto;
margin-top: 15em;
margin-bottom: 3em;
position: relative;
aspect-ratio: 16 / 9;
background: var(--c-background-light);
max-width: 100vw;
border: 2px solid var(--c-lines);
border-radius: 0.75em;
width: 30em;
}
/* .mail-box sibling styles were unused; removed to satisfy linter */
.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: linear-gradient(135deg, var(--c-boxes), var(--c-other));
transition: transform 1s ease, background 0.5s ease;
text-align: center;
color: var(--c-text);
}
.rotate-opening{
background: linear-gradient(135deg, var(--c-background-light), var(--c-boxes));
transform: rotateX(180deg);
}
.opening svg{
margin: auto;
font-size: 3em;
margin-top: -0.5em;
}
.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: 90%;
display: flex;
gap: 1em;
flex-direction: column;
align-items: stretch;
justify-content: center;
margin: auto;
background: color-mix(in hsl, var(--c-background-light), transparent 35%);
backdrop-filter: blur(6px);
padding: 1.5em;
border: 0.35em dashed var(--c-lines);
border-radius: 0.75em;
color: var(--c-text);
}
.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: linear-gradient(135deg, var(--c-other), var(--c-boxes));
color: var(--c-text);
padding: 0.85em 1.5em;
cursor: pointer;
border-radius: 0.75em;
font-weight: 600;
box-shadow: 0 0 12px -3px rgba(112,162,136,0.5);
transition: transform 0.2s ease, box-shadow 0.3s ease;
}
.contact-me .content form input[type=submit]:hover {
transform: translateY(-2px);
box-shadow: 0 0 20px -2px rgba(112,162,136,0.65);
}
.contact-me .content form input[type=text],
.contact-me .content form input[type=email],
.contact-me .content form textarea{
background: var(--c-background-light);
border: 1px solid var(--c-lines);
padding: 0.6em 0.75em;
border-radius: 0.5em;
color: var(--c-text);
}
.contact-me .content form input[type=text]::placeholder,
.contact-me .content form input[type=email]::placeholder,
.contact-me .content form textarea::placeholder{ color: color-mix(in srgb, var(--c-lines), white 25%); }
.opening-behind { z-index: 0 !important; }
.contact-me .cover {
border-radius: 1em;
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: var(--c-background);
}
.contact-me .triangle{
border-radius: 1em;
position: absolute;
bottom: 0;
right: 0;
z-index: 3;
width: 100%;
height: 100%;
clip-path: polygon(100% 0, 0 100%, 100% 100%);
background: linear-gradient(135deg, var(--c-boxes), var(--c-background-light));
}
@keyframes envelopeFadeOut {
from { opacity: 1; transform: scale(1) translateY(0); }
to { opacity: 0; transform: scale(0.88) translateY(-12px); }
}
.envelope-fadeout {
animation: envelopeFadeOut 0.4s ease forwards;
pointer-events: none;
}
@keyframes successFadeIn {
from { opacity: 0; transform: translateY(24px); }
to { opacity: 1; transform: translateY(0); }
}
.success-panel {
margin: 15em auto 3em;
width: 30em;
max-width: 100vw;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.75rem;
padding: 2rem;
text-align: center;
animation: successFadeIn 0.5s ease forwards;
}
@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,
.success-panel {
width: min(30em, 100%);
margin: 11rem auto 1.5rem;
}
}