website-v2/style.css

1177 lines
22 KiB
CSS

@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');
html{scroll-behavior: smooth;}
body{
margin: 0;
padding: 0;
color: var(--color);
background: var(--background);
text-align: left;
font-family: "open sans", sans-serif;
scroll-behavior: smooth;
overflow-x: hidden;
--theme1: #3498db;
--theme2: #2980b9;
--red: #e74c3c;
--background: #181818;
--color: #fff;
--margin: 15px;
--padding: 15px;
--borderRadius: 12px;
--font: "open sans", sans-serif;
--transition: all 300ms linear;
--buttonRadius: 4px;
/*cursor: url(assets/blob1.svg), auto;*/
}
#content{
margin: 0;
}
.inner-width{
width: 100%;
max-width: clamp(1100px, 90%, 1250px);
margin: auto;
}
/* Loading screen & effects*/
#loadingScreen{
display: flex;
background: var(--theme1);
width: 100%;
height: 100vh;
position: fixed;
z-index: 1001;
justify-content: center;
align-items: center;
text-align: center;
}
#loader{
width: 60px;
height: 60px;
background: none;
border: 8px solid #fff;
border-radius: 50%;
border-top-color: transparent;
border-style: dotted;
animation: loading 1000ms infinite;
}
@keyframes loading{
from{
transform: rotate(0deg);
}
to{
transform: rotate(360deg);
}
}
.loadEffect{
background: #eee;
background-image: linear-gradient(90deg, rgba(238,238,238,1) 0%, rgba(221,221,221,1) 33%, rgba(238,238,238,1) 62%, rgba(221,221,221,1) 100%);;
background-size: 400%;
animation: loadEffect 1500ms infinite;
color: transparent;
}
@keyframes loadEffect{
from{
background-position: 100%;
}
to{
background-position: 0;
}
}
/* Navbar */
#navbar{
width: 100%;
height: 56px;
background: transparent;
color: #fff;
position: fixed;
top: 0;
left: 0;
z-index: 999;
transition: all 300ms linear;
user-select: none;
}
#navbar img{
width: auto;
height: 36px;
margin: 10px 15px 15px 15px;
float: left;
}
#navbar-links{
float: right;
padding: 15px;
}
#navbar-links a{
margin: 0 5px;
color: inherit;
text-decoration: none;
}
.navLink{
position: relative;
}
.navLink::after{
content: "";
position: absolute;
top: 100%;
left: 0;
width: 100%;
height: 4px;
background: #fff;
transition: all 250ms;
transform: scaleX(0);
border-radius: 4px;
}
.navLink:hover{
text-decoration: none;
}
.navLink:hover::after{
transform: scaleX(0.5);
}
#toggleNav{
text-align: right;
color: #fff;
margin: 10px 15px;
display: none;
float: right;
font-size: 26px;
text-decoration: none !important;
}
#toggleNav:hover{
text-decoration: none !important;
}
#closeNavbarPlaceholder{
display: none;
}
/* Home */
#home{
margin: 0;
width: 100%;
height: 100vh;
background-image: url("assets/bg_grey.svg");
background-size: cover;
background-repeat: repeat-x;
background-position: center;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-around;
align-items: center;
}
#home h1{
font-weight: 700;
background: linear-gradient(90deg, rgba(150,237,32,1) 0%, rgba(0,212,255,1) 75%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
transition: var(--transition);
}
#home h1:hover{
background: linear-gradient(90deg, rgba(150,237,32,1) 0%, rgba(0,212,255,1) 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
#home img{
width: 100%;
height: auto;
/*background-image: url("blob1.svg");
background-position: right;
background-repeat: no-repeat;*/
}
#home button{
width: 100%;
height: auto;
min-height: 40px;
margin: var(--margin) 0;
padding: var(--padding);
background: transparent;
color: #fff;
border: 2px solid #fff;
border-radius: var(--buttonRadius);
font-size: 1rem;
transition: all 200ms linear;
}
#home button:hover{
background: var(--theme2);
border: 2px solid var(--theme2);
}
/* About Section */
#aboutContent{
width: 100%;
height: auto;
margin: 0;
display: flex;
flex-direction: row-reverse;
flex-wrap: nowrap;
justify-content: space-around;
align-content: space-around;
}
#aboutText, #aboutImg{
width: 100%;
height: auto;
text-align: justify;
}
#aboutImg img{
width: 80%;
height: auto;
user-select: none;
text-align: center;
margin: 0 10%;
}
#aboutSocial a{
color: #fff;
margin: 10px;
font-size: 26px;
transition: var(--transition);
outline: none;
}
#aboutSocial a:hover{
color: var(--theme1);
text-decoration: none !important;
}
#aboutSocial a:hover:nth-child(1){ color: #e4405f; }
#aboutSocial a:hover:nth-child(2){ color: #1DA1F2; }
#aboutSocial a:hover:nth-child(3){ color: #4267B2; }
#aboutSocial a:hover:nth-child(4){ color: #f1c40f; }
#aboutSocial a:hover:nth-child(5){ color: #1DB954; }
#aboutSocial a:hover:nth-child(6){ color: #0072b1; }
/* Socialmedia Section */
#socialmedia{
margin: auto;
}
#socialSelection{
margin: 10px auto 0 auto;
}
#socialSelection input[type=radio]{
display: none;
}
#socialSelection label{
font-size: 1.1rem;
border: none;
border-bottom: 2px solid var(--theme1);
user-select: none;
transition: all 250ms linear;
padding: 5px 10px;
margin: 10px 0 10px -5px;
}
#socialSelection label:hover, .smRadioInput:checked + .smRadioLabel{
background: var(--theme1);
transition: all 200ms linear;
border-top-right-radius: var(--borderRadius);
border-top-left-radius: var(--borderRadius);
}
.socialTab{
display: none;
background: var(--theme1);
width: 100%;
height: auto;
min-height: 200px;
margin: 0 0 0 -5px;
padding: var(--padding);
border-bottom-right-radius: var(--borderRadius);
border-bottom-left-radius: var(--borderRadius);
}
.socialTab img{
max-width: 80%;
}
.socialTab button{
width: 80%;
height: auto;
min-height: 40px;
margin: var(--margin);
background: var(--theme2);
color: #fff;
border: 2px solid transparent;
border-radius: var(--buttonRadius);
font-size: 1rem;
transition: all 200ms linear;
}
.socialTab button:hover{
background: var(--theme2);
border: 2px solid #fff;
}
#insta1Container{
width: 100%;
height: auto;
margin: auto;
display: flex;
flex-direction: row;
flex-wrap: wrap;
flex-grow: 1;
justify-content: space-around;
align-content: center;
align-items: center;
}
#insta1Container div{
width: 50%;
}
#insta1Container img{
border-radius: var(--borderRadius);
}
#insta2Container{
width: 100%;
height: auto;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
flex-grow: 1;
justify-content: space-around;
align-content: stretch;
align-items: stretch;
}
#insta2Container div{
width: 100%;
align-self: center;
}
#insta2Container div:nth-child(1){
padding: 0 10%;
}
#insta2Container img{
width: 100%;
border-radius: var(--borderRadius);
transition: all 300ms linear;
user-select: none;
}
.insta2FirstImg{
position: relative;
margin: 0;
padding: 0 !important;
}
.insta2FirstImg img{
border-radius: var(--borderRadius);
transition: all 300ms linear;
user-select: none;
margin: 0;
position: relative;
}
.insta2FirstImg::after{
content: "";
position: absolute;
display: flex;
flex-direction: row;
justify-content: center;
align-content: center;
align-items: center;
top: 0;
left: 0;
width: calc(80%);
height: calc(100% - 4px);
border-radius: var(--borderRadius);
color: #fff;
background: rgba(0, 0, 0, 0);
transition: all 300ms linear;
font-family: var(--font);
font-size: 1.2rem;
font-weight: 700;
}
.insta2FirstImg:hover .insta2Img1{
border-radius: 50% !important;
}
.insta2FirstImg:hover::after{
border-radius: 50%;
background: rgba(0, 0, 0, 0.5);
content: attr(data-location);
display: flex;
transition: all 300ms linear;
}
#insta2ImgContainer{
width: 100%;
height: auto;
margin: 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
flex-grow: 1;
justify-content: space-around;
align-content: center;
align-items: baseline;
}
.insta2ImgDiv img{
width: 100%;
max-width: 100%;
height: auto;
border-radius: var(--borderRadius);
transition: all 300ms linear;
user-select: none;
margin: 0;
}
.insta2ImgDiv{
position: relative;
width: 30%;
height: auto;
margin: var(--margin) auto;
padding: 0;
}
.insta2ImgDiv::after{
content: ""; /* Location Icon: \f1da */
position: absolute;
display: flex;
flex-direction: row;
justify-content: center;
align-content: center;
align-items: center;
top: 0;
left: 0;
width: 100%;
height: calc(100% - 5px);
border-radius: var(--borderRadius);
color: #fff;
background: rgba(0, 0, 0, 0);
transition: all 300ms linear;
/*font-family: akar-icons;*/
font-family: var(--font);
font-size: 1.2rem;
font-weight: 700;
}
.insta2ImgDiv:hover > .insta2Img{
border-radius: 50%;
}
.insta2ImgDiv:hover::after{
border-radius: 50%;
background: rgba(0, 0, 0, 0.5);
content: attr(data-location);
display: flex;
transition: all 300ms linear;
}
#githubContainer{
width: 100%;
height: auto;
margin: auto;
display: flex;
flex-direction: row;
flex-wrap: wrap;
flex-grow: 1;
justify-content: space-around;
align-content: center;
align-items: center;
}
#githubContainer div{
width: 50%;
align-self: center;
align-content: center;
}
#githubContainer div:nth-child(2){
text-align: center;
}
#githubContainer img{
width: 100%;
height: auto;
user-select: none;
}
/* Project Section */
#projects{
margin: auto;
}
#projectContainer{
width: 100%;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-around;
align-items: flex-start;
}
.project{
width: 80%;
max-width: 450px;
height: auto;
background: var(--theme1);
border-radius: var(--borderRadius);
margin: var(--margin) var(--margin) 40px var(--margin);
padding: 0 var(--padding) var(--padding) 0;
}
#projectRow2{
padding-top: 100px;
}
.project img{
width: 30%;
height: auto;
border-top-left-radius: var(--borderRadius);
}
.project h3{
width: calc(70% - (2 * var(--margin)));
height: auto;
float: right;
margin: var(--margin);
}
.project p{
margin: var(--padding);
}
.project button{
width: 90%;
height: auto;
margin: 5%;
padding: 10px;
font-size: 1rem;
background: var(--theme2);
color: #fff;
border: 2px solid transparent;
border-radius: var(--buttonRadius);
transition: all 200ms linear;
}
.project button:hover{
background: var(--theme2);
border: 2px solid #fff;
}
/* FAQ Section */
#faq{
margin: 0;
}
.faqObject{
width: calc(100% - 30px);
height: auto;
background: var(--theme1);
color: #fff;
margin: 15px;
/*padding: 5px 15px;*/
padding: 0 0 5px 0;
border-radius: 8px;
position: relative;
text-align: justify;
user-select: none;
}
.faqObject i{
font-size: 24px;
margin: 15px;
display: inline-flex;
transform: rotate(0deg);
transition: var(--transition);
}
.faqObject h3{
display: inline-flex;
width: 80%;
margin: 0 15px;
}
.faqObject p{
margin: 15px;
user-select: text;
}
.faqAnswer{
display: none;
padding: 0 15px 15px 5px;
}
/* Contact Section */
#contact{
display: none;
}
#contact input{
width: calc(100% - 20px);
height: auto;
font-size: 1em;
font-family: var(--font);
outline: none;
background: var(--theme1);
color: #fff;
border: none;
border-radius: 8px;
margin: 10px 0;
padding: 5px 10px;
}
#contactNames{
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
align-content: stretch;
}
#contactNames input{
width: calc(95% - 20px);
}
#contactNames input:nth-child(1){
margin: 10px 10px 10px 0;
}
#contactNames input:nth-child(2){
margin: 10px 0 10px 10px;
}
#contact textarea{
width: calc(100% - 20px);
height: auto;
min-height: 200px;
font-size: 1em;
font-family: var(--font);
outline: none;
background: var(--theme1);
color: #fff;
border: none;
border-radius: 8px;
margin: 10px 0;
padding: 5px 10px;
resize: vertical;
}
#termsLabel p{
max-width: calc(90% - 45px);
user-select: none;
text-align: justify;
margin: 0 10px;
}
#contact input[type="checkbox"]{
height: 0;
width: 0;
opacity: 0;
}
#contact input[type="checkbox"]+label::before{
width: 15px;
height: 15px;
border-radius: 4px;
border: 2px solid var(--theme1);
background: var(--background);
display: block;
content: "";
margin: 10px 0;
float: left;
}
#contact input[type="checkbox"]:checked+label::before{
box-shadow: inset 0px var(--background);
background: var(--theme1);
}
#contact label p{
margin: 0 30px;
width: calc(100% - 30px);
float: left;
}
#contact button{
width: calc(100% - 20px);
height: auto;
font-size: 1em;
font-family: var(--font);
outline: none;
background: var(--theme1);
color: #fff;
border: 2px solid transparent;
border-radius: 8px;
margin: 20px 0;
padding: 10px 10px;
}
#contact button:hover{
background: var(--theme2);
border: 2px solid;
}
@keyframes shake{
0%{
transform: translate(0, 0);
}
15%{
transform: translate(1rem, 0);
}
35%{
transform: translate(-1rem, 0);
}
55%{
transform: translate(1rem, 0);
}
80%{
transform: translate(-1rem, 0);
}
10%{
transform: translate(0, 0);
}
}
/* Footer & imprint */
#footer{
margin: 0;
padding: 0;
color: #fff;
width: auto;
height: auto;
font-size: 1.1rem;
}
#footerExpanded{
display: none; /* FLEX */
flex-direction: row;
flex-wrap: wrap;
justify-content: space-around;
align-items: stretch;
background: var(--theme1);
padding-bottom: 30px;
}
#imprint{
display: none;
}
#footerContent{
width: calc(100% - 30px);
height: auto;
min-height: 60px;
background: var(--theme1);
margin: 0;
margin-top: -21px;
padding: 15px;
}
#footerContent a{
padding: 10px;
text-decoration: none;
background: none;
transition: var(--transition);
}
#footerContent a:hover{
background: var(--theme2);
border-radius: 8px;
}
.socialLink{
margin: 0 5px;
padding: 10px;
text-decoration: none !important;
font-size: 1.4rem;
color: inherit;
transition: var(--transition);
}
.socialLink:hover{
text-decoration: none !important;
background: var(--theme2);
border-radius: 50%;
}
/* Scroll to the top button */
#scroll-top{
width: 40px;
height: 40px;
background: var(--theme1);
border-radius: 12px;
margin: 15px;
bottom: 0;
right: 0;
position: fixed;
justify-content: center;
display: flex;
font-size: 28px;
color: #fff;
transition: .1s linear;
}
#scroll-top i{
margin-top: 0px;
transition: .1s linear;
stroke-width: 3px;
}
#scroll-top i:hover{
margin-top: -5px;
}
/* Section defaults */
.section{
margin: 15px 0;
}
.sectionTitle{
color: var(--color);
font-size: 2rem;
}
.sectionTitle::before{
content: "#";
color: var(--theme2);
margin: 0 10px 0 0;
user-select: none;
}
@media screen and (max-width:640px){
.sectionTitle::before{
margin: 0 10px 0 10px;
}
}
/* General stylings */
.link{
position: relative;
text-decoration: none !important;
background-image: linear-gradient(25deg, var(--theme2) 0%, var(--theme2) 100%);
background-repeat: no-repeat;
background-size: 100% 40%;
background-position: 0 110%;
transition: all 300ms;
cursor: pointer;
}
.link:hover{
background-size: 100% 100%;
}
.animate{
transition: var(--transition);
}
a{
color: inherit;
text-decoration: none;
}
a:hover{
color: inherit;
/*text-decoration: underline;*/
}
i{
text-decoration: none !important;
outline: none;
font-style: normal;
}
i:hover{
text-decoration: none !important;
outline: none;
}
var{
font-style: normal;
}
input, textarea, button{
outline: none;
}
input::placeholder, textarea::placeholder{
color: inherit;
}
@media screen and (max-width:640px){
/* General */
.inner-width p{
margin: auto 10px;
}
/* Navbar */
#navbar-links{
display: none;
width: 80%;
height: 100vh;
position: absolute;
top: 0;
right: 0;
margin: 0;
background: var(--theme1);
color: #fff;
font-size: 2rem;
flex-direction: column;
flex-wrap: wrap;
align-content: stretch;
align-items: baseline;
}
#navbar-links a{
margin: 0;
text-decoration: none;
padding: 5px;
transition: all 250ms linear;
}
#navbar-links a:hover{
text-decoration: none;
background: var(--theme2);
border-radius: 12px;
transition: all 250ms linear;
}
#closeNavbarPlaceholder{
display: none;
width: 20%;
height: 100vh;
position: absolute;
top: 0;
left: 0;
margin: 0;
padding: calc(10% - 2rem);
background: var(--theme2);
font-size: 2rem;
}
#toggleNav{
display: block;
}
/* About Section*/
#aboutContent{
flex-wrap: wrap;
flex-direction: column-reverse;
}
#aboutImg img{
width: 90%;
margin: 0 5%;
}
/* Socialmedia Section */
#socialSelection{
padding-left: calc(5% + 5px);
}
#socialSelection label{
font-size: 0.9rem;
}
.socialTab{
width: calc(90% - (2 * var(--padding)));
margin: 5%;
margin-top: 5px;
}
#insta2Container{
flex-wrap: wrap;
}
#insta2Container img, .insta2ImgDiv{
width: 100%;
margin: var(--margin) 10%;
}
.insta2FirstImg::after{
margin: var(--margin) 10%;
height: calc(100% - (2 * var(--margin)) - 4px);
}
#insta1Container div, .insta2ImgDiv, #githubContainer div{
width: 100%;
}
/* Projects Section */
#projectRow2{
padding-top: 0;
}
/* FAQ Section */
.faqObject{
padding: 0 0 15px 0;
}
.faqObject h3{
width: 70%;
margin: auto 5px auto 10px;
}
/* Contact Section */
#contact input, #contact textarea, #contactNames input, #contactNames input:nth-child(1){
margin: 10px;
width: calc(95% - 20px);
}
#contactNames{
flex-wrap: wrap;
}
#contact input[type="checkbox"]+label::before{
margin: 10px;
}
#contact label p{
margin: 10px;
width: calc(80% - 30px);
}
#contact button{
margin: 20px 10px;
}
/* Footer */
#footerContent{
min-height: 100px;
}
#footerContent a, .socialLink{
padding: 5px;
}
/* Privacy hint */
#cookieBanner{
flex-wrap: wrap;
padding: 0 auto;
}
#cookieBanner div{
width: 90%;
max-width: none;
margin: 0 5% 10px 5%;
}
#cookieBanner button{
width: 90%;
min-width: 80px;
margin: 10px 5%;
}
#cookieIcon{
display: none;
}
}
/* Selection */
::selection {background: var(--theme1); color: #ffffff; border-radius: var(--borderRadius);}
::-moz-selection {background: var(--theme1); color: #ffffff; border-radius: var(--borderRadius);}
/* Countdown */
#countdown{
display: flex;
flex-direction: row;
user-select: none;
font-family: var(--font);
}
.countdownObject{
display: flex;
flex-direction: column;
margin: var(--margin);
justify-content: center;
align-content: center;
align-items: center;
text-align: center;
text-transform: capitalize;
}
.countdownObject:nth-child(4) .countdownNum{
background: var(--red);
border-color: var(--red);
transition: var(--transition);
animation: countdown 2000ms infinite;
}
@keyframes countdown{
0%{
border-color: var(--red);
background: var(--red);
}
50%{
border-color: var(--theme1);
background: var(--theme1);
}
100%{
border-color: var(--red);
background: var(--red);
}
}
.countdownNum{
width: 60px;
height: 60px;
background: transparent;
border: 4px solid var(--theme1);
border-radius: 50%;
display: flex;
flex-direction: column;
flex-wrap: nowrap;
justify-content: center;
align-content: center;
align-items: center;
padding: 0;
font-size: 18px;
}
@media screen and (max-width:700px){
#countdown{
flex-direction: row;
}
.countdownObject{
margin: 10px;
}
.countdownNum{
width: 30px;
height: 30px;
padding: 0;
font-size: 14px;
border: 2px solid var(--theme1);
}
#countdownImg{
display: none;
}
}