initial commit

This commit is contained in:
2026-04-27 20:41:26 +02:00
commit 311a2502d7
92 changed files with 5115 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
<div class="error-container">
<h1>404</h1>
<h2 data-lang="errorTextOne"></h2>
<p data-lang="errorTextTwo"></p>
<p data-lang="errorTextThree"></p>
<a data-lang="errorButton" onclick="loadPage('home')"></a>
</div>
<style>
.error-container {
position: relative;
height: 400px;
top: 200px;
left: 50%;
transform: translate(-50%,-50%);
text-align: center;
}
.error-container h1 {
font-size: 120px;
margin: 0;
color: var(--alert-color);
}
.error-container h2 {
font-size: 24px;
margin: 10px 0;
color: var(--info-color);
}
.error-container p {
font-size: 16px;
color: var(--primary-text-color);
max-width: 600px;
margin: 10px auto;
}
.error-container a {
position: absolute;
font-size: 16px;
color: var(--secondary-color);
text-decoration: none;
left: 50%;
transform: translate(-50%);
top: 350px;
padding: 12px 24px;
border: 2px solid #1E90FF;
border-radius: 5px;
transition: all 0.3s ease;
}
.error-container a:hover {
background-color: #1E90FF;
color: white;
border-color: transparent;
cursor: pointer;
}
.error-container .lang {
margin-top: 30px;
}
</style>
+6
View File
@@ -0,0 +1,6 @@
<div class="cookie">
<h1 data-lang="cookie-heading" class="merriweather"></h1>
<p data-lang="cookie-intro" class="anonymous-pro-regular"></p>
<ul data-lang="cookie-info" class="anonymous-pro-regular"></ul>
<p data-lang="cookie-acceptance" class="anonymous-pro-regular"></p>
</div>
+39
View File
@@ -0,0 +1,39 @@
<div class="dataProtection">
<h1 data-lang="dataProtectionHeader" class="merriweather"></h1>
<p data-lang="dataProtectionParagraph1"></p>
<p data-lang="dataProtectionParagraph2"></p>
<p data-lang="dataProtectionParagraph3"></p>
<p data-lang="dataProtectionParagraph4"></p>
<p data-lang="dataProtectionParagraph5"></p>
<div>
<p><strong data-lang="dataProtectionHeader2"></strong></p>
<p data-lang="dataProtectionParagraph6"></p>
<p data-lang="dataProtectionParagraph7"></p>
Andreas Reimann<br>Lagerlöfstr. 8, <br>Rostock<br>01520 648 2495<br>business@areimann.de
</div>
<div>
<p><strong data-lang="dataProtectionHeader3"></strong></p>
<p data-lang="dataProtectionParagraph8"></p>
<ul data-lang="dataProtectionList1"></ul>
<p data-lang="dataProtectionParagraph9"></p>
<p><strong data-lang="dataProtectionParagraph10"></strong></p>
</div>
<div>
<p><strong data-lang="dataProtectionHeader4"></strong></p>
<p data-lang="dataProtectionParagraph11"></p>
<div data-lang="dataProtectionParagraph12"></div>
<div data-lang="dataProtectionParagraph13"></div>
<div data-lang="dataProtectionParagraph14"></div>
</div>
<div>
<div data-lang="dataProtectionParagraph15"></div>
<div data-lang="dataProtectionParagraph16"></div>
<div data-lang="dataProtectionParagraph17"></div>
<div data-lang="dataProtectionParagraph18"></div>
<div data-lang="dataProtectionParagraph19"></div>
<div data-lang="dataProtectionParagraph20"></div>
<div data-lang="dataProtectionParagraph21"></div>
<div data-lang="dataProtectionParagraph22"></div>
</div>
<div data-lang="dataProtectionLink"></div>
</div>
+683
View File
@@ -0,0 +1,683 @@
<div class="homeBanner">
<div class="bannerContent">
<h1 data-lang="bannerWelcome" class="merriweather"></h1>
<p data-lang="bannerInfo" class="chakra-petch-light"></p>
</div>
</div>
<div class="homeMainContent">
<div class="leftSection slide-left">
<p id="homeMotto" class="motto chakra-petch-semibold-italic"></p>
<div class="aboutMe">
<div class="sectionLeftAboutMe">
<h1 data-lang="profileAboutMeHeader" class="merriweather"></h1>
<p data-lang="homeAboutMeTextOne"></p>
<button class="chakra-petch-light" data-lang="moreInfo" onclick="loadPage('profile')"></button>
</div>
<div class="sectionRightAboutMe">
<img src="images/selfPicLookLeft.webp" alt="">
</div>
</div>
<div class="homeDeviderLeft"></div>
<div class="skillsCardContainer">
<div class="skillsCardSlider" id="skillsSlider"></div>
</div>
<div class="homeDeviderLeft"></div>
<div class="timeline">
<h1 class="merriweather" data-lang="mileStones"></h1>
<div class="timeline-container">
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">2001</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesFirstMusic"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">2005</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesSchool"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">11.06.2014</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesFirstVideo"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">07.07.2014</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesFirstStream"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">2014</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesGraficsdesign"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">2015</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesSchoolOut"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">01.08.2016</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesApprenticeship"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">09.2016</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesMusicProduce"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">08.2018</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesWebdev"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">28.02.2020</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesApprenticeshipEnd"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">05.2022</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesDavinci"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">06.2023</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesWriting"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">02.10.2023</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesTeamGiftwolf"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">05.2024</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesWebsite"></p>
</div>
</div>
<div class="timeline-item">
<div class="timeline-icon"></div>
<div class="timeline-content">
<span class="timeline-date chakra-petch-semibold">28.03.2025</span>
<p class="timeline-description anonymous-pro-regular" data-lang="mileStonesPodcast"></p>
</div>
</div>
</div>
</div>
</div>
<div class="rightSection slide-right">
<h1 data-lang="homeNewsHeader" class="merriweather"></h1>
<div class="newsDevider"></div>
<div class="newsTicker" id="newsTicker"></div>
</div>
<div class="homeDevider"></div>
<div class="projectsContainer">
<h1 data-lang="homeProjects" class="merriweather"></h1>
<div class="projectCardContainer" id="projectCardContainer"></div>
</div>
<div class="homeDevider"></div>
<span data-lang="moreFollows" class="moreFollows merriweather"></span>
</div>
<style>
.bannerContent h1,
.rightSection h1,
.projectsContainer h1 {
position: relative;
margin: 0;
padding: 0;
left: 50%;
transform: translate(-50%);
text-align: left;
line-height: 0.9;
font-size: 2.3em;
font-weight: 500;
margin-bottom: 20px;
color: var(--secondary-color);
text-shadow: 1px 2px 3px var(--shadow-color), 2px 2px 5px var(--shadow-color), 1px 1px 3px var(--card-header-text);
}
.moreFollows {
position: relative;
text-align: center;
font-size: 2rem;
}
.bannerContent h1 {
text-align: center;
font-size: 3em;
}
.rightSection h1 {
text-align: center;
margin-top: 25px;
}
.homeBanner::before {
content: "";
background: url('images/banners/homeBanner.webp') center/cover no-repeat;
filter: blur(5px) brightness(0.6);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
animation: slideFromTop 1s ease-out forwards;
}
.homeBanner {
position: relative;
top: -50px;
left: 50%;
height: auto;
padding: 100px 0 100px 0;
transform: translate(-50%);
width: calc(100% + 100px);
color: white;
text-align: center;
}
.bannerContent p {
position: relative;
width: 90%;
left: 50%;
transform: translate(-50%);
color: var(--button-text-color);
text-align: center;
font-size: 1.3em;
margin-bottom: 20px;
}
.homeMainContent {
position: relative;
width: calc(100% + 100px);
height: auto;
display: flex;
flex-direction: row;
flex-wrap: wrap;
left: 50%;
transform: translate(-50%);
justify-content: space-evenly;
}
.leftSection {
position: relative;
display: flex;
flex-direction: column;
flex-grow: 1;
max-width: calc(75% - 25px);
}
.motto::before {
content: "„"
}
.motto::after {
content: "“"
}
.motto {
position: relative;
top: 0;
left: 50%;
transform: translate(-50%);
height: auto;
width: 100%;
text-align: center;
margin: 0;
padding: 0;
margin-bottom: 50px;
font-size: 2.5em;
text-shadow:
0 2px 4px rgba(255, 255, 255, 0.05),
0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
.aboutMe {
position: relative;
display: flex;
flex-direction: row;
justify-content: space-evenly;
left: 0;
padding: 25px;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
text-align: justify;
color: var(--primary-text-color);
}
.sectionLeftAboutMe {
position: relative;
max-width: 60%;
flex-grow: 1;
}
.skillsCardContainer {
position: relative;
display: flex;
flex-direction: row;
justify-content: space-evenly;
align-items: center;
gap: 25px;
flex-wrap: nowrap;
color: var(--primary-text-color);
flex-grow: 1;
margin: 0;
padding: 10px 75px;
left: 0px;
height: auto;
overflow: hidden;
border-radius: 50px;
box-shadow:
inset 0 6px 12px rgba(0, 0, 0, 0.4),
inset 0 -6px 12px rgba(255, 255, 255, 0.05),
inset 4px 0 8px rgba(0, 0, 0, 0.25),
inset -4px 0 8px rgba(255, 255, 255, 0.08);
}
.skillsCardSlider {
position: relative;
display: flex;
flex-direction: row;
justify-content: space-evenly;
align-items: center;
gap: 35px;
flex-wrap: nowrap;
width: max-content;
animation: scrollLeft 60s linear infinite;
}
.skillsCardContainer img {
width: 100px;
padding: 5px;
justify-content: space-evenly;
cursor: pointer;
object-fit: contain;
border-radius: 15px;
}
.sectionRightAboutMe {
position: relative;
max-width: 40%;
flex-grow: 1;
justify-content: center;
align-items: center;
top: 50%;
transform: translate(0,-50%);
}
.sectionRightAboutMe img {
position: absolute;
height: 100%;
left: 50%;
justify-content: center;
align-items: center;
transform: translate(-50%);
}
.aboutMe h1 {
margin: 0 0 10px;
line-height: 0.9;
font-size: 2.3em;
font-weight: 500;
margin-bottom: 20px;
color: var(--secondary-color);
text-shadow: 1px 2px 3px var(--shadow-color), 2px 2px 5px var(--shadow-color), 1px 1px 3px var(--card-header-text);
}
.aboutMe p {
font-size: 1.1rem;
line-height: 1.5;
text-align: justify;
margin-bottom: 10px;
padding: 0 10px;
}
.aboutMe button {
position: relative;
padding: 10px 20px;
border-radius: 25px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
margin: 0;
background: var(--tertiary-color);
color: var(--primary-text-color);
text-align: center;
left: 50%;
transform: translate(-50%);
font-size: 1em;
cursor: pointer;
}
.aboutMe button:hover {
transform: translate(-50%,-5px) scale(1.05);
background: var(--hover-color);
}
.timeline {
margin: 0;
padding: 25px;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
.timeline h1 {
margin: 0;
padding: 0;
font-family: 'Merriweather', serif;
font-size: 2em;
text-align: left;
margin-bottom: 20px;
color: var(--secondary-color);
text-shadow: 1px 2px 3px var(--shadow-color), 2px 2px 5px var(--shadow-color), 1px 1px 3px var(--card-header-text);
}
.timeline-container {
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
gap: 20px;
margin: 0 auto;
}
.timeline-item {
display: flex;
align-items: center;
justify-content: center;
width: 300px;
padding: 10px;
position: relative;
animation: fadeIn 1s ease-in-out;
flex-grow: 1;
max-width: 300px;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
.timeline-item::before {
content: "";
position: absolute;
inset: 0;
background-color: rgba(0, 0, 0, 0);
transition: background-color 0.3s ease;
border-radius: 12px;
z-index: 0;
pointer-events: none;
}
.timeline-item:hover {
transform: scale(1.05);
}
.timeline-item:hover::before {
background-color: rgba(0,0,0,0.3);
}
.timeline-item:hover .timeline-icon {
background-color: var(--hover-color);
}
.timeline-item .timeline-icon {
background-color: #3498db;
border-radius: 50%;
width: 20px;
height: 20px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
margin-right: 10px;
margin-left: 10px;
z-index: 1;
}
.timeline-item .timeline-content {
background-color: var(--card-bg);
padding: 10px 20px;
border-radius: 10px;
width: 100%;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
border: solid 1px var(--border-color);
z-index: 1;
}
.timeline-date {
font-weight: bold;
font-size: 1.1em;
color: var(--tertiary-color);
}
.timeline-description {
margin-top: 10px;
font-size: 1em;
color: var(--primary-text-color);
}
.timeline-item:nth-child(odd) {
flex-direction: row-reverse;
}
.timeline-item:nth-child(odd) .timeline-content {
text-align: right;
}
.rightSection {
position: relative;
display: flex;
flex-direction: column;
flex-grow: 1;
min-width: 350px;
max-width: calc(20% - 25px);
background: var(--card-bg);
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
.newsDevider {
position: relative;
width: 100%;
border: solid 1px var(--border-color);
}
.newsTicker {
position: relative;
width: calc(100% - 50px);
padding: 25px;
height: auto;
}
.newsTicker iframe {
position: relative;
margin-bottom: 10px;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
.newsTicker h2 {
margin: 0;
margin-bottom: 5px;
padding: 0;
text-align: right;
}
.newsTicker p {
margin: 0;
padding: 0;
text-align: justify;
}
.newsTicker a {
position: relative;
text-decoration: none;
text-align: right;
margin: 0;
padding: 0;
top: -15px;
color: var(--link-color);
}
.newsTicker a:hover {
color: var(--link-hover-color);
}
.projectsContainer {
position: relative;
display: flex;
flex-direction: column;
width: 95%;
height: auto;
margin: 0;
padding: 0;
}
.projectCardContainer {
position: relative;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-evenly;
width: 100%;
height: auto;
gap: 20px;
}
.projectCard {
position: relative;
flex-grow: 1;
width: 100%;
max-width: 325px;
background-color: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
padding: 25px;
box-sizing: border-box;
transition: transform 0.3s ease;
overflow: hidden;
text-overflow: ellipsis;
}
.projectCard .logoImage {
position: relative;
display: flex;
flex-direction: row;
justify-content: space-evenly;
align-items: center;
margin-bottom: 10px;
}
.projectCard img {
position: relative;
width: 35%;
height: auto;
border-radius: 10px;
margin-bottom: 15px;
}
.projectCard h2 {
text-align: center;
font-size: 1.3rem;
color: var(--card-header-text);
margin: 0;
padding: 0;
}
.projectCard p {
max-height: 100px;
text-overflow: ellipsis;
text-align: justify;
overflow: hidden;
margin: 0;
padding: 0;
display: -webkit-box;
white-space: normal;
-webkit-line-clamp: 5;
-webkit-box-orient: vertical;
}
.projectCard button {
position: relative;
text-align: center;
margin: 0;
padding: 15px;
width: 100%;
height: 25px;
font-size: 1.2em;
color: var(--link-color);
cursor: pointer;
}
.projectCard button:hover {
color: var(--link-hover-color);
scale: 1.1;
}
.homeDeviderLeft {
position: relative;
left: 50%;
transform: translate(-50%);
width: 100%;
height: 1px;
background: var(--border-color);
margin: 25px 0;
}
.homeDevider {
position: relative;
width: 95%;
height: 1px;
background: var(--border-color);
margin: 25px 0;
}
@media screen and (max-width: 1500px) {
.rightSection {
display: none;
}
.leftSection {
max-width: 95%;
}
.skillsCardContainer img {
width: 75px;
}
}
@media screen and (max-width: 1300px) {
.motto {
font-size: 2em;
}
}
@media screen and (max-width: 1000px) {
.motto {
font-size: 1.2em;
}
.aboutMe {
flex-direction: column-reverse;
justify-content: center;
padding: 25px 10px;
}
.sectionRightAboutMe {
display: none;
}
.sectionLeftAboutMe {
max-width: 100%;
top: 0px;
}
.sectionLeftAboutMe h1,
.projectsContainer h1,
.timeline h1 {
text-align: center;
}
.sectionLeftAboutMe p {
font-size: 1em;
}
}
@media screen and (max-width: 785px) {
.bannerContent h1 {
font-size: 2.5em;
}
.bannerContent p {
font-size: 1.1em;
}
.homeBanner {
padding: 50px 0 50px 0;
}
.projectCard {
max-width: 95%;
}
.skillsCardSlider {
animation: scrollLeft 30s linear infinite;
gap: 25px;
}
}
</style>
+23
View File
@@ -0,0 +1,23 @@
<div class="impress">
<h1 data-lang="impressHeader" class="merriweather"></h1>
<p data-lang="impressParagraph5"></p>
<p data-lang="impressName"></p>
<p data-lang="impressAddress"></p>
<p><strong data-lang="impressRepresentativeTitle"></strong><br>
<span data-lang="impressRepresentative"></span>
</p>
<p><strong data-lang="impressContactTitle"></strong><br>
<span data-lang="impressPhone"></span><br>
<a href="mailto:business@areimann.de" data-lang="impressEmailLink"></a>
</p>
<p><strong data-lang="impressLiabilityTitle"></strong></p>
<p><strong data-lang="impressLiabilityContentTitle"></strong></p>
<p data-lang="impressLiabilityContent"></p>
<p><strong data-lang="impressLinkLiabilityTitle"></strong></p>
<p data-lang="impressLinkLiabilityContent"></p>
<p><strong data-lang="impressCopyrightTitle"></strong></p>
<p data-lang="impressCopyrightContent"></p>
<p><strong data-lang="impressPrivacyTitle"></strong></p>
<p data-lang="impressPrivacyContent"></p>
<p data-lang="impressGeneratorInfo"></p>
</div>
+180
View File
@@ -0,0 +1,180 @@
<div class="linkFilterMenu slide-top" onclick="toggleLinkFilterMenu()">
<h2 class="chakra-petch-light">Filter</h2>
<button class="resetButton chakra-petch-light" id="resetButton">Reset</button>
<i class='fa-solid fa-arrow-down'></i>
<div class="tagList" id="tagList"></div>
</div>
<div class="linkContainer fade-in" id="linkContainer"></div>
<style>
.linkFilterMenu {
position: relative;
align-items: center;
text-align: center;
padding: 10px;
height: auto;
max-height: 75px;
overflow: hidden;
background-color: var(--card-bg);
margin-bottom: 25px;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
.linkFilterMenu h2 {
margin: 0;
padding: 0;
margin-top: 25px;
margin-left: 25px;
text-align: left;
color: var(--primary-text-color);
}
.linkFilterMenu .fa-arrow-down {
position: absolute;
font-size: 20px;
top: 35px;
right: 25px;
animation: arrowJumper 2s linear infinite;
cursor: pointer;
color: var(--primary-text-color);
}
.linkFilterMenu .fa-arrow-down:hover {
transform: scale(1.1);
}
.linkFilterMenu:hover .fa-arrow-down {
animation: none !important;
}
.linkFilterMenu .resetButton {
position: absolute;
top: 100px;
width: 89%;
left: 50%;
transform: translateX(-50%);
color: var(--primary-text-color);
padding: 12px;
border: none;
border-radius: 8px;
font-size: 16px;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
cursor: pointer;
}
.linkFilterMenu .resetButton:hover {
background: var(--link-hover-color);
transform: translateX(-50%) scale(1.02);
}
.linkFilterMenu .tagList {
position: relative;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
margin-top: 100px;
left: 50%;
transform: translateX(-50%);
width: 90%;
height: auto;
}
.linkFilterMenu .tagList button {
flex-grow: 1;
background: var(--link-color);
color: white;
margin: 5px;
padding: 10px 14px;
border: none;
border-radius: 8px;
font-size: 15px;
cursor: pointer;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
.linkFilterMenu .tagList button:hover {
background: var(--link-hover-color);
transform: translateY(-2px);
}
.tagList button.active {
background: var(--success-color);
color: var(--primary-text-color);
box-shadow: 0 3px 8px rgba(0, 255, 120, 0.3);
}
.linkContainer {
position: relative;
display: flex;
flex-wrap: wrap;
justify-content: center;
width: calc(100% + 20px);
gap: 0px;
left: 50%;
transform: translateX(-50%);
}
.linkCard {
position: relative;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
flex-grow: 1;
flex-basis: calc(100% / 6 - 20px);
min-width: 15%;
max-width: 100%;
height: 175px;
padding: 16px;
margin: 12px;
background-color: var(--card-bg);
border-radius: 16px;
border: 1px solid var(--border-color);
text-align: center;
text-decoration: none;
color: var(--primary-text-color);
cursor: pointer;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
.linkCard:hover {
transform: translateY(-10px) scale(1.02);
background: var(--link-hover-color);
box-shadow:
inset 0 1px 5px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 3px 12px rgba(0, 0, 0, 0.15);
}
.linkCard .spanContainer {
position: absolute;
min-width: 100px;
bottom: 0px;
display: flex;
flex-direction: column;
white-space: inherit;
padding: 10px;
}
.linkCard span {
position: relative;
text-overflow: ellipsis;
overflow: hidden;
width: 100%;
text-align: center;
margin-top: 5px;
color: var(--primary-text-color);
}
.linkCard img {
position: absolute;
top: 10px;
width: 75px;
height: 75px;
margin-bottom: 10px;
}
.linkCard:hover img {
width: 100px;
height: 100px;
}
@media screen and (max-width: 1000px) {
.linkContainer {
width: calc(100% + 85px);
}
.linkCard {
min-width: 25%;
}
}
</style>
+444
View File
@@ -0,0 +1,444 @@
<section class="profileAboutMe">
<div class="aboutMeText">
<h2 data-lang="profileAboutMeHeader" class="profileHeaderHeader"></h2>
<img src="images/selfPicLookRight.webp" alt="Andreas Reimann" style="float: left; margin-right: 20px; height: auto;" onclick="openModal('images/selfPicLookRight.webp')">
<p data-lang="aboutName" class="anonymous-pro-regular"></p>
<p data-lang="aboutBirthday" class="anonymous-pro-regular"></p>
<p data-lang="aboutIntro1" class="anonymous-pro-regular"></p>
<p data-lang="aboutSkills1" class="anonymous-pro-regular"></p>
<p data-lang="aboutSkills2" class="anonymous-pro-regular"></p>
<p data-lang="aboutProjects" class="anonymous-pro-regular"></p>
<p data-lang="aboutOutro" class="anonymous-pro-regular"></p>
</div>
</section>
<div class="profileDevider"></div>
<section class="profileCertificates">
<h2 data-lang="profileCertificatesHeader" class="profileHeaderHeader"></h2>
<div id="certificatesGallery" class="gallery"></div>
</section>
<div class="profileDevider"></div>
<section class="profilePartnerships">
<h2 data-lang="profilePartnershipsHeader" class="profileHeaderHeader"></h2>
<div class="partnershipsContainer" id="partnersContainer"></div>
</section>
<div class="profileDevider"></div>
<section class="profileGalery">
<h2 data-lang="profileGaleryHeader" class="profileHeaderHeader"></h2>
<div class="galleryContainer" id="galleryContainer"></div>
</section>
<div id="imageModal" class="modal">
<span class="close" onclick="closeModal()">×</span>
<img class="modal-content" id="modalImage">
</div>
<div class="profileDevider"></div>
<section class="profileFAQ">
<h2 data-lang="profileFAQHeader" class="profileHeaderHeader"></h2>
<div class="faqContainer">
<div class="faqItem" onclick="toggleFAQItem(this)">
<h3 data-lang="profileFAQQuestion1" class="chakra-petch-light"></h3>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="profileFAQAnswer1"></p>
</div>
<div class="faqItem" onclick="toggleFAQItem(this)">
<h3 data-lang="profileFAQQuestion2" class="chakra-petch-light"></h3>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="profileFAQAnswer2"></p>
</div>
<div class="faqItem" onclick="toggleFAQItem(this)">
<h3 data-lang="profileFAQQuestion3" class="chakra-petch-light"></h3>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="profileFAQAnswer3"></p>
</div>
<div class="faqItem" onclick="toggleFAQItem(this)">
<h3 data-lang="profileFAQQuestion4" class="chakra-petch-light"></h3>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="profileFAQAnswer4"></p>
</div>
<div class="faqItem" onclick="toggleFAQItem(this)">
<h3 data-lang="profileFAQQuestion5" class="chakra-petch-light"></h3>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="profileFAQAnswer5"></p>
</div>
<div class="faqItem" onclick="toggleFAQItem(this)">
<h3 data-lang="profileFAQQuestion6" class="chakra-petch-light"></h3>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="profileFAQAnswer6"></p>
</div>
<div class="faqItem" onclick="toggleFAQItem(this)">
<h3 data-lang="profileFAQQuestion7" class="chakra-petch-light"></h3>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="profileFAQAnswer7"></p>
</div>
<div class="faqItem" onclick="toggleFAQItem(this)">
<h3 data-lang="profileFAQQuestion8" class="chakra-petch-light"></h3>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="profileFAQAnswer8"></p>
</div>
<div class="faqItem" onclick="toggleFAQItem(this)">
<h3 data-lang="profileFAQQuestion9" class="chakra-petch-light"></h3>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="profileFAQAnswer9"></p>
</div>
</div>
</section>
<style>
.profileAboutMe,
.profileCertificates,
.profilePartnerships,
.profileGalery,
.profileFAQ {
position: relative;
width: 100%;
left: 50%;
transform: translate(-50%);
height: auto;
padding: 10px;
}
.profileHeaderHeader {
font-size: 2.2em;
color: var(--tertiary-color);
margin: 0;
padding: 0;
font-family: "Merriweather", serif;
font-optical-sizing: auto;
font-weight: 500;
font-style: normal;
font-variation-settings:
"wdth" 100;
color: var(--tertiary-color);
text-shadow: 1px 2px 3px var(--shadow-color), 2px 2px 5px var(--shadow-color), 1px 1px 3px var(--card-header-text);
margin-bottom: 20px;
}
.aboutMeText img {
max-width: 280px;
width: 100%;
border-radius: 20px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
object-fit: cover;
}
.aboutMeText img:hover {
transform: scale(1.03);
box-shadow:
inset 0 1px 4px rgba(255, 255, 255, 0.05),
inset 0 -2px 6px rgba(0, 0, 0, 0.1),
0 2px 12px rgba(0, 0, 0, 0.15);
cursor: pointer;
}
.aboutMeText {
position: relative;
width: 95%;
left: 50%;
transform: translate(-50%);
font-size: 1.05rem;
line-height: 1.4;
color: var(--primary-text-color);
padding: 30px;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
backdrop-filter: blur(4px);
text-align: justify;
font-family: "Anonymous Pro", monospace;
}
.aboutMeText p {
margin-bottom: 15px;
}
.aboutMeText strong {
color: var(--accent-color);
font-weight: 600;
}
.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
gap: 20px;
justify-items: center;
align-items: center;
justify-content: center;
margin: 0 auto;
align-content: center;
}
.cert {
position: relative;
max-width: 100%;
border-radius: 8px;
display: flex;
justify-content: center;
align-items: center;
}
.cert img {
width: 100%;
height: auto;
border-radius: 8px;
cursor: pointer;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
.cert img:hover {
transform: scale(1.05);
transition: transform 0.3s ease;
box-shadow:
inset 0 1px 4px rgba(255, 255, 255, 0.05),
inset 0 -5px 6px rgba(0, 0, 0, 0.1),
0 4px 15px rgba(0, 0, 0, 0.15);
}
.partnershipsContainer {
display: flex;
justify-content: center;
gap: 30px;
flex-wrap: wrap;
margin-top: 20px;
}
.partner {
background-color: white;
border-radius: 15px;
box-shadow: 2px 2px 5px var(--shadow-color), 2px 2px 5px var(--shadow-color), 2px 2px 5px var(--shadow-color) inset;
max-width: 450px;
width: 90%;
padding: 20px;
text-align: center;
transition: transform 0.3s ease, box-shadow 0.3s ease;
overflow: hidden;
position: relative;
border: 2px solid transparent;
background-image: linear-gradient(to bottom, var(--background-color), var(--secondary-color));
}
.partner:hover {
transform: translateY(-10px);
box-shadow: 0 12px 20px var(--shadow-color);
border-color: #3a8dff;
}
.partner img {
width: 90%;
object-fit: contain;
border-radius: 10px;
}
.partner a {
display: inline-block;
font-size: 18px;
font-weight: bold;
color: var(--link-color);
text-decoration: none;
transition: color 0.3s ease;
}
.partner-description {
font-size: 14px;
text-align: justify;
color: var(--card-header-text);
font-family: 'Anonymous Pro', monospace;
line-height: 1.6;
padding: 0 10px;
}
.partner a:hover {
color: #3a8dff;
}
.galleryContainer {
position: relative;
box-sizing: border-box;
width: 100%;
padding: 10px;
text-align: center;
}
.galleryContainer img {
position: relative;
display: inline-block;
float: left;
width: 100%;
max-width: 350px;
height: auto;
text-align: center;
object-fit: cover;
border-radius: 15px;
border: solid 2px var(--border-color);
transition: transform 0.3s ease-in-out;
cursor: pointer;
vertical-align: top;
margin-right: 5px;
margin-bottom: 5px;
}
.galleryContainer::after {
content: "";
display: block;
clear: both;
}
.galleryContainer img:hover {
transform: scale(1.05);
}
.modal {
display: none;
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.7);
display: flex;
justify-content: center;
align-items: center;
}
.modal-content {
margin: auto;
display: block;
max-width: 80%;
max-height: 80%;
}
.close {
position: absolute;
top: 115px;
right: 35px;
color: #f1f1f1;
font-size: 40px;
font-weight: bold;
cursor: pointer;
}
.close:hover,
.close:focus {
color: #bbb;
text-decoration: none;
cursor: pointer;
}
.faqContainer {
position: relative;
width: 100%;
height: auto;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
}
.faqItem {
position: relative;
height: auto;
align-items: center;
text-align: center;
justify-content: center;
width: 100%;
padding: 10px;
max-height: 65px;
overflow: hidden;
background-color: var(--card-bg);
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
cursor: pointer;
}
.faqItem.expanded {
max-height: 1000px;
}
.faqItem.expanded .fa-arrow-down {
transform: rotate(180deg);
transition: transform 0.3s ease;
}
.faqItem h3 {
position: relative;
margin: 0;
padding: 0;
margin-top: 5px;
margin-left: 25px;
text-align: left;
font-size: 1.6em;
}
.faqItem p {
position: relative;
text-align: justify;
width: 95%;
height: auto;
margin: 0;
padding: 0;
margin-top: 45px;
left: 50%;
transform: translate(-50%);
font-size: 1.4em;
color: var(--primary-text-color);
font-family: 'Anonymous Pro', monospace;
}
.faqItem .fa-arrow-down {
position: absolute;
font-size: 20px;
top: 25px;
right: 25px;
animation: arrowJumper 2s linear infinite;
cursor: pointer;
}
.faqItem .fa-arrow-down:hover {
scale: 1.05;
}
.faqItem:hover .fa-arrow-down {
animation: none !important;
}
.profileDevider {
position: relative;
width: 100%;
height: 1px;
background: var(--border-color);
margin: 25px 0;
}
@media screen and (max-width: 1400px) {
.close {
top: 160px;
right: 15px;
}
}
@media screen and (max-width: 1099px) {
.close {
top: 15px;
right: 15px;
}
}
@media (max-width: 786px) {
.profileAboutMe,
.profileCertificates,
.profilePartnerships,
.profileGalery,
.profileFAQ {
width: 110%;
}
.profileHeaderHeader {
font-size: 1.4em;
text-align: center;
}
.faqItem h3 {
margin-left: 5px;
font-size: 1.1em;
width: 85%;
}
.faqItem p {
font-size: 1em;
}
.aboutMeContainer {
flex-direction: row;
align-items: flex-start;
}
.aboutMeImage {
flex: 0 0 auto;
}
.aboutMeText {
flex: 1;
justify-content: center;
align-items: center;
justify-items: center;
}
.aboutMeText img {
position: relative;
left: 50%;
transform: translate(-50%);
max-width: 400px;
width: 100%;
margin-bottom: 10px;
}
.aboutMeText img:hover {
transform: translate(-50%) scale(1.03);
}
}
</style>
+334
View File
@@ -0,0 +1,334 @@
<h2 class="projectsHeader slide-top merriweather" data-lang="projectsHeader"></h2>
<div class="projectsFilterMenu slide-top" id="projectsFilterMenu" onclick="toggleProjectFilterMenu(event)">
<h2 class="chakra-petch-light">Filter</h2>
<i class='fa-solid fa-arrow-down'></i>
<p data-lang="sortAfter"></p>
<div id="sortSelect" class="dropdown">
<button class="dropdown-option chakra-petch-light" data-sort="default" data-lang="sortSelect"></button>
<button class="dropdown-option chakra-petch-light" data-sort="status" data-lang="sortbyStatus"></button>
<button class="dropdown-option chakra-petch-light" data-sort="startdate" data-lang="sortbyStart"></button>
<button class="dropdown-option chakra-petch-light" data-sort="lastupdate" data-lang="sortbyLatest"></button>
<button class="dropdown-option chakra-petch-light" data-sort="planneddate" data-lang="sortbyPlanned"></button>
<button class="dropdown-option chakra-petch-light" data-sort="enddate" data-lang="sortbyEnd"></button>
</div>
<div class="tagList" id="tagList"></div>
</div>
<div class="projectsContainer slide-left" id="projectsContainer"></div>
<style>
.projectsHeader {
position: relative;
text-align: center;
margin: 0 0 10px;
font-size: 2.3em;
font-weight: 500;
margin: 0;
padding: 0;
color: var(--tertiary-color);
text-shadow: 1px 2px 3px var(--shadow-color), 2px 2px 5px var(--shadow-color), 1px 1px 3px var(--card-header-text);
margin-bottom: 15px;
}
#projectsFilterMenu {
position: relative;
align-items: center;
text-align: center;
padding: 10px;
height: auto;
max-height: 75px;
overflow: hidden;
background-color: var(--card-bg);
margin-bottom: 25px;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
#projectsFilterMenu h2 {
margin: 0;
padding: 0;
margin-top: 25px;
margin-left: 25px;
text-align: left;
color: var(--primary-text-color);
}
#projectsFilterMenu .fa-arrow-down {
position: absolute;
font-size: 20px;
top: 35px;
right: 25px;
animation: arrowJumper 2s linear infinite;
cursor: pointer;
color: var(--primary-text-color);
}
#projectsFilterMenu .fa-arrow-down:hover {
transform: scale(1.1);
}
#projectsFilterMenu:hover .fa-arrow-down {
animation: none !important;
}
#projectsFilterMenu p {
position: relative;
text-align: left;
width: 90%;
margin: 0;
padding: 0;
top: 50px;
left: 50%;
transform: translate(-50%);
flex-grow: 1;
}
#projectsFilterMenu.open {
max-height: 1000px;
opacity: 1;
}
#sortSelect {
position: relative;
position: relative;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-evenly;
height: auto;
width: 90%;
margin-top: 50px;
left: 50%;
background-color: var(--background-color);
border: 1px solid var(--border-color);
border-radius: 5px;
transform: translateX(-50%);
}
.dropdown-option {
position: relative;
padding: 10px 35px;
min-width: 16%;
background-color: var(--background-color);
color: var(--primary-text-color);
cursor: pointer;
flex-grow: 1;
font-size: 15px;
}
.dropdown-option:hover {
background-color: var(--hover-color);
}
.dropdown-option.active {
background-color: var(--alert-color);
}
.dropdown-option::after {
content: '';
position: absolute;
right: 0.5em;
top: 50%;
transform: translateY(-50%);
font-size: 0.8em;
transition: transform 0.2s ease;
font-size: 1em;
font-weight: bold;
color: var(--primary-text-color);
}
.dropdown-option.active.asc::after {
content: '▲';
}
.dropdown-option.active.desc::after {
content: '▼';
}
#projectsFilterMenu .tagList {
position: relative;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
margin-top: 5px;
left: 50%;
transform: translate(-50%);
width: 90%;
height: auto;
}
#projectsFilterMenu .tagList button {
flex-grow: 1;
background: var(--link-color);
color: white;
margin: 5px;
padding: 10px 14px;
border: none;
border-radius: 8px;
font-size: 15px;
cursor: pointer;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
font-style: normal;
}
#projectsFilterMenu .tagList button:hover {
background: var(--link-hover-color);
transform: translateY(-2px);
}
#projectsFilterMenu .tagList button.active {
background: var(--success-color);
color: var(--primary-text-color);
box-shadow: 0 3px 8px rgba(0, 255, 120, 0.3);
}
#projectsContainer {
display: flex;
flex-wrap: wrap;
justify-content: center;
column-gap: 20px;
}
.projectCard {
position: relative;
display: inline-block;
min-width: 380px;
width: 100vw;
max-width: 580px;
height: auto;
background-color: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
padding: 25px;
box-sizing: border-box;
margin-bottom: 20px;
}
.projectCard .logoImage {
position: relative;
display: flex;
flex-direction: row;
justify-content: space-evenly;
align-items: center;
margin-bottom: 10px;
}
.projectCard:hover {
transform: scale(1.02);
box-shadow:
inset 0 1px 5px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 3px 12px rgba(0, 0, 0, 0.15);
}
.projectCard img {
position: relative;
width: 35%;
height: auto;
border-radius: 10px;
margin-bottom: 10px;
}
.projectCard h2 {
text-align: center;
font-size: 1.7rem;
color: var(--card-header-text);
margin: 0;
padding: 0;
}
.projectCard span {
position: relative;
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 5px;
margin: 0;
}
.projectCard p {
text-align: justify;
font-size: 1rem;
margin: 0;
font-weight: 400;
font-style: normal;
}
.projectCard a {
position: relative;
left: 50%;
transform: translate(-50%);
top: 10px;
border-radius: 25px;
background: var(--tertiary-color);
color: var(--primary-text-color);
padding: 10px 20px;
text-decoration: none;
font-weight: bold;
margin-top: 10px;
display: inline-block;
cursor: pointer;
}
.projectCard a:hover {
background: var(--hover-color);
color: var(--primary-text-color);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
transform: translate(-50%) scale(1.05);
}
.projectOpen {
background-color: var(--alert-color);
color: var(--alert-text);
}
.projectWIP {
background-color: var(--info-color);
color: var(--info-text);
}
.projectFrozen {
background-color: var(--disabled-color);
color: var(--disabled-text);
}
.projectDone {
background-color: var(--success-color);
color: var(--success-text);
}
.galleryOverlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: rgba(0, 0, 0, 0.9);
z-index: 1000;
display: flex;
justify-content: center;
align-items: flex-start;
padding: 50px 0;
box-sizing: border-box;
overflow-y: auto;
}
.galleryContainer {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 10px;
justify-items: center;
margin: 0 auto;
padding: 1rem;
width: 100%;
}
.galleryContainer img {
width: 100%;
height: auto;
max-width: 300px;
border-radius: 10px;
transition: transform 0.3s ease;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.galleryContainer img:hover {
transform: scale(1.05);
}
.closeGallery {
position: absolute;
top: 1rem;
right: 1rem;
font-size: 2rem;
background: none;
color: white;
border: none;
cursor: pointer;
z-index: 1001;
}
.galleryButton {
position: absolute;
width: 75px;
height: 75px;
right: 15px;
bottom: 15px;
font-size: 35px;
cursor: pointer;
}
.galleryButton:hover {
background-color: var(--hover-color);
border-radius: 50%;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
transform: scale(1.2);
}
</style>
+291
View File
@@ -0,0 +1,291 @@
<section class="skillsIntro">
<div class="textContainer slide-top">
<h1 data-lang="skillsIntroHeader" class="merriweather"></h1>
<p data-lang="skillsIntroTextOne" class="anonymous-pro-regular"></p>
<p data-lang="skillsIntroTextTwo" class="anonymous-pro-regular"></p>
<p data-lang="skillsIntroTextThree" class="anonymous-pro-regular"></p>
</div>
<img src="images/selfPicLookLeft.webp" alt="" class="bounce">
</section>
<div class="skillDevider"></div>
<section class="skillsTree slide-right">
<div class="imgContainer">
</div>
</section>
<div class="skillDevider"></div>
<section class="skillsProcess">
<h1 data-lang="skillsProcessHeader" class="merriweather"></h1>
<div class="processMenuContainer" id="processMenuContainer">
<button data-lang="allProcessesButton" class="resetButton anonymous-pro-regular" id="resetButton">Alle</button>
</div>
<div class="processCardContainer" id="processCardContainer"></div>
</section>
<style>
.skillsIntro {
position: relative;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
border-radius: 25px;
color: var(--primary-text-color);
width: 90%;
margin: 0 auto;
gap: 50px;
}
.skillsIntro .textContainer {
position: relative;
flex: 1;
max-width: 70%;
background: var(--card-bg);
padding: 25px;
margin-right: 5%;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
text-align: justify;
}
.skillsIntro .textContainer h1, .skillsProcess h1 {
margin: 0 0 10px;
font-size: 2.3em;
font-weight: 500;
margin: 0;
padding: 0;
color: var(--tertiary-color);
text-shadow: 1px 2px 3px var(--shadow-color), 2px 2px 5px var(--shadow-color), 1px 1px 3px var(--card-header-text);
margin-bottom: 15px;
}
.skillsIntro .textContainer p {
font-size: 1.3em;
line-height: 1.6;
}
.skillsIntro img {
position: relative;
max-width: 30%;
padding: 12px;
}
.skillsTree {
position: relative;
display: flex;
flex-direction: column;
text-align: center;
align-items: center;
padding: 0px;
border-radius: 25px;
color: var(--primary-text-color);
width: 90%;
margin: 0 auto;
}
.skillsTree .imgContainer {
position: relative;
width: 100%;
display: flex;
flex-wrap: wrap;
flex-direction: row;
justify-content: space-evenly;
align-items: center;
gap: 50px;
}
.skillsTree img {
width: 90px;
padding: 5px;
transition: all 0.3s;
justify-content: space-evenly;
cursor: pointer;
border-radius: 15px;
}
.skillsTree img:hover {
scale: 1.2;
}
.skillsProcess {
position: relative;
width: 90%;
padding: 25px;
left: 50%;
transform: translate(-50%);
border-radius: 25px;
text-align: left;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
color: var(--primary-text-color);
}
.processMenuContainer {
display: flex;
flex-wrap: wrap;
justify-content: left;
gap: 10px;
margin-bottom: 20px;
}
.processMenuContainer button {
background-color: var(--link-color);
color: white;
border-radius: 8px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
flex-grow: 1;
font-size: 1.2em;
padding: 10px 15px;
border: none;
cursor: pointer;
}
#resetButton {
background: var(--alert-color);
color: var(--primary-text-color);
margin-right: 15px;
}
#resetButton:hover {
background: var(--link-hover-color);
transform: translateY(-5px) scale(1.02);
}
.processMenuContainer button:hover {
background-color: var(--link-hover-color);
color: var(--primary-text-color);
transform: translateY(-5px) scale(1.02);
}
.processMenuContainer button.active {
background-color: var(--success-color);
color: var(--primary-text-color);
transform: translateY(-5px) scale(1.02);
}
.processCardContainer {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 15px;
}
.processCard {
position: relative;
display: flex;
background-color: var(--card-bg);
color: var(--primary-text-color);
padding: 15px;
flex-grow: 1;
flex-basis: calc(100% / 6 - 20px);
min-width: 25%;
max-width: calc(100%);
height: 75px;
border-radius: 12px;
box-shadow:
inset 0 2px 4px rgba(255, 255, 255, 0.05),
inset 0 -3px 6px rgba(0, 0, 0, 0.1),
0 4px 12px rgba(0, 0, 0, 0.15);
}
.processCard img {
position: absolute;
left: 15px;
top: 50%;
transform: translate(0,-50%);
width: 75px;
height: 75px;
object-fit: contain;
margin-bottom: 10px;
}
.processCard h2 {
position: absolute;
left: 110px;
top: 5px;
font-size: 1.2em;
color: var(--primary-text-color);
margin-bottom: 8px;
}
.processCard span {
position: absolute;
right: 25px;
bottom: 30px;
color: var(--link-color);
font-size: 1.1em;
}
.processCard:hover img {
width: 90px;
height: 90px;
}
.mainBar {
position: relative;
top: 60px;
left: 100px;
background-color: var(--input-bg);
width: calc(100% - 110px);
height: 10px;
border-radius: 5px;
overflow: hidden;
box-shadow: 1px 1px 2px var(--shadow-color), 2px 2px 2px var(--shadow-color), 2px 2px 5px var(--shadow-color) inset;
}
.mainBar div {
background-color: var(--success-header);
height: 100%;
width: 0%;
transition: width 0.5s ease-in-out;
border-radius: 25px;
}
.skillDevider {
position: relative;
left: 50%;
transform: translate(-50%);
width: 100%;
height: 1px;
background: var(--border-color);
margin: 25px 0;
}
@media (max-width: 1150px) {
.skillsIntro {
flex-direction: column-reverse;
text-align: center;
gap: 0;
width: calc(100% + 75px);
margin-top: -50px;
left: 50%;
transform: translate(-50%);
}
.skillsIntro .textContainer h1, .skillsProcess h1 {
font-size: 1.8em;
text-align: center;
}
.skillsIntro .textContainer p {
font-size: 1em;
line-height: 1.6;
}
.skillsIntro .textContainer {
max-width: 120%;
margin-right: 0;
text-align: justify;
padding: 15px;
border-radius: 15px;
}
.skillsIntro img {
max-width: 90%;
max-height: 300px;
right: -25%;
top: 12px;
transform: none;
}
.skillsTree .imgContainer {
width: calc(100% + 100px);
gap: 15px;
}
.skillsProcess {
width: calc(100% + 75px);
box-shadow: none;
padding: 0;
}
.skillDevider {
width: calc(100% + 75px);
}
.processCard {
flex-basis: calc(100% / 3 - 20px);
width: 100%;
}
}
@media (max-width: 786px) {
.processCard {
flex-basis: calc(100% / 2 - 20px);
width: 100%;
}
}
</style>
+43
View File
@@ -0,0 +1,43 @@
<div class="sources">
<h1 data-lang="sourcesHeader" class="merriweather"></h1>
<div class="sourceItem">
<h2>Font Awesome</h2>
<p data-lang="fontAwesome" class="anonymous-pro-regular"></p>
<a href="https://fontawesome.com/" data-lang="toProvider" class="chakra-petch-light"></a>
</div>
<div class="sourceItem">
<h2>Google Fonts</h2>
<p data-lang="googleFonts" class="anonymous-pro-regular"></p>
<a href="https://fonts.google.com/" data-lang="toProvider" class="chakra-petch-light"></a>
</div>
<div class="sourceItem">
<h2>Unsplash</h2>
<p data-lang="unsplash" class="anonymous-pro-regular"></p>
<a href="https://unsplash.com/" data-lang="toProvider" class="chakra-petch-light"></a>
</div>
<div class="sourceItem">
<h2>Icons8</h2>
<p data-lang="icons8" class="anonymous-pro-regular"></p>
<a href="https://icons8.de/" data-lang="toProvider" class="chakra-petch-light"></a>
</div>
<div class="sourceItem">
<h2>Flaticon</h2>
<p data-lang="flaticon" class="anonymous-pro-regular"></p>
<a href="https://www.flaticon.com/" data-lang="toProvider" class="chakra-petch-light"></a>
</div>
<div class="sourceItem">
<h2>ChatGPT</h2>
<p data-lang="chatgpt" class="anonymous-pro-regular"></p>
<a href="https://chatgpt.com/" data-lang="toProvider" class="chakra-petch-light"></a>
</div>
<div class="sourceItem">
<h2>LinkedIn</h2>
<p data-lang="linkedin" class="anonymous-pro-regular"></p>
<a href="https://linkedin.com" data-lang="toProvider" class="chakra-petch-light"></a>
</div>
<div class="sourceItem">
<h2>Programming Hub</h2>
<p data-lang="programmingHub" class="anonymous-pro-regular"></p>
<a href="https://programminghub.io/" data-lang="toProvider" class="chakra-petch-light"></a>
</div>
</div>